From 1da1e21aeda1df32eb96564d95ee22a7d2826259 Mon Sep 17 00:00:00 2001 From: cryptozoidberg Date: Sun, 6 Dec 2020 21:44:52 +0100 Subject: [PATCH 001/162] got rid of unused keys in UI --- src/gui/qt-daemon/Info.plist.in | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/gui/qt-daemon/Info.plist.in b/src/gui/qt-daemon/Info.plist.in index 24200075..5cff05eb 100644 --- a/src/gui/qt-daemon/Info.plist.in +++ b/src/gui/qt-daemon/Info.plist.in @@ -4,9 +4,7 @@ LSEnvironment - QTWEBENGINE_REMOTE_DEBUGGING - 11113 - + BuildMachineOSBuild 14E46 CFBundleDevelopmentRegion From 7b4a6fa90aabaa82735fbd442b9970bbd17f1df9 Mon Sep 17 00:00:00 2001 From: Nazar <45450850+NazarUsov@users.noreply.github.com> Date: Wed, 9 Dec 2020 22:32:46 +0200 Subject: [PATCH 002/162] Status setting wallet fix (#265) * Status setting wallet (#1) * add disabled btn setting_wallet * add build html * fix update status wallet * add context copy seed_phrase * fix bug * fix wallet status * update * Create wallet * fix wallet login and add seed block in create wallet --- .../html/assets/scss/base/_theme.scss | 9 + .../html/assets/scss/layout/_seed-phrase.scss | 258 +++++++++++++++++ src/gui/qt-daemon/html/main.js | 227 ++++++++++----- src/gui/qt-daemon/html/main.js.map | 2 +- src/gui/qt-daemon/html/styles.js | 2 +- src/gui/qt-daemon/html/styles.js.map | 2 +- .../create-wallet.component.html | 2 +- .../create-wallet/create-wallet.component.ts | 2 +- .../open-wallet-modal.component.html | 2 +- .../open-wallet-modal.component.ts | 15 +- .../restore-wallet.component.ts | 10 +- .../seed-phrase/seed-phrase.component.html | 104 ++++++- .../seed-phrase/seed-phrase.component.scss | 39 +-- .../app/seed-phrase/seed-phrase.component.ts | 92 +++++- .../wallet-details.component.html | 3 +- .../wallet-details.component.scss | 182 ------------ .../wallet-details.component.ts | 11 +- .../src/app/wallet/wallet.component.ts | 272 ++++++++++++------ .../src/assets/scss/base/_theme.scss | 9 + .../src/assets/scss/layout/_seed-phrase.scss | 258 +++++++++++++++++ src/gui/qt-daemon/html_source/src/styles.scss | 1 + 21 files changed, 1087 insertions(+), 415 deletions(-) create mode 100644 src/gui/qt-daemon/html/assets/scss/layout/_seed-phrase.scss create mode 100644 src/gui/qt-daemon/html_source/src/assets/scss/layout/_seed-phrase.scss diff --git a/src/gui/qt-daemon/html/assets/scss/base/_theme.scss b/src/gui/qt-daemon/html/assets/scss/base/_theme.scss index 71d3be81..e12eca73 100644 --- a/src/gui/qt-daemon/html/assets/scss/base/_theme.scss +++ b/src/gui/qt-daemon/html/assets/scss/base/_theme.scss @@ -33,6 +33,9 @@ $themes: ( accountBackgroundColor: rgba(43, 54, 68, 0.5), accountHoverBackgroundColor: rgba(58, 69, 85, 0.5), accountMainTextColor: #e0e0e0, + securedSeed: #e0e0e0, + seedItemText: #e0e0e0, + seedItemBackgroundColor: #18202a, accountOptionalTextColor: #556576, accountIndicatorTextColor: #111921, accountSwitchBackgroundColor: #000000, @@ -90,6 +93,9 @@ $themes: ( accountBackgroundColor: rgba(37, 40, 43, 0.5), accountHoverBackgroundColor: rgba(58, 62, 66, 0.5), accountMainTextColor: #e0e0e0, + securedSeed: #e0e0e0, + seedItemText: #e0e0e0, + seedItemBackgroundColor: #292d31, accountOptionalTextColor: #565c62, accountIndicatorTextColor: #1a1a1a, accountSwitchBackgroundColor: #000000, @@ -147,6 +153,9 @@ $themes: ( accountBackgroundColor: rgba(30, 136, 229, 1), accountHoverBackgroundColor: rgba(240, 240, 240, 0.5), accountMainTextColor: #ffffff, + securedSeed: #a0a5ab, + seedItemText: #43454b, + seedItemBackgroundColor: #e6e6e6, accountOptionalTextColor: #91baf1, accountIndicatorTextColor: #43454b, accountSwitchBackgroundColor: #ffffff, diff --git a/src/gui/qt-daemon/html/assets/scss/layout/_seed-phrase.scss b/src/gui/qt-daemon/html/assets/scss/layout/_seed-phrase.scss new file mode 100644 index 00000000..8a2b1e90 --- /dev/null +++ b/src/gui/qt-daemon/html/assets/scss/layout/_seed-phrase.scss @@ -0,0 +1,258 @@ +.form-details { + margin-top: 1.8rem; + + .input-block { + + &:first-child { + width: 50%; + } + } + + .wallet-buttons { + display: flex; + align-items: center; + justify-content: space-between; + + button { + margin: 2.9rem 0; + width: 100%; + max-width: 15rem; + } + } +} + +.form-seed { + + label { + @include themify($themes) { + color: themed(optionalTextColor); + } + + font-size: 1.3rem; + line-height: 2.4rem; + } + + .form-content { + @include themify($themes) { + border: 2px solid themed(transparentButtonBorderColor); + } + + display: flex; + justify-content: center; + padding: 3rem; + width: 100%; + } + + .text-coral { + @include themify($themes) { + color: themed(blueTextColor); + } + text-decoration: none; + } + + .seed-phrase-form { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + max-width: 38rem; + width: 100%; + + .input-block, + button { + width: 100%; + } + + .error-message { + margin-top: 1rem; + @include themify($themes) { + color: themed(orangeTextColor); + } + } + + .secured-seed { + @include themify($themes) { + color: themed(securedSeed); + } + font-size: 1.2rem; + line-height: 2.4rem; + text-decoration: none; + display: flex; + align-items: center; + cursor: pointer; + + .icon { + margin-right: 1.2rem; + } + } + + button { + display: flex; + justify-content: center; + align-items: center; + margin-top: 3rem; + margin-bottom: 2rem; + + .icon { + margin-right: 1.2rem; + } + } + + } +} + +.seed-phrase { + display: flex; + flex-direction: column; + width: 100%; + background-color: transparent !important; + + &-title { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + @include themify($themes) { + color: themed(optionalTextColor); + } + .right-part { + display: inline-flex; + align-items: center; + + .icon { + cursor: pointer; + width: 1.7rem; + height: 1.7rem; + + &.copy { + @include themify($themes) { + background-color: themed(blueTextColor); + } + margin-right: 1.2rem; + mask: url(~src/assets/icons/copy.svg) no-repeat center; + + &:hover { + opacity: 0.75; + } + } + + &.copied { + @include themify($themes) { + background-color: themed(blueTextColor); + } + margin-right: 1.2rem; + mask: url(~src/assets/icons/complete-testwallet.svg) no-repeat center; + } + + &.secured, + &.unsecured { + margin-left: 1.2rem; + } + } + + span { + font-size: 1.3rem; + line-height: 2.4rem; + display: inline-flex; + align-items: center; + + .icon { + margin-left: 1.2rem; + } + } + } + } + + &-content { + @include themify($themes) { + border-top: 2px solid themed(transparentButtonBorderColor); + border-bottom: 2px solid themed(transparentButtonBorderColor); + } + padding: 1rem 0 1rem; + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + margin-bottom: 1rem; + + .item { + @include themify($themes) { + color: themed(seedItemText); + } + display: flex; + align-items: center; + padding: 0 2rem; + width: calc(100% / 7); + min-height: 35px; + font-size: 1.3rem; + + &.dark { + @include themify($themes) { + background-color: themed(seedItemBackgroundColor); + } + } + } + } + + &-footer { + text-align: center; + + .title { + @include themify($themes) { + color: themed(seedItemText); + } + font-size: 1.3rem; + line-height: 2.4rem; + } + } +} + +.icon { + display: inline-flex; + width: 1.6rem; + height: 1.6rem; + + &.secured { + @include themify($themes) { + background-color: themed(greenTextColor); + } + mask: url(~src/assets/icons/secured.svg) no-repeat center; + } + + &.info { + @include themify($themes) { + background-color: themed(blueTextColor); + } + mask: url(~src/assets/icons/info.svg) no-repeat center; + } + + &.unsecured { + @include themify($themes) { + background-color: themed(orangeTextColor); + } + mask: url(~src/assets/icons/unsecured.svg) no-repeat center; + } + + &.safety { + @include themify($themes) { + background-color: themed(alternativeTextColor); + } + mask: url(~src/assets/icons/safety.svg) no-repeat center; + } +} + +.wrap-buttons { + display: flex; + + .seed-phrase-button { + margin: 2.8rem 0; + width: 25%; + min-width: 1.5rem; + } + + .copy-button { + margin: 2.8rem 1rem; + width: 25%; + min-width: 1.5rem; + } +} \ No newline at end of file diff --git a/src/gui/qt-daemon/html/main.js b/src/gui/qt-daemon/html/main.js index 300fda39..5c4c4918 100644 --- a/src/gui/qt-daemon/html/main.js +++ b/src/gui/qt-daemon/html/main.js @@ -5044,7 +5044,7 @@ var ContractsComponent = /** @class */ (function () { /*! no static exports found */ /***/ (function(module, exports) { -module.exports = "
\r\n\r\n
\r\n
\r\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\r\n {{ 'BREADCRUMBS.CREATE_WALLET' | translate }}\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\r\n
\r\n
\r\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\r\n
\r\n
\r\n
= variablesService.maxWalletNameLength\">\r\n {{ 'CREATE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ 'CREATE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n" +module.exports = "
\r\n\r\n
\r\n
\r\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\r\n {{ 'BREADCRUMBS.CREATE_WALLET' | translate }}\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\r\n
\r\n
\r\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\r\n
\r\n
\r\n
= variablesService.maxWalletNameLength\">\r\n {{ 'CREATE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ 'CREATE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n" /***/ }), @@ -5151,7 +5151,7 @@ var CreateWalletComponent = /** @class */ (function () { _this.variablesService.opening_wallet.currentPage = 1; _this.ngZone.run(function () { _this.walletSaved = true; - _this.progressWidth = '50%'; + _this.progressWidth = '33%'; }); } else { @@ -6092,7 +6092,7 @@ var MessagesComponent = /** @class */ (function () { /*! no static exports found */ /***/ (function(module, exports) { -module.exports = "
\r\n

{{ 'OPEN_WALLET.MODAL.TITLE' | translate }}

\r\n
\r\n
{{ wallet.name }}
\r\n
{{ wallet.path }}
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ 'OPEN_WALLET.MODAL.NOT_FOUND' | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n" +module.exports = "
\r\n

{{ 'OPEN_WALLET.MODAL.TITLE' | translate }}

\r\n
\r\n
{{ wallet.name }}
\r\n
{{ wallet.path }}
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ 'OPEN_WALLET.MODAL.NOT_FOUND' | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n" /***/ }), @@ -6154,21 +6154,9 @@ var OpenWalletModalComponent = /** @class */ (function () { }; } OpenWalletModalComponent.prototype.ngOnInit = function () { - var _this = this; if (this.wallets.length) { this.wallet = this.wallets[0]; this.wallet.pass = ''; - this.backend.openWallet(this.wallet.path, '', this.variablesService.count, true, function (status, data, error) { - if (error === 'FILE_NOT_FOUND') { - _this.wallet.notFound = true; - } - if (status) { - _this.wallet.pass = ''; - _this.wallet.emptyPass = true; - _this.backend.closeWallet(data.wallet_id); - _this.openWallet(); - } - }); } }; OpenWalletModalComponent.prototype.openWallet = function () { @@ -6178,6 +6166,9 @@ var OpenWalletModalComponent = /** @class */ (function () { } this.backend.openWallet(this.wallet.path, this.wallet.pass, this.variablesService.count, false, function (open_status, open_data, open_error) { if (open_error && open_error === 'FILE_NOT_FOUND') { + _this.ngZone.run(function () { + _this.wallet.notFound = true; + }); var error_translate = _this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1'); error_translate += ':
' + _this.wallet.path; error_translate += _this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2'); @@ -7119,12 +7110,12 @@ var RestoreWalletComponent = /** @class */ (function () { RestoreWalletComponent.prototype.changeDetectionSeedPhrasePassword = function () { var _this = this; this.restoreForm.controls.seedPassword.valueChanges - .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["debounceTime"])(0), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["distinctUntilChanged"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["takeUntil"])(this.unsubscribeAll)) + .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["startWith"])(null), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["pairwise"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["takeUntil"])(this.unsubscribeAll)) .subscribe(function () { _this.checkValidSeedPhrasePassword(); }); this.restoreForm.controls.key.valueChanges - .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["debounceTime"])(0), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["distinctUntilChanged"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["takeUntil"])(this.unsubscribeAll)) + .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["startWith"])(null), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["pairwise"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["takeUntil"])(this.unsubscribeAll)) .subscribe(function () { _this.checkValidSeedPhrasePassword(); }); @@ -7134,7 +7125,9 @@ var RestoreWalletComponent = /** @class */ (function () { var seed_password = this.restoreForm.controls.seedPassword.value; var seed_phrase = this.restoreForm.controls.key.value; this.backend.getSeedPhraseInfo({ seed_phrase: seed_phrase, seed_password: seed_password }, function (status, data) { - _this.seedPhraseInfo = data; + _this.ngZone.run(function () { + _this.seedPhraseInfo = data; + }); }); }; RestoreWalletComponent.prototype.createWallet = function () { @@ -7280,7 +7273,7 @@ var RestoreWalletComponent = /** @class */ (function () { /*! no static exports found */ /***/ (function(module, exports) { -module.exports = "
\r\n\r\n
\r\n
\r\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\r\n {{ 'BREADCRUMBS.SAVE_PHRASE' | translate }}\r\n
\r\n \r\n
\r\n\r\n

{{ 'SEED_PHRASE.TITLE' | translate }}

\r\n\r\n
\r\n \r\n
{{(index + 1) + '. ' + word}}
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n" +module.exports = "
\r\n \r\n
\r\n
\r\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\r\n {{ 'BREADCRUMBS.SAVE_PHRASE' | translate }}\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\r\n
\r\n
\r\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\r\n
\r\n
\r\n
= variablesService.maxWalletNameLength\">\r\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\r\n \r\n\r\n \r\n\r\n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\r\n

\r\n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }}\r\n \r\n 0\">{{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }}\r\n \r\n

\r\n
\r\n
\r\n \r\n
= 1 && (index + 1) <= 7 || (index + 1) >= 15 && (index + 1) <= 21\">\r\n {{(index + 1) + '. ' + word}}
\r\n
\r\n
\r\n
0\">\r\n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n" /***/ }), @@ -7291,7 +7284,7 @@ module.exports = "
\r\n\r\n
\r\n < /*! no static exports found */ /***/ (function(module, exports) { -module.exports = ":host {\n position: relative; }\n\n.seed-phrase-title {\n line-height: 2.2rem;\n padding: 2.2rem 0; }\n\n.seed-phrase-content {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n padding: 1.4rem;\n width: 100%;\n height: 12rem; }\n\n.seed-phrase-content .word {\n line-height: 2.2rem;\n max-width: 13rem; }\n\n.wrap-buttons {\n display: flex; }\n\n.wrap-buttons .seed-phrase-button {\n margin: 2.8rem 0;\n width: 25%;\n min-width: 1.5rem; }\n\n.wrap-buttons .copy-button {\n margin: 2.8rem 1rem;\n width: 25%;\n min-width: 1.5rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VlZC1waHJhc2UvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcc2VlZC1waHJhc2VcXHNlZWQtcGhyYXNlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsbUJBQW1CO0VBQ25CLGlCQUFpQixFQUFBOztBQUduQjtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsZUFBZTtFQUNmLGVBQWU7RUFDZixXQUFXO0VBQ1gsYUFBYSxFQUFBOztBQU5mO0lBU0ksbUJBQW1CO0lBQ25CLGdCQUFnQixFQUFBOztBQUlwQjtFQUNFLGFBQWEsRUFBQTs7QUFEZjtJQUlJLGdCQUFnQjtJQUNoQixVQUFVO0lBQ1YsaUJBQWlCLEVBQUE7O0FBTnJCO0lBVUksbUJBQW1CO0lBQ25CLFVBQVU7SUFDVixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NlZWQtcGhyYXNlL3NlZWQtcGhyYXNlLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLnNlZWQtcGhyYXNlLXRpdGxlIHtcclxuICBsaW5lLWhlaWdodDogMi4ycmVtO1xyXG4gIHBhZGRpbmc6IDIuMnJlbSAwO1xyXG59XHJcblxyXG4uc2VlZC1waHJhc2UtY29udGVudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBwYWRkaW5nOiAxLjRyZW07XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMnJlbTtcclxuXHJcbiAgLndvcmQge1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuMnJlbTtcclxuICAgIG1heC13aWR0aDogMTNyZW07XHJcbiAgfVxyXG59XHJcblxyXG4ud3JhcC1idXR0b25zIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAuc2VlZC1waHJhc2UtYnV0dG9uIHtcclxuICAgIG1hcmdpbjogMi44cmVtIDA7XHJcbiAgICB3aWR0aDogMjUlO1xyXG4gICAgbWluLXdpZHRoOiAxLjVyZW07XHJcbiAgfVxyXG5cclxuICAuY29weS1idXR0b24ge1xyXG4gICAgbWFyZ2luOiAyLjhyZW0gMXJlbTtcclxuICAgIHdpZHRoOiAyNSU7XHJcbiAgICBtaW4td2lkdGg6IDEuNXJlbTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ== */" +module.exports = ":host {\n position: relative; }\n\n.content {\n padding: 3.2rem 3rem 3rem; }\n\n.scrolled-content, .content {\n height: 100%;\n overflow-y: auto; }\n\n.mt-2 {\n margin-top: 2rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VlZC1waHJhc2UvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcc2VlZC1waHJhc2VcXHNlZWQtcGhyYXNlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UseUJBQXlCLEVBQUE7O0FBRTNCO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQixFQUFBOztBQUdsQjtFQUNFLGdCQUFnQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2VlZC1waHJhc2Uvc2VlZC1waHJhc2UuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uY29udGVudCB7XHJcbiAgcGFkZGluZzogMy4ycmVtIDNyZW0gM3JlbTtcclxufVxyXG4uc2Nyb2xsZWQtY29udGVudCwgLmNvbnRlbnQge1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG59XHJcblxyXG4ubXQtMiB7XHJcbiAgbWFyZ2luLXRvcDogMnJlbTtcclxufVxyXG5cclxuIl19 */" /***/ }), @@ -7311,6 +7304,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); /* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); /* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); @@ -7326,8 +7320,10 @@ var __metadata = (undefined && undefined.__metadata) || function (k, v) { + var SeedPhraseComponent = /** @class */ (function () { function SeedPhraseComponent(route, router, location, backend, variablesService, modalService, ngZone) { + var _this = this; this.route = route; this.router = router; this.location = location; @@ -7336,20 +7332,57 @@ var SeedPhraseComponent = /** @class */ (function () { this.modalService = modalService; this.ngZone = ngZone; this.seedPhrase = ''; + this.showSeed = false; this.seedPhraseCopied = false; + this.progressWidth = '66%'; + this.detailsForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormGroup"]({ + name: new _angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormControl"]('', [ + _angular_forms__WEBPACK_IMPORTED_MODULE_6__["Validators"].required, + function (g) { + for (var i = 0; i < _this.variablesService.wallets.length; i++) { + if (g.value === _this.variablesService.wallets[i].name) { + if (_this.variablesService.wallets[i].wallet_id === + _this.variablesService.currentWallet.wallet_id) { + return { same: true }; + } + else { + return { duplicate: true }; + } + } + } + return null; + }, + ]), + path: new _angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormControl"](''), + }); + this.seedPhraseForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormGroup"]({ + password: new _angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_6__["Validators"].pattern(this.variablesService.pattern)), + confirmPassword: new _angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_6__["Validators"].pattern(this.variablesService.pattern)), + }, { validators: this.checkPasswords }); } + SeedPhraseComponent.prototype.checkPasswords = function (group) { + var pass = group.controls.password.value; + var confirmPass = group.controls.confirmPassword.value; + return pass === confirmPass ? null : { notSame: true }; + }; SeedPhraseComponent.prototype.ngOnInit = function () { + this.showSeed = false; + this.getWalletId(); + this.setWalletInfoNamePath(); + }; + SeedPhraseComponent.prototype.setWalletInfoNamePath = function () { + this.detailsForm + .get('name') + .setValue(this.variablesService.opening_wallet.name); + this.detailsForm + .get('path') + .setValue(this.variablesService.opening_wallet.path); + }; + SeedPhraseComponent.prototype.getWalletId = function () { var _this = this; this.queryRouting = this.route.queryParams.subscribe(function (params) { if (params.wallet_id) { _this.wallet_id = params.wallet_id; - _this.backend.getSmartWalletInfo(params.wallet_id, function (status, data) { - if (data.hasOwnProperty('seed_phrase')) { - _this.ngZone.run(function () { - _this.seedPhrase = data['seed_phrase'].trim(); - }); - } - }); } }); }; @@ -7398,6 +7431,25 @@ var SeedPhraseComponent = /** @class */ (function () { SeedPhraseComponent.prototype.back = function () { this.location.back(); }; + SeedPhraseComponent.prototype.showSeedPhrase = function () { + this.showSeed = true; + this.progressWidth = '100%'; + }; + SeedPhraseComponent.prototype.onSubmitSeed = function () { + var _this = this; + if (this.seedPhraseForm.valid) { + this.showSeedPhrase(); + var wallet_id = this.wallet_id; + var seed_password = this.seedPhraseForm.controls.password.value; + this.backend.getSmartWalletInfo({ wallet_id: wallet_id, seed_password: seed_password }, function (status, data) { + if (data.hasOwnProperty('seed_phrase')) { + _this.ngZone.run(function () { + _this.seedPhrase = data['seed_phrase'].trim(); + }); + } + }); + } + }; SeedPhraseComponent.prototype.ngOnDestroy = function () { this.queryRouting.unsubscribe(); }; @@ -8939,7 +8991,7 @@ var TypingMessageComponent = /** @class */ (function () { /*! no static exports found */ /***/ (function(module, exports) { -module.exports = "
\r\n\r\n
\r\n
\r\n {{variablesService.currentWallet.name}}\r\n {{ 'BREADCRUMBS.WALLET_DETAILS' | translate }}\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\r\n
\r\n
\r\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\r\n
\r\n
\r\n
= variablesService.maxWalletNameLength\">\r\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\r\n \r\n\r\n \r\n\r\n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\r\n

\r\n \r\n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }} \r\n 0\">{{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }} \r\n

\r\n
\r\n
\r\n \r\n
= 1 && (index + 1) <= 7 || (index + 1) >= 15 && (index + 1) <= 21\">\r\n {{(index + 1) + '. ' + word}}
\r\n
\r\n
\r\n
0\">\r\n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\r\n
\r\n
\r\n
\r\n
" +module.exports = "
\r\n\r\n
\r\n
\r\n {{variablesService.currentWallet.name}}\r\n {{ 'BREADCRUMBS.WALLET_DETAILS' | translate }}\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\r\n
\r\n
\r\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\r\n
\r\n
\r\n
= variablesService.maxWalletNameLength\">\r\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\r\n \r\n\r\n \r\n\r\n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\r\n

\r\n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }} \r\n 0\">{{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }} \r\n

\r\n
\r\n
\r\n \r\n
= 1 && (index + 1) <= 7 || (index + 1) >= 15 && (index + 1) <= 21\">\r\n {{(index + 1) + '. ' + word}}
\r\n
\r\n
\r\n
0\">\r\n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\r\n
\r\n
\r\n
\r\n
" /***/ }), @@ -8950,7 +9002,7 @@ module.exports = "
\r\n\r\n
\r\n < /*! no static exports found */ /***/ (function(module, exports) { -module.exports = ".form-details {\n margin-top: 1.8rem; }\n .form-details .input-block:first-child {\n width: 50%; }\n .form-details .wallet-buttons {\n display: flex;\n align-items: center;\n justify-content: space-between; }\n .form-details .wallet-buttons button {\n margin: 2.9rem 0;\n width: 100%;\n max-width: 15rem; }\n .mt-2 {\n margin-top: 2rem; }\n .form-seed label {\n color: #556576;\n font-size: 1.3rem;\n line-height: 2.4rem; }\n .form-seed .form-content {\n border: 2px solid #2b3644;\n display: flex;\n justify-content: center;\n padding: 3rem;\n width: 100%; }\n .form-seed .text-coral {\n color: #4db1ff;\n text-decoration: none; }\n .form-seed .seed-phrase-form {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 38rem;\n width: 100%; }\n .form-seed .seed-phrase-form .input-block,\n .form-seed .seed-phrase-form button {\n width: 100%; }\n .form-seed .seed-phrase-form .error-message {\n margin-top: 1rem;\n color: #ff6f00; }\n .form-seed .seed-phrase-form .secured-seed {\n color: #e0e0e0;\n font-size: 1.2rem;\n line-height: 2.4rem;\n text-decoration: none;\n display: flex;\n align-items: center;\n cursor: pointer; }\n .form-seed .seed-phrase-form .secured-seed .icon {\n margin-right: 1.2rem; }\n .form-seed .seed-phrase-form button {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-top: 3rem;\n margin-bottom: 2rem; }\n .form-seed .seed-phrase-form button .icon {\n margin-right: 1.2rem; }\n .seed-phrase {\n display: flex;\n flex-direction: column;\n width: 100%;\n background-color: transparent !important; }\n .seed-phrase-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%; }\n .seed-phrase-title .right-part {\n display: inline-flex;\n align-items: center; }\n .seed-phrase-title .right-part .icon {\n cursor: pointer;\n width: 1.7rem;\n height: 1.7rem; }\n .seed-phrase-title .right-part .icon.copy {\n background-color: #4caefb;\n margin-right: 1.2rem;\n -webkit-mask: url('copy.svg') no-repeat center;\n mask: url('copy.svg') no-repeat center; }\n .seed-phrase-title .right-part .icon.copy:hover {\n opacity: 0.75; }\n .seed-phrase-title .right-part .icon.copied {\n margin-right: 1.2rem;\n background-color: #4caefb;\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\n mask: url('complete-testwallet.svg') no-repeat center; }\n .seed-phrase-title .right-part .icon.secured, .seed-phrase-title .right-part .icon.unsecured {\n margin-left: 1.2rem; }\n .seed-phrase-title .right-part span {\n color: #556576;\n font-size: 1.3rem;\n line-height: 2.4rem;\n display: inline-flex;\n align-items: center; }\n .seed-phrase-title .right-part span .icon {\n margin-left: 1.2rem; }\n .seed-phrase-content {\n border-top: 2px solid #2b3644;\n border-bottom: 2px solid #2b3644;\n padding: 1rem 0 1rem;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n margin-bottom: 1rem; }\n .seed-phrase-content .item {\n display: flex;\n align-items: center;\n padding: 0 2rem;\n width: calc(100% / 7);\n min-height: 35px;\n font-size: 1.3rem;\n color: #e0e0e0; }\n .seed-phrase-content .item.dark {\n background-color: #18202a; }\n .seed-phrase-footer {\n text-align: center; }\n .seed-phrase-footer .title {\n color: #556576;\n font-size: 1.3rem;\n line-height: 2.4rem; }\n .icon {\n display: inline-flex;\n width: 1.6rem;\n height: 1.6rem; }\n .icon.secured {\n background-color: #5cda9d;\n -webkit-mask: url('secured.svg') no-repeat center;\n mask: url('secured.svg') no-repeat center; }\n .icon.info {\n background-color: #4caefb;\n -webkit-mask: url('info.svg') no-repeat center;\n mask: url('info.svg') no-repeat center; }\n .icon.unsecured {\n background-color: #ff6f00;\n -webkit-mask: url('unsecured.svg') no-repeat center;\n mask: url('unsecured.svg') no-repeat center; }\n .icon.safety {\n background-color: #111921;\n -webkit-mask: url('safety.svg') no-repeat center;\n mask: url('safety.svg') no-repeat center; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvd2FsbGV0LWRldGFpbHMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcd2FsbGV0LWRldGFpbHNcXHdhbGxldC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7RUFEcEI7SUFNTSxVQUFVLEVBQUE7RUFOaEI7SUFXSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4QixFQUFBO0VBYmxDO01BZ0JNLGdCQUFnQjtNQUNoQixXQUFXO01BQ1gsZ0JBQWdCLEVBQUE7RUFLdEI7RUFDRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUdJLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsbUJBQW1CLEVBQUE7RUFMdkI7RUFTSSx5QkFBeUI7RUFDekIsYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixhQUFhO0VBQ2IsV0FBVyxFQUFBO0VBYmY7RUFpQkksY0FBYztFQUNkLHFCQUFxQixFQUFBO0VBbEJ6QjtFQXNCSSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLFdBQVcsRUFBQTtFQTNCZjs7SUErQk0sV0FBVyxFQUFBO0VBL0JqQjtJQW1DTSxnQkFBZ0I7SUFDaEIsY0FBYyxFQUFBO0VBcENwQjtJQXdDTSxjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixxQkFBcUI7SUFDckIsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixlQUFlLEVBQUE7RUE5Q3JCO01BaURRLG9CQUFvQixFQUFBO0VBakQ1QjtJQXNETSxhQUFhO0lBQ2IsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsbUJBQW1CLEVBQUE7RUExRHpCO01BNkRRLG9CQUFvQixFQUFBO0VBTzVCO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXO0VBQ1gsd0NBQXdDLEVBQUE7RUFFeEM7SUFDRSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4QjtJQUM5QixXQUFXLEVBQUE7RUFKWjtNQU1HLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTtFQVB0QjtRQVNLLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYyxFQUFBO0VBWG5CO1VBY08seUJBQXlCO1VBQ3pCLG9CQUFvQjtVQUNwQiw4Q0FBc0Q7a0JBQXRELHNDQUFzRCxFQUFBO0VBaEI3RDtZQW1CUyxhQUFhLEVBQUE7RUFuQnRCO1VBd0JPLG9CQUFvQjtVQUNwQix5QkFBeUI7VUFDekIsNkRBQXFFO2tCQUFyRSxxREFBcUUsRUFBQTtFQTFCNUU7VUE2Qk8sbUJBQW1CLEVBQUE7RUE3QjFCO1FBa0NLLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQixtQkFBbUIsRUFBQTtFQXRDeEI7VUF5Q08sbUJBQW1CLEVBQUE7RUFNM0I7SUFDRSw2QkFBNkI7SUFDN0IsZ0NBQWdDO0lBQ2hDLG9CQUFvQjtJQUNwQixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixlQUFlO0lBQ2YsbUJBQW1CLEVBQUE7RUFScEI7TUFXRyxhQUFhO01BQ2IsbUJBQW1CO01BQ25CLGVBQWU7TUFDZixxQkFBcUI7TUFDckIsZ0JBQWdCO01BQ2hCLGlCQUFpQjtNQUNqQixjQUFjLEVBQUE7RUFqQmpCO1FBb0JLLHlCQUF5QixFQUFBO0VBSy9CO0lBQ0Usa0JBQWtCLEVBQUE7RUFEbkI7TUFHRyxjQUFjO01BQ2QsaUJBQWlCO01BQ2pCLG1CQUFtQixFQUFBO0VBS3pCO0VBQ0Usb0JBQW9CO0VBQ3BCLGFBQWE7RUFDYixjQUFjLEVBQUE7RUFIaEI7SUFNSSx5QkFBeUI7SUFDekIsaURBQXlEO1lBQXpELHlDQUF5RCxFQUFBO0VBUDdEO0lBV0kseUJBQXlCO0lBQ3pCLDhDQUFzRDtZQUF0RCxzQ0FBc0QsRUFBQTtFQVoxRDtJQWdCSSx5QkFBeUI7SUFDekIsbURBQTJEO1lBQTNELDJDQUEyRCxFQUFBO0VBakIvRDtJQXFCSSx5QkFBeUI7SUFDekIsZ0RBQXdEO1lBQXhELHdDQUF3RCxFQUFBIiwiZmlsZSI6InNyYy9hcHAvd2FsbGV0LWRldGFpbHMvd2FsbGV0LWRldGFpbHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZm9ybS1kZXRhaWxzIHtcclxuICBtYXJnaW4tdG9wOiAxLjhyZW07XHJcblxyXG4gIC5pbnB1dC1ibG9jayB7XHJcblxyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud2FsbGV0LWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgbWFyZ2luOiAyLjlyZW0gMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubXQtMiB7XHJcbiAgbWFyZ2luLXRvcDogMnJlbTtcclxufVxyXG5cclxuLmZvcm0tc2VlZCB7XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIGNvbG9yOiAjNTU2NTc2O1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tY29udGVudCB7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjMmIzNjQ0O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgcGFkZGluZzogM3JlbTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLnRleHQtY29yYWwge1xyXG4gICAgY29sb3I6ICM0ZGIxZmY7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgfVxyXG5cclxuICAuc2VlZC1waHJhc2UtZm9ybSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIG1heC13aWR0aDogMzhyZW07XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAuaW5wdXQtYmxvY2ssXHJcbiAgICBidXR0b24ge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAuZXJyb3ItbWVzc2FnZSB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XHJcbiAgICAgIGNvbG9yOiAjZmY2ZjAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWN1cmVkLXNlZWQge1xyXG4gICAgICBjb2xvcjogI2UwZTBlMDtcclxuICAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjRyZW07XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICAgLmljb24ge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbi10b3A6IDNyZW07XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XHJcblxyXG4gICAgICAuaWNvbiB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjJyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcblxyXG4uc2VlZC1waHJhc2Uge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB3aWR0aDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cclxuICAmLXRpdGxlIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICAucmlnaHQtcGFydCB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAuaWNvbiB7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgICAgaGVpZ2h0OiAxLjdyZW07XHJcbiAgICBcclxuICAgICAgICAmLmNvcHkge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWVmYjtcclxuICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2NvcHkuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgXHJcbiAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC43NTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAmLmNvcGllZCB7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMnJlbTtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0Y2FlZmI7XHJcbiAgICAgICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvY29tcGxldGUtdGVzdHdhbGxldC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuc2VjdXJlZCwgJi51bnNlY3VyZWQge1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMnJlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICBcclxuICAgICAgc3BhbiB7XHJcbiAgICAgICAgY29sb3I6ICM1NTY1NzY7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuNHJlbTtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIFxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLWNvbnRlbnQge1xyXG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMyYjM2NDQ7XHJcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzJiMzY0NDtcclxuICAgIHBhZGRpbmc6IDFyZW0gMCAxcmVtO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcblxyXG4gICAgLml0ZW0ge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBwYWRkaW5nOiAwIDJyZW07XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyA3KTtcclxuICAgICAgbWluLWhlaWdodDogMzVweDtcclxuICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgIGNvbG9yOiAjZTBlMGUwO1xyXG5cclxuICAgICAgJi5kYXJrIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgyMDJhO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLWZvb3RlciB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAudGl0bGUge1xyXG4gICAgICBjb2xvcjogIzU1NjU3NjtcclxuICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjRyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaWNvbiB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgd2lkdGg6IDEuNnJlbTtcclxuICBoZWlnaHQ6IDEuNnJlbTtcclxuXHJcbiAgJi5zZWN1cmVkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2RhOWQ7XHJcbiAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvc2VjdXJlZC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAmLmluZm8ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWVmYjtcclxuICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9pbmZvLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICB9XHJcblxyXG4gICYudW5zZWN1cmVkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7XHJcbiAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvdW5zZWN1cmVkLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICB9XHJcblxyXG4gICYuc2FmZXR5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMxMTE5MjE7XHJcbiAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvc2FmZXR5LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICB9XHJcbn0iXX0= */" +module.exports = ".form-details {\n margin-top: 1.8rem; }\n .form-details .input-block:first-child {\n width: 50%; }\n .form-details .wallet-buttons {\n display: flex;\n align-items: center;\n justify-content: space-between; }\n .form-details .wallet-buttons button {\n margin: 2.9rem 0;\n width: 100%;\n max-width: 15rem; }\n .mt-2 {\n margin-top: 2rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvd2FsbGV0LWRldGFpbHMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcd2FsbGV0LWRldGFpbHNcXHdhbGxldC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7RUFEcEI7SUFNTSxVQUFVLEVBQUE7RUFOaEI7SUFXSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4QixFQUFBO0VBYmxDO01BZ0JNLGdCQUFnQjtNQUNoQixXQUFXO01BQ1gsZ0JBQWdCLEVBQUE7RUFLdEI7RUFDRSxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3dhbGxldC1kZXRhaWxzL3dhbGxldC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tZGV0YWlscyB7XHJcbiAgbWFyZ2luLXRvcDogMS44cmVtO1xyXG5cclxuICAuaW5wdXQtYmxvY2sge1xyXG5cclxuICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLndhbGxldC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMi45cmVtIDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXgtd2lkdGg6IDE1cmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm10LTIge1xyXG4gIG1hcmdpbi10b3A6IDJyZW07XHJcbn1cclxuIl19 */" /***/ }), @@ -9092,16 +9144,7 @@ var WalletDetailsComponent = /** @class */ (function () { WalletDetailsComponent.prototype.back = function () { this.location.back(); }; - WalletDetailsComponent.prototype.copySeedPhrase = function () { - var _this = this; - this.backend.setClipboard(this.seedPhrase); - this.copyAnimation = true; - this.copyAnimationTimeout = window.setTimeout(function () { - _this.copyAnimation = false; - }, 2000); - }; WalletDetailsComponent.prototype.ngOnDestroy = function () { - clearTimeout(this.copyAnimationTimeout); }; WalletDetailsComponent = __decorate([ Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ @@ -9214,7 +9257,7 @@ var WalletComponent = /** @class */ (function () { indicator: false, active: true, animated: _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_7__.history, - itemHovered: false + itemHovered: false, }, { title: 'WALLET.TABS.SEND', @@ -9223,7 +9266,7 @@ var WalletComponent = /** @class */ (function () { indicator: false, active: false, animated: _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_7__.send, - itemHovered: false + itemHovered: false, }, { title: 'WALLET.TABS.RECEIVE', @@ -9232,7 +9275,7 @@ var WalletComponent = /** @class */ (function () { indicator: false, active: false, animated: _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_7__.receive, - itemHovered: false + itemHovered: false, }, { title: 'WALLET.TABS.CONTRACTS', @@ -9241,7 +9284,7 @@ var WalletComponent = /** @class */ (function () { indicator: 1, active: false, animated: _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_7__.contracts, - itemHovered: false + itemHovered: false, }, /*{ title: 'WALLET.TABS.MESSAGES', @@ -9259,8 +9302,8 @@ var WalletComponent = /** @class */ (function () { indicator: false, active: false, animated: _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_7__.staking, - itemHovered: false - } + itemHovered: false, + }, ]; } WalletComponent.prototype.ngOnInit = function () { @@ -9268,8 +9311,12 @@ var WalletComponent = /** @class */ (function () { this.subRouting1 = this.route.params.subscribe(function (params) { // set current wallet only by user click to avoid after sync show synchronized data _this.walletID = +params['id']; + _this.walletLoaded = _this.variablesService.getWallet(_this.walletID).loaded; _this.variablesService.setCurrentWallet(_this.walletID); - _this.walletsSubscription = _this.store.select('sync').pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_11__["filter"])(Boolean), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_11__["distinctUntilChanged"])()).subscribe(function (value) { + _this.walletsSubscription = _this.store + .select('sync') + .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_11__["filter"])(Boolean), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_11__["distinctUntilChanged"])()) + .subscribe(function (value) { var data = value.filter(function (item) { return item.wallet_id === _this.walletID; })[0]; if (data && !data.sync) { var in_progress = void 0; @@ -9289,7 +9336,9 @@ var WalletComponent = /** @class */ (function () { if (_this.variablesService.after_sync_request.hasOwnProperty(_this.walletID)) { restore = _this.variablesService.after_sync_request[_this.walletID]; } - if (!_this.variablesService.sync_started && restore && _this.walletID === (data && data.wallet_id)) { + if (!_this.variablesService.sync_started && + restore && + _this.walletID === (data && data.wallet_id)) { _this.wallet = _this.variablesService.getNotLoadedWallet(); if (_this.wallet) { _this.tick(); @@ -9329,10 +9378,15 @@ var WalletComponent = /** @class */ (function () { }); this.subRouting2 = this.router.events.subscribe(function (val) { if (val instanceof _angular_router__WEBPACK_IMPORTED_MODULE_1__["RoutesRecognized"]) { - _this.activeTab = val.urlAfterRedirects.replace('?sidenav=true', '').split('/').pop(); + _this.activeTab = val.urlAfterRedirects + .replace('?sidenav=true', '') + .split('/') + .pop(); if (val.state.root.firstChild && val.state.root.firstChild.firstChild) { for (var i = 0; i < _this.tabs.length; i++) { - _this.tabs[i].active = (_this.tabs[i].link === '/' + val.state.root.firstChild.firstChild.url[0].path); + _this.tabs[i].active = + _this.tabs[i].link === + '/' + val.state.root.firstChild.firstChild.url[0].path; } } } @@ -9359,7 +9413,8 @@ var WalletComponent = /** @class */ (function () { WalletComponent.prototype.resetPaginationValues = function () { var _this = this; this.ngZone.run(function () { - var total_history_item = _this.variablesService.currentWallet.total_history_item; + var total_history_item = _this.variablesService.currentWallet + .total_history_item; var count = _this.variablesService.count; _this.variablesService.currentWallet.totalPages = Math.ceil(total_history_item / count); _this.variablesService.currentWallet.exclude_mining_txs = _this.mining; @@ -9367,15 +9422,27 @@ var WalletComponent = /** @class */ (function () { if (!_this.variablesService.currentWallet.totalPages) { _this.variablesService.currentWallet.totalPages = 1; } - _this.variablesService.currentWallet.totalPages > _this.variablesService.maxPages - ? _this.variablesService.currentWallet.pages = new Array(5).fill(1).map(function (value, index) { return value + index; }) - : _this.variablesService.currentWallet.pages = new Array(_this.variablesService.currentWallet.totalPages).fill(1).map(function (value, index) { return value + index; }); + _this.variablesService.currentWallet.totalPages > + _this.variablesService.maxPages + ? (_this.variablesService.currentWallet.pages = new Array(5) + .fill(1) + .map(function (value, index) { return value + index; })) + : (_this.variablesService.currentWallet.pages = new Array(_this.variablesService.currentWallet.totalPages) + .fill(1) + .map(function (value, index) { return value + index; })); }); }; WalletComponent.prototype.changeTab = function (index) { var _this = this; - if (((this.tabs[index].link === '/send' || this.tabs[index].link === '/contracts' || this.tabs[index].link === '/staking') && (this.variablesService.daemon_state !== 2 || !this.variablesService.currentWallet.loaded)) - || ((this.tabs[index].link === '/send' || this.tabs[index].link === '/contracts') && this.variablesService.currentWallet.is_watch_only && this.variablesService.currentWallet.is_auditable)) { + if (((this.tabs[index].link === '/send' || + this.tabs[index].link === '/contracts' || + this.tabs[index].link === '/staking') && + (this.variablesService.daemon_state !== 2 || + !this.variablesService.currentWallet.loaded)) || + ((this.tabs[index].link === '/send' || + this.tabs[index].link === '/contracts') && + this.variablesService.currentWallet.is_watch_only && + this.variablesService.currentWallet.is_auditable)) { return; } this.tabs.forEach(function (tab) { @@ -9403,11 +9470,17 @@ var WalletComponent = /** @class */ (function () { this.balanceTooltip = document.createElement('div'); var available = document.createElement('span'); available.setAttribute('class', 'available'); - available.innerHTML = this.translate.instant('WALLET.AVAILABLE_BALANCE', { available: this.intToMoneyPipe.transform(this.variablesService.currentWallet.unlocked_balance), currency: this.variablesService.defaultCurrency }); + available.innerHTML = this.translate.instant('WALLET.AVAILABLE_BALANCE', { + available: this.intToMoneyPipe.transform(this.variablesService.currentWallet.unlocked_balance), + currency: this.variablesService.defaultCurrency, + }); this.balanceTooltip.appendChild(available); var locked = document.createElement('span'); locked.setAttribute('class', 'locked'); - locked.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE', { locked: this.intToMoneyPipe.transform(this.variablesService.currentWallet.balance.minus(this.variablesService.currentWallet.unlocked_balance)), currency: this.variablesService.defaultCurrency }); + locked.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE', { + locked: this.intToMoneyPipe.transform(this.variablesService.currentWallet.balance.minus(this.variablesService.currentWallet.unlocked_balance)), + currency: this.variablesService.defaultCurrency, + }); this.balanceTooltip.appendChild(locked); var link = document.createElement('span'); link.setAttribute('class', 'link'); @@ -9426,7 +9499,8 @@ var WalletComponent = /** @class */ (function () { }; WalletComponent.prototype.setPage = function (pageNumber) { // this is will allow pagination for wallets that was open from existed wallets' - if (this.variablesService.currentWallet.open_from_exist && !this.variablesService.currentWallet.updated) { + if (this.variablesService.currentWallet.open_from_exist && + !this.variablesService.currentWallet.updated) { this.variablesService.get_recent_transfers = false; this.variablesService.currentWallet.updated = true; } @@ -9472,18 +9546,24 @@ var WalletComponent = /** @class */ (function () { var _this = this; var offset = this.pagination.getOffset(this.walletID); var value = this.paginationStore.value; - var pages = value ? value.filter(function (item) { return item.walletID === _this.walletID; }) : []; + var pages = value + ? value.filter(function (item) { return item.walletID === _this.walletID; }) + : []; this.backend.getRecentTransfers(this.walletID, offset, this.variablesService.count, this.variablesService.currentWallet.exclude_mining_txs, function (status, data) { var isForward = _this.paginationStore.isForward(pages, _this.variablesService.currentWallet.currentPage); if (_this.mining && isForward && pages && pages.length === 1) { _this.variablesService.currentWallet.currentPage = 1; // set init page after navigation back } - var history = (data && data.history); - _this.variablesService.stop_paginate[_this.walletID] = history && history.length < _this.variablesService.count || !history; + var history = data && data.history; + _this.variablesService.stop_paginate[_this.walletID] = + (history && history.length < _this.variablesService.count) || !history; _this.stop_paginate = _this.variablesService.stop_paginate[_this.walletID]; if (!_this.variablesService.stop_paginate[_this.walletID]) { var page = _this.variablesService.currentWallet.currentPage + 1; - if (isForward && _this.mining && history && history.length === _this.variablesService.count) { + if (isForward && + _this.mining && + history && + history.length === _this.variablesService.count) { _this.paginationStore.setPage(page, data.last_item_index, _this.walletID); // add back page for current page } } @@ -9511,12 +9591,29 @@ var WalletComponent = /** @class */ (function () { }; WalletComponent.prototype.updateWalletStatus = function () { var _this = this; + this.backend.eventSubscribe('wallet_sync_progress', function (data) { + var wallet_id = data.wallet_id; + if (wallet_id === _this.walletID) { + _this.ngZone.run(function () { + _this.walletLoaded = false; + }); + } + }); this.backend.eventSubscribe('update_wallet_status', function (data) { var wallet_state = data.wallet_state; - _this.walletLoaded = false; - if (wallet_state === 2) { - _this.walletLoaded = true; - } + var wallet_id = data.wallet_id; + _this.ngZone.run(function () { + if (wallet_state === 2 && wallet_id === _this.walletID) { + _this.walletLoaded = + _this.variablesService.getWallet(_this.walletID) !== null && + _this.variablesService.getWallet(_this.walletID).loaded + ? true + : false; + } + else { + _this.walletLoaded = false; + } + }); }); }; __decorate([ diff --git a/src/gui/qt-daemon/html/main.js.map b/src/gui/qt-daemon/html/main.js.map index bda76f95..966ac261 100644 --- a/src/gui/qt-daemon/html/main.js.map +++ b/src/gui/qt-daemon/html/main.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/_helpers/directives/confirm-modal/confirm-modal.component.html","webpack:///./src/app/_helpers/directives/confirm-modal/confirm-modal.component.scss","webpack:///./src/app/_helpers/directives/confirm-modal/confirm-modal.component.ts","webpack:///./src/app/_helpers/directives/input-disable-selection/input-disable-selection.directive.ts","webpack:///./src/app/_helpers/directives/input-validate/input-validate.directive.ts","webpack:///./src/app/_helpers/directives/modal-container/modal-container.component.html","webpack:///./src/app/_helpers/directives/modal-container/modal-container.component.scss","webpack:///./src/app/_helpers/directives/modal-container/modal-container.component.ts","webpack:///./src/app/_helpers/directives/progress-container/progress-container.component.html","webpack:///./src/app/_helpers/directives/progress-container/progress-container.component.scss","webpack:///./src/app/_helpers/directives/progress-container/progress-container.component.ts","webpack:///./src/app/_helpers/directives/staking-switch/staking-switch.component.html","webpack:///./src/app/_helpers/directives/staking-switch/staking-switch.component.scss","webpack:///./src/app/_helpers/directives/staking-switch/staking-switch.component.ts","webpack:///./src/app/_helpers/directives/tooltip.directive.ts","webpack:///./src/app/_helpers/directives/transaction-details/transaction-details.component.html","webpack:///./src/app/_helpers/directives/transaction-details/transaction-details.component.scss","webpack:///./src/app/_helpers/directives/transaction-details/transaction-details.component.ts","webpack:///./src/app/_helpers/models/transaction.model.ts","webpack:///./src/app/_helpers/models/wallet.model.ts","webpack:///./src/app/_helpers/pipes/contract-status-messages.pipe.ts","webpack:///./src/app/_helpers/pipes/contract-time-left.pipe.ts","webpack:///./src/app/_helpers/pipes/history-type-messages.pipe.ts","webpack:///./src/app/_helpers/pipes/int-to-money.pipe.ts","webpack:///./src/app/_helpers/pipes/money-to-int.pipe.ts","webpack:///./src/app/_helpers/pipes/safe-html.pipe.ts","webpack:///./src/app/_helpers/services/backend.service.ts","webpack:///./src/app/_helpers/services/modal.service.ts","webpack:///./src/app/_helpers/services/pagination.service.ts","webpack:///./src/app/_helpers/services/pagination.store.ts","webpack:///./src/app/_helpers/services/utils.service.ts","webpack:///./src/app/_helpers/services/variables.service.ts","webpack:///./src/app/_shared/constants.ts","webpack:///./src/app/add-contacts/add-contacts.component.html","webpack:///./src/app/add-contacts/add-contacts.component.scss","webpack:///./src/app/add-contacts/add-contacts.component.ts","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.scss","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/assign-alias/assign-alias.component.html","webpack:///./src/app/assign-alias/assign-alias.component.scss","webpack:///./src/app/assign-alias/assign-alias.component.ts","webpack:///./src/app/contact-send/contact-send.component.html","webpack:///./src/app/contact-send/contact-send.component.scss","webpack:///./src/app/contact-send/contact-send.component.ts","webpack:///./src/app/contacts/contacts.component.html","webpack:///./src/app/contacts/contacts.component.scss","webpack:///./src/app/contacts/contacts.component.ts","webpack:///./src/app/contracts/contracts.component.html","webpack:///./src/app/contracts/contracts.component.scss","webpack:///./src/app/contracts/contracts.component.ts","webpack:///./src/app/create-wallet/create-wallet.component.html","webpack:///./src/app/create-wallet/create-wallet.component.scss","webpack:///./src/app/create-wallet/create-wallet.component.ts","webpack:///./src/app/edit-alias/edit-alias.component.html","webpack:///./src/app/edit-alias/edit-alias.component.scss","webpack:///./src/app/edit-alias/edit-alias.component.ts","webpack:///./src/app/export-import/export-import.component.html","webpack:///./src/app/export-import/export-import.component.scss","webpack:///./src/app/export-import/export-import.component.ts","webpack:///./src/app/history/history.component.html","webpack:///./src/app/history/history.component.scss","webpack:///./src/app/history/history.component.ts","webpack:///./src/app/login/login.component.html","webpack:///./src/app/login/login.component.scss","webpack:///./src/app/login/login.component.ts","webpack:///./src/app/main/main.component.html","webpack:///./src/app/main/main.component.scss","webpack:///./src/app/main/main.component.ts","webpack:///./src/app/messages/messages.component.html","webpack:///./src/app/messages/messages.component.scss","webpack:///./src/app/messages/messages.component.ts","webpack:///./src/app/open-wallet-modal/open-wallet-modal.component.html","webpack:///./src/app/open-wallet-modal/open-wallet-modal.component.scss","webpack:///./src/app/open-wallet-modal/open-wallet-modal.component.ts","webpack:///./src/app/open-wallet/open-wallet.component.html","webpack:///./src/app/open-wallet/open-wallet.component.scss","webpack:///./src/app/open-wallet/open-wallet.component.ts","webpack:///./src/app/purchase/purchase.component.html","webpack:///./src/app/purchase/purchase.component.scss","webpack:///./src/app/purchase/purchase.component.ts","webpack:///./src/app/receive/receive.component.html","webpack:///./src/app/receive/receive.component.scss","webpack:///./src/app/receive/receive.component.ts","webpack:///./src/app/restore-wallet/restore-wallet.component.html","webpack:///./src/app/restore-wallet/restore-wallet.component.scss","webpack:///./src/app/restore-wallet/restore-wallet.component.ts","webpack:///./src/app/seed-phrase/seed-phrase.component.html","webpack:///./src/app/seed-phrase/seed-phrase.component.scss","webpack:///./src/app/seed-phrase/seed-phrase.component.ts","webpack:///./src/app/send-modal/send-modal.component.html","webpack:///./src/app/send-modal/send-modal.component.scss","webpack:///./src/app/send-modal/send-modal.component.ts","webpack:///./src/app/send/send.component.html","webpack:///./src/app/send/send.component.scss","webpack:///./src/app/send/send.component.ts","webpack:///./src/app/settings/settings.component.html","webpack:///./src/app/settings/settings.component.scss","webpack:///./src/app/settings/settings.component.ts","webpack:///./src/app/sidebar/sidebar.component.html","webpack:///./src/app/sidebar/sidebar.component.scss","webpack:///./src/app/sidebar/sidebar.component.ts","webpack:///./src/app/staking/staking.component.html","webpack:///./src/app/staking/staking.component.scss","webpack:///./src/app/staking/staking.component.ts","webpack:///./src/app/transfer-alias/transfer-alias.component.html","webpack:///./src/app/transfer-alias/transfer-alias.component.scss","webpack:///./src/app/transfer-alias/transfer-alias.component.ts","webpack:///./src/app/typing-message/typing-message.component.html","webpack:///./src/app/typing-message/typing-message.component.scss","webpack:///./src/app/typing-message/typing-message.component.ts","webpack:///./src/app/wallet-details/wallet-details.component.html","webpack:///./src/app/wallet-details/wallet-details.component.scss","webpack:///./src/app/wallet-details/wallet-details.component.ts","webpack:///./src/app/wallet/wallet.component.html","webpack:///./src/app/wallet/wallet.component.scss","webpack:///./src/app/wallet/wallet.component.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts","webpack:///./src/store.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n {{title}}\\r\\n {{message}}\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: rgba(255, 255, 255, 0.25);\\n z-index: 5; }\\n\\n.modal {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n background-position: center;\\n background-size: 200%;\\n padding: 3rem;\\n min-width: 34rem;\\n max-width: 60rem; }\\n\\n.modal .content {\\n display: flex; }\\n\\n.modal .content .icon {\\n flex: 0 0 auto;\\n width: 4.4rem;\\n height: 4.4rem; }\\n\\n.modal .content .icon.info {\\n -webkit-mask: url('modal-info.svg') no-repeat center;\\n mask: url('modal-info.svg') no-repeat center; }\\n\\n.modal .content .message-container {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n margin-left: 2rem; }\\n\\n.modal .content .message-container .title {\\n font-size: 1.8rem;\\n font-weight: 600;\\n line-height: 2.2rem; }\\n\\n.modal .content .message-container .message {\\n font-size: 1.3rem;\\n line-height: 1.8rem;\\n margin-top: 0.4rem; }\\n\\n.modal .wrap-btn {\\n display: flex;\\n justify-content: space-between;\\n width: 100%;\\n margin-top: 3.5rem; }\\n\\n.modal .action-button {\\n width: 10rem;\\n height: 2.4rem; }\\n\\n.modal .close-button {\\n position: absolute;\\n top: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: transparent;\\n margin: 0;\\n padding: 0;\\n width: 2.4rem;\\n height: 2.4rem; }\\n\\n.modal .close-button .icon {\\n -webkit-mask: url('close.svg') no-repeat center;\\n mask: url('close.svg') no-repeat center;\\n width: 2.4rem;\\n height: 2.4rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9jb25maXJtLW1vZGFsL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXF9oZWxwZXJzXFxkaXJlY3RpdmVzXFxjb25maXJtLW1vZGFsXFxjb25maXJtLW1vZGFsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUM7RUFDckMsVUFBVSxFQUFBOztBQUVaO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsMkJBQTJCO0VBQzNCLHFCQUFxQjtFQUNyQixhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLGdCQUFnQixFQUFBOztBQVJsQjtJQVdJLGFBQWEsRUFBQTs7QUFYakI7TUFjTSxjQUFjO01BQ2QsYUFBYTtNQUNiLGNBQWMsRUFBQTs7QUFoQnBCO1FBbUJRLG9EQUE0RDtnQkFBNUQsNENBQTRELEVBQUE7O0FBbkJwRTtNQXdCTSxhQUFhO01BQ2Isc0JBQXNCO01BQ3RCLHVCQUF1QjtNQUN2Qix1QkFBdUI7TUFDdkIsaUJBQWlCLEVBQUE7O0FBNUJ2QjtRQStCUSxpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLG1CQUFtQixFQUFBOztBQWpDM0I7UUFxQ1EsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixrQkFBa0IsRUFBQTs7QUF2QzFCO0lBNkNJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsV0FBVztJQUNYLGtCQUFrQixFQUFBOztBQWhEdEI7SUFvREksWUFBWTtJQUNaLGNBQWMsRUFBQTs7QUFyRGxCO0lBeURJLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sUUFBUTtJQUNSLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixTQUFTO0lBQ1QsVUFBVTtJQUNWLGFBQWE7SUFDYixjQUFjLEVBQUE7O0FBbkVsQjtNQXNFTSwrQ0FBdUQ7Y0FBdkQsdUNBQXVEO01BQ3ZELGFBQWE7TUFDYixjQUFjLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9faGVscGVycy9kaXJlY3RpdmVzL2NvbmZpcm0tbW9kYWwvY29uZmlybS1tb2RhbC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xyXG4gIHotaW5kZXg6IDU7XHJcbn1cclxuLm1vZGFsIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCU7XHJcbiAgcGFkZGluZzogM3JlbTtcclxuICBtaW4td2lkdGg6IDM0cmVtO1xyXG4gIG1heC13aWR0aDogNjByZW07XHJcblxyXG4gIC5jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgd2lkdGg6IDQuNHJlbTtcclxuICAgICAgaGVpZ2h0OiA0LjRyZW07XHJcblxyXG4gICAgICAmLmluZm8ge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9tb2RhbC1pbmZvLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5tZXNzYWdlLWNvbnRhaW5lciB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XHJcblxyXG4gICAgICAudGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuMnJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm1lc3NhZ2Uge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMC40cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud3JhcC1idG4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLXRvcDogMy41cmVtO1xyXG4gIH1cclxuICBcclxuICAuYWN0aW9uLWJ1dHRvbiB7XHJcbiAgICB3aWR0aDogMTByZW07XHJcbiAgICBoZWlnaHQ6IDIuNHJlbTtcclxuICB9XHJcblxyXG4gIC5jbG9zZS1idXR0b24ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDIuNHJlbTtcclxuICAgIGhlaWdodDogMi40cmVtO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Nsb3NlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDIuNHJlbTtcclxuICAgICAgaGVpZ2h0OiAyLjRyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-confirm-modal',\r\n templateUrl: './confirm-modal.component.html',\r\n styleUrls: ['./confirm-modal.component.scss']\r\n})\r\nexport class ConfirmModalComponent implements OnInit {\r\n\r\n @Input() title: string;\r\n @Input() message: string;\r\n @Output() confirmed: EventEmitter = new EventEmitter();\r\n @ViewChild('btn') button: ElementRef;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.button.nativeElement.focus();\r\n }\r\n\r\n onSubmit() {\r\n this.confirmed.emit(true);\r\n }\r\n\r\n onClose() {\r\n this.confirmed.emit(false);\r\n }\r\n}\r\n","import {Directive, HostListener} from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'input'\r\n})\r\nexport class InputDisableSelectionDirective {\r\n\r\n constructor() {}\r\n\r\n @HostListener('mousedown', ['$event'])\r\n handleInput(event: Event) {\r\n if ((event.target).readOnly) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","import {Directive, ElementRef, Input, HostListener} from '@angular/core';\r\nimport {VariablesService} from '../../services/variables.service';\r\n\r\n@Directive({\r\n selector: '[appInputValidate]'\r\n})\r\nexport class InputValidateDirective {\r\n\r\n private type: string;\r\n\r\n constructor(private el: ElementRef, private variablesService: VariablesService) {\r\n }\r\n\r\n @Input('appInputValidate')\r\n public set defineInputType(type: string) {\r\n this.type = type;\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n handleInput(event: Event) {\r\n if ( this.type === 'money' ) {\r\n this.moneyValidation(event);\r\n } else if ( this.type === 'integer' ) {\r\n this.integerValidation(event);\r\n }\r\n }\r\n\r\n private moneyValidation(event: Event) {\r\n let currentValue = (event.target).value;\r\n const originalValue = currentValue;\r\n const OnlyD = /[^\\d\\.]/g;\r\n const _has_error = currentValue.match(OnlyD);\r\n if (_has_error && _has_error.length) {\r\n currentValue = currentValue.replace(',', '.').replace(OnlyD, '');\r\n }\r\n const _double_separator = currentValue.match(/\\./g);\r\n if (_double_separator && _double_separator.length > 1) {\r\n currentValue = currentValue.substr(0, currentValue.lastIndexOf('.'));\r\n }\r\n if (currentValue.indexOf('.') === 0) {\r\n currentValue = '0' + currentValue;\r\n }\r\n const _zero_fill = currentValue.split('.');\r\n if (_zero_fill[0].length > 7) {\r\n _zero_fill[0] = _zero_fill[0].substr(0, 7);\r\n }\r\n\r\n if (1 in _zero_fill && _zero_fill[1].length) {\r\n _zero_fill[1] = _zero_fill[1].substr(0, this.variablesService.digits);\r\n }\r\n currentValue = _zero_fill.join('.');\r\n if (currentValue !== originalValue) {\r\n (event.target).value = currentValue;\r\n const cursorPosition = (event.target).selectionEnd;\r\n (event.target).setSelectionRange(cursorPosition, cursorPosition);\r\n (event.target).dispatchEvent(new Event('input'));\r\n }\r\n }\r\n\r\n private integerValidation(event: Event) {\r\n let currentValue = (event.target).value;\r\n const originalValue = currentValue;\r\n const OnlyD = /[^\\d]/g;\r\n const _has_error = currentValue.match(OnlyD);\r\n if (_has_error && _has_error.length) {\r\n currentValue = currentValue.replace(OnlyD, '');\r\n }\r\n if (currentValue !== originalValue) {\r\n const cursorPosition = (event.target).selectionEnd;\r\n (event.target).value = currentValue;\r\n (event.target).setSelectionRange(cursorPosition, cursorPosition);\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n {{title}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: rgba(255, 255, 255, 0.25); }\\n\\n.modal {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n background-position: center;\\n background-size: 200%;\\n padding: 2rem;\\n min-width: 34rem;\\n max-width: 60rem; }\\n\\n.modal .content {\\n display: flex;\\n margin: 1.2rem 0; }\\n\\n.modal .content .icon {\\n flex: 0 0 auto;\\n width: 4.4rem;\\n height: 4.4rem; }\\n\\n.modal .content .icon.error {\\n -webkit-mask: url('modal-alert.svg') no-repeat center;\\n mask: url('modal-alert.svg') no-repeat center; }\\n\\n.modal .content .icon.success {\\n -webkit-mask: url('modal-success.svg') no-repeat center;\\n mask: url('modal-success.svg') no-repeat center; }\\n\\n.modal .content .icon.info {\\n -webkit-mask: url('modal-info.svg') no-repeat center;\\n mask: url('modal-info.svg') no-repeat center; }\\n\\n.modal .content .message-container {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n margin-left: 2rem; }\\n\\n.modal .content .message-container .title {\\n font-size: 1.8rem;\\n font-weight: 600;\\n line-height: 2.2rem; }\\n\\n.modal .content .message-container .message {\\n font-size: 1.3rem;\\n line-height: 1.8rem;\\n margin-top: 0.4rem; }\\n\\n.modal .action-button {\\n margin: 1.2rem auto 0.6rem;\\n width: 10rem;\\n height: 2.4rem; }\\n\\n.modal .close-button {\\n position: absolute;\\n top: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: transparent;\\n margin: 0;\\n padding: 0;\\n width: 2.4rem;\\n height: 2.4rem; }\\n\\n.modal .close-button .icon {\\n -webkit-mask: url('close.svg') no-repeat center;\\n mask: url('close.svg') no-repeat center;\\n width: 2.4rem;\\n height: 2.4rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9tb2RhbC1jb250YWluZXIvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcX2hlbHBlcnNcXGRpcmVjdGl2ZXNcXG1vZGFsLWNvbnRhaW5lclxcbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUMsRUFBQTs7QUFFdkM7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QiwyQkFBMkI7RUFDM0IscUJBQXFCO0VBQ3JCLGFBQWE7RUFDYixnQkFBZ0I7RUFDaEIsZ0JBQWdCLEVBQUE7O0FBUmxCO0lBV0ksYUFBYTtJQUNiLGdCQUFnQixFQUFBOztBQVpwQjtNQWVNLGNBQWM7TUFDZCxhQUFhO01BQ2IsY0FBYyxFQUFBOztBQWpCcEI7UUFvQlEscURBQTZEO2dCQUE3RCw2Q0FBNkQsRUFBQTs7QUFwQnJFO1FBd0JRLHVEQUErRDtnQkFBL0QsK0NBQStELEVBQUE7O0FBeEJ2RTtRQTRCUSxvREFBNEQ7Z0JBQTVELDRDQUE0RCxFQUFBOztBQTVCcEU7TUFpQ00sYUFBYTtNQUNiLHNCQUFzQjtNQUN0Qix1QkFBdUI7TUFDdkIsdUJBQXVCO01BQ3ZCLGlCQUFpQixFQUFBOztBQXJDdkI7UUF3Q1EsaUJBQWlCO1FBQ2pCLGdCQUFnQjtRQUNoQixtQkFBbUIsRUFBQTs7QUExQzNCO1FBOENRLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsa0JBQWtCLEVBQUE7O0FBaEQxQjtJQXNESSwwQkFBMEI7SUFDMUIsWUFBWTtJQUNaLGNBQWMsRUFBQTs7QUF4RGxCO0lBNERJLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sUUFBUTtJQUNSLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixTQUFTO0lBQ1QsVUFBVTtJQUNWLGFBQWE7SUFDYixjQUFjLEVBQUE7O0FBdEVsQjtNQXlFTSwrQ0FBdUQ7Y0FBdkQsdUNBQXVEO01BQ3ZELGFBQWE7TUFDYixjQUFjLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9faGVscGVycy9kaXJlY3RpdmVzL21vZGFsLWNvbnRhaW5lci9tb2RhbC1jb250YWluZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcclxufVxyXG4ubW9kYWwge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJTtcclxuICBwYWRkaW5nOiAycmVtO1xyXG4gIG1pbi13aWR0aDogMzRyZW07XHJcbiAgbWF4LXdpZHRoOiA2MHJlbTtcclxuXHJcbiAgLmNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbjogMS4ycmVtIDA7XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgd2lkdGg6IDQuNHJlbTtcclxuICAgICAgaGVpZ2h0OiA0LjRyZW07XHJcblxyXG4gICAgICAmLmVycm9yIHtcclxuICAgICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvbW9kYWwtYWxlcnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnN1Y2Nlc3Mge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9tb2RhbC1zdWNjZXNzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5pbmZvIHtcclxuICAgICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvbW9kYWwtaW5mby5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubWVzc2FnZS1jb250YWluZXIge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xyXG5cclxuICAgICAgLnRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjJyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5tZXNzYWdlIHtcclxuICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS44cmVtO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDAuNHJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFjdGlvbi1idXR0b24ge1xyXG4gICAgbWFyZ2luOiAxLjJyZW0gYXV0byAwLjZyZW07XHJcbiAgICB3aWR0aDogMTByZW07XHJcbiAgICBoZWlnaHQ6IDIuNHJlbTtcclxuICB9XHJcblxyXG4gIC5jbG9zZS1idXR0b24ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDIuNHJlbTtcclxuICAgIGhlaWdodDogMi40cmVtO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Nsb3NlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDIuNHJlbTtcclxuICAgICAgaGVpZ2h0OiAyLjRyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef} from '@angular/core';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-modal-container',\r\n templateUrl: './modal-container.component.html',\r\n styleUrls: ['./modal-container.component.scss']\r\n})\r\nexport class ModalContainerComponent implements OnInit {\r\n\r\n public title: string;\r\n @Input() type: string;\r\n @Input() message: string;\r\n @Output() close = new EventEmitter();\r\n @ViewChild('btn') button: ElementRef;\r\n\r\n constructor(private translate: TranslateService) {}\r\n\r\n ngOnInit() {\r\n this.button.nativeElement.focus();\r\n switch (this.type) {\r\n case 'error': this.title = this.translate.instant('MODALS.ERROR'); break;\r\n case 'success': this.title = this.translate.instant('MODALS.SUCCESS'); break;\r\n case 'info': this.title = this.translate.instant('MODALS.INFO'); break;\r\n }\r\n }\r\n\r\n onClose() {\r\n this.close.emit();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ label | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \".progress-bar-container {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n padding: 0 3rem;\\n width: 100%;\\n height: 3rem; }\\n .progress-bar-container .progress-bar {\\n position: absolute;\\n top: -0.7rem;\\n left: 0;\\n margin: 0 3rem;\\n width: calc(100% - 6rem);\\n height: 0.7rem; }\\n .progress-bar-container .progress-bar .progress-bar-full {\\n height: 0.7rem; }\\n .progress-bar-container .progress-labels {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n font-size: 1.2rem;\\n height: 100%; }\\n .progress-bar-container .progress-labels span {\\n flex: 1 0 0;\\n text-align: center; }\\n .progress-bar-container .progress-labels span:first-child {\\n text-align: left; }\\n .progress-bar-container .progress-labels span:last-child {\\n text-align: right; }\\n .progress-bar-container .progress-time {\\n position: absolute;\\n top: -3rem;\\n left: 50%;\\n transform: translateX(-50%);\\n font-size: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9wcm9ncmVzcy1jb250YWluZXIvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcX2hlbHBlcnNcXGRpcmVjdGl2ZXNcXHByb2dyZXNzLWNvbnRhaW5lclxccHJvZ3Jlc3MtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxPQUFPO0VBQ1AsZUFBZTtFQUNmLFdBQVc7RUFDWCxZQUFZLEVBQUE7RUFOZDtJQVNJLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osT0FBTztJQUNQLGNBQWM7SUFDZCx3QkFBd0I7SUFDeEIsY0FBYyxFQUFBO0VBZGxCO01BaUJNLGNBQWMsRUFBQTtFQWpCcEI7SUFzQkksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsaUJBQWlCO0lBQ2pCLFlBQVksRUFBQTtFQTFCaEI7TUE2Qk0sV0FBVztNQUNYLGtCQUFrQixFQUFBO0VBOUJ4QjtRQWlDUSxnQkFBZ0IsRUFBQTtFQWpDeEI7UUFxQ1EsaUJBQWlCLEVBQUE7RUFyQ3pCO0lBMkNJLGtCQUFrQjtJQUNsQixVQUFVO0lBQ1YsU0FBUztJQUNULDJCQUEyQjtJQUMzQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL19oZWxwZXJzL2RpcmVjdGl2ZXMvcHJvZ3Jlc3MtY29udGFpbmVyL3Byb2dyZXNzLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcGFkZGluZzogMCAzcmVtO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogM3JlbTtcclxuXHJcbiAgLnByb2dyZXNzLWJhciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC0wLjdyZW07XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgbWFyZ2luOiAwIDNyZW07XHJcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNnJlbSk7XHJcbiAgICBoZWlnaHQ6IDAuN3JlbTtcclxuXHJcbiAgICAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xyXG4gICAgICBoZWlnaHQ6IDAuN3JlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wcm9ncmVzcy1sYWJlbHMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgZmxleDogMSAwIDA7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wcm9ncmVzcy10aW1lIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogLTNyZW07XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-progress-container',\r\n templateUrl: './progress-container.component.html',\r\n styleUrls: ['./progress-container.component.scss']\r\n})\r\nexport class ProgressContainerComponent implements OnInit {\r\n\r\n @Input() width: string;\r\n @Input() labels: [];\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n","module.exports = \"
\\r\\n {{ 'STAKING.SWITCH.ON' | translate }}\\r\\n \\r\\n {{ 'STAKING.SWITCH.OFF' | translate }}\\r\\n
\\r\\n\"","module.exports = \".switch {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n border-radius: 1rem;\\n cursor: pointer;\\n font-size: 1rem;\\n padding: 0.5rem;\\n width: 5rem;\\n height: 2rem; }\\n .switch .circle {\\n border-radius: 1rem;\\n width: 1.2rem;\\n height: 1.2rem; }\\n .switch .option {\\n margin: 0 0.2rem;\\n line-height: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9zdGFraW5nLXN3aXRjaC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxfaGVscGVyc1xcZGlyZWN0aXZlc1xcc3Rha2luZy1zd2l0Y2hcXHN0YWtpbmctc3dpdGNoLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixlQUFlO0VBQ2YsZUFBZTtFQUNmLFdBQVc7RUFDWCxZQUFZLEVBQUE7RUFUZDtJQVlJLG1CQUFtQjtJQUNuQixhQUFhO0lBQ2IsY0FBYyxFQUFBO0VBZGxCO0lBa0JJLGdCQUFnQjtJQUNoQixtQkFBbUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL19oZWxwZXJzL2RpcmVjdGl2ZXMvc3Rha2luZy1zd2l0Y2gvc3Rha2luZy1zd2l0Y2guY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc3dpdGNoIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxuICBwYWRkaW5nOiAwLjVyZW07XHJcbiAgd2lkdGg6IDVyZW07XHJcbiAgaGVpZ2h0OiAycmVtO1xyXG5cclxuICAuY2lyY2xlIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgfVxyXG5cclxuICAub3B0aW9uIHtcclxuICAgIG1hcmdpbjogMCAwLjJyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS4ycmVtO1xyXG4gIH1cclxufVxyXG4iXX0= */\"","import {Component, OnInit, Input, Output, EventEmitter} from '@angular/core';\r\nimport {BackendService} from '../../services/backend.service';\r\nimport {VariablesService} from '../../services/variables.service';\r\n\r\n@Component({\r\n selector: 'app-staking-switch',\r\n templateUrl: './staking-switch.component.html',\r\n styleUrls: ['./staking-switch.component.scss']\r\n})\r\nexport class StakingSwitchComponent implements OnInit {\r\n\r\n @Input() wallet_id: boolean;\r\n @Input() staking: boolean;\r\n @Output() stakingChange = new EventEmitter();\r\n\r\n constructor(private backend: BackendService, private variablesService: VariablesService) {}\r\n\r\n ngOnInit() {}\r\n\r\n toggleStaking() {\r\n const wallet = this.variablesService.getWallet(this.wallet_id);\r\n if (wallet && wallet.loaded) {\r\n this.stakingChange.emit(!this.staking);\r\n if (!this.staking) {\r\n this.backend.startPosMining(this.wallet_id);\r\n } else {\r\n this.backend.stopPosMining(this.wallet_id);\r\n }\r\n }\r\n }\r\n}\r\n","import {Directive, Input, Output, ElementRef, HostListener, Renderer2, HostBinding, OnDestroy, EventEmitter} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\n\r\n@Directive({\r\n selector: '[tooltip]'\r\n})\r\n\r\nexport class TooltipDirective implements OnDestroy {\r\n\r\n @HostBinding('style.cursor') cursor;\r\n\r\n @Input('tooltip') tooltipInner: any;\r\n @Input() placement: string;\r\n @Input() tooltipClass: string;\r\n @Input() timeout = 0;\r\n @Input() timeDelay = 0;\r\n @Input() delay = 0;\r\n @Input() showWhenNoOverflow = true;\r\n @Output() onHide = new EventEmitter();\r\n tooltip: HTMLElement;\r\n private enter: (event: MouseEvent) => void;\r\n private leave: (event: MouseEvent) => void;\r\n\r\n removeTooltipTimeout;\r\n removeTooltipTimeoutInner;\r\n\r\n removeTooltipTimeDelay;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2, private route: ActivatedRoute) {\r\n }\r\n\r\n @HostListener('mouseenter') onMouseEnter() {\r\n if (this.showWhenNoOverflow || (!this.showWhenNoOverflow && this.el.nativeElement.offsetWidth < this.el.nativeElement.scrollWidth)) {\r\n this.cursor = 'pointer';\r\n if (!this.tooltip) {\r\n if (this.timeDelay !== 0) {\r\n this.removeTooltipTimeDelay = setTimeout(() => {\r\n this.show();\r\n }, this.timeDelay);\r\n } else {\r\n this.show();\r\n }\r\n } else {\r\n this.cancelHide();\r\n }\r\n }\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n clearTimeout(this.removeTooltipTimeDelay);\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n }\r\n\r\n show() {\r\n this.create();\r\n this.placement = this.placement === null ? 'top' : this.placement;\r\n this.setPosition(this.placement);\r\n }\r\n\r\n hide() {\r\n this.removeTooltipTimeout = setTimeout(() => {\r\n this.renderer.setStyle(this.tooltip, 'opacity', '0');\r\n this.removeTooltipTimeoutInner = setTimeout(() => {\r\n this.renderer.removeChild(document.body, this.tooltip);\r\n this.tooltip.removeEventListener('mouseenter', this.enter);\r\n this.tooltip.removeEventListener('mouseleave', this.leave);\r\n this.tooltip = null;\r\n this.onHide.emit(true);\r\n }, this.delay);\r\n }, this.timeout);\r\n }\r\n\r\n cancelHide() {\r\n clearTimeout(this.removeTooltipTimeout);\r\n clearTimeout(this.removeTooltipTimeoutInner);\r\n this.renderer.setStyle(this.tooltip, 'opacity', '1');\r\n }\r\n\r\n create() {\r\n this.tooltip = this.renderer.createElement('div');\r\n let innerBlock = this.renderer.createElement('div');\r\n if (typeof this.tooltipInner === 'string') {\r\n innerBlock.innerHTML = this.tooltipInner;\r\n } else {\r\n innerBlock = this.tooltipInner;\r\n }\r\n this.renderer.addClass(innerBlock, 'tooltip-inner');\r\n this.renderer.addClass(innerBlock, 'scrolled-content');\r\n this.renderer.appendChild(this.tooltip, innerBlock);\r\n this.renderer.appendChild(document.body, this.tooltip);\r\n\r\n this.enter = () => {\r\n this.cancelHide();\r\n };\r\n this.tooltip.addEventListener('mouseenter', this.enter);\r\n this.leave = () => {\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n };\r\n this.tooltip.addEventListener('mouseleave', this.leave);\r\n\r\n this.renderer.setStyle(document.body, 'position', 'relative');\r\n this.renderer.setStyle(this.tooltip, 'position', 'absolute');\r\n if (this.tooltipClass !== null) {\r\n const classes = this.tooltipClass.split(' ');\r\n for (let i = 0; i < classes.length; i++) {\r\n this.renderer.addClass(this.tooltip, classes[i]);\r\n }\r\n }\r\n this.renderer.setStyle(this.tooltip, 'opacity', '0');\r\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.delay}ms`);\r\n window.setTimeout(() => {\r\n this.renderer.setStyle(this.tooltip, 'opacity', '1');\r\n }, 0);\r\n }\r\n\r\n setPosition(placement) {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n this.renderer.addClass(this.tooltip, 'ng-tooltip-' + placement);\r\n const topExit = hostPos.top - this.tooltip.getBoundingClientRect().height - parseInt(getComputedStyle(this.tooltip).marginTop, 10) < 0;\r\n const bottomExit = window.innerHeight < hostPos.bottom + this.tooltip.getBoundingClientRect().height + parseInt(getComputedStyle(this.tooltip).marginTop, 10);\r\n\r\n switch (placement) {\r\n case 'top':\r\n if (topExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('bottom');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'top-left':\r\n if (topExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('bottom-left');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'top-right':\r\n if (topExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('bottom-right');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'bottom':\r\n if (bottomExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('top');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'bottom-left':\r\n if (bottomExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('top-left');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'bottom-right':\r\n if (bottomExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('top-right');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'left':\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px');\r\n break;\r\n case 'left-top':\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\r\n break;\r\n case 'left-bottom':\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px');\r\n break;\r\n case 'right':\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px');\r\n break;\r\n case 'right-top':\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\r\n break;\r\n case 'right-bottom':\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px');\r\n break;\r\n }\r\n }\r\n\r\n checkSides() {\r\n if (this.tooltip.getBoundingClientRect().left < 0) {\r\n this.renderer.setStyle(this.tooltip, 'left', 0);\r\n }\r\n if (this.tooltip.getBoundingClientRect().right > window.innerWidth) {\r\n this.renderer.setStyle(this.tooltip, 'left', window.innerWidth - this.tooltip.getBoundingClientRect().width + 'px');\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n clearTimeout(this.removeTooltipTimeout);\r\n clearTimeout(this.removeTooltipTimeoutInner);\r\n clearTimeout(this.removeTooltipTimeDelay);\r\n if (this.tooltip) {\r\n this.renderer.removeChild(document.body, this.tooltip);\r\n this.tooltip = null;\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n {{ 'HISTORY.DETAILS.ID' | translate }}\\r\\n {{transaction.tx_hash}}\\r\\n {{ 'HISTORY.DETAILS.SIZE' | translate }}\\r\\n {{ 'HISTORY.DETAILS.SIZE_VALUE' | translate : {value: transaction.tx_blob_size} }}\\r\\n
\\r\\n
\\r\\n {{ 'HISTORY.DETAILS.HEIGHT' | translate }}\\r\\n {{transaction.height}}\\r\\n {{ 'HISTORY.DETAILS.CONFIRMATION' | translate }}\\r\\n {{transaction.height === 0 ? 0 : variablesService.height_app - transaction.height}}\\r\\n
\\r\\n
\\r\\n {{ 'HISTORY.DETAILS.INPUTS' | translate }}\\r\\n {{inputs.join(', ')}}\\r\\n {{ 'HISTORY.DETAILS.OUTPUTS' | translate }}\\r\\n {{outputs.join(', ')}}\\r\\n
\\r\\n
\\r\\n {{ 'HISTORY.DETAILS.PAYMENT_ID' | translate }}\\r\\n \\r\\n {{transaction.payment_id}}\\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'HISTORY.DETAILS.COMMENT' | translate }}\\r\\n \\r\\n {{transaction.comment}}\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%; }\\n\\n.table {\\n border-top: 0.2rem solid #ebebeb;\\n margin: 0 3rem;\\n padding: 0.5rem 0; }\\n\\n.table .row {\\n display: flex;\\n justify-content: flex-start;\\n align-items: center;\\n border-top: none;\\n line-height: 3rem;\\n margin: 0 -3rem;\\n width: 100%;\\n height: 3rem; }\\n\\n.table .row .cell {\\n flex-shrink: 0;\\n flex-grow: 0;\\n padding: 0 1rem;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n\\n.table .row .cell:first-child {\\n padding-left: 3rem; }\\n\\n.table .row .cell:last-child {\\n padding-right: 3rem; }\\n\\n.table .row .cell.key-value {\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy90cmFuc2FjdGlvbi1kZXRhaWxzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXF9oZWxwZXJzXFxkaXJlY3RpdmVzXFx0cmFuc2FjdGlvbi1kZXRhaWxzXFx0cmFuc2FjdGlvbi1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVyxFQUFBOztBQUdiO0VBQ0UsZ0NBQWdDO0VBQ2hDLGNBQWM7RUFDZCxpQkFBaUIsRUFBQTs7QUFIbkI7SUFNSSxhQUFhO0lBQ2IsMkJBQTJCO0lBQzNCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixXQUFXO0lBQ1gsWUFBWSxFQUFBOztBQWJoQjtNQWdCTSxjQUFjO01BQ2QsWUFBWTtNQUNaLGVBQWU7TUFDZixnQkFBZ0I7TUFDaEIsdUJBQXVCLEVBQUE7O0FBcEI3QjtRQXVCUSxrQkFBa0IsRUFBQTs7QUF2QjFCO1FBMkJRLG1CQUFtQixFQUFBOztBQTNCM0I7UUErQlEsZUFBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy90cmFuc2FjdGlvbi1kZXRhaWxzL3RyYW5zYWN0aW9uLWRldGFpbHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4udGFibGUge1xyXG4gIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCAjZWJlYmViO1xyXG4gIG1hcmdpbjogMCAzcmVtO1xyXG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xyXG5cclxuICAucm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgYm9yZGVyLXRvcDogbm9uZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xyXG4gICAgbWFyZ2luOiAwIC0zcmVtO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDNyZW07XHJcblxyXG4gICAgLmNlbGwge1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgZmxleC1ncm93OiAwO1xyXG4gICAgICBwYWRkaW5nOiAwIDFyZW07XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG5cclxuICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzcmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDNyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYua2V5LXZhbHVlIHtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, OnInit, OnDestroy, Input} from '@angular/core';\r\nimport {Transaction} from '../../models/transaction.model';\r\nimport {VariablesService} from '../../services/variables.service';\r\nimport {BackendService} from '../../services/backend.service';\r\nimport {IntToMoneyPipe} from '../../pipes/int-to-money.pipe';\r\nimport {BLOCK_EXPLORER_TX_URL_PREFIX} from '../../../_shared/constants';\r\nimport {BLOCK_EXPLORER_TN_TX_URL_PREFIX} from '../../../_shared/constants';\r\n\r\n@Component({\r\n selector: 'app-transaction-details',\r\n templateUrl: './transaction-details.component.html',\r\n styleUrls: ['./transaction-details.component.scss']\r\n})\r\nexport class TransactionDetailsComponent implements OnInit, OnDestroy {\r\n\r\n @Input() transaction: Transaction;\r\n @Input() sizes: Array;\r\n inputs: Array = [];\r\n outputs: Array = [];\r\n\r\n constructor(public variablesService: VariablesService, private backendService: BackendService, private intToMoneyPipe: IntToMoneyPipe) {}\r\n\r\n ngOnInit() {\r\n for (const input in this.transaction.td['spn']) {\r\n if (this.transaction.td['spn'].hasOwnProperty(input)) {\r\n this.inputs.push(this.intToMoneyPipe.transform(this.transaction.td['spn'][input]));\r\n }\r\n }\r\n for (const output in this.transaction.td['rcv']) {\r\n if (this.transaction.td['rcv'].hasOwnProperty(output)) {\r\n this.outputs.push(this.intToMoneyPipe.transform(this.transaction.td['rcv'][output]));\r\n }\r\n }\r\n }\r\n\r\n openInBrowser(tr) {\r\n this.backendService.openUrlInBrowser((this.variablesService.testnet ? BLOCK_EXPLORER_TN_TX_URL_PREFIX : BLOCK_EXPLORER_TX_URL_PREFIX)+ tr);\r\n }\r\n\r\n ngOnDestroy() {}\r\n}\r\n","import {BigNumber} from 'bignumber.js';\r\n\r\nexport class Transaction {\r\n amount: BigNumber;\r\n comment: string;\r\n contract: any[];\r\n fee: BigNumber;\r\n height: number;\r\n is_income: boolean;\r\n is_mining: boolean;\r\n is_mixing: boolean;\r\n is_service: boolean;\r\n payment_id: string;\r\n show_sender: boolean;\r\n td: object;\r\n timestamp: number;\r\n tx_blob_size: number;\r\n tx_hash: string;\r\n tx_type: number;\r\n unlock_time: number;\r\n\r\n sortAmount?: BigNumber;\r\n sortFee?: BigNumber;\r\n}\r\n","import {Contract} from './contract.model';\r\nimport {Transaction} from './transaction.model';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\nexport class Wallet {\r\n stop_paginate: boolean;\r\n open_from_exist: boolean;\r\n updated = false;\r\n wallet_id: number;\r\n name: string;\r\n pass: string;\r\n path: string;\r\n address: string;\r\n balance: BigNumber;\r\n unlocked_balance: BigNumber;\r\n mined_total: number;\r\n tracking_hey: string;\r\n is_auditable: boolean;\r\n is_watch_only: boolean;\r\n exclude_mining_txs: boolean;\r\n alias_available: boolean;\r\n\r\n alias?: object;\r\n wakeAlias?: boolean;\r\n staking?: boolean;\r\n new_messages?: number;\r\n new_contracts?: number;\r\n\r\n history: Array = [];\r\n total_history_item?: number;\r\n pages = [];\r\n totalPages: number;\r\n currentPage: number;\r\n excluded_history: Array = [];\r\n\r\n contracts: Array = [];\r\n\r\n progress?: number;\r\n loaded?: boolean;\r\n restore?: boolean;\r\n\r\n send_data?: any = {\r\n address: null,\r\n amount: null,\r\n comment: null,\r\n mixin: null,\r\n fee: null,\r\n hide: null\r\n };\r\n\r\n constructor(id, name, pass, path, address, balance, unlocked_balance, mined = 0, tracking = '') {\r\n this.wallet_id = id;\r\n this.name = name;\r\n this.pass = pass;\r\n this.path = path;\r\n this.address = address;\r\n this.balance = balance;\r\n this.unlocked_balance = unlocked_balance;\r\n this.mined_total = mined;\r\n this.tracking_hey = tracking;\r\n\r\n this.alias = {};\r\n this.staking = false;\r\n this.new_messages = 0;\r\n this.new_contracts = 0;\r\n\r\n this.history = [];\r\n this.excluded_history = [];\r\n\r\n this.progress = 0;\r\n this.loaded = false;\r\n }\r\n\r\n getMoneyEquivalent(equivalent) {\r\n return this.balance.multipliedBy(equivalent).toFixed(0);\r\n }\r\n\r\n havePass(): boolean {\r\n return (this.pass !== '' && this.pass !== null);\r\n }\r\n\r\n isActive(id): boolean {\r\n return this.wallet_id === id;\r\n }\r\n\r\n prepareHistoryItem(item: Transaction): any {\r\n if (item.tx_type === 4) {\r\n item.sortFee = item.amount.plus(item.fee).negated();\r\n item.sortAmount = new BigNumber(0);\r\n } else if (item.tx_type === 3) {\r\n item.sortFee = new BigNumber(0);\r\n } else if ((item.hasOwnProperty('contract') && (item.contract[0].state === 3 || item.contract[0].state === 6 || item.contract[0].state === 601) && !item.contract[0].is_a)) {\r\n item.sortFee = item.fee.negated();\r\n item.sortAmount = item.amount;\r\n } else {\r\n if (!item.is_income) {\r\n item.sortFee = item.fee.negated();\r\n item.sortAmount = item.amount.negated();\r\n } else {\r\n item.sortAmount = item.amount;\r\n }\r\n }\r\n return item;\r\n }\r\n\r\n prepareHistory(items: Transaction[]): void {\r\n for (let i = 0; i < items.length; i++) {\r\n if ((items[i].tx_type === 7 && items[i].is_income) || (items[i].tx_type === 11 && items[i].is_income) || (items[i].amount.eq(0) && items[i].fee.eq(0) && !items[i].is_mining)) {\r\n let exists = false;\r\n for (let j = 0; j < this.excluded_history.length; j++) {\r\n if (this.excluded_history[j].tx_hash === items[i].tx_hash) {\r\n exists = true;\r\n if (this.excluded_history[j].height !== items[i].height) {\r\n this.excluded_history[j] = items[i];\r\n }\r\n break;\r\n }\r\n }\r\n if (!exists) {\r\n this.excluded_history.push(items[i]);\r\n }\r\n } else {\r\n let exists = false;\r\n for (let j = 0; j < this.history.length; j++) {\r\n if (this.history[j].tx_hash === items[i].tx_hash) {\r\n exists = true;\r\n if (this.history[j].height !== items[i].height) {\r\n this.history[j] = this.prepareHistoryItem(items[i]);\r\n }\r\n break;\r\n }\r\n }\r\n if (!exists) {\r\n if (this.history.length && items[i].timestamp >= this.history[0].timestamp) {\r\n this.history.unshift(this.prepareHistoryItem(items[i]));\r\n } else {\r\n this.history.push(this.prepareHistoryItem(items[i]));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeFromHistory(hash: string): void {\r\n for (let i = 0; i < this.history.length; i++) {\r\n if (this.history[i].tx_hash === hash) {\r\n this.history.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n prepareContractsAfterOpen(items: any[], exp_med_ts, height_app, viewedContracts, notViewedContracts): void {\r\n const wallet = this;\r\n for (let i = 0; i < items.length; i++) {\r\n const contract = items[i];\r\n let contractTransactionExist = false;\r\n if (wallet && wallet.history) {\r\n contractTransactionExist = wallet.history.some(elem => elem.contract && elem.contract.length && elem.contract[0].contract_id === contract.contract_id);\r\n }\r\n if (!contractTransactionExist && wallet && wallet.excluded_history) {\r\n contractTransactionExist = wallet.excluded_history.some(elem => elem.contract && elem.contract.length && elem.contract[0].contract_id === contract.contract_id);\r\n }\r\n\r\n if (!contractTransactionExist) {\r\n contract.state = 140;\r\n } else if (contract.state === 1 && contract.expiration_time < exp_med_ts) {\r\n contract.state = 110;\r\n } else if (contract.state === 2 && contract.cancel_expiration_time !== 0 && contract.cancel_expiration_time < exp_med_ts && contract.height === 0) {\r\n const searchResult1 = viewedContracts.some(elem => elem.state === 2 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (!searchResult1) {\r\n contract.state = 130;\r\n contract.is_new = true;\r\n }\r\n } else if (contract.state === 1) {\r\n const searchResult2 = notViewedContracts.find(elem => elem.state === 110 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult2) {\r\n if (searchResult2.time === contract.expiration_time) {\r\n contract.state = 110;\r\n } else {\r\n for (let j = 0; j < notViewedContracts.length; j++) {\r\n if (notViewedContracts[j].contract_id === contract.contract_id && notViewedContracts[j].is_a === contract.is_a) {\r\n notViewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n for (let j = 0; j < viewedContracts.length; j++) {\r\n if (viewedContracts[j].contract_id === contract.contract_id && viewedContracts[j].is_a === contract.is_a) {\r\n viewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else if (contract.state === 2 && (contract.height === 0 || (height_app - contract.height) < 10)) {\r\n contract.state = 201;\r\n } else if (contract.state === 2) {\r\n const searchResult3 = viewedContracts.some(elem => elem.state === 120 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult3) {\r\n contract.state = 120;\r\n }\r\n } else if (contract.state === 5) {\r\n const searchResult4 = notViewedContracts.find(elem => elem.state === 130 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult4) {\r\n if (searchResult4.time === contract.cancel_expiration_time) {\r\n contract.state = 130;\r\n } else {\r\n for (let j = 0; j < notViewedContracts.length; j++) {\r\n if (notViewedContracts[j].contract_id === contract.contract_id && notViewedContracts[j].is_a === contract.is_a) {\r\n notViewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n for (let j = 0; j < viewedContracts.length; j++) {\r\n if (viewedContracts[j].contract_id === contract.contract_id && viewedContracts[j].is_a === contract.is_a) {\r\n viewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else if (contract.state === 6 && (contract.height === 0 || (height_app - contract.height) < 10)) {\r\n contract.state = 601;\r\n }\r\n const searchResult = viewedContracts.some(elem => elem.state === contract.state && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n contract.is_new = !searchResult;\r\n\r\n wallet.contracts.push(contract);\r\n }\r\n this.recountNewContracts();\r\n }\r\n\r\n recountNewContracts() {\r\n this.new_contracts = (this.contracts.filter(item => item.is_new === true )).length;\r\n }\r\n\r\n getContract(id): Contract {\r\n for (let i = 0; i < this.contracts.length; i++) {\r\n if (this.contracts[i].contract_id === id) {\r\n return this.contracts[i];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'contractStatusMessages'\r\n})\r\nexport class ContractStatusMessagesPipe implements PipeTransform {\r\n\r\n constructor(private translate: TranslateService) {}\r\n\r\n getStateSeller(stateNum: number): string {\r\n const state = {part1: '', part2: ''};\r\n switch (stateNum) {\r\n case 1:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NEW_CONTRACT');\r\n break;\r\n case 110:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED');\r\n break;\r\n case 201:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.ACCEPTED');\r\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAIT');\r\n break;\r\n case 2:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAITING_BUYER');\r\n break;\r\n case 3:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.COMPLETED');\r\n break;\r\n case 4:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NOT_RECEIVED');\r\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NULLIFIED');\r\n break;\r\n case 5:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.PROPOSAL_CANCEL');\r\n break;\r\n case 601:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.BEING_CANCELLED');\r\n break;\r\n case 6:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.CANCELLED');\r\n break;\r\n case 130:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED_CANCEL');\r\n break;\r\n case 140:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.EXPIRED');\r\n break;\r\n }\r\n return state.part1 + (state.part2.length ? '. ' + state.part2 : '');\r\n }\r\n\r\n getStateBuyer(stateNum: number): string {\r\n const state = {part1: '', part2: ''};\r\n switch (stateNum) {\r\n case 1:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING');\r\n break;\r\n case 110:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED');\r\n break;\r\n case 201:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED');\r\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAIT');\r\n break;\r\n case 2:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED');\r\n break;\r\n case 120:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_SELLER');\r\n break;\r\n case 3:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.COMPLETED');\r\n break;\r\n case 4:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NOT_RECEIVED');\r\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NULLIFIED');\r\n break;\r\n case 5:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_CANCEL');\r\n break;\r\n case 601:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.BEING_CANCELLED');\r\n break;\r\n case 6:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.CANCELLED');\r\n break;\r\n case 130:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED_CANCEL');\r\n break;\r\n case 140:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.EXPIRED');\r\n break;\r\n }\r\n return state.part1 + (state.part2.length ? '. ' + state.part2 : '');\r\n }\r\n\r\n transform(state: number, is_a?: boolean): any {\r\n if (is_a) {\r\n return this.getStateBuyer(state);\r\n } else {\r\n return this.getStateSeller(state);\r\n }\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {VariablesService} from '../services/variables.service';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'contractTimeLeft'\r\n})\r\nexport class ContractTimeLeftPipe implements PipeTransform {\r\n\r\n constructor(private service: VariablesService, private translate: TranslateService) {}\r\n\r\n transform(value: any, arg?: any): any {\r\n const time = parseInt(((parseInt(value, 10) - this.service.exp_med_ts) / 3600).toFixed(0), 10);\r\n const type = arg || 0;\r\n if (time === 0) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_LESS_ONE');\r\n }\r\n if (this.service.settings.language === 'en') {\r\n if (type === 0) {\r\n if (time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', {time: time});\r\n }\r\n } else if (type === 1) {\r\n if (time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', {time: time});\r\n }\r\n } else if (type === 2) {\r\n if (time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', {time: time});\r\n }\r\n }\r\n } else {\r\n const rest = time % 10;\r\n if (type === 0) {\r\n if (((time > 20 ) && (rest === 1)) || time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', {time: time});\r\n } else if ((time > 1) && (time < 5) || ((time > 20 ) && (rest === 2 || rest === 3 || rest === 4))) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT', {time: time});\r\n }\r\n } else if (type === 1) {\r\n if (((time > 20 ) && (rest === 1)) || time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', {time: time});\r\n } else if ((time > 1) && (time < 5) || ((time > 20 ) && (rest === 2 || rest === 3 || rest === 4))) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_RESPONSE', {time: time});\r\n }\r\n } else if (type === 2) {\r\n if (((time > 20 ) && (rest === 1)) || time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', {time: time});\r\n } else if ((time > 1) && (time < 5) || ((time > 20 ) && (rest === 2 || rest === 3 || rest === 4))) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_WAITING', {time: time});\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'historyTypeMessages'\r\n})\r\nexport class HistoryTypeMessagesPipe implements PipeTransform {\r\n\r\n constructor(private translate: TranslateService) {}\r\n\r\n transform(item: any, args?: any): any {\r\n\r\n if (item.tx_type === 0) {\r\n if (item.remote_addresses && item.remote_addresses[0]) {\r\n return item.remote_addresses[0];\r\n } else {\r\n if (item.is_income) {\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.HIDDEN');\r\n } else {\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED');\r\n }\r\n }\r\n } else if (item.tx_type === 6 && item.height === 0) {\r\n return 'unknown';\r\n } else if (item.tx_type === 9) {\r\n if (item.hasOwnProperty('contract') && item.contract[0].is_a) {\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_BUYER');\r\n } else {\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_SELLER');\r\n }\r\n } else {\r\n switch (item.tx_type) {\r\n // case 0:\r\n // return '';\r\n // case 1:\r\n // return '';\r\n // case 2:\r\n // return '';\r\n // case 3:\r\n // return '';\r\n case 4:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_ALIAS');\r\n case 5:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UPDATE_ALIAS');\r\n case 6:\r\n return (item.td['spn'] && item.td['spn'].length) ? this.translate.instant('HISTORY.TYPE_MESSAGES.POS_REWARD') : this.translate.instant('HISTORY.TYPE_MESSAGES.POW_REWARD');\r\n case 7:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_CONTRACT');\r\n case 8:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.PLEDGE_CONTRACT');\r\n // case 9:\r\n // return '';\r\n case 10:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.NULLIFY_CONTRACT');\r\n case 11:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.PROPOSAL_CANCEL_CONTRACT');\r\n case 12:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CANCEL_CONTRACT');\r\n }\r\n }\r\n\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED');\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {VariablesService} from '../services/variables.service';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Pipe({\r\n name: 'intToMoney'\r\n})\r\nexport class IntToMoneyPipe implements PipeTransform {\r\n\r\n constructor(private variablesService: VariablesService) {}\r\n\r\n transform(value: any, args?: any): any {\r\n if (value === 0 || value === undefined) {\r\n return '0';\r\n }\r\n let maxFraction = this.variablesService.digits;\r\n if (args) {\r\n maxFraction = parseInt(args, 10);\r\n }\r\n const power = Math.pow(10, this.variablesService.digits);\r\n let str = (new BigNumber(value)).div(power).toFixed(maxFraction);\r\n\r\n for (let i = str.length - 1; i >= 0; i--) {\r\n if (str[i] !== '0') {\r\n str = str.substr(0, i + 1);\r\n break;\r\n }\r\n }\r\n if (str[str.length - 1] === '.') {\r\n str = str.substr(0, str.length - 1);\r\n }\r\n return str;\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {VariablesService} from '../services/variables.service';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Pipe({\r\n name: 'moneyToInt'\r\n})\r\nexport class MoneyToIntPipe implements PipeTransform {\r\n\r\n constructor(private variablesService: VariablesService) {}\r\n\r\n transform(value: any, args?: any): any {\r\n const CURRENCY_DISPLAY_DECIMAL_POINT = this.variablesService.digits;\r\n let result;\r\n if (value) {\r\n let am_str = value.toString().trim();\r\n const point_index = am_str.indexOf('.');\r\n let fraction_size = 0;\r\n if (-1 !== point_index) {\r\n fraction_size = am_str.length - point_index - 1;\r\n while (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size && '0' === am_str[am_str.length - 1]) {\r\n am_str = am_str.slice(0, am_str.length - 1);\r\n --fraction_size;\r\n }\r\n if (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size) {\r\n return undefined;\r\n }\r\n am_str = am_str.slice(0, point_index) + am_str.slice(point_index + 1, am_str.length);\r\n } else {\r\n fraction_size = 0;\r\n }\r\n if (!am_str.length) {\r\n return undefined;\r\n }\r\n if (fraction_size < CURRENCY_DISPLAY_DECIMAL_POINT) {\r\n for (let i = 0; i !== CURRENCY_DISPLAY_DECIMAL_POINT - fraction_size; i++) {\r\n am_str = am_str + '0';\r\n }\r\n }\r\n result = (new BigNumber(am_str)).integerValue();\r\n }\r\n return result;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHTML'\r\n})\r\nexport class SafeHTMLPipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n transform(html: string) {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {VariablesService} from './variables.service';\r\nimport {ModalService} from './modal.service';\r\nimport {MoneyToIntPipe} from '../pipes/money-to-int.pipe';\r\nimport JSONBigNumber from 'json-bignumber';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Injectable()\r\nexport class BackendService {\r\n\r\n backendObject: any;\r\n backendLoaded = false;\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n private variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private moneyToIntPipe: MoneyToIntPipe\r\n ) {\r\n }\r\n\r\n static bigNumberParser(key, val) {\r\n if (val.constructor.name === 'BigNumber' && ['balance', 'unlocked_balance', 'amount', 'fee', 'b_fee', 'to_pay', 'a_pledge', 'b_pledge', 'coast', 'a'].indexOf(key) === -1) {\r\n return val.toNumber();\r\n }\r\n if (key === 'rcv' || key === 'spn') {\r\n for (let i = 0; i < val.length; i++) {\r\n val[i] = new BigNumber(val[i]);\r\n }\r\n }\r\n return val;\r\n }\r\n\r\n static Debug(type, message) {\r\n switch (type) {\r\n case 0:\r\n console.error(message);\r\n break;\r\n case 1:\r\n console.warn(message);\r\n break;\r\n case 2:\r\n console.log(message);\r\n break;\r\n default:\r\n console.log(message);\r\n break;\r\n }\r\n }\r\n\r\n private informerRun(error, params, command) {\r\n let error_translate = '';\r\n\r\n switch (error) {\r\n case 'NOT_ENOUGH_MONEY':\r\n error_translate = 'ERRORS.NOT_ENOUGH_MONEY';\r\n // error_translate = 'ERRORS.NO_MONEY'; maybe that one?\r\n if (command === 'cancel_offer') {\r\n error_translate = this.translate.instant('ERRORS.NO_MONEY_REMOVE_OFFER', {\r\n 'fee': this.variablesService.default_fee,\r\n 'currency': this.variablesService.defaultCurrency\r\n });\r\n }\r\n break;\r\n case 'CORE_BUSY':\r\n error_translate = 'ERRORS.CORE_BUSY';\r\n break;\r\n case 'BUSY':\r\n error_translate = 'ERRORS.DAEMON_BUSY';\r\n break;\r\n case 'OVERFLOW':\r\n if (command !== 'get_all_aliases') {\r\n error_translate = '';\r\n }\r\n break;\r\n case 'NOT_ENOUGH_OUTPUTS_FOR_MIXING':\r\n error_translate = 'ERRORS.NOT_ENOUGH_OUTPUTS_TO_MIX';\r\n break;\r\n case 'TX_IS_TOO_BIG':\r\n error_translate = 'ERRORS.TRANSACTION_IS_TO_BIG';\r\n break;\r\n case 'DISCONNECTED':\r\n error_translate = 'ERRORS.TRANSFER_ATTEMPT';\r\n break;\r\n case 'ACCESS_DENIED':\r\n error_translate = 'ERRORS.ACCESS_DENIED';\r\n break;\r\n case 'TX_REJECTED':\r\n // if (command === 'request_alias_registration') {\r\n // error_translate = 'INFORMER.ALIAS_IN_REGISTER';\r\n // } else {\r\n error_translate = 'ERRORS.TRANSACTION_ERROR';\r\n // }\r\n break;\r\n case 'INTERNAL_ERROR':\r\n error_translate = 'ERRORS.TRANSACTION_ERROR';\r\n break;\r\n case 'BAD_ARG':\r\n error_translate = 'ERRORS.BAD_ARG';\r\n break;\r\n case 'WALLET_WRONG_ID':\r\n error_translate = 'ERRORS.WALLET_WRONG_ID';\r\n break;\r\n case 'WALLET_WATCH_ONLY_NOT_SUPPORTED':\r\n error_translate = 'ERRORS.WALLET_WATCH_ONLY_NOT_SUPPORTED';\r\n break;\r\n case 'WRONG_PASSWORD':\r\n params = JSON.parse(params);\r\n if (!params.testEmpty) {\r\n error_translate = 'ERRORS.WRONG_PASSWORD';\r\n }\r\n break;\r\n case 'FILE_RESTORED':\r\n if (command === 'open_wallet') {\r\n error_translate = 'ERRORS.FILE_RESTORED';\r\n }\r\n break;\r\n case 'FILE_NOT_FOUND':\r\n if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') {\r\n error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND');\r\n params = JSON.parse(params);\r\n if (params.path) {\r\n error_translate += ': ' + params.path;\r\n }\r\n }\r\n break;\r\n case 'NOT_FOUND':\r\n if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') {\r\n error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND');\r\n params = JSON.parse(params);\r\n if (params.path) {\r\n error_translate += ': ' + params.path;\r\n }\r\n }\r\n break;\r\n case 'CANCELED':\r\n case '':\r\n break;\r\n case 'FAIL':\r\n if (command === 'create_proposal' || command === 'accept_proposal' || command === 'release_contract' || command === 'request_cancel_contract' || command === 'accept_cancel_contract') {\r\n error_translate = ' ';\r\n }\r\n break;\r\n case 'ALREADY_EXISTS':\r\n error_translate = 'ERRORS.FILE_EXIST';\r\n break;\r\n case 'FAILED':\r\n BackendService.Debug(0, `Error: (${error}) was triggered by command: ${command}`);\r\n break;\r\n default:\r\n error_translate = error;\r\n }\r\n if (error.indexOf('FAIL:failed to save file') > -1) {\r\n error_translate = 'ERRORS.FILE_NOT_SAVED';\r\n }\r\n if (error.indexOf('FAILED:failed to open binary wallet file for saving') > -1 && command === 'generate_wallet') {\r\n error_translate = '';\r\n }\r\n\r\n if (error_translate !== '') {\r\n this.modalService.prepareModal('error', error_translate);\r\n }\r\n }\r\n\r\n\r\n private commandDebug(command, params, result) {\r\n BackendService.Debug(2, '----------------- ' + command + ' -----------------');\r\n const debug = {\r\n _send_params: params,\r\n _result: result\r\n };\r\n BackendService.Debug(2, debug);\r\n try {\r\n BackendService.Debug(2, JSONBigNumber.parse(result, BackendService.bigNumberParser));\r\n } catch (e) {\r\n BackendService.Debug(2, {response_data: result, error_code: 'OK'});\r\n }\r\n }\r\n\r\n private backendCallback(resultStr, params, callback, command) {\r\n let Result = resultStr;\r\n if (command !== 'get_clipboard') {\r\n if (!resultStr || resultStr === '') {\r\n Result = {};\r\n } else {\r\n try {\r\n Result = JSONBigNumber.parse(resultStr, BackendService.bigNumberParser);\r\n } catch (e) {\r\n Result = {response_data: resultStr, error_code: 'OK'};\r\n }\r\n }\r\n } else {\r\n Result = {\r\n error_code: 'OK',\r\n response_data: Result\r\n };\r\n }\r\n\r\n const core_busy = Result.error_code === 'CORE_BUSY';\r\n const Status = (Result.error_code === 'OK' || Result.error_code === 'TRUE');\r\n\r\n if (!Status && Status !== undefined && Result.error_code !== undefined) {\r\n BackendService.Debug(1, 'API error for command: \"' + command + '\". Error code: ' + Result.error_code);\r\n }\r\n const data = ((typeof Result === 'object') && 'response_data' in Result) ? Result.response_data : Result;\r\n\r\n let res_error_code = false;\r\n if (typeof Result === 'object' && 'error_code' in Result && Result.error_code !== 'OK' && Result.error_code !== 'TRUE' && Result.error_code !== 'FALSE') {\r\n if (core_busy) {\r\n setTimeout( () => {\r\n // this is will avoid update data when user\r\n // on other wallet after CORE_BUSY (blink of data)\r\n if (command !== 'get_recent_transfers') {\r\n this.runCommand(command, params, callback);\r\n } else {\r\n const current_wallet_id = this.variablesService.currentWallet.wallet_id;\r\n if (current_wallet_id === params.wallet_id) {\r\n this.runCommand(command, params, callback);\r\n }\r\n }\r\n }, 50);\r\n } else {\r\n this.informerRun(Result.error_code, params, command);\r\n res_error_code = Result.error_code;\r\n }\r\n }\r\n\r\n // if ( command === 'get_offers_ex' ){\r\n // Service.printLog( \"get_offers_ex offers count \"+((data.offers)?data.offers.length:0) );\r\n // }\r\n\r\n if (!core_busy) {\r\n if (typeof callback === 'function') {\r\n callback(Status, data, res_error_code);\r\n } else {\r\n return data;\r\n }\r\n }\r\n }\r\n\r\n\r\n private runCommand(command, params?, callback?) {\r\n if (this.backendObject) {\r\n if (command === 'get_recent_transfers') {\r\n this.variablesService.get_recent_transfers = true;\r\n }\r\n const Action = this.backendObject[command];\r\n if (!Action) {\r\n BackendService.Debug(0, 'Run Command Error! Command \"' + command + '\" don\\'t found in backendObject');\r\n } else {\r\n const that = this;\r\n params = (typeof params === 'string') ? params : JSONBigNumber.stringify(params);\r\n if (params === undefined || params === '{}') {\r\n if (command === 'get_recent_transfers') {\r\n this.variablesService.get_recent_transfers = false;\r\n }\r\n Action(function (resultStr) {\r\n that.commandDebug(command, params, resultStr);\r\n return that.backendCallback(resultStr, params, callback, command);\r\n });\r\n } else {\r\n Action(params, function (resultStr) {\r\n that.commandDebug(command, params, resultStr);\r\n return that.backendCallback(resultStr, params, callback, command);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n eventSubscribe(command, callback) {\r\n if (command === 'on_core_event') {\r\n this.backendObject[command].connect(callback);\r\n } else {\r\n this.backendObject[command].connect((str) => {\r\n callback(JSONBigNumber.parse(str, BackendService.bigNumberParser));\r\n });\r\n }\r\n }\r\n\r\n\r\n initService() {\r\n return new Observable(\r\n observer => {\r\n if (!this.backendLoaded) {\r\n this.backendLoaded = true;\r\n const that = this;\r\n (window).QWebChannel((window).qt.webChannelTransport, function (channel) {\r\n that.backendObject = channel.objects.mediator_object;\r\n observer.next('ok');\r\n });\r\n } else {\r\n if (!this.backendObject) {\r\n observer.error('error');\r\n observer.error('error');\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n webkitLaunchedScript() {\r\n return this.runCommand('webkit_launched_script');\r\n }\r\n\r\n quitRequest() {\r\n return this.runCommand('on_request_quit');\r\n }\r\n\r\n getAppData(callback) {\r\n this.runCommand('get_app_data', {}, callback);\r\n }\r\n\r\n storeAppData(callback?) {\r\n if (this.variablesService.wallets.length) {\r\n this.variablesService.settings.wallets = [];\r\n this.variablesService.wallets.forEach((wallet) => {\r\n this.variablesService.settings.wallets.push({name: wallet.name, path: wallet.path});\r\n });\r\n }\r\n this.runCommand('store_app_data', this.variablesService.settings, callback);\r\n }\r\n\r\n getSecureAppData(pass, callback) {\r\n this.runCommand('get_secure_app_data', pass, callback);\r\n }\r\n\r\n setMasterPassword(pass, callback) {\r\n this.runCommand('set_master_password', pass, callback);\r\n }\r\n\r\n checkMasterPassword(pass, callback) {\r\n this.runCommand('check_master_password', pass, callback);\r\n }\r\n storeSecureAppData(callback?) {\r\n let data;\r\n const wallets = [];\r\n const contacts = [];\r\n this.variablesService.wallets.forEach((wallet) => {\r\n wallets.push({name: wallet.name, pass: wallet.pass, path: wallet.path, staking: wallet.staking});\r\n });\r\n this.variablesService.contacts.forEach((contact) => {\r\n contacts.push({name: contact.name, address: contact.address, notes: contact.notes});\r\n });\r\n data = {wallets: wallets, contacts: contacts};\r\n this.backendObject['store_secure_app_data'](JSON.stringify(data), this.variablesService.appPass, (dataStore) => {\r\n this.backendCallback(dataStore, {}, callback, 'store_secure_app_data');\r\n });\r\n }\r\n\r\n dropSecureAppData(callback?) {\r\n this.backendObject['drop_secure_app_data']((dataStore) => {\r\n this.backendCallback(dataStore, {}, callback, 'drop_secure_app_data');\r\n });\r\n }\r\n\r\n haveSecureAppData(callback) {\r\n this.runCommand('have_secure_app_data', {}, callback);\r\n }\r\n\r\n saveFileDialog(caption, fileMask, default_path, callback) {\r\n const dir = default_path ? default_path : '/';\r\n const params = {\r\n caption: caption,\r\n filemask: fileMask,\r\n default_dir: dir\r\n };\r\n this.runCommand('show_savefile_dialog', params, callback);\r\n }\r\n\r\n openFileDialog(caption, fileMask, default_path, callback) {\r\n const dir = default_path ? default_path : '/';\r\n const params = {\r\n caption: caption,\r\n filemask: fileMask,\r\n default_dir: dir\r\n };\r\n this.runCommand('show_openfile_dialog', params, callback);\r\n }\r\n\r\n storeFile(path, buff) {\r\n this.backendObject['store_to_file'](path, buff);\r\n }\r\n\r\n loadFile(path, callback) {\r\n this.runCommand('load_from_file', path, callback);\r\n }\r\n\r\n generateWallet(path, pass, callback) {\r\n const params = {\r\n path: path,\r\n pass: pass\r\n };\r\n this.runCommand('generate_wallet', params, callback);\r\n }\r\n\r\n openWallet(path, pass, txs_to_return, testEmpty, callback) {\r\n const params = {\r\n path: path,\r\n pass: pass,\r\n txs_to_return: txs_to_return\r\n };\r\n params['testEmpty'] = !!(testEmpty);\r\n this.runCommand('open_wallet', params, callback);\r\n }\r\n\r\n closeWallet(wallet_id, callback?) {\r\n this.runCommand('close_wallet', {wallet_id: +wallet_id}, callback);\r\n }\r\n\r\n getSmartWalletInfo({wallet_id, seed_password}, callback) {\r\n this.runCommand('get_smart_wallet_info', {wallet_id: +wallet_id, seed_password}, callback);\r\n }\r\n\r\n getSeedPhraseInfo(param, callback) {\r\n this.runCommand('get_seed_phrase_info', param, callback);\r\n }\r\n\r\n runWallet(wallet_id, callback?) {\r\n this.runCommand('run_wallet', {wallet_id: +wallet_id}, callback);\r\n }\r\n\r\n isValidRestoreWalletText(param, callback) {\r\n this.runCommand('is_valid_restore_wallet_text', param, callback);\r\n }\r\n\r\n restoreWallet(path, pass, seed_phrase, seed_pass, callback) {\r\n const params = {\r\n seed_phrase: seed_phrase,\r\n path: path,\r\n pass: pass,\r\n seed_pass\r\n };\r\n this.runCommand('restore_wallet', params, callback);\r\n }\r\n\r\n sendMoney(from_wallet_id, to_address, amount, fee, mixin, comment, hide, callback) {\r\n const params = {\r\n wallet_id: parseInt(from_wallet_id, 10),\r\n destinations: [\r\n {\r\n address: to_address,\r\n amount: amount\r\n }\r\n ],\r\n mixin_count: (mixin) ? parseInt(mixin, 10) : 0,\r\n lock_time: 0,\r\n fee: this.moneyToIntPipe.transform(fee),\r\n comment: comment,\r\n push_payer: !hide\r\n };\r\n this.runCommand('transfer', params, callback);\r\n }\r\n\r\n validateAddress(address, callback) {\r\n this.runCommand('validate_address', address, callback);\r\n }\r\n\r\n setClipboard(str, callback?) {\r\n return this.runCommand('set_clipboard', str, callback);\r\n }\r\n\r\n getClipboard(callback) {\r\n return this.runCommand('get_clipboard', {}, callback);\r\n }\r\n\r\n createProposal(wallet_id, title, comment, a_addr, b_addr, to_pay, a_pledge, b_pledge, time, payment_id, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n details: {\r\n t: title,\r\n c: comment,\r\n a_addr: a_addr,\r\n b_addr: b_addr,\r\n to_pay: this.moneyToIntPipe.transform(to_pay),\r\n a_pledge: this.moneyToIntPipe.transform(a_pledge),\r\n b_pledge: this.moneyToIntPipe.transform(b_pledge)\r\n },\r\n payment_id: payment_id,\r\n expiration_period: parseInt(time, 10) * 60 * 60,\r\n fee: this.variablesService.default_fee_big,\r\n b_fee: this.variablesService.default_fee_big\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('create_proposal', params, callback);\r\n }\r\n\r\n getContracts(wallet_id, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10)\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('get_contracts', params, callback);\r\n }\r\n\r\n acceptProposal(wallet_id, contract_id, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n contract_id: contract_id\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('accept_proposal', params, callback);\r\n }\r\n\r\n releaseProposal(wallet_id, contract_id, release_type, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n contract_id: contract_id,\r\n release_type: release_type // \"normal\" or \"burn\"\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('release_contract', params, callback);\r\n }\r\n\r\n requestCancelContract(wallet_id, contract_id, time, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n contract_id: contract_id,\r\n fee: this.variablesService.default_fee_big,\r\n expiration_period: parseInt(time, 10) * 60 * 60\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('request_cancel_contract', params, callback);\r\n }\r\n\r\n acceptCancelContract(wallet_id, contract_id, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n contract_id: contract_id\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('accept_cancel_contract', params, callback);\r\n }\r\n\r\n getMiningHistory(wallet_id, callback) {\r\n this.runCommand('get_mining_history', {wallet_id: parseInt(wallet_id, 10)}, callback);\r\n }\r\n\r\n startPosMining(wallet_id, callback?) {\r\n this.runCommand('start_pos_mining', {wallet_id: parseInt(wallet_id, 10)}, callback);\r\n }\r\n\r\n stopPosMining(wallet_id, callback?) {\r\n this.runCommand('stop_pos_mining', {wallet_id: parseInt(wallet_id, 10)}, callback);\r\n }\r\n\r\n openUrlInBrowser(url, callback?) {\r\n this.runCommand('open_url_in_browser', url, callback);\r\n }\r\n\r\n start_backend(node, host, port, callback) {\r\n const params = {\r\n configure_for_remote_node: node,\r\n remote_node_host: host,\r\n remote_node_port: parseInt(port, 10)\r\n };\r\n this.runCommand('start_backend', params, callback);\r\n }\r\n\r\n getDefaultFee(callback) {\r\n this.runCommand('get_default_fee', {}, callback);\r\n }\r\n\r\n setBackendLocalization(stringsArray, title, callback?) {\r\n const params = {\r\n strings: stringsArray,\r\n language_title: title\r\n };\r\n this.runCommand('set_localization_strings', params, callback);\r\n }\r\n\r\n registerAlias(wallet_id, alias, address, fee, comment, reward, callback) {\r\n const params = {\r\n wallet_id: wallet_id,\r\n alias: {\r\n alias: alias,\r\n address: address,\r\n tracking_key: '',\r\n comment: comment\r\n },\r\n fee: this.moneyToIntPipe.transform(fee),\r\n reward: this.moneyToIntPipe.transform(reward)\r\n };\r\n this.runCommand('request_alias_registration', params, callback);\r\n }\r\n\r\n updateAlias(wallet_id, alias, fee, callback) {\r\n const params = {\r\n wallet_id: wallet_id,\r\n alias: {\r\n alias: alias.name.replace('@', ''),\r\n address: alias.address,\r\n tracking_key: '',\r\n comment: alias.comment\r\n },\r\n fee: this.moneyToIntPipe.transform(fee)\r\n };\r\n this.runCommand('request_alias_update', params, callback);\r\n }\r\n\r\n getAllAliases(callback) {\r\n this.runCommand('get_all_aliases', {}, callback);\r\n }\r\n\r\n getAliasByName(value, callback) {\r\n return this.runCommand('get_alias_info_by_name', value, callback);\r\n }\r\n\r\n getAliasByAddress(value, callback) {\r\n return this.runCommand('get_alias_info_by_address', value, callback);\r\n }\r\n\r\n getAliasCoast(alias, callback) {\r\n this.runCommand('get_alias_coast', {v: alias}, callback);\r\n }\r\n\r\n getWalletAlias(address) {\r\n if (address !== null && this.variablesService.daemon_state === 2) {\r\n if (this.variablesService.aliasesChecked[address] == null) {\r\n this.variablesService.aliasesChecked[address] = {};\r\n if (this.variablesService.aliases.length) {\r\n for (let i = 0, length = this.variablesService.aliases.length; i < length; i++) {\r\n if (i in this.variablesService.aliases && this.variablesService.aliases[i]['address'] === address) {\r\n this.variablesService.aliasesChecked[address]['name'] = this.variablesService.aliases[i].name;\r\n this.variablesService.aliasesChecked[address]['address'] = this.variablesService.aliases[i].address;\r\n this.variablesService.aliasesChecked[address]['comment'] = this.variablesService.aliases[i].comment;\r\n return this.variablesService.aliasesChecked[address];\r\n }\r\n }\r\n }\r\n this.getAliasByAddress(address, (status, data) => {\r\n if (status) {\r\n this.variablesService.aliasesChecked[data.address]['name'] = '@' + data.alias;\r\n this.variablesService.aliasesChecked[data.address]['address'] = data.address;\r\n this.variablesService.aliasesChecked[data.address]['comment'] = data.comment;\r\n }\r\n });\r\n }\r\n return this.variablesService.aliasesChecked[address];\r\n }\r\n return {};\r\n }\r\n\r\n getContactAlias() {\r\n if (this.variablesService.contacts.length && this.variablesService.daemon_state === 2) {\r\n this.variablesService.contacts.map(contact => {\r\n this.getAliasByAddress(contact.address, (status, data) => {\r\n if (status) {\r\n if (data.alias) {\r\n contact.alias = '@' + data.alias;\r\n }\r\n } else {\r\n contact.alias = null;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n getRecentTransfers( id, offset, count, exclude_mining_txs, callback) {\r\n const params = {\r\n wallet_id: id,\r\n offset: offset,\r\n count: count,\r\n exclude_mining_txs: exclude_mining_txs\r\n };\r\n this.runCommand('get_recent_transfers', params, callback);\r\n }\r\n\r\n getPoolInfo(callback) {\r\n this.runCommand('get_tx_pool_info', {}, callback);\r\n }\r\n\r\n getVersion(callback) {\r\n this.runCommand('get_version', {}, (status, version) => {\r\n this.runCommand('get_network_type', {}, (status, type) => {\r\n callback(version, type);\r\n });\r\n });\r\n }\r\n\r\n setLogLevel(level) {\r\n return this.runCommand('set_log_level', {v: level});\r\n }\r\n\r\n}\r\n\r\n\r\n/*\r\n\r\n toggleAutoStart: function (value) {\r\n return this.runCommand('toggle_autostart', asVal(value));\r\n },\r\n\r\n getOptions: function (callback) {\r\n return this.runCommand('get_options', {}, callback);\r\n },\r\n\r\n isFileExist: function (path, callback) {\r\n return this.runCommand('is_file_exist', path, callback);\r\n },\r\n\r\n isAutoStartEnabled: function (callback) {\r\n this.runCommand('is_autostart_enabled', {}, function (status, data) {\r\n if (angular.isFunction(callback)) {\r\n callback('error_code' in data && data.error_code !== 'FALSE')\r\n }\r\n });\r\n },\r\n\r\n resetWalletPass: function (wallet_id, pass, callback) {\r\n this.runCommand('reset_wallet_password', {wallet_id: wallet_id, pass: pass}, callback);\r\n },\r\n\r\n\r\n\r\n getOsVersion: function (callback) {\r\n this.runCommand('get_os_version', {}, function (status, version) {\r\n callback(version)\r\n })\r\n },\r\n\r\n getLogFile: function (callback) {\r\n this.runCommand('get_log_file', {}, function (status, version) {\r\n callback(version)\r\n })\r\n },\r\n\r\n resync_wallet: function (wallet_id, callback) {\r\n this.runCommand('resync_wallet', {wallet_id: wallet_id}, callback);\r\n },\r\n\r\n storeFile: function (path, buff, callback) {\r\n this.backendObject['store_to_file'](path, (typeof buff === 'string' ? buff : JSON.stringify(buff)), function (data) {\r\n backendCallback(data, {}, callback, 'store_to_file');\r\n });\r\n },\r\n\r\n getMiningEstimate: function (amount_coins, time, callback) {\r\n var params = {\r\n \"amount_coins\": $filter('money_to_int')(amount_coins),\r\n \"time\": parseInt(time)\r\n };\r\n this.runCommand('get_mining_estimate', params, callback);\r\n },\r\n\r\n backupWalletKeys: function (wallet_id, path, callback) {\r\n var params = {\r\n \"wallet_id\": wallet_id,\r\n \"path\": path\r\n };\r\n this.runCommand('backup_wallet_keys', params, callback);\r\n },\r\n\r\n setBlockedIcon: function (enabled, callback) {\r\n var mode = (enabled) ? \"blocked\" : \"normal\";\r\n Service.runCommand('bool_toggle_icon', mode, callback);\r\n },\r\n\r\n getWalletInfo: function (wallet_id, callback) {\r\n this.runCommand('get_wallet_info', {wallet_id: wallet_id}, callback);\r\n },\r\n\r\n printText: function (content) {\r\n return this.runCommand('print_text', {html_text: content});\r\n },\r\n\r\n printLog: function (msg, log_level) {\r\n return this.runCommand('print_log', {msg: msg, log_level: log_level});\r\n },\r\n\r\n*/\r\n\r\n","import {Injectable, Injector, ComponentFactoryResolver, EmbeddedViewRef, ApplicationRef, NgZone} from '@angular/core';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {ModalContainerComponent} from '../directives/modal-container/modal-container.component';\r\n\r\n@Injectable()\r\nexport class ModalService {\r\n\r\n private components: any[] = [];\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private appRef: ApplicationRef,\r\n private injector: Injector,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {}\r\n\r\n prepareModal(type, message) {\r\n const length = this.components.push(\r\n this.componentFactoryResolver.resolveComponentFactory(ModalContainerComponent).create(this.injector)\r\n );\r\n\r\n this.components[length - 1].instance['type'] = type;\r\n this.components[length - 1].instance['message'] = message.length ? this.translate.instant(message) : '';\r\n this.components[length - 1].instance['close'].subscribe(() => {\r\n this.removeModal(length - 1);\r\n });\r\n\r\n this.ngZone.run(() => {\r\n this.appendModal(length - 1);\r\n });\r\n }\r\n\r\n appendModal(index) {\r\n this.appRef.attachView(this.components[index].hostView);\r\n const domElem = (this.components[index].hostView as EmbeddedViewRef).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n }\r\n\r\n removeModal(index) {\r\n if (this.components[index]) {\r\n this.appRef.detachView(this.components[index].hostView);\r\n this.components[index].destroy();\r\n this.components.splice(index, 1);\r\n } else {\r\n const last = this.components.length - 1;\r\n this.appRef.detachView(this.components[last].hostView);\r\n this.components[last].destroy();\r\n this.components.splice(last, 1);\r\n }\r\n }\r\n}\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { VariablesService } from './variables.service';\r\nimport { PaginationStore } from './pagination.store';\r\nimport * as _ from 'lodash';\r\nimport {Store} from 'store';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PaginationService {\r\n\r\n constructor(\r\n private variables: VariablesService,\r\n private ngZone: NgZone,\r\n private paginationStore: PaginationStore,\r\n ) { }\r\n\r\n paginate(currentPage = 1) {\r\n if (currentPage < 1) {\r\n currentPage = 1;\r\n } else if (currentPage > this.variables.currentWallet.totalPages) {\r\n currentPage = this.variables.currentWallet.totalPages;\r\n }\r\n let startPage: number, endPage: number;\r\n if (this.variables.currentWallet.totalPages <= this.variables.maxPages) {\r\n startPage = 1;\r\n endPage = this.variables.currentWallet.totalPages;\r\n } else {\r\n const maxPagesBeforeCurrentPage = Math.floor(this.variables.maxPages / 2);\r\n const maxPagesAfterCurrentPage = Math.ceil(this.variables.maxPages / 2) - 1;\r\n if (currentPage <= maxPagesBeforeCurrentPage) {\r\n startPage = 1;\r\n this.variables.currentWallet.totalPages > this.variables.maxPages\r\n ? endPage = this.variables.maxPages\r\n : endPage = this.variables.currentWallet.totalPages\r\n ;\r\n } else if (currentPage + maxPagesAfterCurrentPage >= this.variables.currentWallet.totalPages) {\r\n startPage = this.variables.currentWallet.totalPages - this.variables.maxPages + 1;\r\n endPage = this.variables.currentWallet.totalPages;\r\n } else {\r\n startPage = currentPage - maxPagesBeforeCurrentPage;\r\n endPage = currentPage + maxPagesAfterCurrentPage;\r\n }\r\n }\r\n this.ngZone.run(() => {\r\n this.variables.currentWallet.pages = Array.from(Array((endPage + 1) - startPage).keys()).map(i => startPage + i);\r\n });\r\n }\r\n\r\n getOffset(walletID) {\r\n const mining = this.variables.currentWallet.exclude_mining_txs;\r\n const currentPage = (this.variables.currentWallet.currentPage);\r\n let offset = ((currentPage - 1) * this.variables.count);\r\n if (!mining) { return offset; }\r\n const value = this.paginationStore.value;\r\n const pages = value.filter(item => item.walletID === walletID);\r\n if (pages && pages.length) {\r\n const max = _.maxBy(pages, 'page');\r\n const isForward = this.paginationStore.isForward(pages, currentPage);\r\n if (isForward) {\r\n offset = max.offset;\r\n } else {\r\n const index = pages.findIndex(item => item.page === (currentPage));\r\n offset = pages[index].offset;\r\n }\r\n }\r\n return offset;\r\n }\r\n\r\n calcPages(data) {\r\n if (data.total_history_items && (data && data.history)) {\r\n this.variables.currentWallet.totalPages = Math.ceil( data.total_history_items / this.variables.count);\r\n this.variables.currentWallet.totalPages > this.variables.maxPages\r\n ? this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : this.variables.currentWallet.pages =\r\n new Array(this.variables.currentWallet.totalPages).fill(1).map((value, index) => value + index);\r\n } else if (this.variables.currentWallet.restore) {\r\n this.variables.currentWallet.totalPages = Math.ceil( data.history.length / this.variables.count);\r\n this.variables.currentWallet.totalPages > this.variables.maxPages\r\n ? this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : this.variables.currentWallet.pages =\r\n new Array(this.variables.currentWallet.totalPages).fill(1).map((value, index) => value + index);\r\n }\r\n }\r\n\r\n prepareHistory(data, status) {\r\n if (status && (data && data.total_history_items)) {\r\n this.variables.currentWallet.history.splice(0, this.variables.currentWallet.history.length);\r\n this.ngZone.run(() => {\r\n this.paginate(this.variables.currentWallet.currentPage);\r\n if (data.history.length !== 0) {\r\n this.variables.currentWallet.restore = false;\r\n this.variables.currentWallet.total_history_item = data.total_history_items;\r\n this.variables.currentWallet.prepareHistory(data.history);\r\n if (this.variables.currentWallet.currentPage === 1 && data.unconfirmed) {\r\n this.variables.currentWallet.prepareHistory(data.unconfirmed);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, BehaviorSubject} from 'rxjs';\r\nimport * as _ from 'lodash';\r\nexport interface Pages {\r\n page: number;\r\n offset: number;\r\n walletID: number;\r\n}\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PaginationStore {\r\n constructor(\r\n ) {}\r\n private subject = new BehaviorSubject(null);\r\n pages$: Observable = this.subject.asObservable();\r\n\r\n isForward(pages, currentPage) {\r\n const max = _.maxBy(pages, 'page');\r\n return !max || max.page < currentPage || max.page === currentPage;\r\n }\r\n setPage(pageNumber: number, offset: number, walletID: number) {\r\n let newPages: Pages[] = [];\r\n const pages = this.subject.getValue();\r\n if (pages && pages.length) {\r\n newPages = pages.slice(0);\r\n }\r\n newPages.push({page: pageNumber, offset, walletID});\r\n this.subject.next(newPages);\r\n }\r\n\r\n get value() {\r\n return this.subject.value;\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UtilsService {\r\n getMinWidthByScale(scale: number) {\r\n switch (scale) {\r\n case 7.5 : return 900;\r\n case 10 : return 1200;\r\n case 12.5 : return 1500;\r\n case 15 : return 1800;\r\n default : return 1200;\r\n }\r\n }\r\n}\r\n","import {Injectable, NgZone} from '@angular/core';\r\nimport {Wallet} from '../models/wallet.model';\r\nimport {Contact} from '../models/contact.model';\r\nimport {BehaviorSubject} from 'rxjs';\r\nimport {Idle} from 'idlejs/dist';\r\nimport {Router} from '@angular/router';\r\nimport {ContextMenuComponent, ContextMenuService} from 'ngx-contextmenu';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VariablesService {\r\n public request_on_in = {};\r\n public stop_paginate = {};\r\n public sync_started = false;\r\n public digits = 12;\r\n public appPass = '';\r\n public appLogin = false;\r\n public moneyEquivalent = 0;\r\n public defaultTheme = 'dark';\r\n public defaultCurrency = 'ZANO';\r\n public opening_wallet: Wallet;\r\n public exp_med_ts = 0;\r\n public net_time_delta_median = 0;\r\n public height_app = 0;\r\n public height_max = 0;\r\n public downloaded = 0;\r\n public total = 0;\r\n public last_build_available = '';\r\n public last_build_displaymode = 0;\r\n public daemon_state = 3;\r\n public sync = {\r\n progress_value: 0,\r\n progress_value_text: '0'\r\n };\r\n public download = {\r\n progress_value: 0,\r\n progress_value_text: '0'\r\n };\r\n public get_recent_transfers = false; // avoid of execute function before collback complete\r\n public default_fee = '0.010000000000';\r\n public default_fee_big = new BigNumber('10000000000');\r\n\r\n public settings = {\r\n appLockTime: 15,\r\n appLog: 0,\r\n theme: '',\r\n scale: 10,\r\n language: 'en',\r\n default_path: '/',\r\n viewedContracts: [],\r\n notViewedContracts: [],\r\n wallets: []\r\n };\r\n\r\n public count = 40;\r\n public maxPages = 5;\r\n\r\n public testnet = false;\r\n public networkType = ''; // testnet of mainnet\r\n\r\n public wallets: Array = [];\r\n public currentWallet: Wallet;\r\n public selectWallet: number;\r\n public aliases: any = [];\r\n public aliasesChecked: any = {};\r\n public enableAliasSearch = false;\r\n public maxWalletNameLength = 25;\r\n public maxCommentLength = 255;\r\n public dataIsLoaded = false;\r\n\r\n public contacts: Array = [];\r\n public newContact: Contact = {name: null, address: null, notes: null};\r\n\r\n public pattern = '^[a-zA-Z0-9_.\\\\\\]\\*\\|\\~\\!\\?\\@\\#\\$\\%\\^\\&\\+\\{\\}\\(\\)\\<\\>\\:\\;\\\"\\'\\-\\=\\/\\,\\[\\\\\\\\]*$';\r\n public after_sync_request: any = {};\r\n getExpMedTsEvent = new BehaviorSubject(null);\r\n getHeightAppEvent = new BehaviorSubject(null);\r\n getHeightMaxEvent = new BehaviorSubject(null);\r\n getDownloadedAppEvent = new BehaviorSubject(null);\r\n getTotalEvent = new BehaviorSubject(null);\r\n getRefreshStackingEvent = new BehaviorSubject(null);\r\n getAliasChangedEvent = new BehaviorSubject(null);\r\n\r\n public idle = new Idle()\r\n .whenNotInteractive()\r\n .do(() => {\r\n if (this.appPass == '') {\r\n this.restartCountdown();\r\n } else {\r\n this.ngZone.run(() => {\r\n this.idle.stop();\r\n this.appPass = '';\r\n this.appLogin = false;\r\n this.router.navigate(['/login'], {queryParams: {type: 'auth'}});\r\n });\r\n }\r\n });\r\n\r\n public allContextMenu: ContextMenuComponent;\r\n public onlyCopyContextMenu: ContextMenuComponent;\r\n public pasteSelectContextMenu: ContextMenuComponent;\r\n\r\n constructor(private router: Router, private ngZone: NgZone, private contextMenuService: ContextMenuService) {\r\n }\r\n\r\n setExpMedTs(timestamp: number) {\r\n if (timestamp !== this.exp_med_ts) {\r\n this.exp_med_ts = timestamp;\r\n this.getExpMedTsEvent.next(timestamp);\r\n }\r\n }\r\n\r\n setHeightApp(height: number) {\r\n if (height !== this.height_app) {\r\n this.height_app = height;\r\n this.getHeightAppEvent.next(height);\r\n }\r\n }\r\n\r\n setHeightMax(height: number) {\r\n if (height !== this.height_max) {\r\n this.height_max = height;\r\n this.getHeightMaxEvent.next(height);\r\n }\r\n }\r\n\r\n setDownloadedBytes(bytes: number) {\r\n if (bytes !== this.downloaded) {\r\n this.downloaded = this.bytesToMb(bytes);\r\n this.getDownloadedAppEvent.next(bytes);\r\n }\r\n }\r\n\r\n setTotalBytes(bytes: number) {\r\n if (bytes !== this.total) {\r\n this.total = this.bytesToMb(bytes);\r\n this.getTotalEvent.next(bytes);\r\n }\r\n }\r\n\r\n setRefreshStacking(wallet_id: number) {\r\n this.getHeightAppEvent.next(wallet_id);\r\n }\r\n\r\n changeAliases() {\r\n this.getAliasChangedEvent.next(true);\r\n }\r\n\r\n setCurrentWallet(id): void {\r\n this.wallets.forEach((wallet) => {\r\n if (wallet.wallet_id === id) {\r\n this.currentWallet = wallet;\r\n }\r\n });\r\n }\r\n\r\n getWallet(id): Wallet {\r\n for (let i = 0; i < this.wallets.length; i++) {\r\n if (this.wallets[i].wallet_id === id) {\r\n return this.wallets[i];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n getNotLoadedWallet() {\r\n for (let i = 0; i < this.wallets.length; i++) {\r\n if (!this.wallets[i].loaded) {\r\n return this.wallets[i];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n startCountdown() {\r\n this.idle.within(this.settings.appLockTime).start();\r\n }\r\n\r\n stopCountdown() {\r\n this.idle.stop();\r\n }\r\n\r\n restartCountdown() {\r\n this.idle.within(this.settings.appLockTime).restart();\r\n }\r\n\r\n bytesToMb(bytes) {\r\n return Number((bytes / Math.pow(1024, 2)).toFixed(1));\r\n }\r\n\r\n public onContextMenu($event: MouseEvent): void {\r\n $event.target['contextSelectionStart'] = $event.target['selectionStart'];\r\n $event.target['contextSelectionEnd'] = $event.target['selectionEnd'];\r\n if ($event.target && ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') && !$event.target['readOnly']) {\r\n this.contextMenuService.show.next({\r\n contextMenu: this.allContextMenu,\r\n event: $event,\r\n item: $event.target,\r\n });\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n }\r\n\r\n public onContextMenuOnlyCopy($event: MouseEvent, copyText?: string): void {\r\n this.contextMenuService.show.next({\r\n contextMenu: this.onlyCopyContextMenu,\r\n event: $event,\r\n item: copyText\r\n });\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n\r\n public onContextMenuPasteSelect($event: MouseEvent): void {\r\n $event.target['contextSelectionStart'] = $event.target['selectionStart'];\r\n $event.target['contextSelectionEnd'] = $event.target['selectionEnd'];\r\n\r\n console.warn($event.target);\r\n console.warn($event.target['disabled']);\r\n\r\n\r\n if ($event.target && ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') && !$event.target['readOnly']) {\r\n this.contextMenuService.show.next({\r\n contextMenu: this.pasteSelectContextMenu,\r\n event: $event,\r\n item: $event.target,\r\n });\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n }\r\n\r\n}\r\n","export const MIXIN: number = 10; // default mixin value\r\nexport const RCV_ADDR_QR_SCALE: number = 2; // scale factor for QR code\r\n\r\nexport const AUDITABLE_WALLET_HELP_PAGE: string = 'docs.zano.org/docs/auditable-wallets';\r\nexport const CREATE_NEW_WALLET_HELP_PAGE: string = 'docs.zano.org/docs/getting-started-1#section-create-new-wallet';\r\nexport const LOCKED_BALANCE_HELP_PAGE: string = 'docs.zano.org/docs/locked-balance';\r\nexport const DOWNLOADS_PAGE_URL: string = 'zano.org/downloads.html';\r\n\r\nexport const BLOCK_EXPLORER_TX_URL_PREFIX: string = 'explorer.zano.org/transaction/';\r\nexport const BLOCK_EXPLORER_TN_TX_URL_PREFIX: string = 'testnet-explorer.zano.org/transaction/';\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.TITLE' | translate }}\\r\\n {{ 'CONTACTS.ADD' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.FORM_ERRORS.NAME_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.FORM_ERRORS.NAME_DUBLICATED' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.FORM_ERRORS.ADDRESS_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.FORM_ERRORS.ADDRESS_NOT_VALID' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.FORM_ERRORS.ADDRESS_DUBLICATED' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \".form-add {\\n margin-top: 3rem; }\\n .form-add .input-block-name {\\n width: 50%; }\\n .form-add button {\\n margin-top: 3rem;\\n width: 100%;\\n max-width: 18rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWRkLWNvbnRhY3RzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGFkZC1jb250YWN0c1xcYWRkLWNvbnRhY3RzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gsZ0JBQWdCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9hZGQtY29udGFjdHMvYWRkLWNvbnRhY3RzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tYWRkIHtcclxuICBtYXJnaW4tdG9wOiAzcmVtO1xyXG5cclxuICAuaW5wdXQtYmxvY2stbmFtZSB7XHJcbiAgICB3aWR0aDogNTAlO1xyXG4gIH1cclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIG1hcmdpbi10b3A6IDNyZW07XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMThyZW07XHJcbiAgfVxyXG59Il19 */\"","import { Component, OnInit, NgZone, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { ModalService } from '../_helpers/services/modal.service';\r\nimport { Location } from '@angular/common';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-add-contacts',\r\n templateUrl: './add-contacts.component.html',\r\n styleUrls: ['./add-contacts.component.scss']\r\n})\r\nexport class AddContactsComponent implements OnInit, OnDestroy {\r\n id: number;\r\n queryRouting;\r\n isModalDialogVisible;\r\n addContactForm = new FormGroup({\r\n address: new FormControl('', [\r\n Validators.required,\r\n (g: FormControl) => {\r\n if (g.value) {\r\n this.backend.validateAddress(g.value, valid_status => {\r\n this.ngZone.run(() => {\r\n if (valid_status === false) {\r\n g.setErrors(\r\n Object.assign({ address_not_valid: true }, g.errors)\r\n );\r\n } else {\r\n if (g.hasError('address_not_valid')) {\r\n delete g.errors['address_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n return g.hasError('address_not_valid')\r\n ? { address_not_valid: true }\r\n : null;\r\n }\r\n return null;\r\n },\r\n (g: FormControl) => {\r\n const isDublicated = this.variablesService.contacts.findIndex(\r\n contact => contact.address === g.value\r\n );\r\n if (isDublicated !== -1 && !(this.id === isDublicated)) {\r\n return { dublicated: true };\r\n }\r\n return null;\r\n }\r\n ]),\r\n notes: new FormControl('', [\r\n (g: FormControl) => {\r\n if (g.value) {\r\n if (g.value.length > this.variablesService.maxCommentLength) {\r\n return { maxLength: true };\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n ]),\r\n name: new FormControl('', [\r\n Validators.required,\r\n Validators.minLength(4),\r\n Validators.maxLength(25),\r\n (g: FormControl) => {\r\n if (g.value) {\r\n const isDublicated = this.variablesService.contacts.findIndex(\r\n contact => contact.name === g.value.trim()\r\n );\r\n if (isDublicated !== -1 && !(this.id === isDublicated)) {\r\n return { dublicated: true };\r\n }\r\n return null;\r\n }\r\n }\r\n ])\r\n });\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private location: Location\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.id) {\r\n this.id = parseInt(params.id, 10);\r\n this.addContactForm.reset({\r\n name: this.variablesService.contacts[params.id]['name'],\r\n address: this.variablesService.contacts[params.id]['address'],\r\n notes: this.variablesService.contacts[params.id]['notes']\r\n });\r\n } else {\r\n this.addContactForm.reset({\r\n name: this.variablesService.newContact['name'],\r\n address: this.variablesService.newContact['address'],\r\n notes: this.variablesService.newContact['notes']\r\n });\r\n }\r\n });\r\n }\r\n\r\n add() {\r\n if (!this.variablesService.appPass) {\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'CONTACTS.FORM_ERRORS.SET_MASTER_PASSWORD'\r\n );\r\n } else {\r\n if (this.addContactForm.valid) {\r\n this.backend.validateAddress(\r\n this.addContactForm.get('address').value,\r\n valid_status => {\r\n if (valid_status === false) {\r\n this.ngZone.run(() => {\r\n this.addContactForm\r\n .get('address')\r\n .setErrors({ address_not_valid: true });\r\n });\r\n } else {\r\n if (this.id || this.id === 0) {\r\n this.variablesService.contacts.forEach((contact, index) => {\r\n if (index === this.id) {\r\n contact.name = this.addContactForm.get('name').value.trim();\r\n contact.address = this.addContactForm.get('address').value;\r\n contact.notes =\r\n this.addContactForm.get('notes').value || '';\r\n }\r\n });\r\n this.backend.storeSecureAppData();\r\n this.backend.getContactAlias();\r\n this.modalService.prepareModal(\r\n 'success',\r\n 'CONTACTS.SUCCESS_SAVE'\r\n );\r\n } else {\r\n this.variablesService.contacts.push({\r\n name: this.addContactForm.get('name').value.trim(),\r\n address: this.addContactForm.get('address').value,\r\n notes: this.addContactForm.get('notes').value || ''\r\n });\r\n this.backend.storeSecureAppData();\r\n this.backend.getContactAlias();\r\n this.modalService.prepareModal(\r\n 'success',\r\n 'CONTACTS.SUCCESS_SENT'\r\n );\r\n this.variablesService.newContact = {\r\n name: null,\r\n address: null,\r\n notes: null\r\n };\r\n this.addContactForm.reset({\r\n name: null,\r\n address: null,\r\n notes: null\r\n });\r\n }\r\n }\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (!(this.id || this.id === 0)) {\r\n this.variablesService.newContact = {\r\n name: this.addContactForm.get('name').value,\r\n address: this.addContactForm.get('address').value,\r\n notes: this.addContactForm.get('notes').value\r\n };\r\n }\r\n this.queryRouting.unsubscribe();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\n// Components\r\nimport { MainComponent } from './main/main.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { WalletComponent } from './wallet/wallet.component';\r\nimport { SendComponent } from './send/send.component';\r\nimport { ReceiveComponent } from './receive/receive.component';\r\nimport { HistoryComponent } from './history/history.component';\r\nimport { ContractsComponent } from './contracts/contracts.component';\r\nimport { PurchaseComponent } from './purchase/purchase.component';\r\nimport { MessagesComponent } from './messages/messages.component';\r\nimport { TypingMessageComponent } from './typing-message/typing-message.component';\r\nimport { StakingComponent } from './staking/staking.component';\r\nimport { SettingsComponent } from './settings/settings.component';\r\nimport { CreateWalletComponent } from './create-wallet/create-wallet.component';\r\nimport { OpenWalletComponent } from './open-wallet/open-wallet.component';\r\nimport { RestoreWalletComponent } from './restore-wallet/restore-wallet.component';\r\nimport { SeedPhraseComponent } from './seed-phrase/seed-phrase.component';\r\nimport { WalletDetailsComponent } from './wallet-details/wallet-details.component';\r\nimport { AssignAliasComponent } from './assign-alias/assign-alias.component';\r\nimport { EditAliasComponent } from './edit-alias/edit-alias.component';\r\nimport { TransferAliasComponent } from './transfer-alias/transfer-alias.component';\r\nimport { ContactsComponent } from './contacts/contacts.component';\r\nimport { AddContactsComponent } from './add-contacts/add-contacts.component';\r\nimport { ContactSendComponent } from './contact-send/contact-send.component';\r\nimport { ExportImportComponent } from './export-import/export-import.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: MainComponent\r\n },\r\n {\r\n path: 'main',\r\n component: MainComponent\r\n },\r\n {\r\n path: 'login',\r\n component: LoginComponent\r\n },\r\n {\r\n path: 'wallet/:id',\r\n component: WalletComponent,\r\n children: [\r\n {\r\n path: 'send',\r\n component: SendComponent\r\n },\r\n {\r\n path: 'receive',\r\n component: ReceiveComponent\r\n },\r\n {\r\n path: 'history',\r\n component: HistoryComponent\r\n },\r\n {\r\n path: 'contracts',\r\n component: ContractsComponent,\r\n },\r\n {\r\n path: 'purchase',\r\n component: PurchaseComponent\r\n },\r\n {\r\n path: 'purchase/:id',\r\n component: PurchaseComponent\r\n },\r\n {\r\n path: 'messages',\r\n component: MessagesComponent,\r\n },\r\n {\r\n path: 'messages/:id',\r\n component: TypingMessageComponent,\r\n },\r\n {\r\n path: 'staking',\r\n component: StakingComponent\r\n },\r\n {\r\n path: '',\r\n redirectTo: 'history',\r\n pathMatch: 'full'\r\n }\r\n ]\r\n },\r\n {\r\n path: 'create',\r\n component: CreateWalletComponent\r\n },\r\n {\r\n path: 'open',\r\n component: OpenWalletComponent\r\n },\r\n {\r\n path: 'restore',\r\n component: RestoreWalletComponent\r\n },\r\n {\r\n path: 'seed-phrase',\r\n component: SeedPhraseComponent\r\n },\r\n {\r\n path: 'details',\r\n component: WalletDetailsComponent\r\n },\r\n {\r\n path: 'assign-alias',\r\n component: AssignAliasComponent\r\n },\r\n {\r\n path: 'edit-alias',\r\n component: EditAliasComponent\r\n },\r\n {\r\n path: 'transfer-alias',\r\n component: TransferAliasComponent\r\n },\r\n {\r\n path: 'settings',\r\n component: SettingsComponent\r\n },\r\n {\r\n path: 'contacts',\r\n component: ContactsComponent\r\n },\r\n {\r\n path: 'add-contacts',\r\n component: AddContactsComponent\r\n },\r\n {\r\n path: 'edit-contacts/:id',\r\n component: AddContactsComponent\r\n },\r\n {\r\n path: 'contact-send/:id',\r\n component: ContactSendComponent\r\n },\r\n {\r\n path: 'import',\r\n component: ExportImportComponent\r\n },\r\n {\r\n path: '',\r\n redirectTo: '/',\r\n pathMatch: 'full'\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\n\r\n\r\nexport class AppRoutingModule { }\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n {{ 'CONTEXT_MENU.COPY' | translate }}\\r\\n {{ 'CONTEXT_MENU.PASTE' | translate }}\\r\\n {{ 'CONTEXT_MENU.SELECT' | translate }}\\r\\n\\r\\n\\r\\n\\r\\n {{ 'CONTEXT_MENU.COPY' | translate }}\\r\\n\\r\\n\\r\\n\\r\\n {{ 'CONTEXT_MENU.PASTE' | translate }}\\r\\n {{ 'CONTEXT_MENU.SELECT' | translate }}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"/*\\r\\n* Implementation of themes\\r\\n*/\\n.app-content {\\n display: flex;\\n overflow-x: overlay;\\n overflow-y: hidden;\\n width: 100%; }\\n.app-content .preloader {\\n align-self: center;\\n color: #fff;\\n font-size: 2rem;\\n margin: 0 auto;\\n text-align: center;\\n width: 50%; }\\n.app-content .preloader .loading-bar {\\n display: block;\\n -webkit-animation: move 5s linear infinite;\\n animation: move 5s linear infinite;\\n background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.125, rgba(0, 0, 0, 0.15)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.1)), color-stop(0.375, rgba(0, 0, 0, 0.1)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.15)), color-stop(0.625, rgba(0, 0, 0, 0.15)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.1)), color-stop(0.875, rgba(0, 0, 0, 0.1)), color-stop(0.875, transparent), to(transparent)), -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\\n background-size: 10rem 10rem;\\n margin-top: 2rem;\\n width: 100%;\\n height: 1rem; }\\n@-webkit-keyframes move {\\n 0% {\\n background-position: 100% -10rem; }\\n 100% {\\n background-position: 100% 10rem; } }\\n@keyframes move {\\n 0% {\\n background-position: 100% -10rem; }\\n 100% {\\n background-position: 100% 10rem; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFzc2V0c1xcc2Nzc1xcYmFzZVxcX21peGlucy5zY3NzIiwic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGFwcC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4RUE7O0NDNUVDO0FDQUQ7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUNsQixXQUFXLEVBQUE7QUFKYjtJQU9JLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsZUFBZTtJQUNmLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsVUFBVSxFQUFBO0FBWmQ7TUFlTSxjQUFjO01BQ2QsMENBQWtDO2NBQWxDLGtDQUFrQztNQUNsQywrbENBc0JHO01BQ0gsNEJBQTRCO01BQzVCLGdCQUFnQjtNQUNoQixXQUFXO01BQ1gsWUFBWSxFQUFBO0FBSWhCO0VBQ0U7SUFDRSxnQ0FBZ0MsRUFBQTtFQUVsQztJQUNFLCtCQUErQixFQUFBLEVBQUE7QUFMbkM7RUFDRTtJQUNFLGdDQUFnQyxFQUFBO0VBRWxDO0lBQ0UsK0JBQStCLEVBQUEsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBtaXhpbiB0ZXh0LXRydW5jYXRlIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuQG1peGluIHRleHRXcmFwIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICBsaW5lLWJyZWFrOiBzdHJpY3Q7XHJcbiAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xyXG4gIC1tcy1oeXBoZW5zOiBhdXRvO1xyXG4gIGh5cGhlbnM6IGF1dG87XHJcbn1cclxuQG1peGluIGNvdmVyQm94IHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG59XHJcbkBtaXhpbiBhYnMgKCR0b3A6IGF1dG8sICRyaWdodDogYXV0bywgJGJvdHRvbTogYXV0bywgJGxlZnQ6IGF1dG8pIHtcclxuICB0b3A6ICR0b3A7XHJcbiAgcmlnaHQ6ICRyaWdodDtcclxuICBib3R0b206ICRib3R0b207XHJcbiAgbGVmdDogJGxlZnQ7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcbkBtaXhpbiBjb3ZlckltZyB7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHQtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0LW8tYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbn1cclxuQG1peGluIHZhbGluZ0JveCB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogIDUwJTtcclxuXHRsZWZ0OiA1MCU7XHJcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbn1cclxuQG1peGluIHVuU2VsZWN0IHtcclxuXHQtd2Via2l0LXRvdWNoLWNvbGxvdXQ6IG5vbmU7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbn1cclxuQG1peGluIG1heDExOTkgeyAvLyBtYWtldCAxMTcxXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkgeyBAY29udGVudDsgfVxyXG59XHJcbkBtaXhpbiBtYXgxMTcwIHsgLy8gbWFrZXRzIDk5MlxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMTcwcHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbWF4OTkxIHsgLy8gbWFrZXRzIDc2MlxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkgeyBAY29udGVudDsgfVxyXG59XHJcbkBtaXhpbiBtYXg3NjEgeyAvLyBtYWtldHMgNTc2XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2MXB4KSB7IEBjb250ZW50OyB9XHJcbn1cclxuQG1peGluIG1heDU3NSB7IC8vIG1ha2V0cyA0MDBcclxuICBAbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbW9iaWxlIHtcclxuICBAbWVkaWEgKG1heC13aWR0aDogMzk5cHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gaWNvQ2VudGVyIHtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xyXG59XHJcbkBtaXhpbiBwc2V1ZG8gKCRkaXNwbGF5OiBibG9jaywgJHBvczogYWJzb2x1dGUsICRjb250ZW50OiAnJyl7XHJcbiAgY29udGVudDogJGNvbnRlbnQ7XHJcbiAgZGlzcGxheTogJGRpc3BsYXk7XHJcbiAgcG9zaXRpb246ICRwb3M7XHJcbn1cclxuXHJcbi8qXHJcbiogSW1wbGVtZW50YXRpb24gb2YgdGhlbWVzXHJcbiovXHJcbkBtaXhpbiB0aGVtaWZ5KCR0aGVtZXM6ICR0aGVtZXMpIHtcclxuICBAZWFjaCAkdGhlbWUsICRtYXAgaW4gJHRoZW1lcyB7XHJcbiAgICAudGhlbWUtI3skdGhlbWV9ICYge1xyXG4gICAgICAkdGhlbWUtbWFwOiAoKSAhZ2xvYmFsO1xyXG4gICAgICBAZWFjaCAka2V5LCAkc3VibWFwIGluICRtYXAge1xyXG4gICAgICAgICR2YWx1ZTogbWFwLWdldChtYXAtZ2V0KCR0aGVtZXMsICR0aGVtZSksICcjeyRrZXl9Jyk7XHJcbiAgICAgICAgJHRoZW1lLW1hcDogbWFwLW1lcmdlKCR0aGVtZS1tYXAsICgka2V5OiAkdmFsdWUpKSAhZ2xvYmFsO1xyXG4gICAgICB9XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgICAkdGhlbWUtbWFwOiBudWxsICFnbG9iYWw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AZnVuY3Rpb24gdGhlbWVkKCRrZXkpIHtcclxuICBAcmV0dXJuIG1hcC1nZXQoJHRoZW1lLW1hcCwgJGtleSk7XHJcbn1cclxuIiwiLypcclxuKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGVtZXNcclxuKi9cbi5hcHAtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93LXg6IG92ZXJsYXk7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmFwcC1jb250ZW50IC5wcmVsb2FkZXIge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAuYXBwLWNvbnRlbnQgLnByZWxvYWRlciAubG9hZGluZy1iYXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBhbmltYXRpb246IG1vdmUgNXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMTAwJSAxMDAlLCBjb2xvci1zdG9wKDAuMTI1LCByZ2JhKDAsIDAsIDAsIDAuMTUpKSwgY29sb3Itc3RvcCgwLjEyNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjI1LCByZ2JhKDAsIDAsIDAsIDAuMSkpLCBjb2xvci1zdG9wKDAuMzc1LCByZ2JhKDAsIDAsIDAsIDAuMSkpLCBjb2xvci1zdG9wKDAuMzc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCByZ2JhKDAsIDAsIDAsIDAuMTUpKSwgY29sb3Itc3RvcCgwLjYyNSwgcmdiYSgwLCAwLCAwLCAwLjE1KSksIGNvbG9yLXN0b3AoMC42MjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC43NSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjg3NSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjg3NSwgdHJhbnNwYXJlbnQpLCB0byh0cmFuc3BhcmVudCkpLCAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsIGNvbG9yLXN0b3AoMC4xMjUsIHJnYmEoMCwgMCwgMCwgMC4zKSksIGNvbG9yLXN0b3AoMC4xMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC4yNSwgcmdiYSgwLCAwLCAwLCAwLjI1KSksIGNvbG9yLXN0b3AoMC4zNzUsIHJnYmEoMCwgMCwgMCwgMC4yNSkpLCBjb2xvci1zdG9wKDAuMzc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCByZ2JhKDAsIDAsIDAsIDAuMykpLCBjb2xvci1zdG9wKDAuNjI1LCByZ2JhKDAsIDAsIDAsIDAuMykpLCBjb2xvci1zdG9wKDAuNjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC43NSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNzUsIHJnYmEoMCwgMCwgMCwgMC4yNSkpLCBjb2xvci1zdG9wKDAuODc1LCByZ2JhKDAsIDAsIDAsIDAuMjUpKSwgY29sb3Itc3RvcCgwLjg3NSwgdHJhbnNwYXJlbnQpLCB0byh0cmFuc3BhcmVudCkpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMHJlbSAxMHJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMXJlbTsgfVxuXG5Aa2V5ZnJhbWVzIG1vdmUge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtMTByZW07IH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAxMHJlbTsgfSB9XG4iLCJAaW1wb3J0ICd+c3JjL2Fzc2V0cy9zY3NzL2Jhc2UvbWl4aW5zJztcclxuXHJcbi5hcHAtY29udGVudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBvdmVyZmxvdy14OiBvdmVybGF5O1xyXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgLnByZWxvYWRlciB7XHJcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd2lkdGg6IDUwJTtcclxuXHJcbiAgICAubG9hZGluZy1iYXIge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgYW5pbWF0aW9uOiBtb3ZlIDVzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTpcclxuICAgICAgICAtd2Via2l0LWdyYWRpZW50KFxyXG4gICAgICAgICAgICBsaW5lYXIsIDAgMCwgMTAwJSAxMDAlLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC4xMjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjEyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC4yNTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguMjUwLCByZ2JhKDAsIDAsIDAsIC4xMCkpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC4zNzUsIHJnYmEoMCwgMCwgMCwgLjEwKSksIGNvbG9yLXN0b3AoLjM3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC41MDAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNTAwLCByZ2JhKDAsIDAsIDAsIC4xNSkpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC42MjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjYyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC43NTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNzUwLCByZ2JhKDAsIDAsIDAsIC4xMCkpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC44NzUsIHJnYmEoMCwgMCwgMCwgLjEwKSksIGNvbG9yLXN0b3AoLjg3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICB0byh0cmFuc3BhcmVudClcclxuICAgICAgICApLFxyXG4gICAgICAgIC13ZWJraXQtZ3JhZGllbnQoXHJcbiAgICAgICAgICAgIGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjEyNSwgcmdiYSgwLCAwLCAwLCAuMzApKSwgY29sb3Itc3RvcCguMTI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjI1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC4yNTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjM3NSwgcmdiYSgwLCAwLCAwLCAuMjUpKSwgY29sb3Itc3RvcCguMzc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjUwMCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC41MDAsIHJnYmEoMCwgMCwgMCwgLjMwKSksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjYyNSwgcmdiYSgwLCAwLCAwLCAuMzApKSwgY29sb3Itc3RvcCguNjI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjc1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC43NTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjg3NSwgcmdiYSgwLCAwLCAwLCAuMjUpKSwgY29sb3Itc3RvcCguODc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIHRvKHRyYW5zcGFyZW50KVxyXG4gICAgICAgICk7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTByZW0gMTByZW07XHJcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDFyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAa2V5ZnJhbWVzIG1vdmUge1xyXG4gICAgMCUge1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIC0xMHJlbTtcclxuICAgIH1cclxuICAgIDEwMCUge1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDEwcmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */\"","import {Component, OnInit, NgZone, Renderer2, OnDestroy, ViewChild} from '@angular/core';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {BackendService} from './_helpers/services/backend.service';\r\nimport {Router} from '@angular/router';\r\nimport {VariablesService} from './_helpers/services/variables.service';\r\nimport {ContextMenuComponent} from 'ngx-contextmenu';\r\nimport {IntToMoneyPipe} from './_helpers/pipes/int-to-money.pipe';\r\nimport {BigNumber} from 'bignumber.js';\r\nimport {ModalService} from './_helpers/services/modal.service';\r\nimport {UtilsService} from './_helpers/services/utils.service';\r\nimport {Store} from 'store';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n providers: [UtilsService]\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n\r\n intervalUpdatePriceState;\r\n intervalUpdateContractsState;\r\n expMedTsEvent;\r\n onQuitRequest = false;\r\n firstOnlineState = false;\r\n translateUsed = false;\r\n\r\n needOpenWallets = [];\r\n\r\n @ViewChild('allContextMenu') public allContextMenu: ContextMenuComponent;\r\n @ViewChild('onlyCopyContextMenu') public onlyCopyContextMenu: ContextMenuComponent;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private renderer: Renderer2,\r\n public translate: TranslateService,\r\n private backend: BackendService,\r\n private router: Router,\r\n public variablesService: VariablesService,\r\n private ngZone: NgZone,\r\n private intToMoneyPipe: IntToMoneyPipe,\r\n private modalService: ModalService,\r\n private utilsService: UtilsService,\r\n private store: Store\r\n ) {\r\n translate.addLangs(['en', 'fr', 'de', 'it', 'pt']);\r\n translate.setDefaultLang('en');\r\n // const browserLang = translate.getBrowserLang();\r\n // translate.use(browserLang.match(/en|fr/) ? browserLang : 'en');\r\n translate.use('en').subscribe(() => {\r\n this.translateUsed = true;\r\n });\r\n }\r\n\r\n setBackendLocalization() {\r\n if (this.translateUsed) {\r\n const stringsArray = [\r\n this.translate.instant('BACKEND_LOCALIZATION.QUIT'),\r\n this.translate.instant('BACKEND_LOCALIZATION.IS_RECEIVED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.IS_CONFIRMED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_UNCONFIRMED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_CONFIRMED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.MINED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.LOCKED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.IS_MINIMIZE'),\r\n this.translate.instant('BACKEND_LOCALIZATION.RESTORE'),\r\n this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_SHOW'),\r\n this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_MINIMIZE')\r\n ];\r\n this.backend.setBackendLocalization(stringsArray, this.variablesService.settings.language);\r\n } else {\r\n console.warn('wait translate use');\r\n setTimeout(() => {\r\n this.setBackendLocalization();\r\n }, 10000);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.variablesService.allContextMenu = this.allContextMenu;\r\n this.variablesService.onlyCopyContextMenu = this.onlyCopyContextMenu;\r\n\r\n this.backend.initService().subscribe(initMessage => {\r\n console.log('Init message: ', initMessage);\r\n\r\n this.backend.webkitLaunchedScript();\r\n\r\n this.backend.start_backend(false, '127.0.0.1', 11512, (st2, dd2) => {\r\n console.log(st2, dd2);\r\n });\r\n\r\n this.backend.eventSubscribe('quit_requested', () => {\r\n if (!this.onQuitRequest) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n this.needOpenWallets = [];\r\n this.variablesService.daemon_state = 5;\r\n const saveFunction = () => {\r\n this.backend.storeAppData(() => {\r\n const recursionCloseWallets = () => {\r\n if (this.variablesService.wallets.length) {\r\n const lastIndex = this.variablesService.wallets.length - 1;\r\n this.backend.closeWallet(this.variablesService.wallets[lastIndex].wallet_id, () => {\r\n this.variablesService.wallets.splice(lastIndex, 1);\r\n recursionCloseWallets();\r\n });\r\n } else {\r\n this.backend.quitRequest();\r\n }\r\n };\r\n recursionCloseWallets();\r\n });\r\n };\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData(() => {\r\n saveFunction();\r\n });\r\n } else {\r\n saveFunction();\r\n }\r\n }\r\n this.onQuitRequest = true;\r\n });\r\n\r\n this.backend.eventSubscribe('update_wallet_status', (data) => {\r\n console.log('----------------- update_wallet_status -----------------');\r\n console.log(data);\r\n\r\n const wallet_state = data.wallet_state;\r\n const is_mining = data.is_mining;\r\n const wallet = this.variablesService.getWallet(data.wallet_id);\r\n // 1-synch, 2-ready, 3 - error\r\n if (wallet) {\r\n this.ngZone.run(() => {\r\n wallet.loaded = false;\r\n wallet.staking = is_mining;\r\n if (wallet_state === 2) { // ready\r\n wallet.loaded = true;\r\n }\r\n if (wallet_state === 3) { // error\r\n // wallet.error = true;\r\n }\r\n wallet.balance = data.balance;\r\n wallet.unlocked_balance = data.unlocked_balance;\r\n wallet.mined_total = data.minied_total;\r\n wallet.alias_available = data.is_alias_operations_available;\r\n });\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('wallet_sync_progress', (data) => {\r\n console.log('----------------- wallet_sync_progress -----------------');\r\n console.log(data);\r\n\r\n const wallet = this.variablesService.getWallet(data.wallet_id);\r\n if (wallet) {\r\n this.ngZone.run(() => {\r\n wallet.progress = (data.progress < 0) ? 0 : ((data.progress > 100) ? 100 : data.progress);\r\n if (!this.variablesService.sync_started) {\r\n this.variablesService.sync_started = true;\r\n }\r\n this.addToStore(wallet, true); // subscribe on data\r\n if (wallet.progress === 0) {\r\n wallet.loaded = false;\r\n } else if (wallet.progress === 100) {\r\n wallet.loaded = true;\r\n this.addToStore(wallet, false);\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('update_daemon_state', (data) => {\r\n console.log('----------------- update_daemon_state -----------------');\r\n console.log('DAEMON:' + data.daemon_network_state);\r\n console.log(data);\r\n // this.variablesService.exp_med_ts = data['expiration_median_timestamp'] + 600 + 1;\r\n this.variablesService.setExpMedTs(data['expiration_median_timestamp'] + 600 + 1);\r\n this.variablesService.net_time_delta_median = data.net_time_delta_median;\r\n this.variablesService.last_build_available = data.last_build_available;\r\n this.variablesService.last_build_displaymode = data.last_build_displaymode;\r\n this.variablesService.setHeightApp(data.height);\r\n this.variablesService.setHeightMax(data.max_net_seen_height);\r\n\r\n this.variablesService.setDownloadedBytes(data.downloaded_bytes);\r\n this.variablesService.setTotalBytes(data.download_total_data_size);\r\n\r\n this.backend.getContactAlias();\r\n this.ngZone.run(() => {\r\n this.variablesService.daemon_state = data['daemon_network_state'];\r\n if (data['daemon_network_state'] === 1) {\r\n const max = data['max_net_seen_height'] - data['synchronization_start_height'];\r\n const current = data.height - data['synchronization_start_height'];\r\n const return_val = Math.floor((current * 100 / max) * 100) / 100;\r\n if (max === 0 || return_val < 0) {\r\n this.variablesService.sync.progress_value = 0;\r\n this.variablesService.sync.progress_value_text = '0.00';\r\n } else if (return_val >= 100) {\r\n this.variablesService.sync.progress_value = 100;\r\n this.variablesService.sync.progress_value_text = '99.99';\r\n } else {\r\n this.variablesService.sync.progress_value = return_val;\r\n this.variablesService.sync.progress_value_text = return_val.toFixed(2);\r\n }\r\n }\r\n\r\n if (data['daemon_network_state'] === 6) {\r\n const max = data['download_total_data_size'];\r\n const current = data['downloaded_bytes'];\r\n const return_val = Math.floor((current / max) * 100);\r\n if (max === 0 || return_val < 0) {\r\n this.variablesService.download.progress_value = 0;\r\n this.variablesService.download.progress_value_text = '0.00';\r\n } else if (return_val >= 100) {\r\n this.variablesService.download.progress_value = 100;\r\n this.variablesService.download.progress_value_text = '99.99';\r\n } else {\r\n this.variablesService.download.progress_value = return_val;\r\n this.variablesService.download.progress_value_text = return_val.toFixed(2);\r\n }\r\n }\r\n });\r\n if (!this.firstOnlineState && data['daemon_network_state'] === 2) {\r\n this.getAliases();\r\n this.backend.getContactAlias();\r\n this.backend.getDefaultFee((status_fee, data_fee) => {\r\n this.variablesService.default_fee_big = new BigNumber(data_fee);\r\n this.variablesService.default_fee = this.intToMoneyPipe.transform(data_fee);\r\n });\r\n this.firstOnlineState = true;\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('money_transfer', (data) => {\r\n console.log('----------------- money_transfer -----------------');\r\n console.log(data);\r\n\r\n if (!data.ti) {\r\n return;\r\n }\r\n\r\n const wallet_id = data.wallet_id;\r\n const tr_info = data.ti;\r\n\r\n const wallet = this.variablesService.getWallet(wallet_id);\r\n if (wallet) {\r\n if(wallet.history.length > 40) {\r\n wallet.history.splice(40, 1);\r\n }\r\n this.ngZone.run(() => {\r\n\r\n if (!wallet.loaded) {\r\n wallet.balance = data.balance;\r\n wallet.unlocked_balance = data.unlocked_balance;\r\n } else {\r\n wallet.balance = data.balance;\r\n wallet.unlocked_balance = data.unlocked_balance;\r\n }\r\n\r\n if (tr_info.tx_type === 6) {\r\n this.variablesService.setRefreshStacking(wallet_id);\r\n }\r\n\r\n let tr_exists = wallet.excluded_history.some(elem => elem.tx_hash === tr_info.tx_hash);\r\n tr_exists = (!tr_exists) ? wallet.history.some(elem => elem.tx_hash === tr_info.tx_hash) : tr_exists;\r\n\r\n if (wallet.currentPage === 1) {\r\n wallet.prepareHistory([tr_info]);\r\n if (wallet.restore) {\r\n wallet.total_history_item = wallet.history.length;\r\n wallet.totalPages = Math.ceil( wallet.total_history_item / this.variablesService.count);\r\n wallet.totalPages > this.variablesService.maxPages\r\n ? wallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : wallet.pages = new Array(wallet.totalPages).fill(1).map((value, index) => value + index);\r\n }\r\n }\r\n\r\n if (tr_info.hasOwnProperty('contract')) {\r\n const exp_med_ts = this.variablesService.exp_med_ts;\r\n const height_app = this.variablesService.height_app;\r\n\r\n const contract = tr_info.contract[0];\r\n\r\n if (tr_exists) {\r\n for (let i = 0; i < wallet.contracts.length; i++) {\r\n if (wallet.contracts[i].contract_id === contract.contract_id && wallet.contracts[i].is_a === contract.is_a) {\r\n wallet.contracts[i].cancel_expiration_time = contract.cancel_expiration_time;\r\n wallet.contracts[i].expiration_time = contract.expiration_time;\r\n wallet.contracts[i].height = contract.height;\r\n wallet.contracts[i].timestamp = contract.timestamp;\r\n break;\r\n }\r\n }\r\n // $rootScope.getContractsRecount();\r\n return;\r\n }\r\n\r\n if (contract.state === 1 && contract.expiration_time < exp_med_ts) {\r\n contract.state = 110;\r\n } else if (contract.state === 5 && contract.cancel_expiration_time < exp_med_ts) {\r\n contract.state = 130;\r\n } else if (contract.state === 1) {\r\n const searchResult2 = this.variablesService.settings.notViewedContracts.find(elem => elem.state === 110 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult2) {\r\n if (searchResult2.time === contract.expiration_time) {\r\n contract.state = 110;\r\n } else {\r\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\r\n if (this.variablesService.settings.notViewedContracts[j].contract_id === contract.contract_id && this.variablesService.settings.notViewedContracts[j].is_a === contract.is_a) {\r\n this.variablesService.settings.notViewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\r\n if (this.variablesService.settings.viewedContracts[j].contract_id === contract.contract_id && this.variablesService.settings.viewedContracts[j].is_a === contract.is_a) {\r\n this.variablesService.settings.viewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else if (contract.state === 2 && (contract.height === 0 || (height_app - contract.height) < 10)) {\r\n contract.state = 201;\r\n } else if (contract.state === 2) {\r\n const searchResult3 = this.variablesService.settings.viewedContracts.some(elem => elem.state === 120 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult3) {\r\n contract.state = 120;\r\n }\r\n } else if (contract.state === 5) {\r\n const searchResult4 = this.variablesService.settings.notViewedContracts.find(elem => elem.state === 130 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult4) {\r\n if (searchResult4.time === contract.cancel_expiration_time) {\r\n contract.state = 130;\r\n } else {\r\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\r\n if (this.variablesService.settings.notViewedContracts[j].contract_id === contract.contract_id && this.variablesService.settings.notViewedContracts[j].is_a === contract.is_a) {\r\n this.variablesService.settings.notViewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\r\n if (this.variablesService.settings.viewedContracts[j].contract_id === contract.contract_id && this.variablesService.settings.viewedContracts[j].is_a === contract.is_a) {\r\n this.variablesService.settings.viewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else if (contract.state === 6 && (contract.height === 0 || (height_app - contract.height) < 10)) {\r\n contract.state = 601;\r\n }\r\n\r\n const searchResult = this.variablesService.settings.viewedContracts.some(elem => elem.state === contract.state && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n contract.is_new = !searchResult;\r\n\r\n let findContract = false;\r\n for (let i = 0; i < wallet.contracts.length; i++) {\r\n if (wallet.contracts[i].contract_id === contract.contract_id && wallet.contracts[i].is_a === contract.is_a) {\r\n for (const prop in contract) {\r\n if (contract.hasOwnProperty(prop)) {\r\n wallet.contracts[i][prop] = contract[prop];\r\n }\r\n }\r\n findContract = true;\r\n break;\r\n }\r\n }\r\n if (findContract === false) {\r\n wallet.contracts.push(contract);\r\n }\r\n wallet.recountNewContracts();\r\n }\r\n\r\n });\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('money_transfer_cancel', (data) => {\r\n console.log('----------------- money_transfer_cancel -----------------');\r\n console.log(data);\r\n\r\n if (!data.ti) {\r\n return;\r\n }\r\n\r\n const wallet_id = data.wallet_id;\r\n const tr_info = data.ti;\r\n const wallet = this.variablesService.getWallet(wallet_id);\r\n\r\n if (wallet) {\r\n if (tr_info.hasOwnProperty('contract')) {\r\n for (let i = 0; i < wallet.contracts.length; i++) {\r\n if (wallet.contracts[i].contract_id === tr_info.contract[0].contract_id && wallet.contracts[i].is_a === tr_info.contract[0].is_a) {\r\n if (wallet.contracts[i].state === 1 || wallet.contracts[i].state === 110) {\r\n wallet.contracts[i].is_new = true;\r\n wallet.contracts[i].state = 140;\r\n wallet.recountNewContracts();\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n wallet.removeFromHistory(tr_info.tx_hash);\r\n\r\n let error_tr = '';\r\n switch (tr_info.tx_type) {\r\n case 0:\r\n error_tr = this.translate.instant('ERRORS.TX_TYPE_NORMAL') + '
' +\r\n tr_info.tx_hash + '
' + wallet.name + '
' + wallet.address + '
' +\r\n this.translate.instant('ERRORS.TX_TYPE_NORMAL_TO') + ' ' + this.intToMoneyPipe.transform(tr_info.amount) + ' ' +\r\n this.translate.instant('ERRORS.TX_TYPE_NORMAL_END');\r\n break;\r\n case 1:\r\n // this.translate.instant('ERRORS.TX_TYPE_PUSH_OFFER');\r\n break;\r\n case 2:\r\n // this.translate.instant('ERRORS.TX_TYPE_UPDATE_OFFER');\r\n break;\r\n case 3:\r\n // this.translate.instant('ERRORS.TX_TYPE_CANCEL_OFFER');\r\n break;\r\n case 4:\r\n error_tr = this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS') + '
' +\r\n tr_info.tx_hash + '
' + wallet.name + '
' + wallet.address + '
' +\r\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END');\r\n break;\r\n case 5:\r\n error_tr = this.translate.instant('ERRORS.TX_TYPE_UPDATE_ALIAS') + '
' +\r\n tr_info.tx_hash + '
' + wallet.name + '
' + wallet.address + '
' +\r\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END');\r\n break;\r\n case 6:\r\n error_tr = this.translate.instant('ERRORS.TX_TYPE_COIN_BASE');\r\n break;\r\n }\r\n if (error_tr) {\r\n this.modalService.prepareModal('error', error_tr);\r\n }\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('on_core_event', (data) => {\r\n console.log('----------------- on_core_event -----------------');\r\n console.log(data);\r\n\r\n data = JSON.parse(data);\r\n\r\n if (data.events != null) {\r\n for (let i = 0, length = data.events.length; i < length; i++) {\r\n\r\n switch (data.events[i].method) {\r\n case 'CORE_EVENT_BLOCK_ADDED':\r\n break;\r\n case 'CORE_EVENT_ADD_ALIAS':\r\n if (this.variablesService.aliasesChecked[data.events[i].details.address] != null) {\r\n this.variablesService.aliasesChecked[data.events[i].details.address]['name'] = '@' + data.events[i].details.alias;\r\n this.variablesService.aliasesChecked[data.events[i].details.address]['address'] = data.events[i].details.address;\r\n this.variablesService.aliasesChecked[data.events[i].details.address]['comment'] = data.events[i].details.comment;\r\n }\r\n if (this.variablesService.enableAliasSearch) {\r\n const newAlias = {\r\n name: '@' + data.events[i].details.alias,\r\n address: data.events[i].details.address,\r\n comment: data.events[i].details.comment\r\n };\r\n this.variablesService.aliases = this.variablesService.aliases.concat(newAlias);\r\n this.variablesService.changeAliases();\r\n }\r\n break;\r\n case 'CORE_EVENT_UPDATE_ALIAS':\r\n for (const address in this.variablesService.aliasesChecked) {\r\n if (this.variablesService.aliasesChecked.hasOwnProperty(address)) {\r\n if (this.variablesService.aliasesChecked[address].name === '@' + data.events[i].details.alias) {\r\n if (this.variablesService.aliasesChecked[address].address !== data.events[i].details.details.address) {\r\n delete this.variablesService.aliasesChecked[address]['name'];\r\n delete this.variablesService.aliasesChecked[address]['address'];\r\n delete this.variablesService.aliasesChecked[address]['comment'];\r\n } else {\r\n this.variablesService.aliasesChecked[address].comment = data.events[i].details.details.comment;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n if (this.variablesService.aliasesChecked[data.events[i].details.details.address] != null) {\r\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['name'] = '@' + data.events[i].details.alias;\r\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['address'] = data.events[i].details.details.address;\r\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['comment'] = data.events[i].details.details.comment;\r\n }\r\n if (this.variablesService.enableAliasSearch) {\r\n const CurrentAlias = this.variablesService.aliases.find((element) => element.name === '@' + data.events[i].details.alias);\r\n if (CurrentAlias) {\r\n CurrentAlias.address = data.events[i].details.details.address;\r\n CurrentAlias.comment = data.events[i].details.details.comment;\r\n }\r\n }\r\n this.variablesService.changeAliases();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.intervalUpdateContractsState = setInterval(() => {\r\n this.variablesService.wallets.forEach((wallet) => {\r\n wallet.contracts.forEach((contract) => {\r\n if (contract.state === 201 && contract.height !== 0 && (this.variablesService.height_app - contract.height) >= 10) {\r\n contract.state = 2;\r\n contract.is_new = true;\r\n console.warn('need check state in contracts');\r\n } else if (contract.state === 601 && contract.height !== 0 && (this.variablesService.height_app - contract.height) >= 10) {\r\n contract.state = 6;\r\n contract.is_new = true;\r\n }\r\n });\r\n });\r\n }, 30000);\r\n\r\n this.expMedTsEvent = this.variablesService.getExpMedTsEvent.subscribe((newTimestamp: number) => {\r\n this.variablesService.wallets.forEach((wallet) => {\r\n wallet.contracts.forEach((contract) => {\r\n if (contract.state === 1 && contract.expiration_time <= newTimestamp) {\r\n contract.state = 110;\r\n contract.is_new = true;\r\n wallet.recountNewContracts();\r\n } else if (contract.state === 5 && contract.cancel_expiration_time <= newTimestamp) {\r\n contract.state = 130;\r\n contract.is_new = true;\r\n wallet.recountNewContracts();\r\n }\r\n });\r\n });\r\n });\r\n\r\n\r\n this.backend.getAppData((status, data) => {\r\n if (data && Object.keys(data).length > 0) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key) && this.variablesService.settings.hasOwnProperty(key)) {\r\n this.variablesService.settings[key] = data[key];\r\n }\r\n }\r\n if (this.variablesService.settings.hasOwnProperty('theme') && ['dark', 'white', 'gray'].indexOf(this.variablesService.settings.theme) !== -1) {\r\n this.renderer.addClass(document.body, 'theme-' + this.variablesService.settings.theme);\r\n } else {\r\n this.renderer.addClass(document.body, 'theme-' + this.variablesService.defaultTheme);\r\n }\r\n if (this.variablesService.settings.hasOwnProperty('scale') && [7.5, 10, 12.5, 15].indexOf(this.variablesService.settings.scale) !== -1) {\r\n const width = this.utilsService.getMinWidthByScale(this.variablesService.settings.scale);\r\n const app = document.documentElement.querySelector('app-root');\r\n this.renderer.setStyle(app, 'min-width', width + 'px');\r\n this.renderer.setStyle(document.documentElement, 'font-size', this.variablesService.settings.scale + 'px');\r\n }\r\n } else {\r\n this.variablesService.settings.theme = this.variablesService.defaultTheme;\r\n this.renderer.addClass(document.body, 'theme-' + this.variablesService.settings.theme);\r\n }\r\n this.translate.use(this.variablesService.settings.language);\r\n this.setBackendLocalization();\r\n\r\n this.backend.setLogLevel(this.variablesService.settings.appLog);\r\n\r\n if (this.router.url !== '/login') {\r\n this.backend.haveSecureAppData((statusPass) => {\r\n if (statusPass) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/login'], {queryParams: {type: 'auth'}});\r\n });\r\n } else {\r\n if (Object.keys(data).length !== 0) {\r\n this.needOpenWallets = JSON.parse(JSON.stringify(this.variablesService.settings.wallets));\r\n this.ngZone.run(() => {\r\n this.variablesService.appLogin = true;\r\n this.router.navigate(['/']);\r\n });\r\n } else {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/login'], {queryParams: {type: 'reg'}});\r\n });\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }, error => {\r\n console.log(error);\r\n });\r\n this.getMoneyEquivalent();\r\n\r\n this.intervalUpdatePriceState = setInterval(() => {\r\n this.getMoneyEquivalent();\r\n }, 30000);\r\n }\r\n\r\n getMoneyEquivalent() {\r\n this.http.get('https://api.coingecko.com/api/v3/ping').subscribe(\r\n () => {\r\n this.http.get('https://api.coingecko.com/api/v3/simple/price?ids=zano&vs_currencies=usd').subscribe(\r\n data => {\r\n this.variablesService.moneyEquivalent = data['zano']['usd'];\r\n },\r\n error => {\r\n console.warn('api.coingecko.com price error: ', error);\r\n }\r\n );\r\n },\r\n error => {\r\n console.warn('api.coingecko.com error: ', error);\r\n setTimeout(() => {\r\n this.getMoneyEquivalent();\r\n }, 30000);\r\n }\r\n )\r\n }\r\n\r\n getAliases() {\r\n this.backend.getAllAliases((status, data, error) => {\r\n\r\n console.warn(error);\r\n\r\n if (error === 'CORE_BUSY') {\r\n window.setTimeout(() => {\r\n this.getAliases();\r\n }, 10000);\r\n } else if (error === 'OVERFLOW') {\r\n this.variablesService.aliases = [];\r\n this.variablesService.enableAliasSearch = false;\r\n this.variablesService.wallets.forEach(wallet => {\r\n wallet.alias = this.backend.getWalletAlias(wallet.address);\r\n });\r\n } else {\r\n this.variablesService.enableAliasSearch = true;\r\n if (data.aliases && data.aliases.length) {\r\n this.variablesService.aliases = [];\r\n data.aliases.forEach(alias => {\r\n const newAlias = {\r\n name: '@' + alias.alias,\r\n address: alias.address,\r\n comment: alias.comment\r\n };\r\n this.variablesService.aliases.push(newAlias);\r\n });\r\n this.variablesService.wallets.forEach(wallet => {\r\n wallet.alias = this.backend.getWalletAlias(wallet.address);\r\n });\r\n this.variablesService.aliases = this.variablesService.aliases.sort((a, b) => {\r\n if (a.name.length > b.name.length) {\r\n return 1;\r\n }\r\n if (a.name.length < b.name.length) {\r\n return -1;\r\n }\r\n if (a.name > b.name) {\r\n return 1;\r\n }\r\n if (a.name < b.name) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n this.variablesService.changeAliases();\r\n }\r\n }\r\n });\r\n }\r\n\r\n contextMenuCopy(target) {\r\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\r\n const start = (target['contextSelectionStart']) ? 'contextSelectionStart' : 'selectionStart';\r\n const end = (target['contextSelectionEnd']) ? 'contextSelectionEnd' : 'selectionEnd';\r\n const canUseSelection = ((target[start]) || (target[start] === '0'));\r\n const SelectedText = (canUseSelection) ? target['value'].substring(target[start], target[end]) : target['value'];\r\n this.backend.setClipboard(String(SelectedText));\r\n }\r\n }\r\n\r\n contextMenuOnlyCopy(text) {\r\n if (text) {\r\n this.backend.setClipboard(String(text));\r\n }\r\n }\r\n\r\n contextMenuPaste(target) {\r\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\r\n this.backend.getClipboard((status, clipboard) => {\r\n clipboard = String(clipboard);\r\n if (typeof clipboard !== 'string' || clipboard.length) {\r\n const start = (target['contextSelectionStart']) ? 'contextSelectionStart' : 'selectionStart';\r\n const end = (target['contextSelectionEnd']) ? 'contextSelectionEnd' : 'selectionEnd';\r\n const _pre = target['value'].substring(0, target[start]);\r\n const _aft = target['value'].substring(target[end], target['value'].length);\r\n let text = _pre + clipboard + _aft;\r\n const cursorPosition = (_pre + clipboard).length;\r\n if (target['maxLength'] && parseInt(target['maxLength'], 10) > 0) {\r\n text = text.substr(0, parseInt(target['maxLength'], 10));\r\n }\r\n target['value'] = text;\r\n target.setSelectionRange(cursorPosition, cursorPosition);\r\n target.dispatchEvent(new Event('input'));\r\n target['focus']();\r\n }\r\n });\r\n }\r\n }\r\n\r\n contextMenuSelect(target) {\r\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\r\n target['focus']();\r\n setTimeout(() => {\r\n target['select']();\r\n });\r\n }\r\n }\r\n\r\n addToStore(wallet, boolean) {\r\n const value = this.store.value.sync;\r\n if (value && value.length) {\r\n const sync = value.filter(item => item.wallet_id === wallet.wallet_id);\r\n if (sync && sync.length) {\r\n const result = value.map(item => {\r\n if (item.wallet_id === wallet.wallet_id) {\r\n return {sync: boolean, wallet_id: wallet.wallet_id};\r\n } else {\r\n return item;\r\n }\r\n });\r\n this.store.set('sync', result);\r\n } else {\r\n value.push({sync: boolean, wallet_id: wallet.wallet_id});\r\n this.store.set('sync', value);\r\n }\r\n } else {\r\n this.store.set('sync', [{sync: boolean, wallet_id: wallet.wallet_id}]);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.intervalUpdateContractsState) {\r\n clearInterval(this.intervalUpdateContractsState);\r\n }\r\n if (this.intervalUpdatePriceState) {\r\n clearInterval(this.intervalUpdatePriceState);\r\n }\r\n this.expMedTsEvent.unsubscribe();\r\n }\r\n\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { SettingsComponent } from './settings/settings.component';\r\nimport { SidebarComponent } from './sidebar/sidebar.component';\r\nimport { MainComponent } from './main/main.component';\r\nimport { CreateWalletComponent } from './create-wallet/create-wallet.component';\r\nimport { OpenWalletComponent } from './open-wallet/open-wallet.component';\r\nimport { OpenWalletModalComponent } from './open-wallet-modal/open-wallet-modal.component';\r\nimport { RestoreWalletComponent } from './restore-wallet/restore-wallet.component';\r\nimport { SeedPhraseComponent } from './seed-phrase/seed-phrase.component';\r\nimport { WalletDetailsComponent } from './wallet-details/wallet-details.component';\r\nimport { AssignAliasComponent } from './assign-alias/assign-alias.component';\r\nimport { EditAliasComponent } from './edit-alias/edit-alias.component';\r\nimport { TransferAliasComponent } from './transfer-alias/transfer-alias.component';\r\nimport { WalletComponent } from './wallet/wallet.component';\r\nimport { SendComponent } from './send/send.component';\r\nimport { ReceiveComponent } from './receive/receive.component';\r\nimport { HistoryComponent } from './history/history.component';\r\nimport { ContractsComponent } from './contracts/contracts.component';\r\nimport { PurchaseComponent } from './purchase/purchase.component';\r\nimport { MessagesComponent } from './messages/messages.component';\r\nimport { TypingMessageComponent } from './typing-message/typing-message.component';\r\nimport { StakingComponent } from './staking/staking.component';\r\n\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\n// SERVICES\r\nimport { BackendService } from './_helpers/services/backend.service';\r\nimport { ModalService } from './_helpers/services/modal.service';\r\nimport { PaginationStore } from './_helpers/services/pagination.store';\r\n// SERVICES\r\n\r\n// Feature module\r\nimport { Store } from 'store';\r\n// Feature module\r\n\r\nimport { MoneyToIntPipe } from './_helpers/pipes/money-to-int.pipe';\r\nimport { IntToMoneyPipe } from './_helpers/pipes/int-to-money.pipe';\r\nimport { HistoryTypeMessagesPipe } from './_helpers/pipes/history-type-messages.pipe';\r\nimport { ContractStatusMessagesPipe } from './_helpers/pipes/contract-status-messages.pipe';\r\nimport { ContractTimeLeftPipe } from './_helpers/pipes/contract-time-left.pipe';\r\nimport { SafeHTMLPipe } from './_helpers/pipes/safe-html.pipe';\r\nimport { TooltipDirective } from './_helpers/directives/tooltip.directive';\r\nimport { InputValidateDirective } from './_helpers/directives/input-validate/input-validate.directive';\r\nimport { StakingSwitchComponent } from './_helpers/directives/staking-switch/staking-switch.component';\r\nimport { ModalContainerComponent } from './_helpers/directives/modal-container/modal-container.component';\r\nimport { TransactionDetailsComponent } from './_helpers/directives/transaction-details/transaction-details.component';\r\nimport { ContextMenuModule } from 'ngx-contextmenu';\r\nimport { ChartModule, HIGHCHARTS_MODULES } from 'angular-highcharts';\r\nimport * as highcharts from 'highcharts';\r\nimport exporting from 'highcharts/modules/exporting.src';\r\nimport { ProgressContainerComponent } from './_helpers/directives/progress-container/progress-container.component';\r\nimport { InputDisableSelectionDirective } from './_helpers/directives/input-disable-selection/input-disable-selection.directive';\r\nimport { SendModalComponent } from './send-modal/send-modal.component';\r\nimport { ContactsComponent } from './contacts/contacts.component';\r\nimport { AddContactsComponent } from './add-contacts/add-contacts.component';\r\nimport { ContactSendComponent } from './contact-send/contact-send.component';\r\nimport { ExportImportComponent } from './export-import/export-import.component';\r\nimport { ConfirmModalComponent } from './_helpers/directives/confirm-modal/confirm-modal.component';\r\n\r\nexport function HttpLoaderFactory(httpClient: HttpClient) {\r\n return new TranslateHttpLoader(httpClient, './assets/i18n/', '.json');\r\n}\r\n\r\nimport { PapaParseModule } from 'ngx-papaparse';\r\n\r\n// import * as more from 'highcharts/highcharts-more.src';\r\n// import * as exporting from 'highcharts/modules/exporting.src';\r\n// import * as highstock from 'highcharts/modules/stock.src';\r\n\r\nexport function highchartsFactory() {\r\n // Default options.\r\n highcharts.setOptions({\r\n time: {\r\n useUTC: false\r\n }\r\n });\r\n\r\n return [exporting];\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n LoginComponent,\r\n SettingsComponent,\r\n SidebarComponent,\r\n MainComponent,\r\n CreateWalletComponent,\r\n OpenWalletComponent,\r\n OpenWalletModalComponent,\r\n RestoreWalletComponent,\r\n SeedPhraseComponent,\r\n WalletDetailsComponent,\r\n AssignAliasComponent,\r\n EditAliasComponent,\r\n TransferAliasComponent,\r\n WalletComponent,\r\n SendComponent,\r\n ReceiveComponent,\r\n HistoryComponent,\r\n ContractsComponent,\r\n PurchaseComponent,\r\n MessagesComponent,\r\n StakingComponent,\r\n TypingMessageComponent,\r\n MoneyToIntPipe,\r\n IntToMoneyPipe,\r\n StakingSwitchComponent,\r\n HistoryTypeMessagesPipe,\r\n ContractStatusMessagesPipe,\r\n ContractTimeLeftPipe,\r\n TooltipDirective,\r\n InputValidateDirective,\r\n ModalContainerComponent,\r\n TransactionDetailsComponent,\r\n ProgressContainerComponent,\r\n InputDisableSelectionDirective,\r\n SendModalComponent,\r\n ContactsComponent,\r\n AddContactsComponent,\r\n ContactSendComponent,\r\n ExportImportComponent,\r\n SafeHTMLPipe,\r\n ConfirmModalComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgSelectModule,\r\n ChartModule,\r\n PapaParseModule,\r\n ContextMenuModule.forRoot()\r\n ],\r\n providers: [\r\n Store,\r\n BackendService,\r\n ModalService,\r\n PaginationStore,\r\n MoneyToIntPipe,\r\n IntToMoneyPipe,\r\n { provide: HIGHCHARTS_MODULES, useFactory: highchartsFactory }\r\n // {provide: HIGHCHARTS_MODULES, useFactory: () => [ highstock, more, exporting ] }\r\n ],\r\n entryComponents: [\r\n ModalContainerComponent,\r\n SendModalComponent,\r\n ConfirmModalComponent\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ wallet.name }}\\r\\n {{ 'BREADCRUMBS.ASSIGN_ALIAS' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
\\r\\n
6 && assignForm.get('name').value.length <= 25\\\">\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_WRONG' | translate }}\\r\\n
\\r\\n
25\\\">\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_EXISTS' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
= variablesService.maxCommentLength\\\">\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
{{ \\\"ASSIGN_ALIAS.COST\\\" | translate : {value: alias.price | intToMoney, currency: variablesService.defaultCurrency} }}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\"","module.exports = \".form-assign {\\n margin: 2.4rem 0; }\\n .form-assign .alias-name {\\n width: 50%; }\\n .form-assign .alias-cost {\\n font-size: 1.3rem;\\n margin-top: 2rem; }\\n .form-assign .wrap-buttons {\\n display: flex;\\n justify-content: space-between;\\n margin: 2.5rem -0.7rem; }\\n .form-assign .wrap-buttons button {\\n margin: 0 0.7rem;\\n width: 15rem; }\\n .assign-alias-tooltip {\\n font-size: 1.3rem;\\n line-height: 2rem;\\n padding: 1rem 1.5rem;\\n max-width: 46rem; }\\n .has-no-edit-symbol {\\n position: relative;\\n width: 100%; }\\n .has-no-edit-symbol input {\\n padding-left: 2.35rem; }\\n .has-no-edit-symbol:after {\\n content: '@';\\n position: absolute;\\n display: inline-block;\\n top: 50%;\\n left: 1rem;\\n transform: translateY(-50%); }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXNzaWduLWFsaWFzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGFzc2lnbi1hbGlhc1xcYXNzaWduLWFsaWFzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFBQTtFQVRwQjtJQWFJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsc0JBQXNCLEVBQUE7RUFmMUI7TUFrQk0sZ0JBQWdCO01BQ2hCLFlBQVksRUFBQTtFQUtsQjtFQUNFLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsb0JBQW9CO0VBQ3BCLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVcsRUFBQTtFQUZiO0lBSUkscUJBQXFCLEVBQUE7RUFKekI7SUFPSSxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixRQUFRO0lBQ1IsVUFBVTtJQUNWLDJCQUEyQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvYXNzaWduLWFsaWFzL2Fzc2lnbi1hbGlhcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLWFzc2lnbiB7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuXHJcbiAgLmFsaWFzLW5hbWUge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICB9XHJcblxyXG4gIC5hbGlhcy1jb3N0IHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbWFyZ2luLXRvcDogMnJlbTtcclxuICB9XHJcblxyXG4gIC53cmFwLWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIG1hcmdpbjogMi41cmVtIC0wLjdyZW07XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgbWFyZ2luOiAwIDAuN3JlbTtcclxuICAgICAgd2lkdGg6IDE1cmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmFzc2lnbi1hbGlhcy10b29sdGlwIHtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuICBsaW5lLWhlaWdodDogMnJlbTtcclxuICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcclxuICBtYXgtd2lkdGg6IDQ2cmVtO1xyXG59XHJcblxyXG4uaGFzLW5vLWVkaXQtc3ltYm9sIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaW5wdXQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyLjM1cmVtO1xyXG4gIH1cclxuICAmOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICdAJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogMXJlbTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, NgZone, OnInit, OnDestroy} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {Location} from '@angular/common';\r\nimport {Router} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {MoneyToIntPipe} from '../_helpers/pipes/money-to-int.pipe';\r\nimport {IntToMoneyPipe} from '../_helpers/pipes/int-to-money.pipe';\r\nimport BigNumber from 'bignumber.js';\r\nimport {Subscription} from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-assign-alias',\r\n templateUrl: './assign-alias.component.html',\r\n styleUrls: ['./assign-alias.component.scss']\r\n})\r\nexport class AssignAliasComponent implements OnInit, OnDestroy {\r\n\r\n wallet: Wallet;\r\n assignForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.pattern(/^@?[a-z0-9\\.\\-]{6,25}$/)]),\r\n comment: new FormControl('', [(g: FormControl) => {\r\n if (g.value > this.variablesService.maxCommentLength) {\r\n return {'maxLength': true};\r\n } else {\r\n return null;\r\n }\r\n }])\r\n });\r\n assignFormSubscription: Subscription;\r\n alias = {\r\n name: '',\r\n fee: this.variablesService.default_fee,\r\n price: new BigNumber(0),\r\n reward: '0',\r\n rewardOriginal: '0',\r\n comment: '',\r\n exists: false\r\n };\r\n canRegister = false;\r\n notEnoughMoney = false;\r\n\r\n constructor(\r\n private ngZone: NgZone,\r\n private location: Location,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private moneyToInt: MoneyToIntPipe,\r\n private intToMoney: IntToMoneyPipe\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.wallet = this.variablesService.currentWallet;\r\n this.assignFormSubscription = this.assignForm.get('name').valueChanges.subscribe(value => {\r\n this.canRegister = false;\r\n this.alias.exists = false;\r\n const newName = value.toLowerCase().replace('@', '');\r\n if (!(this.assignForm.controls['name'].errors && this.assignForm.controls['name'].errors.hasOwnProperty('pattern')) && newName.length >= 6 && newName.length <= 25) {\r\n this.backend.getAliasByName(newName, status => {\r\n this.ngZone.run(() => {\r\n this.alias.exists = status;\r\n });\r\n if (!status) {\r\n this.alias.price = new BigNumber(0);\r\n this.backend.getAliasCoast(newName, (statusPrice, dataPrice) => {\r\n this.ngZone.run(() => {\r\n if (statusPrice) {\r\n this.alias.price = BigNumber.sum(dataPrice['coast'], this.variablesService.default_fee_big);\r\n }\r\n this.notEnoughMoney = this.alias.price.isGreaterThan(this.wallet.unlocked_balance);\r\n this.alias.reward = this.intToMoney.transform(this.alias.price, false);\r\n this.alias.rewardOriginal = this.intToMoney.transform(dataPrice['coast'], false);\r\n this.canRegister = !this.notEnoughMoney;\r\n });\r\n });\r\n } else {\r\n this.notEnoughMoney = false;\r\n this.alias.reward = '0';\r\n this.alias.rewardOriginal = '0';\r\n }\r\n });\r\n } else {\r\n this.notEnoughMoney = false;\r\n this.alias.reward = '0';\r\n this.alias.rewardOriginal = '0';\r\n }\r\n this.alias.name = newName;\r\n });\r\n }\r\n\r\n assignAlias() {\r\n const alias = this.backend.getWalletAlias(this.wallet.address);\r\n if (alias.hasOwnProperty('name')) {\r\n this.modalService.prepareModal('info', 'ASSIGN_ALIAS.ONE_ALIAS');\r\n } else {\r\n this.alias.comment = this.assignForm.get('comment').value;\r\n this.backend.registerAlias(this.wallet.wallet_id, this.alias.name, this.wallet.address, this.alias.fee, this.alias.comment, this.alias.rewardOriginal, (status, data) => {\r\n if (status) {\r\n this.wallet.wakeAlias = true;\r\n this.modalService.prepareModal('info', 'ASSIGN_ALIAS.REQUEST_ADD_REG');\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet.wallet_id]);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.assignFormSubscription.unsubscribe();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n {{\\r\\n 'CONTACTS.TITLE' | translate\\r\\n }}\\r\\n {{ 'CONTACTS.SEND' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","module.exports = \".wallets-selection {\\n display: flex;\\n align-items: center;\\n margin-top: 2rem; }\\n .wallets-selection .input-block {\\n width: 18rem; }\\n .wallets-selection button {\\n padding: 2rem;\\n background: transparent;\\n border: none;\\n outline: none; }\\n .input-block {\\n width: 44rem; }\\n .input-block input {\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n .blue-button {\\n margin-top: 2.5rem;\\n width: 100%;\\n max-width: 18rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udGFjdC1zZW5kL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGNvbnRhY3Qtc2VuZFxcY29udGFjdC1zZW5kLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTtFQUhsQjtJQU1JLFlBQVksRUFBQTtFQU5oQjtJQVVJLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLGFBQWEsRUFBQTtFQUlqQjtFQUNFLFlBQVksRUFBQTtFQURkO0lBSUksZ0JBQWdCO0lBQ2hCLHVCQUF1QixFQUFBO0VBSTNCO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbnRhY3Qtc2VuZC9jb250YWN0LXNlbmQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIud2FsbGV0cy1zZWxlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtYXJnaW4tdG9wOiAycmVtO1xyXG4gIFxyXG4gIC5pbnB1dC1ibG9jayB7XHJcbiAgICB3aWR0aDogMThyZW07XHJcbiAgfVxyXG5cclxuICBidXR0b24ge1xyXG4gICAgcGFkZGluZzogMnJlbTtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi5pbnB1dC1ibG9jayB7XHJcbiAgd2lkdGg6IDQ0cmVtO1xyXG5cclxuICBpbnB1dCB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgfVxyXG59XHJcblxyXG4uYmx1ZS1idXR0b24ge1xyXG4gIG1hcmdpbi10b3A6IDIuNXJlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDE4cmVtO1xyXG59XHJcblxyXG5cclxuIl19 */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n\r\n@Component({\r\n selector: 'app-contact-send',\r\n templateUrl: './contact-send.component.html',\r\n styleUrls: ['./contact-send.component.scss']\r\n})\r\nexport class ContactSendComponent implements OnInit, OnDestroy {\r\n\r\n queryRouting;\r\n address;\r\n\r\n constructor(\r\n private location: Location,\r\n public variablesService: VariablesService,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.address) {\r\n this.address = params.address;\r\n }\r\n });\r\n }\r\n\r\n goToWallet(id) {\r\n this.variablesService.setCurrentWallet(id);\r\n this.variablesService.currentWallet.send_data['address'] = this.address;\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.queryRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n

{{ 'CONTACTS.TITLE' | translate }}

\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'CONTACTS.TABLE.NAME' | translate }}\\r\\n {{ 'CONTACTS.TABLE.ALIAS' | translate }}\\r\\n {{ 'CONTACTS.TABLE.ADDRESS' | translate }}\\r\\n {{ 'CONTACTS.TABLE.NOTES' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ contact.name }}\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.alias }}\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.address }}\\r\\n \\r\\n \\r\\n {{ contact.notes }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ 'CONTACTS.BUTTON.SEND' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n {{ 'CONTACTS.BUTTON.EDIT' | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{ 'CONTACTS.TABLE.EMPTY' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n min-width: 95rem;\\n width: 100%;\\n height: 100%; }\\n\\n.head {\\n justify-content: flex-end; }\\n\\n.contacts-title {\\n font-size: 1.7rem; }\\n\\n.wrap-table {\\n margin: 1rem -3rem; }\\n\\n.wrap-table table tbody tr td {\\n padding: 0 3rem 0 1rem;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n\\n.wrap-table table tbody tr td:first-child {\\n max-width: 10rem;\\n padding: 0 3rem 0 3rem; }\\n\\n.wrap-table table tbody tr td:nth-child(2) {\\n max-width: 10rem; }\\n\\n.wrap-table table tbody tr td .alias {\\n cursor: pointer; }\\n\\n.wrap-table table tbody tr td .button-wrapper {\\n display: flex; }\\n\\n.wrap-table table tbody tr td .button-wrapper button {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n font-size: 1.3rem;\\n font-weight: 400;\\n line-height: 3rem;\\n outline: none;\\n padding: 0;\\n height: auto;\\n margin-right: 1.8rem; }\\n\\n.wrap-table table tbody tr td .button-wrapper button .icon {\\n cursor: pointer;\\n margin-right: 0.8rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.wrap-table table tbody tr td .button-wrapper button .icon.edit {\\n -webkit-mask: url('edit.svg') no-repeat center;\\n mask: url('edit.svg') no-repeat center; }\\n\\n.wrap-table table tbody tr td .button-wrapper button .icon.transfer {\\n -webkit-mask: url('send.svg') no-repeat center;\\n mask: url('send.svg') no-repeat center; }\\n\\n.wrap-table table tbody tr td .button-wrapper button .icon.delete {\\n -webkit-mask: url('delete.svg') no-repeat center;\\n mask: url('delete.svg') no-repeat center; }\\n\\n.wrap-table .empty-list {\\n margin: 2.5rem 3rem; }\\n\\n.blue-button {\\n width: 100%;\\n max-width: 18rem;\\n margin-top: 3rem; }\\n\\n.footer {\\n position: absolute;\\n bottom: 3rem;\\n font-size: 1.3rem; }\\n\\n.footer .import-btn {\\n display: flex;\\n align-items: center;\\n background-color: transparent;\\n font-size: inherit;\\n font-weight: 400;\\n line-height: 1.3rem;\\n padding: 0;\\n height: auto; }\\n\\n.footer .import-btn .icon {\\n margin-right: 0.7rem;\\n -webkit-mask: url('import-export.svg') no-repeat center;\\n mask: url('import-export.svg') no-repeat center;\\n width: 0.9rem;\\n height: 0.9rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udGFjdHMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcY29udGFjdHNcXGNvbnRhY3RzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxZQUFZLEVBQUE7O0FBR2Q7RUFDRSx5QkFBeUIsRUFBQTs7QUFHM0I7RUFDRSxpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSxrQkFBa0IsRUFBQTs7QUFEcEI7SUFVVSxzQkFBc0I7SUFDdEIsZ0JBQWdCO0lBQ2hCLHVCQUF1QixFQUFBOztBQVpqQztNQWVZLGdCQUFnQjtNQUNoQixzQkFBc0IsRUFBQTs7QUFoQmxDO01Bb0JZLGdCQUFnQixFQUFBOztBQXBCNUI7TUF3QlksZUFBZSxFQUFBOztBQXhCM0I7TUE0QlksYUFBYSxFQUFBOztBQTVCekI7UUErQmMsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIsWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixVQUFVO1FBQ1YsWUFBWTtRQUNaLG9CQUFvQixFQUFBOztBQXpDbEM7VUE0Q2dCLGVBQWU7VUFDZixvQkFBb0I7VUFDcEIsYUFBYTtVQUNiLGNBQWMsRUFBQTs7QUEvQzlCO1lBa0RrQiw4Q0FBdUQ7b0JBQXZELHNDQUF1RCxFQUFBOztBQWxEekU7WUFzRGtCLDhDQUF1RDtvQkFBdkQsc0NBQXVELEVBQUE7O0FBdER6RTtZQTBEa0IsZ0RBQXlEO29CQUF6RCx3Q0FBeUQsRUFBQTs7QUExRDNFO0lBcUVJLG1CQUFtQixFQUFBOztBQUl2QjtFQUNFLFdBQVc7RUFDWCxnQkFBZ0I7RUFDaEIsZ0JBQWdCLEVBQUE7O0FBSWxCO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixpQkFBaUIsRUFBQTs7QUFIbkI7SUFNSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDZCQUE2QjtJQUM3QixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsWUFBWSxFQUFBOztBQWJoQjtNQWdCTSxvQkFBb0I7TUFDcEIsdURBQWdFO2NBQWhFLCtDQUFnRTtNQUNoRSxhQUFhO01BQ2IsY0FBYyxFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29udGFjdHMvY29udGFjdHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgbWluLXdpZHRoOiA5NXJlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5oZWFkIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4uY29udGFjdHMtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS43cmVtO1xyXG59XHJcblxyXG4ud3JhcC10YWJsZSB7XHJcbiAgbWFyZ2luOiAxcmVtIC0zcmVtO1xyXG5cclxuICB0YWJsZSB7XHJcblxyXG4gICAgdGJvZHl7XHJcblxyXG4gICAgICB0ciB7XHJcblxyXG4gICAgICAgIHRkIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDAgM3JlbSAwIDFyZW07XHJcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcblxyXG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTByZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgM3JlbSAwIDNyZW07XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjpudGgtY2hpbGQoMikge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwcmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5hbGlhcyB7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuYnV0dG9uLXdyYXBwZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAgXHJcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogM3JlbTtcclxuICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS44cmVtO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjhyZW07XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMS43cmVtO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLjdyZW07XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgJi5lZGl0IHtcclxuICAgICAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9lZGl0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAmLnRyYW5zZmVyIHtcclxuICAgICAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9zZW5kLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICYuZGVsZXRlIHtcclxuICAgICAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9kZWxldGUuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAuZW1wdHktbGlzdCB7XHJcbiAgICBtYXJnaW46IDIuNXJlbSAzcmVtO1xyXG4gIH0gIFxyXG59XHJcblxyXG4uYmx1ZS1idXR0b24ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogMThyZW07XHJcbiAgbWFyZ2luLXRvcDogM3JlbTtcclxufVxyXG5cclxuXHJcbi5mb290ZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDNyZW07XHJcbiAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgXHJcbiAgLmltcG9ydC1idG4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zcmVtO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMC43cmVtO1xyXG4gICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2ltcG9ydC1leHBvcnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB3aWR0aDogMC45cmVtO1xyXG4gICAgICBoZWlnaHQ6IDAuOXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\n\r\n@Component({\r\n selector: 'app-contacts',\r\n templateUrl: './contacts.component.html',\r\n styleUrls: ['./contacts.component.scss']\r\n})\r\nexport class ContactsComponent implements OnInit {\r\n calculatedWidth = [];\r\n @ViewChild('head') head: ElementRef;\r\n\r\n constructor(\r\n private location: Location,\r\n public variablesService: VariablesService,\r\n private backend: BackendService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.backend.getContactAlias();\r\n }\r\n\r\n delete(index: number) {\r\n if (this.variablesService.appPass) {\r\n this.variablesService.contacts.splice(index, 1);\r\n this.backend.storeSecureAppData();\r\n }\r\n }\r\n\r\n calculateWidth() {\r\n this.calculatedWidth = [];\r\n this.calculatedWidth.push(\r\n this.head.nativeElement.childNodes[0].clientWidth\r\n );\r\n this.calculatedWidth.push(\r\n this.head.nativeElement.childNodes[1].clientWidth +\r\n this.head.nativeElement.childNodes[2].clientWidth\r\n );\r\n this.calculatedWidth.push(\r\n this.head.nativeElement.childNodes[3].clientWidth\r\n );\r\n this.calculatedWidth.push(\r\n this.head.nativeElement.childNodes[4].clientWidth\r\n );\r\n }\r\n\r\n // openInBrowser(alias: string) {\r\n // if (alias !== null) {\r\n // this.backend.openUrlInBrowser(\r\n // `explorer.zano.org/aliases/${alias.slice(1)}#modalOpen`\r\n // );\r\n // }\r\n // }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n {{ 'CONTRACTS.EMPTY' | translate }}\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ 'CONTRACTS.CONTRACTS' | translate }}{{ 'CONTRACTS.DATE' | translate }}{{ 'CONTRACTS.AMOUNT' | translate }}{{ 'CONTRACTS.STATUS' | translate }}{{ 'CONTRACTS.COMMENTS' | translate }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{item.private_detailes.t}}\\r\\n
\\r\\n
\\r\\n
{{item.timestamp * 1000 | date : 'dd-MM-yyyy HH:mm'}}
\\r\\n
\\r\\n
{{item.private_detailes.to_pay | intToMoney}} {{variablesService.defaultCurrency}}
\\r\\n
\\r\\n
\\r\\n {{item.state | contractStatusMessages : item.is_a}}\\r\\n
\\r\\n
\\r\\n
\\r\\n {{item.private_detailes.c}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.empty-contracts {\\n font-size: 1.5rem; }\\n\\n.wrap-table {\\n margin: -3rem -3rem 0 -3rem;\\n overflow-x: auto; }\\n\\n.wrap-table table tbody tr {\\n cursor: pointer;\\n outline: none !important; }\\n\\n.wrap-table table tbody tr .contract {\\n position: relative;\\n display: flex;\\n align-items: center; }\\n\\n.wrap-table table tbody tr .contract .icon {\\n flex-shrink: 0; }\\n\\n.wrap-table table tbody tr .contract .icon.new, .wrap-table table tbody tr .contract .icon.alert {\\n position: absolute;\\n top: 0; }\\n\\n.wrap-table table tbody tr .contract .icon.new {\\n left: -2.3rem;\\n -webkit-mask: url('new.svg') no-repeat center;\\n mask: url('new.svg') no-repeat center;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.wrap-table table tbody tr .contract .icon.alert {\\n top: 0.2rem;\\n left: -2.1rem;\\n -webkit-mask: url('alert.svg') no-repeat center;\\n mask: url('alert.svg') no-repeat center;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n.wrap-table table tbody tr .contract .icon.purchase, .wrap-table table tbody tr .contract .icon.sell {\\n margin-right: 1rem;\\n width: 1.5rem;\\n height: 1.5rem; }\\n\\n.wrap-table table tbody tr .contract .icon.purchase {\\n -webkit-mask: url('purchase.svg') no-repeat center;\\n mask: url('purchase.svg') no-repeat center; }\\n\\n.wrap-table table tbody tr .contract .icon.sell {\\n -webkit-mask: url('sell.svg') no-repeat center;\\n mask: url('sell.svg') no-repeat center; }\\n\\n.wrap-table table tbody tr .contract span {\\n text-overflow: ellipsis;\\n overflow: hidden; }\\n\\n.wrap-table table tbody tr .status, .wrap-table table tbody tr .comment {\\n display: inline-block;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n max-width: 100%; }\\n\\n.contracts-buttons {\\n display: flex;\\n margin: 3rem 0;\\n width: 50%; }\\n\\n.contracts-buttons button {\\n flex: 0 1 50%;\\n margin-right: 1.5rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJhY3RzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGNvbnRyYWN0c1xcY29udHJhY3RzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsMkJBQTJCO0VBQzNCLGdCQUFnQixFQUFBOztBQUZsQjtJQVNRLGVBQWU7SUFDZix3QkFBd0IsRUFBQTs7QUFWaEM7TUFhVSxrQkFBa0I7TUFDbEIsYUFBYTtNQUNiLG1CQUFtQixFQUFBOztBQWY3QjtRQWtCWSxjQUFjLEVBQUE7O0FBbEIxQjtVQXFCYyxrQkFBa0I7VUFDbEIsTUFBTSxFQUFBOztBQXRCcEI7VUEwQmMsYUFBYTtVQUNiLDZDQUFzRDtrQkFBdEQscUNBQXNEO1VBQ3RELGFBQWE7VUFDYixjQUFjLEVBQUE7O0FBN0I1QjtVQWlDYyxXQUFXO1VBQ1gsYUFBYTtVQUNiLCtDQUF3RDtrQkFBeEQsdUNBQXdEO1VBQ3hELGFBQWE7VUFDYixjQUFjLEVBQUE7O0FBckM1QjtVQXlDYyxrQkFBa0I7VUFDbEIsYUFBYTtVQUNiLGNBQWMsRUFBQTs7QUEzQzVCO1VBK0NjLGtEQUEyRDtrQkFBM0QsMENBQTJELEVBQUE7O0FBL0N6RTtVQW1EYyw4Q0FBdUQ7a0JBQXZELHNDQUF1RCxFQUFBOztBQW5EckU7UUF3RFksdUJBQXVCO1FBQ3ZCLGdCQUFnQixFQUFBOztBQXpENUI7TUE4RFUscUJBQXFCO01BQ3JCLHVCQUF1QjtNQUN2QixnQkFBZ0I7TUFDaEIsZUFBZSxFQUFBOztBQU96QjtFQUNFLGFBQWE7RUFDYixjQUFjO0VBQ2QsVUFBVSxFQUFBOztBQUhaO0lBTUksYUFBYTtJQUNiLG9CQUFvQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29udHJhY3RzL2NvbnRyYWN0cy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmVtcHR5LWNvbnRyYWN0cyB7XHJcbiAgZm9udC1zaXplOiAxLjVyZW07XHJcbn1cclxuXHJcbi53cmFwLXRhYmxlIHtcclxuICBtYXJnaW46IC0zcmVtIC0zcmVtIDAgLTNyZW07XHJcbiAgb3ZlcmZsb3cteDogYXV0bztcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICAuY29udHJhY3Qge1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcclxuXHJcbiAgICAgICAgICAgICYubmV3LCAmLmFsZXJ0IHtcclxuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLm5ldyB7XHJcbiAgICAgICAgICAgICAgbGVmdDogLTIuM3JlbTtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL25ldy5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEuN3JlbTtcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDEuN3JlbTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5hbGVydCB7XHJcbiAgICAgICAgICAgICAgdG9wOiAwLjJyZW07XHJcbiAgICAgICAgICAgICAgbGVmdDogLTIuMXJlbTtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2FsZXJ0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLnB1cmNoYXNlLCAmLnNlbGwge1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcclxuICAgICAgICAgICAgICB3aWR0aDogMS41cmVtO1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMS41cmVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLnB1cmNoYXNlIHtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3B1cmNoYXNlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5zZWxsIHtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3NlbGwuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cywgLmNvbW1lbnQge1xyXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNvbnRyYWN0cy1idXR0b25zIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIG1hcmdpbjogM3JlbSAwO1xyXG4gIHdpZHRoOiA1MCU7XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBmbGV4OiAwIDEgNTAlO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, OnInit, OnDestroy} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\n\r\n@Component({\r\n selector: 'app-contracts',\r\n templateUrl: './contracts.component.html',\r\n styleUrls: ['./contracts.component.scss']\r\n})\r\nexport class ContractsComponent implements OnInit, OnDestroy {\r\n\r\n parentRouting;\r\n walletId;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n public variablesService: VariablesService\r\n ) {\r\n }\r\n\r\n public get sortedArrayContracts(): any[] {\r\n return this.variablesService.currentWallet.contracts.sort((a, b) => {\r\n if (a.is_new < b.is_new) {\r\n return 1;\r\n }\r\n if (a.is_new > b.is_new) {\r\n return -1;\r\n }\r\n if (a.timestamp < b.timestamp) {\r\n return 1;\r\n }\r\n if (a.timestamp > b.timestamp) {\r\n return -1;\r\n }\r\n if (a.contract_id < b.contract_id) {\r\n return 1;\r\n }\r\n if (a.contract_id > b.contract_id) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(params => {\r\n if (params.hasOwnProperty('id')) {\r\n this.walletId = params['id'];\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\\r\\n {{ 'BREADCRUMBS.CREATE_WALLET' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\\r\\n
\\r\\n
\\r\\n
= variablesService.maxWalletNameLength\\\">\\r\\n {{ 'CREATE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'CREATE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \":host {\\n position: relative; }\\n\\n.form-create {\\n margin: 2.4rem 0;\\n width: 50%; }\\n\\n.form-create .wrap-buttons {\\n display: flex;\\n margin: 2.5rem -0.7rem; }\\n\\n.form-create .wrap-buttons button {\\n margin: 0 0.7rem; }\\n\\n.form-create .wrap-buttons button.transparent-button {\\n flex-basis: 50%; }\\n\\n.form-create .wrap-buttons button.select-button {\\n flex-basis: 60%; }\\n\\n.form-create .wrap-buttons button.create-button {\\n flex: 1 1 50%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY3JlYXRlLXdhbGxldC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxjcmVhdGUtd2FsbGV0XFxjcmVhdGUtd2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTs7QUFGWjtJQUtJLGFBQWE7SUFDYixzQkFBc0IsRUFBQTs7QUFOMUI7TUFTTSxnQkFBZ0IsRUFBQTs7QUFUdEI7UUFZUSxlQUFlLEVBQUE7O0FBWnZCO1FBZ0JRLGVBQWUsRUFBQTs7QUFoQnZCO1FBb0JRLGFBQWEsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NyZWF0ZS13YWxsZXQvY3JlYXRlLXdhbGxldC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5mb3JtLWNyZWF0ZSB7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICB3aWR0aDogNTAlO1xyXG5cclxuICAud3JhcC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBtYXJnaW46IDIuNXJlbSAtMC43cmVtO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjdyZW07XHJcblxyXG4gICAgICAmLnRyYW5zcGFyZW50LWJ1dHRvbiB7XHJcbiAgICAgICAgZmxleC1iYXNpczogNTAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnNlbGVjdC1idXR0b24ge1xyXG4gICAgICAgIGZsZXgtYmFzaXM6IDYwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5jcmVhdGUtYnV0dG9uIHtcclxuICAgICAgICBmbGV4OiAxIDEgNTAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, NgZone, OnInit} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Router} from '@angular/router';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-create-wallet',\r\n templateUrl: './create-wallet.component.html',\r\n styleUrls: ['./create-wallet.component.scss']\r\n})\r\nexport class CreateWalletComponent implements OnInit {\r\n\r\n createForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, (g: FormControl) => {\r\n for (let i = 0; i < this.variablesService.wallets.length; i++) {\r\n if (g.value === this.variablesService.wallets[i].name) {\r\n return {'duplicate': true};\r\n }\r\n }\r\n return null;\r\n }]),\r\n password: new FormControl('', Validators.pattern(this.variablesService.pattern)),\r\n confirm: new FormControl('')\r\n }, function (g: FormGroup) {\r\n return g.get('password').value === g.get('confirm').value ? null : {'confirm_mismatch': true};\r\n });\r\n\r\n wallet = {\r\n id: ''\r\n };\r\n\r\n walletSaved = false;\r\n walletSavedName = '';\r\n progressWidth = '9rem';\r\n\r\n constructor(\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n createWallet() {\r\n this.ngZone.run(() => {\r\n this.progressWidth = '100%';\r\n this.router.navigate(['/seed-phrase'], {queryParams: {wallet_id: this.wallet.id}});\r\n });\r\n }\r\n\r\n saveWallet() {\r\n if (this.createForm.valid && this.createForm.get('name').value.length <= this.variablesService.maxWalletNameLength) {\r\n this.backend.saveFileDialog(this.translate.instant('CREATE_WALLET.TITLE_SAVE'), '*', this.variablesService.settings.default_path, (file_status, file_data) => {\r\n if (file_status) {\r\n this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/'));\r\n this.walletSavedName = file_data.path.substr(file_data.path.lastIndexOf('/') + 1, file_data.path.length - 1);\r\n this.backend.generateWallet(file_data.path, this.createForm.get('password').value, (generate_status, generate_data, errorCode) => {\r\n if (generate_status) {\r\n this.wallet.id = generate_data.wallet_id;\r\n this.variablesService.opening_wallet = new Wallet(\r\n generate_data.wallet_id,\r\n this.createForm.get('name').value,\r\n this.createForm.get('password').value,\r\n generate_data['wi'].path,\r\n generate_data['wi'].address,\r\n generate_data['wi'].balance,\r\n generate_data['wi'].unlocked_balance,\r\n generate_data['wi'].mined_total,\r\n generate_data['wi'].tracking_hey\r\n );\r\n this.variablesService.opening_wallet.alias = this.backend.getWalletAlias(generate_data['wi'].address);\r\n this.variablesService.opening_wallet.total_history_item = 0;\r\n this.variablesService.opening_wallet.pages = new Array(1).fill(1);\r\n this.variablesService.opening_wallet.totalPages = 1;\r\n this.variablesService.opening_wallet.currentPage = 1;\r\n this.ngZone.run(() => {\r\n this.walletSaved = true;\r\n this.progressWidth = '50%';\r\n });\r\n } else {\r\n if (errorCode && errorCode === 'ALREADY_EXISTS') {\r\n this.modalService.prepareModal('error', 'CREATE_WALLET.ERROR_CANNOT_SAVE_TOP');\r\n } else {\r\n this.modalService.prepareModal('error', 'CREATE_WALLET.ERROR_CANNOT_SAVE_SYSTEM');\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ wallet.name }}\\r\\n {{ 'BREADCRUMBS.EDIT_ALIAS' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
0 && notEnoughMoney\\\">\\r\\n {{ 'EDIT_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\\r\\n
\\r\\n
= variablesService.maxCommentLength\\\">\\r\\n {{ 'EDIT_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
{{ \\\"EDIT_ALIAS.COST\\\" | translate : {value: variablesService.default_fee, currency: variablesService.defaultCurrency} }}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \".form-edit {\\n margin: 2.4rem 0; }\\n .form-edit .alias-name {\\n width: 50%; }\\n .form-edit .alias-cost {\\n font-size: 1.3rem;\\n margin-top: 2rem; }\\n .form-edit .wrap-buttons {\\n display: flex;\\n justify-content: space-between;\\n margin: 2.5rem -0.7rem; }\\n .form-edit .wrap-buttons button {\\n margin: 0 0.7rem;\\n width: 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZWRpdC1hbGlhcy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxlZGl0LWFsaWFzXFxlZGl0LWFsaWFzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFBQTtFQVRwQjtJQWFJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsc0JBQXNCLEVBQUE7RUFmMUI7TUFrQk0sZ0JBQWdCO01BQ2hCLFlBQVksRUFBQSIsImZpbGUiOiJzcmMvYXBwL2VkaXQtYWxpYXMvZWRpdC1hbGlhcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLWVkaXQge1xyXG4gIG1hcmdpbjogMi40cmVtIDA7XHJcblxyXG4gIC5hbGlhcy1uYW1lIHtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgfVxyXG5cclxuICAuYWxpYXMtY29zdCB7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIG1hcmdpbi10b3A6IDJyZW07XHJcbiAgfVxyXG5cclxuICAud3JhcC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW46IDIuNXJlbSAtMC43cmVtO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjdyZW07XHJcbiAgICAgIHdpZHRoOiAxNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, NgZone, OnInit} from '@angular/core';\r\nimport {Location} from '@angular/common';\r\nimport {Router} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\n\r\n@Component({\r\n selector: 'app-edit-alias',\r\n templateUrl: './edit-alias.component.html',\r\n styleUrls: ['./edit-alias.component.scss']\r\n})\r\nexport class EditAliasComponent implements OnInit {\r\n\r\n wallet: Wallet;\r\n alias: any;\r\n oldAliasComment: string;\r\n notEnoughMoney: boolean;\r\n requestProcessing = false;\r\n\r\n constructor(\r\n private location: Location,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.wallet = this.variablesService.currentWallet;\r\n const alias = this.backend.getWalletAlias(this.wallet.address);\r\n this.alias = {\r\n name: alias.name,\r\n address: alias.address,\r\n comment: alias.comment\r\n };\r\n this.oldAliasComment = alias.comment;\r\n this.notEnoughMoney = this.wallet.unlocked_balance.isLessThan(this.variablesService.default_fee_big);\r\n }\r\n\r\n updateAlias() {\r\n if (this.requestProcessing || this.notEnoughMoney || this.oldAliasComment === this.alias.comment || this.alias.comment.length > this.variablesService.maxCommentLength) {\r\n return;\r\n }\r\n this.requestProcessing = true;\r\n this.backend.updateAlias(this.wallet.wallet_id, this.alias, this.variablesService.default_fee, (status) => {\r\n if (status) {\r\n this.modalService.prepareModal('success', '');\r\n this.wallet.alias['comment'] = this.alias.comment;\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet.wallet_id]);\r\n });\r\n }\r\n this.requestProcessing = false;\r\n });\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n

{{ 'CONTACTS.IMPORT_EXPORT' | translate }}

\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.head {\\n justify-content: flex-end; }\\n\\n.contacts-title {\\n font-size: 1.7rem;\\n margin-bottom: 1rem; }\\n\\n.btn-wrapper {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin: 0 -0.5rem;\\n padding: 1.5rem 0; }\\n\\n.btn-wrapper button {\\n flex: 1 0 auto;\\n margin: 0 0.5rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZXhwb3J0LWltcG9ydC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxleHBvcnQtaW1wb3J0XFxleHBvcnQtaW1wb3J0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsaUJBQWlCO0VBQ2pCLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsOEJBQThCO0VBQzlCLGlCQUFpQjtFQUNqQixpQkFBaUIsRUFBQTs7QUFMbkI7SUFRSSxjQUFjO0lBQ2QsZ0JBQWdCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9leHBvcnQtaW1wb3J0L2V4cG9ydC1pbXBvcnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5oZWFkIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4uY29udGFjdHMtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbn1cclxuXHJcbi5idG4td3JhcHBlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBtYXJnaW46IDAgLTAuNXJlbTtcclxuICBwYWRkaW5nOiAxLjVyZW0gMDtcclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgbWFyZ2luOiAwIDAuNXJlbTtcclxuICB9XHJcbn0iXX0= */\"","import { Component, OnInit, NgZone } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { Contact } from '../_helpers/models/contact.model';\r\nimport { ModalService } from '../_helpers/services/modal.service';\r\nimport { Papa } from 'ngx-papaparse';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-export-import',\r\n templateUrl: './export-import.component.html',\r\n styleUrls: ['./export-import.component.scss']\r\n})\r\nexport class ExportImportComponent implements OnInit {\r\n csvContent;\r\n\r\n constructor(\r\n private location: Location,\r\n private variablesService: VariablesService,\r\n private backend: BackendService,\r\n private modalService: ModalService,\r\n private papa: Papa,\r\n private translate: TranslateService,\r\n private router: Router,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {}\r\n\r\n import() {\r\n this.backend.openFileDialog(\r\n '',\r\n '*',\r\n this.variablesService.settings.default_path,\r\n (file_status, file_data) => {\r\n if (file_status) {\r\n this.variablesService.settings.default_path = file_data.path.substr(\r\n 0,\r\n file_data.path.lastIndexOf('/')\r\n );\r\n if (this.isValid(file_data.path)) {\r\n this.backend.loadFile(file_data.path, (status, data) => {\r\n if (!status) {\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'CONTACTS.ERROR_IMPORT_EMPTY'\r\n );\r\n } else {\r\n const options = {\r\n header: true\r\n };\r\n const elements = this.papa.parse(data, options);\r\n const isArray = Array.isArray(elements.data);\r\n if (isArray && elements.data.length !== 0 && !elements.errors.length) {\r\n if (!this.variablesService.contacts.length) {\r\n elements.data.forEach(element => {\r\n this.variablesService.contacts.push(element);\r\n });\r\n } else {\r\n elements.data.forEach(element => {\r\n const indexName = this.variablesService.contacts.findIndex(\r\n contact => contact.name === element.name\r\n );\r\n const indexAddress = this.variablesService.contacts.findIndex(\r\n contact => contact.address === element.address\r\n );\r\n if (indexAddress === -1 && indexName === -1) {\r\n this.variablesService.contacts.push(element);\r\n }\r\n if (indexName !== -1 && indexAddress === -1) {\r\n this.variablesService.contacts.push({\r\n name: `${element.name} ${this.translate.instant(\r\n 'CONTACTS.COPY'\r\n )}`,\r\n address: element.address,\r\n notes: element.notes\r\n });\r\n }\r\n });\r\n }\r\n this.backend.getContactAlias();\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/contacts']);\r\n });\r\n }\r\n if (elements.errors.length) {\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'CONTACTS.ERROR_IMPORT'\r\n );\r\n console.log(elements.errors);\r\n }\r\n }\r\n });\r\n } else {\r\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_TYPE_FILE');\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n export() {\r\n const contacts: Array = [];\r\n this.variablesService.contacts.forEach(contact => {\r\n delete contact.alias;\r\n contacts.push(contact);\r\n });\r\n\r\n this.backend.saveFileDialog(\r\n '',\r\n '*',\r\n this.variablesService.settings.default_path,\r\n (file_status, file_data) => {\r\n if (!this.variablesService.contacts.length && !(file_data.error_code === 'CANCELED')) {\r\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_EMPTY_LIST');\r\n }\r\n const path = this.isValid(file_data.path) ? file_data.path : `${file_data.path}.csv`;\r\n if (file_status && this.isValid(path) && this.variablesService.contacts.length) {\r\n this.backend.storeFile(path, this.papa.unparse(contacts));\r\n }\r\n if (!(file_data.error_code === 'CANCELED') && !this.isValid(path)) {\r\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_EXPORT');\r\n }\r\n }\r\n );\r\n }\r\n\r\n isValid(file) {\r\n return file.endsWith('.csv');\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ 'HISTORY.STATUS' | translate }}{{ 'HISTORY.DATE' | translate }}{{ 'HISTORY.AMOUNT' | translate }}{{ 'HISTORY.FEE' | translate }}{{ 'HISTORY.ADDRESS' | translate }}
\\r\\n
\\r\\n 0\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n 500000000\\\">\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ (item.is_income ? 'HISTORY.RECEIVED' : 'HISTORY.SEND') | translate }}\\r\\n
\\r\\n
{{item.timestamp * 1000 | date : 'dd-MM-yyyy HH:mm'}}\\r\\n {{item.sortAmount | intToMoney}} {{variablesService.defaultCurrency}}\\r\\n \\r\\n {{item.sortFee | intToMoney}} {{variablesService.defaultCurrency}}\\r\\n \\r\\n {{item | historyTypeMessages}}\\r\\n {{item.remote_addresses[0]}}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.wrap-table {\\n margin: -3rem; }\\n\\n.wrap-table table tbody tr td {\\n min-width: 10rem; }\\n\\n.wrap-table table tbody tr .status {\\n position: relative;\\n display: flex;\\n align-items: center; }\\n\\n.wrap-table table tbody tr .status .confirmation {\\n position: absolute;\\n top: 50%;\\n left: -2rem;\\n transform: translateY(-50%);\\n display: flex;\\n align-items: flex-end;\\n width: 0.7rem;\\n height: 1.5rem; }\\n\\n.wrap-table table tbody tr .status .confirmation .fill {\\n width: 100%; }\\n\\n.wrap-table table tbody tr .status .lock-transaction {\\n position: absolute;\\n left: -2rem;\\n -webkit-mask: url('lock-transaction.svg') no-repeat center;\\n mask: url('lock-transaction.svg') no-repeat center;\\n width: 1.2rem;\\n height: 1.2rem;\\n margin-right: 1.1rem; }\\n\\n.wrap-table table tbody tr .status .unlock-transaction {\\n position: absolute;\\n left: -2rem;\\n -webkit-mask: url('unlock-transaction.svg') no-repeat center;\\n mask: url('unlock-transaction.svg') no-repeat center;\\n width: 1.2rem;\\n height: 1.2rem;\\n margin-right: 1.1rem; }\\n\\n.wrap-table table tbody tr .status .position {\\n position: static; }\\n\\n.wrap-table table tbody tr .status .status-transaction {\\n margin-right: 1rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.wrap-table table tbody tr .status.send .status-transaction {\\n background-color: transparent; }\\n\\n.wrap-table table tbody tr .status.send .status-transaction::after {\\n display: block;\\n content: '';\\n background: url('send-red.svg') no-repeat center;\\n width: 13px;\\n height: 13px; }\\n\\n.wrap-table table tbody tr .status.received .status-transaction {\\n background-color: transparent; }\\n\\n.wrap-table table tbody tr .status.received .status-transaction::after {\\n display: block;\\n content: '';\\n background: url('receive-green.svg') no-repeat center;\\n width: 13px;\\n height: 13px; }\\n\\n.wrap-table table tbody tr .remote-address {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n max-width: 25vw; }\\n\\n.wrap-table table tbody tr:not(.transaction-details) {\\n cursor: pointer; }\\n\\n.wrap-table table tbody tr.transaction-details {\\n transition: 0.5s height linear, 0s font-size;\\n transition-delay: 0s, 0.5s;\\n height: 0; }\\n\\n.wrap-table table tbody tr.transaction-details.open {\\n height: 16.2rem; }\\n\\n.wrap-table table tbody tr.transaction-details td {\\n position: relative;\\n overflow: hidden;\\n line-height: inherit;\\n padding-top: 0;\\n padding-bottom: 0; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaGlzdG9yeS9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxoaXN0b3J5XFxoaXN0b3J5LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsYUFBYSxFQUFBOztBQURmO0lBVVUsZ0JBQWdCLEVBQUE7O0FBVjFCO0lBY1Usa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixtQkFBbUIsRUFBQTs7QUFoQjdCO01BbUJZLGtCQUFrQjtNQUNsQixRQUFRO01BQ1IsV0FBVztNQUNYLDJCQUEyQjtNQUMzQixhQUFhO01BQ2IscUJBQXFCO01BQ3JCLGFBQWE7TUFDYixjQUFjLEVBQUE7O0FBMUIxQjtRQTZCYyxXQUFXLEVBQUE7O0FBN0J6QjtNQWtDWSxrQkFBa0I7TUFDbEIsV0FBVztNQUNYLDBEQUFtRTtjQUFuRSxrREFBbUU7TUFDbkUsYUFBYTtNQUNiLGNBQWM7TUFDZCxvQkFBb0IsRUFBQTs7QUF2Q2hDO01BMkNZLGtCQUFrQjtNQUNsQixXQUFXO01BQ1gsNERBQXFFO2NBQXJFLG9EQUFxRTtNQUNyRSxhQUFhO01BQ2IsY0FBYztNQUNkLG9CQUFvQixFQUFBOztBQWhEaEM7TUFvRFksZ0JBQWdCLEVBQUE7O0FBcEQ1QjtNQXdEWSxrQkFBa0I7TUFDbEIsYUFBYTtNQUNiLGNBQWMsRUFBQTs7QUExRDFCO01BK0RjLDZCQUE2QixFQUFBOztBQS9EM0M7TUFtRWMsY0FBYztNQUNkLFdBQVU7TUFDVixnREFBa0U7TUFDbEUsV0FBVztNQUNYLFlBQVksRUFBQTs7QUF2RTFCO01BNkVjLDZCQUE2QixFQUFBOztBQTdFM0M7TUFpRmMsY0FBYztNQUNkLFdBQVU7TUFDVixxREFBdUU7TUFDdkUsV0FBVztNQUNYLFlBQVksRUFBQTs7QUFyRjFCO0lBMkZVLGdCQUFnQjtJQUNoQix1QkFBdUI7SUFDdkIsZUFBZSxFQUFBOztBQTdGekI7SUFpR1UsZUFBZSxFQUFBOztBQWpHekI7SUFzR1UsNENBQTRDO0lBQzVDLDBCQUEwQjtJQUMxQixTQUFTLEVBQUE7O0FBeEduQjtNQTJHWSxlQUFlLEVBQUE7O0FBM0czQjtNQStHWSxrQkFBa0I7TUFDbEIsZ0JBQWdCO01BQ2hCLG9CQUFvQjtNQUNwQixjQUFjO01BQ2QsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9oaXN0b3J5L2hpc3RvcnkuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi53cmFwLXRhYmxlIHtcclxuICBtYXJnaW46IC0zcmVtO1xyXG5cclxuICB0YWJsZSB7XHJcblxyXG4gICAgdGJvZHkge1xyXG5cclxuICAgICAgdHIge1xyXG5cclxuICAgICAgICB0ZCB7XHJcbiAgICAgICAgICBtaW4td2lkdGg6IDEwcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cyB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAuY29uZmlybWF0aW9uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgbGVmdDogLTJyZW07XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gICAgICAgICAgICB3aWR0aDogMC43cmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcclxuXHJcbiAgICAgICAgICAgIC5maWxsIHtcclxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5sb2NrLXRyYW5zYWN0aW9uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBsZWZ0OiAtMnJlbTtcclxuICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9sb2NrLXRyYW5zYWN0aW9uLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4xcmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC51bmxvY2stdHJhbnNhY3Rpb24ge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IC0ycmVtO1xyXG4gICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3VubG9jay10cmFuc2FjdGlvbi5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxLjJyZW07XHJcbiAgICAgICAgICAgIGhlaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMXJlbTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAucG9zaXRpb24ge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5zdGF0dXMtdHJhbnNhY3Rpb24ge1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XHJcbiAgICAgICAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgICAgICAgIGhlaWdodDogMS43cmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYuc2VuZCAge1xyXG4gICAgICAgICAgICAuc3RhdHVzLXRyYW5zYWN0aW9uIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnN0YXR1cy10cmFuc2FjdGlvbjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDp1cmwoXCIuLi8uLi9hc3NldHMvaWNvbnMvc2VuZC1yZWQuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEzcHg7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxM3B4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJi5yZWNlaXZlZCB7XHJcbiAgICAgICAgICAgIC5zdGF0dXMtdHJhbnNhY3Rpb24ge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc3RhdHVzLXRyYW5zYWN0aW9uOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgY29udGVudDonJztcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOnVybChcIi4uLy4uL2Fzc2V0cy9pY29ucy9yZWNlaXZlLWdyZWVuLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxM3B4O1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMTNweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnJlbW90ZS1hZGRyZXNzIHtcclxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgICAgIG1heC13aWR0aDogMjV2dztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bm90KC50cmFuc2FjdGlvbi1kZXRhaWxzKSB7XHJcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnRyYW5zYWN0aW9uLWRldGFpbHMge1xyXG4gICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjVzIGhlaWdodCBsaW5lYXIsIDBzIGZvbnQtc2l6ZTtcclxuICAgICAgICAgIHRyYW5zaXRpb246IDAuNXMgaGVpZ2h0IGxpbmVhciwgMHMgZm9udC1zaXplO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHMsIDAuNXM7XHJcbiAgICAgICAgICBoZWlnaHQ6IDA7XHJcblxyXG4gICAgICAgICAgJi5vcGVuIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxNi4ycmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */\"","import {Component, OnInit, OnDestroy, AfterViewChecked, ViewChild, ElementRef} from '@angular/core';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport { Transaction } from '../_helpers/models/transaction.model';\r\n\r\n@Component({\r\n selector: 'app-history',\r\n templateUrl: './history.component.html',\r\n styleUrls: ['./history.component.scss']\r\n})\r\nexport class HistoryComponent implements OnInit, OnDestroy, AfterViewChecked {\r\n parentRouting;\r\n openedDetails = false;\r\n calculatedWidth = [];\r\n @ViewChild('head') head: ElementRef;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n public variablesService: VariablesService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(() => {\r\n this.openedDetails = false;\r\n });\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.calculateWidth();\r\n }\r\n\r\n getHeight(item) {\r\n if ((this.variablesService.height_app - item.height >= 10 && item.height !== 0) || (item.is_mining === true && item.height === 0)) {\r\n return 100;\r\n } else {\r\n if (item.height === 0 || this.variablesService.height_app - item.height < 0) {\r\n return 0;\r\n } else {\r\n return (this.variablesService.height_app - item.height) * 10;\r\n }\r\n }\r\n }\r\n\r\n openDetails(tx_hash) {\r\n if (tx_hash === this.openedDetails) {\r\n this.openedDetails = false;\r\n } else {\r\n this.openedDetails = tx_hash;\r\n }\r\n }\r\n\r\n calculateWidth() {\r\n this.calculatedWidth = [];\r\n this.calculatedWidth.push(this.head.nativeElement.childNodes[0].clientWidth);\r\n this.calculatedWidth.push(this.head.nativeElement.childNodes[1].clientWidth + this.head.nativeElement.childNodes[2].clientWidth);\r\n this.calculatedWidth.push(this.head.nativeElement.childNodes[3].clientWidth);\r\n this.calculatedWidth.push(this.head.nativeElement.childNodes[4].clientWidth);\r\n }\r\n\r\n time(item: Transaction) {\r\n const now = new Date().getTime();\r\n const unlockTime = now + ((item.unlock_time - this.variablesService.height_max) * 60 * 1000);\r\n return unlockTime;\r\n }\r\n\r\n isLocked(item: Transaction) {\r\n if ((item.unlock_time > 500000000) && (item.unlock_time > new Date().getTime() / 1000)) {\r\n return true;\r\n }\r\n if ((item.unlock_time < 500000000) && (item.unlock_time > this.variablesService.height_max)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'LOGIN.FORM_ERRORS.MISMATCH' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.OFFLINE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.SYNCING' | translate }} {{ variablesService.height_app }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.height_max }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ONLINE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.DOWNLOADING' | translate }} {{ variablesService.downloaded }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.total }}{{ 'SIDEBAR.SYNCHRONIZATION.MB' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ variablesService.sync.progress_value_text }}%
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ variablesService.download.progress_value_text }}%
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.STANDARD' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT' | translate }}\\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.CRITICAL' | translate }}\\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.TIME' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%; }\\n :host .content {\\n display: flex; }\\n :host .content .wrap-login {\\n margin: auto;\\n width: 100%;\\n max-width: 40rem; }\\n :host .content .wrap-login .logo {\\n display: flex;\\n justify-content: center; }\\n :host .content .wrap-login .logo::ng-deep svg {\\n width: 15rem; }\\n :host .content .wrap-login .form-login {\\n display: flex;\\n flex-direction: column; }\\n :host .content .wrap-login .form-login .wrap-button {\\n display: flex;\\n align-items: center;\\n justify-content: space-between; }\\n :host .content .wrap-login .form-login .wrap-button button {\\n margin: 2.5rem 0; }\\n :host .content .wrap-login .form-login button {\\n margin: 2.5rem auto;\\n width: 100%;\\n max-width: 15rem; }\\n .synchronization-status {\\n position: absolute;\\n bottom: 3rem;\\n left: 3rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbG9naW4vRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcbG9naW5cXGxvZ2luLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFlBQVksRUFBQTtFQUxkO0lBUUksYUFBYSxFQUFBO0VBUmpCO01BV00sWUFBWTtNQUNaLFdBQVc7TUFDWCxnQkFBZ0IsRUFBQTtFQWJ0QjtRQWdCUSxhQUFhO1FBQ2IsdUJBQXVCLEVBQUE7RUFqQi9CO1VBb0JVLFlBQVksRUFBQTtFQXBCdEI7UUF5QlEsYUFBYTtRQUNiLHNCQUFzQixFQUFBO0VBMUI5QjtVQTZCVSxhQUFhO1VBQ2IsbUJBQW1CO1VBQ25CLDhCQUE4QixFQUFBO0VBL0J4QztZQWtDWSxnQkFBZ0IsRUFBQTtFQWxDNUI7VUF1Q1UsbUJBQW1CO1VBQ25CLFdBQVc7VUFDWCxnQkFBZ0IsRUFBQTtFQU0xQjtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osVUFBVSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvbG9naW4vbG9naW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuXHJcbiAgLmNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAud3JhcC1sb2dpbiB7XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1heC13aWR0aDogNDByZW07XHJcblxyXG4gICAgICAubG9nbyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgJjo6bmctZGVlcCBzdmcge1xyXG4gICAgICAgICAgd2lkdGg6IDE1cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmZvcm0tbG9naW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICAgICAgLndyYXAtYnV0dG9uIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMi41cmVtIDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgbWFyZ2luOiAyLjVyZW0gYXV0bztcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiAxNXJlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuLnN5bmNocm9uaXphdGlvbi1zdGF0dXMge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDNyZW07XHJcbiAgbGVmdDogM3JlbTtcclxufVxyXG4iXX0= */\"","import {Component, NgZone, OnInit, OnDestroy} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {DOWNLOADS_PAGE_URL} from '../_shared/constants'\r\n\r\nimport icons from '../../assets/icons/icons.json';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit, OnDestroy {\r\n\r\n queryRouting;\r\n\r\n regForm = new FormGroup({\r\n password: new FormControl('',\r\n Validators.pattern(this.variablesService.pattern)),\r\n confirmation: new FormControl('')\r\n }, [function (g: FormGroup) {\r\n return g.get('password').value === g.get('confirmation').value ? null : {'mismatch': true};\r\n }\r\n]);\r\n\r\n authForm = new FormGroup({\r\n password: new FormControl('')\r\n });\r\n\r\n type = 'reg';\r\n\r\n logo = icons.logo;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.type) {\r\n this.type = params.type;\r\n }\r\n });\r\n }\r\n\r\n onSubmitCreatePass(): void {\r\n if (this.regForm.valid) {\r\n this.variablesService.appPass = this.regForm.get('password').value; // the pass what was written in input of login form by user\r\n\r\n this.backend.setMasterPassword({pass: this.variablesService.appPass}, (status, data) => {\r\n if (status) {\r\n this.backend.storeSecureAppData({pass: this.variablesService.appPass});\r\n this.variablesService.appLogin = true;\r\n this.variablesService.dataIsLoaded = true;\r\n if (this.variablesService.settings.appLockTime) {\r\n this.variablesService.startCountdown();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n } else {\r\n console.log(data['error_code']);\r\n }\r\n });\r\n }\r\n }\r\n\r\n onSkipCreatePass(): void {\r\n this.variablesService.appPass = '';\r\n this.ngZone.run(() => {\r\n this.variablesService.appLogin = true;\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n\r\n dropSecureAppData(): void {\r\n this.backend.dropSecureAppData(() => {\r\n this.onSkipCreatePass();\r\n });\r\n this.variablesService.wallets = [];\r\n this.variablesService.contacts = [];\r\n }\r\n\r\n onSubmitAuthPass(): void {\r\n if (this.authForm.valid) {\r\n this.variablesService.appPass = this.authForm.get('password').value;\r\n\r\n if (this.variablesService.dataIsLoaded) {\r\n this.backend.checkMasterPassword({pass: this.variablesService.appPass}, (status, data) => {\r\n if (status) {\r\n this.variablesService.appLogin = true;\r\n if (this.variablesService.settings.appLockTime) {\r\n this.variablesService.startCountdown();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/'], {queryParams: {prevUrl: 'login'}});\r\n });\r\n }\r\n });\r\n } else {\r\n this.getData(this.variablesService.appPass);\r\n }\r\n }\r\n }\r\n\r\n getData(appPass) {\r\n this.backend.getSecureAppData({pass: appPass}, (status, data) => {\r\n if (!data.error_code) {\r\n this.variablesService.appLogin = true;\r\n this.variablesService.dataIsLoaded = true;\r\n if (this.variablesService.settings.appLockTime) {\r\n this.variablesService.startCountdown();\r\n }\r\n this.variablesService.appPass = appPass;\r\n const isEmptyObject = Object.keys(data).length === 0 && data.constructor === Object;\r\n\r\n if (this.variablesService.wallets.length) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.variablesService.wallets[0].wallet_id]);\r\n });\r\n return;\r\n }\r\n if (data.hasOwnProperty('contacts')) {\r\n if (Object.keys(data['contacts']).length !== 0) {\r\n data['contacts'].map(contact => {\r\n this.variablesService.contacts.push(contact);\r\n });\r\n }\r\n }\r\n if (data.hasOwnProperty('wallets')) {\r\n if (Object.keys(data['wallets']).length !== 0) {\r\n this.getWalletData(data['wallets']);\r\n } else {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n }\r\n if (!data.hasOwnProperty('wallets') && !data.hasOwnProperty('contacts')) {\r\n if (data.length !== 0 && !isEmptyObject) {\r\n this.getWalletData(data);\r\n } else {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n getWalletData(walletData) {\r\n let openWallets = 0;\r\n let runWallets = 0;\r\n walletData.forEach((wallet, wallet_index) => {\r\n this.backend.openWallet(wallet.path, wallet.pass, this.variablesService.count, true, (open_status, open_data, open_error) => {\r\n if (open_status || open_error === 'FILE_RESTORED') {\r\n openWallets++;\r\n this.ngZone.run(() => {\r\n const new_wallet = new Wallet(\r\n open_data.wallet_id,\r\n wallet.name,\r\n wallet.pass,\r\n open_data['wi'].path,\r\n open_data['wi'].address,\r\n open_data['wi'].balance,\r\n open_data['wi'].unlocked_balance,\r\n open_data['wi'].mined_total,\r\n open_data['wi'].tracking_hey\r\n );\r\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\r\n if (wallet.staking) {\r\n new_wallet.staking = true;\r\n this.backend.startPosMining(new_wallet.wallet_id);\r\n } else {\r\n new_wallet.staking = false;\r\n }\r\n new_wallet.is_auditable = open_data['wi'].is_auditable;\r\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\r\n new_wallet.currentPage = 1;\r\n new_wallet.exclude_mining_txs = false;\r\n if (open_data.recent_history && open_data.recent_history.history) {\r\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\r\n new_wallet.totalPages = Math.ceil( open_data.recent_history.total_history_items / this.variablesService.count);\r\n new_wallet.totalPages > this.variablesService.maxPages\r\n ? new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index);\r\n new_wallet.prepareHistory(open_data.recent_history.history);\r\n } else {\r\n new_wallet.total_history_item = 0;\r\n new_wallet.pages = new Array(1).fill(1);\r\n new_wallet.totalPages = 1;\r\n }\r\n this.backend.getContracts(open_data.wallet_id, (contracts_status, contracts_data) => {\r\n if (contracts_status && contracts_data.hasOwnProperty('contracts')) {\r\n this.ngZone.run(() => {\r\n new_wallet.prepareContractsAfterOpen(contracts_data.contracts, this.variablesService.exp_med_ts, this.variablesService.height_app, this.variablesService.settings.viewedContracts, this.variablesService.settings.notViewedContracts);\r\n });\r\n }\r\n });\r\n this.variablesService.wallets.push(new_wallet);\r\n if (this.variablesService.wallets.length === 1) {\r\n this.router.navigate(['/wallet/' + this.variablesService.wallets[0].wallet_id]);\r\n }\r\n });\r\n this.backend.runWallet(open_data.wallet_id, (run_status) => {\r\n if (run_status) {\r\n runWallets++;\r\n } else {\r\n if (wallet_index === walletData.length - 1 && runWallets === 0) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n }\r\n });\r\n } else {\r\n if (wallet_index === walletData.length - 1 && openWallets === 0) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n getUpdate() {\r\n this.backend.openUrlInBrowser(DOWNLOADS_PAGE_URL);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.queryRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
0 && prevUrl !== 'login'\\\">\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n

{{ 'MAIN.TITLE' | translate }}

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'MAIN.HELP' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \":host {\\n flex: 1 0 auto;\\n padding: 3rem; }\\n\\n.content {\\n padding: 3rem;\\n min-height: 100%; }\\n\\n.content .head {\\n justify-content: flex-end; }\\n\\n.add-wallet .add-wallet-title {\\n margin-bottom: 1rem; }\\n\\n.add-wallet .add-wallet-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin: 0 -0.5rem;\\n padding: 1.5rem 0; }\\n\\n.add-wallet .add-wallet-buttons button {\\n flex: 1 0 auto;\\n margin: 0 0.5rem; }\\n\\n.add-wallet .add-wallet-help {\\n display: flex;\\n cursor: pointer;\\n font-size: 1.3rem;\\n line-height: 1.5rem; }\\n\\n.add-wallet .add-wallet-help .icon {\\n -webkit-mask: url('howto.svg') no-repeat center;\\n mask: url('howto.svg') no-repeat center;\\n margin-right: 0.8rem;\\n width: 1.5rem;\\n height: 1.5rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFpbi9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxtYWluXFxtYWluLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsY0FBYztFQUNkLGFBQWEsRUFBQTs7QUFHZjtFQUNFLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTs7QUFGbEI7SUFLSSx5QkFBeUIsRUFBQTs7QUFJN0I7RUFHSSxtQkFBbUIsRUFBQTs7QUFIdkI7RUFPSSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLDhCQUE4QjtFQUM5QixpQkFBaUI7RUFDakIsaUJBQWlCLEVBQUE7O0FBWHJCO0lBY00sY0FBYztJQUNkLGdCQUFnQixFQUFBOztBQWZ0QjtFQW9CSSxhQUFhO0VBQ2IsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixtQkFBbUIsRUFBQTs7QUF2QnZCO0lBMEJNLCtDQUF3RDtZQUF4RCx1Q0FBd0Q7SUFDeEQsb0JBQW9CO0lBQ3BCLGFBQWE7SUFDYixjQUFjLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9tYWluL21haW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZmxleDogMSAwIGF1dG87XHJcbiAgcGFkZGluZzogM3JlbTtcclxufVxyXG5cclxuLmNvbnRlbnQge1xyXG4gIHBhZGRpbmc6IDNyZW07XHJcbiAgbWluLWhlaWdodDogMTAwJTtcclxuXHJcbiAgLmhlYWQge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICB9XHJcbn1cclxuXHJcbi5hZGQtd2FsbGV0IHtcclxuXHJcbiAgLmFkZC13YWxsZXQtdGl0bGUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICB9XHJcblxyXG4gIC5hZGQtd2FsbGV0LWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW46IDAgLTAuNXJlbTtcclxuICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICBtYXJnaW46IDAgMC41cmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZC13YWxsZXQtaGVscCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS41cmVtO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9ob3d0by5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMC44cmVtO1xyXG4gICAgICB3aWR0aDogMS41cmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, NgZone, OnInit} from '@angular/core';\r\nimport {Location} from '@angular/common';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {CREATE_NEW_WALLET_HELP_PAGE} from '../_shared/constants';\r\n\r\n@Component({\r\n selector: 'app-main',\r\n templateUrl: './main.component.html',\r\n styleUrls: ['./main.component.scss']\r\n})\r\nexport class MainComponent implements OnInit {\r\n\r\n public prevUrl: string = '';\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private location: Location,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.route.snapshot.queryParams && this.route.snapshot.queryParams.prevUrl) {\r\n this.prevUrl = this.route.snapshot.queryParams.prevUrl;\r\n }\r\n }\r\n\r\n openWallet() {\r\n this.backend.openFileDialog(this.translate.instant('MAIN.CHOOSE_PATH'), '*', this.variablesService.settings.default_path, (file_status, file_data) => {\r\n if (file_status) {\r\n this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/'));\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/open'], {queryParams: {path: file_data.path}});\r\n });\r\n } else {\r\n console.log(file_data['error_code']);\r\n }\r\n });\r\n }\r\n\r\n openInBrowser() {\r\n this.backend.openUrlInBrowser(CREATE_NEW_WALLET_HELP_PAGE);\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ 'MESSAGES.ADDRESS' | translate }}{{ 'MESSAGES.MESSAGE' | translate }}
\\r\\n {{message.address}}\\r\\n \\r\\n \\r\\n {{message.message}}\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.wrap-table {\\n margin: -3rem; }\\n\\n.wrap-table table tbody tr td:first-child {\\n position: relative;\\n padding-right: 5rem;\\n width: 18rem; }\\n\\n.wrap-table table tbody tr td:first-child span {\\n display: block;\\n line-height: 3.5rem;\\n max-width: 10rem; }\\n\\n.wrap-table table tbody tr td:first-child .icon {\\n position: absolute;\\n top: 50%;\\n right: 1rem;\\n transform: translateY(-50%);\\n display: block;\\n -webkit-mask: url('alert.svg') no-repeat 0;\\n mask: url('alert.svg') no-repeat 0;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWVzc2FnZXMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcbWVzc2FnZXNcXG1lc3NhZ2VzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsYUFBYSxFQUFBOztBQURmO0lBWVksa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixZQUFZLEVBQUE7O0FBZHhCO01BaUJjLGNBQWM7TUFDZCxtQkFBbUI7TUFDbkIsZ0JBQWdCLEVBQUE7O0FBbkI5QjtNQXVCYyxrQkFBa0I7TUFDbEIsUUFBUTtNQUNSLFdBQVc7TUFDWCwyQkFBMkI7TUFDM0IsY0FBYztNQUNkLDBDQUFtRDtjQUFuRCxrQ0FBbUQ7TUFDbkQsYUFBYTtNQUNiLGNBQWMsRUFBQSIsImZpbGUiOiJzcmMvYXBwL21lc3NhZ2VzL21lc3NhZ2VzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ud3JhcC10YWJsZSB7XHJcbiAgbWFyZ2luOiAtM3JlbTtcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuXHJcbiAgICAgICAgdGQge1xyXG5cclxuICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07XHJcbiAgICAgICAgICAgIHdpZHRoOiAxOHJlbTtcclxuXHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzLjVyZW07XHJcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMHJlbTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgICByaWdodDogMXJlbTtcclxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9hbGVydC5zdmcpIG5vLXJlcGVhdCAwO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxLjJyZW07XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-messages',\r\n templateUrl: './messages.component.html',\r\n styleUrls: ['./messages.component.scss']\r\n})\r\nexport class MessagesComponent implements OnInit {\r\n\r\n messages = [\r\n {\r\n is_new: true,\r\n address: '@bitmap',\r\n message: 'No more miners for you!'\r\n },\r\n {\r\n is_new: false,\r\n address: 'Hjkwey36gHasdhkajshd4bxnb5mcvowyefb2633FdsFGGWbb',\r\n message: 'Hey! What’s with our BBR deal?'\r\n },\r\n {\r\n is_new: false,\r\n address: '@john',\r\n message: 'I’m coming!'\r\n }\r\n ];\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n

{{ 'OPEN_WALLET.MODAL.TITLE' | translate }}

\\r\\n
\\r\\n
{{ wallet.name }}
\\r\\n
{{ wallet.path }}
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'OPEN_WALLET.MODAL.NOT_FOUND' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: rgba(255, 255, 255, 0.25); }\\n\\n.modal {\\n display: flex;\\n flex-direction: column;\\n background-position: center;\\n background-size: 200%;\\n padding: 2rem;\\n min-width: 34rem;\\n max-width: 64rem; }\\n\\n.modal .title {\\n font-size: 1.8rem;\\n text-align: center; }\\n\\n.modal .open-form .wallet-path {\\n font-size: 1.3rem;\\n margin: 5rem 0 2rem;\\n word-wrap: break-word;\\n line-height: 2rem; }\\n\\n.modal .open-form .wrap-button {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin: 2rem -2rem 0; }\\n\\n.modal .open-form .wrap-button button {\\n flex: 1 0 0;\\n margin: 0 2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3Blbi13YWxsZXQtbW9kYWwvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcb3Blbi13YWxsZXQtbW9kYWxcXG9wZW4td2FsbGV0LW1vZGFsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUMsRUFBQTs7QUFHdkM7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLDJCQUEyQjtFQUMzQixxQkFBcUI7RUFDckIsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixnQkFBZ0IsRUFBQTs7QUFQbEI7SUFVSSxpQkFBaUI7SUFDakIsa0JBQWtCLEVBQUE7O0FBWHRCO0lBaUJNLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIscUJBQXFCO0lBQ3JCLGlCQUFpQixFQUFBOztBQXBCdkI7SUF3Qk0sYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsb0JBQW9CLEVBQUE7O0FBM0IxQjtNQThCUSxXQUFXO01BQ1gsY0FBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvb3Blbi13YWxsZXQtbW9kYWwvb3Blbi13YWxsZXQtbW9kYWwuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcclxufVxyXG5cclxuLm1vZGFsIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJTtcclxuICBwYWRkaW5nOiAycmVtO1xyXG4gIG1pbi13aWR0aDogMzRyZW07XHJcbiAgbWF4LXdpZHRoOiA2NHJlbTtcclxuXHJcbiAgLnRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLm9wZW4tZm9ybSB7XHJcblxyXG4gICAgLndhbGxldC1wYXRoIHtcclxuICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgIG1hcmdpbjogNXJlbSAwIDJyZW07XHJcbiAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLndyYXAtYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICBtYXJnaW46IDJyZW0gLTJyZW0gMDtcclxuXHJcbiAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgZmxleDogMSAwIDA7XHJcbiAgICAgICAgbWFyZ2luOiAwIDJyZW0gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, OnInit, Input, NgZone} from '@angular/core';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\n\r\n@Component({\r\n selector: 'app-open-wallet-modal',\r\n templateUrl: './open-wallet-modal.component.html',\r\n styleUrls: ['./open-wallet-modal.component.scss']\r\n})\r\nexport class OpenWalletModalComponent implements OnInit {\r\n\r\n @Input() wallets;\r\n\r\n wallet = {\r\n name: '',\r\n path: '',\r\n pass: '',\r\n notFound: false,\r\n emptyPass: false\r\n };\r\n\r\n constructor(\r\n public variablesService: VariablesService,\r\n private backend: BackendService,\r\n private translate: TranslateService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.wallets.length) {\r\n this.wallet = this.wallets[0];\r\n this.wallet.pass = '';\r\n\r\n this.backend.openWallet(this.wallet.path, '', this.variablesService.count, true, (status, data, error) => {\r\n if (error === 'FILE_NOT_FOUND') {\r\n this.wallet.notFound = true;\r\n }\r\n if (status) {\r\n this.wallet.pass = '';\r\n this.wallet.emptyPass = true;\r\n this.backend.closeWallet(data.wallet_id);\r\n this.openWallet();\r\n }\r\n });\r\n }\r\n }\r\n\r\n openWallet() {\r\n if (this.wallets.length === 0) {\r\n return;\r\n }\r\n this.backend.openWallet(this.wallet.path, this.wallet.pass, this.variablesService.count, false, (open_status, open_data, open_error) => {\r\n if (open_error && open_error === 'FILE_NOT_FOUND') {\r\n let error_translate = this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1');\r\n error_translate += ':
' + this.wallet.path;\r\n error_translate += this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2');\r\n this.modalService.prepareModal('error', error_translate);\r\n } else {\r\n if (open_status || open_error === 'FILE_RESTORED') {\r\n\r\n let exists = false;\r\n this.variablesService.wallets.forEach((wallet) => {\r\n if (wallet.address === open_data['wi'].address) {\r\n exists = true;\r\n }\r\n });\r\n\r\n if (exists) {\r\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\r\n this.backend.closeWallet(open_data.wallet_id);\r\n } else {\r\n const new_wallet = new Wallet(\r\n open_data.wallet_id,\r\n this.wallet.name,\r\n this.wallet.pass,\r\n open_data['wi'].path,\r\n open_data['wi'].address,\r\n open_data['wi'].balance,\r\n open_data['wi'].unlocked_balance,\r\n open_data['wi'].mined_total,\r\n open_data['wi'].tracking_hey\r\n );\r\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\r\n new_wallet.is_auditable = open_data['wi'].is_auditable;\r\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\r\n new_wallet.currentPage = 1;\r\n new_wallet.exclude_mining_txs = false;\r\n if (open_data.recent_history && open_data.recent_history.history) {\r\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\r\n new_wallet.totalPages = Math.ceil( open_data.recent_history.total_history_items / this.variablesService.count);\r\n new_wallet.totalPages > this.variablesService.maxPages\r\n ? new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index);\r\n new_wallet.prepareHistory(open_data.recent_history.history);\r\n } else {\r\n new_wallet.total_history_item = 0;\r\n new_wallet.pages = new Array(1).fill(1);\r\n new_wallet.totalPages = 1;\r\n }\r\n this.backend.getContracts(open_data.wallet_id, (contracts_status, contracts_data) => {\r\n if (contracts_status && contracts_data.hasOwnProperty('contracts')) {\r\n this.ngZone.run(() => {\r\n new_wallet.prepareContractsAfterOpen(\r\n contracts_data.contracts,\r\n this.variablesService.exp_med_ts,\r\n this.variablesService.height_app,\r\n this.variablesService.settings.viewedContracts,\r\n this.variablesService.settings.notViewedContracts\r\n );\r\n });\r\n }\r\n });\r\n this.variablesService.wallets.push(new_wallet);\r\n this.backend.runWallet(open_data.wallet_id);\r\n this.skipWallet();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n skipWallet() {\r\n this.ngZone.run(() => {\r\n if (this.wallets.length) {\r\n this.wallets.splice(0, 1);\r\n this.ngOnInit();\r\n }\r\n });\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\\r\\n {{ 'BREADCRUMBS.OPEN_WALLET' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\\r\\n
\\r\\n
\\r\\n
= variablesService.maxWalletNameLength\\\">\\r\\n {{ 'OPEN_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\"","module.exports = \".form-open {\\n margin: 2.4rem 0;\\n width: 50%; }\\n .form-open .wrap-buttons {\\n display: flex;\\n margin: 2.5rem -0.7rem; }\\n .form-open .wrap-buttons button {\\n margin: 0 0.7rem; }\\n .form-open .wrap-buttons button.create-button {\\n flex: 1 1 50%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3Blbi13YWxsZXQvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcb3Blbi13YWxsZXRcXG9wZW4td2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTtFQUZaO0lBS0ksYUFBYTtJQUNiLHNCQUFzQixFQUFBO0VBTjFCO01BU00sZ0JBQWdCLEVBQUE7RUFUdEI7UUFZUSxhQUFhLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9vcGVuLXdhbGxldC9vcGVuLXdhbGxldC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLW9wZW4ge1xyXG4gIG1hcmdpbjogMi40cmVtIDA7XHJcbiAgd2lkdGg6IDUwJTtcclxuXHJcbiAgLndyYXAtYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luOiAyLjVyZW0gLTAuN3JlbTtcclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBtYXJnaW46IDAgMC43cmVtO1xyXG5cclxuICAgICAgJi5jcmVhdGUtYnV0dG9uIHtcclxuICAgICAgICBmbGV4OiAxIDEgNTAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, NgZone, OnDestroy, OnInit} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-open-wallet',\r\n templateUrl: './open-wallet.component.html',\r\n styleUrls: ['./open-wallet.component.scss']\r\n})\r\nexport class OpenWalletComponent implements OnInit, OnDestroy {\r\n\r\n queryRouting;\r\n filePath: string;\r\n\r\n openForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, (g: FormControl) => {\r\n for (let i = 0; i < this.variablesService.wallets.length; i++) {\r\n if (g.value === this.variablesService.wallets[i].name) {\r\n return {'duplicate': true};\r\n }\r\n }\r\n return null;\r\n }]),\r\n password: new FormControl('')\r\n });\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.path) {\r\n this.filePath = params.path;\r\n let filename = '';\r\n if (params.path.lastIndexOf('.') === -1) {\r\n filename = params.path.substr(params.path.lastIndexOf('/') + 1);\r\n } else {\r\n filename = params.path.substr(params.path.lastIndexOf('/') + 1, params.path.lastIndexOf('.') - 1 - params.path.lastIndexOf('/'));\r\n }\r\n if (filename.length > 25) {\r\n filename = filename.slice(0, 25);\r\n }\r\n this.openForm.get('name').setValue(filename);\r\n this.openForm.get('name').markAsTouched();\r\n }\r\n });\r\n }\r\n\r\n openWallet() {\r\n if (this.openForm.valid && this.openForm.get('name').value.length <= this.variablesService.maxWalletNameLength) {\r\n this.backend.openWallet(this.filePath, this.openForm.get('password').value, this.variablesService.count, false, (open_status, open_data, open_error) => {\r\n if (open_error && open_error === 'FILE_NOT_FOUND') {\r\n let error_translate = this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1');\r\n error_translate += ':
' + this.filePath;\r\n error_translate += this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2');\r\n this.modalService.prepareModal('error', error_translate);\r\n } else {\r\n if (open_status || open_error === 'FILE_RESTORED') {\r\n\r\n let exists = false;\r\n this.variablesService.wallets.forEach((wallet) => {\r\n if (wallet.address === open_data['wi'].address) {\r\n exists = true;\r\n }\r\n });\r\n\r\n if (exists) {\r\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\r\n this.backend.closeWallet(open_data.wallet_id, () => {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n });\r\n } else {\r\n const new_wallet = new Wallet(\r\n open_data.wallet_id,\r\n this.openForm.get('name').value,\r\n this.openForm.get('password').value,\r\n open_data['wi'].path,\r\n open_data['wi'].address,\r\n open_data['wi'].balance,\r\n open_data['wi'].unlocked_balance,\r\n open_data['wi'].mined_total,\r\n open_data['wi'].tracking_hey\r\n );\r\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\r\n new_wallet.currentPage = 1;\r\n new_wallet.open_from_exist = true;\r\n new_wallet.exclude_mining_txs = false;\r\n new_wallet.is_auditable = open_data['wi'].is_auditable;\r\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\r\n if (open_data.recent_history && open_data.recent_history.history) {\r\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\r\n new_wallet.totalPages = Math.ceil( open_data.recent_history.total_history_items / this.variablesService.count);\r\n new_wallet.totalPages > this.variablesService.maxPages\r\n ? new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index);\r\n new_wallet.prepareHistory(open_data.recent_history.history);\r\n } else {\r\n new_wallet.total_history_item = 0;\r\n new_wallet.pages = new Array(1).fill(1);\r\n new_wallet.totalPages = 1;\r\n }\r\n this.backend.getContracts(open_data.wallet_id, (contracts_status, contracts_data) => {\r\n if (contracts_status && contracts_data.hasOwnProperty('contracts')) {\r\n this.ngZone.run(() => {\r\n new_wallet.prepareContractsAfterOpen(contracts_data.contracts, this.variablesService.exp_med_ts, this.variablesService.height_app, this.variablesService.settings.viewedContracts, this.variablesService.settings.notViewedContracts);\r\n });\r\n }\r\n });\r\n this.variablesService.wallets.push(new_wallet);\r\n this.backend.runWallet(open_data.wallet_id, (run_status, run_data) => {\r\n if (run_status) {\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + open_data.wallet_id]);\r\n });\r\n } else {\r\n console.log(run_data['error_code']);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.queryRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n {{ 'BREADCRUMBS.CONTRACTS' | translate }}\\r\\n {{ 'BREADCRUMBS.NEW_PURCHASE' | translate }}\\r\\n {{ 'BREADCRUMBS.OLD_PURCHASE' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.DESC_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n
= 100\\\">\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.COMMENT_MAXIMUM' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.SELLER_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.SELLER_NOT_VALID' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.SELLER_SAME' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.ALIAS_NOT_VALID' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.AMOUNT_ZERO' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.YOUR_DEPOSIT_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.SELLER_DEPOSIT_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
= 100\\\">\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.COMMENT_MAXIMUM' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n 1 {{ 'PURCHASE.HOUR' | translate }}\\r\\n \\r\\n {{title}} {{ 'PURCHASE.HOURS' | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n {{ 'PURCHASE.NEED_MONEY' | translate }}\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
{{'PURCHASE.NULLIFY_QUESTION' | translate}}
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
{{ 'PURCHASE.WAITING_TIME_QUESTION' | translate }}
\\r\\n \\r\\n
\\r\\n \\r\\n 1 {{ 'PURCHASE.HOUR' | translate }}\\r\\n \\r\\n {{title}} {{ 'PURCHASE.HOURS' | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.NEW_PURCHASE' | translate }}\\r\\n \\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_SELLER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_SELLER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_DELIVERY' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_CANCEL_SELLER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.EXPIRED' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_SELLER' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_CONFIRMATION' | translate }}\\r\\n (0/10)\\r\\n ({{variablesService.height_app - currentContract.height}}/10)\\r\\n \\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.COMPLETED' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.NOT_RECEIVED' | translate }}. {{ 'PURCHASE.STATUS_MESSAGES.NULLIFIED' | translate }}\\r\\n \\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.PROPOSAL_CANCEL_SELLER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.CANCELLED' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.BEING_CANCELLED' | translate }}\\r\\n (0/10)\\r\\n ({{variablesService.height_app - currentContract.height}}/10)\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_BUYER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_BUYER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_CANCEL_BUYER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.EXPIRED' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_DELIVERY' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_CONFIRMATION' | translate }}\\r\\n (0/10)\\r\\n ({{variablesService.height_app - currentContract.height}}/10)\\r\\n \\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.COMPLETED' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.NOT_RECEIVED' | translate }}. {{ 'PURCHASE.STATUS_MESSAGES.NULLIFIED' | translate }}\\r\\n \\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.PROPOSAL_CANCEL_BUYER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.CANCELLED' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.BEING_CANCELLED' | translate }}\\r\\n (0/10)\\r\\n ({{variablesService.height_app - currentContract.height}}/10)\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n {{currentContract.expiration_time | contractTimeLeft: 0}}\\r\\n {{currentContract.cancel_expiration_time | contractTimeLeft: 2}}\\r\\n {{currentContract.expiration_time | contractTimeLeft: 1}}\\r\\n {{currentContract.cancel_expiration_time | contractTimeLeft: 1}}\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n width: 100%; }\\n\\n.head {\\n flex: 0 0 auto;\\n box-sizing: content-box;\\n margin: -3rem -3rem 0; }\\n\\n.form-purchase {\\n flex: 1 1 auto;\\n margin: 1.5rem -3rem 0;\\n padding: 0 3rem;\\n overflow-y: overlay; }\\n\\n.form-purchase .input-blocks-row {\\n display: flex; }\\n\\n.form-purchase .input-blocks-row .input-block {\\n flex-basis: 50%; }\\n\\n.form-purchase .input-blocks-row .input-block:first-child {\\n margin-right: 1.5rem; }\\n\\n.form-purchase .input-blocks-row .input-block:last-child {\\n margin-left: 1.5rem; }\\n\\n.form-purchase .input-blocks-row .input-block .checkbox-block {\\n display: flex; }\\n\\n.form-purchase .purchase-select {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n font-size: 1.3rem;\\n line-height: 1.3rem;\\n margin: 1.5rem 0 0;\\n padding: 0;\\n width: 100%;\\n max-width: 15rem;\\n height: 1.3rem; }\\n\\n.form-purchase .purchase-select .arrow {\\n margin-left: 1rem;\\n width: 0.8rem;\\n height: 0.8rem; }\\n\\n.form-purchase .purchase-select .arrow.down {\\n -webkit-mask: url('arrow-down.svg') no-repeat center;\\n mask: url('arrow-down.svg') no-repeat center; }\\n\\n.form-purchase .purchase-select .arrow.up {\\n -webkit-mask: url('arrow-up.svg') no-repeat center;\\n mask: url('arrow-up.svg') no-repeat center; }\\n\\n.form-purchase .additional-details {\\n display: flex;\\n margin-top: 1.5rem;\\n padding: 0.5rem 0 2rem; }\\n\\n.form-purchase .additional-details > div {\\n flex-basis: 25%; }\\n\\n.form-purchase .additional-details > div:first-child {\\n padding-left: 1.5rem;\\n padding-right: 1rem; }\\n\\n.form-purchase .additional-details > div:last-child {\\n padding-left: 1rem;\\n padding-right: 1.5rem; }\\n\\n.form-purchase .purchase-states {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n font-size: 1.2rem;\\n line-height: 2.9rem; }\\n\\n.form-purchase .send-button {\\n margin: 2.4rem 0;\\n width: 100%;\\n max-width: 15rem; }\\n\\n.form-purchase .purchase-buttons {\\n display: flex;\\n justify-content: flex-start;\\n margin: 2.4rem -0.5rem; }\\n\\n.form-purchase .purchase-buttons button {\\n flex: 0 1 33%;\\n margin: 0 0.5rem; }\\n\\n.form-purchase .nullify-block-row {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center; }\\n\\n.form-purchase .nullify-block-row .nullify-block-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin: 1rem 0;\\n width: 100%; }\\n\\n.form-purchase .nullify-block-row .nullify-block-buttons button {\\n flex: 0 1 25%;\\n margin: 0 0.5rem; }\\n\\n.form-purchase .time-cancel-block-row {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center; }\\n\\n.form-purchase .time-cancel-block-row .time-cancel-block-question {\\n margin-bottom: 1rem; }\\n\\n.form-purchase .time-cancel-block-row .input-block {\\n width: 25%; }\\n\\n.form-purchase .time-cancel-block-row label {\\n margin-bottom: 1rem; }\\n\\n.form-purchase .time-cancel-block-row .time-cancel-block-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin: 1rem 0;\\n width: 100%; }\\n\\n.form-purchase .time-cancel-block-row .time-cancel-block-buttons button {\\n flex: 0 1 25%;\\n margin: 0 0.5rem; }\\n\\n.progress-bar-container {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n padding: 0 3rem;\\n width: 100%;\\n height: 3rem; }\\n\\n.progress-bar-container .progress-bar {\\n position: absolute;\\n top: -0.7rem;\\n left: 0;\\n margin: 0 3rem;\\n width: calc(100% - 6rem);\\n height: 0.7rem; }\\n\\n.progress-bar-container .progress-bar .progress-bar-full {\\n height: 0.7rem; }\\n\\n.progress-bar-container .progress-labels {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n font-size: 1.2rem;\\n height: 100%; }\\n\\n.progress-bar-container .progress-time {\\n position: absolute;\\n top: -3rem;\\n left: 50%;\\n transform: translateX(-50%);\\n font-size: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHVyY2hhc2UvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxccHVyY2hhc2VcXHB1cmNoYXNlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXLEVBQUE7O0FBR2I7RUFDRSxjQUFjO0VBQ2QsdUJBQXVCO0VBQ3ZCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLGNBQWM7RUFDZCxzQkFBc0I7RUFDdEIsZUFBZTtFQUNmLG1CQUFtQixFQUFBOztBQUpyQjtJQU9JLGFBQWEsRUFBQTs7QUFQakI7TUFVTSxlQUFlLEVBQUE7O0FBVnJCO1FBYVEsb0JBQW9CLEVBQUE7O0FBYjVCO1FBaUJRLG1CQUFtQixFQUFBOztBQWpCM0I7UUFxQlEsYUFBYSxFQUFBOztBQXJCckI7SUEyQkksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGNBQWMsRUFBQTs7QUFyQ2xCO01Bd0NNLGlCQUFpQjtNQUNqQixhQUFhO01BQ2IsY0FBYyxFQUFBOztBQTFDcEI7UUE2Q1Esb0RBQTREO2dCQUE1RCw0Q0FBNEQsRUFBQTs7QUE3Q3BFO1FBaURRLGtEQUEwRDtnQkFBMUQsMENBQTBELEVBQUE7O0FBakRsRTtJQXVESSxhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLHNCQUFzQixFQUFBOztBQXpEMUI7TUE0RE0sZUFBZSxFQUFBOztBQTVEckI7UUErRFEsb0JBQW9CO1FBQ3BCLG1CQUFtQixFQUFBOztBQWhFM0I7UUFvRVEsa0JBQWtCO1FBQ2xCLHFCQUFxQixFQUFBOztBQXJFN0I7SUEyRUksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLGlCQUFpQjtJQUNqQixtQkFBbUIsRUFBQTs7QUFoRnZCO0lBb0ZJLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gsZ0JBQWdCLEVBQUE7O0FBdEZwQjtJQTBGSSxhQUFhO0lBQ2IsMkJBQTJCO0lBQzNCLHNCQUFzQixFQUFBOztBQTVGMUI7TUErRk0sYUFBYTtNQUNiLGdCQUFnQixFQUFBOztBQWhHdEI7SUFxR0ksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsdUJBQXVCLEVBQUE7O0FBeEczQjtNQTJHTSxhQUFhO01BQ2IsbUJBQW1CO01BQ25CLHVCQUF1QjtNQUN2QixjQUFjO01BQ2QsV0FBVyxFQUFBOztBQS9HakI7UUFrSFEsYUFBYTtRQUNiLGdCQUFnQixFQUFBOztBQW5IeEI7SUF5SEksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsdUJBQXVCLEVBQUE7O0FBNUgzQjtNQStITSxtQkFBbUIsRUFBQTs7QUEvSHpCO01BbUlNLFVBQVUsRUFBQTs7QUFuSWhCO01BdUlNLG1CQUFtQixFQUFBOztBQXZJekI7TUEySU0sYUFBYTtNQUNiLG1CQUFtQjtNQUNuQix1QkFBdUI7TUFDdkIsY0FBYztNQUNkLFdBQVcsRUFBQTs7QUEvSWpCO1FBa0pRLGFBQWE7UUFDYixnQkFBZ0IsRUFBQTs7QUFPeEI7RUFDRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULE9BQU87RUFDUCxlQUFlO0VBQ2YsV0FBVztFQUNYLFlBQVksRUFBQTs7QUFOZDtJQVNJLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osT0FBTztJQUNQLGNBQWM7SUFDZCx3QkFBd0I7SUFDeEIsY0FBYyxFQUFBOztBQWRsQjtNQWlCTSxjQUFjLEVBQUE7O0FBakJwQjtJQXNCSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixpQkFBaUI7SUFDakIsWUFBWSxFQUFBOztBQTFCaEI7SUE4Qkksa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixTQUFTO0lBQ1QsMkJBQTJCO0lBQzNCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvcHVyY2hhc2UvcHVyY2hhc2UuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uaGVhZCB7XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgbWFyZ2luOiAtM3JlbSAtM3JlbSAwO1xyXG59XHJcblxyXG4uZm9ybS1wdXJjaGFzZSB7XHJcbiAgZmxleDogMSAxIGF1dG87XHJcbiAgbWFyZ2luOiAxLjVyZW0gLTNyZW0gMDtcclxuICBwYWRkaW5nOiAwIDNyZW07XHJcbiAgb3ZlcmZsb3cteTogb3ZlcmxheTtcclxuXHJcbiAgLmlucHV0LWJsb2Nrcy1yb3cge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAuaW5wdXQtYmxvY2sge1xyXG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XHJcblxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2hlY2tib3gtYmxvY2sge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wdXJjaGFzZS1zZWxlY3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcclxuICAgIG1hcmdpbjogMS41cmVtIDAgMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICBoZWlnaHQ6IDEuM3JlbTtcclxuXHJcbiAgICAuYXJyb3cge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgICAgd2lkdGg6IDAuOHJlbTtcclxuICAgICAgaGVpZ2h0OiAwLjhyZW07XHJcblxyXG4gICAgICAmLmRvd24ge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1kb3duLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi51cCB7XHJcbiAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Fycm93LXVwLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZGl0aW9uYWwtZGV0YWlscyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xyXG4gICAgcGFkZGluZzogMC41cmVtIDAgMnJlbTtcclxuXHJcbiAgICA+IGRpdiB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IDI1JTtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnB1cmNoYXNlLXN0YXRlcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuOXJlbTtcclxuICB9XHJcblxyXG4gIC5zZW5kLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW46IDIuNHJlbSAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDE1cmVtO1xyXG4gIH1cclxuXHJcbiAgLnB1cmNoYXNlLWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgIG1hcmdpbjogMi40cmVtIC0wLjVyZW07XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgZmxleDogMCAxIDMzJTtcclxuICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5udWxsaWZ5LWJsb2NrLXJvdyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICAubnVsbGlmeS1ibG9jay1idXR0b25zIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbjogMXJlbSAwO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgZmxleDogMCAxIDI1JTtcclxuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudGltZS1jYW5jZWwtYmxvY2stcm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuICAgIC50aW1lLWNhbmNlbC1ibG9jay1xdWVzdGlvbiB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0LWJsb2NrIHtcclxuICAgICAgd2lkdGg6IDI1JTtcclxuICAgIH1cclxuXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnRpbWUtY2FuY2VsLWJsb2NrLWJ1dHRvbnMge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgbWFyZ2luOiAxcmVtIDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgYnV0dG9uIHtcclxuICAgICAgICBmbGV4OiAwIDEgMjUlO1xyXG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4ucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHBhZGRpbmc6IDAgM3JlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDNyZW07XHJcblxyXG4gIC5wcm9ncmVzcy1iYXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAtMC43cmVtO1xyXG4gICAgbGVmdDogMDtcclxuICAgIG1hcmdpbjogMCAzcmVtO1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDZyZW0pO1xyXG4gICAgaGVpZ2h0OiAwLjdyZW07XHJcblxyXG4gICAgLnByb2dyZXNzLWJhci1mdWxsIHtcclxuICAgICAgaGVpZ2h0OiAwLjdyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucHJvZ3Jlc3MtbGFiZWxzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcblxyXG4gIC5wcm9ncmVzcy10aW1lIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogLTNyZW07XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, OnInit, OnDestroy, NgZone, HostListener} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Location} from '@angular/common';\r\nimport {IntToMoneyPipe} from '../_helpers/pipes/int-to-money.pipe';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Component({\r\n selector: 'app-purchase',\r\n templateUrl: './purchase.component.html',\r\n styleUrls: ['./purchase.component.scss']\r\n})\r\nexport class PurchaseComponent implements OnInit, OnDestroy {\r\n\r\n isOpen = false;\r\n localAliases = [];\r\n\r\n currentWalletId;\r\n newPurchase = false;\r\n parentRouting;\r\n subRouting;\r\n historyBlock;\r\n\r\n purchaseForm = new FormGroup({\r\n description: new FormControl('', Validators.required),\r\n seller: new FormControl('', [Validators.required, (g: FormControl) => {\r\n if (g.value === this.variablesService.currentWallet.address) {\r\n return {'address_same': true};\r\n }\r\n return null;\r\n }, (g: FormControl) => {\r\n this.localAliases = [];\r\n if (g.value) {\r\n if (g.value.indexOf('@') !== 0) {\r\n this.isOpen = false;\r\n this.backend.validateAddress(g.value, (valid_status) => {\r\n this.ngZone.run(() => {\r\n if (valid_status === false) {\r\n g.setErrors(Object.assign({'address_not_valid': true}, g.errors));\r\n } else {\r\n if (g.hasError('address_not_valid')) {\r\n delete g.errors['address_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n return (g.hasError('address_not_valid')) ? {'address_not_valid': true} : null;\r\n } else {\r\n this.isOpen = true;\r\n this.localAliases = this.variablesService.aliases.filter((item) => {\r\n return item.name.indexOf(g.value) > -1;\r\n });\r\n if (!(/^@?[a-z0-9\\.\\-]{6,25}$/.test(g.value))) {\r\n g.setErrors(Object.assign({'alias_not_valid': true}, g.errors));\r\n } else {\r\n this.backend.getAliasByName(g.value.replace('@', ''), (alias_status, alias_data) => {\r\n this.ngZone.run(() => {\r\n if (alias_status) {\r\n if (alias_data.address === this.variablesService.currentWallet.address) {\r\n g.setErrors(Object.assign({'address_same': true}, g.errors));\r\n }\r\n if (g.hasError('alias_not_valid')) {\r\n delete g.errors['alias_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n } else {\r\n g.setErrors(Object.assign({'alias_not_valid': true}, g.errors));\r\n }\r\n });\r\n });\r\n }\r\n return (g.hasError('alias_not_valid')) ? {'alias_not_valid': true} : null;\r\n }\r\n }\r\n return null;\r\n }]),\r\n amount: new FormControl(null, [Validators.required, (g: FormControl) => {\r\n if (parseFloat(g.value) === 0) {\r\n return {'amount_zero': true};\r\n }\r\n return null;\r\n }]),\r\n yourDeposit: new FormControl(null, Validators.required),\r\n sellerDeposit: new FormControl(null, Validators.required),\r\n sameAmount: new FormControl({value: false, disabled: false}),\r\n comment: new FormControl(''),\r\n fee: new FormControl(this.variablesService.default_fee),\r\n time: new FormControl({value: 12, disabled: false}),\r\n timeCancel: new FormControl({value: 12, disabled: false}),\r\n payment: new FormControl('')\r\n });\r\n\r\n additionalOptions = false;\r\n currentContract = null;\r\n heightAppEvent;\r\n showTimeSelect = false;\r\n showNullify = false;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private location: Location,\r\n private intToMoneyPipe: IntToMoneyPipe\r\n ) {\r\n }\r\n\r\n checkAndChangeHistory() {\r\n if (this.currentContract.state === 201) {\r\n this.historyBlock = this.variablesService.currentWallet.history.find(item => item.tx_type === 8 && item.contract[0].contract_id === this.currentContract.contract_id && item.contract[0].is_a === this.currentContract.is_a);\r\n } else if (this.currentContract.state === 601) {\r\n this.historyBlock = this.variablesService.currentWallet.history.find(item => item.tx_type === 12 && item.contract[0].contract_id === this.currentContract.contract_id && item.contract[0].is_a === this.currentContract.is_a);\r\n }\r\n }\r\n\r\n addressMouseDown(e) {\r\n if (e['button'] === 0 && this.purchaseForm.get('seller').value && this.purchaseForm.get('seller').value.indexOf('@') === 0) {\r\n this.isOpen = true;\r\n }\r\n }\r\n\r\n setAlias(alias) {\r\n this.purchaseForm.get('seller').setValue(alias);\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(targetElement) {\r\n if (targetElement.id !== 'purchase-seller' && this.isOpen) {\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(params => {\r\n this.currentWalletId = params['id'];\r\n });\r\n this.subRouting = this.route.params.subscribe(params => {\r\n if (params.hasOwnProperty('id')) {\r\n this.currentContract = this.variablesService.currentWallet.getContract(params['id']);\r\n this.purchaseForm.controls['seller'].setValidators([]);\r\n this.purchaseForm.updateValueAndValidity();\r\n this.purchaseForm.setValue({\r\n description: this.currentContract.private_detailes.t,\r\n seller: this.currentContract.private_detailes.b_addr,\r\n amount: this.intToMoneyPipe.transform(this.currentContract.private_detailes.to_pay),\r\n yourDeposit: this.intToMoneyPipe.transform(this.currentContract.private_detailes.a_pledge),\r\n sellerDeposit: this.intToMoneyPipe.transform(this.currentContract.private_detailes.b_pledge),\r\n sameAmount: this.currentContract.private_detailes.to_pay.isEqualTo(this.currentContract.private_detailes.b_pledge),\r\n comment: this.currentContract.private_detailes.c,\r\n fee: this.variablesService.default_fee,\r\n time: 12,\r\n timeCancel: 12,\r\n payment: this.currentContract.payment_id\r\n });\r\n this.purchaseForm.get('sameAmount').disable();\r\n this.newPurchase = false;\r\n\r\n if (this.currentContract.is_new) {\r\n if (this.currentContract.is_a && this.currentContract.state === 2) {\r\n this.currentContract.state = 120;\r\n }\r\n if (this.currentContract.state === 130 && this.currentContract.cancel_expiration_time !== 0 && this.currentContract.cancel_expiration_time < this.variablesService.exp_med_ts) {\r\n this.currentContract.state = 2;\r\n }\r\n this.variablesService.settings.viewedContracts = (this.variablesService.settings.viewedContracts) ? this.variablesService.settings.viewedContracts : [];\r\n let findViewedCont = false;\r\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\r\n if (this.variablesService.settings.viewedContracts[j].contract_id === this.currentContract.contract_id && this.variablesService.settings.viewedContracts[j].is_a === this.currentContract.is_a) {\r\n this.variablesService.settings.viewedContracts[j].state = this.currentContract.state;\r\n findViewedCont = true;\r\n break;\r\n }\r\n }\r\n if (!findViewedCont) {\r\n this.variablesService.settings.viewedContracts.push({\r\n contract_id: this.currentContract.contract_id,\r\n is_a: this.currentContract.is_a,\r\n state: this.currentContract.state\r\n });\r\n }\r\n this.currentContract.is_new = false;\r\n setTimeout(() => {\r\n this.variablesService.currentWallet.recountNewContracts();\r\n }, 0);\r\n }\r\n this.checkAndChangeHistory();\r\n } else {\r\n this.newPurchase = true;\r\n }\r\n });\r\n this.heightAppEvent = this.variablesService.getHeightAppEvent.subscribe((newHeight: number) => {\r\n if (this.currentContract && this.currentContract.state === 201 && this.currentContract.height !== 0 && (newHeight - this.currentContract.height) >= 10) {\r\n this.currentContract.state = 2;\r\n this.currentContract.is_new = true;\r\n this.variablesService.currentWallet.recountNewContracts();\r\n } else if (this.currentContract && this.currentContract.state === 601 && this.currentContract.height !== 0 && (newHeight - this.currentContract.height) >= 10) {\r\n this.currentContract.state = 6;\r\n this.currentContract.is_new = true;\r\n this.variablesService.currentWallet.recountNewContracts();\r\n }\r\n });\r\n }\r\n\r\n toggleOptions() {\r\n this.additionalOptions = !this.additionalOptions;\r\n }\r\n\r\n getProgressBarWidth() {\r\n let progress = '0';\r\n if (!this.newPurchase) {\r\n if (this.currentContract) {\r\n if (this.currentContract.state === 1) {\r\n progress = '10%';\r\n }\r\n if (this.currentContract.state === 201) {\r\n progress = '25%';\r\n }\r\n if ([120, 2].indexOf(this.currentContract.state) !== -1) {\r\n progress = '50%';\r\n }\r\n if ([5, 601].indexOf(this.currentContract.state) !== -1) {\r\n progress = '75%';\r\n }\r\n if ([110, 130, 140, 3, 4, 6].indexOf(this.currentContract.state) !== -1) {\r\n progress = '100%';\r\n }\r\n }\r\n }\r\n return progress;\r\n }\r\n\r\n sameAmountChange() {\r\n if (this.purchaseForm.get('sameAmount').value) {\r\n this.purchaseForm.get('sellerDeposit').clearValidators();\r\n this.purchaseForm.get('sellerDeposit').updateValueAndValidity();\r\n } else {\r\n this.purchaseForm.get('sellerDeposit').setValidators([Validators.required]);\r\n this.purchaseForm.get('sellerDeposit').updateValueAndValidity();\r\n }\r\n }\r\n\r\n createPurchase() {\r\n if (this.purchaseForm.valid) {\r\n const sellerDeposit = this.purchaseForm.get('sameAmount').value ? this.purchaseForm.get('amount').value : this.purchaseForm.get('sellerDeposit').value;\r\n if (this.purchaseForm.get('seller').value.indexOf('@') !== 0) {\r\n this.backend.createProposal(\r\n this.variablesService.currentWallet.wallet_id,\r\n this.purchaseForm.get('description').value,\r\n this.purchaseForm.get('comment').value,\r\n this.variablesService.currentWallet.address,\r\n this.purchaseForm.get('seller').value,\r\n this.purchaseForm.get('amount').value,\r\n this.purchaseForm.get('yourDeposit').value,\r\n sellerDeposit,\r\n this.purchaseForm.get('time').value,\r\n this.purchaseForm.get('payment').value,\r\n (create_status) => {\r\n if (create_status) {\r\n this.back();\r\n }\r\n });\r\n } else {\r\n this.backend.getAliasByName(this.purchaseForm.get('seller').value.replace('@', ''), (alias_status, alias_data) => {\r\n this.ngZone.run(() => {\r\n if (alias_status === false) {\r\n this.ngZone.run(() => {\r\n this.purchaseForm.get('seller').setErrors({'alias_not_valid': true});\r\n });\r\n } else {\r\n this.backend.createProposal(\r\n this.variablesService.currentWallet.wallet_id,\r\n this.purchaseForm.get('description').value,\r\n this.purchaseForm.get('comment').value,\r\n this.variablesService.currentWallet.address,\r\n alias_data.address,\r\n this.purchaseForm.get('amount').value,\r\n this.purchaseForm.get('yourDeposit').value,\r\n sellerDeposit,\r\n this.purchaseForm.get('time').value,\r\n this.purchaseForm.get('payment').value,\r\n (create_status) => {\r\n if (create_status) {\r\n this.back();\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n acceptState() {\r\n this.backend.acceptProposal(this.currentWalletId, this.currentContract.contract_id, (accept_status) => {\r\n if (accept_status) {\r\n this.modalService.prepareModal('info', 'PURCHASE.ACCEPT_STATE_WAIT_BIG');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n ignoredContract() {\r\n this.variablesService.settings.notViewedContracts = (this.variablesService.settings.notViewedContracts) ? this.variablesService.settings.notViewedContracts : [];\r\n let findViewedCont = false;\r\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\r\n if (this.variablesService.settings.notViewedContracts[j].contract_id === this.currentContract.contract_id && this.variablesService.settings.notViewedContracts[j].is_a === this.currentContract.is_a) {\r\n this.variablesService.settings.notViewedContracts[j].state = 110;\r\n this.variablesService.settings.notViewedContracts[j].time = this.currentContract.expiration_time;\r\n findViewedCont = true;\r\n break;\r\n }\r\n }\r\n if (!findViewedCont) {\r\n this.variablesService.settings.notViewedContracts.push({\r\n contract_id: this.currentContract.contract_id,\r\n is_a: this.currentContract.is_a,\r\n state: 110,\r\n time: this.currentContract.expiration_time\r\n });\r\n }\r\n this.currentContract.is_new = true;\r\n this.currentContract.state = 110;\r\n this.currentContract.time = this.currentContract.expiration_time;\r\n\r\n this.variablesService.currentWallet.recountNewContracts();\r\n this.modalService.prepareModal('info', 'PURCHASE.IGNORED_ACCEPT');\r\n this.back();\r\n }\r\n\r\n productNotGot() {\r\n this.backend.releaseProposal(this.currentWalletId, this.currentContract.contract_id, 'REL_B', (release_status) => {\r\n if (release_status) {\r\n this.modalService.prepareModal('info', 'PURCHASE.BURN_PROPOSAL');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n dealsDetailsFinish() {\r\n this.backend.releaseProposal(this.currentWalletId, this.currentContract.contract_id, 'REL_N', (release_status) => {\r\n if (release_status) {\r\n this.modalService.prepareModal('success', 'PURCHASE.SUCCESS_FINISH_PROPOSAL');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n dealsDetailsCancel() {\r\n this.backend.requestCancelContract(this.currentWalletId, this.currentContract.contract_id, this.purchaseForm.get('timeCancel').value, (cancel_status) => {\r\n if (cancel_status) {\r\n this.modalService.prepareModal('info', 'PURCHASE.SEND_CANCEL_PROPOSAL');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n dealsDetailsDontCanceling() {\r\n this.variablesService.settings.notViewedContracts = this.variablesService.settings.notViewedContracts ? this.variablesService.settings.notViewedContracts : [];\r\n let findViewedCont = false;\r\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\r\n if (this.variablesService.settings.notViewedContracts[j].contract_id === this.currentContract.contract_id && this.variablesService.settings.notViewedContracts[j].is_a === this.currentContract.is_a) {\r\n this.variablesService.settings.notViewedContracts[j].state = 130;\r\n this.variablesService.settings.notViewedContracts[j].time = this.currentContract.cancel_expiration_time;\r\n findViewedCont = true;\r\n break;\r\n }\r\n }\r\n if (!findViewedCont) {\r\n this.variablesService.settings.notViewedContracts.push({\r\n contract_id: this.currentContract.contract_id,\r\n is_a: this.currentContract.is_a,\r\n state: 130,\r\n time: this.currentContract.cancel_expiration_time\r\n });\r\n }\r\n this.currentContract.is_new = true;\r\n this.currentContract.state = 130;\r\n this.currentContract.time = this.currentContract.cancel_expiration_time;\r\n this.variablesService.currentWallet.recountNewContracts();\r\n this.modalService.prepareModal('info', 'PURCHASE.IGNORED_CANCEL');\r\n this.back();\r\n }\r\n\r\n dealsDetailsSellerCancel() {\r\n this.backend.acceptCancelContract(this.currentWalletId, this.currentContract.contract_id, (accept_status) => {\r\n if (accept_status) {\r\n this.modalService.prepareModal('info', 'PURCHASE.DEALS_CANCELED_WAIT');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n this.subRouting.unsubscribe();\r\n this.heightAppEvent.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n \\\"qr-code\\\"\\r\\n
\\r\\n
{{variablesService.currentWallet.address}}
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.wrap-qr {\\n display: flex;\\n flex-direction: column;\\n align-items: center; }\\n\\n.wrap-qr img {\\n margin: 4rem 0; }\\n\\n.wrap-qr .wrap-address {\\n display: flex;\\n align-items: center;\\n font-size: 1.4rem;\\n line-height: 2.7rem; }\\n\\n.wrap-qr .wrap-address .btn-copy-address {\\n margin-left: 1.2rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.wrap-qr .wrap-address .btn-copy-address.copy {\\n -webkit-mask: url('copy.svg') no-repeat center;\\n mask: url('copy.svg') no-repeat center; }\\n\\n.wrap-qr .wrap-address .btn-copy-address.copy:hover {\\n opacity: 0.75; }\\n\\n.wrap-qr .wrap-address .btn-copy-address.copied {\\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\\n mask: url('complete-testwallet.svg') no-repeat center; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVjZWl2ZS9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxyZWNlaXZlXFxyZWNlaXZlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixtQkFBbUIsRUFBQTs7QUFIckI7SUFNSSxjQUFjLEVBQUE7O0FBTmxCO0lBVUksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsbUJBQW1CLEVBQUE7O0FBYnZCO01BZ0JNLG1CQUFtQjtNQUNuQixhQUFhO01BQ2IsY0FBYyxFQUFBOztBQWxCcEI7UUFxQlEsOENBQXVEO2dCQUF2RCxzQ0FBdUQsRUFBQTs7QUFyQi9EO1VBd0JVLGFBQWEsRUFBQTs7QUF4QnZCO1FBNkJRLDZEQUFzRTtnQkFBdEUscURBQXNFLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9yZWNlaXZlL3JlY2VpdmUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi53cmFwLXFyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgaW1nIHtcclxuICAgIG1hcmdpbjogNHJlbSAwO1xyXG4gIH1cclxuXHJcbiAgLndyYXAtYWRkcmVzcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuXHJcbiAgICAuYnRuLWNvcHktYWRkcmVzcyB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07XHJcbiAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgIGhlaWdodDogMS43cmVtO1xyXG5cclxuICAgICAgJi5jb3B5IHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2NvcHkuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgIG9wYWNpdHk6IDAuNzU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmNvcGllZCB7XHJcbiAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9jb21wbGV0ZS10ZXN0d2FsbGV0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */\"","import {Component, OnInit, OnDestroy} from '@angular/core';\r\nimport QRCode from 'qrcode';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {RCV_ADDR_QR_SCALE} from '../_shared/constants';\r\n\r\n@Component({\r\n selector: 'app-receive',\r\n templateUrl: './receive.component.html',\r\n styleUrls: ['./receive.component.scss']\r\n})\r\nexport class ReceiveComponent implements OnInit, OnDestroy {\r\n qrImageSrc: string;\r\n parentRouting;\r\n copyAnimation = false;\r\n copyAnimationTimeout;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private backend: BackendService,\r\n public variablesService: VariablesService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(() => {\r\n QRCode.toDataURL(this.variablesService.currentWallet.address, {\r\n width: 106 * RCV_ADDR_QR_SCALE,\r\n height: 106 * RCV_ADDR_QR_SCALE\r\n }).then(url => {\r\n this.qrImageSrc = url;\r\n }).catch(err => {\r\n console.error(err);\r\n });\r\n });\r\n }\r\n\r\n public copyAddress() {\r\n this.backend.setClipboard(this.variablesService.currentWallet.address);\r\n this.copyAnimation = true;\r\n this.copyAnimationTimeout = window.setTimeout(() => {\r\n this.copyAnimation = false;\r\n }, 2000);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n clearTimeout(this.copyAnimationTimeout);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\\r\\n {{ 'BREADCRUMBS.RESTORE_WALLET' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\\r\\n
\\r\\n
\\r\\n
= variablesService.maxWalletNameLength\\\">\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.KEY_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.KEY_NOT_VALID' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.INCORRECT_PASSWORD' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'RESTORE_WALLET.OK' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \":host {\\n position: relative; }\\n\\n.form-restore {\\n margin: 2.4rem 0;\\n width: 100%; }\\n\\n.form-restore .input-block.half-block {\\n width: 50%; }\\n\\n.form-restore .wrap-buttons {\\n display: flex;\\n margin: 2.5rem -0.7rem;\\n width: 50%; }\\n\\n.form-restore .wrap-buttons button {\\n margin: 0 0.7rem; }\\n\\n.form-restore .wrap-buttons button.transparent-button {\\n flex-basis: 50%; }\\n\\n.form-restore .wrap-buttons button.select-button {\\n flex-basis: 60%; }\\n\\n.form-restore .wrap-buttons button.create-button {\\n flex: 1 1 50%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVzdG9yZS13YWxsZXQvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxccmVzdG9yZS13YWxsZXRcXHJlc3RvcmUtd2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVcsRUFBQTs7QUFGYjtJQU9NLFVBQVUsRUFBQTs7QUFQaEI7SUFZSSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLFVBQVUsRUFBQTs7QUFkZDtNQWlCTSxnQkFBZ0IsRUFBQTs7QUFqQnRCO1FBb0JRLGVBQWUsRUFBQTs7QUFwQnZCO1FBd0JRLGVBQWUsRUFBQTs7QUF4QnZCO1FBNEJRLGFBQWEsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3Jlc3RvcmUtd2FsbGV0L3Jlc3RvcmUtd2FsbGV0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmZvcm0tcmVzdG9yZSB7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgLmlucHV0LWJsb2NrIHtcclxuXHJcbiAgICAmLmhhbGYtYmxvY2sge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLndyYXAtYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luOiAyLjVyZW0gLTAuN3JlbTtcclxuICAgIHdpZHRoOiA1MCU7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgbWFyZ2luOiAwIDAuN3JlbTtcclxuXHJcbiAgICAgICYudHJhbnNwYXJlbnQtYnV0dG9uIHtcclxuICAgICAgICBmbGV4LWJhc2lzOiA1MCU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuc2VsZWN0LWJ1dHRvbiB7XHJcbiAgICAgICAgZmxleC1iYXNpczogNjAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmNyZWF0ZS1idXR0b24ge1xyXG4gICAgICAgIGZsZXg6IDEgMSA1MCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { ModalService } from '../_helpers/services/modal.service';\r\nimport { Wallet } from '../_helpers/models/wallet.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subject } from 'rxjs/internal/Subject';\r\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-restore-wallet',\r\n templateUrl: './restore-wallet.component.html',\r\n styleUrls: ['./restore-wallet.component.scss'],\r\n})\r\nexport class RestoreWalletComponent implements OnInit, OnDestroy {\r\n restoreForm = new FormGroup(\r\n {\r\n name: new FormControl('', [\r\n Validators.required,\r\n (g: FormControl) => {\r\n for (let i = 0; i < this.variablesService.wallets.length; i++) {\r\n if (g.value === this.variablesService.wallets[i].name) {\r\n return { duplicate: true };\r\n }\r\n }\r\n return null;\r\n },\r\n ]),\r\n key: new FormControl('', Validators.required),\r\n password: new FormControl(\r\n '',\r\n Validators.pattern(this.variablesService.pattern)\r\n ),\r\n confirm: new FormControl(''),\r\n seedPassword: new FormControl('', Validators.pattern(this.variablesService.pattern)),\r\n },\r\n function (g: FormGroup) {\r\n return g.get('password').value === g.get('confirm').value\r\n ? null\r\n : { confirm_mismatch: true };\r\n }\r\n );\r\n\r\n wallet = {\r\n id: '',\r\n };\r\n\r\n walletSaved = false;\r\n walletSavedName = '';\r\n progressWidth = '9rem';\r\n seedPhraseInfo = null;\r\n unsubscribeAll = new Subject();\r\n\r\n constructor(\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.checkValidSeedPhrasePassword();\r\n this.changeDetectionSeedPhrasePassword();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next(true);\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n changeDetectionSeedPhrasePassword() {\r\n this.restoreForm.controls.seedPassword.valueChanges\r\n .pipe(debounceTime(0), distinctUntilChanged(), takeUntil(this.unsubscribeAll))\r\n .subscribe(() => {\r\n this.checkValidSeedPhrasePassword();\r\n });\r\n this.restoreForm.controls.key.valueChanges\r\n .pipe(debounceTime(0), distinctUntilChanged(), takeUntil(this.unsubscribeAll))\r\n .subscribe(() => {\r\n this.checkValidSeedPhrasePassword();\r\n });\r\n }\r\n\r\n checkValidSeedPhrasePassword() {\r\n const seed_password = this.restoreForm.controls.seedPassword.value;\r\n const seed_phrase = this.restoreForm.controls.key.value;\r\n this.backend.getSeedPhraseInfo({seed_phrase, seed_password}, (status, data) => {\r\n this.seedPhraseInfo = data;\r\n });\r\n }\r\n\r\n createWallet() {\r\n this.ngZone.run(() => {\r\n this.progressWidth = '100%';\r\n this.runWallet();\r\n });\r\n }\r\n\r\n saveWallet() {\r\n if (\r\n this.restoreForm.valid &&\r\n this.restoreForm.get('name').value.length <=\r\n this.variablesService.maxWalletNameLength\r\n ) {\r\n this.backend.isValidRestoreWalletText(\r\n {\r\n seed_phrase: this.restoreForm.get('key').value,\r\n seed_password: this.restoreForm.get('seedPassword').value,\r\n },\r\n (valid_status, valid_data) => {\r\n if (valid_data !== 'TRUE') {\r\n this.ngZone.run(() => {\r\n this.restoreForm.get('key').setErrors({ key_not_valid: true });\r\n });\r\n } else {\r\n this.backend.saveFileDialog(\r\n this.translate.instant('RESTORE_WALLET.CHOOSE_PATH'),\r\n '*',\r\n this.variablesService.settings.default_path,\r\n (save_status, save_data) => {\r\n if (save_status) {\r\n this.variablesService.settings.default_path = save_data.path.substr(\r\n 0,\r\n save_data.path.lastIndexOf('/')\r\n );\r\n this.walletSavedName = save_data.path.substr(\r\n save_data.path.lastIndexOf('/') + 1,\r\n save_data.path.length - 1\r\n );\r\n this.backend.restoreWallet(\r\n save_data.path,\r\n this.restoreForm.get('password').value,\r\n this.restoreForm.get('key').value,\r\n this.restoreForm.get('seedPassword').value,\r\n (restore_status, restore_data) => {\r\n if (restore_status) {\r\n this.wallet.id = restore_data.wallet_id;\r\n this.variablesService.opening_wallet = new Wallet(\r\n restore_data.wallet_id,\r\n this.restoreForm.get('name').value,\r\n this.restoreForm.get('password').value,\r\n restore_data['wi'].path,\r\n restore_data['wi'].address,\r\n restore_data['wi'].balance,\r\n restore_data['wi'].unlocked_balance,\r\n restore_data['wi'].mined_total,\r\n restore_data['wi'].tracking_hey\r\n );\r\n this.variablesService.opening_wallet.is_auditable =\r\n restore_data['wi'].is_auditable;\r\n this.variablesService.opening_wallet.is_watch_only =\r\n restore_data['wi'].is_watch_only;\r\n this.variablesService.opening_wallet.currentPage = 1;\r\n this.variablesService.opening_wallet.alias = this.backend.getWalletAlias(\r\n this.variablesService.opening_wallet.address\r\n );\r\n this.variablesService.opening_wallet.pages = new Array(\r\n 1\r\n ).fill(1);\r\n this.variablesService.opening_wallet.totalPages = 1;\r\n this.variablesService.opening_wallet.currentPage = 1;\r\n this.variablesService.opening_wallet.total_history_item = 0;\r\n this.variablesService.opening_wallet.restore = true;\r\n if (\r\n restore_data.recent_history &&\r\n restore_data.recent_history.history\r\n ) {\r\n this.variablesService.opening_wallet.totalPages = Math.ceil(\r\n restore_data.recent_history.total_history_items /\r\n this.variablesService.count\r\n );\r\n this.variablesService.opening_wallet.totalPages >\r\n this.variablesService.maxPages\r\n ? (this.variablesService.opening_wallet.pages = new Array(\r\n 5\r\n )\r\n .fill(1)\r\n .map((value, index) => value + index))\r\n : (this.variablesService.opening_wallet.pages = new Array(\r\n this.variablesService.opening_wallet.totalPages\r\n )\r\n .fill(1)\r\n .map((value, index) => value + index));\r\n this.variablesService.opening_wallet.prepareHistory(\r\n restore_data.recent_history.history\r\n );\r\n }\r\n this.backend.getContracts(\r\n this.variablesService.opening_wallet.wallet_id,\r\n (contracts_status, contracts_data) => {\r\n if (\r\n contracts_status &&\r\n contracts_data.hasOwnProperty('contracts')\r\n ) {\r\n this.ngZone.run(() => {\r\n this.variablesService.opening_wallet.prepareContractsAfterOpen(\r\n contracts_data.contracts,\r\n this.variablesService.exp_med_ts,\r\n this.variablesService.height_app,\r\n this.variablesService.settings\r\n .viewedContracts,\r\n this.variablesService.settings\r\n .notViewedContracts\r\n );\r\n });\r\n }\r\n }\r\n );\r\n this.ngZone.run(() => {\r\n this.walletSaved = true;\r\n this.progressWidth = '50%';\r\n });\r\n } else {\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'RESTORE_WALLET.NOT_CORRECT_FILE_OR_PASSWORD'\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n runWallet() {\r\n // add flag when wallet was restored form seed\r\n this.variablesService.after_sync_request[this.wallet.id] = true;\r\n let exists = false;\r\n this.variablesService.wallets.forEach((wallet) => {\r\n if (wallet.address === this.variablesService.opening_wallet.address) {\r\n exists = true;\r\n }\r\n });\r\n if (!exists) {\r\n this.backend.runWallet(this.wallet.id, (run_status, run_data) => {\r\n if (run_status) {\r\n this.variablesService.wallets.push(\r\n this.variablesService.opening_wallet\r\n );\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet.id]);\r\n });\r\n } else {\r\n console.log(run_data['error_code']);\r\n }\r\n });\r\n } else {\r\n this.variablesService.opening_wallet = null;\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN'\r\n );\r\n this.backend.closeWallet(this.wallet.id, () => {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\\r\\n {{ 'BREADCRUMBS.SAVE_PHRASE' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n

{{ 'SEED_PHRASE.TITLE' | translate }}

\\r\\n\\r\\n
\\r\\n \\r\\n
{{(index + 1) + '. ' + word}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \":host {\\n position: relative; }\\n\\n.seed-phrase-title {\\n line-height: 2.2rem;\\n padding: 2.2rem 0; }\\n\\n.seed-phrase-content {\\n display: flex;\\n flex-direction: column;\\n flex-wrap: wrap;\\n padding: 1.4rem;\\n width: 100%;\\n height: 12rem; }\\n\\n.seed-phrase-content .word {\\n line-height: 2.2rem;\\n max-width: 13rem; }\\n\\n.wrap-buttons {\\n display: flex; }\\n\\n.wrap-buttons .seed-phrase-button {\\n margin: 2.8rem 0;\\n width: 25%;\\n min-width: 1.5rem; }\\n\\n.wrap-buttons .copy-button {\\n margin: 2.8rem 1rem;\\n width: 25%;\\n min-width: 1.5rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VlZC1waHJhc2UvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcc2VlZC1waHJhc2VcXHNlZWQtcGhyYXNlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsbUJBQW1CO0VBQ25CLGlCQUFpQixFQUFBOztBQUduQjtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsZUFBZTtFQUNmLGVBQWU7RUFDZixXQUFXO0VBQ1gsYUFBYSxFQUFBOztBQU5mO0lBU0ksbUJBQW1CO0lBQ25CLGdCQUFnQixFQUFBOztBQUlwQjtFQUNFLGFBQWEsRUFBQTs7QUFEZjtJQUlJLGdCQUFnQjtJQUNoQixVQUFVO0lBQ1YsaUJBQWlCLEVBQUE7O0FBTnJCO0lBVUksbUJBQW1CO0lBQ25CLFVBQVU7SUFDVixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NlZWQtcGhyYXNlL3NlZWQtcGhyYXNlLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLnNlZWQtcGhyYXNlLXRpdGxlIHtcclxuICBsaW5lLWhlaWdodDogMi4ycmVtO1xyXG4gIHBhZGRpbmc6IDIuMnJlbSAwO1xyXG59XHJcblxyXG4uc2VlZC1waHJhc2UtY29udGVudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBwYWRkaW5nOiAxLjRyZW07XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMnJlbTtcclxuXHJcbiAgLndvcmQge1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuMnJlbTtcclxuICAgIG1heC13aWR0aDogMTNyZW07XHJcbiAgfVxyXG59XHJcblxyXG4ud3JhcC1idXR0b25zIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAuc2VlZC1waHJhc2UtYnV0dG9uIHtcclxuICAgIG1hcmdpbjogMi44cmVtIDA7XHJcbiAgICB3aWR0aDogMjUlO1xyXG4gICAgbWluLXdpZHRoOiAxLjVyZW07XHJcbiAgfVxyXG5cclxuICAuY29weS1idXR0b24ge1xyXG4gICAgbWFyZ2luOiAyLjhyZW0gMXJlbTtcclxuICAgIHdpZHRoOiAyNSU7XHJcbiAgICBtaW4td2lkdGg6IDEuNXJlbTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ== */\"","import {Component, NgZone, OnDestroy, OnInit} from '@angular/core';\r\nimport {Location} from '@angular/common';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\n\r\n@Component({\r\n selector: 'app-seed-phrase',\r\n templateUrl: './seed-phrase.component.html',\r\n styleUrls: ['./seed-phrase.component.scss']\r\n})\r\nexport class SeedPhraseComponent implements OnInit, OnDestroy {\r\n\r\n queryRouting;\r\n seedPhrase = '';\r\n wallet_id: number;\r\n seedPhraseCopied = false;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private location: Location,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.wallet_id) {\r\n this.wallet_id = params.wallet_id;\r\n this.backend.getSmartWalletInfo(params.wallet_id, (status, data) => {\r\n if (data.hasOwnProperty('seed_phrase')) {\r\n this.ngZone.run(() => {\r\n this.seedPhrase = data['seed_phrase'].trim();\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n runWallet() {\r\n let exists = false;\r\n this.variablesService.wallets.forEach((wallet) => {\r\n if (wallet.address === this.variablesService.opening_wallet.address) {\r\n exists = true;\r\n }\r\n });\r\n if (!exists) {\r\n this.backend.runWallet(this.wallet_id, (run_status, run_data) => {\r\n if (run_status) {\r\n this.variablesService.wallets.push(this.variablesService.opening_wallet);\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet_id]);\r\n });\r\n } else {\r\n console.log(run_data['error_code']);\r\n }\r\n });\r\n } else {\r\n this.variablesService.opening_wallet = null;\r\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\r\n this.backend.closeWallet(this.wallet_id, () => {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n });\r\n }\r\n }\r\n\r\n copySeedPhrase() {\r\n this.backend.setClipboard(this.seedPhrase, () => {\r\n this.ngZone.run(() => {\r\n this.seedPhraseCopied = true;\r\n });\r\n });\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.queryRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n {{ 'CONFIRM.TITLE' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ 'CONFIRM.MESSAGE.SEND' | translate }}
\\r\\n
{{ +form.get('amount').value }} {{variablesService.defaultCurrency}}
\\r\\n
\\r\\n
\\r\\n
{{ 'CONFIRM.MESSAGE.FROM' | translate }}
\\r\\n
{{ variablesService.currentWallet.address }}
\\r\\n
\\r\\n
\\r\\n
{{ 'CONFIRM.MESSAGE.TO' | translate }}
\\r\\n
{{ form.get('address').value }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
{{ 'CONFIRM.MESSAGE.COMMENT' | translate }}
\\r\\n
{{ form.get('comment').value }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'LOGIN.FORM_ERRORS.PASS_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'LOGIN.FORM_ERRORS.MISMATCH' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: rgba(255, 255, 255, 0.25); }\\n\\n.modal {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n background-position: center;\\n background-size: 200%;\\n padding: 0.3rem 3rem 3rem 3rem;\\n width: 64rem; }\\n\\n.modal .title {\\n padding: 1.4rem 0;\\n font-size: 1.8rem;\\n line-height: 3rem; }\\n\\n.modal .content {\\n display: flex;\\n font-size: 1.4rem; }\\n\\n.modal .content .message-container {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n margin: 1.4rem 3rem 6.2rem 0; }\\n\\n.modal .content .message-container .message-block {\\n display: flex;\\n margin-bottom: 1rem; }\\n\\n.modal .content .message-container .message-block:first-child .message-label {\\n line-height: 4rem; }\\n\\n.modal .content .message-container .message-block:first-child .message-text {\\n line-height: 4rem; }\\n\\n.modal .content .message-container .message-block:last-child {\\n margin-bottom: 0; }\\n\\n.modal .content .message-container .message-block .message-label {\\n min-width: 6.7rem;\\n line-height: 2rem; }\\n\\n.modal .content .message-container .message-block .message-text {\\n overflow-wrap: break-word;\\n margin-left: 4.8rem;\\n width: 43.4rem;\\n line-height: 2rem; }\\n\\n.modal .content .message-container .message-block.confirm-master-pass {\\n width: 100%;\\n margin: 2rem 0; }\\n\\n.modal .content .message-container .message-block.confirm-master-pass .input-block {\\n width: 100%; }\\n\\n.modal .wrapper-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: space-between; }\\n\\n.modal .wrapper-buttons button {\\n width: 100%;\\n max-width: 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VuZC1tb2RhbC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzZW5kLW1vZGFsXFxzZW5kLW1vZGFsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUMsRUFBQTs7QUFFdkM7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QiwyQkFBMkI7RUFDM0IscUJBQXFCO0VBQ3JCLDhCQUE4QjtFQUM5QixZQUFZLEVBQUE7O0FBUGQ7SUFVSSxpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQixFQUFBOztBQVpyQjtJQWdCSSxhQUFhO0lBQ2IsaUJBQWlCLEVBQUE7O0FBakJyQjtNQW9CTSxhQUFhO01BQ2Isc0JBQXNCO01BQ3RCLHVCQUF1QjtNQUN2Qix1QkFBdUI7TUFDdkIsNEJBQTRCLEVBQUE7O0FBeEJsQztRQTJCUSxhQUFhO1FBQ2IsbUJBQW1CLEVBQUE7O0FBNUIzQjtVQWlDWSxpQkFBaUIsRUFBQTs7QUFqQzdCO1VBcUNZLGlCQUFpQixFQUFBOztBQXJDN0I7VUEwQ1UsZ0JBQWdCLEVBQUE7O0FBMUMxQjtVQThDVSxpQkFBaUI7VUFDakIsaUJBQWlCLEVBQUE7O0FBL0MzQjtVQW1EVSx5QkFBeUI7VUFDekIsbUJBQW1CO1VBQ25CLGNBQWM7VUFDZCxpQkFBaUIsRUFBQTs7QUF0RDNCO1VBMERVLFdBQVc7VUFDWCxjQUFjLEVBQUE7O0FBM0R4QjtZQTZEWSxXQUFXLEVBQUE7O0FBN0R2QjtJQXFFSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4QixFQUFBOztBQXZFbEM7TUEwRU0sV0FBVztNQUNYLGdCQUFnQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2VuZC1tb2RhbC9zZW5kLW1vZGFsLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XHJcbn1cclxuLm1vZGFsIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCU7XHJcbiAgcGFkZGluZzogMC4zcmVtIDNyZW0gM3JlbSAzcmVtO1xyXG4gIHdpZHRoOiA2NHJlbTtcclxuXHJcbiAgLnRpdGxlIHtcclxuICAgIHBhZGRpbmc6IDEuNHJlbSAwO1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICBsaW5lLWhlaWdodDogM3JlbTtcclxuICB9XHJcblxyXG4gIC5jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmb250LXNpemU6IDEuNHJlbTtcclxuXHJcbiAgICAubWVzc2FnZS1jb250YWluZXIge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbjogMS40cmVtIDNyZW0gNi4ycmVtIDA7XHJcblxyXG4gICAgICAubWVzc2FnZS1ibG9jayB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuXHJcbiAgICAgICAgICAubWVzc2FnZS1sYWJlbCB7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0cmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5tZXNzYWdlLXRleHQge1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNHJlbTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1lc3NhZ2UtbGFiZWwge1xyXG4gICAgICAgICAgbWluLXdpZHRoOiA2LjdyZW07XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMnJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tZXNzYWdlLXRleHQge1xyXG4gICAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0LjhyZW07XHJcbiAgICAgICAgICB3aWR0aDogNDMuNHJlbTtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5jb25maXJtLW1hc3Rlci1wYXNzIHtcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgbWFyZ2luOiAycmVtIDA7XHJcbiAgICAgICAgICAuaW5wdXQtYmxvY2sge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53cmFwcGVyLWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0= */\"","import { Component, OnInit, Output, EventEmitter, Input} from '@angular/core';\r\nimport {FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-send-modal',\r\n templateUrl: './send-modal.component.html',\r\n styleUrls: ['./send-modal.component.scss']\r\n})\r\nexport class SendModalComponent implements OnInit {\r\n\r\n confirmForm = new FormGroup({\r\n password: new FormControl('')\r\n });\r\n\r\n @Input() form: FormGroup;\r\n @Output() confirmed: EventEmitter = new EventEmitter();\r\n\r\n constructor(\r\n public variablesService: VariablesService,\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n if(this.variablesService.appPass) {\r\n this.confirmForm.controls['password'].setValidators([Validators.required]);\r\n this.confirmForm.updateValueAndValidity();\r\n }\r\n }\r\n\r\n confirm() {\r\n if(this.variablesService.appPass) {\r\n if (this.confirmForm.controls['password'].value === '') {\r\n this.confirmForm.controls['password'].setErrors({requiredPass: true});\r\n return;\r\n }\r\n this.confirmForm.controls['password'].setErrors({requiredPass: false});\r\n if (this.variablesService.appPass === this.confirmForm.controls['password'].value) {\r\n this.confirmed.emit(true);\r\n } else {\r\n this.confirmForm.controls['password'].setErrors({passwordNotMatch: true})\r\n }\r\n } else {\r\n this.confirmed.emit(true);\r\n }\r\n }\r\n\r\n onClose() {\r\n this.confirmed.emit(false);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
{{item.name}}
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.ADDRESS_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.ADDRESS_NOT_VALID' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.ALIAS_NOT_VALID' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
= variablesService.maxCommentLength\\\">\\r\\n {{ 'SEND.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.FEE_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.FEE_MINIMUM' | translate : {fee: variablesService.default_fee} }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.form-send .input-blocks-row {\\n display: flex; }\\n\\n.form-send .input-blocks-row > div {\\n flex-basis: 50%; }\\n\\n.form-send .input-blocks-row > div:first-child {\\n margin-right: 1.5rem; }\\n\\n.form-send .input-blocks-row > div:last-child {\\n margin-left: 1.5rem; }\\n\\n.form-send .send-select {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n font-size: 1.3rem;\\n line-height: 1.3rem;\\n margin: 1.5rem 0 0;\\n padding: 0;\\n width: 100%;\\n max-width: 15rem;\\n height: 1.3rem; }\\n\\n.form-send .send-select .arrow {\\n margin-left: 1rem;\\n width: 0.8rem;\\n height: 0.8rem; }\\n\\n.form-send .send-select .arrow.down {\\n -webkit-mask: url('arrow-down.svg') no-repeat center;\\n mask: url('arrow-down.svg') no-repeat center; }\\n\\n.form-send .send-select .arrow.up {\\n -webkit-mask: url('arrow-up.svg') no-repeat center;\\n mask: url('arrow-up.svg') no-repeat center; }\\n\\n.form-send .additional-details {\\n display: flex;\\n margin-top: 1.5rem;\\n padding: 0.5rem 0 2rem; }\\n\\n.form-send .additional-details > div {\\n flex-basis: 25%; }\\n\\n.form-send .additional-details > div:first-child {\\n padding-left: 1.5rem;\\n padding-right: 1rem; }\\n\\n.form-send .additional-details > div:last-child {\\n padding-left: 1rem;\\n padding-right: 1.5rem; }\\n\\n.form-send .additional-details .checkbox-block {\\n flex-basis: 50%; }\\n\\n.form-send .additional-details .checkbox-block > label {\\n top: 3.5rem; }\\n\\n.form-send .additional-details .checkbox-block.disabled-checkbox-block label {\\n cursor: not-allowed; }\\n\\n.form-send .additional-details .checkbox-block.disabled-checkbox-block label:before {\\n background-color: #556576;\\n border: 0.1rem solid #556576; }\\n\\n.form-send button {\\n margin: 2.4rem 0;\\n width: 100%;\\n max-width: 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VuZC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzZW5kXFxzZW5kLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBR0ksYUFBYSxFQUFBOztBQUhqQjtJQU1NLGVBQWUsRUFBQTs7QUFOckI7TUFTUSxvQkFBb0IsRUFBQTs7QUFUNUI7TUFhUSxtQkFBbUIsRUFBQTs7QUFiM0I7RUFtQkksYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLGNBQWMsRUFBQTs7QUE3QmxCO0lBZ0NNLGlCQUFpQjtJQUNqQixhQUFhO0lBQ2IsY0FBYyxFQUFBOztBQWxDcEI7TUFxQ1Esb0RBQTREO2NBQTVELDRDQUE0RCxFQUFBOztBQXJDcEU7TUF5Q1Esa0RBQTBEO2NBQTFELDBDQUEwRCxFQUFBOztBQXpDbEU7RUErQ0ksYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixzQkFBc0IsRUFBQTs7QUFqRDFCO0lBb0RNLGVBQWUsRUFBQTs7QUFwRHJCO01BdURRLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTs7QUF4RDNCO01BNERRLGtCQUFrQjtNQUNsQixxQkFBcUIsRUFBQTs7QUE3RDdCO0lBa0VNLGVBQWUsRUFBQTs7QUFsRXJCO01BcUVRLFdBQVcsRUFBQTs7QUFyRW5CO01BeUVVLG1CQUFtQixFQUFBOztBQXpFN0I7UUEyRVkseUJBQXlCO1FBQ3pCLDRCQUE0QixFQUFBOztBQTVFeEM7RUFvRkksZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NlbmQvc2VuZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmZvcm0tc2VuZCB7XHJcblxyXG4gIC5pbnB1dC1ibG9ja3Mtcm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgPiBkaXYge1xyXG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XHJcblxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2VuZC1zZWxlY3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcclxuICAgIG1hcmdpbjogMS41cmVtIDAgMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICBoZWlnaHQ6IDEuM3JlbTtcclxuXHJcbiAgICAuYXJyb3cge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgICAgd2lkdGg6IDAuOHJlbTtcclxuICAgICAgaGVpZ2h0OiAwLjhyZW07XHJcblxyXG4gICAgICAmLmRvd24ge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1kb3duLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi51cCB7XHJcbiAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Fycm93LXVwLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZGl0aW9uYWwtZGV0YWlscyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xyXG4gICAgcGFkZGluZzogMC41cmVtIDAgMnJlbTtcclxuXHJcbiAgICA+IGRpdiB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IDI1JTtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jaGVja2JveC1ibG9jayB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IDUwJTtcclxuXHJcbiAgICAgID4gbGFiZWwge1xyXG4gICAgICAgIHRvcDogMy41cmVtO1xyXG4gICAgICB9XHJcbiAgICAgICYuZGlzYWJsZWQtY2hlY2tib3gtYmxvY2sge1xyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICM1NTY1NzY7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidXR0b24ge1xyXG4gICAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAxNXJlbTtcclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, OnInit, OnDestroy, NgZone, HostListener, Input} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {BigNumber} from 'bignumber.js';\r\nimport {MIXIN} from '../_shared/constants'\r\n\r\n@Component({\r\n selector: 'app-send',\r\n templateUrl: './send.component.html',\r\n styleUrls: ['./send.component.scss']\r\n})\r\nexport class SendComponent implements OnInit, OnDestroy {\r\n\r\n isOpen = false;\r\n localAliases = [];\r\n isModalDialogVisible = false;\r\n hideWalletAddress = false;\r\n mixin: number;\r\n\r\n currentWalletId = null;\r\n parentRouting;\r\n sendForm = new FormGroup({\r\n address: new FormControl('', [Validators.required, (g: FormControl) => {\r\n this.localAliases = [];\r\n if (g.value) {\r\n if (g.value.indexOf('@') !== 0) {\r\n this.isOpen = false;\r\n this.backend.validateAddress(g.value, (valid_status) => {\r\n this.ngZone.run(() => {\r\n if (valid_status === false) {\r\n g.setErrors(Object.assign({'address_not_valid': true}, g.errors));\r\n } else {\r\n if (g.hasError('address_not_valid')) {\r\n delete g.errors['address_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n return (g.hasError('address_not_valid')) ? {'address_not_valid': true} : null;\r\n } else {\r\n this.isOpen = true;\r\n this.localAliases = this.variablesService.aliases.filter((item) => {\r\n return item.name.indexOf(g.value) > -1;\r\n });\r\n if (!(/^@?[a-z0-9\\.\\-]{6,25}$/.test(g.value))) {\r\n g.setErrors(Object.assign({'alias_not_valid': true}, g.errors));\r\n } else {\r\n this.backend.getAliasByName(g.value.replace('@', ''), (alias_status) => {\r\n this.ngZone.run(() => {\r\n if (alias_status) {\r\n if (g.hasError('alias_not_valid')) {\r\n delete g.errors['alias_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n } else {\r\n g.setErrors(Object.assign({'alias_not_valid': true}, g.errors));\r\n }\r\n });\r\n });\r\n }\r\n return (g.hasError('alias_not_valid')) ? {'alias_not_valid': true} : null;\r\n }\r\n }\r\n return null;\r\n }]),\r\n amount: new FormControl(null, [Validators.required, (g: FormControl) => {\r\n if (new BigNumber(g.value).eq(0)) {\r\n return {'zero': true};\r\n }\r\n return null;\r\n }]),\r\n comment: new FormControl(''),\r\n mixin: new FormControl(MIXIN, Validators.required),\r\n fee: new FormControl(this.variablesService.default_fee, [Validators.required, (g: FormControl) => {\r\n if ((new BigNumber(g.value)).isLessThan(this.variablesService.default_fee)) {\r\n return {'less_min': true};\r\n }\r\n return null;\r\n }]),\r\n hide: new FormControl(false)\r\n });\r\n additionalOptions = false;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {\r\n }\r\n\r\n addressMouseDown(e) {\r\n if (e['button'] === 0 && this.sendForm.get('address').value && this.sendForm.get('address').value.indexOf('@') === 0) {\r\n this.isOpen = true;\r\n }\r\n }\r\n\r\n setAlias(alias) {\r\n this.sendForm.get('address').setValue(alias);\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(targetElement) {\r\n if (targetElement.id !== 'send-address' && this.isOpen) {\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(params => {\r\n this.currentWalletId = params['id'];\r\n this.mixin = this.variablesService.currentWallet.send_data['mixin'] || MIXIN;\r\n if (this.variablesService.currentWallet.is_auditable) {\r\n this.mixin = 0;\r\n this.sendForm.controls['mixin'].disable();\r\n }\r\n this.hideWalletAddress = this.variablesService.currentWallet.is_auditable && !this.variablesService.currentWallet.is_watch_only;\r\n if (this.hideWalletAddress) {\r\n this.sendForm.controls['hide'].disable();\r\n }\r\n this.sendForm.reset({\r\n address: this.variablesService.currentWallet.send_data['address'],\r\n amount: this.variablesService.currentWallet.send_data['amount'],\r\n comment: this.variablesService.currentWallet.send_data['comment'],\r\n mixin: this.mixin,\r\n fee: this.variablesService.currentWallet.send_data['fee'] || this.variablesService.default_fee,\r\n hide: this.variablesService.currentWallet.send_data['hide'] || false\r\n });\r\n });\r\n }\r\n\r\n showDialog() {\r\n this.isModalDialogVisible = true;\r\n }\r\n\r\n confirmed(confirmed: boolean) {\r\n if (confirmed) {\r\n this.onSend();\r\n }\r\n this.isModalDialogVisible = false;\r\n }\r\n\r\n onSend() {\r\n if (this.sendForm.valid) {\r\n if (this.sendForm.get('address').value.indexOf('@') !== 0) {\r\n this.backend.validateAddress(this.sendForm.get('address').value, (valid_status) => {\r\n if (valid_status === false) {\r\n this.ngZone.run(() => {\r\n this.sendForm.get('address').setErrors({'address_not_valid': true});\r\n });\r\n } else {\r\n this.backend.sendMoney(\r\n this.currentWalletId,\r\n this.sendForm.get('address').value,\r\n this.sendForm.get('amount').value,\r\n this.sendForm.get('fee').value,\r\n this.sendForm.get('mixin').value,\r\n this.sendForm.get('comment').value,\r\n this.sendForm.get('hide').value,\r\n (send_status) => {\r\n if (send_status) {\r\n this.modalService.prepareModal('success', 'SEND.SUCCESS_SENT');\r\n this.variablesService.currentWallet.send_data = {address: null, amount: null, comment: null, mixin: null, fee: null, hide: null};\r\n this.sendForm.reset({address: null, amount: null, comment: null, mixin: this.mixin, fee: this.variablesService.default_fee, hide: false});\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n this.backend.getAliasByName(this.sendForm.get('address').value.replace('@', ''), (alias_status, alias_data) => {\r\n this.ngZone.run(() => {\r\n if (alias_status === false) {\r\n this.ngZone.run(() => {\r\n this.sendForm.get('address').setErrors({'alias_not_valid': true});\r\n });\r\n } else {\r\n this.backend.sendMoney(\r\n this.currentWalletId,\r\n alias_data.address, // this.sendForm.get('address').value,\r\n this.sendForm.get('amount').value,\r\n this.sendForm.get('fee').value,\r\n this.sendForm.get('mixin').value,\r\n this.sendForm.get('comment').value,\r\n this.sendForm.get('hide').value,\r\n (send_status) => {\r\n if (send_status) {\r\n this.modalService.prepareModal('success', 'SEND.SUCCESS_SENT');\r\n this.variablesService.currentWallet.send_data = {address: null, amount: null, comment: null, mixin: null, fee: null, hide: null};\r\n this.sendForm.reset({address: null, amount: null, comment: null, mixin: this.mixin, fee: this.variablesService.default_fee, hide: false});\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n toggleOptions() {\r\n this.additionalOptions = !this.additionalOptions;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n this.variablesService.currentWallet.send_data = {\r\n address: this.sendForm.get('address').value,\r\n amount: this.sendForm.get('amount').value,\r\n comment: this.sendForm.get('comment').value,\r\n mixin: this.sendForm.get('mixin').value,\r\n fee: this.sendForm.get('fee').value,\r\n hide: this.sendForm.get('hide').value\r\n };\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n

{{ 'SETTINGS.TITLE' | translate }}

\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{item.language | translate}}\\r\\n \\r\\n \\r\\n {{item.language | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{item.name | translate}}\\r\\n \\r\\n \\r\\n {{item.name | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n {{ 'SETTINGS.MASTER_PASSWORD.TITLE' | translate }}\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{ 'SETTINGS.FORM_ERRORS.PASS_NOT_MATCH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{ 'SETTINGS.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
{{ 'SETTINGS.LAST_BUILD' | translate : {value: currentBuild} }}
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \".head {\\n justify-content: flex-end; }\\n\\n.settings-title {\\n font-size: 1.7rem; }\\n\\n.theme-selection {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n margin: 2.4rem 0;\\n width: 50%; }\\n\\n.theme-selection .radio-block {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n font-size: 1.3rem;\\n line-height: 2.7rem; }\\n\\n.lock-selection {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n margin: 2.4rem 0;\\n width: 50%; }\\n\\n.lock-selection .lock-selection-title {\\n display: flex;\\n font-size: 1.5rem;\\n line-height: 2.7rem;\\n margin-bottom: 1rem; }\\n\\n.scale-selection {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 0 0 4rem;\\n width: 50%;\\n height: 0.5rem; }\\n\\n.scale-selection .button-block {\\n position: relative;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex: 1 0 auto;\\n margin: 0 0.2rem;\\n padding: 0;\\n height: 0.5rem; }\\n\\n.scale-selection .button-block .label {\\n position: absolute;\\n bottom: -1rem;\\n left: 50%;\\n transform: translate(-50%, 100%);\\n font-size: 1rem;\\n white-space: nowrap; }\\n\\n.master-password {\\n width: 50%; }\\n\\n.master-password .master-password-title {\\n display: flex;\\n font-size: 1.5rem;\\n line-height: 2.7rem;\\n margin-bottom: 1rem; }\\n\\n.master-password button {\\n margin: 2.5rem auto;\\n width: 100%;\\n max-width: 15rem; }\\n\\n.last-build {\\n font-size: 1rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2V0dGluZ3MvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcc2V0dGluZ3NcXHNldHRpbmdzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTs7QUFMWjtJQVFJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsMkJBQTJCO0lBQzNCLGlCQUFpQjtJQUNqQixtQkFBbUIsRUFBQTs7QUFJdkI7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLHVCQUF1QjtFQUN2QixnQkFBZ0I7RUFDaEIsVUFBVSxFQUFBOztBQUxaO0lBUUksYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsbUJBQW1CLEVBQUE7O0FBSXZCO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsaUJBQWlCO0VBQ2pCLFVBQVU7RUFDVixjQUFjLEVBQUE7O0FBTmhCO0lBU0ksa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLGNBQWMsRUFBQTs7QUFoQmxCO01BbUJNLGtCQUFrQjtNQUNsQixhQUFhO01BQ2IsU0FBUztNQUNULGdDQUFnQztNQUNoQyxlQUFlO01BQ2YsbUJBQW1CLEVBQUE7O0FBS3pCO0VBQ0UsVUFBVSxFQUFBOztBQURaO0lBSUksYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsbUJBQW1CLEVBQUE7O0FBUHZCO0lBV0ksbUJBQW1CO0lBQ25CLFdBQVc7SUFDWCxnQkFBZ0IsRUFBQTs7QUFJcEI7RUFDRSxlQUFlLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zZXR0aW5ncy9zZXR0aW5ncy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oZWFkIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4uc2V0dGluZ3MtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS43cmVtO1xyXG59XHJcblxyXG4udGhlbWUtc2VsZWN0aW9uIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICB3aWR0aDogNTAlO1xyXG5cclxuICAucmFkaW8tYmxvY2sge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07XHJcbiAgfVxyXG59XHJcblxyXG4ubG9jay1zZWxlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBtYXJnaW46IDIuNHJlbSAwO1xyXG4gIHdpZHRoOiA1MCU7XHJcblxyXG4gIC5sb2NrLXNlbGVjdGlvbi10aXRsZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5zY2FsZS1zZWxlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgcGFkZGluZzogMCAwIDRyZW07XHJcbiAgd2lkdGg6IDUwJTtcclxuICBoZWlnaHQ6IDAuNXJlbTtcclxuXHJcbiAgLmJ1dHRvbi1ibG9jayB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZmxleDogMSAwIGF1dG87XHJcbiAgICBtYXJnaW46IDAgMC4ycmVtO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGhlaWdodDogMC41cmVtO1xyXG5cclxuICAgIC5sYWJlbCB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAtMXJlbTtcclxuICAgICAgbGVmdDogNTAlO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAxMDAlKTtcclxuICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm1hc3Rlci1wYXNzd29yZCB7XHJcbiAgd2lkdGg6IDUwJTtcclxuXHJcbiAgLm1hc3Rlci1wYXNzd29yZC10aXRsZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBtYXJnaW46IDIuNXJlbSBhdXRvO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDE1cmVtO1xyXG4gIH1cclxufVxyXG5cclxuLmxhc3QtYnVpbGQge1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxufVxyXG4iXX0= */\"","import {Component, NgZone, OnInit, Renderer2} from '@angular/core';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport {Location} from '@angular/common';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport {UtilsService} from '../_helpers/services/utils.service';\r\n\r\n@Component({\r\n selector: 'app-settings',\r\n templateUrl: './settings.component.html',\r\n styleUrls: ['./settings.component.scss'],\r\n providers: [UtilsService]\r\n})\r\nexport class SettingsComponent implements OnInit {\r\n\r\n theme: string;\r\n scale: number;\r\n changeForm: any;\r\n languagesOptions = [\r\n {\r\n name: 'en',\r\n language: 'SETTINGS.LANGUAGE.EN'\r\n },\r\n {\r\n name: 'fr',\r\n language: 'SETTINGS.LANGUAGE.FR'\r\n },\r\n {\r\n name: 'de',\r\n language: 'SETTINGS.LANGUAGE.DE'\r\n },\r\n {\r\n name: 'it',\r\n language: 'SETTINGS.LANGUAGE.IT'\r\n },\r\n {\r\n name: 'pt',\r\n language: 'SETTINGS.LANGUAGE.PT'\r\n }\r\n ];\r\n appLockOptions = [\r\n {\r\n id: 5,\r\n name: 'SETTINGS.APP_LOCK.TIME1'\r\n },\r\n {\r\n id: 15,\r\n name: 'SETTINGS.APP_LOCK.TIME2'\r\n },\r\n {\r\n id: 60,\r\n name: 'SETTINGS.APP_LOCK.TIME3'\r\n },\r\n {\r\n id: 0,\r\n name: 'SETTINGS.APP_LOCK.TIME4'\r\n }\r\n ];\r\n appScaleOptions = [\r\n {\r\n id: 7.5,\r\n name: 'SETTINGS.SCALE.75'\r\n },\r\n {\r\n id: 10,\r\n name: 'SETTINGS.SCALE.100'\r\n },\r\n {\r\n id: 12.5,\r\n name: 'SETTINGS.SCALE.125'\r\n },\r\n {\r\n id: 15,\r\n name: 'SETTINGS.SCALE.150'\r\n }\r\n ];\r\n appLogOptions = [\r\n {\r\n id: -1\r\n },\r\n {\r\n id: 0\r\n },\r\n {\r\n id: 1\r\n },\r\n {\r\n id: 2\r\n },\r\n {\r\n id: 3\r\n },\r\n {\r\n id: 4\r\n }\r\n ];\r\n\r\n currentBuild = '';\r\n appPass: any;\r\n\r\n constructor(\r\n private renderer: Renderer2,\r\n public variablesService: VariablesService,\r\n private backend: BackendService,\r\n private location: Location,\r\n public translate: TranslateService,\r\n private ngZone: NgZone,\r\n private utilsService: UtilsService\r\n ) {\r\n this.theme = this.variablesService.settings.theme;\r\n this.scale = this.variablesService.settings.scale;\r\n this.changeForm = new FormGroup({\r\n password: new FormControl(''),\r\n new_password: new FormControl('', Validators.pattern(this.variablesService.pattern)),\r\n new_confirmation: new FormControl('')\r\n }, [(g: FormGroup) => {\r\n return g.get('new_password').value === g.get('new_confirmation').value ? null : {'confirm_mismatch': true};\r\n }, (g: FormGroup) => {\r\n if (this.variablesService.appPass) {\r\n return g.get('password').value === this.variablesService.appPass ? null : {'pass_mismatch': true};\r\n }\r\n return null;\r\n }]);\r\n }\r\n\r\n ngOnInit() {\r\n this.backend.getVersion((version, type) => {\r\n this.ngZone.run(() => {\r\n this.currentBuild = version;\r\n this.variablesService.testnet = false;\r\n if (type == 'testnet')\r\n {\r\n this.currentBuild += ' TESTNET';\r\n this.variablesService.testnet = true;\r\n }\r\n this.variablesService.networkType = type;\r\n });\r\n });\r\n }\r\n\r\n setTheme(theme) {\r\n this.renderer.removeClass(document.body, 'theme-' + this.theme);\r\n this.theme = theme;\r\n this.variablesService.settings.theme = this.theme;\r\n this.renderer.addClass(document.body, 'theme-' + this.theme);\r\n this.backend.storeAppData();\r\n }\r\n\r\n setScale(scale) {\r\n this.scale = scale;\r\n this.variablesService.settings.scale = this.scale;\r\n const width = this.utilsService.getMinWidthByScale(this.scale);\r\n const app = document.documentElement.querySelector('app-root');\r\n this.renderer.setStyle(app, 'min-width', width + 'px');\r\n this.renderer.setStyle(document.documentElement, 'font-size', this.scale + 'px');\r\n this.backend.storeAppData();\r\n }\r\n\r\n onSubmitChangePass() {\r\n if (this.changeForm.valid) {\r\n this.variablesService.appPass = this.changeForm.get('new_password').value;\r\n if (this.variablesService.appPass) {\r\n this.backend.setMasterPassword({pass: this.variablesService.appPass}, (status, data) => {\r\n if (status) {\r\n this.backend.storeSecureAppData({pass: this.variablesService.appPass});\r\n this.variablesService.appLogin = true;\r\n this.variablesService.dataIsLoaded = true;\r\n if (this.variablesService.settings.appLockTime) {\r\n this.variablesService.startCountdown();\r\n }\r\n } else {\r\n console.log(data['error_code']);\r\n }\r\n });\r\n } else {\r\n this.backend.dropSecureAppData();\r\n }\r\n this.changeForm.reset();\r\n }\r\n }\r\n\r\n onLockChange() {\r\n if (this.variablesService.appLogin && this.variablesService.settings.appLockTime) {\r\n this.variablesService.restartCountdown();\r\n }\r\n this.backend.storeAppData();\r\n }\r\n\r\n onLogChange() {\r\n this.backend.setLogLevel(this.variablesService.settings.appLog);\r\n this.backend.storeAppData();\r\n }\r\n\r\n onLanguageChange() {\r\n this.translate.use(this.variablesService.settings.language);\r\n this.backend.storeAppData();\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n

{{ 'SIDEBAR.TITLE' | translate }}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Auditable\\r\\n
\\r\\n
\\r\\n Watch-only\\r\\n
\\r\\n
\\r\\n Tracking\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n {{ 'SIDEBAR.LOG_OUT' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.OFFLINE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.SYNCING' | translate }} {{ variablesService.height_app }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.height_max }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ONLINE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.DOWNLOADING' | translate }} {{ variablesService.downloaded }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.total }}{{ 'SIDEBAR.SYNCHRONIZATION.MB' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ variablesService.sync.progress_value_text }}%
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ variablesService.download.progress_value_text }}%
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.STANDARD' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT' | translate }}\\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.CRITICAL' | translate }}\\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.TIME' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n flex: 0 0 25rem;\\n padding: 0 3rem;\\n max-width: 25rem; }\\n\\n.animated {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin-right: 1.2rem; }\\n\\n.animated::ng-deep svg {\\n width: 2rem;\\n height: 2rem; }\\n\\n.animated::ng-deep svg path, .animated::ng-deep svg circle, .animated::ng-deep svg polygon {\\n fill: #4db1ff; }\\n\\n.wallet-type {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 7px;\\n height: 100%;\\n background-color: transparent;\\n transition: all ease .3s;\\n overflow: hidden; }\\n\\n.wallet-type:hover {\\n width: 28px; }\\n\\n.wallet-type .content {\\n height: 100%;\\n padding: 7px;\\n font-size: 12px;\\n line-height: 14px;\\n font-weight: 500;\\n color: #ffffff;\\n text-decoration: none;\\n text-transform: capitalize;\\n transition: all ease .3s;\\n writing-mode: vertical-rl;\\n text-orientation: mixed; }\\n\\n.wallet-type .content.auditable {\\n background-color: #5cda9d; }\\n\\n.wallet-type .content.watch-only, .wallet-type .content.auditable-watch-only {\\n background-color: #8686ff; }\\n\\n.sidebar-accounts {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n flex: 1 1 auto; }\\n\\n.sidebar-accounts .sidebar-accounts-header {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n flex: 0 0 auto;\\n height: 8rem;\\n font-weight: 400; }\\n\\n.sidebar-accounts .sidebar-accounts-header h3 {\\n font-size: 1.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-header button {\\n background: transparent;\\n border: none;\\n outline: none; }\\n\\n.sidebar-accounts .sidebar-accounts-list {\\n display: flex;\\n flex-direction: column;\\n flex: 1 1 auto;\\n margin: 0 -3rem;\\n overflow-y: auto; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n flex-shrink: 0;\\n cursor: pointer;\\n padding: 2.5rem 3rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper {\\n display: flex;\\n justify-content: flex-end;\\n position: relative; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button {\\n display: flex;\\n position: absolute;\\n top: -12px;\\n right: -18px;\\n padding: 0;\\n height: auto;\\n background: transparent;\\n border: none; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button .icon {\\n width: 1.3rem;\\n height: 1.3rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button .icon.close-wallet {\\n background-color: transparent; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button .icon.close-wallet::after {\\n display: block;\\n content: '';\\n background: url('close-wallet-blue.svg') no-repeat center;\\n width: 13px;\\n height: 13px; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row {\\n display: flex;\\n align-items: center;\\n justify-content: space-between; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-title-balance {\\n line-height: 2.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-title-balance .title {\\n font-size: 1.5rem;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-title-balance .balance {\\n font-size: 1.8rem;\\n font-weight: 600;\\n white-space: nowrap; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias {\\n font-size: 1.3rem;\\n line-height: 3.4rem;\\n margin-bottom: 0.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .name {\\n display: flex;\\n align-items: center;\\n flex-shrink: 1;\\n line-height: 1.6rem;\\n padding-right: 1rem;\\n overflow: hidden; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .name span {\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .price {\\n flex-shrink: 0; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .icon {\\n margin-left: 0.5rem;\\n width: 1.3rem;\\n height: 1.3rem;\\n border-radius: 50%;\\n color: #1a1a1a;\\n font-size: 9px;\\n font-weight: 700;\\n line-height: 9px;\\n padding-right: 1px;\\n display: flex;\\n align-items: center;\\n justify-content: center; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-staking {\\n line-height: 2.9rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-staking .text {\\n font-size: 1.3rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-messages {\\n line-height: 2.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-messages .text {\\n font-size: 1.3rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-messages .indicator {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 1rem;\\n font-size: 1rem;\\n min-width: 2.4rem;\\n height: 1.6rem;\\n padding: 0 0.5rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\\n flex-direction: column;\\n height: 5.6rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .status {\\n align-self: flex-start;\\n font-size: 1.3rem;\\n line-height: 2.6rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container {\\n display: flex;\\n margin: 0.4rem 0;\\n height: 0.7rem;\\n width: 100%; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container .progress-bar {\\n flex: 1 0 auto; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container .progress-bar .fill {\\n height: 100%; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container .progress-percent {\\n flex: 0 0 auto;\\n font-size: 1.3rem;\\n line-height: 0.7rem;\\n padding-left: 0.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account:focus {\\n outline: none; }\\n\\n.sidebar-accounts:after {\\n content: '';\\n position: absolute;\\n bottom: 0;\\n left: -3rem;\\n width: calc(100% + 6rem);\\n height: 5rem; }\\n\\n.sidebar-settings {\\n flex: 0 0 auto;\\n padding-bottom: 1rem; }\\n\\n.sidebar-settings .wrap-button {\\n margin: 0 -3rem; }\\n\\n.sidebar-settings .wrap-button button {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n font-weight: 400;\\n line-height: 3rem;\\n outline: none;\\n padding: 0 3rem;\\n width: 100%; }\\n\\n.sidebar-settings .wrap-button button.disabled {\\n cursor: url('not-allowed.svg'), not-allowed; }\\n\\n.sidebar-settings .wrap-button button .icon {\\n margin-right: 1.2rem;\\n width: 2rem;\\n height: 2rem; }\\n\\n.sidebar-settings .wrap-button button .icon.contacts {\\n -webkit-mask: url('contacts.svg') no-repeat center;\\n mask: url('contacts.svg') no-repeat center; }\\n\\n.sidebar-settings .wrap-button button .icon.settings {\\n -webkit-mask: url('settings.svg') no-repeat center;\\n mask: url('settings.svg') no-repeat center; }\\n\\n.sidebar-settings .wrap-button button .icon.logout {\\n -webkit-mask: url('logout.svg') no-repeat center;\\n mask: url('logout.svg') no-repeat center; }\\n\\n.synchronization-status {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n flex: 0 0 7rem;\\n font-size: 1.3rem; }\\n\\n.synchronization-status .status-container {\\n position: relative;\\n flex-grow: 1;\\n text-align: left; }\\n\\n.synchronization-status .status-container .offline, .synchronization-status .status-container .online {\\n position: relative;\\n display: block;\\n line-height: 1.2rem;\\n padding-left: 2.2rem; }\\n\\n.synchronization-status .status-container .offline:before, .synchronization-status .status-container .online:before {\\n content: '';\\n position: absolute;\\n top: 0;\\n left: 0;\\n border-radius: 50%;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n.synchronization-status .status-container .syncing, .synchronization-status .status-container .loading {\\n line-height: 5rem; }\\n\\n.synchronization-status .status-container .progress-bar-container {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n height: 0.7rem;\\n width: 100%; }\\n\\n.synchronization-status .status-container .progress-bar-container .syncing {\\n display: flex; }\\n\\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\\n flex: 1 0 auto; }\\n\\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\\n height: 100%; }\\n\\n.synchronization-status .status-container .progress-bar-container .syncing .progress-percent {\\n flex: 0 0 auto;\\n font-size: 1.3rem;\\n line-height: 0.7rem;\\n padding-left: 0.7rem; }\\n\\n.synchronization-status .status-container .progress-bar-container .loading {\\n -webkit-animation: move 5s linear infinite;\\n animation: move 5s linear infinite;\\n background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.125, rgba(0, 0, 0, 0.15)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.1)), color-stop(0.375, rgba(0, 0, 0, 0.1)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.15)), color-stop(0.625, rgba(0, 0, 0, 0.15)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.1)), color-stop(0.875, rgba(0, 0, 0, 0.1)), color-stop(0.875, transparent), to(transparent)), -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\\n background-size: 7rem 7rem;\\n height: 100%; }\\n\\n.synchronization-status .update-container {\\n display: flex;\\n flex-grow: 1;\\n margin-left: 1rem;\\n text-align: right; }\\n\\n.synchronization-status .update-container .update-text {\\n flex: 1 1 auto;\\n font-size: 1.2rem;\\n line-height: 1.8rem;\\n text-align: left; }\\n\\n.synchronization-status .update-container .update-text.time {\\n font-size: 1.1rem; }\\n\\n.synchronization-status .update-container .icon {\\n flex: 1 0 auto;\\n margin: 0.3rem 0 0 0.6rem;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n.synchronization-status .update-container .icon.update {\\n -webkit-mask: url('update.svg') no-repeat center;\\n mask: url('update.svg') no-repeat center; }\\n\\n.synchronization-status .update-container .icon.time {\\n -webkit-mask: url('time.svg') no-repeat center;\\n mask: url('time.svg') no-repeat center; }\\n\\n@-webkit-keyframes move {\\n 0% {\\n background-position: 100% -7rem; }\\n 100% {\\n background-position: 100% 7rem; } }\\n\\n@keyframes move {\\n 0% {\\n background-position: 100% -7rem; }\\n 100% {\\n background-position: 100% 7rem; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2lkZWJhci9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzaWRlYmFyXFxzaWRlYmFyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0Qiw4QkFBOEI7RUFDOUIsZUFBZTtFQUNmLGVBQWU7RUFDZixnQkFBZ0IsRUFBQTs7QUFHbEI7RUFDRSxhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixvQkFBb0IsRUFBQTs7QUFKdEI7SUFRSSxXQUFXO0lBQ1gsWUFBWSxFQUFBOztBQVRoQjtNQVlNLGFBQWEsRUFBQTs7QUFJbkI7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxVQUFVO0VBQ1YsWUFBWTtFQUNaLDZCQUE2QjtFQUM3Qix3QkFBd0I7RUFDeEIsZ0JBQWdCLEVBQUE7O0FBUmxCO0lBVUksV0FBVyxFQUFBOztBQVZmO0lBYUksWUFBWTtJQUNaLFlBQVk7SUFDWixlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QscUJBQXFCO0lBQ3JCLDBCQUEwQjtJQUMxQix3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLHVCQUF1QixFQUFBOztBQXZCM0I7TUF5Qk0seUJBQXlCLEVBQUE7O0FBekIvQjtNQTRCTSx5QkFBeUIsRUFBQTs7QUFJL0I7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixjQUFjLEVBQUE7O0FBSmhCO0lBT0ksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsY0FBYztJQUNkLFlBQVk7SUFDWixnQkFBZ0IsRUFBQTs7QUFacEI7TUFlTSxpQkFBaUIsRUFBQTs7QUFmdkI7TUFtQk0sdUJBQXVCO01BQ3ZCLFlBQVk7TUFDWixhQUFhLEVBQUE7O0FBckJuQjtJQTBC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Z0RBQXlEO2dCQUF6RCx3Q0FBeUQsRUFBQTs7QUFsSGpFO1FBc0hRLDhDQUF1RDtnQkFBdkQsc0NBQXVELEVBQUE7O0FBTS9EO0VBQ0U7SUFDRSwrQkFBK0IsRUFBQTtFQUVqQztJQUNFLDhCQUE4QixFQUFBLEVBQUE7O0FBTGxDO0VBQ0U7SUFDRSwrQkFBK0IsRUFBQTtFQUVqQztJQUNFLDhCQUE4QixFQUFBLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBmbGV4OiAwIDAgMjVyZW07XHJcbiAgcGFkZGluZzogMCAzcmVtO1xyXG4gIG1heC13aWR0aDogMjVyZW07XHJcbn1cclxuXHJcbi5hbmltYXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG5cclxuICAmOjpuZy1kZWVwIHN2ZyB7XHJcblxyXG4gICAgd2lkdGg6IDJyZW07XHJcbiAgICBoZWlnaHQ6IDJyZW07XHJcblxyXG4gICAgcGF0aCwgY2lyY2xlLCBwb2x5Z29uIHtcclxuICAgICAgZmlsbDogIzRkYjFmZjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuLndhbGxldC10eXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDdweDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgdHJhbnNpdGlvbjogYWxsIGVhc2UgLjNzO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgJjpob3ZlciB7XHJcbiAgICB3aWR0aDogMjhweDtcclxuICB9XHJcbiAgLmNvbnRlbnQge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcGFkZGluZzogN3B4O1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgIHRyYW5zaXRpb246IGFsbCBlYXNlIC4zcztcclxuICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7XHJcbiAgICB0ZXh0LW9yaWVudGF0aW9uOiBtaXhlZDtcclxuICAgICYuYXVkaXRhYmxlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDtcclxuICAgIH1cclxuICAgICYud2F0Y2gtb25seSwgJi5hdWRpdGFibGUtd2F0Y2gtb25seSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4Njg2ZmY7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi5zaWRlYmFyLWFjY291bnRzIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDEgMSBhdXRvO1xyXG5cclxuICAuc2lkZWJhci1hY2NvdW50cy1oZWFkZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgIGhlaWdodDogOHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcblxyXG4gICAgaDMge1xyXG4gICAgICBmb250LXNpemU6IDEuN3JlbTtcclxuICAgIH1cclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNpZGViYXItYWNjb3VudHMtbGlzdCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgbWFyZ2luOiAwIC0zcmVtO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuXHJcbiAgICAuc2lkZWJhci1hY2NvdW50IHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBwYWRkaW5nOiAyLjVyZW0gM3JlbTtcclxuXHJcbiAgICAgIC5jbG9zZS13YWxsZXQtd3JhcHBlciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHRvcDogLTEycHg7XHJcbiAgICAgICAgICByaWdodDogLTE4cHg7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICB3aWR0aDogMS4zcmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEuM3JlbTtcclxuICAgICAgICAgICAgJi5jbG9zZS13YWxsZXQge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuY2xvc2Utd2FsbGV0OjphZnRlciB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgY29udGVudDonJztcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOnVybChcIi4uLy4uL2Fzc2V0cy9pY29ucy9jbG9zZS13YWxsZXQtYmx1ZS5zdmdcIikgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICB3aWR0aDogMTNweDtcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDEzcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zaWRlYmFyLWFjY291bnQtcm93IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgICAgICAmLmFjY291bnQtdGl0bGUtYmFsYW5jZSB7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG5cclxuICAgICAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuYmFsYW5jZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY2NvdW50LWFsaWFzIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMuNHJlbTtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuN3JlbTtcclxuXHJcbiAgICAgICAgICAubmFtZSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS42cmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLnByaWNlIHtcclxuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xyXG4gICAgICAgICAgICB3aWR0aDogMS4zcmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEuM3JlbTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICBjb2xvcjogIzFhMWExYTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiA5cHg7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA5cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFweDtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjY291bnQtc3Rha2luZyB7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMi45cmVtO1xyXG5cclxuICAgICAgICAgIC50ZXh0IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjY291bnQtbWVzc2FnZXMge1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuXHJcbiAgICAgICAgICAudGV4dCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5pbmRpY2F0b3Ige1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNHJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxLjZyZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC41cmVtO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY2NvdW50LXN5bmNocm9uaXphdGlvbiB7XHJcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgaGVpZ2h0OiA1LjZyZW07XHJcblxyXG4gICAgICAgICAgLnN0YXR1cyB7XHJcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgbWFyZ2luOiAwLjRyZW0gMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAwLjdyZW07XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAgICAgLnByb2dyZXNzLWJhciB7XHJcbiAgICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XHJcblxyXG4gICAgICAgICAgICAgIC5maWxsIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5wcm9ncmVzcy1wZXJjZW50IHtcclxuICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMC43cmVtO1xyXG4gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAtM3JlbTtcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyA2cmVtKTtcclxuICAgIGhlaWdodDogNXJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5zaWRlYmFyLXNldHRpbmdzIHtcclxuICBmbGV4OiAwIDAgYXV0bztcclxuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcclxuXHJcbiAgLndyYXAtYnV0dG9uIHtcclxuICAgIG1hcmdpbjogMCAtM3JlbTtcclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICBsaW5lLWhlaWdodDogM3JlbTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgcGFkZGluZzogMCAzcmVtO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgICYuZGlzYWJsZWQge1xyXG4gICAgICAgIGN1cnNvcjogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9ub3QtYWxsb3dlZC5zdmcpLCBub3QtYWxsb3dlZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmljb24ge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICAgIHdpZHRoOiAycmVtO1xyXG4gICAgICAgIGhlaWdodDogMnJlbTtcclxuXHJcbiAgICAgICAgJi5jb250YWN0cyB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2NvbnRhY3RzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuc2V0dGluZ3Mge1xyXG4gICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9zZXR0aW5ncy5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmxvZ291dCB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2xvZ291dC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uc3luY2hyb25pemF0aW9uLXN0YXR1cyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBmbGV4OiAwIDAgN3JlbTtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuXHJcbiAgLnN0YXR1cy1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAub2ZmbGluZSwgLm9ubGluZSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMi4ycmVtO1xyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgICBoZWlnaHQ6IDEuMnJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zeW5jaW5nLCAubG9hZGluZyB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA1cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIGhlaWdodDogMC43cmVtO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIC5zeW5jaW5nIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgICAucHJvZ3Jlc3MtYmFyIHtcclxuICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG5cclxuICAgICAgICAgIC5maWxsIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnByb2dyZXNzLXBlcmNlbnQge1xyXG4gICAgICAgICAgZmxleDogMCAwIGF1dG87XHJcbiAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwLjdyZW07XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5sb2FkaW5nIHtcclxuICAgICAgICBhbmltYXRpb246IG1vdmUgNXMgbGluZWFyIGluZmluaXRlO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6XHJcbiAgICAgICAgICAtd2Via2l0LWdyYWRpZW50KFxyXG4gICAgICAgICAgICAgIGxpbmVhciwgMCAwLCAxMDAlIDEwMCUsXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMTI1LCByZ2JhKDAsIDAsIDAsIC4xNSkpLCBjb2xvci1zdG9wKC4xMjUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4yNTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguMjUwLCByZ2JhKDAsIDAsIDAsIC4xMCkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjM3NSwgcmdiYSgwLCAwLCAwLCAuMTApKSwgY29sb3Itc3RvcCguMzc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNTAwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjUwMCwgcmdiYSgwLCAwLCAwLCAuMTUpKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC42MjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjYyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjc1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC43NTAsIHJnYmEoMCwgMCwgMCwgLjEwKSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguODc1LCByZ2JhKDAsIDAsIDAsIC4xMCkpLCBjb2xvci1zdG9wKC44NzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICB0byh0cmFuc3BhcmVudClcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICAtd2Via2l0LWdyYWRpZW50KFxyXG4gICAgICAgICAgICAgIGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMTI1LCByZ2JhKDAsIDAsIDAsIC4zMCkpLCBjb2xvci1zdG9wKC4xMjUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4yNTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguMjUwLCByZ2JhKDAsIDAsIDAsIC4yNSkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjM3NSwgcmdiYSgwLCAwLCAwLCAuMjUpKSwgY29sb3Itc3RvcCguMzc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNTAwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjUwMCwgcmdiYSgwLCAwLCAwLCAuMzApKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC42MjUsIHJnYmEoMCwgMCwgMCwgLjMwKSksIGNvbG9yLXN0b3AoLjYyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjc1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC43NTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguODc1LCByZ2JhKDAsIDAsIDAsIC4yNSkpLCBjb2xvci1zdG9wKC44NzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICB0byh0cmFuc3BhcmVudClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA3cmVtIDdyZW07XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudXBkYXRlLWNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuXHJcbiAgICAudXBkYXRlLXRleHQge1xyXG4gICAgICBmbGV4OiAxIDEgYXV0bztcclxuICAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4gICAgICAmLnRpbWUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICBmbGV4OiAxIDAgYXV0bztcclxuICAgICAgbWFyZ2luOiAwLjNyZW0gMCAwIDAuNnJlbTtcclxuICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcblxyXG4gICAgICAmLnVwZGF0ZSB7XHJcbiAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy91cGRhdGUuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnRpbWUge1xyXG4gICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvdGltZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgbW92ZSB7XHJcbiAgMCUge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtN3JlbTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDdyZW07XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, NgZone, OnInit, OnDestroy} from '@angular/core';\r\nimport {ActivatedRoute, NavigationStart, Router} from '@angular/router';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport { ModalService } from '../_helpers/services/modal.service';\r\nimport {AUDITABLE_WALLET_HELP_PAGE} from '../_shared/constants';\r\nimport {DOWNLOADS_PAGE_URL} from '../_shared/constants';\r\n\r\nimport icons from '../../assets/icons/icons.json';\r\n\r\n@Component({\r\n selector: 'app-sidebar',\r\n templateUrl: './sidebar.component.html',\r\n styleUrls: ['./sidebar.component.scss']\r\n})\r\nexport class SidebarComponent implements OnInit, OnDestroy {\r\n walletSubRouting;\r\n\r\n walletActive: number;\r\n\r\n contacts = icons.contacts;\r\n settings = icons.settings;\r\n exit = icons.exit;\r\n\r\n isModalDialogVisible = false;\r\n closeWalletId: number;\r\n\r\n menuItemHovered: boolean;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n public variablesService: VariablesService,\r\n private backend: BackendService,\r\n private modal: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (this.router.url.indexOf('/wallet/') !== -1) {\r\n const localPathArr = this.router.url.split('/');\r\n if (localPathArr.length >= 3) {\r\n this.walletActive = parseInt(localPathArr[2], 10);\r\n }\r\n } else if (this.router.url.indexOf('/details') !== -1) {\r\n this.walletActive = this.variablesService.currentWallet.wallet_id;\r\n } else {\r\n this.walletActive = null;\r\n }\r\n\r\n this.walletSubRouting = this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationStart) {\r\n if (event.url.indexOf('/wallet/') !== -1) {\r\n const localPathArr = event.url.split('/');\r\n if (localPathArr.length >= 3) {\r\n this.walletActive = parseInt(localPathArr[2], 10);\r\n }\r\n } else if (event.url.indexOf('/details') !== -1) {\r\n this.walletActive = this.variablesService.currentWallet.wallet_id;\r\n } else {\r\n this.walletActive = null;\r\n }\r\n }\r\n });\r\n }\r\n\r\n goMainPage() {\r\n if (this.route.snapshot.queryParams && this.route.snapshot.queryParams.prevUrl === 'login') {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/'], {queryParams: {prevUrl: 'login'}});\r\n });\r\n } else {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n\r\n };\r\n\r\n contactsRoute() {\r\n if (this.variablesService.appPass) {\r\n this.router.navigate(['/contacts']);\r\n } else {\r\n this.modal.prepareModal(\r\n 'error',\r\n 'CONTACTS.FORM_ERRORS.SET_MASTER_PASSWORD'\r\n );\r\n }\r\n }\r\n\r\n showDialog(wallet_id) {\r\n this.isModalDialogVisible = true;\r\n this.closeWalletId = wallet_id;\r\n }\r\n\r\n confirmed(confirmed: boolean) {\r\n if (confirmed) {\r\n this.closeWallet(this.closeWalletId);\r\n }\r\n this.isModalDialogVisible = false;\r\n }\r\n\r\n closeWallet(wallet_id) {\r\n this.backend.closeWallet(wallet_id, () => {\r\n for (let i = this.variablesService.wallets.length - 1; i >= 0; i--) {\r\n if (this.variablesService.wallets[i].wallet_id === this.variablesService.currentWallet.wallet_id) {\r\n this.variablesService.wallets.splice(i, 1);\r\n }\r\n }\r\n this.ngZone.run(() => {\r\n if (this.variablesService.wallets.length) {\r\n this.variablesService.currentWallet = this.variablesService.wallets[0];\r\n this.router.navigate(['/wallet/' + this.variablesService.currentWallet.wallet_id]);\r\n } else {\r\n this.router.navigate(['/']);\r\n }\r\n });\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n });\r\n }\r\n\r\n getUpdate() {\r\n this.backend.openUrlInBrowser(DOWNLOADS_PAGE_URL);\r\n }\r\n goToAuditableWalletHelpPage(e) {\r\n e.preventDefault();\r\n this.backend.openUrlInBrowser(AUDITABLE_WALLET_HELP_PAGE);\r\n }\r\n\r\n logOut() {\r\n this.variablesService.stopCountdown();\r\n this.variablesService.appLogin = false;\r\n this.variablesService.appPass = '';\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/login'], {queryParams: {type: 'auth'}});\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.walletSubRouting.unsubscribe();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n {{ 'STAKING.TITLE' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'STAKING.TITLE_PENDING' | translate }}\\r\\n {{pending.total | intToMoney}} {{variablesService.defaultCurrency}}\\r\\n
\\r\\n
\\r\\n {{ 'STAKING.TITLE_TOTAL' | translate }}\\r\\n {{total | intToMoney}} {{variablesService.defaultCurrency}}\\r\\n
\\r\\n
\\r\\n
\\r\\n {{selectedDate.date | date : 'EEEE, MMMM d, y'}}\\r\\n {{selectedDate.amount}} {{variablesService.defaultCurrency}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'STAKING.TITLE_PERIOD' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n {{ 'STAKING.TITLE_GROUP' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n width: 100%; }\\n\\n.chart-header {\\n display: flex;\\n flex: 0 0 auto; }\\n\\n.chart-header .general {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n flex-grow: 1;\\n font-size: 1.3rem;\\n margin: -0.5rem 0; }\\n\\n.chart-header .general > div {\\n display: flex;\\n align-items: center;\\n margin: 0.5rem 0;\\n height: 2rem; }\\n\\n.chart-header .general > div .label {\\n display: inline-block;\\n width: 9rem; }\\n\\n.chart-header .selected {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-end;\\n justify-content: center;\\n flex-grow: 1;\\n font-size: 1.8rem; }\\n\\n.chart-header .selected span {\\n line-height: 2.9rem; }\\n\\n.chart {\\n position: relative;\\n display: flex;\\n align-items: center;\\n flex: 1 1 auto;\\n min-height: 40rem; }\\n\\n.chart > div {\\n position: absolute;\\n width: 100%;\\n height: 100%; }\\n\\n.chart-options {\\n display: flex;\\n align-items: center;\\n height: 2.4rem;\\n flex: 0 0 auto; }\\n\\n.chart-options .title {\\n font-size: 1.3rem;\\n padding: 0 1rem; }\\n\\n.chart-options .title:first-child {\\n padding-left: 0; }\\n\\n.chart-options .options {\\n display: flex;\\n justify-content: space-between;\\n flex-grow: 1;\\n height: 100%; }\\n\\n.chart-options .options button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex: 1 1 auto;\\n cursor: pointer;\\n font-size: 1.3rem;\\n margin: 0 0.1rem;\\n padding: 0;\\n height: 100%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3Rha2luZy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzdGFraW5nXFxzdGFraW5nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXLEVBQUE7O0FBR2I7RUFDRSxhQUFhO0VBQ2IsY0FBYyxFQUFBOztBQUZoQjtJQUtJLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLGlCQUFpQixFQUFBOztBQVhyQjtNQWNNLGFBQWE7TUFDYixtQkFBbUI7TUFDbkIsZ0JBQWdCO01BQ2hCLFlBQVksRUFBQTs7QUFqQmxCO1FBb0JRLHFCQUFxQjtRQUNyQixXQUFXLEVBQUE7O0FBckJuQjtJQTJCSSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLHFCQUFxQjtJQUNyQix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLGlCQUFpQixFQUFBOztBQWhDckI7TUFtQ00sbUJBQW1CLEVBQUE7O0FBS3pCO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsY0FBYztFQUNkLGlCQUFpQixFQUFBOztBQUxuQjtJQVFJLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsWUFBWSxFQUFBOztBQUloQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsY0FBYztFQUNkLGNBQWMsRUFBQTs7QUFKaEI7SUFPSSxpQkFBaUI7SUFDakIsZUFBZSxFQUFBOztBQVJuQjtNQVdNLGVBQWUsRUFBQTs7QUFYckI7SUFnQkksYUFBYTtJQUNiLDhCQUE4QjtJQUM5QixZQUFZO0lBQ1osWUFBWSxFQUFBOztBQW5CaEI7TUFzQk0sYUFBYTtNQUNiLG1CQUFtQjtNQUNuQix1QkFBdUI7TUFDdkIsY0FBYztNQUNkLGVBQWU7TUFDZixpQkFBaUI7TUFDakIsZ0JBQWdCO01BQ2hCLFVBQVU7TUFDVixZQUFZLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zdGFraW5nL3N0YWtpbmcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uY2hhcnQtaGVhZGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG5cclxuICAuZ2VuZXJhbCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIG1hcmdpbjogLTAuNXJlbSAwO1xyXG5cclxuICAgID4gZGl2IHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcclxuICAgICAgaGVpZ2h0OiAycmVtO1xyXG5cclxuICAgICAgLmxhYmVsIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDlyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zZWxlY3RlZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjlyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uY2hhcnQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZmxleDogMSAxIGF1dG87XHJcbiAgbWluLWhlaWdodDogNDByZW07XHJcblxyXG4gID4gZGl2IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLmNoYXJ0LW9wdGlvbnMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBoZWlnaHQ6IDIuNHJlbTtcclxuICBmbGV4OiAwIDAgYXV0bztcclxuXHJcbiAgLnRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgcGFkZGluZzogMCAxcmVtO1xyXG5cclxuICAgICY6Zmlyc3QtY2hpbGR7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5vcHRpb25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICBtYXJnaW46IDAgMC4xcmVtO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, NgZone, OnInit, OnDestroy} from '@angular/core';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {Chart} from 'angular-highcharts';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {IntToMoneyPipe} from '../_helpers/pipes/int-to-money.pipe';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Component({\r\n selector: 'app-staking',\r\n templateUrl: './staking.component.html',\r\n styleUrls: ['./staking.component.scss']\r\n})\r\nexport class StakingComponent implements OnInit, OnDestroy {\r\n\r\n parentRouting;\r\n heightAppEvent;\r\n refreshStackingEvent;\r\n\r\n periods = [\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.WEEK1'),\r\n key: '1 week',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.WEEK2'),\r\n key: '2 week',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.MONTH1'),\r\n key: '1 month',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.MONTH3'),\r\n key: '3 month',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.MONTH6'),\r\n key: '6 month',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.YEAR'),\r\n key: '1 year',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.ALL'),\r\n key: 'All',\r\n active: true\r\n }\r\n ];\r\n\r\n groups = [\r\n {\r\n title: this.translate.instant('STAKING.GROUP.DAY'),\r\n key: 'day',\r\n active: true\r\n },\r\n {\r\n title: this.translate.instant('STAKING.GROUP.WEEK'),\r\n key: 'week',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.GROUP.MONTH'),\r\n key: 'month',\r\n active: false\r\n }\r\n ];\r\n\r\n selectedDate = {\r\n date: null,\r\n amount: null\r\n };\r\n\r\n originalData = [];\r\n\r\n chart: Chart;\r\n\r\n total = new BigNumber(0);\r\n pending = {\r\n list: [],\r\n total: new BigNumber(0)\r\n };\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n public variablesService: VariablesService,\r\n private backend: BackendService,\r\n private ngZone: NgZone,\r\n private intToMoneyPipe: IntToMoneyPipe,\r\n private translate: TranslateService\r\n ) {\r\n }\r\n\r\n static makeGroupTime(key, date) {\r\n if (key === 'day') {\r\n return date.setHours(0, 0, 0, 0);\r\n } else if (key === 'week') {\r\n return new Date(date.setDate(date.getDate() - date.getDay())).setHours(0, 0, 0, 0);\r\n } else {\r\n return new Date(date.setDate(1)).setHours(0, 0, 0, 0);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(() => {\r\n this.getMiningHistory();\r\n });\r\n this.heightAppEvent = this.variablesService.getHeightAppEvent.subscribe((newHeight: number) => {\r\n if (!this.pending.total.isZero()) {\r\n const pendingCount = this.pending.list.length;\r\n for (let i = pendingCount - 1; i >= 0; i--) {\r\n if (newHeight - this.pending.list[i].h >= 10) {\r\n this.pending.list.splice(i, 1);\r\n }\r\n }\r\n if (pendingCount !== this.pending.list.length) {\r\n this.pending.total = new BigNumber(0);\r\n for (let i = 0; i < this.pending.list.length; i++) {\r\n this.pending.total = this.pending.total.plus(this.pending.list[i].a);\r\n }\r\n }\r\n }\r\n });\r\n this.refreshStackingEvent = this.variablesService.getRefreshStackingEvent.subscribe((wallet_id: number) => {\r\n if (this.variablesService.currentWallet.wallet_id === wallet_id) {\r\n this.getMiningHistory();\r\n }\r\n });\r\n }\r\n\r\n\r\n drawChart(data) {\r\n this.chart = new Chart({\r\n title: {text: ''},\r\n credits: {enabled: false},\r\n exporting: {enabled: false},\r\n legend: {enabled: false},\r\n chart: {\r\n type: 'line',\r\n backgroundColor: 'transparent',\r\n height: null,\r\n zoomType: null,\r\n events: {\r\n load: () => {\r\n this.changePeriod();\r\n }\r\n }\r\n },\r\n\r\n yAxis: {\r\n min: 0,\r\n tickAmount: 5,\r\n title: {\r\n text: ''\r\n },\r\n gridLineColor: '#2b3644',\r\n gridLineWidth: 2,\r\n lineColor: '#2b3644',\r\n lineWidth: 2,\r\n tickWidth: 2,\r\n tickLength: 120,\r\n tickColor: '#2b3644',\r\n labels: {\r\n y: -8,\r\n align: 'left',\r\n x: -120,\r\n style: {\r\n 'color': '#e0e0e0',\r\n 'fontSize': '13px'\r\n },\r\n format: '{value} ' + this.variablesService.defaultCurrency\r\n },\r\n showLastLabel: false,\r\n },\r\n\r\n xAxis: {\r\n type: 'datetime',\r\n gridLineColor: '#2b3644',\r\n lineColor: '#2b3644',\r\n lineWidth: 2,\r\n tickWidth: 2,\r\n tickLength: 10,\r\n tickColor: '#2b3644',\r\n labels: {\r\n style: {\r\n 'color': '#e0e0e0',\r\n 'fontSize': '13px'\r\n }\r\n },\r\n minPadding: 0,\r\n maxPadding: 0,\r\n minRange: 86400000,\r\n // tickInterval: 86400000,\r\n minTickInterval: 3600000,\r\n },\r\n\r\n tooltip: {\r\n enabled: false\r\n },\r\n\r\n plotOptions: {\r\n area: {\r\n fillColor: {\r\n linearGradient: {\r\n x1: 0,\r\n y1: 0,\r\n x2: 0,\r\n y2: 1\r\n },\r\n stops: [\r\n [0, 'rgba(124,181,236,0.2)'],\r\n [1, 'rgba(124,181,236,0)']\r\n ]\r\n },\r\n marker: {\r\n enabled: false,\r\n radius: 2\r\n },\r\n lineWidth: 2,\r\n threshold: null\r\n },\r\n\r\n series: {\r\n point: {\r\n events: {\r\n mouseOver: (obj) => {\r\n this.selectedDate.date = obj.target['x'];\r\n this.selectedDate.amount = obj.target['y'];\r\n }\r\n }\r\n },\r\n events: {\r\n mouseOut: () => {\r\n this.selectedDate.date = null;\r\n this.selectedDate.amount = null;\r\n }\r\n }\r\n }\r\n },\r\n series: [\r\n {\r\n type: 'area',\r\n data: data\r\n }\r\n ]\r\n });\r\n }\r\n\r\n\r\n getMiningHistory() {\r\n if (this.variablesService.currentWallet.loaded) {\r\n this.backend.getMiningHistory(this.variablesService.currentWallet.wallet_id, (status, data) => {\r\n this.total = new BigNumber(0);\r\n this.pending.list = [];\r\n this.pending.total = new BigNumber(0);\r\n this.originalData = [];\r\n if (data.mined_entries) {\r\n data.mined_entries.forEach((item, key) => {\r\n if (item.t.toString().length === 10) {\r\n data.mined_entries[key].t = (new Date(item.t * 1000)).setUTCMilliseconds(0);\r\n }\r\n });\r\n data.mined_entries.forEach((item) => {\r\n this.total = this.total.plus(item.a);\r\n if (this.variablesService.height_app - item.h < 10) {\r\n this.pending.list.push(item);\r\n this.pending.total = this.pending.total.plus(item.a);\r\n }\r\n this.originalData.push([parseInt(item.t, 10), parseFloat(this.intToMoneyPipe.transform(item.a))]);\r\n });\r\n this.originalData = this.originalData.sort(function (a, b) {\r\n return a[0] - b[0];\r\n });\r\n }\r\n this.ngZone.run(() => {\r\n this.drawChart([]);\r\n });\r\n });\r\n }\r\n }\r\n\r\n changePeriod(period?) {\r\n if (period) {\r\n this.periods.forEach((p) => {\r\n p.active = false;\r\n });\r\n period.active = true;\r\n } else {\r\n period = this.periods.find((p) => p.active);\r\n }\r\n\r\n const d = new Date();\r\n let min = null;\r\n const newData = [];\r\n\r\n const group = this.groups.find((g) => g.active);\r\n\r\n if (period.key === '1 week') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 7, 0, 0, 0, 0);\r\n } else if (period.key === '2 week') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 14, 0, 0, 0, 0);\r\n } else if (period.key === '1 month') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth() - 1, d.getDate(), 0, 0, 0, 0);\r\n } else if (period.key === '3 month') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth() - 3, d.getDate(), 0, 0, 0, 0);\r\n } else if (period.key === '6 month') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth() - 6, d.getDate(), 0, 0, 0, 0);\r\n } else if (period.key === '1 year') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear() - 1, d.getMonth(), d.getDate(), 0, 0, 0, 0);\r\n } else {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n }\r\n\r\n this.chart.ref.xAxis[0].setExtremes(min, null);\r\n }\r\n\r\n changeGroup(group) {\r\n this.groups.forEach((g) => {\r\n g.active = false;\r\n });\r\n group.active = true;\r\n this.changePeriod();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n this.heightAppEvent.unsubscribe();\r\n this.refreshStackingEvent.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ wallet.name }}\\r\\n {{ 'BREADCRUMBS.TRANSFER_ALIAS' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
0 && (transferAddressAlias || !transferAddressValid || (transferAddressValid && !permissionSend) || notEnoughMoney)\\\">\\r\\n
\\r\\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.WRONG_ADDRESS' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.ALIAS_EXISTS' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
{{ \\\"TRANSFER_ALIAS.COST\\\" | translate : {value: variablesService.default_fee, currency: variablesService.defaultCurrency} }}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \".form-transfer {\\n margin: 2.4rem 0; }\\n .form-transfer .alias-name {\\n width: 50%; }\\n .form-transfer .alias-cost {\\n font-size: 1.3rem;\\n margin-top: 2rem; }\\n .form-transfer .wrap-buttons {\\n display: flex;\\n justify-content: space-between;\\n margin: 2.5rem -0.7rem; }\\n .form-transfer .wrap-buttons button {\\n margin: 0 0.7rem;\\n width: 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdHJhbnNmZXItYWxpYXMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcdHJhbnNmZXItYWxpYXNcXHRyYW5zZmVyLWFsaWFzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFBQTtFQVRwQjtJQWFJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsc0JBQXNCLEVBQUE7RUFmMUI7TUFrQk0sZ0JBQWdCO01BQ2hCLFlBQVksRUFBQSIsImZpbGUiOiJzcmMvYXBwL3RyYW5zZmVyLWFsaWFzL3RyYW5zZmVyLWFsaWFzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tdHJhbnNmZXIge1xyXG4gIG1hcmdpbjogMi40cmVtIDA7XHJcblxyXG4gIC5hbGlhcy1uYW1lIHtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgfVxyXG5cclxuICAuYWxpYXMtY29zdCB7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIG1hcmdpbi10b3A6IDJyZW07XHJcbiAgfVxyXG5cclxuICAud3JhcC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW46IDIuNXJlbSAtMC43cmVtO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjdyZW07XHJcbiAgICAgIHdpZHRoOiAxNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, NgZone, OnInit} from '@angular/core';\r\nimport {Location} from '@angular/common';\r\nimport {Router} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\n\r\n@Component({\r\n selector: 'app-transfer-alias',\r\n templateUrl: './transfer-alias.component.html',\r\n styleUrls: ['./transfer-alias.component.scss']\r\n})\r\nexport class TransferAliasComponent implements OnInit {\r\n\r\n wallet: Wallet;\r\n alias: any;\r\n transferAddress = '';\r\n transferAddressValid: boolean;\r\n transferAddressAlias: boolean;\r\n permissionSend: boolean;\r\n notEnoughMoney: boolean;\r\n requestProcessing = false;\r\n\r\n constructor(\r\n private location: Location,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.wallet = this.variablesService.currentWallet;\r\n const alias = this.backend.getWalletAlias(this.wallet.address);\r\n this.alias = {\r\n name: alias.name,\r\n address: alias.address,\r\n comment: alias.comment,\r\n tracking_key: alias.tracking_key\r\n };\r\n this.notEnoughMoney = this.wallet.unlocked_balance.isLessThan(this.variablesService.default_fee_big);\r\n }\r\n\r\n changeAddress() {\r\n this.backend.validateAddress(this.transferAddress, status => {\r\n this.transferAddressValid = status;\r\n if (status) {\r\n this.backend.getPoolInfo((statusPool, dataPool) => {\r\n if (dataPool.hasOwnProperty('aliases_que') && dataPool.aliases_que.length) {\r\n this.setStatus(!dataPool.aliases_que.some((el) => el.address === this.transferAddress));\r\n } else {\r\n this.setStatus(status);\r\n }\r\n });\r\n } else {\r\n this.setStatus(false);\r\n }\r\n });\r\n }\r\n\r\n setStatus(statusSet) {\r\n this.permissionSend = statusSet;\r\n if (statusSet) {\r\n this.backend.getAliasByAddress(this.transferAddress, (status) => {\r\n this.ngZone.run(() => {\r\n if (status) {\r\n this.transferAddressAlias = true;\r\n this.permissionSend = false;\r\n } else {\r\n this.transferAddressAlias = false;\r\n }\r\n });\r\n });\r\n } else {\r\n this.ngZone.run(() => {\r\n this.transferAddressAlias = false;\r\n });\r\n }\r\n }\r\n\r\n transferAlias() {\r\n if (this.requestProcessing || !this.permissionSend || !this.transferAddressValid || this.notEnoughMoney) {\r\n return;\r\n }\r\n this.requestProcessing = true;\r\n const newAlias = {\r\n name: this.alias.name,\r\n address: this.transferAddress,\r\n comment: this.alias.comment,\r\n tracking_key: this.alias.tracking_key\r\n };\r\n this.backend.updateAlias(this.wallet.wallet_id, newAlias, this.variablesService.default_fee, (status, data) => {\r\n if (status && data.hasOwnProperty('success') && data.success) {\r\n this.modalService.prepareModal('info', 'TRANSFER_ALIAS.REQUEST_SEND_REG');\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet.wallet_id]);\r\n });\r\n }\r\n this.requestProcessing = false;\r\n });\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n @bitmain\\r\\n
\\r\\n \\r\\n \\r\\n {{ 'COMMON.BACK' | translate }}\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
10:39
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
\\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
\\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
\\r\\n
11:44
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
\\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
12:15
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
\\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
13:13
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
\\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n width: 100%; }\\n\\n.head {\\n flex: 0 0 auto;\\n box-sizing: content-box;\\n margin: -3rem -3rem 0; }\\n\\n.messages-content {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n flex-grow: 1; }\\n\\n.messages-content .messages-list {\\n display: flex;\\n flex-direction: column;\\n font-size: 1.3rem;\\n margin: 1rem -3rem;\\n padding: 0 3rem;\\n overflow-y: overlay; }\\n\\n.messages-content .messages-list div {\\n margin: 0.7rem 0; }\\n\\n.messages-content .messages-list div.date {\\n text-align: center; }\\n\\n.messages-content .messages-list div.my, .messages-content .messages-list div.buddy {\\n position: relative;\\n padding: 1.8rem;\\n max-width: 60%; }\\n\\n.messages-content .messages-list div.buddy {\\n align-self: flex-end; }\\n\\n.messages-content .type-message {\\n display: flex;\\n flex: 0 0 auto;\\n width: 100%;\\n height: 4.2rem; }\\n\\n.messages-content .type-message .input-block {\\n width: 100%; }\\n\\n.messages-content .type-message .input-block > textarea {\\n min-height: 4.2rem; }\\n\\n.messages-content .type-message button {\\n flex: 0 0 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdHlwaW5nLW1lc3NhZ2UvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcdHlwaW5nLW1lc3NhZ2VcXHR5cGluZy1tZXNzYWdlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXLEVBQUE7O0FBR2I7RUFDRSxjQUFjO0VBQ2QsdUJBQXVCO0VBQ3ZCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsOEJBQThCO0VBQzlCLFlBQVksRUFBQTs7QUFKZDtJQU9JLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsbUJBQW1CLEVBQUE7O0FBWnZCO01BZU0sZ0JBQWdCLEVBQUE7O0FBZnRCO1FBa0JRLGtCQUFrQixFQUFBOztBQWxCMUI7UUFzQlEsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixjQUFjLEVBQUE7O0FBeEJ0QjtRQTRCUSxvQkFBb0IsRUFBQTs7QUE1QjVCO0lBa0NJLGFBQWE7SUFDYixjQUFjO0lBQ2QsV0FBVztJQUNYLGNBQWMsRUFBQTs7QUFyQ2xCO01Bd0NNLFdBQVcsRUFBQTs7QUF4Q2pCO1FBMkNRLGtCQUFrQixFQUFBOztBQTNDMUI7TUFnRE0sZUFBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvdHlwaW5nLW1lc3NhZ2UvdHlwaW5nLW1lc3NhZ2UuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uaGVhZCB7XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgbWFyZ2luOiAtM3JlbSAtM3JlbSAwO1xyXG59XHJcblxyXG4ubWVzc2FnZXMtY29udGVudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBmbGV4LWdyb3c6IDE7XHJcblxyXG4gIC5tZXNzYWdlcy1saXN0IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBtYXJnaW46IDFyZW0gLTNyZW07XHJcbiAgICBwYWRkaW5nOiAwIDNyZW07XHJcbiAgICBvdmVyZmxvdy15OiBvdmVybGF5O1xyXG5cclxuICAgIGRpdiB7XHJcbiAgICAgIG1hcmdpbjogMC43cmVtIDA7XHJcblxyXG4gICAgICAmLmRhdGUge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5teSwgJi5idWRkeSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHBhZGRpbmc6IDEuOHJlbTtcclxuICAgICAgICBtYXgtd2lkdGg6IDYwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5idWRkeSB7XHJcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50eXBlLW1lc3NhZ2Uge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXg6IDAgMCBhdXRvO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDQuMnJlbTtcclxuXHJcbiAgICAuaW5wdXQtYmxvY2sge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgID4gdGV4dGFyZWEge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDQuMnJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGZsZXg6IDAgMCAxNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-typing-message',\r\n templateUrl: './typing-message.component.html',\r\n styleUrls: ['./typing-message.component.scss']\r\n})\r\nexport class TypingMessageComponent implements OnInit {\r\n\r\n messagesId: number;\r\n private subMessages: any;\r\n\r\n constructor(private route: ActivatedRoute) {\r\n this.route.params.subscribe( params => console.log(params) );\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{variablesService.currentWallet.name}}\\r\\n {{ 'BREADCRUMBS.WALLET_DETAILS' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\\r\\n
\\r\\n
\\r\\n
= variablesService.maxWalletNameLength\\\">\\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\\r\\n

\\r\\n \\r\\n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }} \\r\\n 0\\\">{{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }} \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
= 1 && (index + 1) <= 7 || (index + 1) >= 15 && (index + 1) <= 21\\\">\\r\\n {{(index + 1) + '. ' + word}}
\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \".form-details {\\n margin-top: 1.8rem; }\\n .form-details .input-block:first-child {\\n width: 50%; }\\n .form-details .wallet-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: space-between; }\\n .form-details .wallet-buttons button {\\n margin: 2.9rem 0;\\n width: 100%;\\n max-width: 15rem; }\\n .mt-2 {\\n margin-top: 2rem; }\\n .form-seed label {\\n color: #556576;\\n font-size: 1.3rem;\\n line-height: 2.4rem; }\\n .form-seed .form-content {\\n border: 2px solid #2b3644;\\n display: flex;\\n justify-content: center;\\n padding: 3rem;\\n width: 100%; }\\n .form-seed .text-coral {\\n color: #4db1ff;\\n text-decoration: none; }\\n .form-seed .seed-phrase-form {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n max-width: 38rem;\\n width: 100%; }\\n .form-seed .seed-phrase-form .input-block,\\n .form-seed .seed-phrase-form button {\\n width: 100%; }\\n .form-seed .seed-phrase-form .error-message {\\n margin-top: 1rem;\\n color: #ff6f00; }\\n .form-seed .seed-phrase-form .secured-seed {\\n color: #e0e0e0;\\n font-size: 1.2rem;\\n line-height: 2.4rem;\\n text-decoration: none;\\n display: flex;\\n align-items: center;\\n cursor: pointer; }\\n .form-seed .seed-phrase-form .secured-seed .icon {\\n margin-right: 1.2rem; }\\n .form-seed .seed-phrase-form button {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin-top: 3rem;\\n margin-bottom: 2rem; }\\n .form-seed .seed-phrase-form button .icon {\\n margin-right: 1.2rem; }\\n .seed-phrase {\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n background-color: transparent !important; }\\n .seed-phrase-title {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n width: 100%; }\\n .seed-phrase-title .right-part {\\n display: inline-flex;\\n align-items: center; }\\n .seed-phrase-title .right-part .icon {\\n cursor: pointer;\\n width: 1.7rem;\\n height: 1.7rem; }\\n .seed-phrase-title .right-part .icon.copy {\\n background-color: #4caefb;\\n margin-right: 1.2rem;\\n -webkit-mask: url('copy.svg') no-repeat center;\\n mask: url('copy.svg') no-repeat center; }\\n .seed-phrase-title .right-part .icon.copy:hover {\\n opacity: 0.75; }\\n .seed-phrase-title .right-part .icon.copied {\\n margin-right: 1.2rem;\\n background-color: #4caefb;\\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\\n mask: url('complete-testwallet.svg') no-repeat center; }\\n .seed-phrase-title .right-part .icon.secured, .seed-phrase-title .right-part .icon.unsecured {\\n margin-left: 1.2rem; }\\n .seed-phrase-title .right-part span {\\n color: #556576;\\n font-size: 1.3rem;\\n line-height: 2.4rem;\\n display: inline-flex;\\n align-items: center; }\\n .seed-phrase-title .right-part span .icon {\\n margin-left: 1.2rem; }\\n .seed-phrase-content {\\n border-top: 2px solid #2b3644;\\n border-bottom: 2px solid #2b3644;\\n padding: 1rem 0 1rem;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-wrap: wrap;\\n margin-bottom: 1rem; }\\n .seed-phrase-content .item {\\n display: flex;\\n align-items: center;\\n padding: 0 2rem;\\n width: calc(100% / 7);\\n min-height: 35px;\\n font-size: 1.3rem;\\n color: #e0e0e0; }\\n .seed-phrase-content .item.dark {\\n background-color: #18202a; }\\n .seed-phrase-footer {\\n text-align: center; }\\n .seed-phrase-footer .title {\\n color: #556576;\\n font-size: 1.3rem;\\n line-height: 2.4rem; }\\n .icon {\\n display: inline-flex;\\n width: 1.6rem;\\n height: 1.6rem; }\\n .icon.secured {\\n background-color: #5cda9d;\\n -webkit-mask: url('secured.svg') no-repeat center;\\n mask: url('secured.svg') no-repeat center; }\\n .icon.info {\\n background-color: #4caefb;\\n -webkit-mask: url('info.svg') no-repeat center;\\n mask: url('info.svg') no-repeat center; }\\n .icon.unsecured {\\n background-color: #ff6f00;\\n -webkit-mask: url('unsecured.svg') no-repeat center;\\n mask: url('unsecured.svg') no-repeat center; }\\n .icon.safety {\\n background-color: #111921;\\n -webkit-mask: url('safety.svg') no-repeat center;\\n mask: url('safety.svg') no-repeat center; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvd2FsbGV0LWRldGFpbHMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcd2FsbGV0LWRldGFpbHNcXHdhbGxldC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7RUFEcEI7SUFNTSxVQUFVLEVBQUE7RUFOaEI7SUFXSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4QixFQUFBO0VBYmxDO01BZ0JNLGdCQUFnQjtNQUNoQixXQUFXO01BQ1gsZ0JBQWdCLEVBQUE7RUFLdEI7RUFDRSxnQkFBZ0IsRUFBQTtFQUdsQjtFQUdJLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsbUJBQW1CLEVBQUE7RUFMdkI7RUFTSSx5QkFBeUI7RUFDekIsYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixhQUFhO0VBQ2IsV0FBVyxFQUFBO0VBYmY7RUFpQkksY0FBYztFQUNkLHFCQUFxQixFQUFBO0VBbEJ6QjtFQXNCSSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLFdBQVcsRUFBQTtFQTNCZjs7SUErQk0sV0FBVyxFQUFBO0VBL0JqQjtJQW1DTSxnQkFBZ0I7SUFDaEIsY0FBYyxFQUFBO0VBcENwQjtJQXdDTSxjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixxQkFBcUI7SUFDckIsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixlQUFlLEVBQUE7RUE5Q3JCO01BaURRLG9CQUFvQixFQUFBO0VBakQ1QjtJQXNETSxhQUFhO0lBQ2IsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsbUJBQW1CLEVBQUE7RUExRHpCO01BNkRRLG9CQUFvQixFQUFBO0VBTzVCO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXO0VBQ1gsd0NBQXdDLEVBQUE7RUFFeEM7SUFDRSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4QjtJQUM5QixXQUFXLEVBQUE7RUFKWjtNQU1HLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTtFQVB0QjtRQVNLLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYyxFQUFBO0VBWG5CO1VBY08seUJBQXlCO1VBQ3pCLG9CQUFvQjtVQUNwQiw4Q0FBc0Q7a0JBQXRELHNDQUFzRCxFQUFBO0VBaEI3RDtZQW1CUyxhQUFhLEVBQUE7RUFuQnRCO1VBd0JPLG9CQUFvQjtVQUNwQix5QkFBeUI7VUFDekIsNkRBQXFFO2tCQUFyRSxxREFBcUUsRUFBQTtFQTFCNUU7VUE2Qk8sbUJBQW1CLEVBQUE7RUE3QjFCO1FBa0NLLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQixtQkFBbUIsRUFBQTtFQXRDeEI7VUF5Q08sbUJBQW1CLEVBQUE7RUFNM0I7SUFDRSw2QkFBNkI7SUFDN0IsZ0NBQWdDO0lBQ2hDLG9CQUFvQjtJQUNwQixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixlQUFlO0lBQ2YsbUJBQW1CLEVBQUE7RUFScEI7TUFXRyxhQUFhO01BQ2IsbUJBQW1CO01BQ25CLGVBQWU7TUFDZixxQkFBcUI7TUFDckIsZ0JBQWdCO01BQ2hCLGlCQUFpQjtNQUNqQixjQUFjLEVBQUE7RUFqQmpCO1FBb0JLLHlCQUF5QixFQUFBO0VBSy9CO0lBQ0Usa0JBQWtCLEVBQUE7RUFEbkI7TUFHRyxjQUFjO01BQ2QsaUJBQWlCO01BQ2pCLG1CQUFtQixFQUFBO0VBS3pCO0VBQ0Usb0JBQW9CO0VBQ3BCLGFBQWE7RUFDYixjQUFjLEVBQUE7RUFIaEI7SUFNSSx5QkFBeUI7SUFDekIsaURBQXlEO1lBQXpELHlDQUF5RCxFQUFBO0VBUDdEO0lBV0kseUJBQXlCO0lBQ3pCLDhDQUFzRDtZQUF0RCxzQ0FBc0QsRUFBQTtFQVoxRDtJQWdCSSx5QkFBeUI7SUFDekIsbURBQTJEO1lBQTNELDJDQUEyRCxFQUFBO0VBakIvRDtJQXFCSSx5QkFBeUI7SUFDekIsZ0RBQXdEO1lBQXhELHdDQUF3RCxFQUFBIiwiZmlsZSI6InNyYy9hcHAvd2FsbGV0LWRldGFpbHMvd2FsbGV0LWRldGFpbHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZm9ybS1kZXRhaWxzIHtcclxuICBtYXJnaW4tdG9wOiAxLjhyZW07XHJcblxyXG4gIC5pbnB1dC1ibG9jayB7XHJcblxyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud2FsbGV0LWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgbWFyZ2luOiAyLjlyZW0gMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubXQtMiB7XHJcbiAgbWFyZ2luLXRvcDogMnJlbTtcclxufVxyXG5cclxuLmZvcm0tc2VlZCB7XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIGNvbG9yOiAjNTU2NTc2O1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tY29udGVudCB7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjMmIzNjQ0O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgcGFkZGluZzogM3JlbTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLnRleHQtY29yYWwge1xyXG4gICAgY29sb3I6ICM0ZGIxZmY7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgfVxyXG5cclxuICAuc2VlZC1waHJhc2UtZm9ybSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIG1heC13aWR0aDogMzhyZW07XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAuaW5wdXQtYmxvY2ssXHJcbiAgICBidXR0b24ge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAuZXJyb3ItbWVzc2FnZSB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XHJcbiAgICAgIGNvbG9yOiAjZmY2ZjAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWN1cmVkLXNlZWQge1xyXG4gICAgICBjb2xvcjogI2UwZTBlMDtcclxuICAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjRyZW07XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICAgLmljb24ge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbi10b3A6IDNyZW07XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XHJcblxyXG4gICAgICAuaWNvbiB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjJyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcblxyXG4uc2VlZC1waHJhc2Uge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB3aWR0aDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cclxuICAmLXRpdGxlIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICAucmlnaHQtcGFydCB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAuaWNvbiB7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgICAgaGVpZ2h0OiAxLjdyZW07XHJcbiAgICBcclxuICAgICAgICAmLmNvcHkge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWVmYjtcclxuICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2NvcHkuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgXHJcbiAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC43NTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAmLmNvcGllZCB7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMnJlbTtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0Y2FlZmI7XHJcbiAgICAgICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvY29tcGxldGUtdGVzdHdhbGxldC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuc2VjdXJlZCwgJi51bnNlY3VyZWQge1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMnJlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICBcclxuICAgICAgc3BhbiB7XHJcbiAgICAgICAgY29sb3I6ICM1NTY1NzY7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuNHJlbTtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIFxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLWNvbnRlbnQge1xyXG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMyYjM2NDQ7XHJcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzJiMzY0NDtcclxuICAgIHBhZGRpbmc6IDFyZW0gMCAxcmVtO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcblxyXG4gICAgLml0ZW0ge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBwYWRkaW5nOiAwIDJyZW07XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyA3KTtcclxuICAgICAgbWluLWhlaWdodDogMzVweDtcclxuICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgIGNvbG9yOiAjZTBlMGUwO1xyXG5cclxuICAgICAgJi5kYXJrIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgyMDJhO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLWZvb3RlciB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAudGl0bGUge1xyXG4gICAgICBjb2xvcjogIzU1NjU3NjtcclxuICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjRyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaWNvbiB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgd2lkdGg6IDEuNnJlbTtcclxuICBoZWlnaHQ6IDEuNnJlbTtcclxuXHJcbiAgJi5zZWN1cmVkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2RhOWQ7XHJcbiAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvc2VjdXJlZC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAmLmluZm8ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRjYWVmYjtcclxuICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9pbmZvLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICB9XHJcblxyXG4gICYudW5zZWN1cmVkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7XHJcbiAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvdW5zZWN1cmVkLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICB9XHJcblxyXG4gICYuc2FmZXR5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMxMTE5MjE7XHJcbiAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvc2FmZXR5LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICB9XHJcbn0iXX0= */\"","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-wallet-details',\r\n templateUrl: './wallet-details.component.html',\r\n styleUrls: ['./wallet-details.component.scss'],\r\n})\r\nexport class WalletDetailsComponent implements OnInit, OnDestroy {\r\n seedPhrase = '';\r\n showSeed = false;\r\n copyAnimation = false;\r\n copyAnimationTimeout;\r\n\r\n detailsForm = new FormGroup({\r\n name: new FormControl('', [\r\n Validators.required,\r\n (g: FormControl) => {\r\n for (let i = 0; i < this.variablesService.wallets.length; i++) {\r\n if (g.value === this.variablesService.wallets[i].name) {\r\n if (\r\n this.variablesService.wallets[i].wallet_id ===\r\n this.variablesService.currentWallet.wallet_id\r\n ) {\r\n return { same: true };\r\n } else {\r\n return { duplicate: true };\r\n }\r\n }\r\n }\r\n return null;\r\n },\r\n ]),\r\n path: new FormControl(''),\r\n });\r\n\r\n seedPhraseForm = new FormGroup(\r\n {\r\n password: new FormControl(\r\n '',\r\n Validators.pattern(this.variablesService.pattern)\r\n ),\r\n confirmPassword: new FormControl(\r\n '',\r\n Validators.pattern(this.variablesService.pattern)\r\n ),\r\n },\r\n { validators: this.checkPasswords }\r\n );\r\n\r\n checkPasswords(group: FormGroup) {\r\n const pass = group.controls.password.value;\r\n const confirmPass = group.controls.confirmPassword.value;\r\n\r\n return pass === confirmPass ? null : { notSame: true };\r\n }\r\n\r\n constructor(\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private ngZone: NgZone,\r\n private location: Location\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.showSeed = false;\r\n this.detailsForm\r\n .get('name')\r\n .setValue(this.variablesService.currentWallet.name);\r\n this.detailsForm\r\n .get('path')\r\n .setValue(this.variablesService.currentWallet.path);\r\n }\r\n\r\n showSeedPhrase() {\r\n this.showSeed = true;\r\n }\r\n\r\n onSubmitSeed() {\r\n if (this.seedPhraseForm.valid) {\r\n this.showSeedPhrase();\r\n const wallet_id = this.variablesService.currentWallet.wallet_id;\r\n const seed_password = this.seedPhraseForm.controls.password.value;\r\n this.backend.getSmartWalletInfo(\r\n { wallet_id, seed_password },\r\n (status, data) => {\r\n if (data.hasOwnProperty('seed_phrase')) {\r\n this.ngZone.run(() => {\r\n this.seedPhrase = data['seed_phrase'].trim();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n onSubmitEdit() {\r\n if (this.detailsForm.value) {\r\n this.variablesService.currentWallet.name = this.detailsForm.get(\r\n 'name'\r\n ).value;\r\n this.ngZone.run(() => {\r\n this.router.navigate([\r\n '/wallet/' + this.variablesService.currentWallet.wallet_id,\r\n ]);\r\n });\r\n }\r\n }\r\n\r\n closeWallet() {\r\n this.backend.closeWallet(\r\n this.variablesService.currentWallet.wallet_id,\r\n () => {\r\n for (let i = this.variablesService.wallets.length - 1; i >= 0; i--) {\r\n if (\r\n this.variablesService.wallets[i].wallet_id ===\r\n this.variablesService.currentWallet.wallet_id\r\n ) {\r\n this.variablesService.wallets.splice(i, 1);\r\n }\r\n }\r\n this.ngZone.run(() => {\r\n if (this.variablesService.wallets.length) {\r\n this.variablesService.currentWallet = this.variablesService.wallets[0];\r\n this.router.navigate([\r\n '/wallet/' + this.variablesService.currentWallet.wallet_id,\r\n ]);\r\n } else {\r\n this.router.navigate(['/']);\r\n }\r\n });\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n }\r\n );\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n copySeedPhrase() {\r\n this.backend.setClipboard(this.seedPhrase);\r\n this.copyAnimation = true;\r\n this.copyAnimationTimeout = window.setTimeout(() => {\r\n this.copyAnimation = false;\r\n }, 2000);\r\n }\r\n\r\n ngOnDestroy() {\r\n clearTimeout(this.copyAnimationTimeout);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n

{{variablesService.currentWallet.name}}

\\r\\n
\\r\\n \\r\\n
\\r\\n {{variablesService.currentWallet.alias['name']}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{variablesService.currentWallet.address}}\\r\\n \\r\\n
\\r\\n
\\r\\n {{variablesService.currentWallet.balance | intToMoney : '3'}} {{variablesService.defaultCurrency}}\\r\\n $ {{variablesService.currentWallet.getMoneyEquivalent(variablesService.moneyEquivalent) | intToMoney | number : '1.2-2'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ tab.title | translate }}\\r\\n {{variablesService.currentWallet.new_contracts}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n <\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n >\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n Hide mining transactions\\r\\n
\\r\\n {{ 'STAKING.SWITCH.ON' | translate }}\\r\\n \\r\\n {{ 'STAKING.SWITCH.OFF' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n padding: 0 3rem 3rem;\\n min-width: 95rem;\\n width: 100%;\\n height: 100%; }\\n\\n.header {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n flex: 0 0 auto;\\n height: 8rem; }\\n\\n.header > div {\\n display: flex;\\n align-items: center; }\\n\\n.header > div :not(:last-child) {\\n margin-right: 3.2rem; }\\n\\n.header h3 {\\n font-size: 1.7rem;\\n font-weight: 600;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap;\\n max-width: 50rem;\\n line-height: 2.7rem; }\\n\\n.header button {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n cursor: pointer;\\n font-weight: 400;\\n outline: none;\\n padding: 0; }\\n\\n.header button .icon {\\n margin-right: 1.2rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.header button .icon.account {\\n height: 1.6rem;\\n -webkit-mask: url('account.svg') no-repeat center;\\n mask: url('account.svg') no-repeat center; }\\n\\n.header button .icon.lock {\\n -webkit-mask: url('lock.svg') no-repeat center;\\n mask: url('lock.svg') no-repeat center; }\\n\\n.header button .icon.details {\\n -webkit-mask: url('details-settings.svg') no-repeat center;\\n mask: url('details-settings.svg') no-repeat center;\\n margin-right: 0;\\n height: 1.8rem; }\\n\\n.header button .icon.close-wallet {\\n -webkit-mask: url('close-wallet.svg') no-repeat center;\\n mask: url('close-wallet.svg') no-repeat center;\\n margin-right: 0; }\\n\\n.header .alias {\\n display: flex;\\n align-items: center;\\n font-size: 1.3rem; }\\n\\n.header .alias .icon {\\n cursor: pointer;\\n margin-right: 1.2rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.header .alias .icon.edit {\\n -webkit-mask: url('details.svg') no-repeat center;\\n mask: url('details.svg') no-repeat center; }\\n\\n.header .alias .icon.transfer {\\n -webkit-mask: url('send.svg') no-repeat center;\\n mask: url('send.svg') no-repeat center; }\\n\\n.address {\\n display: flex;\\n align-items: center;\\n flex: 0 0 auto;\\n font-size: 1.4rem;\\n line-height: 1.7rem; }\\n\\n.address .icon {\\n cursor: pointer;\\n margin-left: 1.2rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.address .icon.copy {\\n width: 1.8rem;\\n -webkit-mask: url('copy.svg') no-repeat center;\\n mask: url('copy.svg') no-repeat center; }\\n\\n.address .icon.copy:hover {\\n opacity: 0.75; }\\n\\n.address .icon.copied {\\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\\n mask: url('complete-testwallet.svg') no-repeat center; }\\n\\n.balance {\\n display: flex;\\n align-items: flex-end;\\n justify-content: flex-start;\\n flex: 0 0 auto;\\n margin: 2.6rem 0; }\\n\\n.balance :first-child {\\n font-size: 3.3rem;\\n font-weight: 600;\\n line-height: 2.4rem;\\n margin-right: 3.5rem; }\\n\\n.balance :last-child {\\n font-size: 1.8rem;\\n font-weight: 600;\\n line-height: 1.3rem; }\\n\\n.tabs {\\n display: flex;\\n flex-direction: column;\\n flex: 1 1 auto; }\\n\\n.tabs .tabs-header {\\n display: flex;\\n justify-content: space-between;\\n flex: 0 0 auto; }\\n\\n.tabs .tabs-header .tab {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex: 1 0 auto;\\n cursor: pointer;\\n padding: 0 1rem;\\n height: 5rem; }\\n\\n.tabs .tabs-header .tab.hide {\\n display: none; }\\n\\n.tabs .tabs-header .tab .animated {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin-right: 1.3rem; }\\n\\n.tabs .tabs-header .tab .animated ::ng-deep svg {\\n width: 2rem;\\n height: 2rem; }\\n\\n.tabs .tabs-header .tab .animated ::ng-deep svg path, .tabs .tabs-header .tab .animated ::ng-deep svg circle, .tabs .tabs-header .tab .animated ::ng-deep svg polygon {\\n fill: #4db1ff; }\\n\\n.tabs .tabs-header .tab .icon {\\n margin-right: 1.3rem;\\n width: 2rem;\\n height: 2rem; }\\n\\n.tabs .tabs-header .tab .icon.send {\\n -webkit-mask: url('send.svg') no-repeat center;\\n mask: url('send.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.receive {\\n -webkit-mask: url('receive.svg') no-repeat center;\\n mask: url('receive.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.history {\\n -webkit-mask: url('history.svg') no-repeat center;\\n mask: url('history.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.contracts {\\n -webkit-mask: url('contracts.svg') no-repeat center;\\n mask: url('contracts.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.messages {\\n -webkit-mask: url('message.svg') no-repeat center;\\n mask: url('message.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.staking {\\n -webkit-mask: url('staking.svg') no-repeat center;\\n mask: url('staking.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .indicator {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 1rem;\\n font-size: 1rem;\\n font-weight: 600;\\n margin-left: 1.3rem;\\n padding: 0 0.5rem;\\n min-width: 1.6rem;\\n height: 1.6rem; }\\n\\n.tabs .tabs-header .tab.disabled {\\n cursor: url('not-allowed.svg'), not-allowed; }\\n\\n.tabs .tabs-header .tab:not(:last-child) {\\n margin-right: 0.3rem; }\\n\\n.tabs .tabs-content {\\n display: flex;\\n padding: 3rem;\\n flex: 1 1 auto;\\n overflow-x: hidden;\\n overflow-y: overlay; }\\n\\n.tabs .pagination-wrapper .pagination {\\n padding: 1rem;\\n display: flex;\\n justify-content: space-between;\\n align-items: center; }\\n\\n.tabs .pagination-wrapper .pagination button {\\n margin-right: 0.5rem;\\n padding: 0;\\n width: 2.5rem;\\n height: 2.5rem;\\n font-size: 1.2rem;\\n transition: all 0.3s; }\\n\\n.tabs .pagination-wrapper .pagination .disabled {\\n background-color: #18202a;\\n color: #e0e0e0;\\n opacity: 0.3;\\n cursor: default;\\n transition: all 0.3s; }\\n\\n.mining-transaction-switch {\\n display: flex;\\n align-items: center; }\\n\\n.mining-transaction-switch .switch-text {\\n margin-right: 1rem;\\n font-size: 1.3rem;\\n color: #565c62; }\\n\\n.mining-transaction-switch .switch {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n border-radius: 1rem;\\n cursor: pointer;\\n font-size: 1rem;\\n padding: 0.5rem;\\n width: 5rem;\\n height: 2rem; }\\n\\n.mining-transaction-switch .switch .circle {\\n border-radius: 1rem;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n.mining-transaction-switch .switch .option {\\n margin: 0 0.2rem;\\n line-height: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvd2FsbGV0L0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXHdhbGxldFxcd2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsb0JBQW9CO0VBQ3BCLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsWUFBWSxFQUFBOztBQUdkO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsY0FBYztFQUNkLFlBQVksRUFBQTs7QUFMZDtJQVFJLGFBQWE7SUFDYixtQkFBbUIsRUFBQTs7QUFUdkI7TUFZTSxvQkFBb0IsRUFBQTs7QUFaMUI7SUFpQkksaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQix1QkFBdUI7SUFDdkIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsbUJBQW1CLEVBQUE7O0FBdkJ2QjtJQTJCSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixZQUFZO0lBQ1osZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixhQUFhO0lBQ2IsVUFBVSxFQUFBOztBQWxDZDtNQXFDTSxvQkFBb0I7TUFDcEIsYUFBYTtNQUNiLGNBQWMsRUFBQTs7QUF2Q3BCO1FBMENRLGNBQWM7UUFDZCxpREFBMEQ7Z0JBQTFELHlDQUEwRCxFQUFBOztBQTNDbEU7UUErQ1EsOENBQXVEO2dCQUF2RCxzQ0FBdUQsRUFBQTs7QUEvQy9EO1FBbURRLDBEQUFtRTtnQkFBbkUsa0RBQW1FO1FBQ25FLGVBQWU7UUFDZixjQUFjLEVBQUE7O0FBckR0QjtRQXlEUSxzREFBK0Q7Z0JBQS9ELDhDQUErRDtRQUMvRCxlQUFlLEVBQUE7O0FBMUR2QjtJQWdFSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGlCQUFpQixFQUFBOztBQWxFckI7TUFxRU0s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QVksRUFBQTs7QUFsQmhCO01BcUJNLG1CQUFtQjtNQUNuQixhQUFhO01BQ2IsY0FBYyxFQUFBOztBQXZCcEI7TUEyQk0sZ0JBQWdCO01BQ2hCLG1CQUFtQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvd2FsbGV0L3dhbGxldC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHBhZGRpbmc6IDAgM3JlbSAzcmVtO1xyXG4gIG1pbi13aWR0aDogOTVyZW07XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uaGVhZGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIGhlaWdodDogOHJlbTtcclxuXHJcbiAgPiBkaXYge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDMuMnJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGgzIHtcclxuICAgIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBtYXgtd2lkdGg6IDUwcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjJyZW07XHJcbiAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgIGhlaWdodDogMS43cmVtO1xyXG5cclxuICAgICAgJi5hY2NvdW50IHtcclxuICAgICAgICBoZWlnaHQ6IDEuNnJlbTtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2FjY291bnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmxvY2sge1xyXG4gICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvbG9jay5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuZGV0YWlscyB7XHJcbiAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9kZXRhaWxzLXNldHRpbmdzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiAxLjhyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuY2xvc2Utd2FsbGV0IHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2Nsb3NlLXdhbGxldC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuYWxpYXMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjJyZW07XHJcbiAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgIGhlaWdodDogMS43cmVtO1xyXG5cclxuICAgICAgJi5lZGl0IHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2RldGFpbHMuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnRyYW5zZmVyIHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3NlbmQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uYWRkcmVzcyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjdyZW07XHJcblxyXG4gIC5pY29uIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07XHJcbiAgICB3aWR0aDogMS43cmVtO1xyXG4gICAgaGVpZ2h0OiAxLjdyZW07XHJcblxyXG4gICAgJi5jb3B5IHtcclxuICAgICAgd2lkdGg6IDEuOHJlbTtcclxuICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9jb3B5LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIG9wYWNpdHk6IDAuNzU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmNvcGllZCB7XHJcbiAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvY29tcGxldGUtdGVzdHdhbGxldC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uYmFsYW5jZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIG1hcmdpbjogMi42cmVtIDA7XHJcblxyXG4gIDpmaXJzdC1jaGlsZCB7XHJcbiAgICBmb250LXNpemU6IDMuM3JlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAzLjVyZW07XHJcbiAgfVxyXG5cclxuICA6bGFzdC1jaGlsZCB7XHJcbiAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zcmVtO1xyXG4gIH1cclxufVxyXG5cclxuLnRhYnMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBmbGV4OiAxIDEgYXV0bztcclxuXHJcbiAgLnRhYnMtaGVhZGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4OiAwIDAgYXV0bztcclxuXHJcbiAgICAudGFiIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICAgICAgaGVpZ2h0OiA1cmVtO1xyXG4gICAgICAmLmhpZGUge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgICAgLmFuaW1hdGVkIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjNyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5hbmltYXRlZCA6Om5nLWRlZXAgc3ZnIHtcclxuXHJcbiAgICAgICAgd2lkdGg6IDJyZW07XHJcbiAgICAgICAgaGVpZ2h0OiAycmVtO1xyXG5cclxuICAgICAgICBwYXRoLCBjaXJjbGUsIHBvbHlnb24ge1xyXG4gICAgICAgICAgZmlsbDogIzRkYjFmZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5pY29uIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuM3JlbTtcclxuICAgICAgICB3aWR0aDogMnJlbTtcclxuICAgICAgICBoZWlnaHQ6IDJyZW07XHJcblxyXG4gICAgICAgICYuc2VuZCB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3NlbmQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5yZWNlaXZlIHtcclxuICAgICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvcmVjZWl2ZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmhpc3Rvcnkge1xyXG4gICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9oaXN0b3J5LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuY29udHJhY3RzIHtcclxuICAgICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvY29udHJhY3RzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYubWVzc2FnZXMge1xyXG4gICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9tZXNzYWdlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuc3Rha2luZyB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3N0YWtpbmcuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmluZGljYXRvciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuM3JlbTtcclxuICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcclxuICAgICAgICBtaW4td2lkdGg6IDEuNnJlbTtcclxuICAgICAgICBoZWlnaHQ6IDEuNnJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5kaXNhYmxlZCB7XHJcbiAgICAgICAgY3Vyc29yOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL25vdC1hbGxvd2VkLnN2ZyksIG5vdC1hbGxvd2VkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMC4zcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudGFicy1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBwYWRkaW5nOiAzcmVtO1xyXG4gICAgZmxleDogMSAxIGF1dG87XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICBvdmVyZmxvdy15OiBvdmVybGF5O1xyXG4gIH1cclxuXHJcblxyXG4gIC5wYWdpbmF0aW9uLXdyYXBwZXIge1xyXG4gICAgLnBhZ2luYXRpb24ge1xyXG4gICAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB3aWR0aDogMi41cmVtO1xyXG4gICAgICAgIGhlaWdodDogMi41cmVtO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG4gICAgICB9XHJcbiAgICAgIC5kaXNhYmxlZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE4MjAyYTtcclxuICAgICAgICBjb2xvcjogI2UwZTBlMDtcclxuICAgICAgICBvcGFjaXR5OiAwLjM7XHJcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubWluaW5nLXRyYW5zYWN0aW9uLXN3aXRjaCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIC5zd2l0Y2gtdGV4dCB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIGNvbG9yOiAjNTY1YzYyO1xyXG4gIH1cclxuXHJcbiAgLnN3aXRjaCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICBwYWRkaW5nOiAwLjVyZW07XHJcbiAgICB3aWR0aDogNXJlbTtcclxuICAgIGhlaWdodDogMnJlbTtcclxuXHJcbiAgICAuY2lyY2xlIHtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcclxuICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLm9wdGlvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjJyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0= */\"","import { Component, OnInit, OnDestroy, NgZone, ViewChild, ElementRef } from '@angular/core';\r\nimport { ActivatedRoute, Router, RoutesRecognized } from '@angular/router';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { IntToMoneyPipe } from '../_helpers/pipes/int-to-money.pipe';\r\nimport {Subscription} from 'rxjs';\r\nimport { LOCKED_BALANCE_HELP_PAGE } from '../_shared/constants';\r\n\r\nimport icons from '../../assets/icons/icons.json';\r\nimport {PaginationService} from '../_helpers/services/pagination.service';\r\nimport {PaginationStore} from '../_helpers/services/pagination.store';\r\nimport {Store, Sync} from 'store';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {distinctUntilChanged, filter} from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-wallet',\r\n templateUrl: './wallet.component.html',\r\n styleUrls: ['./wallet.component.scss'],\r\n})\r\nexport class WalletComponent implements OnInit, OnDestroy {\r\n subRouting1;\r\n subRouting2;\r\n queryRouting;\r\n walletID;\r\n copyAnimation = false;\r\n copyAnimationTimeout;\r\n balanceTooltip;\r\n walletLoaded;\r\n activeTab = 'history';\r\n public mining = false;\r\n public currentPage = 1;\r\n wallet: Wallet;\r\n sync_started = false;\r\n stop_paginate = false;\r\n\r\n @ViewChild('scrolledContent') private scrolledContent: ElementRef;\r\n\r\n tabs = [\r\n {\r\n title: 'WALLET.TABS.HISTORY',\r\n icon: 'history',\r\n link: '/history',\r\n indicator: false,\r\n active: true,\r\n animated: icons.history,\r\n itemHovered: false\r\n },\r\n {\r\n title: 'WALLET.TABS.SEND',\r\n icon: 'send',\r\n link: '/send',\r\n indicator: false,\r\n active: false,\r\n animated: icons.send,\r\n itemHovered: false\r\n },\r\n {\r\n title: 'WALLET.TABS.RECEIVE',\r\n icon: 'receive',\r\n link: '/receive',\r\n indicator: false,\r\n active: false,\r\n animated: icons.receive,\r\n itemHovered: false\r\n },\r\n {\r\n title: 'WALLET.TABS.CONTRACTS',\r\n icon: 'contracts',\r\n link: '/contracts',\r\n indicator: 1,\r\n active: false,\r\n animated: icons.contracts,\r\n itemHovered: false\r\n },\r\n /*{\r\n title: 'WALLET.TABS.MESSAGES',\r\n icon: 'messages',\r\n link: '/messages',\r\n indicator: 32,\r\n active: false,\r\n animated: icons.messages,\r\n itemHovered: false\r\n },*/\r\n {\r\n title: 'WALLET.TABS.STAKING',\r\n icon: 'staking',\r\n link: '/staking',\r\n indicator: false,\r\n active: false,\r\n animated: icons.staking,\r\n itemHovered: false\r\n }\r\n ];\r\n aliasSubscription: Subscription;\r\n walletsSubscription: Subscription;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService,\r\n private intToMoneyPipe: IntToMoneyPipe,\r\n private pagination: PaginationService,\r\n private paginationStore: PaginationStore,\r\n private store: Store,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subRouting1 = this.route.params.subscribe(params => {\r\n // set current wallet only by user click to avoid after sync show synchronized data\r\n this.walletID = +params['id'];\r\n this.variablesService.setCurrentWallet(this.walletID);\r\n this.walletsSubscription = this.store.select('sync').pipe(\r\n filter(Boolean),\r\n distinctUntilChanged(),\r\n ).subscribe(value => {\r\n const data = value.filter((item: Sync) => item.wallet_id === this.walletID)[0];\r\n if (data && !data.sync) {\r\n let in_progress;\r\n const values = this.store.value.sync;\r\n if (values && values.length) {\r\n in_progress = values.filter(item => item.sync);\r\n this.variablesService.sync_started = !!(in_progress && in_progress.length);\r\n if (!in_progress) {\r\n this.variablesService.sync_started = false;\r\n }\r\n } else {\r\n this.variablesService.sync_started = false;\r\n }\r\n }\r\n let restore = false;\r\n if (this.variablesService.after_sync_request.hasOwnProperty(this.walletID)) {\r\n restore = this.variablesService.after_sync_request[this.walletID];\r\n }\r\n if (!this.variablesService.sync_started && restore && this.walletID === (data && data.wallet_id)) {\r\n this.wallet = this.variablesService.getNotLoadedWallet();\r\n if (this.wallet) {\r\n this.tick();\r\n }\r\n // if this is was restore wallet and it was selected on moment when sync completed\r\n this.getRecentTransfers();\r\n this.variablesService.after_sync_request[this.walletID] = false;\r\n }\r\n });\r\n let after_sync_request = false;\r\n if (this.variablesService.after_sync_request.hasOwnProperty(this.walletID)) {\r\n after_sync_request = this.variablesService.after_sync_request[this.walletID];\r\n }\r\n if (after_sync_request && !this.variablesService.sync_started) {\r\n // if user click on the wallet at the first time after restore.\r\n this.getRecentTransfers();\r\n }\r\n\r\n if (this.variablesService.stop_paginate.hasOwnProperty(this.walletID)) {\r\n this.stop_paginate = this.variablesService.stop_paginate[this.walletID];\r\n } else {\r\n this.stop_paginate = false;\r\n }\r\n // this will hide pagination a bit earlier\r\n this.wallet = this.variablesService.getNotLoadedWallet();\r\n if (this.wallet) {\r\n this.tick();\r\n }\r\n\r\n this.scrolledContent.nativeElement.scrollTop = 0;\r\n clearTimeout(this.copyAnimationTimeout);\r\n this.copyAnimation = false;\r\n this.mining = this.variablesService.currentWallet.exclude_mining_txs;\r\n\r\n\r\n if (this.variablesService.wallets.length === 1) {\r\n this.walletID = +params['id'];\r\n this.variablesService.setCurrentWallet(this.walletID);\r\n }\r\n });\r\n this.subRouting2 = this.router.events.subscribe(val => {\r\n if (val instanceof RoutesRecognized) {\r\n this.activeTab = val.urlAfterRedirects.replace('?sidenav=true', '').split('/').pop();\r\n if (val.state.root.firstChild && val.state.root.firstChild.firstChild) {\r\n for (let i = 0; i < this.tabs.length; i++) {\r\n this.tabs[i].active = (this.tabs[i].link === '/' + val.state.root.firstChild.firstChild.url[0].path);\r\n }\r\n }\r\n }\r\n });\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.send) {\r\n this.tabs.forEach((tab, index) => {\r\n if (tab.link === '/send') {\r\n this.changeTab(index);\r\n }\r\n });\r\n }\r\n });\r\n if (this.variablesService.currentWallet.alias.hasOwnProperty('name')) {\r\n this.variablesService.currentWallet.wakeAlias = false;\r\n }\r\n this.aliasSubscription = this.variablesService.getAliasChangedEvent.subscribe(() => {\r\n if (this.variablesService.currentWallet.alias.hasOwnProperty('name')) {\r\n this.variablesService.currentWallet.wakeAlias = false;\r\n }\r\n });\r\n this.updateWalletStatus();\r\n }\r\n resetPaginationValues() {\r\n this.ngZone.run(() => {\r\n const total_history_item = this.variablesService.currentWallet.total_history_item;\r\n const count = this.variablesService.count;\r\n this.variablesService.currentWallet.totalPages = Math.ceil( total_history_item / count);\r\n this.variablesService.currentWallet.exclude_mining_txs = this.mining;\r\n this.variablesService.currentWallet.currentPage = 1;\r\n\r\n if (!this.variablesService.currentWallet.totalPages) {\r\n this.variablesService.currentWallet.totalPages = 1;\r\n }\r\n this.variablesService.currentWallet.totalPages > this.variablesService.maxPages\r\n ? this.variablesService.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : this.variablesService.currentWallet.pages = new Array(this.variablesService.currentWallet.totalPages).fill(1).map((value, index) => value + index);\r\n })\r\n }\r\n\r\n changeTab(index) {\r\n if (((this.tabs[index].link === '/send' || this.tabs[index].link === '/contracts' || this.tabs[index].link === '/staking') && (this.variablesService.daemon_state !== 2 || !this.variablesService.currentWallet.loaded))\r\n || ((this.tabs[index].link === '/send' || this.tabs[index].link === '/contracts') && this.variablesService.currentWallet.is_watch_only && this.variablesService.currentWallet.is_auditable)) {\r\n return;\r\n }\r\n this.tabs.forEach((tab) => {\r\n tab.active = false;\r\n });\r\n this.tabs[index].active = true;\r\n this.ngZone.run(() => {\r\n this.scrolledContent.nativeElement.scrollTop = 0;\r\n this.router.navigate(['wallet/' + this.walletID + this.tabs[index].link]);\r\n });\r\n }\r\n\r\n itemHovered(index, state: boolean) {\r\n this.tabs[index].itemHovered = state;\r\n }\r\n\r\n copyAddress() {\r\n this.backend.setClipboard(this.variablesService.currentWallet.address);\r\n this.copyAnimation = true;\r\n this.copyAnimationTimeout = window.setTimeout(() => {\r\n this.copyAnimation = false;\r\n }, 2000);\r\n }\r\n\r\n getTooltip() {\r\n this.balanceTooltip = document.createElement('div');\r\n const available = document.createElement('span');\r\n available.setAttribute('class', 'available');\r\n available.innerHTML = this.translate.instant('WALLET.AVAILABLE_BALANCE', { available: this.intToMoneyPipe.transform(this.variablesService.currentWallet.unlocked_balance), currency: this.variablesService.defaultCurrency });\r\n this.balanceTooltip.appendChild(available);\r\n const locked = document.createElement('span');\r\n locked.setAttribute('class', 'locked');\r\n locked.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE', { locked: this.intToMoneyPipe.transform(this.variablesService.currentWallet.balance.minus(this.variablesService.currentWallet.unlocked_balance)), currency: this.variablesService.defaultCurrency });\r\n this.balanceTooltip.appendChild(locked);\r\n const link = document.createElement('span');\r\n link.setAttribute('class', 'link');\r\n link.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE_LINK');\r\n link.addEventListener('click', () => {\r\n this.openInBrowser(LOCKED_BALANCE_HELP_PAGE);\r\n });\r\n this.balanceTooltip.appendChild(link);\r\n return this.balanceTooltip;\r\n }\r\n\r\n onHideTooltip() {\r\n this.balanceTooltip = null;\r\n }\r\n\r\n openInBrowser(link) {\r\n this.backend.openUrlInBrowser(link);\r\n }\r\n\r\n public setPage(pageNumber: number) {\r\n // this is will allow pagination for wallets that was open from existed wallets'\r\n if (this.variablesService.currentWallet.open_from_exist && !this.variablesService.currentWallet.updated) {\r\n this.variablesService.get_recent_transfers = false;\r\n this.variablesService.currentWallet.updated = true;\r\n }\r\n if (pageNumber === this.variablesService.currentWallet.currentPage) {\r\n return;\r\n }\r\n // if not running get_recent_transfers callback\r\n if (!this.variablesService.get_recent_transfers) {\r\n this.variablesService.currentWallet.currentPage = pageNumber;\r\n }\r\n if (!this.variablesService.get_recent_transfers) {\r\n this.getRecentTransfers();\r\n }\r\n }\r\n\r\n toggleMiningTransactions() {\r\n if (!this.variablesService.sync_started && !this.wallet) {\r\n const value = this.paginationStore.value;\r\n if (!value) {\r\n this.paginationStore.setPage(1, 0, this.walletID); // add back page for the first page\r\n } else {\r\n const pages = value.filter(item => item.walletID === this.walletID);\r\n if (!pages.length) {\r\n this.paginationStore.setPage(1, 0, this.walletID); // add back page for the first page\r\n }\r\n }\r\n this.mining = !this.mining;\r\n this.resetPaginationValues();\r\n this.getRecentTransfers();\r\n }\r\n }\r\n\r\n tick() {\r\n const walletInterval = setInterval(() => {\r\n this.wallet = this.variablesService.getNotLoadedWallet();\r\n if (!this.wallet) {\r\n clearInterval(walletInterval);\r\n }\r\n }, 1000);\r\n }\r\n\r\n getRecentTransfers () {\r\n const offset = this.pagination.getOffset(this.walletID);\r\n const value = this.paginationStore.value;\r\n const pages = value ? value.filter(item => item.walletID === this.walletID) : [];\r\n\r\n this.backend.getRecentTransfers(\r\n this.walletID,\r\n offset,\r\n this.variablesService.count, this.variablesService.currentWallet.exclude_mining_txs, (status, data) => {\r\n const isForward = this.paginationStore.isForward(pages, this.variablesService.currentWallet.currentPage);\r\n if (this.mining && isForward && pages && pages.length === 1) {\r\n this.variablesService.currentWallet.currentPage = 1; // set init page after navigation back\r\n }\r\n\r\n const history = (data && data.history);\r\n this.variablesService.stop_paginate[this.walletID] = history && history.length < this.variablesService.count || !history;\r\n this.stop_paginate = this.variablesService.stop_paginate[this.walletID];\r\n if (!this.variablesService.stop_paginate[this.walletID]) {\r\n const page = this.variablesService.currentWallet.currentPage + 1;\r\n if (isForward && this.mining && history && history.length === this.variablesService.count) {\r\n this.paginationStore.setPage(page, data.last_item_index, this.walletID); // add back page for current page\r\n }\r\n }\r\n\r\n this.pagination.calcPages(data);\r\n this.pagination.prepareHistory(data, status);\r\n\r\n this.ngZone.run(() => {\r\n this.variablesService.get_recent_transfers = false;\r\n if (this.variablesService.after_sync_request.hasOwnProperty(this.walletID)) {\r\n // this is will complete get_recent_transfers request\r\n // this will switch of\r\n this.variablesService.after_sync_request[this.walletID] = false;\r\n }\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subRouting1.unsubscribe();\r\n this.subRouting2.unsubscribe();\r\n this.queryRouting.unsubscribe();\r\n this.aliasSubscription.unsubscribe();\r\n if (this.walletsSubscription) {\r\n this.walletsSubscription.unsubscribe();\r\n }\r\n clearTimeout(this.copyAnimationTimeout);\r\n }\r\n\r\n updateWalletStatus() {\r\n this.backend.eventSubscribe('update_wallet_status', (data) => {\r\n const wallet_state = data.wallet_state;\r\n this.walletLoaded = false;\r\n if (wallet_state === 2) {\r\n this.walletLoaded = true;\r\n }\r\n });\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\nimport 'lodash';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","import { pluck, distinctUntilChanged } from 'rxjs/operators';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { Wallet } from './app/_helpers/models/wallet.model';\r\nexport interface Sync {\r\n sync: boolean;\r\n wallet_id: number;\r\n}\r\n\r\nexport interface State {\r\n wallets: Wallet[];\r\n sync: Sync[];\r\n [key: string]: any;\r\n}\r\n\r\nconst state: State = {\r\n wallets: undefined,\r\n sync: undefined,\r\n};\r\n\r\nexport class Store {\r\n private subject = new BehaviorSubject(state);\r\n private store = this.subject.asObservable().pipe(distinctUntilChanged());\r\n\r\n get value() {\r\n return this.subject.value;\r\n }\r\n\r\n select(name: string): Observable {\r\n return this.store.pipe(pluck(name));\r\n }\r\n\r\n // tslint:disable-next-line:no-shadowed-variable\r\n set(name: string, state: any) {\r\n this.subject.next({ ...this.value, [name]: state });\r\n }\r\n}\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/_helpers/directives/confirm-modal/confirm-modal.component.html","webpack:///./src/app/_helpers/directives/confirm-modal/confirm-modal.component.scss","webpack:///./src/app/_helpers/directives/confirm-modal/confirm-modal.component.ts","webpack:///./src/app/_helpers/directives/input-disable-selection/input-disable-selection.directive.ts","webpack:///./src/app/_helpers/directives/input-validate/input-validate.directive.ts","webpack:///./src/app/_helpers/directives/modal-container/modal-container.component.html","webpack:///./src/app/_helpers/directives/modal-container/modal-container.component.scss","webpack:///./src/app/_helpers/directives/modal-container/modal-container.component.ts","webpack:///./src/app/_helpers/directives/progress-container/progress-container.component.html","webpack:///./src/app/_helpers/directives/progress-container/progress-container.component.scss","webpack:///./src/app/_helpers/directives/progress-container/progress-container.component.ts","webpack:///./src/app/_helpers/directives/staking-switch/staking-switch.component.html","webpack:///./src/app/_helpers/directives/staking-switch/staking-switch.component.scss","webpack:///./src/app/_helpers/directives/staking-switch/staking-switch.component.ts","webpack:///./src/app/_helpers/directives/tooltip.directive.ts","webpack:///./src/app/_helpers/directives/transaction-details/transaction-details.component.html","webpack:///./src/app/_helpers/directives/transaction-details/transaction-details.component.scss","webpack:///./src/app/_helpers/directives/transaction-details/transaction-details.component.ts","webpack:///./src/app/_helpers/models/transaction.model.ts","webpack:///./src/app/_helpers/models/wallet.model.ts","webpack:///./src/app/_helpers/pipes/contract-status-messages.pipe.ts","webpack:///./src/app/_helpers/pipes/contract-time-left.pipe.ts","webpack:///./src/app/_helpers/pipes/history-type-messages.pipe.ts","webpack:///./src/app/_helpers/pipes/int-to-money.pipe.ts","webpack:///./src/app/_helpers/pipes/money-to-int.pipe.ts","webpack:///./src/app/_helpers/pipes/safe-html.pipe.ts","webpack:///./src/app/_helpers/services/backend.service.ts","webpack:///./src/app/_helpers/services/modal.service.ts","webpack:///./src/app/_helpers/services/pagination.service.ts","webpack:///./src/app/_helpers/services/pagination.store.ts","webpack:///./src/app/_helpers/services/utils.service.ts","webpack:///./src/app/_helpers/services/variables.service.ts","webpack:///./src/app/_shared/constants.ts","webpack:///./src/app/add-contacts/add-contacts.component.html","webpack:///./src/app/add-contacts/add-contacts.component.scss","webpack:///./src/app/add-contacts/add-contacts.component.ts","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.scss","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/assign-alias/assign-alias.component.html","webpack:///./src/app/assign-alias/assign-alias.component.scss","webpack:///./src/app/assign-alias/assign-alias.component.ts","webpack:///./src/app/contact-send/contact-send.component.html","webpack:///./src/app/contact-send/contact-send.component.scss","webpack:///./src/app/contact-send/contact-send.component.ts","webpack:///./src/app/contacts/contacts.component.html","webpack:///./src/app/contacts/contacts.component.scss","webpack:///./src/app/contacts/contacts.component.ts","webpack:///./src/app/contracts/contracts.component.html","webpack:///./src/app/contracts/contracts.component.scss","webpack:///./src/app/contracts/contracts.component.ts","webpack:///./src/app/create-wallet/create-wallet.component.html","webpack:///./src/app/create-wallet/create-wallet.component.scss","webpack:///./src/app/create-wallet/create-wallet.component.ts","webpack:///./src/app/edit-alias/edit-alias.component.html","webpack:///./src/app/edit-alias/edit-alias.component.scss","webpack:///./src/app/edit-alias/edit-alias.component.ts","webpack:///./src/app/export-import/export-import.component.html","webpack:///./src/app/export-import/export-import.component.scss","webpack:///./src/app/export-import/export-import.component.ts","webpack:///./src/app/history/history.component.html","webpack:///./src/app/history/history.component.scss","webpack:///./src/app/history/history.component.ts","webpack:///./src/app/login/login.component.html","webpack:///./src/app/login/login.component.scss","webpack:///./src/app/login/login.component.ts","webpack:///./src/app/main/main.component.html","webpack:///./src/app/main/main.component.scss","webpack:///./src/app/main/main.component.ts","webpack:///./src/app/messages/messages.component.html","webpack:///./src/app/messages/messages.component.scss","webpack:///./src/app/messages/messages.component.ts","webpack:///./src/app/open-wallet-modal/open-wallet-modal.component.html","webpack:///./src/app/open-wallet-modal/open-wallet-modal.component.scss","webpack:///./src/app/open-wallet-modal/open-wallet-modal.component.ts","webpack:///./src/app/open-wallet/open-wallet.component.html","webpack:///./src/app/open-wallet/open-wallet.component.scss","webpack:///./src/app/open-wallet/open-wallet.component.ts","webpack:///./src/app/purchase/purchase.component.html","webpack:///./src/app/purchase/purchase.component.scss","webpack:///./src/app/purchase/purchase.component.ts","webpack:///./src/app/receive/receive.component.html","webpack:///./src/app/receive/receive.component.scss","webpack:///./src/app/receive/receive.component.ts","webpack:///./src/app/restore-wallet/restore-wallet.component.html","webpack:///./src/app/restore-wallet/restore-wallet.component.scss","webpack:///./src/app/restore-wallet/restore-wallet.component.ts","webpack:///./src/app/seed-phrase/seed-phrase.component.html","webpack:///./src/app/seed-phrase/seed-phrase.component.scss","webpack:///./src/app/seed-phrase/seed-phrase.component.ts","webpack:///./src/app/send-modal/send-modal.component.html","webpack:///./src/app/send-modal/send-modal.component.scss","webpack:///./src/app/send-modal/send-modal.component.ts","webpack:///./src/app/send/send.component.html","webpack:///./src/app/send/send.component.scss","webpack:///./src/app/send/send.component.ts","webpack:///./src/app/settings/settings.component.html","webpack:///./src/app/settings/settings.component.scss","webpack:///./src/app/settings/settings.component.ts","webpack:///./src/app/sidebar/sidebar.component.html","webpack:///./src/app/sidebar/sidebar.component.scss","webpack:///./src/app/sidebar/sidebar.component.ts","webpack:///./src/app/staking/staking.component.html","webpack:///./src/app/staking/staking.component.scss","webpack:///./src/app/staking/staking.component.ts","webpack:///./src/app/transfer-alias/transfer-alias.component.html","webpack:///./src/app/transfer-alias/transfer-alias.component.scss","webpack:///./src/app/transfer-alias/transfer-alias.component.ts","webpack:///./src/app/typing-message/typing-message.component.html","webpack:///./src/app/typing-message/typing-message.component.scss","webpack:///./src/app/typing-message/typing-message.component.ts","webpack:///./src/app/wallet-details/wallet-details.component.html","webpack:///./src/app/wallet-details/wallet-details.component.scss","webpack:///./src/app/wallet-details/wallet-details.component.ts","webpack:///./src/app/wallet/wallet.component.html","webpack:///./src/app/wallet/wallet.component.scss","webpack:///./src/app/wallet/wallet.component.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts","webpack:///./src/store.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n {{title}}\\r\\n {{message}}\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: rgba(255, 255, 255, 0.25);\\n z-index: 5; }\\n\\n.modal {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n background-position: center;\\n background-size: 200%;\\n padding: 3rem;\\n min-width: 34rem;\\n max-width: 60rem; }\\n\\n.modal .content {\\n display: flex; }\\n\\n.modal .content .icon {\\n flex: 0 0 auto;\\n width: 4.4rem;\\n height: 4.4rem; }\\n\\n.modal .content .icon.info {\\n -webkit-mask: url('modal-info.svg') no-repeat center;\\n mask: url('modal-info.svg') no-repeat center; }\\n\\n.modal .content .message-container {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n margin-left: 2rem; }\\n\\n.modal .content .message-container .title {\\n font-size: 1.8rem;\\n font-weight: 600;\\n line-height: 2.2rem; }\\n\\n.modal .content .message-container .message {\\n font-size: 1.3rem;\\n line-height: 1.8rem;\\n margin-top: 0.4rem; }\\n\\n.modal .wrap-btn {\\n display: flex;\\n justify-content: space-between;\\n width: 100%;\\n margin-top: 3.5rem; }\\n\\n.modal .action-button {\\n width: 10rem;\\n height: 2.4rem; }\\n\\n.modal .close-button {\\n position: absolute;\\n top: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: transparent;\\n margin: 0;\\n padding: 0;\\n width: 2.4rem;\\n height: 2.4rem; }\\n\\n.modal .close-button .icon {\\n -webkit-mask: url('close.svg') no-repeat center;\\n mask: url('close.svg') no-repeat center;\\n width: 2.4rem;\\n height: 2.4rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9jb25maXJtLW1vZGFsL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXF9oZWxwZXJzXFxkaXJlY3RpdmVzXFxjb25maXJtLW1vZGFsXFxjb25maXJtLW1vZGFsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUM7RUFDckMsVUFBVSxFQUFBOztBQUVaO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsMkJBQTJCO0VBQzNCLHFCQUFxQjtFQUNyQixhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLGdCQUFnQixFQUFBOztBQVJsQjtJQVdJLGFBQWEsRUFBQTs7QUFYakI7TUFjTSxjQUFjO01BQ2QsYUFBYTtNQUNiLGNBQWMsRUFBQTs7QUFoQnBCO1FBbUJRLG9EQUE0RDtnQkFBNUQsNENBQTRELEVBQUE7O0FBbkJwRTtNQXdCTSxhQUFhO01BQ2Isc0JBQXNCO01BQ3RCLHVCQUF1QjtNQUN2Qix1QkFBdUI7TUFDdkIsaUJBQWlCLEVBQUE7O0FBNUJ2QjtRQStCUSxpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLG1CQUFtQixFQUFBOztBQWpDM0I7UUFxQ1EsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixrQkFBa0IsRUFBQTs7QUF2QzFCO0lBNkNJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsV0FBVztJQUNYLGtCQUFrQixFQUFBOztBQWhEdEI7SUFvREksWUFBWTtJQUNaLGNBQWMsRUFBQTs7QUFyRGxCO0lBeURJLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sUUFBUTtJQUNSLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixTQUFTO0lBQ1QsVUFBVTtJQUNWLGFBQWE7SUFDYixjQUFjLEVBQUE7O0FBbkVsQjtNQXNFTSwrQ0FBdUQ7Y0FBdkQsdUNBQXVEO01BQ3ZELGFBQWE7TUFDYixjQUFjLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9faGVscGVycy9kaXJlY3RpdmVzL2NvbmZpcm0tbW9kYWwvY29uZmlybS1tb2RhbC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xyXG4gIHotaW5kZXg6IDU7XHJcbn1cclxuLm1vZGFsIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCU7XHJcbiAgcGFkZGluZzogM3JlbTtcclxuICBtaW4td2lkdGg6IDM0cmVtO1xyXG4gIG1heC13aWR0aDogNjByZW07XHJcblxyXG4gIC5jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgd2lkdGg6IDQuNHJlbTtcclxuICAgICAgaGVpZ2h0OiA0LjRyZW07XHJcblxyXG4gICAgICAmLmluZm8ge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9tb2RhbC1pbmZvLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5tZXNzYWdlLWNvbnRhaW5lciB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XHJcblxyXG4gICAgICAudGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuMnJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm1lc3NhZ2Uge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMC40cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud3JhcC1idG4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLXRvcDogMy41cmVtO1xyXG4gIH1cclxuICBcclxuICAuYWN0aW9uLWJ1dHRvbiB7XHJcbiAgICB3aWR0aDogMTByZW07XHJcbiAgICBoZWlnaHQ6IDIuNHJlbTtcclxuICB9XHJcblxyXG4gIC5jbG9zZS1idXR0b24ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDIuNHJlbTtcclxuICAgIGhlaWdodDogMi40cmVtO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Nsb3NlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDIuNHJlbTtcclxuICAgICAgaGVpZ2h0OiAyLjRyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-confirm-modal',\r\n templateUrl: './confirm-modal.component.html',\r\n styleUrls: ['./confirm-modal.component.scss']\r\n})\r\nexport class ConfirmModalComponent implements OnInit {\r\n\r\n @Input() title: string;\r\n @Input() message: string;\r\n @Output() confirmed: EventEmitter = new EventEmitter();\r\n @ViewChild('btn') button: ElementRef;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.button.nativeElement.focus();\r\n }\r\n\r\n onSubmit() {\r\n this.confirmed.emit(true);\r\n }\r\n\r\n onClose() {\r\n this.confirmed.emit(false);\r\n }\r\n}\r\n","import {Directive, HostListener} from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'input'\r\n})\r\nexport class InputDisableSelectionDirective {\r\n\r\n constructor() {}\r\n\r\n @HostListener('mousedown', ['$event'])\r\n handleInput(event: Event) {\r\n if ((event.target).readOnly) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","import {Directive, ElementRef, Input, HostListener} from '@angular/core';\r\nimport {VariablesService} from '../../services/variables.service';\r\n\r\n@Directive({\r\n selector: '[appInputValidate]'\r\n})\r\nexport class InputValidateDirective {\r\n\r\n private type: string;\r\n\r\n constructor(private el: ElementRef, private variablesService: VariablesService) {\r\n }\r\n\r\n @Input('appInputValidate')\r\n public set defineInputType(type: string) {\r\n this.type = type;\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n handleInput(event: Event) {\r\n if ( this.type === 'money' ) {\r\n this.moneyValidation(event);\r\n } else if ( this.type === 'integer' ) {\r\n this.integerValidation(event);\r\n }\r\n }\r\n\r\n private moneyValidation(event: Event) {\r\n let currentValue = (event.target).value;\r\n const originalValue = currentValue;\r\n const OnlyD = /[^\\d\\.]/g;\r\n const _has_error = currentValue.match(OnlyD);\r\n if (_has_error && _has_error.length) {\r\n currentValue = currentValue.replace(',', '.').replace(OnlyD, '');\r\n }\r\n const _double_separator = currentValue.match(/\\./g);\r\n if (_double_separator && _double_separator.length > 1) {\r\n currentValue = currentValue.substr(0, currentValue.lastIndexOf('.'));\r\n }\r\n if (currentValue.indexOf('.') === 0) {\r\n currentValue = '0' + currentValue;\r\n }\r\n const _zero_fill = currentValue.split('.');\r\n if (_zero_fill[0].length > 7) {\r\n _zero_fill[0] = _zero_fill[0].substr(0, 7);\r\n }\r\n\r\n if (1 in _zero_fill && _zero_fill[1].length) {\r\n _zero_fill[1] = _zero_fill[1].substr(0, this.variablesService.digits);\r\n }\r\n currentValue = _zero_fill.join('.');\r\n if (currentValue !== originalValue) {\r\n (event.target).value = currentValue;\r\n const cursorPosition = (event.target).selectionEnd;\r\n (event.target).setSelectionRange(cursorPosition, cursorPosition);\r\n (event.target).dispatchEvent(new Event('input'));\r\n }\r\n }\r\n\r\n private integerValidation(event: Event) {\r\n let currentValue = (event.target).value;\r\n const originalValue = currentValue;\r\n const OnlyD = /[^\\d]/g;\r\n const _has_error = currentValue.match(OnlyD);\r\n if (_has_error && _has_error.length) {\r\n currentValue = currentValue.replace(OnlyD, '');\r\n }\r\n if (currentValue !== originalValue) {\r\n const cursorPosition = (event.target).selectionEnd;\r\n (event.target).value = currentValue;\r\n (event.target).setSelectionRange(cursorPosition, cursorPosition);\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n {{title}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: rgba(255, 255, 255, 0.25); }\\n\\n.modal {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n background-position: center;\\n background-size: 200%;\\n padding: 2rem;\\n min-width: 34rem;\\n max-width: 60rem; }\\n\\n.modal .content {\\n display: flex;\\n margin: 1.2rem 0; }\\n\\n.modal .content .icon {\\n flex: 0 0 auto;\\n width: 4.4rem;\\n height: 4.4rem; }\\n\\n.modal .content .icon.error {\\n -webkit-mask: url('modal-alert.svg') no-repeat center;\\n mask: url('modal-alert.svg') no-repeat center; }\\n\\n.modal .content .icon.success {\\n -webkit-mask: url('modal-success.svg') no-repeat center;\\n mask: url('modal-success.svg') no-repeat center; }\\n\\n.modal .content .icon.info {\\n -webkit-mask: url('modal-info.svg') no-repeat center;\\n mask: url('modal-info.svg') no-repeat center; }\\n\\n.modal .content .message-container {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n margin-left: 2rem; }\\n\\n.modal .content .message-container .title {\\n font-size: 1.8rem;\\n font-weight: 600;\\n line-height: 2.2rem; }\\n\\n.modal .content .message-container .message {\\n font-size: 1.3rem;\\n line-height: 1.8rem;\\n margin-top: 0.4rem; }\\n\\n.modal .action-button {\\n margin: 1.2rem auto 0.6rem;\\n width: 10rem;\\n height: 2.4rem; }\\n\\n.modal .close-button {\\n position: absolute;\\n top: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: transparent;\\n margin: 0;\\n padding: 0;\\n width: 2.4rem;\\n height: 2.4rem; }\\n\\n.modal .close-button .icon {\\n -webkit-mask: url('close.svg') no-repeat center;\\n mask: url('close.svg') no-repeat center;\\n width: 2.4rem;\\n height: 2.4rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9tb2RhbC1jb250YWluZXIvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcX2hlbHBlcnNcXGRpcmVjdGl2ZXNcXG1vZGFsLWNvbnRhaW5lclxcbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUMsRUFBQTs7QUFFdkM7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QiwyQkFBMkI7RUFDM0IscUJBQXFCO0VBQ3JCLGFBQWE7RUFDYixnQkFBZ0I7RUFDaEIsZ0JBQWdCLEVBQUE7O0FBUmxCO0lBV0ksYUFBYTtJQUNiLGdCQUFnQixFQUFBOztBQVpwQjtNQWVNLGNBQWM7TUFDZCxhQUFhO01BQ2IsY0FBYyxFQUFBOztBQWpCcEI7UUFvQlEscURBQTZEO2dCQUE3RCw2Q0FBNkQsRUFBQTs7QUFwQnJFO1FBd0JRLHVEQUErRDtnQkFBL0QsK0NBQStELEVBQUE7O0FBeEJ2RTtRQTRCUSxvREFBNEQ7Z0JBQTVELDRDQUE0RCxFQUFBOztBQTVCcEU7TUFpQ00sYUFBYTtNQUNiLHNCQUFzQjtNQUN0Qix1QkFBdUI7TUFDdkIsdUJBQXVCO01BQ3ZCLGlCQUFpQixFQUFBOztBQXJDdkI7UUF3Q1EsaUJBQWlCO1FBQ2pCLGdCQUFnQjtRQUNoQixtQkFBbUIsRUFBQTs7QUExQzNCO1FBOENRLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsa0JBQWtCLEVBQUE7O0FBaEQxQjtJQXNESSwwQkFBMEI7SUFDMUIsWUFBWTtJQUNaLGNBQWMsRUFBQTs7QUF4RGxCO0lBNERJLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sUUFBUTtJQUNSLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixTQUFTO0lBQ1QsVUFBVTtJQUNWLGFBQWE7SUFDYixjQUFjLEVBQUE7O0FBdEVsQjtNQXlFTSwrQ0FBdUQ7Y0FBdkQsdUNBQXVEO01BQ3ZELGFBQWE7TUFDYixjQUFjLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9faGVscGVycy9kaXJlY3RpdmVzL21vZGFsLWNvbnRhaW5lci9tb2RhbC1jb250YWluZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcclxufVxyXG4ubW9kYWwge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJTtcclxuICBwYWRkaW5nOiAycmVtO1xyXG4gIG1pbi13aWR0aDogMzRyZW07XHJcbiAgbWF4LXdpZHRoOiA2MHJlbTtcclxuXHJcbiAgLmNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbjogMS4ycmVtIDA7XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgd2lkdGg6IDQuNHJlbTtcclxuICAgICAgaGVpZ2h0OiA0LjRyZW07XHJcblxyXG4gICAgICAmLmVycm9yIHtcclxuICAgICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvbW9kYWwtYWxlcnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnN1Y2Nlc3Mge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9tb2RhbC1zdWNjZXNzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5pbmZvIHtcclxuICAgICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvbW9kYWwtaW5mby5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubWVzc2FnZS1jb250YWluZXIge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xyXG5cclxuICAgICAgLnRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjJyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5tZXNzYWdlIHtcclxuICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS44cmVtO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDAuNHJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFjdGlvbi1idXR0b24ge1xyXG4gICAgbWFyZ2luOiAxLjJyZW0gYXV0byAwLjZyZW07XHJcbiAgICB3aWR0aDogMTByZW07XHJcbiAgICBoZWlnaHQ6IDIuNHJlbTtcclxuICB9XHJcblxyXG4gIC5jbG9zZS1idXR0b24ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDIuNHJlbTtcclxuICAgIGhlaWdodDogMi40cmVtO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Nsb3NlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDIuNHJlbTtcclxuICAgICAgaGVpZ2h0OiAyLjRyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef} from '@angular/core';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-modal-container',\r\n templateUrl: './modal-container.component.html',\r\n styleUrls: ['./modal-container.component.scss']\r\n})\r\nexport class ModalContainerComponent implements OnInit {\r\n\r\n public title: string;\r\n @Input() type: string;\r\n @Input() message: string;\r\n @Output() close = new EventEmitter();\r\n @ViewChild('btn') button: ElementRef;\r\n\r\n constructor(private translate: TranslateService) {}\r\n\r\n ngOnInit() {\r\n this.button.nativeElement.focus();\r\n switch (this.type) {\r\n case 'error': this.title = this.translate.instant('MODALS.ERROR'); break;\r\n case 'success': this.title = this.translate.instant('MODALS.SUCCESS'); break;\r\n case 'info': this.title = this.translate.instant('MODALS.INFO'); break;\r\n }\r\n }\r\n\r\n onClose() {\r\n this.close.emit();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ label | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \".progress-bar-container {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n padding: 0 3rem;\\n width: 100%;\\n height: 3rem; }\\n .progress-bar-container .progress-bar {\\n position: absolute;\\n top: -0.7rem;\\n left: 0;\\n margin: 0 3rem;\\n width: calc(100% - 6rem);\\n height: 0.7rem; }\\n .progress-bar-container .progress-bar .progress-bar-full {\\n height: 0.7rem; }\\n .progress-bar-container .progress-labels {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n font-size: 1.2rem;\\n height: 100%; }\\n .progress-bar-container .progress-labels span {\\n flex: 1 0 0;\\n text-align: center; }\\n .progress-bar-container .progress-labels span:first-child {\\n text-align: left; }\\n .progress-bar-container .progress-labels span:last-child {\\n text-align: right; }\\n .progress-bar-container .progress-time {\\n position: absolute;\\n top: -3rem;\\n left: 50%;\\n transform: translateX(-50%);\\n font-size: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9wcm9ncmVzcy1jb250YWluZXIvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcX2hlbHBlcnNcXGRpcmVjdGl2ZXNcXHByb2dyZXNzLWNvbnRhaW5lclxccHJvZ3Jlc3MtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxPQUFPO0VBQ1AsZUFBZTtFQUNmLFdBQVc7RUFDWCxZQUFZLEVBQUE7RUFOZDtJQVNJLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osT0FBTztJQUNQLGNBQWM7SUFDZCx3QkFBd0I7SUFDeEIsY0FBYyxFQUFBO0VBZGxCO01BaUJNLGNBQWMsRUFBQTtFQWpCcEI7SUFzQkksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsaUJBQWlCO0lBQ2pCLFlBQVksRUFBQTtFQTFCaEI7TUE2Qk0sV0FBVztNQUNYLGtCQUFrQixFQUFBO0VBOUJ4QjtRQWlDUSxnQkFBZ0IsRUFBQTtFQWpDeEI7UUFxQ1EsaUJBQWlCLEVBQUE7RUFyQ3pCO0lBMkNJLGtCQUFrQjtJQUNsQixVQUFVO0lBQ1YsU0FBUztJQUNULDJCQUEyQjtJQUMzQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL19oZWxwZXJzL2RpcmVjdGl2ZXMvcHJvZ3Jlc3MtY29udGFpbmVyL3Byb2dyZXNzLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcGFkZGluZzogMCAzcmVtO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogM3JlbTtcclxuXHJcbiAgLnByb2dyZXNzLWJhciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC0wLjdyZW07XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgbWFyZ2luOiAwIDNyZW07XHJcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNnJlbSk7XHJcbiAgICBoZWlnaHQ6IDAuN3JlbTtcclxuXHJcbiAgICAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xyXG4gICAgICBoZWlnaHQ6IDAuN3JlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wcm9ncmVzcy1sYWJlbHMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgZmxleDogMSAwIDA7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wcm9ncmVzcy10aW1lIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogLTNyZW07XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-progress-container',\r\n templateUrl: './progress-container.component.html',\r\n styleUrls: ['./progress-container.component.scss']\r\n})\r\nexport class ProgressContainerComponent implements OnInit {\r\n\r\n @Input() width: string;\r\n @Input() labels: [];\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n","module.exports = \"
\\r\\n {{ 'STAKING.SWITCH.ON' | translate }}\\r\\n \\r\\n {{ 'STAKING.SWITCH.OFF' | translate }}\\r\\n
\\r\\n\"","module.exports = \".switch {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n border-radius: 1rem;\\n cursor: pointer;\\n font-size: 1rem;\\n padding: 0.5rem;\\n width: 5rem;\\n height: 2rem; }\\n .switch .circle {\\n border-radius: 1rem;\\n width: 1.2rem;\\n height: 1.2rem; }\\n .switch .option {\\n margin: 0 0.2rem;\\n line-height: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9zdGFraW5nLXN3aXRjaC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxfaGVscGVyc1xcZGlyZWN0aXZlc1xcc3Rha2luZy1zd2l0Y2hcXHN0YWtpbmctc3dpdGNoLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixlQUFlO0VBQ2YsZUFBZTtFQUNmLFdBQVc7RUFDWCxZQUFZLEVBQUE7RUFUZDtJQVlJLG1CQUFtQjtJQUNuQixhQUFhO0lBQ2IsY0FBYyxFQUFBO0VBZGxCO0lBa0JJLGdCQUFnQjtJQUNoQixtQkFBbUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL19oZWxwZXJzL2RpcmVjdGl2ZXMvc3Rha2luZy1zd2l0Y2gvc3Rha2luZy1zd2l0Y2guY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc3dpdGNoIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxuICBwYWRkaW5nOiAwLjVyZW07XHJcbiAgd2lkdGg6IDVyZW07XHJcbiAgaGVpZ2h0OiAycmVtO1xyXG5cclxuICAuY2lyY2xlIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgfVxyXG5cclxuICAub3B0aW9uIHtcclxuICAgIG1hcmdpbjogMCAwLjJyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS4ycmVtO1xyXG4gIH1cclxufVxyXG4iXX0= */\"","import {Component, OnInit, Input, Output, EventEmitter} from '@angular/core';\r\nimport {BackendService} from '../../services/backend.service';\r\nimport {VariablesService} from '../../services/variables.service';\r\n\r\n@Component({\r\n selector: 'app-staking-switch',\r\n templateUrl: './staking-switch.component.html',\r\n styleUrls: ['./staking-switch.component.scss']\r\n})\r\nexport class StakingSwitchComponent implements OnInit {\r\n\r\n @Input() wallet_id: boolean;\r\n @Input() staking: boolean;\r\n @Output() stakingChange = new EventEmitter();\r\n\r\n constructor(private backend: BackendService, private variablesService: VariablesService) {}\r\n\r\n ngOnInit() {}\r\n\r\n toggleStaking() {\r\n const wallet = this.variablesService.getWallet(this.wallet_id);\r\n if (wallet && wallet.loaded) {\r\n this.stakingChange.emit(!this.staking);\r\n if (!this.staking) {\r\n this.backend.startPosMining(this.wallet_id);\r\n } else {\r\n this.backend.stopPosMining(this.wallet_id);\r\n }\r\n }\r\n }\r\n}\r\n","import {Directive, Input, Output, ElementRef, HostListener, Renderer2, HostBinding, OnDestroy, EventEmitter} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\n\r\n@Directive({\r\n selector: '[tooltip]'\r\n})\r\n\r\nexport class TooltipDirective implements OnDestroy {\r\n\r\n @HostBinding('style.cursor') cursor;\r\n\r\n @Input('tooltip') tooltipInner: any;\r\n @Input() placement: string;\r\n @Input() tooltipClass: string;\r\n @Input() timeout = 0;\r\n @Input() timeDelay = 0;\r\n @Input() delay = 0;\r\n @Input() showWhenNoOverflow = true;\r\n @Output() onHide = new EventEmitter();\r\n tooltip: HTMLElement;\r\n private enter: (event: MouseEvent) => void;\r\n private leave: (event: MouseEvent) => void;\r\n\r\n removeTooltipTimeout;\r\n removeTooltipTimeoutInner;\r\n\r\n removeTooltipTimeDelay;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2, private route: ActivatedRoute) {\r\n }\r\n\r\n @HostListener('mouseenter') onMouseEnter() {\r\n if (this.showWhenNoOverflow || (!this.showWhenNoOverflow && this.el.nativeElement.offsetWidth < this.el.nativeElement.scrollWidth)) {\r\n this.cursor = 'pointer';\r\n if (!this.tooltip) {\r\n if (this.timeDelay !== 0) {\r\n this.removeTooltipTimeDelay = setTimeout(() => {\r\n this.show();\r\n }, this.timeDelay);\r\n } else {\r\n this.show();\r\n }\r\n } else {\r\n this.cancelHide();\r\n }\r\n }\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n clearTimeout(this.removeTooltipTimeDelay);\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n }\r\n\r\n show() {\r\n this.create();\r\n this.placement = this.placement === null ? 'top' : this.placement;\r\n this.setPosition(this.placement);\r\n }\r\n\r\n hide() {\r\n this.removeTooltipTimeout = setTimeout(() => {\r\n this.renderer.setStyle(this.tooltip, 'opacity', '0');\r\n this.removeTooltipTimeoutInner = setTimeout(() => {\r\n this.renderer.removeChild(document.body, this.tooltip);\r\n this.tooltip.removeEventListener('mouseenter', this.enter);\r\n this.tooltip.removeEventListener('mouseleave', this.leave);\r\n this.tooltip = null;\r\n this.onHide.emit(true);\r\n }, this.delay);\r\n }, this.timeout);\r\n }\r\n\r\n cancelHide() {\r\n clearTimeout(this.removeTooltipTimeout);\r\n clearTimeout(this.removeTooltipTimeoutInner);\r\n this.renderer.setStyle(this.tooltip, 'opacity', '1');\r\n }\r\n\r\n create() {\r\n this.tooltip = this.renderer.createElement('div');\r\n let innerBlock = this.renderer.createElement('div');\r\n if (typeof this.tooltipInner === 'string') {\r\n innerBlock.innerHTML = this.tooltipInner;\r\n } else {\r\n innerBlock = this.tooltipInner;\r\n }\r\n this.renderer.addClass(innerBlock, 'tooltip-inner');\r\n this.renderer.addClass(innerBlock, 'scrolled-content');\r\n this.renderer.appendChild(this.tooltip, innerBlock);\r\n this.renderer.appendChild(document.body, this.tooltip);\r\n\r\n this.enter = () => {\r\n this.cancelHide();\r\n };\r\n this.tooltip.addEventListener('mouseenter', this.enter);\r\n this.leave = () => {\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n };\r\n this.tooltip.addEventListener('mouseleave', this.leave);\r\n\r\n this.renderer.setStyle(document.body, 'position', 'relative');\r\n this.renderer.setStyle(this.tooltip, 'position', 'absolute');\r\n if (this.tooltipClass !== null) {\r\n const classes = this.tooltipClass.split(' ');\r\n for (let i = 0; i < classes.length; i++) {\r\n this.renderer.addClass(this.tooltip, classes[i]);\r\n }\r\n }\r\n this.renderer.setStyle(this.tooltip, 'opacity', '0');\r\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.delay}ms`);\r\n window.setTimeout(() => {\r\n this.renderer.setStyle(this.tooltip, 'opacity', '1');\r\n }, 0);\r\n }\r\n\r\n setPosition(placement) {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n this.renderer.addClass(this.tooltip, 'ng-tooltip-' + placement);\r\n const topExit = hostPos.top - this.tooltip.getBoundingClientRect().height - parseInt(getComputedStyle(this.tooltip).marginTop, 10) < 0;\r\n const bottomExit = window.innerHeight < hostPos.bottom + this.tooltip.getBoundingClientRect().height + parseInt(getComputedStyle(this.tooltip).marginTop, 10);\r\n\r\n switch (placement) {\r\n case 'top':\r\n if (topExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('bottom');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'top-left':\r\n if (topExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('bottom-left');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'top-right':\r\n if (topExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('bottom-right');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'bottom':\r\n if (bottomExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('top');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'bottom-left':\r\n if (bottomExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('top-left');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'bottom-right':\r\n if (bottomExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('top-right');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'left':\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px');\r\n break;\r\n case 'left-top':\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\r\n break;\r\n case 'left-bottom':\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px');\r\n break;\r\n case 'right':\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px');\r\n break;\r\n case 'right-top':\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\r\n break;\r\n case 'right-bottom':\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px');\r\n break;\r\n }\r\n }\r\n\r\n checkSides() {\r\n if (this.tooltip.getBoundingClientRect().left < 0) {\r\n this.renderer.setStyle(this.tooltip, 'left', 0);\r\n }\r\n if (this.tooltip.getBoundingClientRect().right > window.innerWidth) {\r\n this.renderer.setStyle(this.tooltip, 'left', window.innerWidth - this.tooltip.getBoundingClientRect().width + 'px');\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n clearTimeout(this.removeTooltipTimeout);\r\n clearTimeout(this.removeTooltipTimeoutInner);\r\n clearTimeout(this.removeTooltipTimeDelay);\r\n if (this.tooltip) {\r\n this.renderer.removeChild(document.body, this.tooltip);\r\n this.tooltip = null;\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n {{ 'HISTORY.DETAILS.ID' | translate }}\\r\\n {{transaction.tx_hash}}\\r\\n {{ 'HISTORY.DETAILS.SIZE' | translate }}\\r\\n {{ 'HISTORY.DETAILS.SIZE_VALUE' | translate : {value: transaction.tx_blob_size} }}\\r\\n
\\r\\n
\\r\\n {{ 'HISTORY.DETAILS.HEIGHT' | translate }}\\r\\n {{transaction.height}}\\r\\n {{ 'HISTORY.DETAILS.CONFIRMATION' | translate }}\\r\\n {{transaction.height === 0 ? 0 : variablesService.height_app - transaction.height}}\\r\\n
\\r\\n
\\r\\n {{ 'HISTORY.DETAILS.INPUTS' | translate }}\\r\\n {{inputs.join(', ')}}\\r\\n {{ 'HISTORY.DETAILS.OUTPUTS' | translate }}\\r\\n {{outputs.join(', ')}}\\r\\n
\\r\\n
\\r\\n {{ 'HISTORY.DETAILS.PAYMENT_ID' | translate }}\\r\\n \\r\\n {{transaction.payment_id}}\\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'HISTORY.DETAILS.COMMENT' | translate }}\\r\\n \\r\\n {{transaction.comment}}\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%; }\\n\\n.table {\\n border-top: 0.2rem solid #ebebeb;\\n margin: 0 3rem;\\n padding: 0.5rem 0; }\\n\\n.table .row {\\n display: flex;\\n justify-content: flex-start;\\n align-items: center;\\n border-top: none;\\n line-height: 3rem;\\n margin: 0 -3rem;\\n width: 100%;\\n height: 3rem; }\\n\\n.table .row .cell {\\n flex-shrink: 0;\\n flex-grow: 0;\\n padding: 0 1rem;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n\\n.table .row .cell:first-child {\\n padding-left: 3rem; }\\n\\n.table .row .cell:last-child {\\n padding-right: 3rem; }\\n\\n.table .row .cell.key-value {\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy90cmFuc2FjdGlvbi1kZXRhaWxzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXF9oZWxwZXJzXFxkaXJlY3RpdmVzXFx0cmFuc2FjdGlvbi1kZXRhaWxzXFx0cmFuc2FjdGlvbi1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVyxFQUFBOztBQUdiO0VBQ0UsZ0NBQWdDO0VBQ2hDLGNBQWM7RUFDZCxpQkFBaUIsRUFBQTs7QUFIbkI7SUFNSSxhQUFhO0lBQ2IsMkJBQTJCO0lBQzNCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixXQUFXO0lBQ1gsWUFBWSxFQUFBOztBQWJoQjtNQWdCTSxjQUFjO01BQ2QsWUFBWTtNQUNaLGVBQWU7TUFDZixnQkFBZ0I7TUFDaEIsdUJBQXVCLEVBQUE7O0FBcEI3QjtRQXVCUSxrQkFBa0IsRUFBQTs7QUF2QjFCO1FBMkJRLG1CQUFtQixFQUFBOztBQTNCM0I7UUErQlEsZUFBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy90cmFuc2FjdGlvbi1kZXRhaWxzL3RyYW5zYWN0aW9uLWRldGFpbHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4udGFibGUge1xyXG4gIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCAjZWJlYmViO1xyXG4gIG1hcmdpbjogMCAzcmVtO1xyXG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xyXG5cclxuICAucm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgYm9yZGVyLXRvcDogbm9uZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xyXG4gICAgbWFyZ2luOiAwIC0zcmVtO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDNyZW07XHJcblxyXG4gICAgLmNlbGwge1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgZmxleC1ncm93OiAwO1xyXG4gICAgICBwYWRkaW5nOiAwIDFyZW07XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG5cclxuICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzcmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDNyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYua2V5LXZhbHVlIHtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, OnInit, OnDestroy, Input} from '@angular/core';\r\nimport {Transaction} from '../../models/transaction.model';\r\nimport {VariablesService} from '../../services/variables.service';\r\nimport {BackendService} from '../../services/backend.service';\r\nimport {IntToMoneyPipe} from '../../pipes/int-to-money.pipe';\r\nimport {BLOCK_EXPLORER_TX_URL_PREFIX} from '../../../_shared/constants';\r\nimport {BLOCK_EXPLORER_TN_TX_URL_PREFIX} from '../../../_shared/constants';\r\n\r\n@Component({\r\n selector: 'app-transaction-details',\r\n templateUrl: './transaction-details.component.html',\r\n styleUrls: ['./transaction-details.component.scss']\r\n})\r\nexport class TransactionDetailsComponent implements OnInit, OnDestroy {\r\n\r\n @Input() transaction: Transaction;\r\n @Input() sizes: Array;\r\n inputs: Array = [];\r\n outputs: Array = [];\r\n\r\n constructor(public variablesService: VariablesService, private backendService: BackendService, private intToMoneyPipe: IntToMoneyPipe) {}\r\n\r\n ngOnInit() {\r\n for (const input in this.transaction.td['spn']) {\r\n if (this.transaction.td['spn'].hasOwnProperty(input)) {\r\n this.inputs.push(this.intToMoneyPipe.transform(this.transaction.td['spn'][input]));\r\n }\r\n }\r\n for (const output in this.transaction.td['rcv']) {\r\n if (this.transaction.td['rcv'].hasOwnProperty(output)) {\r\n this.outputs.push(this.intToMoneyPipe.transform(this.transaction.td['rcv'][output]));\r\n }\r\n }\r\n }\r\n\r\n openInBrowser(tr) {\r\n this.backendService.openUrlInBrowser((this.variablesService.testnet ? BLOCK_EXPLORER_TN_TX_URL_PREFIX : BLOCK_EXPLORER_TX_URL_PREFIX)+ tr);\r\n }\r\n\r\n ngOnDestroy() {}\r\n}\r\n","import {BigNumber} from 'bignumber.js';\r\n\r\nexport class Transaction {\r\n amount: BigNumber;\r\n comment: string;\r\n contract: any[];\r\n fee: BigNumber;\r\n height: number;\r\n is_income: boolean;\r\n is_mining: boolean;\r\n is_mixing: boolean;\r\n is_service: boolean;\r\n payment_id: string;\r\n show_sender: boolean;\r\n td: object;\r\n timestamp: number;\r\n tx_blob_size: number;\r\n tx_hash: string;\r\n tx_type: number;\r\n unlock_time: number;\r\n\r\n sortAmount?: BigNumber;\r\n sortFee?: BigNumber;\r\n}\r\n","import {Contract} from './contract.model';\r\nimport {Transaction} from './transaction.model';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\nexport class Wallet {\r\n stop_paginate: boolean;\r\n open_from_exist: boolean;\r\n updated = false;\r\n wallet_id: number;\r\n name: string;\r\n pass: string;\r\n path: string;\r\n address: string;\r\n balance: BigNumber;\r\n unlocked_balance: BigNumber;\r\n mined_total: number;\r\n tracking_hey: string;\r\n is_auditable: boolean;\r\n is_watch_only: boolean;\r\n exclude_mining_txs: boolean;\r\n alias_available: boolean;\r\n\r\n alias?: object;\r\n wakeAlias?: boolean;\r\n staking?: boolean;\r\n new_messages?: number;\r\n new_contracts?: number;\r\n\r\n history: Array = [];\r\n total_history_item?: number;\r\n pages = [];\r\n totalPages: number;\r\n currentPage: number;\r\n excluded_history: Array = [];\r\n\r\n contracts: Array = [];\r\n\r\n progress?: number;\r\n loaded?: boolean;\r\n restore?: boolean;\r\n\r\n send_data?: any = {\r\n address: null,\r\n amount: null,\r\n comment: null,\r\n mixin: null,\r\n fee: null,\r\n hide: null\r\n };\r\n\r\n constructor(id, name, pass, path, address, balance, unlocked_balance, mined = 0, tracking = '') {\r\n this.wallet_id = id;\r\n this.name = name;\r\n this.pass = pass;\r\n this.path = path;\r\n this.address = address;\r\n this.balance = balance;\r\n this.unlocked_balance = unlocked_balance;\r\n this.mined_total = mined;\r\n this.tracking_hey = tracking;\r\n\r\n this.alias = {};\r\n this.staking = false;\r\n this.new_messages = 0;\r\n this.new_contracts = 0;\r\n\r\n this.history = [];\r\n this.excluded_history = [];\r\n\r\n this.progress = 0;\r\n this.loaded = false;\r\n }\r\n\r\n getMoneyEquivalent(equivalent) {\r\n return this.balance.multipliedBy(equivalent).toFixed(0);\r\n }\r\n\r\n havePass(): boolean {\r\n return (this.pass !== '' && this.pass !== null);\r\n }\r\n\r\n isActive(id): boolean {\r\n return this.wallet_id === id;\r\n }\r\n\r\n prepareHistoryItem(item: Transaction): any {\r\n if (item.tx_type === 4) {\r\n item.sortFee = item.amount.plus(item.fee).negated();\r\n item.sortAmount = new BigNumber(0);\r\n } else if (item.tx_type === 3) {\r\n item.sortFee = new BigNumber(0);\r\n } else if ((item.hasOwnProperty('contract') && (item.contract[0].state === 3 || item.contract[0].state === 6 || item.contract[0].state === 601) && !item.contract[0].is_a)) {\r\n item.sortFee = item.fee.negated();\r\n item.sortAmount = item.amount;\r\n } else {\r\n if (!item.is_income) {\r\n item.sortFee = item.fee.negated();\r\n item.sortAmount = item.amount.negated();\r\n } else {\r\n item.sortAmount = item.amount;\r\n }\r\n }\r\n return item;\r\n }\r\n\r\n prepareHistory(items: Transaction[]): void {\r\n for (let i = 0; i < items.length; i++) {\r\n if ((items[i].tx_type === 7 && items[i].is_income) || (items[i].tx_type === 11 && items[i].is_income) || (items[i].amount.eq(0) && items[i].fee.eq(0) && !items[i].is_mining)) {\r\n let exists = false;\r\n for (let j = 0; j < this.excluded_history.length; j++) {\r\n if (this.excluded_history[j].tx_hash === items[i].tx_hash) {\r\n exists = true;\r\n if (this.excluded_history[j].height !== items[i].height) {\r\n this.excluded_history[j] = items[i];\r\n }\r\n break;\r\n }\r\n }\r\n if (!exists) {\r\n this.excluded_history.push(items[i]);\r\n }\r\n } else {\r\n let exists = false;\r\n for (let j = 0; j < this.history.length; j++) {\r\n if (this.history[j].tx_hash === items[i].tx_hash) {\r\n exists = true;\r\n if (this.history[j].height !== items[i].height) {\r\n this.history[j] = this.prepareHistoryItem(items[i]);\r\n }\r\n break;\r\n }\r\n }\r\n if (!exists) {\r\n if (this.history.length && items[i].timestamp >= this.history[0].timestamp) {\r\n this.history.unshift(this.prepareHistoryItem(items[i]));\r\n } else {\r\n this.history.push(this.prepareHistoryItem(items[i]));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeFromHistory(hash: string): void {\r\n for (let i = 0; i < this.history.length; i++) {\r\n if (this.history[i].tx_hash === hash) {\r\n this.history.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n prepareContractsAfterOpen(items: any[], exp_med_ts, height_app, viewedContracts, notViewedContracts): void {\r\n const wallet = this;\r\n for (let i = 0; i < items.length; i++) {\r\n const contract = items[i];\r\n let contractTransactionExist = false;\r\n if (wallet && wallet.history) {\r\n contractTransactionExist = wallet.history.some(elem => elem.contract && elem.contract.length && elem.contract[0].contract_id === contract.contract_id);\r\n }\r\n if (!contractTransactionExist && wallet && wallet.excluded_history) {\r\n contractTransactionExist = wallet.excluded_history.some(elem => elem.contract && elem.contract.length && elem.contract[0].contract_id === contract.contract_id);\r\n }\r\n\r\n if (!contractTransactionExist) {\r\n contract.state = 140;\r\n } else if (contract.state === 1 && contract.expiration_time < exp_med_ts) {\r\n contract.state = 110;\r\n } else if (contract.state === 2 && contract.cancel_expiration_time !== 0 && contract.cancel_expiration_time < exp_med_ts && contract.height === 0) {\r\n const searchResult1 = viewedContracts.some(elem => elem.state === 2 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (!searchResult1) {\r\n contract.state = 130;\r\n contract.is_new = true;\r\n }\r\n } else if (contract.state === 1) {\r\n const searchResult2 = notViewedContracts.find(elem => elem.state === 110 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult2) {\r\n if (searchResult2.time === contract.expiration_time) {\r\n contract.state = 110;\r\n } else {\r\n for (let j = 0; j < notViewedContracts.length; j++) {\r\n if (notViewedContracts[j].contract_id === contract.contract_id && notViewedContracts[j].is_a === contract.is_a) {\r\n notViewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n for (let j = 0; j < viewedContracts.length; j++) {\r\n if (viewedContracts[j].contract_id === contract.contract_id && viewedContracts[j].is_a === contract.is_a) {\r\n viewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else if (contract.state === 2 && (contract.height === 0 || (height_app - contract.height) < 10)) {\r\n contract.state = 201;\r\n } else if (contract.state === 2) {\r\n const searchResult3 = viewedContracts.some(elem => elem.state === 120 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult3) {\r\n contract.state = 120;\r\n }\r\n } else if (contract.state === 5) {\r\n const searchResult4 = notViewedContracts.find(elem => elem.state === 130 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult4) {\r\n if (searchResult4.time === contract.cancel_expiration_time) {\r\n contract.state = 130;\r\n } else {\r\n for (let j = 0; j < notViewedContracts.length; j++) {\r\n if (notViewedContracts[j].contract_id === contract.contract_id && notViewedContracts[j].is_a === contract.is_a) {\r\n notViewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n for (let j = 0; j < viewedContracts.length; j++) {\r\n if (viewedContracts[j].contract_id === contract.contract_id && viewedContracts[j].is_a === contract.is_a) {\r\n viewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else if (contract.state === 6 && (contract.height === 0 || (height_app - contract.height) < 10)) {\r\n contract.state = 601;\r\n }\r\n const searchResult = viewedContracts.some(elem => elem.state === contract.state && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n contract.is_new = !searchResult;\r\n\r\n wallet.contracts.push(contract);\r\n }\r\n this.recountNewContracts();\r\n }\r\n\r\n recountNewContracts() {\r\n this.new_contracts = (this.contracts.filter(item => item.is_new === true )).length;\r\n }\r\n\r\n getContract(id): Contract {\r\n for (let i = 0; i < this.contracts.length; i++) {\r\n if (this.contracts[i].contract_id === id) {\r\n return this.contracts[i];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'contractStatusMessages'\r\n})\r\nexport class ContractStatusMessagesPipe implements PipeTransform {\r\n\r\n constructor(private translate: TranslateService) {}\r\n\r\n getStateSeller(stateNum: number): string {\r\n const state = {part1: '', part2: ''};\r\n switch (stateNum) {\r\n case 1:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NEW_CONTRACT');\r\n break;\r\n case 110:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED');\r\n break;\r\n case 201:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.ACCEPTED');\r\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAIT');\r\n break;\r\n case 2:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAITING_BUYER');\r\n break;\r\n case 3:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.COMPLETED');\r\n break;\r\n case 4:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NOT_RECEIVED');\r\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NULLIFIED');\r\n break;\r\n case 5:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.PROPOSAL_CANCEL');\r\n break;\r\n case 601:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.BEING_CANCELLED');\r\n break;\r\n case 6:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.CANCELLED');\r\n break;\r\n case 130:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED_CANCEL');\r\n break;\r\n case 140:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.EXPIRED');\r\n break;\r\n }\r\n return state.part1 + (state.part2.length ? '. ' + state.part2 : '');\r\n }\r\n\r\n getStateBuyer(stateNum: number): string {\r\n const state = {part1: '', part2: ''};\r\n switch (stateNum) {\r\n case 1:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING');\r\n break;\r\n case 110:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED');\r\n break;\r\n case 201:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED');\r\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAIT');\r\n break;\r\n case 2:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED');\r\n break;\r\n case 120:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_SELLER');\r\n break;\r\n case 3:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.COMPLETED');\r\n break;\r\n case 4:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NOT_RECEIVED');\r\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NULLIFIED');\r\n break;\r\n case 5:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_CANCEL');\r\n break;\r\n case 601:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.BEING_CANCELLED');\r\n break;\r\n case 6:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.CANCELLED');\r\n break;\r\n case 130:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED_CANCEL');\r\n break;\r\n case 140:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.EXPIRED');\r\n break;\r\n }\r\n return state.part1 + (state.part2.length ? '. ' + state.part2 : '');\r\n }\r\n\r\n transform(state: number, is_a?: boolean): any {\r\n if (is_a) {\r\n return this.getStateBuyer(state);\r\n } else {\r\n return this.getStateSeller(state);\r\n }\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {VariablesService} from '../services/variables.service';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'contractTimeLeft'\r\n})\r\nexport class ContractTimeLeftPipe implements PipeTransform {\r\n\r\n constructor(private service: VariablesService, private translate: TranslateService) {}\r\n\r\n transform(value: any, arg?: any): any {\r\n const time = parseInt(((parseInt(value, 10) - this.service.exp_med_ts) / 3600).toFixed(0), 10);\r\n const type = arg || 0;\r\n if (time === 0) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_LESS_ONE');\r\n }\r\n if (this.service.settings.language === 'en') {\r\n if (type === 0) {\r\n if (time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', {time: time});\r\n }\r\n } else if (type === 1) {\r\n if (time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', {time: time});\r\n }\r\n } else if (type === 2) {\r\n if (time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', {time: time});\r\n }\r\n }\r\n } else {\r\n const rest = time % 10;\r\n if (type === 0) {\r\n if (((time > 20 ) && (rest === 1)) || time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', {time: time});\r\n } else if ((time > 1) && (time < 5) || ((time > 20 ) && (rest === 2 || rest === 3 || rest === 4))) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT', {time: time});\r\n }\r\n } else if (type === 1) {\r\n if (((time > 20 ) && (rest === 1)) || time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', {time: time});\r\n } else if ((time > 1) && (time < 5) || ((time > 20 ) && (rest === 2 || rest === 3 || rest === 4))) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_RESPONSE', {time: time});\r\n }\r\n } else if (type === 2) {\r\n if (((time > 20 ) && (rest === 1)) || time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', {time: time});\r\n } else if ((time > 1) && (time < 5) || ((time > 20 ) && (rest === 2 || rest === 3 || rest === 4))) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_WAITING', {time: time});\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'historyTypeMessages'\r\n})\r\nexport class HistoryTypeMessagesPipe implements PipeTransform {\r\n\r\n constructor(private translate: TranslateService) {}\r\n\r\n transform(item: any, args?: any): any {\r\n\r\n if (item.tx_type === 0) {\r\n if (item.remote_addresses && item.remote_addresses[0]) {\r\n return item.remote_addresses[0];\r\n } else {\r\n if (item.is_income) {\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.HIDDEN');\r\n } else {\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED');\r\n }\r\n }\r\n } else if (item.tx_type === 6 && item.height === 0) {\r\n return 'unknown';\r\n } else if (item.tx_type === 9) {\r\n if (item.hasOwnProperty('contract') && item.contract[0].is_a) {\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_BUYER');\r\n } else {\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_SELLER');\r\n }\r\n } else {\r\n switch (item.tx_type) {\r\n // case 0:\r\n // return '';\r\n // case 1:\r\n // return '';\r\n // case 2:\r\n // return '';\r\n // case 3:\r\n // return '';\r\n case 4:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_ALIAS');\r\n case 5:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UPDATE_ALIAS');\r\n case 6:\r\n return (item.td['spn'] && item.td['spn'].length) ? this.translate.instant('HISTORY.TYPE_MESSAGES.POS_REWARD') : this.translate.instant('HISTORY.TYPE_MESSAGES.POW_REWARD');\r\n case 7:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_CONTRACT');\r\n case 8:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.PLEDGE_CONTRACT');\r\n // case 9:\r\n // return '';\r\n case 10:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.NULLIFY_CONTRACT');\r\n case 11:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.PROPOSAL_CANCEL_CONTRACT');\r\n case 12:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CANCEL_CONTRACT');\r\n }\r\n }\r\n\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED');\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {VariablesService} from '../services/variables.service';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Pipe({\r\n name: 'intToMoney'\r\n})\r\nexport class IntToMoneyPipe implements PipeTransform {\r\n\r\n constructor(private variablesService: VariablesService) {}\r\n\r\n transform(value: any, args?: any): any {\r\n if (value === 0 || value === undefined) {\r\n return '0';\r\n }\r\n let maxFraction = this.variablesService.digits;\r\n if (args) {\r\n maxFraction = parseInt(args, 10);\r\n }\r\n const power = Math.pow(10, this.variablesService.digits);\r\n let str = (new BigNumber(value)).div(power).toFixed(maxFraction);\r\n\r\n for (let i = str.length - 1; i >= 0; i--) {\r\n if (str[i] !== '0') {\r\n str = str.substr(0, i + 1);\r\n break;\r\n }\r\n }\r\n if (str[str.length - 1] === '.') {\r\n str = str.substr(0, str.length - 1);\r\n }\r\n return str;\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {VariablesService} from '../services/variables.service';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Pipe({\r\n name: 'moneyToInt'\r\n})\r\nexport class MoneyToIntPipe implements PipeTransform {\r\n\r\n constructor(private variablesService: VariablesService) {}\r\n\r\n transform(value: any, args?: any): any {\r\n const CURRENCY_DISPLAY_DECIMAL_POINT = this.variablesService.digits;\r\n let result;\r\n if (value) {\r\n let am_str = value.toString().trim();\r\n const point_index = am_str.indexOf('.');\r\n let fraction_size = 0;\r\n if (-1 !== point_index) {\r\n fraction_size = am_str.length - point_index - 1;\r\n while (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size && '0' === am_str[am_str.length - 1]) {\r\n am_str = am_str.slice(0, am_str.length - 1);\r\n --fraction_size;\r\n }\r\n if (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size) {\r\n return undefined;\r\n }\r\n am_str = am_str.slice(0, point_index) + am_str.slice(point_index + 1, am_str.length);\r\n } else {\r\n fraction_size = 0;\r\n }\r\n if (!am_str.length) {\r\n return undefined;\r\n }\r\n if (fraction_size < CURRENCY_DISPLAY_DECIMAL_POINT) {\r\n for (let i = 0; i !== CURRENCY_DISPLAY_DECIMAL_POINT - fraction_size; i++) {\r\n am_str = am_str + '0';\r\n }\r\n }\r\n result = (new BigNumber(am_str)).integerValue();\r\n }\r\n return result;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHTML'\r\n})\r\nexport class SafeHTMLPipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n transform(html: string) {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {VariablesService} from './variables.service';\r\nimport {ModalService} from './modal.service';\r\nimport {MoneyToIntPipe} from '../pipes/money-to-int.pipe';\r\nimport JSONBigNumber from 'json-bignumber';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Injectable()\r\nexport class BackendService {\r\n\r\n backendObject: any;\r\n backendLoaded = false;\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n private variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private moneyToIntPipe: MoneyToIntPipe\r\n ) {\r\n }\r\n\r\n static bigNumberParser(key, val) {\r\n if (val.constructor.name === 'BigNumber' && ['balance', 'unlocked_balance', 'amount', 'fee', 'b_fee', 'to_pay', 'a_pledge', 'b_pledge', 'coast', 'a'].indexOf(key) === -1) {\r\n return val.toNumber();\r\n }\r\n if (key === 'rcv' || key === 'spn') {\r\n for (let i = 0; i < val.length; i++) {\r\n val[i] = new BigNumber(val[i]);\r\n }\r\n }\r\n return val;\r\n }\r\n\r\n static Debug(type, message) {\r\n switch (type) {\r\n case 0:\r\n console.error(message);\r\n break;\r\n case 1:\r\n console.warn(message);\r\n break;\r\n case 2:\r\n console.log(message);\r\n break;\r\n default:\r\n console.log(message);\r\n break;\r\n }\r\n }\r\n\r\n private informerRun(error, params, command) {\r\n let error_translate = '';\r\n\r\n switch (error) {\r\n case 'NOT_ENOUGH_MONEY':\r\n error_translate = 'ERRORS.NOT_ENOUGH_MONEY';\r\n // error_translate = 'ERRORS.NO_MONEY'; maybe that one?\r\n if (command === 'cancel_offer') {\r\n error_translate = this.translate.instant('ERRORS.NO_MONEY_REMOVE_OFFER', {\r\n 'fee': this.variablesService.default_fee,\r\n 'currency': this.variablesService.defaultCurrency\r\n });\r\n }\r\n break;\r\n case 'CORE_BUSY':\r\n error_translate = 'ERRORS.CORE_BUSY';\r\n break;\r\n case 'BUSY':\r\n error_translate = 'ERRORS.DAEMON_BUSY';\r\n break;\r\n case 'OVERFLOW':\r\n if (command !== 'get_all_aliases') {\r\n error_translate = '';\r\n }\r\n break;\r\n case 'NOT_ENOUGH_OUTPUTS_FOR_MIXING':\r\n error_translate = 'ERRORS.NOT_ENOUGH_OUTPUTS_TO_MIX';\r\n break;\r\n case 'TX_IS_TOO_BIG':\r\n error_translate = 'ERRORS.TRANSACTION_IS_TO_BIG';\r\n break;\r\n case 'DISCONNECTED':\r\n error_translate = 'ERRORS.TRANSFER_ATTEMPT';\r\n break;\r\n case 'ACCESS_DENIED':\r\n error_translate = 'ERRORS.ACCESS_DENIED';\r\n break;\r\n case 'TX_REJECTED':\r\n // if (command === 'request_alias_registration') {\r\n // error_translate = 'INFORMER.ALIAS_IN_REGISTER';\r\n // } else {\r\n error_translate = 'ERRORS.TRANSACTION_ERROR';\r\n // }\r\n break;\r\n case 'INTERNAL_ERROR':\r\n error_translate = 'ERRORS.TRANSACTION_ERROR';\r\n break;\r\n case 'BAD_ARG':\r\n error_translate = 'ERRORS.BAD_ARG';\r\n break;\r\n case 'WALLET_WRONG_ID':\r\n error_translate = 'ERRORS.WALLET_WRONG_ID';\r\n break;\r\n case 'WALLET_WATCH_ONLY_NOT_SUPPORTED':\r\n error_translate = 'ERRORS.WALLET_WATCH_ONLY_NOT_SUPPORTED';\r\n break;\r\n case 'WRONG_PASSWORD':\r\n params = JSON.parse(params);\r\n if (!params.testEmpty) {\r\n error_translate = 'ERRORS.WRONG_PASSWORD';\r\n }\r\n break;\r\n case 'FILE_RESTORED':\r\n if (command === 'open_wallet') {\r\n error_translate = 'ERRORS.FILE_RESTORED';\r\n }\r\n break;\r\n case 'FILE_NOT_FOUND':\r\n if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') {\r\n error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND');\r\n params = JSON.parse(params);\r\n if (params.path) {\r\n error_translate += ': ' + params.path;\r\n }\r\n }\r\n break;\r\n case 'NOT_FOUND':\r\n if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') {\r\n error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND');\r\n params = JSON.parse(params);\r\n if (params.path) {\r\n error_translate += ': ' + params.path;\r\n }\r\n }\r\n break;\r\n case 'CANCELED':\r\n case '':\r\n break;\r\n case 'FAIL':\r\n if (command === 'create_proposal' || command === 'accept_proposal' || command === 'release_contract' || command === 'request_cancel_contract' || command === 'accept_cancel_contract') {\r\n error_translate = ' ';\r\n }\r\n break;\r\n case 'ALREADY_EXISTS':\r\n error_translate = 'ERRORS.FILE_EXIST';\r\n break;\r\n case 'FAILED':\r\n BackendService.Debug(0, `Error: (${error}) was triggered by command: ${command}`);\r\n break;\r\n default:\r\n error_translate = error;\r\n }\r\n if (error.indexOf('FAIL:failed to save file') > -1) {\r\n error_translate = 'ERRORS.FILE_NOT_SAVED';\r\n }\r\n if (error.indexOf('FAILED:failed to open binary wallet file for saving') > -1 && command === 'generate_wallet') {\r\n error_translate = '';\r\n }\r\n\r\n if (error_translate !== '') {\r\n this.modalService.prepareModal('error', error_translate);\r\n }\r\n }\r\n\r\n\r\n private commandDebug(command, params, result) {\r\n BackendService.Debug(2, '----------------- ' + command + ' -----------------');\r\n const debug = {\r\n _send_params: params,\r\n _result: result\r\n };\r\n BackendService.Debug(2, debug);\r\n try {\r\n BackendService.Debug(2, JSONBigNumber.parse(result, BackendService.bigNumberParser));\r\n } catch (e) {\r\n BackendService.Debug(2, {response_data: result, error_code: 'OK'});\r\n }\r\n }\r\n\r\n private backendCallback(resultStr, params, callback, command) {\r\n let Result = resultStr;\r\n if (command !== 'get_clipboard') {\r\n if (!resultStr || resultStr === '') {\r\n Result = {};\r\n } else {\r\n try {\r\n Result = JSONBigNumber.parse(resultStr, BackendService.bigNumberParser);\r\n } catch (e) {\r\n Result = {response_data: resultStr, error_code: 'OK'};\r\n }\r\n }\r\n } else {\r\n Result = {\r\n error_code: 'OK',\r\n response_data: Result\r\n };\r\n }\r\n\r\n const core_busy = Result.error_code === 'CORE_BUSY';\r\n const Status = (Result.error_code === 'OK' || Result.error_code === 'TRUE');\r\n\r\n if (!Status && Status !== undefined && Result.error_code !== undefined) {\r\n BackendService.Debug(1, 'API error for command: \"' + command + '\". Error code: ' + Result.error_code);\r\n }\r\n const data = ((typeof Result === 'object') && 'response_data' in Result) ? Result.response_data : Result;\r\n\r\n let res_error_code = false;\r\n if (typeof Result === 'object' && 'error_code' in Result && Result.error_code !== 'OK' && Result.error_code !== 'TRUE' && Result.error_code !== 'FALSE') {\r\n if (core_busy) {\r\n setTimeout( () => {\r\n // this is will avoid update data when user\r\n // on other wallet after CORE_BUSY (blink of data)\r\n if (command !== 'get_recent_transfers') {\r\n this.runCommand(command, params, callback);\r\n } else {\r\n const current_wallet_id = this.variablesService.currentWallet.wallet_id;\r\n if (current_wallet_id === params.wallet_id) {\r\n this.runCommand(command, params, callback);\r\n }\r\n }\r\n }, 50);\r\n } else {\r\n this.informerRun(Result.error_code, params, command);\r\n res_error_code = Result.error_code;\r\n }\r\n }\r\n\r\n // if ( command === 'get_offers_ex' ){\r\n // Service.printLog( \"get_offers_ex offers count \"+((data.offers)?data.offers.length:0) );\r\n // }\r\n\r\n if (!core_busy) {\r\n if (typeof callback === 'function') {\r\n callback(Status, data, res_error_code);\r\n } else {\r\n return data;\r\n }\r\n }\r\n }\r\n\r\n\r\n private runCommand(command, params?, callback?) {\r\n if (this.backendObject) {\r\n if (command === 'get_recent_transfers') {\r\n this.variablesService.get_recent_transfers = true;\r\n }\r\n const Action = this.backendObject[command];\r\n if (!Action) {\r\n BackendService.Debug(0, 'Run Command Error! Command \"' + command + '\" don\\'t found in backendObject');\r\n } else {\r\n const that = this;\r\n params = (typeof params === 'string') ? params : JSONBigNumber.stringify(params);\r\n if (params === undefined || params === '{}') {\r\n if (command === 'get_recent_transfers') {\r\n this.variablesService.get_recent_transfers = false;\r\n }\r\n Action(function (resultStr) {\r\n that.commandDebug(command, params, resultStr);\r\n return that.backendCallback(resultStr, params, callback, command);\r\n });\r\n } else {\r\n Action(params, function (resultStr) {\r\n that.commandDebug(command, params, resultStr);\r\n return that.backendCallback(resultStr, params, callback, command);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n eventSubscribe(command, callback) {\r\n if (command === 'on_core_event') {\r\n this.backendObject[command].connect(callback);\r\n } else {\r\n this.backendObject[command].connect((str) => {\r\n callback(JSONBigNumber.parse(str, BackendService.bigNumberParser));\r\n });\r\n }\r\n }\r\n\r\n\r\n initService() {\r\n return new Observable(\r\n observer => {\r\n if (!this.backendLoaded) {\r\n this.backendLoaded = true;\r\n const that = this;\r\n (window).QWebChannel((window).qt.webChannelTransport, function (channel) {\r\n that.backendObject = channel.objects.mediator_object;\r\n observer.next('ok');\r\n });\r\n } else {\r\n if (!this.backendObject) {\r\n observer.error('error');\r\n observer.error('error');\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n webkitLaunchedScript() {\r\n return this.runCommand('webkit_launched_script');\r\n }\r\n\r\n quitRequest() {\r\n return this.runCommand('on_request_quit');\r\n }\r\n\r\n getAppData(callback) {\r\n this.runCommand('get_app_data', {}, callback);\r\n }\r\n\r\n storeAppData(callback?) {\r\n if (this.variablesService.wallets.length) {\r\n this.variablesService.settings.wallets = [];\r\n this.variablesService.wallets.forEach((wallet) => {\r\n this.variablesService.settings.wallets.push({name: wallet.name, path: wallet.path});\r\n });\r\n }\r\n this.runCommand('store_app_data', this.variablesService.settings, callback);\r\n }\r\n\r\n getSecureAppData(pass, callback) {\r\n this.runCommand('get_secure_app_data', pass, callback);\r\n }\r\n\r\n setMasterPassword(pass, callback) {\r\n this.runCommand('set_master_password', pass, callback);\r\n }\r\n\r\n checkMasterPassword(pass, callback) {\r\n this.runCommand('check_master_password', pass, callback);\r\n }\r\n storeSecureAppData(callback?) {\r\n let data;\r\n const wallets = [];\r\n const contacts = [];\r\n this.variablesService.wallets.forEach((wallet) => {\r\n wallets.push({name: wallet.name, pass: wallet.pass, path: wallet.path, staking: wallet.staking});\r\n });\r\n this.variablesService.contacts.forEach((contact) => {\r\n contacts.push({name: contact.name, address: contact.address, notes: contact.notes});\r\n });\r\n data = {wallets: wallets, contacts: contacts};\r\n this.backendObject['store_secure_app_data'](JSON.stringify(data), this.variablesService.appPass, (dataStore) => {\r\n this.backendCallback(dataStore, {}, callback, 'store_secure_app_data');\r\n });\r\n }\r\n\r\n dropSecureAppData(callback?) {\r\n this.backendObject['drop_secure_app_data']((dataStore) => {\r\n this.backendCallback(dataStore, {}, callback, 'drop_secure_app_data');\r\n });\r\n }\r\n\r\n haveSecureAppData(callback) {\r\n this.runCommand('have_secure_app_data', {}, callback);\r\n }\r\n\r\n saveFileDialog(caption, fileMask, default_path, callback) {\r\n const dir = default_path ? default_path : '/';\r\n const params = {\r\n caption: caption,\r\n filemask: fileMask,\r\n default_dir: dir\r\n };\r\n this.runCommand('show_savefile_dialog', params, callback);\r\n }\r\n\r\n openFileDialog(caption, fileMask, default_path, callback) {\r\n const dir = default_path ? default_path : '/';\r\n const params = {\r\n caption: caption,\r\n filemask: fileMask,\r\n default_dir: dir\r\n };\r\n this.runCommand('show_openfile_dialog', params, callback);\r\n }\r\n\r\n storeFile(path, buff) {\r\n this.backendObject['store_to_file'](path, buff);\r\n }\r\n\r\n loadFile(path, callback) {\r\n this.runCommand('load_from_file', path, callback);\r\n }\r\n\r\n generateWallet(path, pass, callback) {\r\n const params = {\r\n path: path,\r\n pass: pass\r\n };\r\n this.runCommand('generate_wallet', params, callback);\r\n }\r\n\r\n openWallet(path, pass, txs_to_return, testEmpty, callback) {\r\n const params = {\r\n path: path,\r\n pass: pass,\r\n txs_to_return: txs_to_return\r\n };\r\n params['testEmpty'] = !!(testEmpty);\r\n this.runCommand('open_wallet', params, callback);\r\n }\r\n\r\n closeWallet(wallet_id, callback?) {\r\n this.runCommand('close_wallet', {wallet_id: +wallet_id}, callback);\r\n }\r\n\r\n getSmartWalletInfo({wallet_id, seed_password}, callback) {\r\n this.runCommand('get_smart_wallet_info', {wallet_id: +wallet_id, seed_password}, callback);\r\n }\r\n\r\n getSeedPhraseInfo(param, callback) {\r\n this.runCommand('get_seed_phrase_info', param, callback);\r\n }\r\n\r\n runWallet(wallet_id, callback?) {\r\n this.runCommand('run_wallet', {wallet_id: +wallet_id}, callback);\r\n }\r\n\r\n isValidRestoreWalletText(param, callback) {\r\n this.runCommand('is_valid_restore_wallet_text', param, callback);\r\n }\r\n\r\n restoreWallet(path, pass, seed_phrase, seed_pass, callback) {\r\n const params = {\r\n seed_phrase: seed_phrase,\r\n path: path,\r\n pass: pass,\r\n seed_pass\r\n };\r\n this.runCommand('restore_wallet', params, callback);\r\n }\r\n\r\n sendMoney(from_wallet_id, to_address, amount, fee, mixin, comment, hide, callback) {\r\n const params = {\r\n wallet_id: parseInt(from_wallet_id, 10),\r\n destinations: [\r\n {\r\n address: to_address,\r\n amount: amount\r\n }\r\n ],\r\n mixin_count: (mixin) ? parseInt(mixin, 10) : 0,\r\n lock_time: 0,\r\n fee: this.moneyToIntPipe.transform(fee),\r\n comment: comment,\r\n push_payer: !hide\r\n };\r\n this.runCommand('transfer', params, callback);\r\n }\r\n\r\n validateAddress(address, callback) {\r\n this.runCommand('validate_address', address, callback);\r\n }\r\n\r\n setClipboard(str, callback?) {\r\n return this.runCommand('set_clipboard', str, callback);\r\n }\r\n\r\n getClipboard(callback) {\r\n return this.runCommand('get_clipboard', {}, callback);\r\n }\r\n\r\n createProposal(wallet_id, title, comment, a_addr, b_addr, to_pay, a_pledge, b_pledge, time, payment_id, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n details: {\r\n t: title,\r\n c: comment,\r\n a_addr: a_addr,\r\n b_addr: b_addr,\r\n to_pay: this.moneyToIntPipe.transform(to_pay),\r\n a_pledge: this.moneyToIntPipe.transform(a_pledge),\r\n b_pledge: this.moneyToIntPipe.transform(b_pledge)\r\n },\r\n payment_id: payment_id,\r\n expiration_period: parseInt(time, 10) * 60 * 60,\r\n fee: this.variablesService.default_fee_big,\r\n b_fee: this.variablesService.default_fee_big\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('create_proposal', params, callback);\r\n }\r\n\r\n getContracts(wallet_id, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10)\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('get_contracts', params, callback);\r\n }\r\n\r\n acceptProposal(wallet_id, contract_id, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n contract_id: contract_id\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('accept_proposal', params, callback);\r\n }\r\n\r\n releaseProposal(wallet_id, contract_id, release_type, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n contract_id: contract_id,\r\n release_type: release_type // \"normal\" or \"burn\"\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('release_contract', params, callback);\r\n }\r\n\r\n requestCancelContract(wallet_id, contract_id, time, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n contract_id: contract_id,\r\n fee: this.variablesService.default_fee_big,\r\n expiration_period: parseInt(time, 10) * 60 * 60\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('request_cancel_contract', params, callback);\r\n }\r\n\r\n acceptCancelContract(wallet_id, contract_id, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n contract_id: contract_id\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('accept_cancel_contract', params, callback);\r\n }\r\n\r\n getMiningHistory(wallet_id, callback) {\r\n this.runCommand('get_mining_history', {wallet_id: parseInt(wallet_id, 10)}, callback);\r\n }\r\n\r\n startPosMining(wallet_id, callback?) {\r\n this.runCommand('start_pos_mining', {wallet_id: parseInt(wallet_id, 10)}, callback);\r\n }\r\n\r\n stopPosMining(wallet_id, callback?) {\r\n this.runCommand('stop_pos_mining', {wallet_id: parseInt(wallet_id, 10)}, callback);\r\n }\r\n\r\n openUrlInBrowser(url, callback?) {\r\n this.runCommand('open_url_in_browser', url, callback);\r\n }\r\n\r\n start_backend(node, host, port, callback) {\r\n const params = {\r\n configure_for_remote_node: node,\r\n remote_node_host: host,\r\n remote_node_port: parseInt(port, 10)\r\n };\r\n this.runCommand('start_backend', params, callback);\r\n }\r\n\r\n getDefaultFee(callback) {\r\n this.runCommand('get_default_fee', {}, callback);\r\n }\r\n\r\n setBackendLocalization(stringsArray, title, callback?) {\r\n const params = {\r\n strings: stringsArray,\r\n language_title: title\r\n };\r\n this.runCommand('set_localization_strings', params, callback);\r\n }\r\n\r\n registerAlias(wallet_id, alias, address, fee, comment, reward, callback) {\r\n const params = {\r\n wallet_id: wallet_id,\r\n alias: {\r\n alias: alias,\r\n address: address,\r\n tracking_key: '',\r\n comment: comment\r\n },\r\n fee: this.moneyToIntPipe.transform(fee),\r\n reward: this.moneyToIntPipe.transform(reward)\r\n };\r\n this.runCommand('request_alias_registration', params, callback);\r\n }\r\n\r\n updateAlias(wallet_id, alias, fee, callback) {\r\n const params = {\r\n wallet_id: wallet_id,\r\n alias: {\r\n alias: alias.name.replace('@', ''),\r\n address: alias.address,\r\n tracking_key: '',\r\n comment: alias.comment\r\n },\r\n fee: this.moneyToIntPipe.transform(fee)\r\n };\r\n this.runCommand('request_alias_update', params, callback);\r\n }\r\n\r\n getAllAliases(callback) {\r\n this.runCommand('get_all_aliases', {}, callback);\r\n }\r\n\r\n getAliasByName(value, callback) {\r\n return this.runCommand('get_alias_info_by_name', value, callback);\r\n }\r\n\r\n getAliasByAddress(value, callback) {\r\n return this.runCommand('get_alias_info_by_address', value, callback);\r\n }\r\n\r\n getAliasCoast(alias, callback) {\r\n this.runCommand('get_alias_coast', {v: alias}, callback);\r\n }\r\n\r\n getWalletAlias(address) {\r\n if (address !== null && this.variablesService.daemon_state === 2) {\r\n if (this.variablesService.aliasesChecked[address] == null) {\r\n this.variablesService.aliasesChecked[address] = {};\r\n if (this.variablesService.aliases.length) {\r\n for (let i = 0, length = this.variablesService.aliases.length; i < length; i++) {\r\n if (i in this.variablesService.aliases && this.variablesService.aliases[i]['address'] === address) {\r\n this.variablesService.aliasesChecked[address]['name'] = this.variablesService.aliases[i].name;\r\n this.variablesService.aliasesChecked[address]['address'] = this.variablesService.aliases[i].address;\r\n this.variablesService.aliasesChecked[address]['comment'] = this.variablesService.aliases[i].comment;\r\n return this.variablesService.aliasesChecked[address];\r\n }\r\n }\r\n }\r\n this.getAliasByAddress(address, (status, data) => {\r\n if (status) {\r\n this.variablesService.aliasesChecked[data.address]['name'] = '@' + data.alias;\r\n this.variablesService.aliasesChecked[data.address]['address'] = data.address;\r\n this.variablesService.aliasesChecked[data.address]['comment'] = data.comment;\r\n }\r\n });\r\n }\r\n return this.variablesService.aliasesChecked[address];\r\n }\r\n return {};\r\n }\r\n\r\n getContactAlias() {\r\n if (this.variablesService.contacts.length && this.variablesService.daemon_state === 2) {\r\n this.variablesService.contacts.map(contact => {\r\n this.getAliasByAddress(contact.address, (status, data) => {\r\n if (status) {\r\n if (data.alias) {\r\n contact.alias = '@' + data.alias;\r\n }\r\n } else {\r\n contact.alias = null;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n getRecentTransfers( id, offset, count, exclude_mining_txs, callback) {\r\n const params = {\r\n wallet_id: id,\r\n offset: offset,\r\n count: count,\r\n exclude_mining_txs: exclude_mining_txs\r\n };\r\n this.runCommand('get_recent_transfers', params, callback);\r\n }\r\n\r\n getPoolInfo(callback) {\r\n this.runCommand('get_tx_pool_info', {}, callback);\r\n }\r\n\r\n getVersion(callback) {\r\n this.runCommand('get_version', {}, (status, version) => {\r\n this.runCommand('get_network_type', {}, (status, type) => {\r\n callback(version, type);\r\n });\r\n });\r\n }\r\n\r\n setLogLevel(level) {\r\n return this.runCommand('set_log_level', {v: level});\r\n }\r\n\r\n}\r\n\r\n\r\n/*\r\n\r\n toggleAutoStart: function (value) {\r\n return this.runCommand('toggle_autostart', asVal(value));\r\n },\r\n\r\n getOptions: function (callback) {\r\n return this.runCommand('get_options', {}, callback);\r\n },\r\n\r\n isFileExist: function (path, callback) {\r\n return this.runCommand('is_file_exist', path, callback);\r\n },\r\n\r\n isAutoStartEnabled: function (callback) {\r\n this.runCommand('is_autostart_enabled', {}, function (status, data) {\r\n if (angular.isFunction(callback)) {\r\n callback('error_code' in data && data.error_code !== 'FALSE')\r\n }\r\n });\r\n },\r\n\r\n resetWalletPass: function (wallet_id, pass, callback) {\r\n this.runCommand('reset_wallet_password', {wallet_id: wallet_id, pass: pass}, callback);\r\n },\r\n\r\n\r\n\r\n getOsVersion: function (callback) {\r\n this.runCommand('get_os_version', {}, function (status, version) {\r\n callback(version)\r\n })\r\n },\r\n\r\n getLogFile: function (callback) {\r\n this.runCommand('get_log_file', {}, function (status, version) {\r\n callback(version)\r\n })\r\n },\r\n\r\n resync_wallet: function (wallet_id, callback) {\r\n this.runCommand('resync_wallet', {wallet_id: wallet_id}, callback);\r\n },\r\n\r\n storeFile: function (path, buff, callback) {\r\n this.backendObject['store_to_file'](path, (typeof buff === 'string' ? buff : JSON.stringify(buff)), function (data) {\r\n backendCallback(data, {}, callback, 'store_to_file');\r\n });\r\n },\r\n\r\n getMiningEstimate: function (amount_coins, time, callback) {\r\n var params = {\r\n \"amount_coins\": $filter('money_to_int')(amount_coins),\r\n \"time\": parseInt(time)\r\n };\r\n this.runCommand('get_mining_estimate', params, callback);\r\n },\r\n\r\n backupWalletKeys: function (wallet_id, path, callback) {\r\n var params = {\r\n \"wallet_id\": wallet_id,\r\n \"path\": path\r\n };\r\n this.runCommand('backup_wallet_keys', params, callback);\r\n },\r\n\r\n setBlockedIcon: function (enabled, callback) {\r\n var mode = (enabled) ? \"blocked\" : \"normal\";\r\n Service.runCommand('bool_toggle_icon', mode, callback);\r\n },\r\n\r\n getWalletInfo: function (wallet_id, callback) {\r\n this.runCommand('get_wallet_info', {wallet_id: wallet_id}, callback);\r\n },\r\n\r\n printText: function (content) {\r\n return this.runCommand('print_text', {html_text: content});\r\n },\r\n\r\n printLog: function (msg, log_level) {\r\n return this.runCommand('print_log', {msg: msg, log_level: log_level});\r\n },\r\n\r\n*/\r\n\r\n","import {Injectable, Injector, ComponentFactoryResolver, EmbeddedViewRef, ApplicationRef, NgZone} from '@angular/core';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {ModalContainerComponent} from '../directives/modal-container/modal-container.component';\r\n\r\n@Injectable()\r\nexport class ModalService {\r\n\r\n private components: any[] = [];\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private appRef: ApplicationRef,\r\n private injector: Injector,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {}\r\n\r\n prepareModal(type, message) {\r\n const length = this.components.push(\r\n this.componentFactoryResolver.resolveComponentFactory(ModalContainerComponent).create(this.injector)\r\n );\r\n\r\n this.components[length - 1].instance['type'] = type;\r\n this.components[length - 1].instance['message'] = message.length ? this.translate.instant(message) : '';\r\n this.components[length - 1].instance['close'].subscribe(() => {\r\n this.removeModal(length - 1);\r\n });\r\n\r\n this.ngZone.run(() => {\r\n this.appendModal(length - 1);\r\n });\r\n }\r\n\r\n appendModal(index) {\r\n this.appRef.attachView(this.components[index].hostView);\r\n const domElem = (this.components[index].hostView as EmbeddedViewRef).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n }\r\n\r\n removeModal(index) {\r\n if (this.components[index]) {\r\n this.appRef.detachView(this.components[index].hostView);\r\n this.components[index].destroy();\r\n this.components.splice(index, 1);\r\n } else {\r\n const last = this.components.length - 1;\r\n this.appRef.detachView(this.components[last].hostView);\r\n this.components[last].destroy();\r\n this.components.splice(last, 1);\r\n }\r\n }\r\n}\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { VariablesService } from './variables.service';\r\nimport { PaginationStore } from './pagination.store';\r\nimport * as _ from 'lodash';\r\nimport {Store} from 'store';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PaginationService {\r\n\r\n constructor(\r\n private variables: VariablesService,\r\n private ngZone: NgZone,\r\n private paginationStore: PaginationStore,\r\n ) { }\r\n\r\n paginate(currentPage = 1) {\r\n if (currentPage < 1) {\r\n currentPage = 1;\r\n } else if (currentPage > this.variables.currentWallet.totalPages) {\r\n currentPage = this.variables.currentWallet.totalPages;\r\n }\r\n let startPage: number, endPage: number;\r\n if (this.variables.currentWallet.totalPages <= this.variables.maxPages) {\r\n startPage = 1;\r\n endPage = this.variables.currentWallet.totalPages;\r\n } else {\r\n const maxPagesBeforeCurrentPage = Math.floor(this.variables.maxPages / 2);\r\n const maxPagesAfterCurrentPage = Math.ceil(this.variables.maxPages / 2) - 1;\r\n if (currentPage <= maxPagesBeforeCurrentPage) {\r\n startPage = 1;\r\n this.variables.currentWallet.totalPages > this.variables.maxPages\r\n ? endPage = this.variables.maxPages\r\n : endPage = this.variables.currentWallet.totalPages\r\n ;\r\n } else if (currentPage + maxPagesAfterCurrentPage >= this.variables.currentWallet.totalPages) {\r\n startPage = this.variables.currentWallet.totalPages - this.variables.maxPages + 1;\r\n endPage = this.variables.currentWallet.totalPages;\r\n } else {\r\n startPage = currentPage - maxPagesBeforeCurrentPage;\r\n endPage = currentPage + maxPagesAfterCurrentPage;\r\n }\r\n }\r\n this.ngZone.run(() => {\r\n this.variables.currentWallet.pages = Array.from(Array((endPage + 1) - startPage).keys()).map(i => startPage + i);\r\n });\r\n }\r\n\r\n getOffset(walletID) {\r\n const mining = this.variables.currentWallet.exclude_mining_txs;\r\n const currentPage = (this.variables.currentWallet.currentPage);\r\n let offset = ((currentPage - 1) * this.variables.count);\r\n if (!mining) { return offset; }\r\n const value = this.paginationStore.value;\r\n const pages = value.filter(item => item.walletID === walletID);\r\n if (pages && pages.length) {\r\n const max = _.maxBy(pages, 'page');\r\n const isForward = this.paginationStore.isForward(pages, currentPage);\r\n if (isForward) {\r\n offset = max.offset;\r\n } else {\r\n const index = pages.findIndex(item => item.page === (currentPage));\r\n offset = pages[index].offset;\r\n }\r\n }\r\n return offset;\r\n }\r\n\r\n calcPages(data) {\r\n if (data.total_history_items && (data && data.history)) {\r\n this.variables.currentWallet.totalPages = Math.ceil( data.total_history_items / this.variables.count);\r\n this.variables.currentWallet.totalPages > this.variables.maxPages\r\n ? this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : this.variables.currentWallet.pages =\r\n new Array(this.variables.currentWallet.totalPages).fill(1).map((value, index) => value + index);\r\n } else if (this.variables.currentWallet.restore) {\r\n this.variables.currentWallet.totalPages = Math.ceil( data.history.length / this.variables.count);\r\n this.variables.currentWallet.totalPages > this.variables.maxPages\r\n ? this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : this.variables.currentWallet.pages =\r\n new Array(this.variables.currentWallet.totalPages).fill(1).map((value, index) => value + index);\r\n }\r\n }\r\n\r\n prepareHistory(data, status) {\r\n if (status && (data && data.total_history_items)) {\r\n this.variables.currentWallet.history.splice(0, this.variables.currentWallet.history.length);\r\n this.ngZone.run(() => {\r\n this.paginate(this.variables.currentWallet.currentPage);\r\n if (data.history.length !== 0) {\r\n this.variables.currentWallet.restore = false;\r\n this.variables.currentWallet.total_history_item = data.total_history_items;\r\n this.variables.currentWallet.prepareHistory(data.history);\r\n if (this.variables.currentWallet.currentPage === 1 && data.unconfirmed) {\r\n this.variables.currentWallet.prepareHistory(data.unconfirmed);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, BehaviorSubject} from 'rxjs';\r\nimport * as _ from 'lodash';\r\nexport interface Pages {\r\n page: number;\r\n offset: number;\r\n walletID: number;\r\n}\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PaginationStore {\r\n constructor(\r\n ) {}\r\n private subject = new BehaviorSubject(null);\r\n pages$: Observable = this.subject.asObservable();\r\n\r\n isForward(pages, currentPage) {\r\n const max = _.maxBy(pages, 'page');\r\n return !max || max.page < currentPage || max.page === currentPage;\r\n }\r\n setPage(pageNumber: number, offset: number, walletID: number) {\r\n let newPages: Pages[] = [];\r\n const pages = this.subject.getValue();\r\n if (pages && pages.length) {\r\n newPages = pages.slice(0);\r\n }\r\n newPages.push({page: pageNumber, offset, walletID});\r\n this.subject.next(newPages);\r\n }\r\n\r\n get value() {\r\n return this.subject.value;\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UtilsService {\r\n getMinWidthByScale(scale: number) {\r\n switch (scale) {\r\n case 7.5 : return 900;\r\n case 10 : return 1200;\r\n case 12.5 : return 1500;\r\n case 15 : return 1800;\r\n default : return 1200;\r\n }\r\n }\r\n}\r\n","import {Injectable, NgZone} from '@angular/core';\r\nimport {Wallet} from '../models/wallet.model';\r\nimport {Contact} from '../models/contact.model';\r\nimport {BehaviorSubject} from 'rxjs';\r\nimport {Idle} from 'idlejs/dist';\r\nimport {Router} from '@angular/router';\r\nimport {ContextMenuComponent, ContextMenuService} from 'ngx-contextmenu';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VariablesService {\r\n public request_on_in = {};\r\n public stop_paginate = {};\r\n public sync_started = false;\r\n public digits = 12;\r\n public appPass = '';\r\n public appLogin = false;\r\n public moneyEquivalent = 0;\r\n public defaultTheme = 'dark';\r\n public defaultCurrency = 'ZANO';\r\n public opening_wallet: Wallet;\r\n public exp_med_ts = 0;\r\n public net_time_delta_median = 0;\r\n public height_app = 0;\r\n public height_max = 0;\r\n public downloaded = 0;\r\n public total = 0;\r\n public last_build_available = '';\r\n public last_build_displaymode = 0;\r\n public daemon_state = 3;\r\n public sync = {\r\n progress_value: 0,\r\n progress_value_text: '0'\r\n };\r\n public download = {\r\n progress_value: 0,\r\n progress_value_text: '0'\r\n };\r\n public get_recent_transfers = false; // avoid of execute function before collback complete\r\n public default_fee = '0.010000000000';\r\n public default_fee_big = new BigNumber('10000000000');\r\n\r\n public settings = {\r\n appLockTime: 15,\r\n appLog: 0,\r\n theme: '',\r\n scale: 10,\r\n language: 'en',\r\n default_path: '/',\r\n viewedContracts: [],\r\n notViewedContracts: [],\r\n wallets: []\r\n };\r\n\r\n public count = 40;\r\n public maxPages = 5;\r\n\r\n public testnet = false;\r\n public networkType = ''; // testnet of mainnet\r\n\r\n public wallets: Array = [];\r\n public currentWallet: Wallet;\r\n public selectWallet: number;\r\n public aliases: any = [];\r\n public aliasesChecked: any = {};\r\n public enableAliasSearch = false;\r\n public maxWalletNameLength = 25;\r\n public maxCommentLength = 255;\r\n public dataIsLoaded = false;\r\n\r\n public contacts: Array = [];\r\n public newContact: Contact = {name: null, address: null, notes: null};\r\n\r\n public pattern = '^[a-zA-Z0-9_.\\\\\\]\\*\\|\\~\\!\\?\\@\\#\\$\\%\\^\\&\\+\\{\\}\\(\\)\\<\\>\\:\\;\\\"\\'\\-\\=\\/\\,\\[\\\\\\\\]*$';\r\n public after_sync_request: any = {};\r\n getExpMedTsEvent = new BehaviorSubject(null);\r\n getHeightAppEvent = new BehaviorSubject(null);\r\n getHeightMaxEvent = new BehaviorSubject(null);\r\n getDownloadedAppEvent = new BehaviorSubject(null);\r\n getTotalEvent = new BehaviorSubject(null);\r\n getRefreshStackingEvent = new BehaviorSubject(null);\r\n getAliasChangedEvent = new BehaviorSubject(null);\r\n\r\n public idle = new Idle()\r\n .whenNotInteractive()\r\n .do(() => {\r\n if (this.appPass == '') {\r\n this.restartCountdown();\r\n } else {\r\n this.ngZone.run(() => {\r\n this.idle.stop();\r\n this.appPass = '';\r\n this.appLogin = false;\r\n this.router.navigate(['/login'], {queryParams: {type: 'auth'}});\r\n });\r\n }\r\n });\r\n\r\n public allContextMenu: ContextMenuComponent;\r\n public onlyCopyContextMenu: ContextMenuComponent;\r\n public pasteSelectContextMenu: ContextMenuComponent;\r\n\r\n constructor(private router: Router, private ngZone: NgZone, private contextMenuService: ContextMenuService) {\r\n }\r\n\r\n setExpMedTs(timestamp: number) {\r\n if (timestamp !== this.exp_med_ts) {\r\n this.exp_med_ts = timestamp;\r\n this.getExpMedTsEvent.next(timestamp);\r\n }\r\n }\r\n\r\n setHeightApp(height: number) {\r\n if (height !== this.height_app) {\r\n this.height_app = height;\r\n this.getHeightAppEvent.next(height);\r\n }\r\n }\r\n\r\n setHeightMax(height: number) {\r\n if (height !== this.height_max) {\r\n this.height_max = height;\r\n this.getHeightMaxEvent.next(height);\r\n }\r\n }\r\n\r\n setDownloadedBytes(bytes: number) {\r\n if (bytes !== this.downloaded) {\r\n this.downloaded = this.bytesToMb(bytes);\r\n this.getDownloadedAppEvent.next(bytes);\r\n }\r\n }\r\n\r\n setTotalBytes(bytes: number) {\r\n if (bytes !== this.total) {\r\n this.total = this.bytesToMb(bytes);\r\n this.getTotalEvent.next(bytes);\r\n }\r\n }\r\n\r\n setRefreshStacking(wallet_id: number) {\r\n this.getHeightAppEvent.next(wallet_id);\r\n }\r\n\r\n changeAliases() {\r\n this.getAliasChangedEvent.next(true);\r\n }\r\n\r\n setCurrentWallet(id): void {\r\n this.wallets.forEach((wallet) => {\r\n if (wallet.wallet_id === id) {\r\n this.currentWallet = wallet;\r\n }\r\n });\r\n }\r\n\r\n getWallet(id): Wallet {\r\n for (let i = 0; i < this.wallets.length; i++) {\r\n if (this.wallets[i].wallet_id === id) {\r\n return this.wallets[i];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n getNotLoadedWallet() {\r\n for (let i = 0; i < this.wallets.length; i++) {\r\n if (!this.wallets[i].loaded) {\r\n return this.wallets[i];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n startCountdown() {\r\n this.idle.within(this.settings.appLockTime).start();\r\n }\r\n\r\n stopCountdown() {\r\n this.idle.stop();\r\n }\r\n\r\n restartCountdown() {\r\n this.idle.within(this.settings.appLockTime).restart();\r\n }\r\n\r\n bytesToMb(bytes) {\r\n return Number((bytes / Math.pow(1024, 2)).toFixed(1));\r\n }\r\n\r\n public onContextMenu($event: MouseEvent): void {\r\n $event.target['contextSelectionStart'] = $event.target['selectionStart'];\r\n $event.target['contextSelectionEnd'] = $event.target['selectionEnd'];\r\n if ($event.target && ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') && !$event.target['readOnly']) {\r\n this.contextMenuService.show.next({\r\n contextMenu: this.allContextMenu,\r\n event: $event,\r\n item: $event.target,\r\n });\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n }\r\n\r\n public onContextMenuOnlyCopy($event: MouseEvent, copyText?: string): void {\r\n this.contextMenuService.show.next({\r\n contextMenu: this.onlyCopyContextMenu,\r\n event: $event,\r\n item: copyText\r\n });\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n\r\n public onContextMenuPasteSelect($event: MouseEvent): void {\r\n $event.target['contextSelectionStart'] = $event.target['selectionStart'];\r\n $event.target['contextSelectionEnd'] = $event.target['selectionEnd'];\r\n\r\n console.warn($event.target);\r\n console.warn($event.target['disabled']);\r\n\r\n\r\n if ($event.target && ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') && !$event.target['readOnly']) {\r\n this.contextMenuService.show.next({\r\n contextMenu: this.pasteSelectContextMenu,\r\n event: $event,\r\n item: $event.target,\r\n });\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n }\r\n\r\n}\r\n","export const MIXIN: number = 10; // default mixin value\r\nexport const RCV_ADDR_QR_SCALE: number = 2; // scale factor for QR code\r\n\r\nexport const AUDITABLE_WALLET_HELP_PAGE: string = 'docs.zano.org/docs/auditable-wallets';\r\nexport const CREATE_NEW_WALLET_HELP_PAGE: string = 'docs.zano.org/docs/getting-started-1#section-create-new-wallet';\r\nexport const LOCKED_BALANCE_HELP_PAGE: string = 'docs.zano.org/docs/locked-balance';\r\nexport const DOWNLOADS_PAGE_URL: string = 'zano.org/downloads.html';\r\n\r\nexport const BLOCK_EXPLORER_TX_URL_PREFIX: string = 'explorer.zano.org/transaction/';\r\nexport const BLOCK_EXPLORER_TN_TX_URL_PREFIX: string = 'testnet-explorer.zano.org/transaction/';\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.TITLE' | translate }}\\r\\n {{ 'CONTACTS.ADD' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.FORM_ERRORS.NAME_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.FORM_ERRORS.NAME_DUBLICATED' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.FORM_ERRORS.ADDRESS_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.FORM_ERRORS.ADDRESS_NOT_VALID' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.FORM_ERRORS.ADDRESS_DUBLICATED' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'CONTACTS.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \".form-add {\\n margin-top: 3rem; }\\n .form-add .input-block-name {\\n width: 50%; }\\n .form-add button {\\n margin-top: 3rem;\\n width: 100%;\\n max-width: 18rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWRkLWNvbnRhY3RzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGFkZC1jb250YWN0c1xcYWRkLWNvbnRhY3RzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gsZ0JBQWdCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9hZGQtY29udGFjdHMvYWRkLWNvbnRhY3RzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tYWRkIHtcclxuICBtYXJnaW4tdG9wOiAzcmVtO1xyXG5cclxuICAuaW5wdXQtYmxvY2stbmFtZSB7XHJcbiAgICB3aWR0aDogNTAlO1xyXG4gIH1cclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIG1hcmdpbi10b3A6IDNyZW07XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMThyZW07XHJcbiAgfVxyXG59Il19 */\"","import { Component, OnInit, NgZone, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { ModalService } from '../_helpers/services/modal.service';\r\nimport { Location } from '@angular/common';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-add-contacts',\r\n templateUrl: './add-contacts.component.html',\r\n styleUrls: ['./add-contacts.component.scss']\r\n})\r\nexport class AddContactsComponent implements OnInit, OnDestroy {\r\n id: number;\r\n queryRouting;\r\n isModalDialogVisible;\r\n addContactForm = new FormGroup({\r\n address: new FormControl('', [\r\n Validators.required,\r\n (g: FormControl) => {\r\n if (g.value) {\r\n this.backend.validateAddress(g.value, valid_status => {\r\n this.ngZone.run(() => {\r\n if (valid_status === false) {\r\n g.setErrors(\r\n Object.assign({ address_not_valid: true }, g.errors)\r\n );\r\n } else {\r\n if (g.hasError('address_not_valid')) {\r\n delete g.errors['address_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n return g.hasError('address_not_valid')\r\n ? { address_not_valid: true }\r\n : null;\r\n }\r\n return null;\r\n },\r\n (g: FormControl) => {\r\n const isDublicated = this.variablesService.contacts.findIndex(\r\n contact => contact.address === g.value\r\n );\r\n if (isDublicated !== -1 && !(this.id === isDublicated)) {\r\n return { dublicated: true };\r\n }\r\n return null;\r\n }\r\n ]),\r\n notes: new FormControl('', [\r\n (g: FormControl) => {\r\n if (g.value) {\r\n if (g.value.length > this.variablesService.maxCommentLength) {\r\n return { maxLength: true };\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n ]),\r\n name: new FormControl('', [\r\n Validators.required,\r\n Validators.minLength(4),\r\n Validators.maxLength(25),\r\n (g: FormControl) => {\r\n if (g.value) {\r\n const isDublicated = this.variablesService.contacts.findIndex(\r\n contact => contact.name === g.value.trim()\r\n );\r\n if (isDublicated !== -1 && !(this.id === isDublicated)) {\r\n return { dublicated: true };\r\n }\r\n return null;\r\n }\r\n }\r\n ])\r\n });\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private location: Location\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.id) {\r\n this.id = parseInt(params.id, 10);\r\n this.addContactForm.reset({\r\n name: this.variablesService.contacts[params.id]['name'],\r\n address: this.variablesService.contacts[params.id]['address'],\r\n notes: this.variablesService.contacts[params.id]['notes']\r\n });\r\n } else {\r\n this.addContactForm.reset({\r\n name: this.variablesService.newContact['name'],\r\n address: this.variablesService.newContact['address'],\r\n notes: this.variablesService.newContact['notes']\r\n });\r\n }\r\n });\r\n }\r\n\r\n add() {\r\n if (!this.variablesService.appPass) {\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'CONTACTS.FORM_ERRORS.SET_MASTER_PASSWORD'\r\n );\r\n } else {\r\n if (this.addContactForm.valid) {\r\n this.backend.validateAddress(\r\n this.addContactForm.get('address').value,\r\n valid_status => {\r\n if (valid_status === false) {\r\n this.ngZone.run(() => {\r\n this.addContactForm\r\n .get('address')\r\n .setErrors({ address_not_valid: true });\r\n });\r\n } else {\r\n if (this.id || this.id === 0) {\r\n this.variablesService.contacts.forEach((contact, index) => {\r\n if (index === this.id) {\r\n contact.name = this.addContactForm.get('name').value.trim();\r\n contact.address = this.addContactForm.get('address').value;\r\n contact.notes =\r\n this.addContactForm.get('notes').value || '';\r\n }\r\n });\r\n this.backend.storeSecureAppData();\r\n this.backend.getContactAlias();\r\n this.modalService.prepareModal(\r\n 'success',\r\n 'CONTACTS.SUCCESS_SAVE'\r\n );\r\n } else {\r\n this.variablesService.contacts.push({\r\n name: this.addContactForm.get('name').value.trim(),\r\n address: this.addContactForm.get('address').value,\r\n notes: this.addContactForm.get('notes').value || ''\r\n });\r\n this.backend.storeSecureAppData();\r\n this.backend.getContactAlias();\r\n this.modalService.prepareModal(\r\n 'success',\r\n 'CONTACTS.SUCCESS_SENT'\r\n );\r\n this.variablesService.newContact = {\r\n name: null,\r\n address: null,\r\n notes: null\r\n };\r\n this.addContactForm.reset({\r\n name: null,\r\n address: null,\r\n notes: null\r\n });\r\n }\r\n }\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (!(this.id || this.id === 0)) {\r\n this.variablesService.newContact = {\r\n name: this.addContactForm.get('name').value,\r\n address: this.addContactForm.get('address').value,\r\n notes: this.addContactForm.get('notes').value\r\n };\r\n }\r\n this.queryRouting.unsubscribe();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\n// Components\r\nimport { MainComponent } from './main/main.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { WalletComponent } from './wallet/wallet.component';\r\nimport { SendComponent } from './send/send.component';\r\nimport { ReceiveComponent } from './receive/receive.component';\r\nimport { HistoryComponent } from './history/history.component';\r\nimport { ContractsComponent } from './contracts/contracts.component';\r\nimport { PurchaseComponent } from './purchase/purchase.component';\r\nimport { MessagesComponent } from './messages/messages.component';\r\nimport { TypingMessageComponent } from './typing-message/typing-message.component';\r\nimport { StakingComponent } from './staking/staking.component';\r\nimport { SettingsComponent } from './settings/settings.component';\r\nimport { CreateWalletComponent } from './create-wallet/create-wallet.component';\r\nimport { OpenWalletComponent } from './open-wallet/open-wallet.component';\r\nimport { RestoreWalletComponent } from './restore-wallet/restore-wallet.component';\r\nimport { SeedPhraseComponent } from './seed-phrase/seed-phrase.component';\r\nimport { WalletDetailsComponent } from './wallet-details/wallet-details.component';\r\nimport { AssignAliasComponent } from './assign-alias/assign-alias.component';\r\nimport { EditAliasComponent } from './edit-alias/edit-alias.component';\r\nimport { TransferAliasComponent } from './transfer-alias/transfer-alias.component';\r\nimport { ContactsComponent } from './contacts/contacts.component';\r\nimport { AddContactsComponent } from './add-contacts/add-contacts.component';\r\nimport { ContactSendComponent } from './contact-send/contact-send.component';\r\nimport { ExportImportComponent } from './export-import/export-import.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: MainComponent\r\n },\r\n {\r\n path: 'main',\r\n component: MainComponent\r\n },\r\n {\r\n path: 'login',\r\n component: LoginComponent\r\n },\r\n {\r\n path: 'wallet/:id',\r\n component: WalletComponent,\r\n children: [\r\n {\r\n path: 'send',\r\n component: SendComponent\r\n },\r\n {\r\n path: 'receive',\r\n component: ReceiveComponent\r\n },\r\n {\r\n path: 'history',\r\n component: HistoryComponent\r\n },\r\n {\r\n path: 'contracts',\r\n component: ContractsComponent,\r\n },\r\n {\r\n path: 'purchase',\r\n component: PurchaseComponent\r\n },\r\n {\r\n path: 'purchase/:id',\r\n component: PurchaseComponent\r\n },\r\n {\r\n path: 'messages',\r\n component: MessagesComponent,\r\n },\r\n {\r\n path: 'messages/:id',\r\n component: TypingMessageComponent,\r\n },\r\n {\r\n path: 'staking',\r\n component: StakingComponent\r\n },\r\n {\r\n path: '',\r\n redirectTo: 'history',\r\n pathMatch: 'full'\r\n }\r\n ]\r\n },\r\n {\r\n path: 'create',\r\n component: CreateWalletComponent\r\n },\r\n {\r\n path: 'open',\r\n component: OpenWalletComponent\r\n },\r\n {\r\n path: 'restore',\r\n component: RestoreWalletComponent\r\n },\r\n {\r\n path: 'seed-phrase',\r\n component: SeedPhraseComponent\r\n },\r\n {\r\n path: 'details',\r\n component: WalletDetailsComponent\r\n },\r\n {\r\n path: 'assign-alias',\r\n component: AssignAliasComponent\r\n },\r\n {\r\n path: 'edit-alias',\r\n component: EditAliasComponent\r\n },\r\n {\r\n path: 'transfer-alias',\r\n component: TransferAliasComponent\r\n },\r\n {\r\n path: 'settings',\r\n component: SettingsComponent\r\n },\r\n {\r\n path: 'contacts',\r\n component: ContactsComponent\r\n },\r\n {\r\n path: 'add-contacts',\r\n component: AddContactsComponent\r\n },\r\n {\r\n path: 'edit-contacts/:id',\r\n component: AddContactsComponent\r\n },\r\n {\r\n path: 'contact-send/:id',\r\n component: ContactSendComponent\r\n },\r\n {\r\n path: 'import',\r\n component: ExportImportComponent\r\n },\r\n {\r\n path: '',\r\n redirectTo: '/',\r\n pathMatch: 'full'\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\n\r\n\r\nexport class AppRoutingModule { }\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n {{ 'CONTEXT_MENU.COPY' | translate }}\\r\\n {{ 'CONTEXT_MENU.PASTE' | translate }}\\r\\n {{ 'CONTEXT_MENU.SELECT' | translate }}\\r\\n\\r\\n\\r\\n\\r\\n {{ 'CONTEXT_MENU.COPY' | translate }}\\r\\n\\r\\n\\r\\n\\r\\n {{ 'CONTEXT_MENU.PASTE' | translate }}\\r\\n {{ 'CONTEXT_MENU.SELECT' | translate }}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"/*\\r\\n* Implementation of themes\\r\\n*/\\n.app-content {\\n display: flex;\\n overflow-x: overlay;\\n overflow-y: hidden;\\n width: 100%; }\\n.app-content .preloader {\\n align-self: center;\\n color: #fff;\\n font-size: 2rem;\\n margin: 0 auto;\\n text-align: center;\\n width: 50%; }\\n.app-content .preloader .loading-bar {\\n display: block;\\n -webkit-animation: move 5s linear infinite;\\n animation: move 5s linear infinite;\\n background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.125, rgba(0, 0, 0, 0.15)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.1)), color-stop(0.375, rgba(0, 0, 0, 0.1)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.15)), color-stop(0.625, rgba(0, 0, 0, 0.15)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.1)), color-stop(0.875, rgba(0, 0, 0, 0.1)), color-stop(0.875, transparent), to(transparent)), -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\\n background-size: 10rem 10rem;\\n margin-top: 2rem;\\n width: 100%;\\n height: 1rem; }\\n@-webkit-keyframes move {\\n 0% {\\n background-position: 100% -10rem; }\\n 100% {\\n background-position: 100% 10rem; } }\\n@keyframes move {\\n 0% {\\n background-position: 100% -10rem; }\\n 100% {\\n background-position: 100% 10rem; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFzc2V0c1xcc2Nzc1xcYmFzZVxcX21peGlucy5zY3NzIiwic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGFwcC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4RUE7O0NDNUVDO0FDQUQ7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUNsQixXQUFXLEVBQUE7QUFKYjtJQU9JLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsZUFBZTtJQUNmLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsVUFBVSxFQUFBO0FBWmQ7TUFlTSxjQUFjO01BQ2QsMENBQWtDO2NBQWxDLGtDQUFrQztNQUNsQywrbENBc0JHO01BQ0gsNEJBQTRCO01BQzVCLGdCQUFnQjtNQUNoQixXQUFXO01BQ1gsWUFBWSxFQUFBO0FBSWhCO0VBQ0U7SUFDRSxnQ0FBZ0MsRUFBQTtFQUVsQztJQUNFLCtCQUErQixFQUFBLEVBQUE7QUFMbkM7RUFDRTtJQUNFLGdDQUFnQyxFQUFBO0VBRWxDO0lBQ0UsK0JBQStCLEVBQUEsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBtaXhpbiB0ZXh0LXRydW5jYXRlIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuQG1peGluIHRleHRXcmFwIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICBsaW5lLWJyZWFrOiBzdHJpY3Q7XHJcbiAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xyXG4gIC1tcy1oeXBoZW5zOiBhdXRvO1xyXG4gIGh5cGhlbnM6IGF1dG87XHJcbn1cclxuQG1peGluIGNvdmVyQm94IHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG59XHJcbkBtaXhpbiBhYnMgKCR0b3A6IGF1dG8sICRyaWdodDogYXV0bywgJGJvdHRvbTogYXV0bywgJGxlZnQ6IGF1dG8pIHtcclxuICB0b3A6ICR0b3A7XHJcbiAgcmlnaHQ6ICRyaWdodDtcclxuICBib3R0b206ICRib3R0b207XHJcbiAgbGVmdDogJGxlZnQ7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcbkBtaXhpbiBjb3ZlckltZyB7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHQtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0LW8tYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbn1cclxuQG1peGluIHZhbGluZ0JveCB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogIDUwJTtcclxuXHRsZWZ0OiA1MCU7XHJcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbn1cclxuQG1peGluIHVuU2VsZWN0IHtcclxuXHQtd2Via2l0LXRvdWNoLWNvbGxvdXQ6IG5vbmU7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbn1cclxuQG1peGluIG1heDExOTkgeyAvLyBtYWtldCAxMTcxXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkgeyBAY29udGVudDsgfVxyXG59XHJcbkBtaXhpbiBtYXgxMTcwIHsgLy8gbWFrZXRzIDk5MlxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMTcwcHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbWF4OTkxIHsgLy8gbWFrZXRzIDc2MlxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkgeyBAY29udGVudDsgfVxyXG59XHJcbkBtaXhpbiBtYXg3NjEgeyAvLyBtYWtldHMgNTc2XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2MXB4KSB7IEBjb250ZW50OyB9XHJcbn1cclxuQG1peGluIG1heDU3NSB7IC8vIG1ha2V0cyA0MDBcclxuICBAbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbW9iaWxlIHtcclxuICBAbWVkaWEgKG1heC13aWR0aDogMzk5cHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gaWNvQ2VudGVyIHtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xyXG59XHJcbkBtaXhpbiBwc2V1ZG8gKCRkaXNwbGF5OiBibG9jaywgJHBvczogYWJzb2x1dGUsICRjb250ZW50OiAnJyl7XHJcbiAgY29udGVudDogJGNvbnRlbnQ7XHJcbiAgZGlzcGxheTogJGRpc3BsYXk7XHJcbiAgcG9zaXRpb246ICRwb3M7XHJcbn1cclxuXHJcbi8qXHJcbiogSW1wbGVtZW50YXRpb24gb2YgdGhlbWVzXHJcbiovXHJcbkBtaXhpbiB0aGVtaWZ5KCR0aGVtZXM6ICR0aGVtZXMpIHtcclxuICBAZWFjaCAkdGhlbWUsICRtYXAgaW4gJHRoZW1lcyB7XHJcbiAgICAudGhlbWUtI3skdGhlbWV9ICYge1xyXG4gICAgICAkdGhlbWUtbWFwOiAoKSAhZ2xvYmFsO1xyXG4gICAgICBAZWFjaCAka2V5LCAkc3VibWFwIGluICRtYXAge1xyXG4gICAgICAgICR2YWx1ZTogbWFwLWdldChtYXAtZ2V0KCR0aGVtZXMsICR0aGVtZSksICcjeyRrZXl9Jyk7XHJcbiAgICAgICAgJHRoZW1lLW1hcDogbWFwLW1lcmdlKCR0aGVtZS1tYXAsICgka2V5OiAkdmFsdWUpKSAhZ2xvYmFsO1xyXG4gICAgICB9XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgICAkdGhlbWUtbWFwOiBudWxsICFnbG9iYWw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AZnVuY3Rpb24gdGhlbWVkKCRrZXkpIHtcclxuICBAcmV0dXJuIG1hcC1nZXQoJHRoZW1lLW1hcCwgJGtleSk7XHJcbn1cclxuIiwiLypcclxuKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGVtZXNcclxuKi9cbi5hcHAtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93LXg6IG92ZXJsYXk7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmFwcC1jb250ZW50IC5wcmVsb2FkZXIge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAuYXBwLWNvbnRlbnQgLnByZWxvYWRlciAubG9hZGluZy1iYXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBhbmltYXRpb246IG1vdmUgNXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMTAwJSAxMDAlLCBjb2xvci1zdG9wKDAuMTI1LCByZ2JhKDAsIDAsIDAsIDAuMTUpKSwgY29sb3Itc3RvcCgwLjEyNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjI1LCByZ2JhKDAsIDAsIDAsIDAuMSkpLCBjb2xvci1zdG9wKDAuMzc1LCByZ2JhKDAsIDAsIDAsIDAuMSkpLCBjb2xvci1zdG9wKDAuMzc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCByZ2JhKDAsIDAsIDAsIDAuMTUpKSwgY29sb3Itc3RvcCgwLjYyNSwgcmdiYSgwLCAwLCAwLCAwLjE1KSksIGNvbG9yLXN0b3AoMC42MjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC43NSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjg3NSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjg3NSwgdHJhbnNwYXJlbnQpLCB0byh0cmFuc3BhcmVudCkpLCAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsIGNvbG9yLXN0b3AoMC4xMjUsIHJnYmEoMCwgMCwgMCwgMC4zKSksIGNvbG9yLXN0b3AoMC4xMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC4yNSwgcmdiYSgwLCAwLCAwLCAwLjI1KSksIGNvbG9yLXN0b3AoMC4zNzUsIHJnYmEoMCwgMCwgMCwgMC4yNSkpLCBjb2xvci1zdG9wKDAuMzc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCByZ2JhKDAsIDAsIDAsIDAuMykpLCBjb2xvci1zdG9wKDAuNjI1LCByZ2JhKDAsIDAsIDAsIDAuMykpLCBjb2xvci1zdG9wKDAuNjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC43NSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNzUsIHJnYmEoMCwgMCwgMCwgMC4yNSkpLCBjb2xvci1zdG9wKDAuODc1LCByZ2JhKDAsIDAsIDAsIDAuMjUpKSwgY29sb3Itc3RvcCgwLjg3NSwgdHJhbnNwYXJlbnQpLCB0byh0cmFuc3BhcmVudCkpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMHJlbSAxMHJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMXJlbTsgfVxuXG5Aa2V5ZnJhbWVzIG1vdmUge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtMTByZW07IH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAxMHJlbTsgfSB9XG4iLCJAaW1wb3J0ICd+c3JjL2Fzc2V0cy9zY3NzL2Jhc2UvbWl4aW5zJztcclxuXHJcbi5hcHAtY29udGVudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBvdmVyZmxvdy14OiBvdmVybGF5O1xyXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgLnByZWxvYWRlciB7XHJcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd2lkdGg6IDUwJTtcclxuXHJcbiAgICAubG9hZGluZy1iYXIge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgYW5pbWF0aW9uOiBtb3ZlIDVzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTpcclxuICAgICAgICAtd2Via2l0LWdyYWRpZW50KFxyXG4gICAgICAgICAgICBsaW5lYXIsIDAgMCwgMTAwJSAxMDAlLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC4xMjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjEyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC4yNTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguMjUwLCByZ2JhKDAsIDAsIDAsIC4xMCkpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC4zNzUsIHJnYmEoMCwgMCwgMCwgLjEwKSksIGNvbG9yLXN0b3AoLjM3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC41MDAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNTAwLCByZ2JhKDAsIDAsIDAsIC4xNSkpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC42MjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjYyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC43NTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNzUwLCByZ2JhKDAsIDAsIDAsIC4xMCkpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC44NzUsIHJnYmEoMCwgMCwgMCwgLjEwKSksIGNvbG9yLXN0b3AoLjg3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICB0byh0cmFuc3BhcmVudClcclxuICAgICAgICApLFxyXG4gICAgICAgIC13ZWJraXQtZ3JhZGllbnQoXHJcbiAgICAgICAgICAgIGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjEyNSwgcmdiYSgwLCAwLCAwLCAuMzApKSwgY29sb3Itc3RvcCguMTI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjI1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC4yNTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjM3NSwgcmdiYSgwLCAwLCAwLCAuMjUpKSwgY29sb3Itc3RvcCguMzc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjUwMCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC41MDAsIHJnYmEoMCwgMCwgMCwgLjMwKSksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjYyNSwgcmdiYSgwLCAwLCAwLCAuMzApKSwgY29sb3Itc3RvcCguNjI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjc1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC43NTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjg3NSwgcmdiYSgwLCAwLCAwLCAuMjUpKSwgY29sb3Itc3RvcCguODc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIHRvKHRyYW5zcGFyZW50KVxyXG4gICAgICAgICk7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTByZW0gMTByZW07XHJcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDFyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAa2V5ZnJhbWVzIG1vdmUge1xyXG4gICAgMCUge1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIC0xMHJlbTtcclxuICAgIH1cclxuICAgIDEwMCUge1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDEwcmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */\"","import {Component, OnInit, NgZone, Renderer2, OnDestroy, ViewChild} from '@angular/core';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {BackendService} from './_helpers/services/backend.service';\r\nimport {Router} from '@angular/router';\r\nimport {VariablesService} from './_helpers/services/variables.service';\r\nimport {ContextMenuComponent} from 'ngx-contextmenu';\r\nimport {IntToMoneyPipe} from './_helpers/pipes/int-to-money.pipe';\r\nimport {BigNumber} from 'bignumber.js';\r\nimport {ModalService} from './_helpers/services/modal.service';\r\nimport {UtilsService} from './_helpers/services/utils.service';\r\nimport {Store} from 'store';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n providers: [UtilsService]\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n\r\n intervalUpdatePriceState;\r\n intervalUpdateContractsState;\r\n expMedTsEvent;\r\n onQuitRequest = false;\r\n firstOnlineState = false;\r\n translateUsed = false;\r\n\r\n needOpenWallets = [];\r\n\r\n @ViewChild('allContextMenu') public allContextMenu: ContextMenuComponent;\r\n @ViewChild('onlyCopyContextMenu') public onlyCopyContextMenu: ContextMenuComponent;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private renderer: Renderer2,\r\n public translate: TranslateService,\r\n private backend: BackendService,\r\n private router: Router,\r\n public variablesService: VariablesService,\r\n private ngZone: NgZone,\r\n private intToMoneyPipe: IntToMoneyPipe,\r\n private modalService: ModalService,\r\n private utilsService: UtilsService,\r\n private store: Store\r\n ) {\r\n translate.addLangs(['en', 'fr', 'de', 'it', 'pt']);\r\n translate.setDefaultLang('en');\r\n // const browserLang = translate.getBrowserLang();\r\n // translate.use(browserLang.match(/en|fr/) ? browserLang : 'en');\r\n translate.use('en').subscribe(() => {\r\n this.translateUsed = true;\r\n });\r\n }\r\n\r\n setBackendLocalization() {\r\n if (this.translateUsed) {\r\n const stringsArray = [\r\n this.translate.instant('BACKEND_LOCALIZATION.QUIT'),\r\n this.translate.instant('BACKEND_LOCALIZATION.IS_RECEIVED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.IS_CONFIRMED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_UNCONFIRMED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_CONFIRMED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.MINED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.LOCKED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.IS_MINIMIZE'),\r\n this.translate.instant('BACKEND_LOCALIZATION.RESTORE'),\r\n this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_SHOW'),\r\n this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_MINIMIZE')\r\n ];\r\n this.backend.setBackendLocalization(stringsArray, this.variablesService.settings.language);\r\n } else {\r\n console.warn('wait translate use');\r\n setTimeout(() => {\r\n this.setBackendLocalization();\r\n }, 10000);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.variablesService.allContextMenu = this.allContextMenu;\r\n this.variablesService.onlyCopyContextMenu = this.onlyCopyContextMenu;\r\n\r\n this.backend.initService().subscribe(initMessage => {\r\n console.log('Init message: ', initMessage);\r\n\r\n this.backend.webkitLaunchedScript();\r\n\r\n this.backend.start_backend(false, '127.0.0.1', 11512, (st2, dd2) => {\r\n console.log(st2, dd2);\r\n });\r\n\r\n this.backend.eventSubscribe('quit_requested', () => {\r\n if (!this.onQuitRequest) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n this.needOpenWallets = [];\r\n this.variablesService.daemon_state = 5;\r\n const saveFunction = () => {\r\n this.backend.storeAppData(() => {\r\n const recursionCloseWallets = () => {\r\n if (this.variablesService.wallets.length) {\r\n const lastIndex = this.variablesService.wallets.length - 1;\r\n this.backend.closeWallet(this.variablesService.wallets[lastIndex].wallet_id, () => {\r\n this.variablesService.wallets.splice(lastIndex, 1);\r\n recursionCloseWallets();\r\n });\r\n } else {\r\n this.backend.quitRequest();\r\n }\r\n };\r\n recursionCloseWallets();\r\n });\r\n };\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData(() => {\r\n saveFunction();\r\n });\r\n } else {\r\n saveFunction();\r\n }\r\n }\r\n this.onQuitRequest = true;\r\n });\r\n\r\n this.backend.eventSubscribe('update_wallet_status', (data) => {\r\n console.log('----------------- update_wallet_status -----------------');\r\n console.log(data);\r\n\r\n const wallet_state = data.wallet_state;\r\n const is_mining = data.is_mining;\r\n const wallet = this.variablesService.getWallet(data.wallet_id);\r\n // 1-synch, 2-ready, 3 - error\r\n if (wallet) {\r\n this.ngZone.run(() => {\r\n wallet.loaded = false;\r\n wallet.staking = is_mining;\r\n if (wallet_state === 2) { // ready\r\n wallet.loaded = true;\r\n }\r\n if (wallet_state === 3) { // error\r\n // wallet.error = true;\r\n }\r\n wallet.balance = data.balance;\r\n wallet.unlocked_balance = data.unlocked_balance;\r\n wallet.mined_total = data.minied_total;\r\n wallet.alias_available = data.is_alias_operations_available;\r\n });\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('wallet_sync_progress', (data) => {\r\n console.log('----------------- wallet_sync_progress -----------------');\r\n console.log(data);\r\n\r\n const wallet = this.variablesService.getWallet(data.wallet_id);\r\n if (wallet) {\r\n this.ngZone.run(() => {\r\n wallet.progress = (data.progress < 0) ? 0 : ((data.progress > 100) ? 100 : data.progress);\r\n if (!this.variablesService.sync_started) {\r\n this.variablesService.sync_started = true;\r\n }\r\n this.addToStore(wallet, true); // subscribe on data\r\n if (wallet.progress === 0) {\r\n wallet.loaded = false;\r\n } else if (wallet.progress === 100) {\r\n wallet.loaded = true;\r\n this.addToStore(wallet, false);\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('update_daemon_state', (data) => {\r\n console.log('----------------- update_daemon_state -----------------');\r\n console.log('DAEMON:' + data.daemon_network_state);\r\n console.log(data);\r\n // this.variablesService.exp_med_ts = data['expiration_median_timestamp'] + 600 + 1;\r\n this.variablesService.setExpMedTs(data['expiration_median_timestamp'] + 600 + 1);\r\n this.variablesService.net_time_delta_median = data.net_time_delta_median;\r\n this.variablesService.last_build_available = data.last_build_available;\r\n this.variablesService.last_build_displaymode = data.last_build_displaymode;\r\n this.variablesService.setHeightApp(data.height);\r\n this.variablesService.setHeightMax(data.max_net_seen_height);\r\n\r\n this.variablesService.setDownloadedBytes(data.downloaded_bytes);\r\n this.variablesService.setTotalBytes(data.download_total_data_size);\r\n\r\n this.backend.getContactAlias();\r\n this.ngZone.run(() => {\r\n this.variablesService.daemon_state = data['daemon_network_state'];\r\n if (data['daemon_network_state'] === 1) {\r\n const max = data['max_net_seen_height'] - data['synchronization_start_height'];\r\n const current = data.height - data['synchronization_start_height'];\r\n const return_val = Math.floor((current * 100 / max) * 100) / 100;\r\n if (max === 0 || return_val < 0) {\r\n this.variablesService.sync.progress_value = 0;\r\n this.variablesService.sync.progress_value_text = '0.00';\r\n } else if (return_val >= 100) {\r\n this.variablesService.sync.progress_value = 100;\r\n this.variablesService.sync.progress_value_text = '99.99';\r\n } else {\r\n this.variablesService.sync.progress_value = return_val;\r\n this.variablesService.sync.progress_value_text = return_val.toFixed(2);\r\n }\r\n }\r\n\r\n if (data['daemon_network_state'] === 6) {\r\n const max = data['download_total_data_size'];\r\n const current = data['downloaded_bytes'];\r\n const return_val = Math.floor((current / max) * 100);\r\n if (max === 0 || return_val < 0) {\r\n this.variablesService.download.progress_value = 0;\r\n this.variablesService.download.progress_value_text = '0.00';\r\n } else if (return_val >= 100) {\r\n this.variablesService.download.progress_value = 100;\r\n this.variablesService.download.progress_value_text = '99.99';\r\n } else {\r\n this.variablesService.download.progress_value = return_val;\r\n this.variablesService.download.progress_value_text = return_val.toFixed(2);\r\n }\r\n }\r\n });\r\n if (!this.firstOnlineState && data['daemon_network_state'] === 2) {\r\n this.getAliases();\r\n this.backend.getContactAlias();\r\n this.backend.getDefaultFee((status_fee, data_fee) => {\r\n this.variablesService.default_fee_big = new BigNumber(data_fee);\r\n this.variablesService.default_fee = this.intToMoneyPipe.transform(data_fee);\r\n });\r\n this.firstOnlineState = true;\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('money_transfer', (data) => {\r\n console.log('----------------- money_transfer -----------------');\r\n console.log(data);\r\n\r\n if (!data.ti) {\r\n return;\r\n }\r\n\r\n const wallet_id = data.wallet_id;\r\n const tr_info = data.ti;\r\n\r\n const wallet = this.variablesService.getWallet(wallet_id);\r\n if (wallet) {\r\n if(wallet.history.length > 40) {\r\n wallet.history.splice(40, 1);\r\n }\r\n this.ngZone.run(() => {\r\n\r\n if (!wallet.loaded) {\r\n wallet.balance = data.balance;\r\n wallet.unlocked_balance = data.unlocked_balance;\r\n } else {\r\n wallet.balance = data.balance;\r\n wallet.unlocked_balance = data.unlocked_balance;\r\n }\r\n\r\n if (tr_info.tx_type === 6) {\r\n this.variablesService.setRefreshStacking(wallet_id);\r\n }\r\n\r\n let tr_exists = wallet.excluded_history.some(elem => elem.tx_hash === tr_info.tx_hash);\r\n tr_exists = (!tr_exists) ? wallet.history.some(elem => elem.tx_hash === tr_info.tx_hash) : tr_exists;\r\n\r\n if (wallet.currentPage === 1) {\r\n wallet.prepareHistory([tr_info]);\r\n if (wallet.restore) {\r\n wallet.total_history_item = wallet.history.length;\r\n wallet.totalPages = Math.ceil( wallet.total_history_item / this.variablesService.count);\r\n wallet.totalPages > this.variablesService.maxPages\r\n ? wallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : wallet.pages = new Array(wallet.totalPages).fill(1).map((value, index) => value + index);\r\n }\r\n }\r\n\r\n if (tr_info.hasOwnProperty('contract')) {\r\n const exp_med_ts = this.variablesService.exp_med_ts;\r\n const height_app = this.variablesService.height_app;\r\n\r\n const contract = tr_info.contract[0];\r\n\r\n if (tr_exists) {\r\n for (let i = 0; i < wallet.contracts.length; i++) {\r\n if (wallet.contracts[i].contract_id === contract.contract_id && wallet.contracts[i].is_a === contract.is_a) {\r\n wallet.contracts[i].cancel_expiration_time = contract.cancel_expiration_time;\r\n wallet.contracts[i].expiration_time = contract.expiration_time;\r\n wallet.contracts[i].height = contract.height;\r\n wallet.contracts[i].timestamp = contract.timestamp;\r\n break;\r\n }\r\n }\r\n // $rootScope.getContractsRecount();\r\n return;\r\n }\r\n\r\n if (contract.state === 1 && contract.expiration_time < exp_med_ts) {\r\n contract.state = 110;\r\n } else if (contract.state === 5 && contract.cancel_expiration_time < exp_med_ts) {\r\n contract.state = 130;\r\n } else if (contract.state === 1) {\r\n const searchResult2 = this.variablesService.settings.notViewedContracts.find(elem => elem.state === 110 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult2) {\r\n if (searchResult2.time === contract.expiration_time) {\r\n contract.state = 110;\r\n } else {\r\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\r\n if (this.variablesService.settings.notViewedContracts[j].contract_id === contract.contract_id && this.variablesService.settings.notViewedContracts[j].is_a === contract.is_a) {\r\n this.variablesService.settings.notViewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\r\n if (this.variablesService.settings.viewedContracts[j].contract_id === contract.contract_id && this.variablesService.settings.viewedContracts[j].is_a === contract.is_a) {\r\n this.variablesService.settings.viewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else if (contract.state === 2 && (contract.height === 0 || (height_app - contract.height) < 10)) {\r\n contract.state = 201;\r\n } else if (contract.state === 2) {\r\n const searchResult3 = this.variablesService.settings.viewedContracts.some(elem => elem.state === 120 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult3) {\r\n contract.state = 120;\r\n }\r\n } else if (contract.state === 5) {\r\n const searchResult4 = this.variablesService.settings.notViewedContracts.find(elem => elem.state === 130 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult4) {\r\n if (searchResult4.time === contract.cancel_expiration_time) {\r\n contract.state = 130;\r\n } else {\r\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\r\n if (this.variablesService.settings.notViewedContracts[j].contract_id === contract.contract_id && this.variablesService.settings.notViewedContracts[j].is_a === contract.is_a) {\r\n this.variablesService.settings.notViewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\r\n if (this.variablesService.settings.viewedContracts[j].contract_id === contract.contract_id && this.variablesService.settings.viewedContracts[j].is_a === contract.is_a) {\r\n this.variablesService.settings.viewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else if (contract.state === 6 && (contract.height === 0 || (height_app - contract.height) < 10)) {\r\n contract.state = 601;\r\n }\r\n\r\n const searchResult = this.variablesService.settings.viewedContracts.some(elem => elem.state === contract.state && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n contract.is_new = !searchResult;\r\n\r\n let findContract = false;\r\n for (let i = 0; i < wallet.contracts.length; i++) {\r\n if (wallet.contracts[i].contract_id === contract.contract_id && wallet.contracts[i].is_a === contract.is_a) {\r\n for (const prop in contract) {\r\n if (contract.hasOwnProperty(prop)) {\r\n wallet.contracts[i][prop] = contract[prop];\r\n }\r\n }\r\n findContract = true;\r\n break;\r\n }\r\n }\r\n if (findContract === false) {\r\n wallet.contracts.push(contract);\r\n }\r\n wallet.recountNewContracts();\r\n }\r\n\r\n });\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('money_transfer_cancel', (data) => {\r\n console.log('----------------- money_transfer_cancel -----------------');\r\n console.log(data);\r\n\r\n if (!data.ti) {\r\n return;\r\n }\r\n\r\n const wallet_id = data.wallet_id;\r\n const tr_info = data.ti;\r\n const wallet = this.variablesService.getWallet(wallet_id);\r\n\r\n if (wallet) {\r\n if (tr_info.hasOwnProperty('contract')) {\r\n for (let i = 0; i < wallet.contracts.length; i++) {\r\n if (wallet.contracts[i].contract_id === tr_info.contract[0].contract_id && wallet.contracts[i].is_a === tr_info.contract[0].is_a) {\r\n if (wallet.contracts[i].state === 1 || wallet.contracts[i].state === 110) {\r\n wallet.contracts[i].is_new = true;\r\n wallet.contracts[i].state = 140;\r\n wallet.recountNewContracts();\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n wallet.removeFromHistory(tr_info.tx_hash);\r\n\r\n let error_tr = '';\r\n switch (tr_info.tx_type) {\r\n case 0:\r\n error_tr = this.translate.instant('ERRORS.TX_TYPE_NORMAL') + '
' +\r\n tr_info.tx_hash + '
' + wallet.name + '
' + wallet.address + '
' +\r\n this.translate.instant('ERRORS.TX_TYPE_NORMAL_TO') + ' ' + this.intToMoneyPipe.transform(tr_info.amount) + ' ' +\r\n this.translate.instant('ERRORS.TX_TYPE_NORMAL_END');\r\n break;\r\n case 1:\r\n // this.translate.instant('ERRORS.TX_TYPE_PUSH_OFFER');\r\n break;\r\n case 2:\r\n // this.translate.instant('ERRORS.TX_TYPE_UPDATE_OFFER');\r\n break;\r\n case 3:\r\n // this.translate.instant('ERRORS.TX_TYPE_CANCEL_OFFER');\r\n break;\r\n case 4:\r\n error_tr = this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS') + '
' +\r\n tr_info.tx_hash + '
' + wallet.name + '
' + wallet.address + '
' +\r\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END');\r\n break;\r\n case 5:\r\n error_tr = this.translate.instant('ERRORS.TX_TYPE_UPDATE_ALIAS') + '
' +\r\n tr_info.tx_hash + '
' + wallet.name + '
' + wallet.address + '
' +\r\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END');\r\n break;\r\n case 6:\r\n error_tr = this.translate.instant('ERRORS.TX_TYPE_COIN_BASE');\r\n break;\r\n }\r\n if (error_tr) {\r\n this.modalService.prepareModal('error', error_tr);\r\n }\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('on_core_event', (data) => {\r\n console.log('----------------- on_core_event -----------------');\r\n console.log(data);\r\n\r\n data = JSON.parse(data);\r\n\r\n if (data.events != null) {\r\n for (let i = 0, length = data.events.length; i < length; i++) {\r\n\r\n switch (data.events[i].method) {\r\n case 'CORE_EVENT_BLOCK_ADDED':\r\n break;\r\n case 'CORE_EVENT_ADD_ALIAS':\r\n if (this.variablesService.aliasesChecked[data.events[i].details.address] != null) {\r\n this.variablesService.aliasesChecked[data.events[i].details.address]['name'] = '@' + data.events[i].details.alias;\r\n this.variablesService.aliasesChecked[data.events[i].details.address]['address'] = data.events[i].details.address;\r\n this.variablesService.aliasesChecked[data.events[i].details.address]['comment'] = data.events[i].details.comment;\r\n }\r\n if (this.variablesService.enableAliasSearch) {\r\n const newAlias = {\r\n name: '@' + data.events[i].details.alias,\r\n address: data.events[i].details.address,\r\n comment: data.events[i].details.comment\r\n };\r\n this.variablesService.aliases = this.variablesService.aliases.concat(newAlias);\r\n this.variablesService.changeAliases();\r\n }\r\n break;\r\n case 'CORE_EVENT_UPDATE_ALIAS':\r\n for (const address in this.variablesService.aliasesChecked) {\r\n if (this.variablesService.aliasesChecked.hasOwnProperty(address)) {\r\n if (this.variablesService.aliasesChecked[address].name === '@' + data.events[i].details.alias) {\r\n if (this.variablesService.aliasesChecked[address].address !== data.events[i].details.details.address) {\r\n delete this.variablesService.aliasesChecked[address]['name'];\r\n delete this.variablesService.aliasesChecked[address]['address'];\r\n delete this.variablesService.aliasesChecked[address]['comment'];\r\n } else {\r\n this.variablesService.aliasesChecked[address].comment = data.events[i].details.details.comment;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n if (this.variablesService.aliasesChecked[data.events[i].details.details.address] != null) {\r\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['name'] = '@' + data.events[i].details.alias;\r\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['address'] = data.events[i].details.details.address;\r\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['comment'] = data.events[i].details.details.comment;\r\n }\r\n if (this.variablesService.enableAliasSearch) {\r\n const CurrentAlias = this.variablesService.aliases.find((element) => element.name === '@' + data.events[i].details.alias);\r\n if (CurrentAlias) {\r\n CurrentAlias.address = data.events[i].details.details.address;\r\n CurrentAlias.comment = data.events[i].details.details.comment;\r\n }\r\n }\r\n this.variablesService.changeAliases();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.intervalUpdateContractsState = setInterval(() => {\r\n this.variablesService.wallets.forEach((wallet) => {\r\n wallet.contracts.forEach((contract) => {\r\n if (contract.state === 201 && contract.height !== 0 && (this.variablesService.height_app - contract.height) >= 10) {\r\n contract.state = 2;\r\n contract.is_new = true;\r\n console.warn('need check state in contracts');\r\n } else if (contract.state === 601 && contract.height !== 0 && (this.variablesService.height_app - contract.height) >= 10) {\r\n contract.state = 6;\r\n contract.is_new = true;\r\n }\r\n });\r\n });\r\n }, 30000);\r\n\r\n this.expMedTsEvent = this.variablesService.getExpMedTsEvent.subscribe((newTimestamp: number) => {\r\n this.variablesService.wallets.forEach((wallet) => {\r\n wallet.contracts.forEach((contract) => {\r\n if (contract.state === 1 && contract.expiration_time <= newTimestamp) {\r\n contract.state = 110;\r\n contract.is_new = true;\r\n wallet.recountNewContracts();\r\n } else if (contract.state === 5 && contract.cancel_expiration_time <= newTimestamp) {\r\n contract.state = 130;\r\n contract.is_new = true;\r\n wallet.recountNewContracts();\r\n }\r\n });\r\n });\r\n });\r\n\r\n\r\n this.backend.getAppData((status, data) => {\r\n if (data && Object.keys(data).length > 0) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key) && this.variablesService.settings.hasOwnProperty(key)) {\r\n this.variablesService.settings[key] = data[key];\r\n }\r\n }\r\n if (this.variablesService.settings.hasOwnProperty('theme') && ['dark', 'white', 'gray'].indexOf(this.variablesService.settings.theme) !== -1) {\r\n this.renderer.addClass(document.body, 'theme-' + this.variablesService.settings.theme);\r\n } else {\r\n this.renderer.addClass(document.body, 'theme-' + this.variablesService.defaultTheme);\r\n }\r\n if (this.variablesService.settings.hasOwnProperty('scale') && [7.5, 10, 12.5, 15].indexOf(this.variablesService.settings.scale) !== -1) {\r\n const width = this.utilsService.getMinWidthByScale(this.variablesService.settings.scale);\r\n const app = document.documentElement.querySelector('app-root');\r\n this.renderer.setStyle(app, 'min-width', width + 'px');\r\n this.renderer.setStyle(document.documentElement, 'font-size', this.variablesService.settings.scale + 'px');\r\n }\r\n } else {\r\n this.variablesService.settings.theme = this.variablesService.defaultTheme;\r\n this.renderer.addClass(document.body, 'theme-' + this.variablesService.settings.theme);\r\n }\r\n this.translate.use(this.variablesService.settings.language);\r\n this.setBackendLocalization();\r\n\r\n this.backend.setLogLevel(this.variablesService.settings.appLog);\r\n\r\n if (this.router.url !== '/login') {\r\n this.backend.haveSecureAppData((statusPass) => {\r\n if (statusPass) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/login'], {queryParams: {type: 'auth'}});\r\n });\r\n } else {\r\n if (Object.keys(data).length !== 0) {\r\n this.needOpenWallets = JSON.parse(JSON.stringify(this.variablesService.settings.wallets));\r\n this.ngZone.run(() => {\r\n this.variablesService.appLogin = true;\r\n this.router.navigate(['/']);\r\n });\r\n } else {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/login'], {queryParams: {type: 'reg'}});\r\n });\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }, error => {\r\n console.log(error);\r\n });\r\n this.getMoneyEquivalent();\r\n\r\n this.intervalUpdatePriceState = setInterval(() => {\r\n this.getMoneyEquivalent();\r\n }, 30000);\r\n }\r\n\r\n getMoneyEquivalent() {\r\n this.http.get('https://api.coingecko.com/api/v3/ping').subscribe(\r\n () => {\r\n this.http.get('https://api.coingecko.com/api/v3/simple/price?ids=zano&vs_currencies=usd').subscribe(\r\n data => {\r\n this.variablesService.moneyEquivalent = data['zano']['usd'];\r\n },\r\n error => {\r\n console.warn('api.coingecko.com price error: ', error);\r\n }\r\n );\r\n },\r\n error => {\r\n console.warn('api.coingecko.com error: ', error);\r\n setTimeout(() => {\r\n this.getMoneyEquivalent();\r\n }, 30000);\r\n }\r\n )\r\n }\r\n\r\n getAliases() {\r\n this.backend.getAllAliases((status, data, error) => {\r\n\r\n console.warn(error);\r\n\r\n if (error === 'CORE_BUSY') {\r\n window.setTimeout(() => {\r\n this.getAliases();\r\n }, 10000);\r\n } else if (error === 'OVERFLOW') {\r\n this.variablesService.aliases = [];\r\n this.variablesService.enableAliasSearch = false;\r\n this.variablesService.wallets.forEach(wallet => {\r\n wallet.alias = this.backend.getWalletAlias(wallet.address);\r\n });\r\n } else {\r\n this.variablesService.enableAliasSearch = true;\r\n if (data.aliases && data.aliases.length) {\r\n this.variablesService.aliases = [];\r\n data.aliases.forEach(alias => {\r\n const newAlias = {\r\n name: '@' + alias.alias,\r\n address: alias.address,\r\n comment: alias.comment\r\n };\r\n this.variablesService.aliases.push(newAlias);\r\n });\r\n this.variablesService.wallets.forEach(wallet => {\r\n wallet.alias = this.backend.getWalletAlias(wallet.address);\r\n });\r\n this.variablesService.aliases = this.variablesService.aliases.sort((a, b) => {\r\n if (a.name.length > b.name.length) {\r\n return 1;\r\n }\r\n if (a.name.length < b.name.length) {\r\n return -1;\r\n }\r\n if (a.name > b.name) {\r\n return 1;\r\n }\r\n if (a.name < b.name) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n this.variablesService.changeAliases();\r\n }\r\n }\r\n });\r\n }\r\n\r\n contextMenuCopy(target) {\r\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\r\n const start = (target['contextSelectionStart']) ? 'contextSelectionStart' : 'selectionStart';\r\n const end = (target['contextSelectionEnd']) ? 'contextSelectionEnd' : 'selectionEnd';\r\n const canUseSelection = ((target[start]) || (target[start] === '0'));\r\n const SelectedText = (canUseSelection) ? target['value'].substring(target[start], target[end]) : target['value'];\r\n this.backend.setClipboard(String(SelectedText));\r\n }\r\n }\r\n\r\n contextMenuOnlyCopy(text) {\r\n if (text) {\r\n this.backend.setClipboard(String(text));\r\n }\r\n }\r\n\r\n contextMenuPaste(target) {\r\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\r\n this.backend.getClipboard((status, clipboard) => {\r\n clipboard = String(clipboard);\r\n if (typeof clipboard !== 'string' || clipboard.length) {\r\n const start = (target['contextSelectionStart']) ? 'contextSelectionStart' : 'selectionStart';\r\n const end = (target['contextSelectionEnd']) ? 'contextSelectionEnd' : 'selectionEnd';\r\n const _pre = target['value'].substring(0, target[start]);\r\n const _aft = target['value'].substring(target[end], target['value'].length);\r\n let text = _pre + clipboard + _aft;\r\n const cursorPosition = (_pre + clipboard).length;\r\n if (target['maxLength'] && parseInt(target['maxLength'], 10) > 0) {\r\n text = text.substr(0, parseInt(target['maxLength'], 10));\r\n }\r\n target['value'] = text;\r\n target.setSelectionRange(cursorPosition, cursorPosition);\r\n target.dispatchEvent(new Event('input'));\r\n target['focus']();\r\n }\r\n });\r\n }\r\n }\r\n\r\n contextMenuSelect(target) {\r\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\r\n target['focus']();\r\n setTimeout(() => {\r\n target['select']();\r\n });\r\n }\r\n }\r\n\r\n addToStore(wallet, boolean) {\r\n const value = this.store.value.sync;\r\n if (value && value.length) {\r\n const sync = value.filter(item => item.wallet_id === wallet.wallet_id);\r\n if (sync && sync.length) {\r\n const result = value.map(item => {\r\n if (item.wallet_id === wallet.wallet_id) {\r\n return {sync: boolean, wallet_id: wallet.wallet_id};\r\n } else {\r\n return item;\r\n }\r\n });\r\n this.store.set('sync', result);\r\n } else {\r\n value.push({sync: boolean, wallet_id: wallet.wallet_id});\r\n this.store.set('sync', value);\r\n }\r\n } else {\r\n this.store.set('sync', [{sync: boolean, wallet_id: wallet.wallet_id}]);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.intervalUpdateContractsState) {\r\n clearInterval(this.intervalUpdateContractsState);\r\n }\r\n if (this.intervalUpdatePriceState) {\r\n clearInterval(this.intervalUpdatePriceState);\r\n }\r\n this.expMedTsEvent.unsubscribe();\r\n }\r\n\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { SettingsComponent } from './settings/settings.component';\r\nimport { SidebarComponent } from './sidebar/sidebar.component';\r\nimport { MainComponent } from './main/main.component';\r\nimport { CreateWalletComponent } from './create-wallet/create-wallet.component';\r\nimport { OpenWalletComponent } from './open-wallet/open-wallet.component';\r\nimport { OpenWalletModalComponent } from './open-wallet-modal/open-wallet-modal.component';\r\nimport { RestoreWalletComponent } from './restore-wallet/restore-wallet.component';\r\nimport { SeedPhraseComponent } from './seed-phrase/seed-phrase.component';\r\nimport { WalletDetailsComponent } from './wallet-details/wallet-details.component';\r\nimport { AssignAliasComponent } from './assign-alias/assign-alias.component';\r\nimport { EditAliasComponent } from './edit-alias/edit-alias.component';\r\nimport { TransferAliasComponent } from './transfer-alias/transfer-alias.component';\r\nimport { WalletComponent } from './wallet/wallet.component';\r\nimport { SendComponent } from './send/send.component';\r\nimport { ReceiveComponent } from './receive/receive.component';\r\nimport { HistoryComponent } from './history/history.component';\r\nimport { ContractsComponent } from './contracts/contracts.component';\r\nimport { PurchaseComponent } from './purchase/purchase.component';\r\nimport { MessagesComponent } from './messages/messages.component';\r\nimport { TypingMessageComponent } from './typing-message/typing-message.component';\r\nimport { StakingComponent } from './staking/staking.component';\r\n\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\n// SERVICES\r\nimport { BackendService } from './_helpers/services/backend.service';\r\nimport { ModalService } from './_helpers/services/modal.service';\r\nimport { PaginationStore } from './_helpers/services/pagination.store';\r\n// SERVICES\r\n\r\n// Feature module\r\nimport { Store } from 'store';\r\n// Feature module\r\n\r\nimport { MoneyToIntPipe } from './_helpers/pipes/money-to-int.pipe';\r\nimport { IntToMoneyPipe } from './_helpers/pipes/int-to-money.pipe';\r\nimport { HistoryTypeMessagesPipe } from './_helpers/pipes/history-type-messages.pipe';\r\nimport { ContractStatusMessagesPipe } from './_helpers/pipes/contract-status-messages.pipe';\r\nimport { ContractTimeLeftPipe } from './_helpers/pipes/contract-time-left.pipe';\r\nimport { SafeHTMLPipe } from './_helpers/pipes/safe-html.pipe';\r\nimport { TooltipDirective } from './_helpers/directives/tooltip.directive';\r\nimport { InputValidateDirective } from './_helpers/directives/input-validate/input-validate.directive';\r\nimport { StakingSwitchComponent } from './_helpers/directives/staking-switch/staking-switch.component';\r\nimport { ModalContainerComponent } from './_helpers/directives/modal-container/modal-container.component';\r\nimport { TransactionDetailsComponent } from './_helpers/directives/transaction-details/transaction-details.component';\r\nimport { ContextMenuModule } from 'ngx-contextmenu';\r\nimport { ChartModule, HIGHCHARTS_MODULES } from 'angular-highcharts';\r\nimport * as highcharts from 'highcharts';\r\nimport exporting from 'highcharts/modules/exporting.src';\r\nimport { ProgressContainerComponent } from './_helpers/directives/progress-container/progress-container.component';\r\nimport { InputDisableSelectionDirective } from './_helpers/directives/input-disable-selection/input-disable-selection.directive';\r\nimport { SendModalComponent } from './send-modal/send-modal.component';\r\nimport { ContactsComponent } from './contacts/contacts.component';\r\nimport { AddContactsComponent } from './add-contacts/add-contacts.component';\r\nimport { ContactSendComponent } from './contact-send/contact-send.component';\r\nimport { ExportImportComponent } from './export-import/export-import.component';\r\nimport { ConfirmModalComponent } from './_helpers/directives/confirm-modal/confirm-modal.component';\r\n\r\nexport function HttpLoaderFactory(httpClient: HttpClient) {\r\n return new TranslateHttpLoader(httpClient, './assets/i18n/', '.json');\r\n}\r\n\r\nimport { PapaParseModule } from 'ngx-papaparse';\r\n\r\n// import * as more from 'highcharts/highcharts-more.src';\r\n// import * as exporting from 'highcharts/modules/exporting.src';\r\n// import * as highstock from 'highcharts/modules/stock.src';\r\n\r\nexport function highchartsFactory() {\r\n // Default options.\r\n highcharts.setOptions({\r\n time: {\r\n useUTC: false\r\n }\r\n });\r\n\r\n return [exporting];\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n LoginComponent,\r\n SettingsComponent,\r\n SidebarComponent,\r\n MainComponent,\r\n CreateWalletComponent,\r\n OpenWalletComponent,\r\n OpenWalletModalComponent,\r\n RestoreWalletComponent,\r\n SeedPhraseComponent,\r\n WalletDetailsComponent,\r\n AssignAliasComponent,\r\n EditAliasComponent,\r\n TransferAliasComponent,\r\n WalletComponent,\r\n SendComponent,\r\n ReceiveComponent,\r\n HistoryComponent,\r\n ContractsComponent,\r\n PurchaseComponent,\r\n MessagesComponent,\r\n StakingComponent,\r\n TypingMessageComponent,\r\n MoneyToIntPipe,\r\n IntToMoneyPipe,\r\n StakingSwitchComponent,\r\n HistoryTypeMessagesPipe,\r\n ContractStatusMessagesPipe,\r\n ContractTimeLeftPipe,\r\n TooltipDirective,\r\n InputValidateDirective,\r\n ModalContainerComponent,\r\n TransactionDetailsComponent,\r\n ProgressContainerComponent,\r\n InputDisableSelectionDirective,\r\n SendModalComponent,\r\n ContactsComponent,\r\n AddContactsComponent,\r\n ContactSendComponent,\r\n ExportImportComponent,\r\n SafeHTMLPipe,\r\n ConfirmModalComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgSelectModule,\r\n ChartModule,\r\n PapaParseModule,\r\n ContextMenuModule.forRoot()\r\n ],\r\n providers: [\r\n Store,\r\n BackendService,\r\n ModalService,\r\n PaginationStore,\r\n MoneyToIntPipe,\r\n IntToMoneyPipe,\r\n { provide: HIGHCHARTS_MODULES, useFactory: highchartsFactory }\r\n // {provide: HIGHCHARTS_MODULES, useFactory: () => [ highstock, more, exporting ] }\r\n ],\r\n entryComponents: [\r\n ModalContainerComponent,\r\n SendModalComponent,\r\n ConfirmModalComponent\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ wallet.name }}\\r\\n {{ 'BREADCRUMBS.ASSIGN_ALIAS' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
\\r\\n
6 && assignForm.get('name').value.length <= 25\\\">\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_WRONG' | translate }}\\r\\n
\\r\\n
25\\\">\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_EXISTS' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
= variablesService.maxCommentLength\\\">\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
{{ \\\"ASSIGN_ALIAS.COST\\\" | translate : {value: alias.price | intToMoney, currency: variablesService.defaultCurrency} }}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\"","module.exports = \".form-assign {\\n margin: 2.4rem 0; }\\n .form-assign .alias-name {\\n width: 50%; }\\n .form-assign .alias-cost {\\n font-size: 1.3rem;\\n margin-top: 2rem; }\\n .form-assign .wrap-buttons {\\n display: flex;\\n justify-content: space-between;\\n margin: 2.5rem -0.7rem; }\\n .form-assign .wrap-buttons button {\\n margin: 0 0.7rem;\\n width: 15rem; }\\n .assign-alias-tooltip {\\n font-size: 1.3rem;\\n line-height: 2rem;\\n padding: 1rem 1.5rem;\\n max-width: 46rem; }\\n .has-no-edit-symbol {\\n position: relative;\\n width: 100%; }\\n .has-no-edit-symbol input {\\n padding-left: 2.35rem; }\\n .has-no-edit-symbol:after {\\n content: '@';\\n position: absolute;\\n display: inline-block;\\n top: 50%;\\n left: 1rem;\\n transform: translateY(-50%); }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXNzaWduLWFsaWFzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGFzc2lnbi1hbGlhc1xcYXNzaWduLWFsaWFzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFBQTtFQVRwQjtJQWFJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsc0JBQXNCLEVBQUE7RUFmMUI7TUFrQk0sZ0JBQWdCO01BQ2hCLFlBQVksRUFBQTtFQUtsQjtFQUNFLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsb0JBQW9CO0VBQ3BCLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVcsRUFBQTtFQUZiO0lBSUkscUJBQXFCLEVBQUE7RUFKekI7SUFPSSxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixRQUFRO0lBQ1IsVUFBVTtJQUNWLDJCQUEyQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvYXNzaWduLWFsaWFzL2Fzc2lnbi1hbGlhcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLWFzc2lnbiB7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuXHJcbiAgLmFsaWFzLW5hbWUge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICB9XHJcblxyXG4gIC5hbGlhcy1jb3N0IHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbWFyZ2luLXRvcDogMnJlbTtcclxuICB9XHJcblxyXG4gIC53cmFwLWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIG1hcmdpbjogMi41cmVtIC0wLjdyZW07XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgbWFyZ2luOiAwIDAuN3JlbTtcclxuICAgICAgd2lkdGg6IDE1cmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmFzc2lnbi1hbGlhcy10b29sdGlwIHtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuICBsaW5lLWhlaWdodDogMnJlbTtcclxuICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcclxuICBtYXgtd2lkdGg6IDQ2cmVtO1xyXG59XHJcblxyXG4uaGFzLW5vLWVkaXQtc3ltYm9sIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaW5wdXQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyLjM1cmVtO1xyXG4gIH1cclxuICAmOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICdAJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogMXJlbTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, NgZone, OnInit, OnDestroy} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {Location} from '@angular/common';\r\nimport {Router} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {MoneyToIntPipe} from '../_helpers/pipes/money-to-int.pipe';\r\nimport {IntToMoneyPipe} from '../_helpers/pipes/int-to-money.pipe';\r\nimport BigNumber from 'bignumber.js';\r\nimport {Subscription} from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-assign-alias',\r\n templateUrl: './assign-alias.component.html',\r\n styleUrls: ['./assign-alias.component.scss']\r\n})\r\nexport class AssignAliasComponent implements OnInit, OnDestroy {\r\n\r\n wallet: Wallet;\r\n assignForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.pattern(/^@?[a-z0-9\\.\\-]{6,25}$/)]),\r\n comment: new FormControl('', [(g: FormControl) => {\r\n if (g.value > this.variablesService.maxCommentLength) {\r\n return {'maxLength': true};\r\n } else {\r\n return null;\r\n }\r\n }])\r\n });\r\n assignFormSubscription: Subscription;\r\n alias = {\r\n name: '',\r\n fee: this.variablesService.default_fee,\r\n price: new BigNumber(0),\r\n reward: '0',\r\n rewardOriginal: '0',\r\n comment: '',\r\n exists: false\r\n };\r\n canRegister = false;\r\n notEnoughMoney = false;\r\n\r\n constructor(\r\n private ngZone: NgZone,\r\n private location: Location,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private moneyToInt: MoneyToIntPipe,\r\n private intToMoney: IntToMoneyPipe\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.wallet = this.variablesService.currentWallet;\r\n this.assignFormSubscription = this.assignForm.get('name').valueChanges.subscribe(value => {\r\n this.canRegister = false;\r\n this.alias.exists = false;\r\n const newName = value.toLowerCase().replace('@', '');\r\n if (!(this.assignForm.controls['name'].errors && this.assignForm.controls['name'].errors.hasOwnProperty('pattern')) && newName.length >= 6 && newName.length <= 25) {\r\n this.backend.getAliasByName(newName, status => {\r\n this.ngZone.run(() => {\r\n this.alias.exists = status;\r\n });\r\n if (!status) {\r\n this.alias.price = new BigNumber(0);\r\n this.backend.getAliasCoast(newName, (statusPrice, dataPrice) => {\r\n this.ngZone.run(() => {\r\n if (statusPrice) {\r\n this.alias.price = BigNumber.sum(dataPrice['coast'], this.variablesService.default_fee_big);\r\n }\r\n this.notEnoughMoney = this.alias.price.isGreaterThan(this.wallet.unlocked_balance);\r\n this.alias.reward = this.intToMoney.transform(this.alias.price, false);\r\n this.alias.rewardOriginal = this.intToMoney.transform(dataPrice['coast'], false);\r\n this.canRegister = !this.notEnoughMoney;\r\n });\r\n });\r\n } else {\r\n this.notEnoughMoney = false;\r\n this.alias.reward = '0';\r\n this.alias.rewardOriginal = '0';\r\n }\r\n });\r\n } else {\r\n this.notEnoughMoney = false;\r\n this.alias.reward = '0';\r\n this.alias.rewardOriginal = '0';\r\n }\r\n this.alias.name = newName;\r\n });\r\n }\r\n\r\n assignAlias() {\r\n const alias = this.backend.getWalletAlias(this.wallet.address);\r\n if (alias.hasOwnProperty('name')) {\r\n this.modalService.prepareModal('info', 'ASSIGN_ALIAS.ONE_ALIAS');\r\n } else {\r\n this.alias.comment = this.assignForm.get('comment').value;\r\n this.backend.registerAlias(this.wallet.wallet_id, this.alias.name, this.wallet.address, this.alias.fee, this.alias.comment, this.alias.rewardOriginal, (status, data) => {\r\n if (status) {\r\n this.wallet.wakeAlias = true;\r\n this.modalService.prepareModal('info', 'ASSIGN_ALIAS.REQUEST_ADD_REG');\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet.wallet_id]);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.assignFormSubscription.unsubscribe();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n {{\\r\\n 'CONTACTS.TITLE' | translate\\r\\n }}\\r\\n {{ 'CONTACTS.SEND' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","module.exports = \".wallets-selection {\\n display: flex;\\n align-items: center;\\n margin-top: 2rem; }\\n .wallets-selection .input-block {\\n width: 18rem; }\\n .wallets-selection button {\\n padding: 2rem;\\n background: transparent;\\n border: none;\\n outline: none; }\\n .input-block {\\n width: 44rem; }\\n .input-block input {\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n .blue-button {\\n margin-top: 2.5rem;\\n width: 100%;\\n max-width: 18rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udGFjdC1zZW5kL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGNvbnRhY3Qtc2VuZFxcY29udGFjdC1zZW5kLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTtFQUhsQjtJQU1JLFlBQVksRUFBQTtFQU5oQjtJQVVJLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLGFBQWEsRUFBQTtFQUlqQjtFQUNFLFlBQVksRUFBQTtFQURkO0lBSUksZ0JBQWdCO0lBQ2hCLHVCQUF1QixFQUFBO0VBSTNCO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbnRhY3Qtc2VuZC9jb250YWN0LXNlbmQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIud2FsbGV0cy1zZWxlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtYXJnaW4tdG9wOiAycmVtO1xyXG4gIFxyXG4gIC5pbnB1dC1ibG9jayB7XHJcbiAgICB3aWR0aDogMThyZW07XHJcbiAgfVxyXG5cclxuICBidXR0b24ge1xyXG4gICAgcGFkZGluZzogMnJlbTtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi5pbnB1dC1ibG9jayB7XHJcbiAgd2lkdGg6IDQ0cmVtO1xyXG5cclxuICBpbnB1dCB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgfVxyXG59XHJcblxyXG4uYmx1ZS1idXR0b24ge1xyXG4gIG1hcmdpbi10b3A6IDIuNXJlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDE4cmVtO1xyXG59XHJcblxyXG5cclxuIl19 */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n\r\n@Component({\r\n selector: 'app-contact-send',\r\n templateUrl: './contact-send.component.html',\r\n styleUrls: ['./contact-send.component.scss']\r\n})\r\nexport class ContactSendComponent implements OnInit, OnDestroy {\r\n\r\n queryRouting;\r\n address;\r\n\r\n constructor(\r\n private location: Location,\r\n public variablesService: VariablesService,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.address) {\r\n this.address = params.address;\r\n }\r\n });\r\n }\r\n\r\n goToWallet(id) {\r\n this.variablesService.setCurrentWallet(id);\r\n this.variablesService.currentWallet.send_data['address'] = this.address;\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.queryRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n

{{ 'CONTACTS.TITLE' | translate }}

\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'CONTACTS.TABLE.NAME' | translate }}\\r\\n {{ 'CONTACTS.TABLE.ALIAS' | translate }}\\r\\n {{ 'CONTACTS.TABLE.ADDRESS' | translate }}\\r\\n {{ 'CONTACTS.TABLE.NOTES' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ contact.name }}\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.alias }}\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.address }}\\r\\n \\r\\n \\r\\n {{ contact.notes }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ 'CONTACTS.BUTTON.SEND' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n {{ 'CONTACTS.BUTTON.EDIT' | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{ 'CONTACTS.TABLE.EMPTY' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n min-width: 95rem;\\n width: 100%;\\n height: 100%; }\\n\\n.head {\\n justify-content: flex-end; }\\n\\n.contacts-title {\\n font-size: 1.7rem; }\\n\\n.wrap-table {\\n margin: 1rem -3rem; }\\n\\n.wrap-table table tbody tr td {\\n padding: 0 3rem 0 1rem;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n\\n.wrap-table table tbody tr td:first-child {\\n max-width: 10rem;\\n padding: 0 3rem 0 3rem; }\\n\\n.wrap-table table tbody tr td:nth-child(2) {\\n max-width: 10rem; }\\n\\n.wrap-table table tbody tr td .alias {\\n cursor: pointer; }\\n\\n.wrap-table table tbody tr td .button-wrapper {\\n display: flex; }\\n\\n.wrap-table table tbody tr td .button-wrapper button {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n font-size: 1.3rem;\\n font-weight: 400;\\n line-height: 3rem;\\n outline: none;\\n padding: 0;\\n height: auto;\\n margin-right: 1.8rem; }\\n\\n.wrap-table table tbody tr td .button-wrapper button .icon {\\n cursor: pointer;\\n margin-right: 0.8rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.wrap-table table tbody tr td .button-wrapper button .icon.edit {\\n -webkit-mask: url('edit.svg') no-repeat center;\\n mask: url('edit.svg') no-repeat center; }\\n\\n.wrap-table table tbody tr td .button-wrapper button .icon.transfer {\\n -webkit-mask: url('send.svg') no-repeat center;\\n mask: url('send.svg') no-repeat center; }\\n\\n.wrap-table table tbody tr td .button-wrapper button .icon.delete {\\n -webkit-mask: url('delete.svg') no-repeat center;\\n mask: url('delete.svg') no-repeat center; }\\n\\n.wrap-table .empty-list {\\n margin: 2.5rem 3rem; }\\n\\n.blue-button {\\n width: 100%;\\n max-width: 18rem;\\n margin-top: 3rem; }\\n\\n.footer {\\n position: absolute;\\n bottom: 3rem;\\n font-size: 1.3rem; }\\n\\n.footer .import-btn {\\n display: flex;\\n align-items: center;\\n background-color: transparent;\\n font-size: inherit;\\n font-weight: 400;\\n line-height: 1.3rem;\\n padding: 0;\\n height: auto; }\\n\\n.footer .import-btn .icon {\\n margin-right: 0.7rem;\\n -webkit-mask: url('import-export.svg') no-repeat center;\\n mask: url('import-export.svg') no-repeat center;\\n width: 0.9rem;\\n height: 0.9rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udGFjdHMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcY29udGFjdHNcXGNvbnRhY3RzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxZQUFZLEVBQUE7O0FBR2Q7RUFDRSx5QkFBeUIsRUFBQTs7QUFHM0I7RUFDRSxpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSxrQkFBa0IsRUFBQTs7QUFEcEI7SUFVVSxzQkFBc0I7SUFDdEIsZ0JBQWdCO0lBQ2hCLHVCQUF1QixFQUFBOztBQVpqQztNQWVZLGdCQUFnQjtNQUNoQixzQkFBc0IsRUFBQTs7QUFoQmxDO01Bb0JZLGdCQUFnQixFQUFBOztBQXBCNUI7TUF3QlksZUFBZSxFQUFBOztBQXhCM0I7TUE0QlksYUFBYSxFQUFBOztBQTVCekI7UUErQmMsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIsWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixVQUFVO1FBQ1YsWUFBWTtRQUNaLG9CQUFvQixFQUFBOztBQXpDbEM7VUE0Q2dCLGVBQWU7VUFDZixvQkFBb0I7VUFDcEIsYUFBYTtVQUNiLGNBQWMsRUFBQTs7QUEvQzlCO1lBa0RrQiw4Q0FBdUQ7b0JBQXZELHNDQUF1RCxFQUFBOztBQWxEekU7WUFzRGtCLDhDQUF1RDtvQkFBdkQsc0NBQXVELEVBQUE7O0FBdER6RTtZQTBEa0IsZ0RBQXlEO29CQUF6RCx3Q0FBeUQsRUFBQTs7QUExRDNFO0lBcUVJLG1CQUFtQixFQUFBOztBQUl2QjtFQUNFLFdBQVc7RUFDWCxnQkFBZ0I7RUFDaEIsZ0JBQWdCLEVBQUE7O0FBSWxCO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixpQkFBaUIsRUFBQTs7QUFIbkI7SUFNSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDZCQUE2QjtJQUM3QixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsWUFBWSxFQUFBOztBQWJoQjtNQWdCTSxvQkFBb0I7TUFDcEIsdURBQWdFO2NBQWhFLCtDQUFnRTtNQUNoRSxhQUFhO01BQ2IsY0FBYyxFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29udGFjdHMvY29udGFjdHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgbWluLXdpZHRoOiA5NXJlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5oZWFkIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4uY29udGFjdHMtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS43cmVtO1xyXG59XHJcblxyXG4ud3JhcC10YWJsZSB7XHJcbiAgbWFyZ2luOiAxcmVtIC0zcmVtO1xyXG5cclxuICB0YWJsZSB7XHJcblxyXG4gICAgdGJvZHl7XHJcblxyXG4gICAgICB0ciB7XHJcblxyXG4gICAgICAgIHRkIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDAgM3JlbSAwIDFyZW07XHJcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcblxyXG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTByZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgM3JlbSAwIDNyZW07XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjpudGgtY2hpbGQoMikge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwcmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5hbGlhcyB7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuYnV0dG9uLXdyYXBwZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAgXHJcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogM3JlbTtcclxuICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS44cmVtO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjhyZW07XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMS43cmVtO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLjdyZW07XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgJi5lZGl0IHtcclxuICAgICAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9lZGl0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAmLnRyYW5zZmVyIHtcclxuICAgICAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9zZW5kLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICYuZGVsZXRlIHtcclxuICAgICAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9kZWxldGUuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAuZW1wdHktbGlzdCB7XHJcbiAgICBtYXJnaW46IDIuNXJlbSAzcmVtO1xyXG4gIH0gIFxyXG59XHJcblxyXG4uYmx1ZS1idXR0b24ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogMThyZW07XHJcbiAgbWFyZ2luLXRvcDogM3JlbTtcclxufVxyXG5cclxuXHJcbi5mb290ZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDNyZW07XHJcbiAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgXHJcbiAgLmltcG9ydC1idG4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zcmVtO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMC43cmVtO1xyXG4gICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2ltcG9ydC1leHBvcnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB3aWR0aDogMC45cmVtO1xyXG4gICAgICBoZWlnaHQ6IDAuOXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\n\r\n@Component({\r\n selector: 'app-contacts',\r\n templateUrl: './contacts.component.html',\r\n styleUrls: ['./contacts.component.scss']\r\n})\r\nexport class ContactsComponent implements OnInit {\r\n calculatedWidth = [];\r\n @ViewChild('head') head: ElementRef;\r\n\r\n constructor(\r\n private location: Location,\r\n public variablesService: VariablesService,\r\n private backend: BackendService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.backend.getContactAlias();\r\n }\r\n\r\n delete(index: number) {\r\n if (this.variablesService.appPass) {\r\n this.variablesService.contacts.splice(index, 1);\r\n this.backend.storeSecureAppData();\r\n }\r\n }\r\n\r\n calculateWidth() {\r\n this.calculatedWidth = [];\r\n this.calculatedWidth.push(\r\n this.head.nativeElement.childNodes[0].clientWidth\r\n );\r\n this.calculatedWidth.push(\r\n this.head.nativeElement.childNodes[1].clientWidth +\r\n this.head.nativeElement.childNodes[2].clientWidth\r\n );\r\n this.calculatedWidth.push(\r\n this.head.nativeElement.childNodes[3].clientWidth\r\n );\r\n this.calculatedWidth.push(\r\n this.head.nativeElement.childNodes[4].clientWidth\r\n );\r\n }\r\n\r\n // openInBrowser(alias: string) {\r\n // if (alias !== null) {\r\n // this.backend.openUrlInBrowser(\r\n // `explorer.zano.org/aliases/${alias.slice(1)}#modalOpen`\r\n // );\r\n // }\r\n // }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n {{ 'CONTRACTS.EMPTY' | translate }}\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ 'CONTRACTS.CONTRACTS' | translate }}{{ 'CONTRACTS.DATE' | translate }}{{ 'CONTRACTS.AMOUNT' | translate }}{{ 'CONTRACTS.STATUS' | translate }}{{ 'CONTRACTS.COMMENTS' | translate }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{item.private_detailes.t}}\\r\\n
\\r\\n
\\r\\n
{{item.timestamp * 1000 | date : 'dd-MM-yyyy HH:mm'}}
\\r\\n
\\r\\n
{{item.private_detailes.to_pay | intToMoney}} {{variablesService.defaultCurrency}}
\\r\\n
\\r\\n
\\r\\n {{item.state | contractStatusMessages : item.is_a}}\\r\\n
\\r\\n
\\r\\n
\\r\\n {{item.private_detailes.c}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.empty-contracts {\\n font-size: 1.5rem; }\\n\\n.wrap-table {\\n margin: -3rem -3rem 0 -3rem;\\n overflow-x: auto; }\\n\\n.wrap-table table tbody tr {\\n cursor: pointer;\\n outline: none !important; }\\n\\n.wrap-table table tbody tr .contract {\\n position: relative;\\n display: flex;\\n align-items: center; }\\n\\n.wrap-table table tbody tr .contract .icon {\\n flex-shrink: 0; }\\n\\n.wrap-table table tbody tr .contract .icon.new, .wrap-table table tbody tr .contract .icon.alert {\\n position: absolute;\\n top: 0; }\\n\\n.wrap-table table tbody tr .contract .icon.new {\\n left: -2.3rem;\\n -webkit-mask: url('new.svg') no-repeat center;\\n mask: url('new.svg') no-repeat center;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.wrap-table table tbody tr .contract .icon.alert {\\n top: 0.2rem;\\n left: -2.1rem;\\n -webkit-mask: url('alert.svg') no-repeat center;\\n mask: url('alert.svg') no-repeat center;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n.wrap-table table tbody tr .contract .icon.purchase, .wrap-table table tbody tr .contract .icon.sell {\\n margin-right: 1rem;\\n width: 1.5rem;\\n height: 1.5rem; }\\n\\n.wrap-table table tbody tr .contract .icon.purchase {\\n -webkit-mask: url('purchase.svg') no-repeat center;\\n mask: url('purchase.svg') no-repeat center; }\\n\\n.wrap-table table tbody tr .contract .icon.sell {\\n -webkit-mask: url('sell.svg') no-repeat center;\\n mask: url('sell.svg') no-repeat center; }\\n\\n.wrap-table table tbody tr .contract span {\\n text-overflow: ellipsis;\\n overflow: hidden; }\\n\\n.wrap-table table tbody tr .status, .wrap-table table tbody tr .comment {\\n display: inline-block;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n max-width: 100%; }\\n\\n.contracts-buttons {\\n display: flex;\\n margin: 3rem 0;\\n width: 50%; }\\n\\n.contracts-buttons button {\\n flex: 0 1 50%;\\n margin-right: 1.5rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJhY3RzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGNvbnRyYWN0c1xcY29udHJhY3RzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsMkJBQTJCO0VBQzNCLGdCQUFnQixFQUFBOztBQUZsQjtJQVNRLGVBQWU7SUFDZix3QkFBd0IsRUFBQTs7QUFWaEM7TUFhVSxrQkFBa0I7TUFDbEIsYUFBYTtNQUNiLG1CQUFtQixFQUFBOztBQWY3QjtRQWtCWSxjQUFjLEVBQUE7O0FBbEIxQjtVQXFCYyxrQkFBa0I7VUFDbEIsTUFBTSxFQUFBOztBQXRCcEI7VUEwQmMsYUFBYTtVQUNiLDZDQUFzRDtrQkFBdEQscUNBQXNEO1VBQ3RELGFBQWE7VUFDYixjQUFjLEVBQUE7O0FBN0I1QjtVQWlDYyxXQUFXO1VBQ1gsYUFBYTtVQUNiLCtDQUF3RDtrQkFBeEQsdUNBQXdEO1VBQ3hELGFBQWE7VUFDYixjQUFjLEVBQUE7O0FBckM1QjtVQXlDYyxrQkFBa0I7VUFDbEIsYUFBYTtVQUNiLGNBQWMsRUFBQTs7QUEzQzVCO1VBK0NjLGtEQUEyRDtrQkFBM0QsMENBQTJELEVBQUE7O0FBL0N6RTtVQW1EYyw4Q0FBdUQ7a0JBQXZELHNDQUF1RCxFQUFBOztBQW5EckU7UUF3RFksdUJBQXVCO1FBQ3ZCLGdCQUFnQixFQUFBOztBQXpENUI7TUE4RFUscUJBQXFCO01BQ3JCLHVCQUF1QjtNQUN2QixnQkFBZ0I7TUFDaEIsZUFBZSxFQUFBOztBQU96QjtFQUNFLGFBQWE7RUFDYixjQUFjO0VBQ2QsVUFBVSxFQUFBOztBQUhaO0lBTUksYUFBYTtJQUNiLG9CQUFvQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29udHJhY3RzL2NvbnRyYWN0cy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmVtcHR5LWNvbnRyYWN0cyB7XHJcbiAgZm9udC1zaXplOiAxLjVyZW07XHJcbn1cclxuXHJcbi53cmFwLXRhYmxlIHtcclxuICBtYXJnaW46IC0zcmVtIC0zcmVtIDAgLTNyZW07XHJcbiAgb3ZlcmZsb3cteDogYXV0bztcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICAuY29udHJhY3Qge1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcclxuXHJcbiAgICAgICAgICAgICYubmV3LCAmLmFsZXJ0IHtcclxuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLm5ldyB7XHJcbiAgICAgICAgICAgICAgbGVmdDogLTIuM3JlbTtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL25ldy5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEuN3JlbTtcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDEuN3JlbTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5hbGVydCB7XHJcbiAgICAgICAgICAgICAgdG9wOiAwLjJyZW07XHJcbiAgICAgICAgICAgICAgbGVmdDogLTIuMXJlbTtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2FsZXJ0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLnB1cmNoYXNlLCAmLnNlbGwge1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcclxuICAgICAgICAgICAgICB3aWR0aDogMS41cmVtO1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMS41cmVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLnB1cmNoYXNlIHtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3B1cmNoYXNlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5zZWxsIHtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3NlbGwuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cywgLmNvbW1lbnQge1xyXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNvbnRyYWN0cy1idXR0b25zIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIG1hcmdpbjogM3JlbSAwO1xyXG4gIHdpZHRoOiA1MCU7XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBmbGV4OiAwIDEgNTAlO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, OnInit, OnDestroy} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\n\r\n@Component({\r\n selector: 'app-contracts',\r\n templateUrl: './contracts.component.html',\r\n styleUrls: ['./contracts.component.scss']\r\n})\r\nexport class ContractsComponent implements OnInit, OnDestroy {\r\n\r\n parentRouting;\r\n walletId;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n public variablesService: VariablesService\r\n ) {\r\n }\r\n\r\n public get sortedArrayContracts(): any[] {\r\n return this.variablesService.currentWallet.contracts.sort((a, b) => {\r\n if (a.is_new < b.is_new) {\r\n return 1;\r\n }\r\n if (a.is_new > b.is_new) {\r\n return -1;\r\n }\r\n if (a.timestamp < b.timestamp) {\r\n return 1;\r\n }\r\n if (a.timestamp > b.timestamp) {\r\n return -1;\r\n }\r\n if (a.contract_id < b.contract_id) {\r\n return 1;\r\n }\r\n if (a.contract_id > b.contract_id) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(params => {\r\n if (params.hasOwnProperty('id')) {\r\n this.walletId = params['id'];\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\\r\\n {{ 'BREADCRUMBS.CREATE_WALLET' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\\r\\n
\\r\\n
\\r\\n
= variablesService.maxWalletNameLength\\\">\\r\\n {{ 'CREATE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'CREATE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \":host {\\n position: relative; }\\n\\n.form-create {\\n margin: 2.4rem 0;\\n width: 50%; }\\n\\n.form-create .wrap-buttons {\\n display: flex;\\n margin: 2.5rem -0.7rem; }\\n\\n.form-create .wrap-buttons button {\\n margin: 0 0.7rem; }\\n\\n.form-create .wrap-buttons button.transparent-button {\\n flex-basis: 50%; }\\n\\n.form-create .wrap-buttons button.select-button {\\n flex-basis: 60%; }\\n\\n.form-create .wrap-buttons button.create-button {\\n flex: 1 1 50%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY3JlYXRlLXdhbGxldC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxjcmVhdGUtd2FsbGV0XFxjcmVhdGUtd2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTs7QUFGWjtJQUtJLGFBQWE7SUFDYixzQkFBc0IsRUFBQTs7QUFOMUI7TUFTTSxnQkFBZ0IsRUFBQTs7QUFUdEI7UUFZUSxlQUFlLEVBQUE7O0FBWnZCO1FBZ0JRLGVBQWUsRUFBQTs7QUFoQnZCO1FBb0JRLGFBQWEsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NyZWF0ZS13YWxsZXQvY3JlYXRlLXdhbGxldC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5mb3JtLWNyZWF0ZSB7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICB3aWR0aDogNTAlO1xyXG5cclxuICAud3JhcC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBtYXJnaW46IDIuNXJlbSAtMC43cmVtO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjdyZW07XHJcblxyXG4gICAgICAmLnRyYW5zcGFyZW50LWJ1dHRvbiB7XHJcbiAgICAgICAgZmxleC1iYXNpczogNTAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnNlbGVjdC1idXR0b24ge1xyXG4gICAgICAgIGZsZXgtYmFzaXM6IDYwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5jcmVhdGUtYnV0dG9uIHtcclxuICAgICAgICBmbGV4OiAxIDEgNTAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, NgZone, OnInit} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Router} from '@angular/router';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-create-wallet',\r\n templateUrl: './create-wallet.component.html',\r\n styleUrls: ['./create-wallet.component.scss']\r\n})\r\nexport class CreateWalletComponent implements OnInit {\r\n\r\n createForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, (g: FormControl) => {\r\n for (let i = 0; i < this.variablesService.wallets.length; i++) {\r\n if (g.value === this.variablesService.wallets[i].name) {\r\n return {'duplicate': true};\r\n }\r\n }\r\n return null;\r\n }]),\r\n password: new FormControl('', Validators.pattern(this.variablesService.pattern)),\r\n confirm: new FormControl('')\r\n }, function (g: FormGroup) {\r\n return g.get('password').value === g.get('confirm').value ? null : {'confirm_mismatch': true};\r\n });\r\n\r\n wallet = {\r\n id: ''\r\n };\r\n\r\n walletSaved = false;\r\n walletSavedName = '';\r\n progressWidth = '9rem';\r\n\r\n constructor(\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n createWallet() {\r\n this.ngZone.run(() => {\r\n this.progressWidth = '100%';\r\n this.router.navigate(['/seed-phrase'], {queryParams: {wallet_id: this.wallet.id}});\r\n });\r\n }\r\n\r\n saveWallet() {\r\n if (this.createForm.valid && this.createForm.get('name').value.length <= this.variablesService.maxWalletNameLength) {\r\n this.backend.saveFileDialog(this.translate.instant('CREATE_WALLET.TITLE_SAVE'), '*', this.variablesService.settings.default_path, (file_status, file_data) => {\r\n if (file_status) {\r\n this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/'));\r\n this.walletSavedName = file_data.path.substr(file_data.path.lastIndexOf('/') + 1, file_data.path.length - 1);\r\n this.backend.generateWallet(file_data.path, this.createForm.get('password').value, (generate_status, generate_data, errorCode) => {\r\n if (generate_status) {\r\n this.wallet.id = generate_data.wallet_id;\r\n this.variablesService.opening_wallet = new Wallet(\r\n generate_data.wallet_id,\r\n this.createForm.get('name').value,\r\n this.createForm.get('password').value,\r\n generate_data['wi'].path,\r\n generate_data['wi'].address,\r\n generate_data['wi'].balance,\r\n generate_data['wi'].unlocked_balance,\r\n generate_data['wi'].mined_total,\r\n generate_data['wi'].tracking_hey\r\n );\r\n this.variablesService.opening_wallet.alias = this.backend.getWalletAlias(generate_data['wi'].address);\r\n this.variablesService.opening_wallet.total_history_item = 0;\r\n this.variablesService.opening_wallet.pages = new Array(1).fill(1);\r\n this.variablesService.opening_wallet.totalPages = 1;\r\n this.variablesService.opening_wallet.currentPage = 1;\r\n this.ngZone.run(() => {\r\n this.walletSaved = true;\r\n this.progressWidth = '33%';\r\n });\r\n } else {\r\n if (errorCode && errorCode === 'ALREADY_EXISTS') {\r\n this.modalService.prepareModal('error', 'CREATE_WALLET.ERROR_CANNOT_SAVE_TOP');\r\n } else {\r\n this.modalService.prepareModal('error', 'CREATE_WALLET.ERROR_CANNOT_SAVE_SYSTEM');\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ wallet.name }}\\r\\n {{ 'BREADCRUMBS.EDIT_ALIAS' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
0 && notEnoughMoney\\\">\\r\\n {{ 'EDIT_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\\r\\n
\\r\\n
= variablesService.maxCommentLength\\\">\\r\\n {{ 'EDIT_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
{{ \\\"EDIT_ALIAS.COST\\\" | translate : {value: variablesService.default_fee, currency: variablesService.defaultCurrency} }}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \".form-edit {\\n margin: 2.4rem 0; }\\n .form-edit .alias-name {\\n width: 50%; }\\n .form-edit .alias-cost {\\n font-size: 1.3rem;\\n margin-top: 2rem; }\\n .form-edit .wrap-buttons {\\n display: flex;\\n justify-content: space-between;\\n margin: 2.5rem -0.7rem; }\\n .form-edit .wrap-buttons button {\\n margin: 0 0.7rem;\\n width: 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZWRpdC1hbGlhcy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxlZGl0LWFsaWFzXFxlZGl0LWFsaWFzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFBQTtFQVRwQjtJQWFJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsc0JBQXNCLEVBQUE7RUFmMUI7TUFrQk0sZ0JBQWdCO01BQ2hCLFlBQVksRUFBQSIsImZpbGUiOiJzcmMvYXBwL2VkaXQtYWxpYXMvZWRpdC1hbGlhcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLWVkaXQge1xyXG4gIG1hcmdpbjogMi40cmVtIDA7XHJcblxyXG4gIC5hbGlhcy1uYW1lIHtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgfVxyXG5cclxuICAuYWxpYXMtY29zdCB7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIG1hcmdpbi10b3A6IDJyZW07XHJcbiAgfVxyXG5cclxuICAud3JhcC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW46IDIuNXJlbSAtMC43cmVtO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjdyZW07XHJcbiAgICAgIHdpZHRoOiAxNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, NgZone, OnInit} from '@angular/core';\r\nimport {Location} from '@angular/common';\r\nimport {Router} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\n\r\n@Component({\r\n selector: 'app-edit-alias',\r\n templateUrl: './edit-alias.component.html',\r\n styleUrls: ['./edit-alias.component.scss']\r\n})\r\nexport class EditAliasComponent implements OnInit {\r\n\r\n wallet: Wallet;\r\n alias: any;\r\n oldAliasComment: string;\r\n notEnoughMoney: boolean;\r\n requestProcessing = false;\r\n\r\n constructor(\r\n private location: Location,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.wallet = this.variablesService.currentWallet;\r\n const alias = this.backend.getWalletAlias(this.wallet.address);\r\n this.alias = {\r\n name: alias.name,\r\n address: alias.address,\r\n comment: alias.comment\r\n };\r\n this.oldAliasComment = alias.comment;\r\n this.notEnoughMoney = this.wallet.unlocked_balance.isLessThan(this.variablesService.default_fee_big);\r\n }\r\n\r\n updateAlias() {\r\n if (this.requestProcessing || this.notEnoughMoney || this.oldAliasComment === this.alias.comment || this.alias.comment.length > this.variablesService.maxCommentLength) {\r\n return;\r\n }\r\n this.requestProcessing = true;\r\n this.backend.updateAlias(this.wallet.wallet_id, this.alias, this.variablesService.default_fee, (status) => {\r\n if (status) {\r\n this.modalService.prepareModal('success', '');\r\n this.wallet.alias['comment'] = this.alias.comment;\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet.wallet_id]);\r\n });\r\n }\r\n this.requestProcessing = false;\r\n });\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n

{{ 'CONTACTS.IMPORT_EXPORT' | translate }}

\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.head {\\n justify-content: flex-end; }\\n\\n.contacts-title {\\n font-size: 1.7rem;\\n margin-bottom: 1rem; }\\n\\n.btn-wrapper {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin: 0 -0.5rem;\\n padding: 1.5rem 0; }\\n\\n.btn-wrapper button {\\n flex: 1 0 auto;\\n margin: 0 0.5rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZXhwb3J0LWltcG9ydC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxleHBvcnQtaW1wb3J0XFxleHBvcnQtaW1wb3J0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsaUJBQWlCO0VBQ2pCLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsOEJBQThCO0VBQzlCLGlCQUFpQjtFQUNqQixpQkFBaUIsRUFBQTs7QUFMbkI7SUFRSSxjQUFjO0lBQ2QsZ0JBQWdCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9leHBvcnQtaW1wb3J0L2V4cG9ydC1pbXBvcnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5oZWFkIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4uY29udGFjdHMtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbn1cclxuXHJcbi5idG4td3JhcHBlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBtYXJnaW46IDAgLTAuNXJlbTtcclxuICBwYWRkaW5nOiAxLjVyZW0gMDtcclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgbWFyZ2luOiAwIDAuNXJlbTtcclxuICB9XHJcbn0iXX0= */\"","import { Component, OnInit, NgZone } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { Contact } from '../_helpers/models/contact.model';\r\nimport { ModalService } from '../_helpers/services/modal.service';\r\nimport { Papa } from 'ngx-papaparse';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-export-import',\r\n templateUrl: './export-import.component.html',\r\n styleUrls: ['./export-import.component.scss']\r\n})\r\nexport class ExportImportComponent implements OnInit {\r\n csvContent;\r\n\r\n constructor(\r\n private location: Location,\r\n private variablesService: VariablesService,\r\n private backend: BackendService,\r\n private modalService: ModalService,\r\n private papa: Papa,\r\n private translate: TranslateService,\r\n private router: Router,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {}\r\n\r\n import() {\r\n this.backend.openFileDialog(\r\n '',\r\n '*',\r\n this.variablesService.settings.default_path,\r\n (file_status, file_data) => {\r\n if (file_status) {\r\n this.variablesService.settings.default_path = file_data.path.substr(\r\n 0,\r\n file_data.path.lastIndexOf('/')\r\n );\r\n if (this.isValid(file_data.path)) {\r\n this.backend.loadFile(file_data.path, (status, data) => {\r\n if (!status) {\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'CONTACTS.ERROR_IMPORT_EMPTY'\r\n );\r\n } else {\r\n const options = {\r\n header: true\r\n };\r\n const elements = this.papa.parse(data, options);\r\n const isArray = Array.isArray(elements.data);\r\n if (isArray && elements.data.length !== 0 && !elements.errors.length) {\r\n if (!this.variablesService.contacts.length) {\r\n elements.data.forEach(element => {\r\n this.variablesService.contacts.push(element);\r\n });\r\n } else {\r\n elements.data.forEach(element => {\r\n const indexName = this.variablesService.contacts.findIndex(\r\n contact => contact.name === element.name\r\n );\r\n const indexAddress = this.variablesService.contacts.findIndex(\r\n contact => contact.address === element.address\r\n );\r\n if (indexAddress === -1 && indexName === -1) {\r\n this.variablesService.contacts.push(element);\r\n }\r\n if (indexName !== -1 && indexAddress === -1) {\r\n this.variablesService.contacts.push({\r\n name: `${element.name} ${this.translate.instant(\r\n 'CONTACTS.COPY'\r\n )}`,\r\n address: element.address,\r\n notes: element.notes\r\n });\r\n }\r\n });\r\n }\r\n this.backend.getContactAlias();\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/contacts']);\r\n });\r\n }\r\n if (elements.errors.length) {\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'CONTACTS.ERROR_IMPORT'\r\n );\r\n console.log(elements.errors);\r\n }\r\n }\r\n });\r\n } else {\r\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_TYPE_FILE');\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n export() {\r\n const contacts: Array = [];\r\n this.variablesService.contacts.forEach(contact => {\r\n delete contact.alias;\r\n contacts.push(contact);\r\n });\r\n\r\n this.backend.saveFileDialog(\r\n '',\r\n '*',\r\n this.variablesService.settings.default_path,\r\n (file_status, file_data) => {\r\n if (!this.variablesService.contacts.length && !(file_data.error_code === 'CANCELED')) {\r\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_EMPTY_LIST');\r\n }\r\n const path = this.isValid(file_data.path) ? file_data.path : `${file_data.path}.csv`;\r\n if (file_status && this.isValid(path) && this.variablesService.contacts.length) {\r\n this.backend.storeFile(path, this.papa.unparse(contacts));\r\n }\r\n if (!(file_data.error_code === 'CANCELED') && !this.isValid(path)) {\r\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_EXPORT');\r\n }\r\n }\r\n );\r\n }\r\n\r\n isValid(file) {\r\n return file.endsWith('.csv');\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ 'HISTORY.STATUS' | translate }}{{ 'HISTORY.DATE' | translate }}{{ 'HISTORY.AMOUNT' | translate }}{{ 'HISTORY.FEE' | translate }}{{ 'HISTORY.ADDRESS' | translate }}
\\r\\n
\\r\\n 0\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n 500000000\\\">\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ (item.is_income ? 'HISTORY.RECEIVED' : 'HISTORY.SEND') | translate }}\\r\\n
\\r\\n
{{item.timestamp * 1000 | date : 'dd-MM-yyyy HH:mm'}}\\r\\n {{item.sortAmount | intToMoney}} {{variablesService.defaultCurrency}}\\r\\n \\r\\n {{item.sortFee | intToMoney}} {{variablesService.defaultCurrency}}\\r\\n \\r\\n {{item | historyTypeMessages}}\\r\\n {{item.remote_addresses[0]}}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.wrap-table {\\n margin: -3rem; }\\n\\n.wrap-table table tbody tr td {\\n min-width: 10rem; }\\n\\n.wrap-table table tbody tr .status {\\n position: relative;\\n display: flex;\\n align-items: center; }\\n\\n.wrap-table table tbody tr .status .confirmation {\\n position: absolute;\\n top: 50%;\\n left: -2rem;\\n transform: translateY(-50%);\\n display: flex;\\n align-items: flex-end;\\n width: 0.7rem;\\n height: 1.5rem; }\\n\\n.wrap-table table tbody tr .status .confirmation .fill {\\n width: 100%; }\\n\\n.wrap-table table tbody tr .status .lock-transaction {\\n position: absolute;\\n left: -2rem;\\n -webkit-mask: url('lock-transaction.svg') no-repeat center;\\n mask: url('lock-transaction.svg') no-repeat center;\\n width: 1.2rem;\\n height: 1.2rem;\\n margin-right: 1.1rem; }\\n\\n.wrap-table table tbody tr .status .unlock-transaction {\\n position: absolute;\\n left: -2rem;\\n -webkit-mask: url('unlock-transaction.svg') no-repeat center;\\n mask: url('unlock-transaction.svg') no-repeat center;\\n width: 1.2rem;\\n height: 1.2rem;\\n margin-right: 1.1rem; }\\n\\n.wrap-table table tbody tr .status .position {\\n position: static; }\\n\\n.wrap-table table tbody tr .status .status-transaction {\\n margin-right: 1rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.wrap-table table tbody tr .status.send .status-transaction {\\n background-color: transparent; }\\n\\n.wrap-table table tbody tr .status.send .status-transaction::after {\\n display: block;\\n content: '';\\n background: url('send-red.svg') no-repeat center;\\n width: 13px;\\n height: 13px; }\\n\\n.wrap-table table tbody tr .status.received .status-transaction {\\n background-color: transparent; }\\n\\n.wrap-table table tbody tr .status.received .status-transaction::after {\\n display: block;\\n content: '';\\n background: url('receive-green.svg') no-repeat center;\\n width: 13px;\\n height: 13px; }\\n\\n.wrap-table table tbody tr .remote-address {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n max-width: 25vw; }\\n\\n.wrap-table table tbody tr:not(.transaction-details) {\\n cursor: pointer; }\\n\\n.wrap-table table tbody tr.transaction-details {\\n transition: 0.5s height linear, 0s font-size;\\n transition-delay: 0s, 0.5s;\\n height: 0; }\\n\\n.wrap-table table tbody tr.transaction-details.open {\\n height: 16.2rem; }\\n\\n.wrap-table table tbody tr.transaction-details td {\\n position: relative;\\n overflow: hidden;\\n line-height: inherit;\\n padding-top: 0;\\n padding-bottom: 0; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaGlzdG9yeS9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxoaXN0b3J5XFxoaXN0b3J5LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsYUFBYSxFQUFBOztBQURmO0lBVVUsZ0JBQWdCLEVBQUE7O0FBVjFCO0lBY1Usa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixtQkFBbUIsRUFBQTs7QUFoQjdCO01BbUJZLGtCQUFrQjtNQUNsQixRQUFRO01BQ1IsV0FBVztNQUNYLDJCQUEyQjtNQUMzQixhQUFhO01BQ2IscUJBQXFCO01BQ3JCLGFBQWE7TUFDYixjQUFjLEVBQUE7O0FBMUIxQjtRQTZCYyxXQUFXLEVBQUE7O0FBN0J6QjtNQWtDWSxrQkFBa0I7TUFDbEIsV0FBVztNQUNYLDBEQUFtRTtjQUFuRSxrREFBbUU7TUFDbkUsYUFBYTtNQUNiLGNBQWM7TUFDZCxvQkFBb0IsRUFBQTs7QUF2Q2hDO01BMkNZLGtCQUFrQjtNQUNsQixXQUFXO01BQ1gsNERBQXFFO2NBQXJFLG9EQUFxRTtNQUNyRSxhQUFhO01BQ2IsY0FBYztNQUNkLG9CQUFvQixFQUFBOztBQWhEaEM7TUFvRFksZ0JBQWdCLEVBQUE7O0FBcEQ1QjtNQXdEWSxrQkFBa0I7TUFDbEIsYUFBYTtNQUNiLGNBQWMsRUFBQTs7QUExRDFCO01BK0RjLDZCQUE2QixFQUFBOztBQS9EM0M7TUFtRWMsY0FBYztNQUNkLFdBQVU7TUFDVixnREFBa0U7TUFDbEUsV0FBVztNQUNYLFlBQVksRUFBQTs7QUF2RTFCO01BNkVjLDZCQUE2QixFQUFBOztBQTdFM0M7TUFpRmMsY0FBYztNQUNkLFdBQVU7TUFDVixxREFBdUU7TUFDdkUsV0FBVztNQUNYLFlBQVksRUFBQTs7QUFyRjFCO0lBMkZVLGdCQUFnQjtJQUNoQix1QkFBdUI7SUFDdkIsZUFBZSxFQUFBOztBQTdGekI7SUFpR1UsZUFBZSxFQUFBOztBQWpHekI7SUFzR1UsNENBQTRDO0lBQzVDLDBCQUEwQjtJQUMxQixTQUFTLEVBQUE7O0FBeEduQjtNQTJHWSxlQUFlLEVBQUE7O0FBM0czQjtNQStHWSxrQkFBa0I7TUFDbEIsZ0JBQWdCO01BQ2hCLG9CQUFvQjtNQUNwQixjQUFjO01BQ2QsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9oaXN0b3J5L2hpc3RvcnkuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi53cmFwLXRhYmxlIHtcclxuICBtYXJnaW46IC0zcmVtO1xyXG5cclxuICB0YWJsZSB7XHJcblxyXG4gICAgdGJvZHkge1xyXG5cclxuICAgICAgdHIge1xyXG5cclxuICAgICAgICB0ZCB7XHJcbiAgICAgICAgICBtaW4td2lkdGg6IDEwcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cyB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAuY29uZmlybWF0aW9uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgbGVmdDogLTJyZW07XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gICAgICAgICAgICB3aWR0aDogMC43cmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcclxuXHJcbiAgICAgICAgICAgIC5maWxsIHtcclxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5sb2NrLXRyYW5zYWN0aW9uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBsZWZ0OiAtMnJlbTtcclxuICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9sb2NrLXRyYW5zYWN0aW9uLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4xcmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC51bmxvY2stdHJhbnNhY3Rpb24ge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IC0ycmVtO1xyXG4gICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3VubG9jay10cmFuc2FjdGlvbi5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxLjJyZW07XHJcbiAgICAgICAgICAgIGhlaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMXJlbTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAucG9zaXRpb24ge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5zdGF0dXMtdHJhbnNhY3Rpb24ge1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XHJcbiAgICAgICAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgICAgICAgIGhlaWdodDogMS43cmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYuc2VuZCAge1xyXG4gICAgICAgICAgICAuc3RhdHVzLXRyYW5zYWN0aW9uIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnN0YXR1cy10cmFuc2FjdGlvbjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDp1cmwoXCIuLi8uLi9hc3NldHMvaWNvbnMvc2VuZC1yZWQuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEzcHg7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxM3B4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJi5yZWNlaXZlZCB7XHJcbiAgICAgICAgICAgIC5zdGF0dXMtdHJhbnNhY3Rpb24ge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc3RhdHVzLXRyYW5zYWN0aW9uOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgY29udGVudDonJztcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOnVybChcIi4uLy4uL2Fzc2V0cy9pY29ucy9yZWNlaXZlLWdyZWVuLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxM3B4O1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMTNweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnJlbW90ZS1hZGRyZXNzIHtcclxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgICAgIG1heC13aWR0aDogMjV2dztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bm90KC50cmFuc2FjdGlvbi1kZXRhaWxzKSB7XHJcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnRyYW5zYWN0aW9uLWRldGFpbHMge1xyXG4gICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjVzIGhlaWdodCBsaW5lYXIsIDBzIGZvbnQtc2l6ZTtcclxuICAgICAgICAgIHRyYW5zaXRpb246IDAuNXMgaGVpZ2h0IGxpbmVhciwgMHMgZm9udC1zaXplO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHMsIDAuNXM7XHJcbiAgICAgICAgICBoZWlnaHQ6IDA7XHJcblxyXG4gICAgICAgICAgJi5vcGVuIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxNi4ycmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */\"","import {Component, OnInit, OnDestroy, AfterViewChecked, ViewChild, ElementRef} from '@angular/core';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport { Transaction } from '../_helpers/models/transaction.model';\r\n\r\n@Component({\r\n selector: 'app-history',\r\n templateUrl: './history.component.html',\r\n styleUrls: ['./history.component.scss']\r\n})\r\nexport class HistoryComponent implements OnInit, OnDestroy, AfterViewChecked {\r\n parentRouting;\r\n openedDetails = false;\r\n calculatedWidth = [];\r\n @ViewChild('head') head: ElementRef;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n public variablesService: VariablesService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(() => {\r\n this.openedDetails = false;\r\n });\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.calculateWidth();\r\n }\r\n\r\n getHeight(item) {\r\n if ((this.variablesService.height_app - item.height >= 10 && item.height !== 0) || (item.is_mining === true && item.height === 0)) {\r\n return 100;\r\n } else {\r\n if (item.height === 0 || this.variablesService.height_app - item.height < 0) {\r\n return 0;\r\n } else {\r\n return (this.variablesService.height_app - item.height) * 10;\r\n }\r\n }\r\n }\r\n\r\n openDetails(tx_hash) {\r\n if (tx_hash === this.openedDetails) {\r\n this.openedDetails = false;\r\n } else {\r\n this.openedDetails = tx_hash;\r\n }\r\n }\r\n\r\n calculateWidth() {\r\n this.calculatedWidth = [];\r\n this.calculatedWidth.push(this.head.nativeElement.childNodes[0].clientWidth);\r\n this.calculatedWidth.push(this.head.nativeElement.childNodes[1].clientWidth + this.head.nativeElement.childNodes[2].clientWidth);\r\n this.calculatedWidth.push(this.head.nativeElement.childNodes[3].clientWidth);\r\n this.calculatedWidth.push(this.head.nativeElement.childNodes[4].clientWidth);\r\n }\r\n\r\n time(item: Transaction) {\r\n const now = new Date().getTime();\r\n const unlockTime = now + ((item.unlock_time - this.variablesService.height_max) * 60 * 1000);\r\n return unlockTime;\r\n }\r\n\r\n isLocked(item: Transaction) {\r\n if ((item.unlock_time > 500000000) && (item.unlock_time > new Date().getTime() / 1000)) {\r\n return true;\r\n }\r\n if ((item.unlock_time < 500000000) && (item.unlock_time > this.variablesService.height_max)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'LOGIN.FORM_ERRORS.MISMATCH' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.OFFLINE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.SYNCING' | translate }} {{ variablesService.height_app }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.height_max }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ONLINE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.DOWNLOADING' | translate }} {{ variablesService.downloaded }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.total }}{{ 'SIDEBAR.SYNCHRONIZATION.MB' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ variablesService.sync.progress_value_text }}%
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ variablesService.download.progress_value_text }}%
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.STANDARD' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT' | translate }}\\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.CRITICAL' | translate }}\\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.TIME' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%; }\\n :host .content {\\n display: flex; }\\n :host .content .wrap-login {\\n margin: auto;\\n width: 100%;\\n max-width: 40rem; }\\n :host .content .wrap-login .logo {\\n display: flex;\\n justify-content: center; }\\n :host .content .wrap-login .logo::ng-deep svg {\\n width: 15rem; }\\n :host .content .wrap-login .form-login {\\n display: flex;\\n flex-direction: column; }\\n :host .content .wrap-login .form-login .wrap-button {\\n display: flex;\\n align-items: center;\\n justify-content: space-between; }\\n :host .content .wrap-login .form-login .wrap-button button {\\n margin: 2.5rem 0; }\\n :host .content .wrap-login .form-login button {\\n margin: 2.5rem auto;\\n width: 100%;\\n max-width: 15rem; }\\n .synchronization-status {\\n position: absolute;\\n bottom: 3rem;\\n left: 3rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbG9naW4vRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcbG9naW5cXGxvZ2luLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFlBQVksRUFBQTtFQUxkO0lBUUksYUFBYSxFQUFBO0VBUmpCO01BV00sWUFBWTtNQUNaLFdBQVc7TUFDWCxnQkFBZ0IsRUFBQTtFQWJ0QjtRQWdCUSxhQUFhO1FBQ2IsdUJBQXVCLEVBQUE7RUFqQi9CO1VBb0JVLFlBQVksRUFBQTtFQXBCdEI7UUF5QlEsYUFBYTtRQUNiLHNCQUFzQixFQUFBO0VBMUI5QjtVQTZCVSxhQUFhO1VBQ2IsbUJBQW1CO1VBQ25CLDhCQUE4QixFQUFBO0VBL0J4QztZQWtDWSxnQkFBZ0IsRUFBQTtFQWxDNUI7VUF1Q1UsbUJBQW1CO1VBQ25CLFdBQVc7VUFDWCxnQkFBZ0IsRUFBQTtFQU0xQjtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osVUFBVSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvbG9naW4vbG9naW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuXHJcbiAgLmNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAud3JhcC1sb2dpbiB7XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1heC13aWR0aDogNDByZW07XHJcblxyXG4gICAgICAubG9nbyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgJjo6bmctZGVlcCBzdmcge1xyXG4gICAgICAgICAgd2lkdGg6IDE1cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmZvcm0tbG9naW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICAgICAgLndyYXAtYnV0dG9uIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMi41cmVtIDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgbWFyZ2luOiAyLjVyZW0gYXV0bztcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiAxNXJlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuLnN5bmNocm9uaXphdGlvbi1zdGF0dXMge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDNyZW07XHJcbiAgbGVmdDogM3JlbTtcclxufVxyXG4iXX0= */\"","import {Component, NgZone, OnInit, OnDestroy} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {DOWNLOADS_PAGE_URL} from '../_shared/constants'\r\n\r\nimport icons from '../../assets/icons/icons.json';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit, OnDestroy {\r\n\r\n queryRouting;\r\n\r\n regForm = new FormGroup({\r\n password: new FormControl('',\r\n Validators.pattern(this.variablesService.pattern)),\r\n confirmation: new FormControl('')\r\n }, [function (g: FormGroup) {\r\n return g.get('password').value === g.get('confirmation').value ? null : {'mismatch': true};\r\n }\r\n]);\r\n\r\n authForm = new FormGroup({\r\n password: new FormControl('')\r\n });\r\n\r\n type = 'reg';\r\n\r\n logo = icons.logo;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.type) {\r\n this.type = params.type;\r\n }\r\n });\r\n }\r\n\r\n onSubmitCreatePass(): void {\r\n if (this.regForm.valid) {\r\n this.variablesService.appPass = this.regForm.get('password').value; // the pass what was written in input of login form by user\r\n\r\n this.backend.setMasterPassword({pass: this.variablesService.appPass}, (status, data) => {\r\n if (status) {\r\n this.backend.storeSecureAppData({pass: this.variablesService.appPass});\r\n this.variablesService.appLogin = true;\r\n this.variablesService.dataIsLoaded = true;\r\n if (this.variablesService.settings.appLockTime) {\r\n this.variablesService.startCountdown();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n } else {\r\n console.log(data['error_code']);\r\n }\r\n });\r\n }\r\n }\r\n\r\n onSkipCreatePass(): void {\r\n this.variablesService.appPass = '';\r\n this.ngZone.run(() => {\r\n this.variablesService.appLogin = true;\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n\r\n dropSecureAppData(): void {\r\n this.backend.dropSecureAppData(() => {\r\n this.onSkipCreatePass();\r\n });\r\n this.variablesService.wallets = [];\r\n this.variablesService.contacts = [];\r\n }\r\n\r\n onSubmitAuthPass(): void {\r\n if (this.authForm.valid) {\r\n this.variablesService.appPass = this.authForm.get('password').value;\r\n\r\n if (this.variablesService.dataIsLoaded) {\r\n this.backend.checkMasterPassword({pass: this.variablesService.appPass}, (status, data) => {\r\n if (status) {\r\n this.variablesService.appLogin = true;\r\n if (this.variablesService.settings.appLockTime) {\r\n this.variablesService.startCountdown();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/'], {queryParams: {prevUrl: 'login'}});\r\n });\r\n }\r\n });\r\n } else {\r\n this.getData(this.variablesService.appPass);\r\n }\r\n }\r\n }\r\n\r\n getData(appPass) {\r\n this.backend.getSecureAppData({pass: appPass}, (status, data) => {\r\n if (!data.error_code) {\r\n this.variablesService.appLogin = true;\r\n this.variablesService.dataIsLoaded = true;\r\n if (this.variablesService.settings.appLockTime) {\r\n this.variablesService.startCountdown();\r\n }\r\n this.variablesService.appPass = appPass;\r\n const isEmptyObject = Object.keys(data).length === 0 && data.constructor === Object;\r\n\r\n if (this.variablesService.wallets.length) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.variablesService.wallets[0].wallet_id]);\r\n });\r\n return;\r\n }\r\n if (data.hasOwnProperty('contacts')) {\r\n if (Object.keys(data['contacts']).length !== 0) {\r\n data['contacts'].map(contact => {\r\n this.variablesService.contacts.push(contact);\r\n });\r\n }\r\n }\r\n if (data.hasOwnProperty('wallets')) {\r\n if (Object.keys(data['wallets']).length !== 0) {\r\n this.getWalletData(data['wallets']);\r\n } else {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n }\r\n if (!data.hasOwnProperty('wallets') && !data.hasOwnProperty('contacts')) {\r\n if (data.length !== 0 && !isEmptyObject) {\r\n this.getWalletData(data);\r\n } else {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n getWalletData(walletData) {\r\n let openWallets = 0;\r\n let runWallets = 0;\r\n walletData.forEach((wallet, wallet_index) => {\r\n this.backend.openWallet(wallet.path, wallet.pass, this.variablesService.count, true, (open_status, open_data, open_error) => {\r\n if (open_status || open_error === 'FILE_RESTORED') {\r\n openWallets++;\r\n this.ngZone.run(() => {\r\n const new_wallet = new Wallet(\r\n open_data.wallet_id,\r\n wallet.name,\r\n wallet.pass,\r\n open_data['wi'].path,\r\n open_data['wi'].address,\r\n open_data['wi'].balance,\r\n open_data['wi'].unlocked_balance,\r\n open_data['wi'].mined_total,\r\n open_data['wi'].tracking_hey\r\n );\r\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\r\n if (wallet.staking) {\r\n new_wallet.staking = true;\r\n this.backend.startPosMining(new_wallet.wallet_id);\r\n } else {\r\n new_wallet.staking = false;\r\n }\r\n new_wallet.is_auditable = open_data['wi'].is_auditable;\r\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\r\n new_wallet.currentPage = 1;\r\n new_wallet.exclude_mining_txs = false;\r\n if (open_data.recent_history && open_data.recent_history.history) {\r\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\r\n new_wallet.totalPages = Math.ceil( open_data.recent_history.total_history_items / this.variablesService.count);\r\n new_wallet.totalPages > this.variablesService.maxPages\r\n ? new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index);\r\n new_wallet.prepareHistory(open_data.recent_history.history);\r\n } else {\r\n new_wallet.total_history_item = 0;\r\n new_wallet.pages = new Array(1).fill(1);\r\n new_wallet.totalPages = 1;\r\n }\r\n this.backend.getContracts(open_data.wallet_id, (contracts_status, contracts_data) => {\r\n if (contracts_status && contracts_data.hasOwnProperty('contracts')) {\r\n this.ngZone.run(() => {\r\n new_wallet.prepareContractsAfterOpen(contracts_data.contracts, this.variablesService.exp_med_ts, this.variablesService.height_app, this.variablesService.settings.viewedContracts, this.variablesService.settings.notViewedContracts);\r\n });\r\n }\r\n });\r\n this.variablesService.wallets.push(new_wallet);\r\n if (this.variablesService.wallets.length === 1) {\r\n this.router.navigate(['/wallet/' + this.variablesService.wallets[0].wallet_id]);\r\n }\r\n });\r\n this.backend.runWallet(open_data.wallet_id, (run_status) => {\r\n if (run_status) {\r\n runWallets++;\r\n } else {\r\n if (wallet_index === walletData.length - 1 && runWallets === 0) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n }\r\n });\r\n } else {\r\n if (wallet_index === walletData.length - 1 && openWallets === 0) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n getUpdate() {\r\n this.backend.openUrlInBrowser(DOWNLOADS_PAGE_URL);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.queryRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
0 && prevUrl !== 'login'\\\">\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n

{{ 'MAIN.TITLE' | translate }}

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'MAIN.HELP' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \":host {\\n flex: 1 0 auto;\\n padding: 3rem; }\\n\\n.content {\\n padding: 3rem;\\n min-height: 100%; }\\n\\n.content .head {\\n justify-content: flex-end; }\\n\\n.add-wallet .add-wallet-title {\\n margin-bottom: 1rem; }\\n\\n.add-wallet .add-wallet-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin: 0 -0.5rem;\\n padding: 1.5rem 0; }\\n\\n.add-wallet .add-wallet-buttons button {\\n flex: 1 0 auto;\\n margin: 0 0.5rem; }\\n\\n.add-wallet .add-wallet-help {\\n display: flex;\\n cursor: pointer;\\n font-size: 1.3rem;\\n line-height: 1.5rem; }\\n\\n.add-wallet .add-wallet-help .icon {\\n -webkit-mask: url('howto.svg') no-repeat center;\\n mask: url('howto.svg') no-repeat center;\\n margin-right: 0.8rem;\\n width: 1.5rem;\\n height: 1.5rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFpbi9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxtYWluXFxtYWluLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsY0FBYztFQUNkLGFBQWEsRUFBQTs7QUFHZjtFQUNFLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTs7QUFGbEI7SUFLSSx5QkFBeUIsRUFBQTs7QUFJN0I7RUFHSSxtQkFBbUIsRUFBQTs7QUFIdkI7RUFPSSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLDhCQUE4QjtFQUM5QixpQkFBaUI7RUFDakIsaUJBQWlCLEVBQUE7O0FBWHJCO0lBY00sY0FBYztJQUNkLGdCQUFnQixFQUFBOztBQWZ0QjtFQW9CSSxhQUFhO0VBQ2IsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixtQkFBbUIsRUFBQTs7QUF2QnZCO0lBMEJNLCtDQUF3RDtZQUF4RCx1Q0FBd0Q7SUFDeEQsb0JBQW9CO0lBQ3BCLGFBQWE7SUFDYixjQUFjLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9tYWluL21haW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZmxleDogMSAwIGF1dG87XHJcbiAgcGFkZGluZzogM3JlbTtcclxufVxyXG5cclxuLmNvbnRlbnQge1xyXG4gIHBhZGRpbmc6IDNyZW07XHJcbiAgbWluLWhlaWdodDogMTAwJTtcclxuXHJcbiAgLmhlYWQge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICB9XHJcbn1cclxuXHJcbi5hZGQtd2FsbGV0IHtcclxuXHJcbiAgLmFkZC13YWxsZXQtdGl0bGUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICB9XHJcblxyXG4gIC5hZGQtd2FsbGV0LWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW46IDAgLTAuNXJlbTtcclxuICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICBtYXJnaW46IDAgMC41cmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZC13YWxsZXQtaGVscCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS41cmVtO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9ob3d0by5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMC44cmVtO1xyXG4gICAgICB3aWR0aDogMS41cmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, NgZone, OnInit} from '@angular/core';\r\nimport {Location} from '@angular/common';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {CREATE_NEW_WALLET_HELP_PAGE} from '../_shared/constants';\r\n\r\n@Component({\r\n selector: 'app-main',\r\n templateUrl: './main.component.html',\r\n styleUrls: ['./main.component.scss']\r\n})\r\nexport class MainComponent implements OnInit {\r\n\r\n public prevUrl: string = '';\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private location: Location,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.route.snapshot.queryParams && this.route.snapshot.queryParams.prevUrl) {\r\n this.prevUrl = this.route.snapshot.queryParams.prevUrl;\r\n }\r\n }\r\n\r\n openWallet() {\r\n this.backend.openFileDialog(this.translate.instant('MAIN.CHOOSE_PATH'), '*', this.variablesService.settings.default_path, (file_status, file_data) => {\r\n if (file_status) {\r\n this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/'));\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/open'], {queryParams: {path: file_data.path}});\r\n });\r\n } else {\r\n console.log(file_data['error_code']);\r\n }\r\n });\r\n }\r\n\r\n openInBrowser() {\r\n this.backend.openUrlInBrowser(CREATE_NEW_WALLET_HELP_PAGE);\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ 'MESSAGES.ADDRESS' | translate }}{{ 'MESSAGES.MESSAGE' | translate }}
\\r\\n {{message.address}}\\r\\n \\r\\n \\r\\n {{message.message}}\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.wrap-table {\\n margin: -3rem; }\\n\\n.wrap-table table tbody tr td:first-child {\\n position: relative;\\n padding-right: 5rem;\\n width: 18rem; }\\n\\n.wrap-table table tbody tr td:first-child span {\\n display: block;\\n line-height: 3.5rem;\\n max-width: 10rem; }\\n\\n.wrap-table table tbody tr td:first-child .icon {\\n position: absolute;\\n top: 50%;\\n right: 1rem;\\n transform: translateY(-50%);\\n display: block;\\n -webkit-mask: url('alert.svg') no-repeat 0;\\n mask: url('alert.svg') no-repeat 0;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWVzc2FnZXMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcbWVzc2FnZXNcXG1lc3NhZ2VzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsYUFBYSxFQUFBOztBQURmO0lBWVksa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixZQUFZLEVBQUE7O0FBZHhCO01BaUJjLGNBQWM7TUFDZCxtQkFBbUI7TUFDbkIsZ0JBQWdCLEVBQUE7O0FBbkI5QjtNQXVCYyxrQkFBa0I7TUFDbEIsUUFBUTtNQUNSLFdBQVc7TUFDWCwyQkFBMkI7TUFDM0IsY0FBYztNQUNkLDBDQUFtRDtjQUFuRCxrQ0FBbUQ7TUFDbkQsYUFBYTtNQUNiLGNBQWMsRUFBQSIsImZpbGUiOiJzcmMvYXBwL21lc3NhZ2VzL21lc3NhZ2VzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ud3JhcC10YWJsZSB7XHJcbiAgbWFyZ2luOiAtM3JlbTtcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuXHJcbiAgICAgICAgdGQge1xyXG5cclxuICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07XHJcbiAgICAgICAgICAgIHdpZHRoOiAxOHJlbTtcclxuXHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzLjVyZW07XHJcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMHJlbTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgICByaWdodDogMXJlbTtcclxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9hbGVydC5zdmcpIG5vLXJlcGVhdCAwO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxLjJyZW07XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-messages',\r\n templateUrl: './messages.component.html',\r\n styleUrls: ['./messages.component.scss']\r\n})\r\nexport class MessagesComponent implements OnInit {\r\n\r\n messages = [\r\n {\r\n is_new: true,\r\n address: '@bitmap',\r\n message: 'No more miners for you!'\r\n },\r\n {\r\n is_new: false,\r\n address: 'Hjkwey36gHasdhkajshd4bxnb5mcvowyefb2633FdsFGGWbb',\r\n message: 'Hey! What’s with our BBR deal?'\r\n },\r\n {\r\n is_new: false,\r\n address: '@john',\r\n message: 'I’m coming!'\r\n }\r\n ];\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n

{{ 'OPEN_WALLET.MODAL.TITLE' | translate }}

\\r\\n
\\r\\n
{{ wallet.name }}
\\r\\n
{{ wallet.path }}
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'OPEN_WALLET.MODAL.NOT_FOUND' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: rgba(255, 255, 255, 0.25); }\\n\\n.modal {\\n display: flex;\\n flex-direction: column;\\n background-position: center;\\n background-size: 200%;\\n padding: 2rem;\\n min-width: 34rem;\\n max-width: 64rem; }\\n\\n.modal .title {\\n font-size: 1.8rem;\\n text-align: center; }\\n\\n.modal .open-form .wallet-path {\\n font-size: 1.3rem;\\n margin: 5rem 0 2rem;\\n word-wrap: break-word;\\n line-height: 2rem; }\\n\\n.modal .open-form .wrap-button {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin: 2rem -2rem 0; }\\n\\n.modal .open-form .wrap-button button {\\n flex: 1 0 0;\\n margin: 0 2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3Blbi13YWxsZXQtbW9kYWwvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcb3Blbi13YWxsZXQtbW9kYWxcXG9wZW4td2FsbGV0LW1vZGFsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUMsRUFBQTs7QUFHdkM7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLDJCQUEyQjtFQUMzQixxQkFBcUI7RUFDckIsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixnQkFBZ0IsRUFBQTs7QUFQbEI7SUFVSSxpQkFBaUI7SUFDakIsa0JBQWtCLEVBQUE7O0FBWHRCO0lBaUJNLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIscUJBQXFCO0lBQ3JCLGlCQUFpQixFQUFBOztBQXBCdkI7SUF3Qk0sYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsb0JBQW9CLEVBQUE7O0FBM0IxQjtNQThCUSxXQUFXO01BQ1gsY0FBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvb3Blbi13YWxsZXQtbW9kYWwvb3Blbi13YWxsZXQtbW9kYWwuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcclxufVxyXG5cclxuLm1vZGFsIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJTtcclxuICBwYWRkaW5nOiAycmVtO1xyXG4gIG1pbi13aWR0aDogMzRyZW07XHJcbiAgbWF4LXdpZHRoOiA2NHJlbTtcclxuXHJcbiAgLnRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLm9wZW4tZm9ybSB7XHJcblxyXG4gICAgLndhbGxldC1wYXRoIHtcclxuICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgIG1hcmdpbjogNXJlbSAwIDJyZW07XHJcbiAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLndyYXAtYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICBtYXJnaW46IDJyZW0gLTJyZW0gMDtcclxuXHJcbiAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgZmxleDogMSAwIDA7XHJcbiAgICAgICAgbWFyZ2luOiAwIDJyZW0gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, OnInit, Input, NgZone} from '@angular/core';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\n\r\n@Component({\r\n selector: 'app-open-wallet-modal',\r\n templateUrl: './open-wallet-modal.component.html',\r\n styleUrls: ['./open-wallet-modal.component.scss']\r\n})\r\nexport class OpenWalletModalComponent implements OnInit {\r\n\r\n @Input() wallets;\r\n\r\n wallet = {\r\n name: '',\r\n path: '',\r\n pass: '',\r\n notFound: false,\r\n emptyPass: false\r\n };\r\n\r\n constructor(\r\n public variablesService: VariablesService,\r\n private backend: BackendService,\r\n private translate: TranslateService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.wallets.length) {\r\n this.wallet = this.wallets[0];\r\n this.wallet.pass = '';\r\n }\r\n }\r\n\r\n openWallet() {\r\n if (this.wallets.length === 0) {\r\n return;\r\n }\r\n this.backend.openWallet(this.wallet.path, this.wallet.pass, this.variablesService.count, false, (open_status, open_data, open_error) => {\r\n if (open_error && open_error === 'FILE_NOT_FOUND') {\r\n this.ngZone.run(() => {\r\n this.wallet.notFound = true;\r\n });\r\n let error_translate = this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1');\r\n error_translate += ':
' + this.wallet.path;\r\n error_translate += this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2');\r\n this.modalService.prepareModal('error', error_translate);\r\n } else {\r\n if (open_status || open_error === 'FILE_RESTORED') {\r\n\r\n let exists = false;\r\n this.variablesService.wallets.forEach((wallet) => {\r\n if (wallet.address === open_data['wi'].address) {\r\n exists = true;\r\n }\r\n });\r\n\r\n if (exists) {\r\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\r\n this.backend.closeWallet(open_data.wallet_id);\r\n } else {\r\n const new_wallet = new Wallet(\r\n open_data.wallet_id,\r\n this.wallet.name,\r\n this.wallet.pass,\r\n open_data['wi'].path,\r\n open_data['wi'].address,\r\n open_data['wi'].balance,\r\n open_data['wi'].unlocked_balance,\r\n open_data['wi'].mined_total,\r\n open_data['wi'].tracking_hey\r\n );\r\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\r\n new_wallet.is_auditable = open_data['wi'].is_auditable;\r\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\r\n new_wallet.currentPage = 1;\r\n new_wallet.exclude_mining_txs = false;\r\n if (open_data.recent_history && open_data.recent_history.history) {\r\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\r\n new_wallet.totalPages = Math.ceil( open_data.recent_history.total_history_items / this.variablesService.count);\r\n new_wallet.totalPages > this.variablesService.maxPages\r\n ? new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index);\r\n new_wallet.prepareHistory(open_data.recent_history.history);\r\n } else {\r\n new_wallet.total_history_item = 0;\r\n new_wallet.pages = new Array(1).fill(1);\r\n new_wallet.totalPages = 1;\r\n }\r\n this.backend.getContracts(open_data.wallet_id, (contracts_status, contracts_data) => {\r\n if (contracts_status && contracts_data.hasOwnProperty('contracts')) {\r\n this.ngZone.run(() => {\r\n new_wallet.prepareContractsAfterOpen(\r\n contracts_data.contracts,\r\n this.variablesService.exp_med_ts,\r\n this.variablesService.height_app,\r\n this.variablesService.settings.viewedContracts,\r\n this.variablesService.settings.notViewedContracts\r\n );\r\n });\r\n }\r\n });\r\n this.variablesService.wallets.push(new_wallet);\r\n this.backend.runWallet(open_data.wallet_id);\r\n this.skipWallet();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n skipWallet() {\r\n this.ngZone.run(() => {\r\n if (this.wallets.length) {\r\n this.wallets.splice(0, 1);\r\n this.ngOnInit();\r\n }\r\n });\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\\r\\n {{ 'BREADCRUMBS.OPEN_WALLET' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\\r\\n
\\r\\n
\\r\\n
= variablesService.maxWalletNameLength\\\">\\r\\n {{ 'OPEN_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\"","module.exports = \".form-open {\\n margin: 2.4rem 0;\\n width: 50%; }\\n .form-open .wrap-buttons {\\n display: flex;\\n margin: 2.5rem -0.7rem; }\\n .form-open .wrap-buttons button {\\n margin: 0 0.7rem; }\\n .form-open .wrap-buttons button.create-button {\\n flex: 1 1 50%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3Blbi13YWxsZXQvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcb3Blbi13YWxsZXRcXG9wZW4td2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTtFQUZaO0lBS0ksYUFBYTtJQUNiLHNCQUFzQixFQUFBO0VBTjFCO01BU00sZ0JBQWdCLEVBQUE7RUFUdEI7UUFZUSxhQUFhLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9vcGVuLXdhbGxldC9vcGVuLXdhbGxldC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLW9wZW4ge1xyXG4gIG1hcmdpbjogMi40cmVtIDA7XHJcbiAgd2lkdGg6IDUwJTtcclxuXHJcbiAgLndyYXAtYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luOiAyLjVyZW0gLTAuN3JlbTtcclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBtYXJnaW46IDAgMC43cmVtO1xyXG5cclxuICAgICAgJi5jcmVhdGUtYnV0dG9uIHtcclxuICAgICAgICBmbGV4OiAxIDEgNTAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, NgZone, OnDestroy, OnInit} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-open-wallet',\r\n templateUrl: './open-wallet.component.html',\r\n styleUrls: ['./open-wallet.component.scss']\r\n})\r\nexport class OpenWalletComponent implements OnInit, OnDestroy {\r\n\r\n queryRouting;\r\n filePath: string;\r\n\r\n openForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, (g: FormControl) => {\r\n for (let i = 0; i < this.variablesService.wallets.length; i++) {\r\n if (g.value === this.variablesService.wallets[i].name) {\r\n return {'duplicate': true};\r\n }\r\n }\r\n return null;\r\n }]),\r\n password: new FormControl('')\r\n });\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.path) {\r\n this.filePath = params.path;\r\n let filename = '';\r\n if (params.path.lastIndexOf('.') === -1) {\r\n filename = params.path.substr(params.path.lastIndexOf('/') + 1);\r\n } else {\r\n filename = params.path.substr(params.path.lastIndexOf('/') + 1, params.path.lastIndexOf('.') - 1 - params.path.lastIndexOf('/'));\r\n }\r\n if (filename.length > 25) {\r\n filename = filename.slice(0, 25);\r\n }\r\n this.openForm.get('name').setValue(filename);\r\n this.openForm.get('name').markAsTouched();\r\n }\r\n });\r\n }\r\n\r\n openWallet() {\r\n if (this.openForm.valid && this.openForm.get('name').value.length <= this.variablesService.maxWalletNameLength) {\r\n this.backend.openWallet(this.filePath, this.openForm.get('password').value, this.variablesService.count, false, (open_status, open_data, open_error) => {\r\n if (open_error && open_error === 'FILE_NOT_FOUND') {\r\n let error_translate = this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1');\r\n error_translate += ':
' + this.filePath;\r\n error_translate += this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2');\r\n this.modalService.prepareModal('error', error_translate);\r\n } else {\r\n if (open_status || open_error === 'FILE_RESTORED') {\r\n\r\n let exists = false;\r\n this.variablesService.wallets.forEach((wallet) => {\r\n if (wallet.address === open_data['wi'].address) {\r\n exists = true;\r\n }\r\n });\r\n\r\n if (exists) {\r\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\r\n this.backend.closeWallet(open_data.wallet_id, () => {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n });\r\n } else {\r\n const new_wallet = new Wallet(\r\n open_data.wallet_id,\r\n this.openForm.get('name').value,\r\n this.openForm.get('password').value,\r\n open_data['wi'].path,\r\n open_data['wi'].address,\r\n open_data['wi'].balance,\r\n open_data['wi'].unlocked_balance,\r\n open_data['wi'].mined_total,\r\n open_data['wi'].tracking_hey\r\n );\r\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\r\n new_wallet.currentPage = 1;\r\n new_wallet.open_from_exist = true;\r\n new_wallet.exclude_mining_txs = false;\r\n new_wallet.is_auditable = open_data['wi'].is_auditable;\r\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\r\n if (open_data.recent_history && open_data.recent_history.history) {\r\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\r\n new_wallet.totalPages = Math.ceil( open_data.recent_history.total_history_items / this.variablesService.count);\r\n new_wallet.totalPages > this.variablesService.maxPages\r\n ? new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index);\r\n new_wallet.prepareHistory(open_data.recent_history.history);\r\n } else {\r\n new_wallet.total_history_item = 0;\r\n new_wallet.pages = new Array(1).fill(1);\r\n new_wallet.totalPages = 1;\r\n }\r\n this.backend.getContracts(open_data.wallet_id, (contracts_status, contracts_data) => {\r\n if (contracts_status && contracts_data.hasOwnProperty('contracts')) {\r\n this.ngZone.run(() => {\r\n new_wallet.prepareContractsAfterOpen(contracts_data.contracts, this.variablesService.exp_med_ts, this.variablesService.height_app, this.variablesService.settings.viewedContracts, this.variablesService.settings.notViewedContracts);\r\n });\r\n }\r\n });\r\n this.variablesService.wallets.push(new_wallet);\r\n this.backend.runWallet(open_data.wallet_id, (run_status, run_data) => {\r\n if (run_status) {\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + open_data.wallet_id]);\r\n });\r\n } else {\r\n console.log(run_data['error_code']);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.queryRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n {{ 'BREADCRUMBS.CONTRACTS' | translate }}\\r\\n {{ 'BREADCRUMBS.NEW_PURCHASE' | translate }}\\r\\n {{ 'BREADCRUMBS.OLD_PURCHASE' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.DESC_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n
= 100\\\">\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.COMMENT_MAXIMUM' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
{{item.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.SELLER_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.SELLER_NOT_VALID' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.SELLER_SAME' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.ALIAS_NOT_VALID' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.AMOUNT_ZERO' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.YOUR_DEPOSIT_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.SELLER_DEPOSIT_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
= 100\\\">\\r\\n
\\r\\n {{ 'PURCHASE.FORM_ERRORS.COMMENT_MAXIMUM' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n 1 {{ 'PURCHASE.HOUR' | translate }}\\r\\n \\r\\n {{title}} {{ 'PURCHASE.HOURS' | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n {{ 'PURCHASE.NEED_MONEY' | translate }}\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
{{'PURCHASE.NULLIFY_QUESTION' | translate}}
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
{{ 'PURCHASE.WAITING_TIME_QUESTION' | translate }}
\\r\\n \\r\\n
\\r\\n \\r\\n 1 {{ 'PURCHASE.HOUR' | translate }}\\r\\n \\r\\n {{title}} {{ 'PURCHASE.HOURS' | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.NEW_PURCHASE' | translate }}\\r\\n \\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_SELLER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_SELLER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_DELIVERY' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_CANCEL_SELLER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.EXPIRED' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_SELLER' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_CONFIRMATION' | translate }}\\r\\n (0/10)\\r\\n ({{variablesService.height_app - currentContract.height}}/10)\\r\\n \\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.COMPLETED' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.NOT_RECEIVED' | translate }}. {{ 'PURCHASE.STATUS_MESSAGES.NULLIFIED' | translate }}\\r\\n \\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.PROPOSAL_CANCEL_SELLER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.CANCELLED' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.BEING_CANCELLED' | translate }}\\r\\n (0/10)\\r\\n ({{variablesService.height_app - currentContract.height}}/10)\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_BUYER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_BUYER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_CANCEL_BUYER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.EXPIRED' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_DELIVERY' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_CONFIRMATION' | translate }}\\r\\n (0/10)\\r\\n ({{variablesService.height_app - currentContract.height}}/10)\\r\\n \\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.COMPLETED' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.NOT_RECEIVED' | translate }}. {{ 'PURCHASE.STATUS_MESSAGES.NULLIFIED' | translate }}\\r\\n \\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.PROPOSAL_CANCEL_BUYER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.CANCELLED' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.BEING_CANCELLED' | translate }}\\r\\n (0/10)\\r\\n ({{variablesService.height_app - currentContract.height}}/10)\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n {{currentContract.expiration_time | contractTimeLeft: 0}}\\r\\n {{currentContract.cancel_expiration_time | contractTimeLeft: 2}}\\r\\n {{currentContract.expiration_time | contractTimeLeft: 1}}\\r\\n {{currentContract.cancel_expiration_time | contractTimeLeft: 1}}\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n width: 100%; }\\n\\n.head {\\n flex: 0 0 auto;\\n box-sizing: content-box;\\n margin: -3rem -3rem 0; }\\n\\n.form-purchase {\\n flex: 1 1 auto;\\n margin: 1.5rem -3rem 0;\\n padding: 0 3rem;\\n overflow-y: overlay; }\\n\\n.form-purchase .input-blocks-row {\\n display: flex; }\\n\\n.form-purchase .input-blocks-row .input-block {\\n flex-basis: 50%; }\\n\\n.form-purchase .input-blocks-row .input-block:first-child {\\n margin-right: 1.5rem; }\\n\\n.form-purchase .input-blocks-row .input-block:last-child {\\n margin-left: 1.5rem; }\\n\\n.form-purchase .input-blocks-row .input-block .checkbox-block {\\n display: flex; }\\n\\n.form-purchase .purchase-select {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n font-size: 1.3rem;\\n line-height: 1.3rem;\\n margin: 1.5rem 0 0;\\n padding: 0;\\n width: 100%;\\n max-width: 15rem;\\n height: 1.3rem; }\\n\\n.form-purchase .purchase-select .arrow {\\n margin-left: 1rem;\\n width: 0.8rem;\\n height: 0.8rem; }\\n\\n.form-purchase .purchase-select .arrow.down {\\n -webkit-mask: url('arrow-down.svg') no-repeat center;\\n mask: url('arrow-down.svg') no-repeat center; }\\n\\n.form-purchase .purchase-select .arrow.up {\\n -webkit-mask: url('arrow-up.svg') no-repeat center;\\n mask: url('arrow-up.svg') no-repeat center; }\\n\\n.form-purchase .additional-details {\\n display: flex;\\n margin-top: 1.5rem;\\n padding: 0.5rem 0 2rem; }\\n\\n.form-purchase .additional-details > div {\\n flex-basis: 25%; }\\n\\n.form-purchase .additional-details > div:first-child {\\n padding-left: 1.5rem;\\n padding-right: 1rem; }\\n\\n.form-purchase .additional-details > div:last-child {\\n padding-left: 1rem;\\n padding-right: 1.5rem; }\\n\\n.form-purchase .purchase-states {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n font-size: 1.2rem;\\n line-height: 2.9rem; }\\n\\n.form-purchase .send-button {\\n margin: 2.4rem 0;\\n width: 100%;\\n max-width: 15rem; }\\n\\n.form-purchase .purchase-buttons {\\n display: flex;\\n justify-content: flex-start;\\n margin: 2.4rem -0.5rem; }\\n\\n.form-purchase .purchase-buttons button {\\n flex: 0 1 33%;\\n margin: 0 0.5rem; }\\n\\n.form-purchase .nullify-block-row {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center; }\\n\\n.form-purchase .nullify-block-row .nullify-block-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin: 1rem 0;\\n width: 100%; }\\n\\n.form-purchase .nullify-block-row .nullify-block-buttons button {\\n flex: 0 1 25%;\\n margin: 0 0.5rem; }\\n\\n.form-purchase .time-cancel-block-row {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center; }\\n\\n.form-purchase .time-cancel-block-row .time-cancel-block-question {\\n margin-bottom: 1rem; }\\n\\n.form-purchase .time-cancel-block-row .input-block {\\n width: 25%; }\\n\\n.form-purchase .time-cancel-block-row label {\\n margin-bottom: 1rem; }\\n\\n.form-purchase .time-cancel-block-row .time-cancel-block-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin: 1rem 0;\\n width: 100%; }\\n\\n.form-purchase .time-cancel-block-row .time-cancel-block-buttons button {\\n flex: 0 1 25%;\\n margin: 0 0.5rem; }\\n\\n.progress-bar-container {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n padding: 0 3rem;\\n width: 100%;\\n height: 3rem; }\\n\\n.progress-bar-container .progress-bar {\\n position: absolute;\\n top: -0.7rem;\\n left: 0;\\n margin: 0 3rem;\\n width: calc(100% - 6rem);\\n height: 0.7rem; }\\n\\n.progress-bar-container .progress-bar .progress-bar-full {\\n height: 0.7rem; }\\n\\n.progress-bar-container .progress-labels {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n font-size: 1.2rem;\\n height: 100%; }\\n\\n.progress-bar-container .progress-time {\\n position: absolute;\\n top: -3rem;\\n left: 50%;\\n transform: translateX(-50%);\\n font-size: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHVyY2hhc2UvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxccHVyY2hhc2VcXHB1cmNoYXNlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXLEVBQUE7O0FBR2I7RUFDRSxjQUFjO0VBQ2QsdUJBQXVCO0VBQ3ZCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLGNBQWM7RUFDZCxzQkFBc0I7RUFDdEIsZUFBZTtFQUNmLG1CQUFtQixFQUFBOztBQUpyQjtJQU9JLGFBQWEsRUFBQTs7QUFQakI7TUFVTSxlQUFlLEVBQUE7O0FBVnJCO1FBYVEsb0JBQW9CLEVBQUE7O0FBYjVCO1FBaUJRLG1CQUFtQixFQUFBOztBQWpCM0I7UUFxQlEsYUFBYSxFQUFBOztBQXJCckI7SUEyQkksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGNBQWMsRUFBQTs7QUFyQ2xCO01Bd0NNLGlCQUFpQjtNQUNqQixhQUFhO01BQ2IsY0FBYyxFQUFBOztBQTFDcEI7UUE2Q1Esb0RBQTREO2dCQUE1RCw0Q0FBNEQsRUFBQTs7QUE3Q3BFO1FBaURRLGtEQUEwRDtnQkFBMUQsMENBQTBELEVBQUE7O0FBakRsRTtJQXVESSxhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLHNCQUFzQixFQUFBOztBQXpEMUI7TUE0RE0sZUFBZSxFQUFBOztBQTVEckI7UUErRFEsb0JBQW9CO1FBQ3BCLG1CQUFtQixFQUFBOztBQWhFM0I7UUFvRVEsa0JBQWtCO1FBQ2xCLHFCQUFxQixFQUFBOztBQXJFN0I7SUEyRUksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLGlCQUFpQjtJQUNqQixtQkFBbUIsRUFBQTs7QUFoRnZCO0lBb0ZJLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gsZ0JBQWdCLEVBQUE7O0FBdEZwQjtJQTBGSSxhQUFhO0lBQ2IsMkJBQTJCO0lBQzNCLHNCQUFzQixFQUFBOztBQTVGMUI7TUErRk0sYUFBYTtNQUNiLGdCQUFnQixFQUFBOztBQWhHdEI7SUFxR0ksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsdUJBQXVCLEVBQUE7O0FBeEczQjtNQTJHTSxhQUFhO01BQ2IsbUJBQW1CO01BQ25CLHVCQUF1QjtNQUN2QixjQUFjO01BQ2QsV0FBVyxFQUFBOztBQS9HakI7UUFrSFEsYUFBYTtRQUNiLGdCQUFnQixFQUFBOztBQW5IeEI7SUF5SEksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsdUJBQXVCLEVBQUE7O0FBNUgzQjtNQStITSxtQkFBbUIsRUFBQTs7QUEvSHpCO01BbUlNLFVBQVUsRUFBQTs7QUFuSWhCO01BdUlNLG1CQUFtQixFQUFBOztBQXZJekI7TUEySU0sYUFBYTtNQUNiLG1CQUFtQjtNQUNuQix1QkFBdUI7TUFDdkIsY0FBYztNQUNkLFdBQVcsRUFBQTs7QUEvSWpCO1FBa0pRLGFBQWE7UUFDYixnQkFBZ0IsRUFBQTs7QUFPeEI7RUFDRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULE9BQU87RUFDUCxlQUFlO0VBQ2YsV0FBVztFQUNYLFlBQVksRUFBQTs7QUFOZDtJQVNJLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osT0FBTztJQUNQLGNBQWM7SUFDZCx3QkFBd0I7SUFDeEIsY0FBYyxFQUFBOztBQWRsQjtNQWlCTSxjQUFjLEVBQUE7O0FBakJwQjtJQXNCSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixpQkFBaUI7SUFDakIsWUFBWSxFQUFBOztBQTFCaEI7SUE4Qkksa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixTQUFTO0lBQ1QsMkJBQTJCO0lBQzNCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvcHVyY2hhc2UvcHVyY2hhc2UuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uaGVhZCB7XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgbWFyZ2luOiAtM3JlbSAtM3JlbSAwO1xyXG59XHJcblxyXG4uZm9ybS1wdXJjaGFzZSB7XHJcbiAgZmxleDogMSAxIGF1dG87XHJcbiAgbWFyZ2luOiAxLjVyZW0gLTNyZW0gMDtcclxuICBwYWRkaW5nOiAwIDNyZW07XHJcbiAgb3ZlcmZsb3cteTogb3ZlcmxheTtcclxuXHJcbiAgLmlucHV0LWJsb2Nrcy1yb3cge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAuaW5wdXQtYmxvY2sge1xyXG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XHJcblxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2hlY2tib3gtYmxvY2sge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wdXJjaGFzZS1zZWxlY3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcclxuICAgIG1hcmdpbjogMS41cmVtIDAgMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICBoZWlnaHQ6IDEuM3JlbTtcclxuXHJcbiAgICAuYXJyb3cge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgICAgd2lkdGg6IDAuOHJlbTtcclxuICAgICAgaGVpZ2h0OiAwLjhyZW07XHJcblxyXG4gICAgICAmLmRvd24ge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1kb3duLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi51cCB7XHJcbiAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Fycm93LXVwLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZGl0aW9uYWwtZGV0YWlscyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xyXG4gICAgcGFkZGluZzogMC41cmVtIDAgMnJlbTtcclxuXHJcbiAgICA+IGRpdiB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IDI1JTtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnB1cmNoYXNlLXN0YXRlcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuOXJlbTtcclxuICB9XHJcblxyXG4gIC5zZW5kLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW46IDIuNHJlbSAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDE1cmVtO1xyXG4gIH1cclxuXHJcbiAgLnB1cmNoYXNlLWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgIG1hcmdpbjogMi40cmVtIC0wLjVyZW07XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgZmxleDogMCAxIDMzJTtcclxuICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5udWxsaWZ5LWJsb2NrLXJvdyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICAubnVsbGlmeS1ibG9jay1idXR0b25zIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbjogMXJlbSAwO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgZmxleDogMCAxIDI1JTtcclxuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudGltZS1jYW5jZWwtYmxvY2stcm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuICAgIC50aW1lLWNhbmNlbC1ibG9jay1xdWVzdGlvbiB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0LWJsb2NrIHtcclxuICAgICAgd2lkdGg6IDI1JTtcclxuICAgIH1cclxuXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnRpbWUtY2FuY2VsLWJsb2NrLWJ1dHRvbnMge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgbWFyZ2luOiAxcmVtIDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgYnV0dG9uIHtcclxuICAgICAgICBmbGV4OiAwIDEgMjUlO1xyXG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4ucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHBhZGRpbmc6IDAgM3JlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDNyZW07XHJcblxyXG4gIC5wcm9ncmVzcy1iYXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAtMC43cmVtO1xyXG4gICAgbGVmdDogMDtcclxuICAgIG1hcmdpbjogMCAzcmVtO1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDZyZW0pO1xyXG4gICAgaGVpZ2h0OiAwLjdyZW07XHJcblxyXG4gICAgLnByb2dyZXNzLWJhci1mdWxsIHtcclxuICAgICAgaGVpZ2h0OiAwLjdyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucHJvZ3Jlc3MtbGFiZWxzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcblxyXG4gIC5wcm9ncmVzcy10aW1lIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogLTNyZW07XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, OnInit, OnDestroy, NgZone, HostListener} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Location} from '@angular/common';\r\nimport {IntToMoneyPipe} from '../_helpers/pipes/int-to-money.pipe';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Component({\r\n selector: 'app-purchase',\r\n templateUrl: './purchase.component.html',\r\n styleUrls: ['./purchase.component.scss']\r\n})\r\nexport class PurchaseComponent implements OnInit, OnDestroy {\r\n\r\n isOpen = false;\r\n localAliases = [];\r\n\r\n currentWalletId;\r\n newPurchase = false;\r\n parentRouting;\r\n subRouting;\r\n historyBlock;\r\n\r\n purchaseForm = new FormGroup({\r\n description: new FormControl('', Validators.required),\r\n seller: new FormControl('', [Validators.required, (g: FormControl) => {\r\n if (g.value === this.variablesService.currentWallet.address) {\r\n return {'address_same': true};\r\n }\r\n return null;\r\n }, (g: FormControl) => {\r\n this.localAliases = [];\r\n if (g.value) {\r\n if (g.value.indexOf('@') !== 0) {\r\n this.isOpen = false;\r\n this.backend.validateAddress(g.value, (valid_status) => {\r\n this.ngZone.run(() => {\r\n if (valid_status === false) {\r\n g.setErrors(Object.assign({'address_not_valid': true}, g.errors));\r\n } else {\r\n if (g.hasError('address_not_valid')) {\r\n delete g.errors['address_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n return (g.hasError('address_not_valid')) ? {'address_not_valid': true} : null;\r\n } else {\r\n this.isOpen = true;\r\n this.localAliases = this.variablesService.aliases.filter((item) => {\r\n return item.name.indexOf(g.value) > -1;\r\n });\r\n if (!(/^@?[a-z0-9\\.\\-]{6,25}$/.test(g.value))) {\r\n g.setErrors(Object.assign({'alias_not_valid': true}, g.errors));\r\n } else {\r\n this.backend.getAliasByName(g.value.replace('@', ''), (alias_status, alias_data) => {\r\n this.ngZone.run(() => {\r\n if (alias_status) {\r\n if (alias_data.address === this.variablesService.currentWallet.address) {\r\n g.setErrors(Object.assign({'address_same': true}, g.errors));\r\n }\r\n if (g.hasError('alias_not_valid')) {\r\n delete g.errors['alias_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n } else {\r\n g.setErrors(Object.assign({'alias_not_valid': true}, g.errors));\r\n }\r\n });\r\n });\r\n }\r\n return (g.hasError('alias_not_valid')) ? {'alias_not_valid': true} : null;\r\n }\r\n }\r\n return null;\r\n }]),\r\n amount: new FormControl(null, [Validators.required, (g: FormControl) => {\r\n if (parseFloat(g.value) === 0) {\r\n return {'amount_zero': true};\r\n }\r\n return null;\r\n }]),\r\n yourDeposit: new FormControl(null, Validators.required),\r\n sellerDeposit: new FormControl(null, Validators.required),\r\n sameAmount: new FormControl({value: false, disabled: false}),\r\n comment: new FormControl(''),\r\n fee: new FormControl(this.variablesService.default_fee),\r\n time: new FormControl({value: 12, disabled: false}),\r\n timeCancel: new FormControl({value: 12, disabled: false}),\r\n payment: new FormControl('')\r\n });\r\n\r\n additionalOptions = false;\r\n currentContract = null;\r\n heightAppEvent;\r\n showTimeSelect = false;\r\n showNullify = false;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private location: Location,\r\n private intToMoneyPipe: IntToMoneyPipe\r\n ) {\r\n }\r\n\r\n checkAndChangeHistory() {\r\n if (this.currentContract.state === 201) {\r\n this.historyBlock = this.variablesService.currentWallet.history.find(item => item.tx_type === 8 && item.contract[0].contract_id === this.currentContract.contract_id && item.contract[0].is_a === this.currentContract.is_a);\r\n } else if (this.currentContract.state === 601) {\r\n this.historyBlock = this.variablesService.currentWallet.history.find(item => item.tx_type === 12 && item.contract[0].contract_id === this.currentContract.contract_id && item.contract[0].is_a === this.currentContract.is_a);\r\n }\r\n }\r\n\r\n addressMouseDown(e) {\r\n if (e['button'] === 0 && this.purchaseForm.get('seller').value && this.purchaseForm.get('seller').value.indexOf('@') === 0) {\r\n this.isOpen = true;\r\n }\r\n }\r\n\r\n setAlias(alias) {\r\n this.purchaseForm.get('seller').setValue(alias);\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(targetElement) {\r\n if (targetElement.id !== 'purchase-seller' && this.isOpen) {\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(params => {\r\n this.currentWalletId = params['id'];\r\n });\r\n this.subRouting = this.route.params.subscribe(params => {\r\n if (params.hasOwnProperty('id')) {\r\n this.currentContract = this.variablesService.currentWallet.getContract(params['id']);\r\n this.purchaseForm.controls['seller'].setValidators([]);\r\n this.purchaseForm.updateValueAndValidity();\r\n this.purchaseForm.setValue({\r\n description: this.currentContract.private_detailes.t,\r\n seller: this.currentContract.private_detailes.b_addr,\r\n amount: this.intToMoneyPipe.transform(this.currentContract.private_detailes.to_pay),\r\n yourDeposit: this.intToMoneyPipe.transform(this.currentContract.private_detailes.a_pledge),\r\n sellerDeposit: this.intToMoneyPipe.transform(this.currentContract.private_detailes.b_pledge),\r\n sameAmount: this.currentContract.private_detailes.to_pay.isEqualTo(this.currentContract.private_detailes.b_pledge),\r\n comment: this.currentContract.private_detailes.c,\r\n fee: this.variablesService.default_fee,\r\n time: 12,\r\n timeCancel: 12,\r\n payment: this.currentContract.payment_id\r\n });\r\n this.purchaseForm.get('sameAmount').disable();\r\n this.newPurchase = false;\r\n\r\n if (this.currentContract.is_new) {\r\n if (this.currentContract.is_a && this.currentContract.state === 2) {\r\n this.currentContract.state = 120;\r\n }\r\n if (this.currentContract.state === 130 && this.currentContract.cancel_expiration_time !== 0 && this.currentContract.cancel_expiration_time < this.variablesService.exp_med_ts) {\r\n this.currentContract.state = 2;\r\n }\r\n this.variablesService.settings.viewedContracts = (this.variablesService.settings.viewedContracts) ? this.variablesService.settings.viewedContracts : [];\r\n let findViewedCont = false;\r\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\r\n if (this.variablesService.settings.viewedContracts[j].contract_id === this.currentContract.contract_id && this.variablesService.settings.viewedContracts[j].is_a === this.currentContract.is_a) {\r\n this.variablesService.settings.viewedContracts[j].state = this.currentContract.state;\r\n findViewedCont = true;\r\n break;\r\n }\r\n }\r\n if (!findViewedCont) {\r\n this.variablesService.settings.viewedContracts.push({\r\n contract_id: this.currentContract.contract_id,\r\n is_a: this.currentContract.is_a,\r\n state: this.currentContract.state\r\n });\r\n }\r\n this.currentContract.is_new = false;\r\n setTimeout(() => {\r\n this.variablesService.currentWallet.recountNewContracts();\r\n }, 0);\r\n }\r\n this.checkAndChangeHistory();\r\n } else {\r\n this.newPurchase = true;\r\n }\r\n });\r\n this.heightAppEvent = this.variablesService.getHeightAppEvent.subscribe((newHeight: number) => {\r\n if (this.currentContract && this.currentContract.state === 201 && this.currentContract.height !== 0 && (newHeight - this.currentContract.height) >= 10) {\r\n this.currentContract.state = 2;\r\n this.currentContract.is_new = true;\r\n this.variablesService.currentWallet.recountNewContracts();\r\n } else if (this.currentContract && this.currentContract.state === 601 && this.currentContract.height !== 0 && (newHeight - this.currentContract.height) >= 10) {\r\n this.currentContract.state = 6;\r\n this.currentContract.is_new = true;\r\n this.variablesService.currentWallet.recountNewContracts();\r\n }\r\n });\r\n }\r\n\r\n toggleOptions() {\r\n this.additionalOptions = !this.additionalOptions;\r\n }\r\n\r\n getProgressBarWidth() {\r\n let progress = '0';\r\n if (!this.newPurchase) {\r\n if (this.currentContract) {\r\n if (this.currentContract.state === 1) {\r\n progress = '10%';\r\n }\r\n if (this.currentContract.state === 201) {\r\n progress = '25%';\r\n }\r\n if ([120, 2].indexOf(this.currentContract.state) !== -1) {\r\n progress = '50%';\r\n }\r\n if ([5, 601].indexOf(this.currentContract.state) !== -1) {\r\n progress = '75%';\r\n }\r\n if ([110, 130, 140, 3, 4, 6].indexOf(this.currentContract.state) !== -1) {\r\n progress = '100%';\r\n }\r\n }\r\n }\r\n return progress;\r\n }\r\n\r\n sameAmountChange() {\r\n if (this.purchaseForm.get('sameAmount').value) {\r\n this.purchaseForm.get('sellerDeposit').clearValidators();\r\n this.purchaseForm.get('sellerDeposit').updateValueAndValidity();\r\n } else {\r\n this.purchaseForm.get('sellerDeposit').setValidators([Validators.required]);\r\n this.purchaseForm.get('sellerDeposit').updateValueAndValidity();\r\n }\r\n }\r\n\r\n createPurchase() {\r\n if (this.purchaseForm.valid) {\r\n const sellerDeposit = this.purchaseForm.get('sameAmount').value ? this.purchaseForm.get('amount').value : this.purchaseForm.get('sellerDeposit').value;\r\n if (this.purchaseForm.get('seller').value.indexOf('@') !== 0) {\r\n this.backend.createProposal(\r\n this.variablesService.currentWallet.wallet_id,\r\n this.purchaseForm.get('description').value,\r\n this.purchaseForm.get('comment').value,\r\n this.variablesService.currentWallet.address,\r\n this.purchaseForm.get('seller').value,\r\n this.purchaseForm.get('amount').value,\r\n this.purchaseForm.get('yourDeposit').value,\r\n sellerDeposit,\r\n this.purchaseForm.get('time').value,\r\n this.purchaseForm.get('payment').value,\r\n (create_status) => {\r\n if (create_status) {\r\n this.back();\r\n }\r\n });\r\n } else {\r\n this.backend.getAliasByName(this.purchaseForm.get('seller').value.replace('@', ''), (alias_status, alias_data) => {\r\n this.ngZone.run(() => {\r\n if (alias_status === false) {\r\n this.ngZone.run(() => {\r\n this.purchaseForm.get('seller').setErrors({'alias_not_valid': true});\r\n });\r\n } else {\r\n this.backend.createProposal(\r\n this.variablesService.currentWallet.wallet_id,\r\n this.purchaseForm.get('description').value,\r\n this.purchaseForm.get('comment').value,\r\n this.variablesService.currentWallet.address,\r\n alias_data.address,\r\n this.purchaseForm.get('amount').value,\r\n this.purchaseForm.get('yourDeposit').value,\r\n sellerDeposit,\r\n this.purchaseForm.get('time').value,\r\n this.purchaseForm.get('payment').value,\r\n (create_status) => {\r\n if (create_status) {\r\n this.back();\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n acceptState() {\r\n this.backend.acceptProposal(this.currentWalletId, this.currentContract.contract_id, (accept_status) => {\r\n if (accept_status) {\r\n this.modalService.prepareModal('info', 'PURCHASE.ACCEPT_STATE_WAIT_BIG');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n ignoredContract() {\r\n this.variablesService.settings.notViewedContracts = (this.variablesService.settings.notViewedContracts) ? this.variablesService.settings.notViewedContracts : [];\r\n let findViewedCont = false;\r\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\r\n if (this.variablesService.settings.notViewedContracts[j].contract_id === this.currentContract.contract_id && this.variablesService.settings.notViewedContracts[j].is_a === this.currentContract.is_a) {\r\n this.variablesService.settings.notViewedContracts[j].state = 110;\r\n this.variablesService.settings.notViewedContracts[j].time = this.currentContract.expiration_time;\r\n findViewedCont = true;\r\n break;\r\n }\r\n }\r\n if (!findViewedCont) {\r\n this.variablesService.settings.notViewedContracts.push({\r\n contract_id: this.currentContract.contract_id,\r\n is_a: this.currentContract.is_a,\r\n state: 110,\r\n time: this.currentContract.expiration_time\r\n });\r\n }\r\n this.currentContract.is_new = true;\r\n this.currentContract.state = 110;\r\n this.currentContract.time = this.currentContract.expiration_time;\r\n\r\n this.variablesService.currentWallet.recountNewContracts();\r\n this.modalService.prepareModal('info', 'PURCHASE.IGNORED_ACCEPT');\r\n this.back();\r\n }\r\n\r\n productNotGot() {\r\n this.backend.releaseProposal(this.currentWalletId, this.currentContract.contract_id, 'REL_B', (release_status) => {\r\n if (release_status) {\r\n this.modalService.prepareModal('info', 'PURCHASE.BURN_PROPOSAL');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n dealsDetailsFinish() {\r\n this.backend.releaseProposal(this.currentWalletId, this.currentContract.contract_id, 'REL_N', (release_status) => {\r\n if (release_status) {\r\n this.modalService.prepareModal('success', 'PURCHASE.SUCCESS_FINISH_PROPOSAL');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n dealsDetailsCancel() {\r\n this.backend.requestCancelContract(this.currentWalletId, this.currentContract.contract_id, this.purchaseForm.get('timeCancel').value, (cancel_status) => {\r\n if (cancel_status) {\r\n this.modalService.prepareModal('info', 'PURCHASE.SEND_CANCEL_PROPOSAL');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n dealsDetailsDontCanceling() {\r\n this.variablesService.settings.notViewedContracts = this.variablesService.settings.notViewedContracts ? this.variablesService.settings.notViewedContracts : [];\r\n let findViewedCont = false;\r\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\r\n if (this.variablesService.settings.notViewedContracts[j].contract_id === this.currentContract.contract_id && this.variablesService.settings.notViewedContracts[j].is_a === this.currentContract.is_a) {\r\n this.variablesService.settings.notViewedContracts[j].state = 130;\r\n this.variablesService.settings.notViewedContracts[j].time = this.currentContract.cancel_expiration_time;\r\n findViewedCont = true;\r\n break;\r\n }\r\n }\r\n if (!findViewedCont) {\r\n this.variablesService.settings.notViewedContracts.push({\r\n contract_id: this.currentContract.contract_id,\r\n is_a: this.currentContract.is_a,\r\n state: 130,\r\n time: this.currentContract.cancel_expiration_time\r\n });\r\n }\r\n this.currentContract.is_new = true;\r\n this.currentContract.state = 130;\r\n this.currentContract.time = this.currentContract.cancel_expiration_time;\r\n this.variablesService.currentWallet.recountNewContracts();\r\n this.modalService.prepareModal('info', 'PURCHASE.IGNORED_CANCEL');\r\n this.back();\r\n }\r\n\r\n dealsDetailsSellerCancel() {\r\n this.backend.acceptCancelContract(this.currentWalletId, this.currentContract.contract_id, (accept_status) => {\r\n if (accept_status) {\r\n this.modalService.prepareModal('info', 'PURCHASE.DEALS_CANCELED_WAIT');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n this.subRouting.unsubscribe();\r\n this.heightAppEvent.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n \\\"qr-code\\\"\\r\\n
\\r\\n
{{variablesService.currentWallet.address}}
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.wrap-qr {\\n display: flex;\\n flex-direction: column;\\n align-items: center; }\\n\\n.wrap-qr img {\\n margin: 4rem 0; }\\n\\n.wrap-qr .wrap-address {\\n display: flex;\\n align-items: center;\\n font-size: 1.4rem;\\n line-height: 2.7rem; }\\n\\n.wrap-qr .wrap-address .btn-copy-address {\\n margin-left: 1.2rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.wrap-qr .wrap-address .btn-copy-address.copy {\\n -webkit-mask: url('copy.svg') no-repeat center;\\n mask: url('copy.svg') no-repeat center; }\\n\\n.wrap-qr .wrap-address .btn-copy-address.copy:hover {\\n opacity: 0.75; }\\n\\n.wrap-qr .wrap-address .btn-copy-address.copied {\\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\\n mask: url('complete-testwallet.svg') no-repeat center; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVjZWl2ZS9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxyZWNlaXZlXFxyZWNlaXZlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixtQkFBbUIsRUFBQTs7QUFIckI7SUFNSSxjQUFjLEVBQUE7O0FBTmxCO0lBVUksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsbUJBQW1CLEVBQUE7O0FBYnZCO01BZ0JNLG1CQUFtQjtNQUNuQixhQUFhO01BQ2IsY0FBYyxFQUFBOztBQWxCcEI7UUFxQlEsOENBQXVEO2dCQUF2RCxzQ0FBdUQsRUFBQTs7QUFyQi9EO1VBd0JVLGFBQWEsRUFBQTs7QUF4QnZCO1FBNkJRLDZEQUFzRTtnQkFBdEUscURBQXNFLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9yZWNlaXZlL3JlY2VpdmUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi53cmFwLXFyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgaW1nIHtcclxuICAgIG1hcmdpbjogNHJlbSAwO1xyXG4gIH1cclxuXHJcbiAgLndyYXAtYWRkcmVzcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuXHJcbiAgICAuYnRuLWNvcHktYWRkcmVzcyB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07XHJcbiAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgIGhlaWdodDogMS43cmVtO1xyXG5cclxuICAgICAgJi5jb3B5IHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2NvcHkuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgIG9wYWNpdHk6IDAuNzU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmNvcGllZCB7XHJcbiAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9jb21wbGV0ZS10ZXN0d2FsbGV0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */\"","import {Component, OnInit, OnDestroy} from '@angular/core';\r\nimport QRCode from 'qrcode';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {RCV_ADDR_QR_SCALE} from '../_shared/constants';\r\n\r\n@Component({\r\n selector: 'app-receive',\r\n templateUrl: './receive.component.html',\r\n styleUrls: ['./receive.component.scss']\r\n})\r\nexport class ReceiveComponent implements OnInit, OnDestroy {\r\n qrImageSrc: string;\r\n parentRouting;\r\n copyAnimation = false;\r\n copyAnimationTimeout;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private backend: BackendService,\r\n public variablesService: VariablesService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(() => {\r\n QRCode.toDataURL(this.variablesService.currentWallet.address, {\r\n width: 106 * RCV_ADDR_QR_SCALE,\r\n height: 106 * RCV_ADDR_QR_SCALE\r\n }).then(url => {\r\n this.qrImageSrc = url;\r\n }).catch(err => {\r\n console.error(err);\r\n });\r\n });\r\n }\r\n\r\n public copyAddress() {\r\n this.backend.setClipboard(this.variablesService.currentWallet.address);\r\n this.copyAnimation = true;\r\n this.copyAnimationTimeout = window.setTimeout(() => {\r\n this.copyAnimation = false;\r\n }, 2000);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n clearTimeout(this.copyAnimationTimeout);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\\r\\n {{ 'BREADCRUMBS.RESTORE_WALLET' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\\r\\n
\\r\\n
\\r\\n
= variablesService.maxWalletNameLength\\\">\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.KEY_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.KEY_NOT_VALID' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.INCORRECT_PASSWORD' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'RESTORE_WALLET.OK' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \":host {\\n position: relative; }\\n\\n.form-restore {\\n margin: 2.4rem 0;\\n width: 100%; }\\n\\n.form-restore .input-block.half-block {\\n width: 50%; }\\n\\n.form-restore .wrap-buttons {\\n display: flex;\\n margin: 2.5rem -0.7rem;\\n width: 50%; }\\n\\n.form-restore .wrap-buttons button {\\n margin: 0 0.7rem; }\\n\\n.form-restore .wrap-buttons button.transparent-button {\\n flex-basis: 50%; }\\n\\n.form-restore .wrap-buttons button.select-button {\\n flex-basis: 60%; }\\n\\n.form-restore .wrap-buttons button.create-button {\\n flex: 1 1 50%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVzdG9yZS13YWxsZXQvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxccmVzdG9yZS13YWxsZXRcXHJlc3RvcmUtd2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVcsRUFBQTs7QUFGYjtJQU9NLFVBQVUsRUFBQTs7QUFQaEI7SUFZSSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLFVBQVUsRUFBQTs7QUFkZDtNQWlCTSxnQkFBZ0IsRUFBQTs7QUFqQnRCO1FBb0JRLGVBQWUsRUFBQTs7QUFwQnZCO1FBd0JRLGVBQWUsRUFBQTs7QUF4QnZCO1FBNEJRLGFBQWEsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3Jlc3RvcmUtd2FsbGV0L3Jlc3RvcmUtd2FsbGV0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmZvcm0tcmVzdG9yZSB7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgLmlucHV0LWJsb2NrIHtcclxuXHJcbiAgICAmLmhhbGYtYmxvY2sge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLndyYXAtYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luOiAyLjVyZW0gLTAuN3JlbTtcclxuICAgIHdpZHRoOiA1MCU7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgbWFyZ2luOiAwIDAuN3JlbTtcclxuXHJcbiAgICAgICYudHJhbnNwYXJlbnQtYnV0dG9uIHtcclxuICAgICAgICBmbGV4LWJhc2lzOiA1MCU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuc2VsZWN0LWJ1dHRvbiB7XHJcbiAgICAgICAgZmxleC1iYXNpczogNjAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmNyZWF0ZS1idXR0b24ge1xyXG4gICAgICAgIGZsZXg6IDEgMSA1MCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { ModalService } from '../_helpers/services/modal.service';\r\nimport { Wallet } from '../_helpers/models/wallet.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subject } from 'rxjs/internal/Subject';\r\nimport { debounceTime, distinctUntilChanged, pairwise, startWith, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-restore-wallet',\r\n templateUrl: './restore-wallet.component.html',\r\n styleUrls: ['./restore-wallet.component.scss'],\r\n})\r\nexport class RestoreWalletComponent implements OnInit, OnDestroy {\r\n restoreForm = new FormGroup(\r\n {\r\n name: new FormControl('', [\r\n Validators.required,\r\n (g: FormControl) => {\r\n for (let i = 0; i < this.variablesService.wallets.length; i++) {\r\n if (g.value === this.variablesService.wallets[i].name) {\r\n return { duplicate: true };\r\n }\r\n }\r\n return null;\r\n },\r\n ]),\r\n key: new FormControl('', Validators.required),\r\n password: new FormControl(\r\n '',\r\n Validators.pattern(this.variablesService.pattern)\r\n ),\r\n confirm: new FormControl(''),\r\n seedPassword: new FormControl('', Validators.pattern(this.variablesService.pattern)),\r\n },\r\n function (g: FormGroup) {\r\n return g.get('password').value === g.get('confirm').value\r\n ? null\r\n : { confirm_mismatch: true };\r\n }\r\n );\r\n\r\n wallet = {\r\n id: '',\r\n };\r\n\r\n walletSaved = false;\r\n walletSavedName = '';\r\n progressWidth = '9rem';\r\n seedPhraseInfo = null;\r\n unsubscribeAll = new Subject();\r\n\r\n constructor(\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.checkValidSeedPhrasePassword();\r\n this.changeDetectionSeedPhrasePassword();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next(true);\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n changeDetectionSeedPhrasePassword() {\r\n this.restoreForm.controls.seedPassword.valueChanges\r\n .pipe(startWith(null), pairwise(), takeUntil(this.unsubscribeAll))\r\n .subscribe(() => {\r\n this.checkValidSeedPhrasePassword();\r\n });\r\n this.restoreForm.controls.key.valueChanges\r\n .pipe(startWith(null), pairwise(), takeUntil(this.unsubscribeAll))\r\n .subscribe(() => {\r\n this.checkValidSeedPhrasePassword();\r\n });\r\n }\r\n\r\n checkValidSeedPhrasePassword() {\r\n const seed_password = this.restoreForm.controls.seedPassword.value;\r\n const seed_phrase = this.restoreForm.controls.key.value;\r\n this.backend.getSeedPhraseInfo({seed_phrase, seed_password}, (status, data) => {\r\n this.ngZone.run(() => {\r\n this.seedPhraseInfo = data;\r\n });\r\n });\r\n }\r\n\r\n createWallet() {\r\n this.ngZone.run(() => {\r\n this.progressWidth = '100%';\r\n this.runWallet();\r\n });\r\n }\r\n\r\n saveWallet() {\r\n if (\r\n this.restoreForm.valid &&\r\n this.restoreForm.get('name').value.length <=\r\n this.variablesService.maxWalletNameLength\r\n ) {\r\n this.backend.isValidRestoreWalletText(\r\n {\r\n seed_phrase: this.restoreForm.get('key').value,\r\n seed_password: this.restoreForm.get('seedPassword').value,\r\n },\r\n (valid_status, valid_data) => {\r\n if (valid_data !== 'TRUE') {\r\n this.ngZone.run(() => {\r\n this.restoreForm.get('key').setErrors({ key_not_valid: true });\r\n });\r\n } else {\r\n this.backend.saveFileDialog(\r\n this.translate.instant('RESTORE_WALLET.CHOOSE_PATH'),\r\n '*',\r\n this.variablesService.settings.default_path,\r\n (save_status, save_data) => {\r\n if (save_status) {\r\n this.variablesService.settings.default_path = save_data.path.substr(\r\n 0,\r\n save_data.path.lastIndexOf('/')\r\n );\r\n this.walletSavedName = save_data.path.substr(\r\n save_data.path.lastIndexOf('/') + 1,\r\n save_data.path.length - 1\r\n );\r\n this.backend.restoreWallet(\r\n save_data.path,\r\n this.restoreForm.get('password').value,\r\n this.restoreForm.get('key').value,\r\n this.restoreForm.get('seedPassword').value,\r\n (restore_status, restore_data) => {\r\n if (restore_status) {\r\n this.wallet.id = restore_data.wallet_id;\r\n this.variablesService.opening_wallet = new Wallet(\r\n restore_data.wallet_id,\r\n this.restoreForm.get('name').value,\r\n this.restoreForm.get('password').value,\r\n restore_data['wi'].path,\r\n restore_data['wi'].address,\r\n restore_data['wi'].balance,\r\n restore_data['wi'].unlocked_balance,\r\n restore_data['wi'].mined_total,\r\n restore_data['wi'].tracking_hey\r\n );\r\n this.variablesService.opening_wallet.is_auditable =\r\n restore_data['wi'].is_auditable;\r\n this.variablesService.opening_wallet.is_watch_only =\r\n restore_data['wi'].is_watch_only;\r\n this.variablesService.opening_wallet.currentPage = 1;\r\n this.variablesService.opening_wallet.alias = this.backend.getWalletAlias(\r\n this.variablesService.opening_wallet.address\r\n );\r\n this.variablesService.opening_wallet.pages = new Array(\r\n 1\r\n ).fill(1);\r\n this.variablesService.opening_wallet.totalPages = 1;\r\n this.variablesService.opening_wallet.currentPage = 1;\r\n this.variablesService.opening_wallet.total_history_item = 0;\r\n this.variablesService.opening_wallet.restore = true;\r\n if (\r\n restore_data.recent_history &&\r\n restore_data.recent_history.history\r\n ) {\r\n this.variablesService.opening_wallet.totalPages = Math.ceil(\r\n restore_data.recent_history.total_history_items /\r\n this.variablesService.count\r\n );\r\n this.variablesService.opening_wallet.totalPages >\r\n this.variablesService.maxPages\r\n ? (this.variablesService.opening_wallet.pages = new Array(\r\n 5\r\n )\r\n .fill(1)\r\n .map((value, index) => value + index))\r\n : (this.variablesService.opening_wallet.pages = new Array(\r\n this.variablesService.opening_wallet.totalPages\r\n )\r\n .fill(1)\r\n .map((value, index) => value + index));\r\n this.variablesService.opening_wallet.prepareHistory(\r\n restore_data.recent_history.history\r\n );\r\n }\r\n this.backend.getContracts(\r\n this.variablesService.opening_wallet.wallet_id,\r\n (contracts_status, contracts_data) => {\r\n if (\r\n contracts_status &&\r\n contracts_data.hasOwnProperty('contracts')\r\n ) {\r\n this.ngZone.run(() => {\r\n this.variablesService.opening_wallet.prepareContractsAfterOpen(\r\n contracts_data.contracts,\r\n this.variablesService.exp_med_ts,\r\n this.variablesService.height_app,\r\n this.variablesService.settings\r\n .viewedContracts,\r\n this.variablesService.settings\r\n .notViewedContracts\r\n );\r\n });\r\n }\r\n }\r\n );\r\n this.ngZone.run(() => {\r\n this.walletSaved = true;\r\n this.progressWidth = '50%';\r\n });\r\n } else {\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'RESTORE_WALLET.NOT_CORRECT_FILE_OR_PASSWORD'\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n runWallet() {\r\n // add flag when wallet was restored form seed\r\n this.variablesService.after_sync_request[this.wallet.id] = true;\r\n let exists = false;\r\n this.variablesService.wallets.forEach((wallet) => {\r\n if (wallet.address === this.variablesService.opening_wallet.address) {\r\n exists = true;\r\n }\r\n });\r\n if (!exists) {\r\n this.backend.runWallet(this.wallet.id, (run_status, run_data) => {\r\n if (run_status) {\r\n this.variablesService.wallets.push(\r\n this.variablesService.opening_wallet\r\n );\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet.id]);\r\n });\r\n } else {\r\n console.log(run_data['error_code']);\r\n }\r\n });\r\n } else {\r\n this.variablesService.opening_wallet = null;\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN'\r\n );\r\n this.backend.closeWallet(this.wallet.id, () => {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\\r\\n {{ 'BREADCRUMBS.SAVE_PHRASE' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\\r\\n
\\r\\n
\\r\\n
= variablesService.maxWalletNameLength\\\">\\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\\r\\n

\\r\\n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }}\\r\\n \\r\\n 0\\\">{{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
= 1 && (index + 1) <= 7 || (index + 1) >= 15 && (index + 1) <= 21\\\">\\r\\n {{(index + 1) + '. ' + word}}
\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \":host {\\n position: relative; }\\n\\n.content {\\n padding: 3.2rem 3rem 3rem; }\\n\\n.scrolled-content, .content {\\n height: 100%;\\n overflow-y: auto; }\\n\\n.mt-2 {\\n margin-top: 2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VlZC1waHJhc2UvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcc2VlZC1waHJhc2VcXHNlZWQtcGhyYXNlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UseUJBQXlCLEVBQUE7O0FBRTNCO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQixFQUFBOztBQUdsQjtFQUNFLGdCQUFnQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2VlZC1waHJhc2Uvc2VlZC1waHJhc2UuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uY29udGVudCB7XHJcbiAgcGFkZGluZzogMy4ycmVtIDNyZW0gM3JlbTtcclxufVxyXG4uc2Nyb2xsZWQtY29udGVudCwgLmNvbnRlbnQge1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG59XHJcblxyXG4ubXQtMiB7XHJcbiAgbWFyZ2luLXRvcDogMnJlbTtcclxufVxyXG5cclxuIl19 */\"","import {Component, NgZone, OnDestroy, OnInit} from '@angular/core';\r\nimport {Location} from '@angular/common';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-seed-phrase',\r\n templateUrl: './seed-phrase.component.html',\r\n styleUrls: ['./seed-phrase.component.scss']\r\n})\r\nexport class SeedPhraseComponent implements OnInit, OnDestroy {\r\n\r\n queryRouting;\r\n seedPhrase = '';\r\n showSeed = false;\r\n wallet_id: number;\r\n seedPhraseCopied = false;\r\n progressWidth = '66%';\r\n\r\n detailsForm = new FormGroup({\r\n name: new FormControl('', [\r\n Validators.required,\r\n (g: FormControl) => {\r\n for (let i = 0; i < this.variablesService.wallets.length; i++) {\r\n if (g.value === this.variablesService.wallets[i].name) {\r\n if (\r\n this.variablesService.wallets[i].wallet_id ===\r\n this.variablesService.currentWallet.wallet_id\r\n ) {\r\n return { same: true };\r\n } else {\r\n return { duplicate: true };\r\n }\r\n }\r\n }\r\n return null;\r\n },\r\n ]),\r\n path: new FormControl(''),\r\n });\r\n\r\n seedPhraseForm = new FormGroup(\r\n {\r\n password: new FormControl(\r\n '',\r\n Validators.pattern(this.variablesService.pattern)\r\n ),\r\n confirmPassword: new FormControl(\r\n '',\r\n Validators.pattern(this.variablesService.pattern)\r\n ),\r\n },\r\n { validators: this.checkPasswords }\r\n );\r\n\r\n checkPasswords(group: FormGroup) {\r\n const pass = group.controls.password.value;\r\n const confirmPass = group.controls.confirmPassword.value;\r\n\r\n return pass === confirmPass ? null : { notSame: true };\r\n }\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private location: Location,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.showSeed = false;\r\n this.getWalletId();\r\n this.setWalletInfoNamePath();\r\n }\r\n\r\n private setWalletInfoNamePath() {\r\n this.detailsForm\r\n .get('name')\r\n .setValue(this.variablesService.opening_wallet.name);\r\n this.detailsForm\r\n .get('path')\r\n .setValue(this.variablesService.opening_wallet.path);\r\n }\r\n\r\n private getWalletId() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.wallet_id) {\r\n this.wallet_id = params.wallet_id;\r\n }\r\n });\r\n }\r\n\r\n runWallet() {\r\n let exists = false;\r\n this.variablesService.wallets.forEach((wallet) => {\r\n if (wallet.address === this.variablesService.opening_wallet.address) {\r\n exists = true;\r\n }\r\n });\r\n if (!exists) {\r\n this.backend.runWallet(this.wallet_id, (run_status, run_data) => {\r\n if (run_status) {\r\n this.variablesService.wallets.push(this.variablesService.opening_wallet);\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet_id]);\r\n });\r\n } else {\r\n console.log(run_data['error_code']);\r\n }\r\n });\r\n } else {\r\n this.variablesService.opening_wallet = null;\r\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\r\n this.backend.closeWallet(this.wallet_id, () => {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n });\r\n }\r\n }\r\n\r\n copySeedPhrase() {\r\n this.backend.setClipboard(this.seedPhrase, () => {\r\n this.ngZone.run(() => {\r\n this.seedPhraseCopied = true;\r\n });\r\n });\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n showSeedPhrase() {\r\n this.showSeed = true;\r\n this.progressWidth = '100%';\r\n }\r\n\r\n onSubmitSeed() {\r\n if (this.seedPhraseForm.valid) {\r\n this.showSeedPhrase();\r\n const wallet_id = this.wallet_id;\r\n const seed_password = this.seedPhraseForm.controls.password.value;\r\n this.backend.getSmartWalletInfo(\r\n { wallet_id, seed_password },\r\n (status, data) => {\r\n if (data.hasOwnProperty('seed_phrase')) {\r\n this.ngZone.run(() => {\r\n this.seedPhrase = data['seed_phrase'].trim();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.queryRouting.unsubscribe();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n {{ 'CONFIRM.TITLE' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ 'CONFIRM.MESSAGE.SEND' | translate }}
\\r\\n
{{ +form.get('amount').value }} {{variablesService.defaultCurrency}}
\\r\\n
\\r\\n
\\r\\n
{{ 'CONFIRM.MESSAGE.FROM' | translate }}
\\r\\n
{{ variablesService.currentWallet.address }}
\\r\\n
\\r\\n
\\r\\n
{{ 'CONFIRM.MESSAGE.TO' | translate }}
\\r\\n
{{ form.get('address').value }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
{{ 'CONFIRM.MESSAGE.COMMENT' | translate }}
\\r\\n
{{ form.get('comment').value }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'LOGIN.FORM_ERRORS.PASS_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'LOGIN.FORM_ERRORS.MISMATCH' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: rgba(255, 255, 255, 0.25); }\\n\\n.modal {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n background-position: center;\\n background-size: 200%;\\n padding: 0.3rem 3rem 3rem 3rem;\\n width: 64rem; }\\n\\n.modal .title {\\n padding: 1.4rem 0;\\n font-size: 1.8rem;\\n line-height: 3rem; }\\n\\n.modal .content {\\n display: flex;\\n font-size: 1.4rem; }\\n\\n.modal .content .message-container {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n margin: 1.4rem 3rem 6.2rem 0; }\\n\\n.modal .content .message-container .message-block {\\n display: flex;\\n margin-bottom: 1rem; }\\n\\n.modal .content .message-container .message-block:first-child .message-label {\\n line-height: 4rem; }\\n\\n.modal .content .message-container .message-block:first-child .message-text {\\n line-height: 4rem; }\\n\\n.modal .content .message-container .message-block:last-child {\\n margin-bottom: 0; }\\n\\n.modal .content .message-container .message-block .message-label {\\n min-width: 6.7rem;\\n line-height: 2rem; }\\n\\n.modal .content .message-container .message-block .message-text {\\n overflow-wrap: break-word;\\n margin-left: 4.8rem;\\n width: 43.4rem;\\n line-height: 2rem; }\\n\\n.modal .content .message-container .message-block.confirm-master-pass {\\n width: 100%;\\n margin: 2rem 0; }\\n\\n.modal .content .message-container .message-block.confirm-master-pass .input-block {\\n width: 100%; }\\n\\n.modal .wrapper-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: space-between; }\\n\\n.modal .wrapper-buttons button {\\n width: 100%;\\n max-width: 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VuZC1tb2RhbC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzZW5kLW1vZGFsXFxzZW5kLW1vZGFsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUMsRUFBQTs7QUFFdkM7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QiwyQkFBMkI7RUFDM0IscUJBQXFCO0VBQ3JCLDhCQUE4QjtFQUM5QixZQUFZLEVBQUE7O0FBUGQ7SUFVSSxpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQixFQUFBOztBQVpyQjtJQWdCSSxhQUFhO0lBQ2IsaUJBQWlCLEVBQUE7O0FBakJyQjtNQW9CTSxhQUFhO01BQ2Isc0JBQXNCO01BQ3RCLHVCQUF1QjtNQUN2Qix1QkFBdUI7TUFDdkIsNEJBQTRCLEVBQUE7O0FBeEJsQztRQTJCUSxhQUFhO1FBQ2IsbUJBQW1CLEVBQUE7O0FBNUIzQjtVQWlDWSxpQkFBaUIsRUFBQTs7QUFqQzdCO1VBcUNZLGlCQUFpQixFQUFBOztBQXJDN0I7VUEwQ1UsZ0JBQWdCLEVBQUE7O0FBMUMxQjtVQThDVSxpQkFBaUI7VUFDakIsaUJBQWlCLEVBQUE7O0FBL0MzQjtVQW1EVSx5QkFBeUI7VUFDekIsbUJBQW1CO1VBQ25CLGNBQWM7VUFDZCxpQkFBaUIsRUFBQTs7QUF0RDNCO1VBMERVLFdBQVc7VUFDWCxjQUFjLEVBQUE7O0FBM0R4QjtZQTZEWSxXQUFXLEVBQUE7O0FBN0R2QjtJQXFFSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4QixFQUFBOztBQXZFbEM7TUEwRU0sV0FBVztNQUNYLGdCQUFnQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2VuZC1tb2RhbC9zZW5kLW1vZGFsLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XHJcbn1cclxuLm1vZGFsIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCU7XHJcbiAgcGFkZGluZzogMC4zcmVtIDNyZW0gM3JlbSAzcmVtO1xyXG4gIHdpZHRoOiA2NHJlbTtcclxuXHJcbiAgLnRpdGxlIHtcclxuICAgIHBhZGRpbmc6IDEuNHJlbSAwO1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICBsaW5lLWhlaWdodDogM3JlbTtcclxuICB9XHJcblxyXG4gIC5jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmb250LXNpemU6IDEuNHJlbTtcclxuXHJcbiAgICAubWVzc2FnZS1jb250YWluZXIge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbjogMS40cmVtIDNyZW0gNi4ycmVtIDA7XHJcblxyXG4gICAgICAubWVzc2FnZS1ibG9jayB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuXHJcbiAgICAgICAgICAubWVzc2FnZS1sYWJlbCB7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0cmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5tZXNzYWdlLXRleHQge1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNHJlbTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1lc3NhZ2UtbGFiZWwge1xyXG4gICAgICAgICAgbWluLXdpZHRoOiA2LjdyZW07XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMnJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tZXNzYWdlLXRleHQge1xyXG4gICAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0LjhyZW07XHJcbiAgICAgICAgICB3aWR0aDogNDMuNHJlbTtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5jb25maXJtLW1hc3Rlci1wYXNzIHtcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgbWFyZ2luOiAycmVtIDA7XHJcbiAgICAgICAgICAuaW5wdXQtYmxvY2sge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53cmFwcGVyLWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0= */\"","import { Component, OnInit, Output, EventEmitter, Input} from '@angular/core';\r\nimport {FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-send-modal',\r\n templateUrl: './send-modal.component.html',\r\n styleUrls: ['./send-modal.component.scss']\r\n})\r\nexport class SendModalComponent implements OnInit {\r\n\r\n confirmForm = new FormGroup({\r\n password: new FormControl('')\r\n });\r\n\r\n @Input() form: FormGroup;\r\n @Output() confirmed: EventEmitter = new EventEmitter();\r\n\r\n constructor(\r\n public variablesService: VariablesService,\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n if(this.variablesService.appPass) {\r\n this.confirmForm.controls['password'].setValidators([Validators.required]);\r\n this.confirmForm.updateValueAndValidity();\r\n }\r\n }\r\n\r\n confirm() {\r\n if(this.variablesService.appPass) {\r\n if (this.confirmForm.controls['password'].value === '') {\r\n this.confirmForm.controls['password'].setErrors({requiredPass: true});\r\n return;\r\n }\r\n this.confirmForm.controls['password'].setErrors({requiredPass: false});\r\n if (this.variablesService.appPass === this.confirmForm.controls['password'].value) {\r\n this.confirmed.emit(true);\r\n } else {\r\n this.confirmForm.controls['password'].setErrors({passwordNotMatch: true})\r\n }\r\n } else {\r\n this.confirmed.emit(true);\r\n }\r\n }\r\n\r\n onClose() {\r\n this.confirmed.emit(false);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
{{item.name}}
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.ADDRESS_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.ADDRESS_NOT_VALID' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.ALIAS_NOT_VALID' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
= variablesService.maxCommentLength\\\">\\r\\n {{ 'SEND.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.FEE_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'SEND.FORM_ERRORS.FEE_MINIMUM' | translate : {fee: variablesService.default_fee} }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.form-send .input-blocks-row {\\n display: flex; }\\n\\n.form-send .input-blocks-row > div {\\n flex-basis: 50%; }\\n\\n.form-send .input-blocks-row > div:first-child {\\n margin-right: 1.5rem; }\\n\\n.form-send .input-blocks-row > div:last-child {\\n margin-left: 1.5rem; }\\n\\n.form-send .send-select {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n font-size: 1.3rem;\\n line-height: 1.3rem;\\n margin: 1.5rem 0 0;\\n padding: 0;\\n width: 100%;\\n max-width: 15rem;\\n height: 1.3rem; }\\n\\n.form-send .send-select .arrow {\\n margin-left: 1rem;\\n width: 0.8rem;\\n height: 0.8rem; }\\n\\n.form-send .send-select .arrow.down {\\n -webkit-mask: url('arrow-down.svg') no-repeat center;\\n mask: url('arrow-down.svg') no-repeat center; }\\n\\n.form-send .send-select .arrow.up {\\n -webkit-mask: url('arrow-up.svg') no-repeat center;\\n mask: url('arrow-up.svg') no-repeat center; }\\n\\n.form-send .additional-details {\\n display: flex;\\n margin-top: 1.5rem;\\n padding: 0.5rem 0 2rem; }\\n\\n.form-send .additional-details > div {\\n flex-basis: 25%; }\\n\\n.form-send .additional-details > div:first-child {\\n padding-left: 1.5rem;\\n padding-right: 1rem; }\\n\\n.form-send .additional-details > div:last-child {\\n padding-left: 1rem;\\n padding-right: 1.5rem; }\\n\\n.form-send .additional-details .checkbox-block {\\n flex-basis: 50%; }\\n\\n.form-send .additional-details .checkbox-block > label {\\n top: 3.5rem; }\\n\\n.form-send .additional-details .checkbox-block.disabled-checkbox-block label {\\n cursor: not-allowed; }\\n\\n.form-send .additional-details .checkbox-block.disabled-checkbox-block label:before {\\n background-color: #556576;\\n border: 0.1rem solid #556576; }\\n\\n.form-send button {\\n margin: 2.4rem 0;\\n width: 100%;\\n max-width: 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VuZC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzZW5kXFxzZW5kLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBR0ksYUFBYSxFQUFBOztBQUhqQjtJQU1NLGVBQWUsRUFBQTs7QUFOckI7TUFTUSxvQkFBb0IsRUFBQTs7QUFUNUI7TUFhUSxtQkFBbUIsRUFBQTs7QUFiM0I7RUFtQkksYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLGNBQWMsRUFBQTs7QUE3QmxCO0lBZ0NNLGlCQUFpQjtJQUNqQixhQUFhO0lBQ2IsY0FBYyxFQUFBOztBQWxDcEI7TUFxQ1Esb0RBQTREO2NBQTVELDRDQUE0RCxFQUFBOztBQXJDcEU7TUF5Q1Esa0RBQTBEO2NBQTFELDBDQUEwRCxFQUFBOztBQXpDbEU7RUErQ0ksYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixzQkFBc0IsRUFBQTs7QUFqRDFCO0lBb0RNLGVBQWUsRUFBQTs7QUFwRHJCO01BdURRLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTs7QUF4RDNCO01BNERRLGtCQUFrQjtNQUNsQixxQkFBcUIsRUFBQTs7QUE3RDdCO0lBa0VNLGVBQWUsRUFBQTs7QUFsRXJCO01BcUVRLFdBQVcsRUFBQTs7QUFyRW5CO01BeUVVLG1CQUFtQixFQUFBOztBQXpFN0I7UUEyRVkseUJBQXlCO1FBQ3pCLDRCQUE0QixFQUFBOztBQTVFeEM7RUFvRkksZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NlbmQvc2VuZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmZvcm0tc2VuZCB7XHJcblxyXG4gIC5pbnB1dC1ibG9ja3Mtcm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgPiBkaXYge1xyXG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XHJcblxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2VuZC1zZWxlY3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcclxuICAgIG1hcmdpbjogMS41cmVtIDAgMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICBoZWlnaHQ6IDEuM3JlbTtcclxuXHJcbiAgICAuYXJyb3cge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgICAgd2lkdGg6IDAuOHJlbTtcclxuICAgICAgaGVpZ2h0OiAwLjhyZW07XHJcblxyXG4gICAgICAmLmRvd24ge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1kb3duLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi51cCB7XHJcbiAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Fycm93LXVwLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZGl0aW9uYWwtZGV0YWlscyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xyXG4gICAgcGFkZGluZzogMC41cmVtIDAgMnJlbTtcclxuXHJcbiAgICA+IGRpdiB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IDI1JTtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jaGVja2JveC1ibG9jayB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IDUwJTtcclxuXHJcbiAgICAgID4gbGFiZWwge1xyXG4gICAgICAgIHRvcDogMy41cmVtO1xyXG4gICAgICB9XHJcbiAgICAgICYuZGlzYWJsZWQtY2hlY2tib3gtYmxvY2sge1xyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICM1NTY1NzY7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidXR0b24ge1xyXG4gICAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAxNXJlbTtcclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, OnInit, OnDestroy, NgZone, HostListener, Input} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {BigNumber} from 'bignumber.js';\r\nimport {MIXIN} from '../_shared/constants'\r\n\r\n@Component({\r\n selector: 'app-send',\r\n templateUrl: './send.component.html',\r\n styleUrls: ['./send.component.scss']\r\n})\r\nexport class SendComponent implements OnInit, OnDestroy {\r\n\r\n isOpen = false;\r\n localAliases = [];\r\n isModalDialogVisible = false;\r\n hideWalletAddress = false;\r\n mixin: number;\r\n\r\n currentWalletId = null;\r\n parentRouting;\r\n sendForm = new FormGroup({\r\n address: new FormControl('', [Validators.required, (g: FormControl) => {\r\n this.localAliases = [];\r\n if (g.value) {\r\n if (g.value.indexOf('@') !== 0) {\r\n this.isOpen = false;\r\n this.backend.validateAddress(g.value, (valid_status) => {\r\n this.ngZone.run(() => {\r\n if (valid_status === false) {\r\n g.setErrors(Object.assign({'address_not_valid': true}, g.errors));\r\n } else {\r\n if (g.hasError('address_not_valid')) {\r\n delete g.errors['address_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n return (g.hasError('address_not_valid')) ? {'address_not_valid': true} : null;\r\n } else {\r\n this.isOpen = true;\r\n this.localAliases = this.variablesService.aliases.filter((item) => {\r\n return item.name.indexOf(g.value) > -1;\r\n });\r\n if (!(/^@?[a-z0-9\\.\\-]{6,25}$/.test(g.value))) {\r\n g.setErrors(Object.assign({'alias_not_valid': true}, g.errors));\r\n } else {\r\n this.backend.getAliasByName(g.value.replace('@', ''), (alias_status) => {\r\n this.ngZone.run(() => {\r\n if (alias_status) {\r\n if (g.hasError('alias_not_valid')) {\r\n delete g.errors['alias_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n } else {\r\n g.setErrors(Object.assign({'alias_not_valid': true}, g.errors));\r\n }\r\n });\r\n });\r\n }\r\n return (g.hasError('alias_not_valid')) ? {'alias_not_valid': true} : null;\r\n }\r\n }\r\n return null;\r\n }]),\r\n amount: new FormControl(null, [Validators.required, (g: FormControl) => {\r\n if (new BigNumber(g.value).eq(0)) {\r\n return {'zero': true};\r\n }\r\n return null;\r\n }]),\r\n comment: new FormControl(''),\r\n mixin: new FormControl(MIXIN, Validators.required),\r\n fee: new FormControl(this.variablesService.default_fee, [Validators.required, (g: FormControl) => {\r\n if ((new BigNumber(g.value)).isLessThan(this.variablesService.default_fee)) {\r\n return {'less_min': true};\r\n }\r\n return null;\r\n }]),\r\n hide: new FormControl(false)\r\n });\r\n additionalOptions = false;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {\r\n }\r\n\r\n addressMouseDown(e) {\r\n if (e['button'] === 0 && this.sendForm.get('address').value && this.sendForm.get('address').value.indexOf('@') === 0) {\r\n this.isOpen = true;\r\n }\r\n }\r\n\r\n setAlias(alias) {\r\n this.sendForm.get('address').setValue(alias);\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(targetElement) {\r\n if (targetElement.id !== 'send-address' && this.isOpen) {\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(params => {\r\n this.currentWalletId = params['id'];\r\n this.mixin = this.variablesService.currentWallet.send_data['mixin'] || MIXIN;\r\n if (this.variablesService.currentWallet.is_auditable) {\r\n this.mixin = 0;\r\n this.sendForm.controls['mixin'].disable();\r\n }\r\n this.hideWalletAddress = this.variablesService.currentWallet.is_auditable && !this.variablesService.currentWallet.is_watch_only;\r\n if (this.hideWalletAddress) {\r\n this.sendForm.controls['hide'].disable();\r\n }\r\n this.sendForm.reset({\r\n address: this.variablesService.currentWallet.send_data['address'],\r\n amount: this.variablesService.currentWallet.send_data['amount'],\r\n comment: this.variablesService.currentWallet.send_data['comment'],\r\n mixin: this.mixin,\r\n fee: this.variablesService.currentWallet.send_data['fee'] || this.variablesService.default_fee,\r\n hide: this.variablesService.currentWallet.send_data['hide'] || false\r\n });\r\n });\r\n }\r\n\r\n showDialog() {\r\n this.isModalDialogVisible = true;\r\n }\r\n\r\n confirmed(confirmed: boolean) {\r\n if (confirmed) {\r\n this.onSend();\r\n }\r\n this.isModalDialogVisible = false;\r\n }\r\n\r\n onSend() {\r\n if (this.sendForm.valid) {\r\n if (this.sendForm.get('address').value.indexOf('@') !== 0) {\r\n this.backend.validateAddress(this.sendForm.get('address').value, (valid_status) => {\r\n if (valid_status === false) {\r\n this.ngZone.run(() => {\r\n this.sendForm.get('address').setErrors({'address_not_valid': true});\r\n });\r\n } else {\r\n this.backend.sendMoney(\r\n this.currentWalletId,\r\n this.sendForm.get('address').value,\r\n this.sendForm.get('amount').value,\r\n this.sendForm.get('fee').value,\r\n this.sendForm.get('mixin').value,\r\n this.sendForm.get('comment').value,\r\n this.sendForm.get('hide').value,\r\n (send_status) => {\r\n if (send_status) {\r\n this.modalService.prepareModal('success', 'SEND.SUCCESS_SENT');\r\n this.variablesService.currentWallet.send_data = {address: null, amount: null, comment: null, mixin: null, fee: null, hide: null};\r\n this.sendForm.reset({address: null, amount: null, comment: null, mixin: this.mixin, fee: this.variablesService.default_fee, hide: false});\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n this.backend.getAliasByName(this.sendForm.get('address').value.replace('@', ''), (alias_status, alias_data) => {\r\n this.ngZone.run(() => {\r\n if (alias_status === false) {\r\n this.ngZone.run(() => {\r\n this.sendForm.get('address').setErrors({'alias_not_valid': true});\r\n });\r\n } else {\r\n this.backend.sendMoney(\r\n this.currentWalletId,\r\n alias_data.address, // this.sendForm.get('address').value,\r\n this.sendForm.get('amount').value,\r\n this.sendForm.get('fee').value,\r\n this.sendForm.get('mixin').value,\r\n this.sendForm.get('comment').value,\r\n this.sendForm.get('hide').value,\r\n (send_status) => {\r\n if (send_status) {\r\n this.modalService.prepareModal('success', 'SEND.SUCCESS_SENT');\r\n this.variablesService.currentWallet.send_data = {address: null, amount: null, comment: null, mixin: null, fee: null, hide: null};\r\n this.sendForm.reset({address: null, amount: null, comment: null, mixin: this.mixin, fee: this.variablesService.default_fee, hide: false});\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n toggleOptions() {\r\n this.additionalOptions = !this.additionalOptions;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n this.variablesService.currentWallet.send_data = {\r\n address: this.sendForm.get('address').value,\r\n amount: this.sendForm.get('amount').value,\r\n comment: this.sendForm.get('comment').value,\r\n mixin: this.sendForm.get('mixin').value,\r\n fee: this.sendForm.get('fee').value,\r\n hide: this.sendForm.get('hide').value\r\n };\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n

{{ 'SETTINGS.TITLE' | translate }}

\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{item.language | translate}}\\r\\n \\r\\n \\r\\n {{item.language | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{item.name | translate}}\\r\\n \\r\\n \\r\\n {{item.name | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n {{ 'SETTINGS.MASTER_PASSWORD.TITLE' | translate }}\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{ 'SETTINGS.FORM_ERRORS.PASS_NOT_MATCH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{ 'SETTINGS.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
{{ 'SETTINGS.LAST_BUILD' | translate : {value: currentBuild} }}
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \".head {\\n justify-content: flex-end; }\\n\\n.settings-title {\\n font-size: 1.7rem; }\\n\\n.theme-selection {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n margin: 2.4rem 0;\\n width: 50%; }\\n\\n.theme-selection .radio-block {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n font-size: 1.3rem;\\n line-height: 2.7rem; }\\n\\n.lock-selection {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n margin: 2.4rem 0;\\n width: 50%; }\\n\\n.lock-selection .lock-selection-title {\\n display: flex;\\n font-size: 1.5rem;\\n line-height: 2.7rem;\\n margin-bottom: 1rem; }\\n\\n.scale-selection {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 0 0 4rem;\\n width: 50%;\\n height: 0.5rem; }\\n\\n.scale-selection .button-block {\\n position: relative;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex: 1 0 auto;\\n margin: 0 0.2rem;\\n padding: 0;\\n height: 0.5rem; }\\n\\n.scale-selection .button-block .label {\\n position: absolute;\\n bottom: -1rem;\\n left: 50%;\\n transform: translate(-50%, 100%);\\n font-size: 1rem;\\n white-space: nowrap; }\\n\\n.master-password {\\n width: 50%; }\\n\\n.master-password .master-password-title {\\n display: flex;\\n font-size: 1.5rem;\\n line-height: 2.7rem;\\n margin-bottom: 1rem; }\\n\\n.master-password button {\\n margin: 2.5rem auto;\\n width: 100%;\\n max-width: 15rem; }\\n\\n.last-build {\\n font-size: 1rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2V0dGluZ3MvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcc2V0dGluZ3NcXHNldHRpbmdzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTs7QUFMWjtJQVFJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsMkJBQTJCO0lBQzNCLGlCQUFpQjtJQUNqQixtQkFBbUIsRUFBQTs7QUFJdkI7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLHVCQUF1QjtFQUN2QixnQkFBZ0I7RUFDaEIsVUFBVSxFQUFBOztBQUxaO0lBUUksYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsbUJBQW1CLEVBQUE7O0FBSXZCO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsaUJBQWlCO0VBQ2pCLFVBQVU7RUFDVixjQUFjLEVBQUE7O0FBTmhCO0lBU0ksa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLGNBQWMsRUFBQTs7QUFoQmxCO01BbUJNLGtCQUFrQjtNQUNsQixhQUFhO01BQ2IsU0FBUztNQUNULGdDQUFnQztNQUNoQyxlQUFlO01BQ2YsbUJBQW1CLEVBQUE7O0FBS3pCO0VBQ0UsVUFBVSxFQUFBOztBQURaO0lBSUksYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsbUJBQW1CLEVBQUE7O0FBUHZCO0lBV0ksbUJBQW1CO0lBQ25CLFdBQVc7SUFDWCxnQkFBZ0IsRUFBQTs7QUFJcEI7RUFDRSxlQUFlLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zZXR0aW5ncy9zZXR0aW5ncy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oZWFkIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4uc2V0dGluZ3MtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS43cmVtO1xyXG59XHJcblxyXG4udGhlbWUtc2VsZWN0aW9uIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICB3aWR0aDogNTAlO1xyXG5cclxuICAucmFkaW8tYmxvY2sge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07XHJcbiAgfVxyXG59XHJcblxyXG4ubG9jay1zZWxlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBtYXJnaW46IDIuNHJlbSAwO1xyXG4gIHdpZHRoOiA1MCU7XHJcblxyXG4gIC5sb2NrLXNlbGVjdGlvbi10aXRsZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5zY2FsZS1zZWxlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgcGFkZGluZzogMCAwIDRyZW07XHJcbiAgd2lkdGg6IDUwJTtcclxuICBoZWlnaHQ6IDAuNXJlbTtcclxuXHJcbiAgLmJ1dHRvbi1ibG9jayB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZmxleDogMSAwIGF1dG87XHJcbiAgICBtYXJnaW46IDAgMC4ycmVtO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGhlaWdodDogMC41cmVtO1xyXG5cclxuICAgIC5sYWJlbCB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAtMXJlbTtcclxuICAgICAgbGVmdDogNTAlO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAxMDAlKTtcclxuICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm1hc3Rlci1wYXNzd29yZCB7XHJcbiAgd2lkdGg6IDUwJTtcclxuXHJcbiAgLm1hc3Rlci1wYXNzd29yZC10aXRsZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBtYXJnaW46IDIuNXJlbSBhdXRvO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDE1cmVtO1xyXG4gIH1cclxufVxyXG5cclxuLmxhc3QtYnVpbGQge1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxufVxyXG4iXX0= */\"","import {Component, NgZone, OnInit, Renderer2} from '@angular/core';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport {Location} from '@angular/common';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport {UtilsService} from '../_helpers/services/utils.service';\r\n\r\n@Component({\r\n selector: 'app-settings',\r\n templateUrl: './settings.component.html',\r\n styleUrls: ['./settings.component.scss'],\r\n providers: [UtilsService]\r\n})\r\nexport class SettingsComponent implements OnInit {\r\n\r\n theme: string;\r\n scale: number;\r\n changeForm: any;\r\n languagesOptions = [\r\n {\r\n name: 'en',\r\n language: 'SETTINGS.LANGUAGE.EN'\r\n },\r\n {\r\n name: 'fr',\r\n language: 'SETTINGS.LANGUAGE.FR'\r\n },\r\n {\r\n name: 'de',\r\n language: 'SETTINGS.LANGUAGE.DE'\r\n },\r\n {\r\n name: 'it',\r\n language: 'SETTINGS.LANGUAGE.IT'\r\n },\r\n {\r\n name: 'pt',\r\n language: 'SETTINGS.LANGUAGE.PT'\r\n }\r\n ];\r\n appLockOptions = [\r\n {\r\n id: 5,\r\n name: 'SETTINGS.APP_LOCK.TIME1'\r\n },\r\n {\r\n id: 15,\r\n name: 'SETTINGS.APP_LOCK.TIME2'\r\n },\r\n {\r\n id: 60,\r\n name: 'SETTINGS.APP_LOCK.TIME3'\r\n },\r\n {\r\n id: 0,\r\n name: 'SETTINGS.APP_LOCK.TIME4'\r\n }\r\n ];\r\n appScaleOptions = [\r\n {\r\n id: 7.5,\r\n name: 'SETTINGS.SCALE.75'\r\n },\r\n {\r\n id: 10,\r\n name: 'SETTINGS.SCALE.100'\r\n },\r\n {\r\n id: 12.5,\r\n name: 'SETTINGS.SCALE.125'\r\n },\r\n {\r\n id: 15,\r\n name: 'SETTINGS.SCALE.150'\r\n }\r\n ];\r\n appLogOptions = [\r\n {\r\n id: -1\r\n },\r\n {\r\n id: 0\r\n },\r\n {\r\n id: 1\r\n },\r\n {\r\n id: 2\r\n },\r\n {\r\n id: 3\r\n },\r\n {\r\n id: 4\r\n }\r\n ];\r\n\r\n currentBuild = '';\r\n appPass: any;\r\n\r\n constructor(\r\n private renderer: Renderer2,\r\n public variablesService: VariablesService,\r\n private backend: BackendService,\r\n private location: Location,\r\n public translate: TranslateService,\r\n private ngZone: NgZone,\r\n private utilsService: UtilsService\r\n ) {\r\n this.theme = this.variablesService.settings.theme;\r\n this.scale = this.variablesService.settings.scale;\r\n this.changeForm = new FormGroup({\r\n password: new FormControl(''),\r\n new_password: new FormControl('', Validators.pattern(this.variablesService.pattern)),\r\n new_confirmation: new FormControl('')\r\n }, [(g: FormGroup) => {\r\n return g.get('new_password').value === g.get('new_confirmation').value ? null : {'confirm_mismatch': true};\r\n }, (g: FormGroup) => {\r\n if (this.variablesService.appPass) {\r\n return g.get('password').value === this.variablesService.appPass ? null : {'pass_mismatch': true};\r\n }\r\n return null;\r\n }]);\r\n }\r\n\r\n ngOnInit() {\r\n this.backend.getVersion((version, type) => {\r\n this.ngZone.run(() => {\r\n this.currentBuild = version;\r\n this.variablesService.testnet = false;\r\n if (type == 'testnet')\r\n {\r\n this.currentBuild += ' TESTNET';\r\n this.variablesService.testnet = true;\r\n }\r\n this.variablesService.networkType = type;\r\n });\r\n });\r\n }\r\n\r\n setTheme(theme) {\r\n this.renderer.removeClass(document.body, 'theme-' + this.theme);\r\n this.theme = theme;\r\n this.variablesService.settings.theme = this.theme;\r\n this.renderer.addClass(document.body, 'theme-' + this.theme);\r\n this.backend.storeAppData();\r\n }\r\n\r\n setScale(scale) {\r\n this.scale = scale;\r\n this.variablesService.settings.scale = this.scale;\r\n const width = this.utilsService.getMinWidthByScale(this.scale);\r\n const app = document.documentElement.querySelector('app-root');\r\n this.renderer.setStyle(app, 'min-width', width + 'px');\r\n this.renderer.setStyle(document.documentElement, 'font-size', this.scale + 'px');\r\n this.backend.storeAppData();\r\n }\r\n\r\n onSubmitChangePass() {\r\n if (this.changeForm.valid) {\r\n this.variablesService.appPass = this.changeForm.get('new_password').value;\r\n if (this.variablesService.appPass) {\r\n this.backend.setMasterPassword({pass: this.variablesService.appPass}, (status, data) => {\r\n if (status) {\r\n this.backend.storeSecureAppData({pass: this.variablesService.appPass});\r\n this.variablesService.appLogin = true;\r\n this.variablesService.dataIsLoaded = true;\r\n if (this.variablesService.settings.appLockTime) {\r\n this.variablesService.startCountdown();\r\n }\r\n } else {\r\n console.log(data['error_code']);\r\n }\r\n });\r\n } else {\r\n this.backend.dropSecureAppData();\r\n }\r\n this.changeForm.reset();\r\n }\r\n }\r\n\r\n onLockChange() {\r\n if (this.variablesService.appLogin && this.variablesService.settings.appLockTime) {\r\n this.variablesService.restartCountdown();\r\n }\r\n this.backend.storeAppData();\r\n }\r\n\r\n onLogChange() {\r\n this.backend.setLogLevel(this.variablesService.settings.appLog);\r\n this.backend.storeAppData();\r\n }\r\n\r\n onLanguageChange() {\r\n this.translate.use(this.variablesService.settings.language);\r\n this.backend.storeAppData();\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n

{{ 'SIDEBAR.TITLE' | translate }}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Auditable\\r\\n
\\r\\n
\\r\\n Watch-only\\r\\n
\\r\\n
\\r\\n Tracking\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n {{ 'SIDEBAR.LOG_OUT' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.OFFLINE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.SYNCING' | translate }} {{ variablesService.height_app }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.height_max }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ONLINE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.DOWNLOADING' | translate }} {{ variablesService.downloaded }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.total }}{{ 'SIDEBAR.SYNCHRONIZATION.MB' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ variablesService.sync.progress_value_text }}%
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ variablesService.download.progress_value_text }}%
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.STANDARD' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT' | translate }}\\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.CRITICAL' | translate }}\\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'SIDEBAR.UPDATE.TIME' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n flex: 0 0 25rem;\\n padding: 0 3rem;\\n max-width: 25rem; }\\n\\n.animated {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin-right: 1.2rem; }\\n\\n.animated::ng-deep svg {\\n width: 2rem;\\n height: 2rem; }\\n\\n.animated::ng-deep svg path, .animated::ng-deep svg circle, .animated::ng-deep svg polygon {\\n fill: #4db1ff; }\\n\\n.wallet-type {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 7px;\\n height: 100%;\\n background-color: transparent;\\n transition: all ease .3s;\\n overflow: hidden; }\\n\\n.wallet-type:hover {\\n width: 28px; }\\n\\n.wallet-type .content {\\n height: 100%;\\n padding: 7px;\\n font-size: 12px;\\n line-height: 14px;\\n font-weight: 500;\\n color: #ffffff;\\n text-decoration: none;\\n text-transform: capitalize;\\n transition: all ease .3s;\\n writing-mode: vertical-rl;\\n text-orientation: mixed; }\\n\\n.wallet-type .content.auditable {\\n background-color: #5cda9d; }\\n\\n.wallet-type .content.watch-only, .wallet-type .content.auditable-watch-only {\\n background-color: #8686ff; }\\n\\n.sidebar-accounts {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n flex: 1 1 auto; }\\n\\n.sidebar-accounts .sidebar-accounts-header {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n flex: 0 0 auto;\\n height: 8rem;\\n font-weight: 400; }\\n\\n.sidebar-accounts .sidebar-accounts-header h3 {\\n font-size: 1.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-header button {\\n background: transparent;\\n border: none;\\n outline: none; }\\n\\n.sidebar-accounts .sidebar-accounts-list {\\n display: flex;\\n flex-direction: column;\\n flex: 1 1 auto;\\n margin: 0 -3rem;\\n overflow-y: auto; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n flex-shrink: 0;\\n cursor: pointer;\\n padding: 2.5rem 3rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper {\\n display: flex;\\n justify-content: flex-end;\\n position: relative; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button {\\n display: flex;\\n position: absolute;\\n top: -12px;\\n right: -18px;\\n padding: 0;\\n height: auto;\\n background: transparent;\\n border: none; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button .icon {\\n width: 1.3rem;\\n height: 1.3rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button .icon.close-wallet {\\n background-color: transparent; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button .icon.close-wallet::after {\\n display: block;\\n content: '';\\n background: url('close-wallet-blue.svg') no-repeat center;\\n width: 13px;\\n height: 13px; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row {\\n display: flex;\\n align-items: center;\\n justify-content: space-between; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-title-balance {\\n line-height: 2.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-title-balance .title {\\n font-size: 1.5rem;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-title-balance .balance {\\n font-size: 1.8rem;\\n font-weight: 600;\\n white-space: nowrap; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias {\\n font-size: 1.3rem;\\n line-height: 3.4rem;\\n margin-bottom: 0.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .name {\\n display: flex;\\n align-items: center;\\n flex-shrink: 1;\\n line-height: 1.6rem;\\n padding-right: 1rem;\\n overflow: hidden; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .name span {\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .price {\\n flex-shrink: 0; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .icon {\\n margin-left: 0.5rem;\\n width: 1.3rem;\\n height: 1.3rem;\\n border-radius: 50%;\\n color: #1a1a1a;\\n font-size: 9px;\\n font-weight: 700;\\n line-height: 9px;\\n padding-right: 1px;\\n display: flex;\\n align-items: center;\\n justify-content: center; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-staking {\\n line-height: 2.9rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-staking .text {\\n font-size: 1.3rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-messages {\\n line-height: 2.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-messages .text {\\n font-size: 1.3rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-messages .indicator {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 1rem;\\n font-size: 1rem;\\n min-width: 2.4rem;\\n height: 1.6rem;\\n padding: 0 0.5rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\\n flex-direction: column;\\n height: 5.6rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .status {\\n align-self: flex-start;\\n font-size: 1.3rem;\\n line-height: 2.6rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container {\\n display: flex;\\n margin: 0.4rem 0;\\n height: 0.7rem;\\n width: 100%; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container .progress-bar {\\n flex: 1 0 auto; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container .progress-bar .fill {\\n height: 100%; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container .progress-percent {\\n flex: 0 0 auto;\\n font-size: 1.3rem;\\n line-height: 0.7rem;\\n padding-left: 0.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account:focus {\\n outline: none; }\\n\\n.sidebar-accounts:after {\\n content: '';\\n position: absolute;\\n bottom: 0;\\n left: -3rem;\\n width: calc(100% + 6rem);\\n height: 5rem; }\\n\\n.sidebar-settings {\\n flex: 0 0 auto;\\n padding-bottom: 1rem; }\\n\\n.sidebar-settings .wrap-button {\\n margin: 0 -3rem; }\\n\\n.sidebar-settings .wrap-button button {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n font-weight: 400;\\n line-height: 3rem;\\n outline: none;\\n padding: 0 3rem;\\n width: 100%; }\\n\\n.sidebar-settings .wrap-button button.disabled {\\n cursor: url('not-allowed.svg'), not-allowed; }\\n\\n.sidebar-settings .wrap-button button .icon {\\n margin-right: 1.2rem;\\n width: 2rem;\\n height: 2rem; }\\n\\n.sidebar-settings .wrap-button button .icon.contacts {\\n -webkit-mask: url('contacts.svg') no-repeat center;\\n mask: url('contacts.svg') no-repeat center; }\\n\\n.sidebar-settings .wrap-button button .icon.settings {\\n -webkit-mask: url('settings.svg') no-repeat center;\\n mask: url('settings.svg') no-repeat center; }\\n\\n.sidebar-settings .wrap-button button .icon.logout {\\n -webkit-mask: url('logout.svg') no-repeat center;\\n mask: url('logout.svg') no-repeat center; }\\n\\n.synchronization-status {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n flex: 0 0 7rem;\\n font-size: 1.3rem; }\\n\\n.synchronization-status .status-container {\\n position: relative;\\n flex-grow: 1;\\n text-align: left; }\\n\\n.synchronization-status .status-container .offline, .synchronization-status .status-container .online {\\n position: relative;\\n display: block;\\n line-height: 1.2rem;\\n padding-left: 2.2rem; }\\n\\n.synchronization-status .status-container .offline:before, .synchronization-status .status-container .online:before {\\n content: '';\\n position: absolute;\\n top: 0;\\n left: 0;\\n border-radius: 50%;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n.synchronization-status .status-container .syncing, .synchronization-status .status-container .loading {\\n line-height: 5rem; }\\n\\n.synchronization-status .status-container .progress-bar-container {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n height: 0.7rem;\\n width: 100%; }\\n\\n.synchronization-status .status-container .progress-bar-container .syncing {\\n display: flex; }\\n\\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\\n flex: 1 0 auto; }\\n\\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\\n height: 100%; }\\n\\n.synchronization-status .status-container .progress-bar-container .syncing .progress-percent {\\n flex: 0 0 auto;\\n font-size: 1.3rem;\\n line-height: 0.7rem;\\n padding-left: 0.7rem; }\\n\\n.synchronization-status .status-container .progress-bar-container .loading {\\n -webkit-animation: move 5s linear infinite;\\n animation: move 5s linear infinite;\\n background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.125, rgba(0, 0, 0, 0.15)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.1)), color-stop(0.375, rgba(0, 0, 0, 0.1)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.15)), color-stop(0.625, rgba(0, 0, 0, 0.15)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.1)), color-stop(0.875, rgba(0, 0, 0, 0.1)), color-stop(0.875, transparent), to(transparent)), -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\\n background-size: 7rem 7rem;\\n height: 100%; }\\n\\n.synchronization-status .update-container {\\n display: flex;\\n flex-grow: 1;\\n margin-left: 1rem;\\n text-align: right; }\\n\\n.synchronization-status .update-container .update-text {\\n flex: 1 1 auto;\\n font-size: 1.2rem;\\n line-height: 1.8rem;\\n text-align: left; }\\n\\n.synchronization-status .update-container .update-text.time {\\n font-size: 1.1rem; }\\n\\n.synchronization-status .update-container .icon {\\n flex: 1 0 auto;\\n margin: 0.3rem 0 0 0.6rem;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n.synchronization-status .update-container .icon.update {\\n -webkit-mask: url('update.svg') no-repeat center;\\n mask: url('update.svg') no-repeat center; }\\n\\n.synchronization-status .update-container .icon.time {\\n -webkit-mask: url('time.svg') no-repeat center;\\n mask: url('time.svg') no-repeat center; }\\n\\n@-webkit-keyframes move {\\n 0% {\\n background-position: 100% -7rem; }\\n 100% {\\n background-position: 100% 7rem; } }\\n\\n@keyframes move {\\n 0% {\\n background-position: 100% -7rem; }\\n 100% {\\n background-position: 100% 7rem; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2lkZWJhci9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzaWRlYmFyXFxzaWRlYmFyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0Qiw4QkFBOEI7RUFDOUIsZUFBZTtFQUNmLGVBQWU7RUFDZixnQkFBZ0IsRUFBQTs7QUFHbEI7RUFDRSxhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixvQkFBb0IsRUFBQTs7QUFKdEI7SUFRSSxXQUFXO0lBQ1gsWUFBWSxFQUFBOztBQVRoQjtNQVlNLGFBQWEsRUFBQTs7QUFJbkI7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxVQUFVO0VBQ1YsWUFBWTtFQUNaLDZCQUE2QjtFQUM3Qix3QkFBd0I7RUFDeEIsZ0JBQWdCLEVBQUE7O0FBUmxCO0lBVUksV0FBVyxFQUFBOztBQVZmO0lBYUksWUFBWTtJQUNaLFlBQVk7SUFDWixlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QscUJBQXFCO0lBQ3JCLDBCQUEwQjtJQUMxQix3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLHVCQUF1QixFQUFBOztBQXZCM0I7TUF5Qk0seUJBQXlCLEVBQUE7O0FBekIvQjtNQTRCTSx5QkFBeUIsRUFBQTs7QUFJL0I7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixjQUFjLEVBQUE7O0FBSmhCO0lBT0ksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsY0FBYztJQUNkLFlBQVk7SUFDWixnQkFBZ0IsRUFBQTs7QUFacEI7TUFlTSxpQkFBaUIsRUFBQTs7QUFmdkI7TUFtQk0sdUJBQXVCO01BQ3ZCLFlBQVk7TUFDWixhQUFhLEVBQUE7O0FBckJuQjtJQTBC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Z0RBQXlEO2dCQUF6RCx3Q0FBeUQsRUFBQTs7QUFsSGpFO1FBc0hRLDhDQUF1RDtnQkFBdkQsc0NBQXVELEVBQUE7O0FBTS9EO0VBQ0U7SUFDRSwrQkFBK0IsRUFBQTtFQUVqQztJQUNFLDhCQUE4QixFQUFBLEVBQUE7O0FBTGxDO0VBQ0U7SUFDRSwrQkFBK0IsRUFBQTtFQUVqQztJQUNFLDhCQUE4QixFQUFBLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBmbGV4OiAwIDAgMjVyZW07XHJcbiAgcGFkZGluZzogMCAzcmVtO1xyXG4gIG1heC13aWR0aDogMjVyZW07XHJcbn1cclxuXHJcbi5hbmltYXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG5cclxuICAmOjpuZy1kZWVwIHN2ZyB7XHJcblxyXG4gICAgd2lkdGg6IDJyZW07XHJcbiAgICBoZWlnaHQ6IDJyZW07XHJcblxyXG4gICAgcGF0aCwgY2lyY2xlLCBwb2x5Z29uIHtcclxuICAgICAgZmlsbDogIzRkYjFmZjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuLndhbGxldC10eXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDdweDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgdHJhbnNpdGlvbjogYWxsIGVhc2UgLjNzO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgJjpob3ZlciB7XHJcbiAgICB3aWR0aDogMjhweDtcclxuICB9XHJcbiAgLmNvbnRlbnQge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcGFkZGluZzogN3B4O1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgIHRyYW5zaXRpb246IGFsbCBlYXNlIC4zcztcclxuICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7XHJcbiAgICB0ZXh0LW9yaWVudGF0aW9uOiBtaXhlZDtcclxuICAgICYuYXVkaXRhYmxlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDtcclxuICAgIH1cclxuICAgICYud2F0Y2gtb25seSwgJi5hdWRpdGFibGUtd2F0Y2gtb25seSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4Njg2ZmY7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi5zaWRlYmFyLWFjY291bnRzIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDEgMSBhdXRvO1xyXG5cclxuICAuc2lkZWJhci1hY2NvdW50cy1oZWFkZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgIGhlaWdodDogOHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcblxyXG4gICAgaDMge1xyXG4gICAgICBmb250LXNpemU6IDEuN3JlbTtcclxuICAgIH1cclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNpZGViYXItYWNjb3VudHMtbGlzdCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgbWFyZ2luOiAwIC0zcmVtO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuXHJcbiAgICAuc2lkZWJhci1hY2NvdW50IHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBwYWRkaW5nOiAyLjVyZW0gM3JlbTtcclxuXHJcbiAgICAgIC5jbG9zZS13YWxsZXQtd3JhcHBlciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHRvcDogLTEycHg7XHJcbiAgICAgICAgICByaWdodDogLTE4cHg7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICB3aWR0aDogMS4zcmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEuM3JlbTtcclxuICAgICAgICAgICAgJi5jbG9zZS13YWxsZXQge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuY2xvc2Utd2FsbGV0OjphZnRlciB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgY29udGVudDonJztcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOnVybChcIi4uLy4uL2Fzc2V0cy9pY29ucy9jbG9zZS13YWxsZXQtYmx1ZS5zdmdcIikgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICB3aWR0aDogMTNweDtcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDEzcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zaWRlYmFyLWFjY291bnQtcm93IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgICAgICAmLmFjY291bnQtdGl0bGUtYmFsYW5jZSB7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG5cclxuICAgICAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuYmFsYW5jZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY2NvdW50LWFsaWFzIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMuNHJlbTtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuN3JlbTtcclxuXHJcbiAgICAgICAgICAubmFtZSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS42cmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLnByaWNlIHtcclxuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xyXG4gICAgICAgICAgICB3aWR0aDogMS4zcmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEuM3JlbTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICBjb2xvcjogIzFhMWExYTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiA5cHg7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA5cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFweDtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjY291bnQtc3Rha2luZyB7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMi45cmVtO1xyXG5cclxuICAgICAgICAgIC50ZXh0IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjY291bnQtbWVzc2FnZXMge1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuXHJcbiAgICAgICAgICAudGV4dCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5pbmRpY2F0b3Ige1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNHJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxLjZyZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC41cmVtO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY2NvdW50LXN5bmNocm9uaXphdGlvbiB7XHJcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgaGVpZ2h0OiA1LjZyZW07XHJcblxyXG4gICAgICAgICAgLnN0YXR1cyB7XHJcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgbWFyZ2luOiAwLjRyZW0gMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAwLjdyZW07XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAgICAgLnByb2dyZXNzLWJhciB7XHJcbiAgICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XHJcblxyXG4gICAgICAgICAgICAgIC5maWxsIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5wcm9ncmVzcy1wZXJjZW50IHtcclxuICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMC43cmVtO1xyXG4gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAtM3JlbTtcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyA2cmVtKTtcclxuICAgIGhlaWdodDogNXJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5zaWRlYmFyLXNldHRpbmdzIHtcclxuICBmbGV4OiAwIDAgYXV0bztcclxuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcclxuXHJcbiAgLndyYXAtYnV0dG9uIHtcclxuICAgIG1hcmdpbjogMCAtM3JlbTtcclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICBsaW5lLWhlaWdodDogM3JlbTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgcGFkZGluZzogMCAzcmVtO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgICYuZGlzYWJsZWQge1xyXG4gICAgICAgIGN1cnNvcjogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9ub3QtYWxsb3dlZC5zdmcpLCBub3QtYWxsb3dlZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmljb24ge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICAgIHdpZHRoOiAycmVtO1xyXG4gICAgICAgIGhlaWdodDogMnJlbTtcclxuXHJcbiAgICAgICAgJi5jb250YWN0cyB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2NvbnRhY3RzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuc2V0dGluZ3Mge1xyXG4gICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9zZXR0aW5ncy5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmxvZ291dCB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2xvZ291dC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uc3luY2hyb25pemF0aW9uLXN0YXR1cyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBmbGV4OiAwIDAgN3JlbTtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuXHJcbiAgLnN0YXR1cy1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAub2ZmbGluZSwgLm9ubGluZSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMi4ycmVtO1xyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgICBoZWlnaHQ6IDEuMnJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zeW5jaW5nLCAubG9hZGluZyB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA1cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIGhlaWdodDogMC43cmVtO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIC5zeW5jaW5nIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgICAucHJvZ3Jlc3MtYmFyIHtcclxuICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG5cclxuICAgICAgICAgIC5maWxsIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnByb2dyZXNzLXBlcmNlbnQge1xyXG4gICAgICAgICAgZmxleDogMCAwIGF1dG87XHJcbiAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwLjdyZW07XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5sb2FkaW5nIHtcclxuICAgICAgICBhbmltYXRpb246IG1vdmUgNXMgbGluZWFyIGluZmluaXRlO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6XHJcbiAgICAgICAgICAtd2Via2l0LWdyYWRpZW50KFxyXG4gICAgICAgICAgICAgIGxpbmVhciwgMCAwLCAxMDAlIDEwMCUsXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMTI1LCByZ2JhKDAsIDAsIDAsIC4xNSkpLCBjb2xvci1zdG9wKC4xMjUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4yNTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguMjUwLCByZ2JhKDAsIDAsIDAsIC4xMCkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjM3NSwgcmdiYSgwLCAwLCAwLCAuMTApKSwgY29sb3Itc3RvcCguMzc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNTAwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjUwMCwgcmdiYSgwLCAwLCAwLCAuMTUpKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC42MjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjYyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjc1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC43NTAsIHJnYmEoMCwgMCwgMCwgLjEwKSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguODc1LCByZ2JhKDAsIDAsIDAsIC4xMCkpLCBjb2xvci1zdG9wKC44NzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICB0byh0cmFuc3BhcmVudClcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICAtd2Via2l0LWdyYWRpZW50KFxyXG4gICAgICAgICAgICAgIGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMTI1LCByZ2JhKDAsIDAsIDAsIC4zMCkpLCBjb2xvci1zdG9wKC4xMjUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4yNTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguMjUwLCByZ2JhKDAsIDAsIDAsIC4yNSkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjM3NSwgcmdiYSgwLCAwLCAwLCAuMjUpKSwgY29sb3Itc3RvcCguMzc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNTAwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjUwMCwgcmdiYSgwLCAwLCAwLCAuMzApKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC42MjUsIHJnYmEoMCwgMCwgMCwgLjMwKSksIGNvbG9yLXN0b3AoLjYyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjc1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC43NTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguODc1LCByZ2JhKDAsIDAsIDAsIC4yNSkpLCBjb2xvci1zdG9wKC44NzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICB0byh0cmFuc3BhcmVudClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA3cmVtIDdyZW07XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudXBkYXRlLWNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuXHJcbiAgICAudXBkYXRlLXRleHQge1xyXG4gICAgICBmbGV4OiAxIDEgYXV0bztcclxuICAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4gICAgICAmLnRpbWUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICBmbGV4OiAxIDAgYXV0bztcclxuICAgICAgbWFyZ2luOiAwLjNyZW0gMCAwIDAuNnJlbTtcclxuICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcblxyXG4gICAgICAmLnVwZGF0ZSB7XHJcbiAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy91cGRhdGUuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnRpbWUge1xyXG4gICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvdGltZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgbW92ZSB7XHJcbiAgMCUge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtN3JlbTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDdyZW07XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, NgZone, OnInit, OnDestroy} from '@angular/core';\r\nimport {ActivatedRoute, NavigationStart, Router} from '@angular/router';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport { ModalService } from '../_helpers/services/modal.service';\r\nimport {AUDITABLE_WALLET_HELP_PAGE} from '../_shared/constants';\r\nimport {DOWNLOADS_PAGE_URL} from '../_shared/constants';\r\n\r\nimport icons from '../../assets/icons/icons.json';\r\n\r\n@Component({\r\n selector: 'app-sidebar',\r\n templateUrl: './sidebar.component.html',\r\n styleUrls: ['./sidebar.component.scss']\r\n})\r\nexport class SidebarComponent implements OnInit, OnDestroy {\r\n walletSubRouting;\r\n\r\n walletActive: number;\r\n\r\n contacts = icons.contacts;\r\n settings = icons.settings;\r\n exit = icons.exit;\r\n\r\n isModalDialogVisible = false;\r\n closeWalletId: number;\r\n\r\n menuItemHovered: boolean;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n public variablesService: VariablesService,\r\n private backend: BackendService,\r\n private modal: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (this.router.url.indexOf('/wallet/') !== -1) {\r\n const localPathArr = this.router.url.split('/');\r\n if (localPathArr.length >= 3) {\r\n this.walletActive = parseInt(localPathArr[2], 10);\r\n }\r\n } else if (this.router.url.indexOf('/details') !== -1) {\r\n this.walletActive = this.variablesService.currentWallet.wallet_id;\r\n } else {\r\n this.walletActive = null;\r\n }\r\n\r\n this.walletSubRouting = this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationStart) {\r\n if (event.url.indexOf('/wallet/') !== -1) {\r\n const localPathArr = event.url.split('/');\r\n if (localPathArr.length >= 3) {\r\n this.walletActive = parseInt(localPathArr[2], 10);\r\n }\r\n } else if (event.url.indexOf('/details') !== -1) {\r\n this.walletActive = this.variablesService.currentWallet.wallet_id;\r\n } else {\r\n this.walletActive = null;\r\n }\r\n }\r\n });\r\n }\r\n\r\n goMainPage() {\r\n if (this.route.snapshot.queryParams && this.route.snapshot.queryParams.prevUrl === 'login') {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/'], {queryParams: {prevUrl: 'login'}});\r\n });\r\n } else {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n\r\n };\r\n\r\n contactsRoute() {\r\n if (this.variablesService.appPass) {\r\n this.router.navigate(['/contacts']);\r\n } else {\r\n this.modal.prepareModal(\r\n 'error',\r\n 'CONTACTS.FORM_ERRORS.SET_MASTER_PASSWORD'\r\n );\r\n }\r\n }\r\n\r\n showDialog(wallet_id) {\r\n this.isModalDialogVisible = true;\r\n this.closeWalletId = wallet_id;\r\n }\r\n\r\n confirmed(confirmed: boolean) {\r\n if (confirmed) {\r\n this.closeWallet(this.closeWalletId);\r\n }\r\n this.isModalDialogVisible = false;\r\n }\r\n\r\n closeWallet(wallet_id) {\r\n this.backend.closeWallet(wallet_id, () => {\r\n for (let i = this.variablesService.wallets.length - 1; i >= 0; i--) {\r\n if (this.variablesService.wallets[i].wallet_id === this.variablesService.currentWallet.wallet_id) {\r\n this.variablesService.wallets.splice(i, 1);\r\n }\r\n }\r\n this.ngZone.run(() => {\r\n if (this.variablesService.wallets.length) {\r\n this.variablesService.currentWallet = this.variablesService.wallets[0];\r\n this.router.navigate(['/wallet/' + this.variablesService.currentWallet.wallet_id]);\r\n } else {\r\n this.router.navigate(['/']);\r\n }\r\n });\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n });\r\n }\r\n\r\n getUpdate() {\r\n this.backend.openUrlInBrowser(DOWNLOADS_PAGE_URL);\r\n }\r\n goToAuditableWalletHelpPage(e) {\r\n e.preventDefault();\r\n this.backend.openUrlInBrowser(AUDITABLE_WALLET_HELP_PAGE);\r\n }\r\n\r\n logOut() {\r\n this.variablesService.stopCountdown();\r\n this.variablesService.appLogin = false;\r\n this.variablesService.appPass = '';\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/login'], {queryParams: {type: 'auth'}});\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.walletSubRouting.unsubscribe();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n {{ 'STAKING.TITLE' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'STAKING.TITLE_PENDING' | translate }}\\r\\n {{pending.total | intToMoney}} {{variablesService.defaultCurrency}}\\r\\n
\\r\\n
\\r\\n {{ 'STAKING.TITLE_TOTAL' | translate }}\\r\\n {{total | intToMoney}} {{variablesService.defaultCurrency}}\\r\\n
\\r\\n
\\r\\n
\\r\\n {{selectedDate.date | date : 'EEEE, MMMM d, y'}}\\r\\n {{selectedDate.amount}} {{variablesService.defaultCurrency}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'STAKING.TITLE_PERIOD' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n {{ 'STAKING.TITLE_GROUP' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n width: 100%; }\\n\\n.chart-header {\\n display: flex;\\n flex: 0 0 auto; }\\n\\n.chart-header .general {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n flex-grow: 1;\\n font-size: 1.3rem;\\n margin: -0.5rem 0; }\\n\\n.chart-header .general > div {\\n display: flex;\\n align-items: center;\\n margin: 0.5rem 0;\\n height: 2rem; }\\n\\n.chart-header .general > div .label {\\n display: inline-block;\\n width: 9rem; }\\n\\n.chart-header .selected {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-end;\\n justify-content: center;\\n flex-grow: 1;\\n font-size: 1.8rem; }\\n\\n.chart-header .selected span {\\n line-height: 2.9rem; }\\n\\n.chart {\\n position: relative;\\n display: flex;\\n align-items: center;\\n flex: 1 1 auto;\\n min-height: 40rem; }\\n\\n.chart > div {\\n position: absolute;\\n width: 100%;\\n height: 100%; }\\n\\n.chart-options {\\n display: flex;\\n align-items: center;\\n height: 2.4rem;\\n flex: 0 0 auto; }\\n\\n.chart-options .title {\\n font-size: 1.3rem;\\n padding: 0 1rem; }\\n\\n.chart-options .title:first-child {\\n padding-left: 0; }\\n\\n.chart-options .options {\\n display: flex;\\n justify-content: space-between;\\n flex-grow: 1;\\n height: 100%; }\\n\\n.chart-options .options button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex: 1 1 auto;\\n cursor: pointer;\\n font-size: 1.3rem;\\n margin: 0 0.1rem;\\n padding: 0;\\n height: 100%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3Rha2luZy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzdGFraW5nXFxzdGFraW5nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXLEVBQUE7O0FBR2I7RUFDRSxhQUFhO0VBQ2IsY0FBYyxFQUFBOztBQUZoQjtJQUtJLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLGlCQUFpQixFQUFBOztBQVhyQjtNQWNNLGFBQWE7TUFDYixtQkFBbUI7TUFDbkIsZ0JBQWdCO01BQ2hCLFlBQVksRUFBQTs7QUFqQmxCO1FBb0JRLHFCQUFxQjtRQUNyQixXQUFXLEVBQUE7O0FBckJuQjtJQTJCSSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLHFCQUFxQjtJQUNyQix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLGlCQUFpQixFQUFBOztBQWhDckI7TUFtQ00sbUJBQW1CLEVBQUE7O0FBS3pCO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsY0FBYztFQUNkLGlCQUFpQixFQUFBOztBQUxuQjtJQVFJLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsWUFBWSxFQUFBOztBQUloQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsY0FBYztFQUNkLGNBQWMsRUFBQTs7QUFKaEI7SUFPSSxpQkFBaUI7SUFDakIsZUFBZSxFQUFBOztBQVJuQjtNQVdNLGVBQWUsRUFBQTs7QUFYckI7SUFnQkksYUFBYTtJQUNiLDhCQUE4QjtJQUM5QixZQUFZO0lBQ1osWUFBWSxFQUFBOztBQW5CaEI7TUFzQk0sYUFBYTtNQUNiLG1CQUFtQjtNQUNuQix1QkFBdUI7TUFDdkIsY0FBYztNQUNkLGVBQWU7TUFDZixpQkFBaUI7TUFDakIsZ0JBQWdCO01BQ2hCLFVBQVU7TUFDVixZQUFZLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zdGFraW5nL3N0YWtpbmcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uY2hhcnQtaGVhZGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG5cclxuICAuZ2VuZXJhbCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIG1hcmdpbjogLTAuNXJlbSAwO1xyXG5cclxuICAgID4gZGl2IHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcclxuICAgICAgaGVpZ2h0OiAycmVtO1xyXG5cclxuICAgICAgLmxhYmVsIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDlyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zZWxlY3RlZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjlyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uY2hhcnQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZmxleDogMSAxIGF1dG87XHJcbiAgbWluLWhlaWdodDogNDByZW07XHJcblxyXG4gID4gZGl2IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLmNoYXJ0LW9wdGlvbnMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBoZWlnaHQ6IDIuNHJlbTtcclxuICBmbGV4OiAwIDAgYXV0bztcclxuXHJcbiAgLnRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgcGFkZGluZzogMCAxcmVtO1xyXG5cclxuICAgICY6Zmlyc3QtY2hpbGR7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5vcHRpb25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICBtYXJnaW46IDAgMC4xcmVtO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, NgZone, OnInit, OnDestroy} from '@angular/core';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {Chart} from 'angular-highcharts';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {IntToMoneyPipe} from '../_helpers/pipes/int-to-money.pipe';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Component({\r\n selector: 'app-staking',\r\n templateUrl: './staking.component.html',\r\n styleUrls: ['./staking.component.scss']\r\n})\r\nexport class StakingComponent implements OnInit, OnDestroy {\r\n\r\n parentRouting;\r\n heightAppEvent;\r\n refreshStackingEvent;\r\n\r\n periods = [\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.WEEK1'),\r\n key: '1 week',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.WEEK2'),\r\n key: '2 week',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.MONTH1'),\r\n key: '1 month',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.MONTH3'),\r\n key: '3 month',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.MONTH6'),\r\n key: '6 month',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.YEAR'),\r\n key: '1 year',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.ALL'),\r\n key: 'All',\r\n active: true\r\n }\r\n ];\r\n\r\n groups = [\r\n {\r\n title: this.translate.instant('STAKING.GROUP.DAY'),\r\n key: 'day',\r\n active: true\r\n },\r\n {\r\n title: this.translate.instant('STAKING.GROUP.WEEK'),\r\n key: 'week',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.GROUP.MONTH'),\r\n key: 'month',\r\n active: false\r\n }\r\n ];\r\n\r\n selectedDate = {\r\n date: null,\r\n amount: null\r\n };\r\n\r\n originalData = [];\r\n\r\n chart: Chart;\r\n\r\n total = new BigNumber(0);\r\n pending = {\r\n list: [],\r\n total: new BigNumber(0)\r\n };\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n public variablesService: VariablesService,\r\n private backend: BackendService,\r\n private ngZone: NgZone,\r\n private intToMoneyPipe: IntToMoneyPipe,\r\n private translate: TranslateService\r\n ) {\r\n }\r\n\r\n static makeGroupTime(key, date) {\r\n if (key === 'day') {\r\n return date.setHours(0, 0, 0, 0);\r\n } else if (key === 'week') {\r\n return new Date(date.setDate(date.getDate() - date.getDay())).setHours(0, 0, 0, 0);\r\n } else {\r\n return new Date(date.setDate(1)).setHours(0, 0, 0, 0);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(() => {\r\n this.getMiningHistory();\r\n });\r\n this.heightAppEvent = this.variablesService.getHeightAppEvent.subscribe((newHeight: number) => {\r\n if (!this.pending.total.isZero()) {\r\n const pendingCount = this.pending.list.length;\r\n for (let i = pendingCount - 1; i >= 0; i--) {\r\n if (newHeight - this.pending.list[i].h >= 10) {\r\n this.pending.list.splice(i, 1);\r\n }\r\n }\r\n if (pendingCount !== this.pending.list.length) {\r\n this.pending.total = new BigNumber(0);\r\n for (let i = 0; i < this.pending.list.length; i++) {\r\n this.pending.total = this.pending.total.plus(this.pending.list[i].a);\r\n }\r\n }\r\n }\r\n });\r\n this.refreshStackingEvent = this.variablesService.getRefreshStackingEvent.subscribe((wallet_id: number) => {\r\n if (this.variablesService.currentWallet.wallet_id === wallet_id) {\r\n this.getMiningHistory();\r\n }\r\n });\r\n }\r\n\r\n\r\n drawChart(data) {\r\n this.chart = new Chart({\r\n title: {text: ''},\r\n credits: {enabled: false},\r\n exporting: {enabled: false},\r\n legend: {enabled: false},\r\n chart: {\r\n type: 'line',\r\n backgroundColor: 'transparent',\r\n height: null,\r\n zoomType: null,\r\n events: {\r\n load: () => {\r\n this.changePeriod();\r\n }\r\n }\r\n },\r\n\r\n yAxis: {\r\n min: 0,\r\n tickAmount: 5,\r\n title: {\r\n text: ''\r\n },\r\n gridLineColor: '#2b3644',\r\n gridLineWidth: 2,\r\n lineColor: '#2b3644',\r\n lineWidth: 2,\r\n tickWidth: 2,\r\n tickLength: 120,\r\n tickColor: '#2b3644',\r\n labels: {\r\n y: -8,\r\n align: 'left',\r\n x: -120,\r\n style: {\r\n 'color': '#e0e0e0',\r\n 'fontSize': '13px'\r\n },\r\n format: '{value} ' + this.variablesService.defaultCurrency\r\n },\r\n showLastLabel: false,\r\n },\r\n\r\n xAxis: {\r\n type: 'datetime',\r\n gridLineColor: '#2b3644',\r\n lineColor: '#2b3644',\r\n lineWidth: 2,\r\n tickWidth: 2,\r\n tickLength: 10,\r\n tickColor: '#2b3644',\r\n labels: {\r\n style: {\r\n 'color': '#e0e0e0',\r\n 'fontSize': '13px'\r\n }\r\n },\r\n minPadding: 0,\r\n maxPadding: 0,\r\n minRange: 86400000,\r\n // tickInterval: 86400000,\r\n minTickInterval: 3600000,\r\n },\r\n\r\n tooltip: {\r\n enabled: false\r\n },\r\n\r\n plotOptions: {\r\n area: {\r\n fillColor: {\r\n linearGradient: {\r\n x1: 0,\r\n y1: 0,\r\n x2: 0,\r\n y2: 1\r\n },\r\n stops: [\r\n [0, 'rgba(124,181,236,0.2)'],\r\n [1, 'rgba(124,181,236,0)']\r\n ]\r\n },\r\n marker: {\r\n enabled: false,\r\n radius: 2\r\n },\r\n lineWidth: 2,\r\n threshold: null\r\n },\r\n\r\n series: {\r\n point: {\r\n events: {\r\n mouseOver: (obj) => {\r\n this.selectedDate.date = obj.target['x'];\r\n this.selectedDate.amount = obj.target['y'];\r\n }\r\n }\r\n },\r\n events: {\r\n mouseOut: () => {\r\n this.selectedDate.date = null;\r\n this.selectedDate.amount = null;\r\n }\r\n }\r\n }\r\n },\r\n series: [\r\n {\r\n type: 'area',\r\n data: data\r\n }\r\n ]\r\n });\r\n }\r\n\r\n\r\n getMiningHistory() {\r\n if (this.variablesService.currentWallet.loaded) {\r\n this.backend.getMiningHistory(this.variablesService.currentWallet.wallet_id, (status, data) => {\r\n this.total = new BigNumber(0);\r\n this.pending.list = [];\r\n this.pending.total = new BigNumber(0);\r\n this.originalData = [];\r\n if (data.mined_entries) {\r\n data.mined_entries.forEach((item, key) => {\r\n if (item.t.toString().length === 10) {\r\n data.mined_entries[key].t = (new Date(item.t * 1000)).setUTCMilliseconds(0);\r\n }\r\n });\r\n data.mined_entries.forEach((item) => {\r\n this.total = this.total.plus(item.a);\r\n if (this.variablesService.height_app - item.h < 10) {\r\n this.pending.list.push(item);\r\n this.pending.total = this.pending.total.plus(item.a);\r\n }\r\n this.originalData.push([parseInt(item.t, 10), parseFloat(this.intToMoneyPipe.transform(item.a))]);\r\n });\r\n this.originalData = this.originalData.sort(function (a, b) {\r\n return a[0] - b[0];\r\n });\r\n }\r\n this.ngZone.run(() => {\r\n this.drawChart([]);\r\n });\r\n });\r\n }\r\n }\r\n\r\n changePeriod(period?) {\r\n if (period) {\r\n this.periods.forEach((p) => {\r\n p.active = false;\r\n });\r\n period.active = true;\r\n } else {\r\n period = this.periods.find((p) => p.active);\r\n }\r\n\r\n const d = new Date();\r\n let min = null;\r\n const newData = [];\r\n\r\n const group = this.groups.find((g) => g.active);\r\n\r\n if (period.key === '1 week') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 7, 0, 0, 0, 0);\r\n } else if (period.key === '2 week') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 14, 0, 0, 0, 0);\r\n } else if (period.key === '1 month') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth() - 1, d.getDate(), 0, 0, 0, 0);\r\n } else if (period.key === '3 month') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth() - 3, d.getDate(), 0, 0, 0, 0);\r\n } else if (period.key === '6 month') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth() - 6, d.getDate(), 0, 0, 0, 0);\r\n } else if (period.key === '1 year') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear() - 1, d.getMonth(), d.getDate(), 0, 0, 0, 0);\r\n } else {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n }\r\n\r\n this.chart.ref.xAxis[0].setExtremes(min, null);\r\n }\r\n\r\n changeGroup(group) {\r\n this.groups.forEach((g) => {\r\n g.active = false;\r\n });\r\n group.active = true;\r\n this.changePeriod();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n this.heightAppEvent.unsubscribe();\r\n this.refreshStackingEvent.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ wallet.name }}\\r\\n {{ 'BREADCRUMBS.TRANSFER_ALIAS' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
0 && (transferAddressAlias || !transferAddressValid || (transferAddressValid && !permissionSend) || notEnoughMoney)\\\">\\r\\n
\\r\\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.WRONG_ADDRESS' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.ALIAS_EXISTS' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
{{ \\\"TRANSFER_ALIAS.COST\\\" | translate : {value: variablesService.default_fee, currency: variablesService.defaultCurrency} }}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \".form-transfer {\\n margin: 2.4rem 0; }\\n .form-transfer .alias-name {\\n width: 50%; }\\n .form-transfer .alias-cost {\\n font-size: 1.3rem;\\n margin-top: 2rem; }\\n .form-transfer .wrap-buttons {\\n display: flex;\\n justify-content: space-between;\\n margin: 2.5rem -0.7rem; }\\n .form-transfer .wrap-buttons button {\\n margin: 0 0.7rem;\\n width: 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdHJhbnNmZXItYWxpYXMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcdHJhbnNmZXItYWxpYXNcXHRyYW5zZmVyLWFsaWFzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFBQTtFQVRwQjtJQWFJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsc0JBQXNCLEVBQUE7RUFmMUI7TUFrQk0sZ0JBQWdCO01BQ2hCLFlBQVksRUFBQSIsImZpbGUiOiJzcmMvYXBwL3RyYW5zZmVyLWFsaWFzL3RyYW5zZmVyLWFsaWFzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tdHJhbnNmZXIge1xyXG4gIG1hcmdpbjogMi40cmVtIDA7XHJcblxyXG4gIC5hbGlhcy1uYW1lIHtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgfVxyXG5cclxuICAuYWxpYXMtY29zdCB7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIG1hcmdpbi10b3A6IDJyZW07XHJcbiAgfVxyXG5cclxuICAud3JhcC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW46IDIuNXJlbSAtMC43cmVtO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjdyZW07XHJcbiAgICAgIHdpZHRoOiAxNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, NgZone, OnInit} from '@angular/core';\r\nimport {Location} from '@angular/common';\r\nimport {Router} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\n\r\n@Component({\r\n selector: 'app-transfer-alias',\r\n templateUrl: './transfer-alias.component.html',\r\n styleUrls: ['./transfer-alias.component.scss']\r\n})\r\nexport class TransferAliasComponent implements OnInit {\r\n\r\n wallet: Wallet;\r\n alias: any;\r\n transferAddress = '';\r\n transferAddressValid: boolean;\r\n transferAddressAlias: boolean;\r\n permissionSend: boolean;\r\n notEnoughMoney: boolean;\r\n requestProcessing = false;\r\n\r\n constructor(\r\n private location: Location,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.wallet = this.variablesService.currentWallet;\r\n const alias = this.backend.getWalletAlias(this.wallet.address);\r\n this.alias = {\r\n name: alias.name,\r\n address: alias.address,\r\n comment: alias.comment,\r\n tracking_key: alias.tracking_key\r\n };\r\n this.notEnoughMoney = this.wallet.unlocked_balance.isLessThan(this.variablesService.default_fee_big);\r\n }\r\n\r\n changeAddress() {\r\n this.backend.validateAddress(this.transferAddress, status => {\r\n this.transferAddressValid = status;\r\n if (status) {\r\n this.backend.getPoolInfo((statusPool, dataPool) => {\r\n if (dataPool.hasOwnProperty('aliases_que') && dataPool.aliases_que.length) {\r\n this.setStatus(!dataPool.aliases_que.some((el) => el.address === this.transferAddress));\r\n } else {\r\n this.setStatus(status);\r\n }\r\n });\r\n } else {\r\n this.setStatus(false);\r\n }\r\n });\r\n }\r\n\r\n setStatus(statusSet) {\r\n this.permissionSend = statusSet;\r\n if (statusSet) {\r\n this.backend.getAliasByAddress(this.transferAddress, (status) => {\r\n this.ngZone.run(() => {\r\n if (status) {\r\n this.transferAddressAlias = true;\r\n this.permissionSend = false;\r\n } else {\r\n this.transferAddressAlias = false;\r\n }\r\n });\r\n });\r\n } else {\r\n this.ngZone.run(() => {\r\n this.transferAddressAlias = false;\r\n });\r\n }\r\n }\r\n\r\n transferAlias() {\r\n if (this.requestProcessing || !this.permissionSend || !this.transferAddressValid || this.notEnoughMoney) {\r\n return;\r\n }\r\n this.requestProcessing = true;\r\n const newAlias = {\r\n name: this.alias.name,\r\n address: this.transferAddress,\r\n comment: this.alias.comment,\r\n tracking_key: this.alias.tracking_key\r\n };\r\n this.backend.updateAlias(this.wallet.wallet_id, newAlias, this.variablesService.default_fee, (status, data) => {\r\n if (status && data.hasOwnProperty('success') && data.success) {\r\n this.modalService.prepareModal('info', 'TRANSFER_ALIAS.REQUEST_SEND_REG');\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet.wallet_id]);\r\n });\r\n }\r\n this.requestProcessing = false;\r\n });\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n @bitmain\\r\\n
\\r\\n \\r\\n \\r\\n {{ 'COMMON.BACK' | translate }}\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
10:39
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
\\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
\\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
\\r\\n
11:44
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
\\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
12:15
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
\\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
13:13
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
\\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n width: 100%; }\\n\\n.head {\\n flex: 0 0 auto;\\n box-sizing: content-box;\\n margin: -3rem -3rem 0; }\\n\\n.messages-content {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n flex-grow: 1; }\\n\\n.messages-content .messages-list {\\n display: flex;\\n flex-direction: column;\\n font-size: 1.3rem;\\n margin: 1rem -3rem;\\n padding: 0 3rem;\\n overflow-y: overlay; }\\n\\n.messages-content .messages-list div {\\n margin: 0.7rem 0; }\\n\\n.messages-content .messages-list div.date {\\n text-align: center; }\\n\\n.messages-content .messages-list div.my, .messages-content .messages-list div.buddy {\\n position: relative;\\n padding: 1.8rem;\\n max-width: 60%; }\\n\\n.messages-content .messages-list div.buddy {\\n align-self: flex-end; }\\n\\n.messages-content .type-message {\\n display: flex;\\n flex: 0 0 auto;\\n width: 100%;\\n height: 4.2rem; }\\n\\n.messages-content .type-message .input-block {\\n width: 100%; }\\n\\n.messages-content .type-message .input-block > textarea {\\n min-height: 4.2rem; }\\n\\n.messages-content .type-message button {\\n flex: 0 0 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdHlwaW5nLW1lc3NhZ2UvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcdHlwaW5nLW1lc3NhZ2VcXHR5cGluZy1tZXNzYWdlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXLEVBQUE7O0FBR2I7RUFDRSxjQUFjO0VBQ2QsdUJBQXVCO0VBQ3ZCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsOEJBQThCO0VBQzlCLFlBQVksRUFBQTs7QUFKZDtJQU9JLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsbUJBQW1CLEVBQUE7O0FBWnZCO01BZU0sZ0JBQWdCLEVBQUE7O0FBZnRCO1FBa0JRLGtCQUFrQixFQUFBOztBQWxCMUI7UUFzQlEsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixjQUFjLEVBQUE7O0FBeEJ0QjtRQTRCUSxvQkFBb0IsRUFBQTs7QUE1QjVCO0lBa0NJLGFBQWE7SUFDYixjQUFjO0lBQ2QsV0FBVztJQUNYLGNBQWMsRUFBQTs7QUFyQ2xCO01Bd0NNLFdBQVcsRUFBQTs7QUF4Q2pCO1FBMkNRLGtCQUFrQixFQUFBOztBQTNDMUI7TUFnRE0sZUFBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvdHlwaW5nLW1lc3NhZ2UvdHlwaW5nLW1lc3NhZ2UuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uaGVhZCB7XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgbWFyZ2luOiAtM3JlbSAtM3JlbSAwO1xyXG59XHJcblxyXG4ubWVzc2FnZXMtY29udGVudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBmbGV4LWdyb3c6IDE7XHJcblxyXG4gIC5tZXNzYWdlcy1saXN0IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBtYXJnaW46IDFyZW0gLTNyZW07XHJcbiAgICBwYWRkaW5nOiAwIDNyZW07XHJcbiAgICBvdmVyZmxvdy15OiBvdmVybGF5O1xyXG5cclxuICAgIGRpdiB7XHJcbiAgICAgIG1hcmdpbjogMC43cmVtIDA7XHJcblxyXG4gICAgICAmLmRhdGUge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5teSwgJi5idWRkeSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHBhZGRpbmc6IDEuOHJlbTtcclxuICAgICAgICBtYXgtd2lkdGg6IDYwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5idWRkeSB7XHJcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50eXBlLW1lc3NhZ2Uge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXg6IDAgMCBhdXRvO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDQuMnJlbTtcclxuXHJcbiAgICAuaW5wdXQtYmxvY2sge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgID4gdGV4dGFyZWEge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDQuMnJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGZsZXg6IDAgMCAxNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-typing-message',\r\n templateUrl: './typing-message.component.html',\r\n styleUrls: ['./typing-message.component.scss']\r\n})\r\nexport class TypingMessageComponent implements OnInit {\r\n\r\n messagesId: number;\r\n private subMessages: any;\r\n\r\n constructor(private route: ActivatedRoute) {\r\n this.route.params.subscribe( params => console.log(params) );\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n {{variablesService.currentWallet.name}}\\r\\n {{ 'BREADCRUMBS.WALLET_DETAILS' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\\r\\n
\\r\\n
\\r\\n
= variablesService.maxWalletNameLength\\\">\\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\\r\\n

\\r\\n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }} \\r\\n 0\\\">{{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }} \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
= 1 && (index + 1) <= 7 || (index + 1) >= 15 && (index + 1) <= 21\\\">\\r\\n {{(index + 1) + '. ' + word}}
\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \".form-details {\\n margin-top: 1.8rem; }\\n .form-details .input-block:first-child {\\n width: 50%; }\\n .form-details .wallet-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: space-between; }\\n .form-details .wallet-buttons button {\\n margin: 2.9rem 0;\\n width: 100%;\\n max-width: 15rem; }\\n .mt-2 {\\n margin-top: 2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvd2FsbGV0LWRldGFpbHMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcd2FsbGV0LWRldGFpbHNcXHdhbGxldC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7RUFEcEI7SUFNTSxVQUFVLEVBQUE7RUFOaEI7SUFXSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4QixFQUFBO0VBYmxDO01BZ0JNLGdCQUFnQjtNQUNoQixXQUFXO01BQ1gsZ0JBQWdCLEVBQUE7RUFLdEI7RUFDRSxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3dhbGxldC1kZXRhaWxzL3dhbGxldC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tZGV0YWlscyB7XHJcbiAgbWFyZ2luLXRvcDogMS44cmVtO1xyXG5cclxuICAuaW5wdXQtYmxvY2sge1xyXG5cclxuICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLndhbGxldC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMi45cmVtIDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXgtd2lkdGg6IDE1cmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm10LTIge1xyXG4gIG1hcmdpbi10b3A6IDJyZW07XHJcbn1cclxuIl19 */\"","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-wallet-details',\r\n templateUrl: './wallet-details.component.html',\r\n styleUrls: ['./wallet-details.component.scss'],\r\n})\r\nexport class WalletDetailsComponent implements OnInit, OnDestroy {\r\n seedPhrase = '';\r\n showSeed = false;\r\n copyAnimation = false;\r\n\r\n detailsForm = new FormGroup({\r\n name: new FormControl('', [\r\n Validators.required,\r\n (g: FormControl) => {\r\n for (let i = 0; i < this.variablesService.wallets.length; i++) {\r\n if (g.value === this.variablesService.wallets[i].name) {\r\n if (\r\n this.variablesService.wallets[i].wallet_id ===\r\n this.variablesService.currentWallet.wallet_id\r\n ) {\r\n return { same: true };\r\n } else {\r\n return { duplicate: true };\r\n }\r\n }\r\n }\r\n return null;\r\n },\r\n ]),\r\n path: new FormControl(''),\r\n });\r\n\r\n seedPhraseForm = new FormGroup(\r\n {\r\n password: new FormControl(\r\n '',\r\n Validators.pattern(this.variablesService.pattern)\r\n ),\r\n confirmPassword: new FormControl(\r\n '',\r\n Validators.pattern(this.variablesService.pattern)\r\n ),\r\n },\r\n { validators: this.checkPasswords }\r\n );\r\n\r\n checkPasswords(group: FormGroup) {\r\n const pass = group.controls.password.value;\r\n const confirmPass = group.controls.confirmPassword.value;\r\n\r\n return pass === confirmPass ? null : { notSame: true };\r\n }\r\n\r\n constructor(\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private ngZone: NgZone,\r\n private location: Location\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.showSeed = false;\r\n this.detailsForm\r\n .get('name')\r\n .setValue(this.variablesService.currentWallet.name);\r\n this.detailsForm\r\n .get('path')\r\n .setValue(this.variablesService.currentWallet.path);\r\n }\r\n\r\n showSeedPhrase() {\r\n this.showSeed = true;\r\n }\r\n\r\n onSubmitSeed() {\r\n if (this.seedPhraseForm.valid) {\r\n this.showSeedPhrase();\r\n const wallet_id = this.variablesService.currentWallet.wallet_id;\r\n const seed_password = this.seedPhraseForm.controls.password.value;\r\n this.backend.getSmartWalletInfo(\r\n { wallet_id, seed_password },\r\n (status, data) => {\r\n if (data.hasOwnProperty('seed_phrase')) {\r\n this.ngZone.run(() => {\r\n this.seedPhrase = data['seed_phrase'].trim();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n onSubmitEdit() {\r\n if (this.detailsForm.value) {\r\n this.variablesService.currentWallet.name = this.detailsForm.get(\r\n 'name'\r\n ).value;\r\n this.ngZone.run(() => {\r\n this.router.navigate([\r\n '/wallet/' + this.variablesService.currentWallet.wallet_id,\r\n ]);\r\n });\r\n }\r\n }\r\n\r\n closeWallet() {\r\n this.backend.closeWallet(\r\n this.variablesService.currentWallet.wallet_id,\r\n () => {\r\n for (let i = this.variablesService.wallets.length - 1; i >= 0; i--) {\r\n if (\r\n this.variablesService.wallets[i].wallet_id ===\r\n this.variablesService.currentWallet.wallet_id\r\n ) {\r\n this.variablesService.wallets.splice(i, 1);\r\n }\r\n }\r\n this.ngZone.run(() => {\r\n if (this.variablesService.wallets.length) {\r\n this.variablesService.currentWallet = this.variablesService.wallets[0];\r\n this.router.navigate([\r\n '/wallet/' + this.variablesService.currentWallet.wallet_id,\r\n ]);\r\n } else {\r\n this.router.navigate(['/']);\r\n }\r\n });\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n }\r\n );\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n ngOnDestroy() {\r\n\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n

{{variablesService.currentWallet.name}}

\\r\\n
\\r\\n \\r\\n
\\r\\n {{variablesService.currentWallet.alias['name']}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{variablesService.currentWallet.address}}\\r\\n \\r\\n
\\r\\n
\\r\\n {{variablesService.currentWallet.balance | intToMoney : '3'}} {{variablesService.defaultCurrency}}\\r\\n $ {{variablesService.currentWallet.getMoneyEquivalent(variablesService.moneyEquivalent) | intToMoney | number : '1.2-2'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ tab.title | translate }}\\r\\n {{variablesService.currentWallet.new_contracts}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n <\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n >\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n Hide mining transactions\\r\\n
\\r\\n {{ 'STAKING.SWITCH.ON' | translate }}\\r\\n \\r\\n {{ 'STAKING.SWITCH.OFF' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n padding: 0 3rem 3rem;\\n min-width: 95rem;\\n width: 100%;\\n height: 100%; }\\n\\n.header {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n flex: 0 0 auto;\\n height: 8rem; }\\n\\n.header > div {\\n display: flex;\\n align-items: center; }\\n\\n.header > div :not(:last-child) {\\n margin-right: 3.2rem; }\\n\\n.header h3 {\\n font-size: 1.7rem;\\n font-weight: 600;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap;\\n max-width: 50rem;\\n line-height: 2.7rem; }\\n\\n.header button {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n cursor: pointer;\\n font-weight: 400;\\n outline: none;\\n padding: 0; }\\n\\n.header button .icon {\\n margin-right: 1.2rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.header button .icon.account {\\n height: 1.6rem;\\n -webkit-mask: url('account.svg') no-repeat center;\\n mask: url('account.svg') no-repeat center; }\\n\\n.header button .icon.lock {\\n -webkit-mask: url('lock.svg') no-repeat center;\\n mask: url('lock.svg') no-repeat center; }\\n\\n.header button .icon.details {\\n -webkit-mask: url('details-settings.svg') no-repeat center;\\n mask: url('details-settings.svg') no-repeat center;\\n margin-right: 0;\\n height: 1.8rem; }\\n\\n.header button .icon.close-wallet {\\n -webkit-mask: url('close-wallet.svg') no-repeat center;\\n mask: url('close-wallet.svg') no-repeat center;\\n margin-right: 0; }\\n\\n.header .alias {\\n display: flex;\\n align-items: center;\\n font-size: 1.3rem; }\\n\\n.header .alias .icon {\\n cursor: pointer;\\n margin-right: 1.2rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.header .alias .icon.edit {\\n -webkit-mask: url('details.svg') no-repeat center;\\n mask: url('details.svg') no-repeat center; }\\n\\n.header .alias .icon.transfer {\\n -webkit-mask: url('send.svg') no-repeat center;\\n mask: url('send.svg') no-repeat center; }\\n\\n.address {\\n display: flex;\\n align-items: center;\\n flex: 0 0 auto;\\n font-size: 1.4rem;\\n line-height: 1.7rem; }\\n\\n.address .icon {\\n cursor: pointer;\\n margin-left: 1.2rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.address .icon.copy {\\n width: 1.8rem;\\n -webkit-mask: url('copy.svg') no-repeat center;\\n mask: url('copy.svg') no-repeat center; }\\n\\n.address .icon.copy:hover {\\n opacity: 0.75; }\\n\\n.address .icon.copied {\\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\\n mask: url('complete-testwallet.svg') no-repeat center; }\\n\\n.balance {\\n display: flex;\\n align-items: flex-end;\\n justify-content: flex-start;\\n flex: 0 0 auto;\\n margin: 2.6rem 0; }\\n\\n.balance :first-child {\\n font-size: 3.3rem;\\n font-weight: 600;\\n line-height: 2.4rem;\\n margin-right: 3.5rem; }\\n\\n.balance :last-child {\\n font-size: 1.8rem;\\n font-weight: 600;\\n line-height: 1.3rem; }\\n\\n.tabs {\\n display: flex;\\n flex-direction: column;\\n flex: 1 1 auto; }\\n\\n.tabs .tabs-header {\\n display: flex;\\n justify-content: space-between;\\n flex: 0 0 auto; }\\n\\n.tabs .tabs-header .tab {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex: 1 0 auto;\\n cursor: pointer;\\n padding: 0 1rem;\\n height: 5rem; }\\n\\n.tabs .tabs-header .tab.hide {\\n display: none; }\\n\\n.tabs .tabs-header .tab .animated {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin-right: 1.3rem; }\\n\\n.tabs .tabs-header .tab .animated ::ng-deep svg {\\n width: 2rem;\\n height: 2rem; }\\n\\n.tabs .tabs-header .tab .animated ::ng-deep svg path, .tabs .tabs-header .tab .animated ::ng-deep svg circle, .tabs .tabs-header .tab .animated ::ng-deep svg polygon {\\n fill: #4db1ff; }\\n\\n.tabs .tabs-header .tab .icon {\\n margin-right: 1.3rem;\\n width: 2rem;\\n height: 2rem; }\\n\\n.tabs .tabs-header .tab .icon.send {\\n -webkit-mask: url('send.svg') no-repeat center;\\n mask: url('send.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.receive {\\n -webkit-mask: url('receive.svg') no-repeat center;\\n mask: url('receive.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.history {\\n -webkit-mask: url('history.svg') no-repeat center;\\n mask: url('history.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.contracts {\\n -webkit-mask: url('contracts.svg') no-repeat center;\\n mask: url('contracts.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.messages {\\n -webkit-mask: url('message.svg') no-repeat center;\\n mask: url('message.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.staking {\\n -webkit-mask: url('staking.svg') no-repeat center;\\n mask: url('staking.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .indicator {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 1rem;\\n font-size: 1rem;\\n font-weight: 600;\\n margin-left: 1.3rem;\\n padding: 0 0.5rem;\\n min-width: 1.6rem;\\n height: 1.6rem; }\\n\\n.tabs .tabs-header .tab.disabled {\\n cursor: url('not-allowed.svg'), not-allowed; }\\n\\n.tabs .tabs-header .tab:not(:last-child) {\\n margin-right: 0.3rem; }\\n\\n.tabs .tabs-content {\\n display: flex;\\n padding: 3rem;\\n flex: 1 1 auto;\\n overflow-x: hidden;\\n overflow-y: overlay; }\\n\\n.tabs .pagination-wrapper .pagination {\\n padding: 1rem;\\n display: flex;\\n justify-content: space-between;\\n align-items: center; }\\n\\n.tabs .pagination-wrapper .pagination button {\\n margin-right: 0.5rem;\\n padding: 0;\\n width: 2.5rem;\\n height: 2.5rem;\\n font-size: 1.2rem;\\n transition: all 0.3s; }\\n\\n.tabs .pagination-wrapper .pagination .disabled {\\n background-color: #18202a;\\n color: #e0e0e0;\\n opacity: 0.3;\\n cursor: default;\\n transition: all 0.3s; }\\n\\n.mining-transaction-switch {\\n display: flex;\\n align-items: center; }\\n\\n.mining-transaction-switch .switch-text {\\n margin-right: 1rem;\\n font-size: 1.3rem;\\n color: #565c62; }\\n\\n.mining-transaction-switch .switch {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n border-radius: 1rem;\\n cursor: pointer;\\n font-size: 1rem;\\n padding: 0.5rem;\\n width: 5rem;\\n height: 2rem; }\\n\\n.mining-transaction-switch .switch .circle {\\n border-radius: 1rem;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n.mining-transaction-switch .switch .option {\\n margin: 0 0.2rem;\\n line-height: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvd2FsbGV0L0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXHdhbGxldFxcd2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsb0JBQW9CO0VBQ3BCLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsWUFBWSxFQUFBOztBQUdkO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsY0FBYztFQUNkLFlBQVksRUFBQTs7QUFMZDtJQVFJLGFBQWE7SUFDYixtQkFBbUIsRUFBQTs7QUFUdkI7TUFZTSxvQkFBb0IsRUFBQTs7QUFaMUI7SUFpQkksaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQix1QkFBdUI7SUFDdkIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsbUJBQW1CLEVBQUE7O0FBdkJ2QjtJQTJCSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixZQUFZO0lBQ1osZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixhQUFhO0lBQ2IsVUFBVSxFQUFBOztBQWxDZDtNQXFDTSxvQkFBb0I7TUFDcEIsYUFBYTtNQUNiLGNBQWMsRUFBQTs7QUF2Q3BCO1FBMENRLGNBQWM7UUFDZCxpREFBMEQ7Z0JBQTFELHlDQUEwRCxFQUFBOztBQTNDbEU7UUErQ1EsOENBQXVEO2dCQUF2RCxzQ0FBdUQsRUFBQTs7QUEvQy9EO1FBbURRLDBEQUFtRTtnQkFBbkUsa0RBQW1FO1FBQ25FLGVBQWU7UUFDZixjQUFjLEVBQUE7O0FBckR0QjtRQXlEUSxzREFBK0Q7Z0JBQS9ELDhDQUErRDtRQUMvRCxlQUFlLEVBQUE7O0FBMUR2QjtJQWdFSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGlCQUFpQixFQUFBOztBQWxFckI7TUFxRU0s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QVksRUFBQTs7QUFsQmhCO01BcUJNLG1CQUFtQjtNQUNuQixhQUFhO01BQ2IsY0FBYyxFQUFBOztBQXZCcEI7TUEyQk0sZ0JBQWdCO01BQ2hCLG1CQUFtQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvd2FsbGV0L3dhbGxldC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHBhZGRpbmc6IDAgM3JlbSAzcmVtO1xyXG4gIG1pbi13aWR0aDogOTVyZW07XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uaGVhZGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIGhlaWdodDogOHJlbTtcclxuXHJcbiAgPiBkaXYge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDMuMnJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGgzIHtcclxuICAgIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBtYXgtd2lkdGg6IDUwcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjJyZW07XHJcbiAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgIGhlaWdodDogMS43cmVtO1xyXG5cclxuICAgICAgJi5hY2NvdW50IHtcclxuICAgICAgICBoZWlnaHQ6IDEuNnJlbTtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2FjY291bnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmxvY2sge1xyXG4gICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvbG9jay5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuZGV0YWlscyB7XHJcbiAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9kZXRhaWxzLXNldHRpbmdzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiAxLjhyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuY2xvc2Utd2FsbGV0IHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2Nsb3NlLXdhbGxldC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuYWxpYXMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjJyZW07XHJcbiAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgIGhlaWdodDogMS43cmVtO1xyXG5cclxuICAgICAgJi5lZGl0IHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2RldGFpbHMuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnRyYW5zZmVyIHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3NlbmQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uYWRkcmVzcyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjdyZW07XHJcblxyXG4gIC5pY29uIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07XHJcbiAgICB3aWR0aDogMS43cmVtO1xyXG4gICAgaGVpZ2h0OiAxLjdyZW07XHJcblxyXG4gICAgJi5jb3B5IHtcclxuICAgICAgd2lkdGg6IDEuOHJlbTtcclxuICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9jb3B5LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIG9wYWNpdHk6IDAuNzU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmNvcGllZCB7XHJcbiAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvY29tcGxldGUtdGVzdHdhbGxldC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uYmFsYW5jZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIG1hcmdpbjogMi42cmVtIDA7XHJcblxyXG4gIDpmaXJzdC1jaGlsZCB7XHJcbiAgICBmb250LXNpemU6IDMuM3JlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAzLjVyZW07XHJcbiAgfVxyXG5cclxuICA6bGFzdC1jaGlsZCB7XHJcbiAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zcmVtO1xyXG4gIH1cclxufVxyXG5cclxuLnRhYnMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBmbGV4OiAxIDEgYXV0bztcclxuXHJcbiAgLnRhYnMtaGVhZGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4OiAwIDAgYXV0bztcclxuXHJcbiAgICAudGFiIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICAgICAgaGVpZ2h0OiA1cmVtO1xyXG4gICAgICAmLmhpZGUge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgICAgLmFuaW1hdGVkIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjNyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5hbmltYXRlZCA6Om5nLWRlZXAgc3ZnIHtcclxuXHJcbiAgICAgICAgd2lkdGg6IDJyZW07XHJcbiAgICAgICAgaGVpZ2h0OiAycmVtO1xyXG5cclxuICAgICAgICBwYXRoLCBjaXJjbGUsIHBvbHlnb24ge1xyXG4gICAgICAgICAgZmlsbDogIzRkYjFmZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5pY29uIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuM3JlbTtcclxuICAgICAgICB3aWR0aDogMnJlbTtcclxuICAgICAgICBoZWlnaHQ6IDJyZW07XHJcblxyXG4gICAgICAgICYuc2VuZCB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3NlbmQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5yZWNlaXZlIHtcclxuICAgICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvcmVjZWl2ZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmhpc3Rvcnkge1xyXG4gICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9oaXN0b3J5LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuY29udHJhY3RzIHtcclxuICAgICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvY29udHJhY3RzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYubWVzc2FnZXMge1xyXG4gICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9tZXNzYWdlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuc3Rha2luZyB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3N0YWtpbmcuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmluZGljYXRvciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuM3JlbTtcclxuICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcclxuICAgICAgICBtaW4td2lkdGg6IDEuNnJlbTtcclxuICAgICAgICBoZWlnaHQ6IDEuNnJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5kaXNhYmxlZCB7XHJcbiAgICAgICAgY3Vyc29yOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL25vdC1hbGxvd2VkLnN2ZyksIG5vdC1hbGxvd2VkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMC4zcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudGFicy1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBwYWRkaW5nOiAzcmVtO1xyXG4gICAgZmxleDogMSAxIGF1dG87XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICBvdmVyZmxvdy15OiBvdmVybGF5O1xyXG4gIH1cclxuXHJcblxyXG4gIC5wYWdpbmF0aW9uLXdyYXBwZXIge1xyXG4gICAgLnBhZ2luYXRpb24ge1xyXG4gICAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB3aWR0aDogMi41cmVtO1xyXG4gICAgICAgIGhlaWdodDogMi41cmVtO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG4gICAgICB9XHJcbiAgICAgIC5kaXNhYmxlZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE4MjAyYTtcclxuICAgICAgICBjb2xvcjogI2UwZTBlMDtcclxuICAgICAgICBvcGFjaXR5OiAwLjM7XHJcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubWluaW5nLXRyYW5zYWN0aW9uLXN3aXRjaCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIC5zd2l0Y2gtdGV4dCB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIGNvbG9yOiAjNTY1YzYyO1xyXG4gIH1cclxuXHJcbiAgLnN3aXRjaCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICBwYWRkaW5nOiAwLjVyZW07XHJcbiAgICB3aWR0aDogNXJlbTtcclxuICAgIGhlaWdodDogMnJlbTtcclxuXHJcbiAgICAuY2lyY2xlIHtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcclxuICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLm9wdGlvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjJyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0= */\"","import {\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n NgZone,\r\n ViewChild,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport { ActivatedRoute, Router, RoutesRecognized } from '@angular/router';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { IntToMoneyPipe } from '../_helpers/pipes/int-to-money.pipe';\r\nimport { Subscription } from 'rxjs';\r\nimport { LOCKED_BALANCE_HELP_PAGE } from '../_shared/constants';\r\n\r\nimport icons from '../../assets/icons/icons.json';\r\nimport { PaginationService } from '../_helpers/services/pagination.service';\r\nimport { PaginationStore } from '../_helpers/services/pagination.store';\r\nimport { Store, Sync } from 'store';\r\nimport { Wallet } from '../_helpers/models/wallet.model';\r\nimport { distinctUntilChanged, filter } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-wallet',\r\n templateUrl: './wallet.component.html',\r\n styleUrls: ['./wallet.component.scss'],\r\n})\r\nexport class WalletComponent implements OnInit, OnDestroy {\r\n subRouting1;\r\n subRouting2;\r\n queryRouting;\r\n walletID;\r\n copyAnimation = false;\r\n copyAnimationTimeout;\r\n balanceTooltip;\r\n walletLoaded;\r\n activeTab = 'history';\r\n public mining = false;\r\n public currentPage = 1;\r\n wallet: Wallet;\r\n sync_started = false;\r\n stop_paginate = false;\r\n\r\n @ViewChild('scrolledContent') private scrolledContent: ElementRef;\r\n\r\n tabs = [\r\n {\r\n title: 'WALLET.TABS.HISTORY',\r\n icon: 'history',\r\n link: '/history',\r\n indicator: false,\r\n active: true,\r\n animated: icons.history,\r\n itemHovered: false,\r\n },\r\n {\r\n title: 'WALLET.TABS.SEND',\r\n icon: 'send',\r\n link: '/send',\r\n indicator: false,\r\n active: false,\r\n animated: icons.send,\r\n itemHovered: false,\r\n },\r\n {\r\n title: 'WALLET.TABS.RECEIVE',\r\n icon: 'receive',\r\n link: '/receive',\r\n indicator: false,\r\n active: false,\r\n animated: icons.receive,\r\n itemHovered: false,\r\n },\r\n {\r\n title: 'WALLET.TABS.CONTRACTS',\r\n icon: 'contracts',\r\n link: '/contracts',\r\n indicator: 1,\r\n active: false,\r\n animated: icons.contracts,\r\n itemHovered: false,\r\n },\r\n /*{\r\n title: 'WALLET.TABS.MESSAGES',\r\n icon: 'messages',\r\n link: '/messages',\r\n indicator: 32,\r\n active: false,\r\n animated: icons.messages,\r\n itemHovered: false\r\n },*/\r\n {\r\n title: 'WALLET.TABS.STAKING',\r\n icon: 'staking',\r\n link: '/staking',\r\n indicator: false,\r\n active: false,\r\n animated: icons.staking,\r\n itemHovered: false,\r\n },\r\n ];\r\n aliasSubscription: Subscription;\r\n walletsSubscription: Subscription;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService,\r\n private intToMoneyPipe: IntToMoneyPipe,\r\n private pagination: PaginationService,\r\n private paginationStore: PaginationStore,\r\n private store: Store\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subRouting1 = this.route.params.subscribe((params) => {\r\n // set current wallet only by user click to avoid after sync show synchronized data\r\n this.walletID = +params['id'];\r\n this.walletLoaded = this.variablesService.getWallet(this.walletID).loaded;\r\n this.variablesService.setCurrentWallet(this.walletID);\r\n this.walletsSubscription = this.store\r\n .select('sync')\r\n .pipe(filter(Boolean), distinctUntilChanged())\r\n .subscribe((value) => {\r\n const data = value.filter(\r\n (item: Sync) => item.wallet_id === this.walletID\r\n )[0];\r\n if (data && !data.sync) {\r\n let in_progress;\r\n const values = this.store.value.sync;\r\n if (values && values.length) {\r\n in_progress = values.filter((item) => item.sync);\r\n this.variablesService.sync_started = !!(\r\n in_progress && in_progress.length\r\n );\r\n if (!in_progress) {\r\n this.variablesService.sync_started = false;\r\n }\r\n } else {\r\n this.variablesService.sync_started = false;\r\n }\r\n }\r\n let restore = false;\r\n if (\r\n this.variablesService.after_sync_request.hasOwnProperty(\r\n this.walletID\r\n )\r\n ) {\r\n restore = this.variablesService.after_sync_request[this.walletID];\r\n }\r\n if (\r\n !this.variablesService.sync_started &&\r\n restore &&\r\n this.walletID === (data && data.wallet_id)\r\n ) {\r\n this.wallet = this.variablesService.getNotLoadedWallet();\r\n if (this.wallet) {\r\n this.tick();\r\n }\r\n // if this is was restore wallet and it was selected on moment when sync completed\r\n this.getRecentTransfers();\r\n this.variablesService.after_sync_request[this.walletID] = false;\r\n }\r\n });\r\n let after_sync_request = false;\r\n if (\r\n this.variablesService.after_sync_request.hasOwnProperty(this.walletID)\r\n ) {\r\n after_sync_request = this.variablesService.after_sync_request[\r\n this.walletID\r\n ];\r\n }\r\n if (after_sync_request && !this.variablesService.sync_started) {\r\n // if user click on the wallet at the first time after restore.\r\n this.getRecentTransfers();\r\n }\r\n\r\n if (this.variablesService.stop_paginate.hasOwnProperty(this.walletID)) {\r\n this.stop_paginate = this.variablesService.stop_paginate[this.walletID];\r\n } else {\r\n this.stop_paginate = false;\r\n }\r\n // this will hide pagination a bit earlier\r\n this.wallet = this.variablesService.getNotLoadedWallet();\r\n if (this.wallet) {\r\n this.tick();\r\n }\r\n\r\n this.scrolledContent.nativeElement.scrollTop = 0;\r\n clearTimeout(this.copyAnimationTimeout);\r\n this.copyAnimation = false;\r\n this.mining = this.variablesService.currentWallet.exclude_mining_txs;\r\n\r\n if (this.variablesService.wallets.length === 1) {\r\n this.walletID = +params['id'];\r\n this.variablesService.setCurrentWallet(this.walletID);\r\n }\r\n });\r\n this.subRouting2 = this.router.events.subscribe((val) => {\r\n if (val instanceof RoutesRecognized) {\r\n this.activeTab = val.urlAfterRedirects\r\n .replace('?sidenav=true', '')\r\n .split('/')\r\n .pop();\r\n if (val.state.root.firstChild && val.state.root.firstChild.firstChild) {\r\n for (let i = 0; i < this.tabs.length; i++) {\r\n this.tabs[i].active =\r\n this.tabs[i].link ===\r\n '/' + val.state.root.firstChild.firstChild.url[0].path;\r\n }\r\n }\r\n }\r\n });\r\n this.queryRouting = this.route.queryParams.subscribe((params) => {\r\n if (params.send) {\r\n this.tabs.forEach((tab, index) => {\r\n if (tab.link === '/send') {\r\n this.changeTab(index);\r\n }\r\n });\r\n }\r\n });\r\n if (this.variablesService.currentWallet.alias.hasOwnProperty('name')) {\r\n this.variablesService.currentWallet.wakeAlias = false;\r\n }\r\n this.aliasSubscription = this.variablesService.getAliasChangedEvent.subscribe(\r\n () => {\r\n if (this.variablesService.currentWallet.alias.hasOwnProperty('name')) {\r\n this.variablesService.currentWallet.wakeAlias = false;\r\n }\r\n }\r\n );\r\n this.updateWalletStatus();\r\n }\r\n resetPaginationValues() {\r\n this.ngZone.run(() => {\r\n const total_history_item = this.variablesService.currentWallet\r\n .total_history_item;\r\n const count = this.variablesService.count;\r\n this.variablesService.currentWallet.totalPages = Math.ceil(\r\n total_history_item / count\r\n );\r\n this.variablesService.currentWallet.exclude_mining_txs = this.mining;\r\n this.variablesService.currentWallet.currentPage = 1;\r\n\r\n if (!this.variablesService.currentWallet.totalPages) {\r\n this.variablesService.currentWallet.totalPages = 1;\r\n }\r\n this.variablesService.currentWallet.totalPages >\r\n this.variablesService.maxPages\r\n ? (this.variablesService.currentWallet.pages = new Array(5)\r\n .fill(1)\r\n .map((value, index) => value + index))\r\n : (this.variablesService.currentWallet.pages = new Array(\r\n this.variablesService.currentWallet.totalPages\r\n )\r\n .fill(1)\r\n .map((value, index) => value + index));\r\n });\r\n }\r\n\r\n changeTab(index) {\r\n if (\r\n ((this.tabs[index].link === '/send' ||\r\n this.tabs[index].link === '/contracts' ||\r\n this.tabs[index].link === '/staking') &&\r\n (this.variablesService.daemon_state !== 2 ||\r\n !this.variablesService.currentWallet.loaded)) ||\r\n ((this.tabs[index].link === '/send' ||\r\n this.tabs[index].link === '/contracts') &&\r\n this.variablesService.currentWallet.is_watch_only &&\r\n this.variablesService.currentWallet.is_auditable)\r\n ) {\r\n return;\r\n }\r\n this.tabs.forEach((tab) => {\r\n tab.active = false;\r\n });\r\n this.tabs[index].active = true;\r\n this.ngZone.run(() => {\r\n this.scrolledContent.nativeElement.scrollTop = 0;\r\n this.router.navigate(['wallet/' + this.walletID + this.tabs[index].link]);\r\n });\r\n }\r\n\r\n itemHovered(index, state: boolean) {\r\n this.tabs[index].itemHovered = state;\r\n }\r\n\r\n copyAddress() {\r\n this.backend.setClipboard(this.variablesService.currentWallet.address);\r\n this.copyAnimation = true;\r\n this.copyAnimationTimeout = window.setTimeout(() => {\r\n this.copyAnimation = false;\r\n }, 2000);\r\n }\r\n\r\n getTooltip() {\r\n this.balanceTooltip = document.createElement('div');\r\n const available = document.createElement('span');\r\n available.setAttribute('class', 'available');\r\n available.innerHTML = this.translate.instant('WALLET.AVAILABLE_BALANCE', {\r\n available: this.intToMoneyPipe.transform(\r\n this.variablesService.currentWallet.unlocked_balance\r\n ),\r\n currency: this.variablesService.defaultCurrency,\r\n });\r\n this.balanceTooltip.appendChild(available);\r\n const locked = document.createElement('span');\r\n locked.setAttribute('class', 'locked');\r\n locked.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE', {\r\n locked: this.intToMoneyPipe.transform(\r\n this.variablesService.currentWallet.balance.minus(\r\n this.variablesService.currentWallet.unlocked_balance\r\n )\r\n ),\r\n currency: this.variablesService.defaultCurrency,\r\n });\r\n this.balanceTooltip.appendChild(locked);\r\n const link = document.createElement('span');\r\n link.setAttribute('class', 'link');\r\n link.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE_LINK');\r\n link.addEventListener('click', () => {\r\n this.openInBrowser(LOCKED_BALANCE_HELP_PAGE);\r\n });\r\n this.balanceTooltip.appendChild(link);\r\n return this.balanceTooltip;\r\n }\r\n\r\n onHideTooltip() {\r\n this.balanceTooltip = null;\r\n }\r\n\r\n openInBrowser(link) {\r\n this.backend.openUrlInBrowser(link);\r\n }\r\n\r\n public setPage(pageNumber: number) {\r\n // this is will allow pagination for wallets that was open from existed wallets'\r\n if (\r\n this.variablesService.currentWallet.open_from_exist &&\r\n !this.variablesService.currentWallet.updated\r\n ) {\r\n this.variablesService.get_recent_transfers = false;\r\n this.variablesService.currentWallet.updated = true;\r\n }\r\n if (pageNumber === this.variablesService.currentWallet.currentPage) {\r\n return;\r\n }\r\n // if not running get_recent_transfers callback\r\n if (!this.variablesService.get_recent_transfers) {\r\n this.variablesService.currentWallet.currentPage = pageNumber;\r\n }\r\n if (!this.variablesService.get_recent_transfers) {\r\n this.getRecentTransfers();\r\n }\r\n }\r\n\r\n toggleMiningTransactions() {\r\n if (!this.variablesService.sync_started && !this.wallet) {\r\n const value = this.paginationStore.value;\r\n if (!value) {\r\n this.paginationStore.setPage(1, 0, this.walletID); // add back page for the first page\r\n } else {\r\n const pages = value.filter((item) => item.walletID === this.walletID);\r\n if (!pages.length) {\r\n this.paginationStore.setPage(1, 0, this.walletID); // add back page for the first page\r\n }\r\n }\r\n this.mining = !this.mining;\r\n this.resetPaginationValues();\r\n this.getRecentTransfers();\r\n }\r\n }\r\n\r\n tick() {\r\n const walletInterval = setInterval(() => {\r\n this.wallet = this.variablesService.getNotLoadedWallet();\r\n if (!this.wallet) {\r\n clearInterval(walletInterval);\r\n }\r\n }, 1000);\r\n }\r\n\r\n getRecentTransfers() {\r\n const offset = this.pagination.getOffset(this.walletID);\r\n const value = this.paginationStore.value;\r\n const pages = value\r\n ? value.filter((item) => item.walletID === this.walletID)\r\n : [];\r\n\r\n this.backend.getRecentTransfers(\r\n this.walletID,\r\n offset,\r\n this.variablesService.count,\r\n this.variablesService.currentWallet.exclude_mining_txs,\r\n (status, data) => {\r\n const isForward = this.paginationStore.isForward(\r\n pages,\r\n this.variablesService.currentWallet.currentPage\r\n );\r\n if (this.mining && isForward && pages && pages.length === 1) {\r\n this.variablesService.currentWallet.currentPage = 1; // set init page after navigation back\r\n }\r\n\r\n const history = data && data.history;\r\n this.variablesService.stop_paginate[this.walletID] =\r\n (history && history.length < this.variablesService.count) || !history;\r\n this.stop_paginate = this.variablesService.stop_paginate[this.walletID];\r\n if (!this.variablesService.stop_paginate[this.walletID]) {\r\n const page = this.variablesService.currentWallet.currentPage + 1;\r\n if (\r\n isForward &&\r\n this.mining &&\r\n history &&\r\n history.length === this.variablesService.count\r\n ) {\r\n this.paginationStore.setPage(\r\n page,\r\n data.last_item_index,\r\n this.walletID\r\n ); // add back page for current page\r\n }\r\n }\r\n\r\n this.pagination.calcPages(data);\r\n this.pagination.prepareHistory(data, status);\r\n\r\n this.ngZone.run(() => {\r\n this.variablesService.get_recent_transfers = false;\r\n if (\r\n this.variablesService.after_sync_request.hasOwnProperty(\r\n this.walletID\r\n )\r\n ) {\r\n // this is will complete get_recent_transfers request\r\n // this will switch of\r\n this.variablesService.after_sync_request[this.walletID] = false;\r\n }\r\n });\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subRouting1.unsubscribe();\r\n this.subRouting2.unsubscribe();\r\n this.queryRouting.unsubscribe();\r\n this.aliasSubscription.unsubscribe();\r\n if (this.walletsSubscription) {\r\n this.walletsSubscription.unsubscribe();\r\n }\r\n clearTimeout(this.copyAnimationTimeout);\r\n }\r\n\r\n updateWalletStatus() {\r\n this.backend.eventSubscribe('wallet_sync_progress', (data) => {\r\n const wallet_id = data.wallet_id;\r\n if (wallet_id === this.walletID) {\r\n this.ngZone.run(() => {\r\n this.walletLoaded = false;\r\n });\r\n }\r\n });\r\n this.backend.eventSubscribe('update_wallet_status', (data) => {\r\n const wallet_state = data.wallet_state;\r\n const wallet_id = data.wallet_id;\r\n this.ngZone.run(() => {\r\n if (wallet_state === 2 && wallet_id === this.walletID) {\r\n this.walletLoaded =\r\n this.variablesService.getWallet(this.walletID) !== null &&\r\n this.variablesService.getWallet(this.walletID).loaded\r\n ? true\r\n : false;\r\n } else {\r\n this.walletLoaded = false;\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\nimport 'lodash';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","import { pluck, distinctUntilChanged } from 'rxjs/operators';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { Wallet } from './app/_helpers/models/wallet.model';\r\nexport interface Sync {\r\n sync: boolean;\r\n wallet_id: number;\r\n}\r\n\r\nexport interface State {\r\n wallets: Wallet[];\r\n sync: Sync[];\r\n [key: string]: any;\r\n}\r\n\r\nconst state: State = {\r\n wallets: undefined,\r\n sync: undefined,\r\n};\r\n\r\nexport class Store {\r\n private subject = new BehaviorSubject(state);\r\n private store = this.subject.asObservable().pipe(distinctUntilChanged());\r\n\r\n get value() {\r\n return this.subject.value;\r\n }\r\n\r\n select(name: string): Observable {\r\n return this.store.pipe(pluck(name));\r\n }\r\n\r\n // tslint:disable-next-line:no-shadowed-variable\r\n set(name: string, state: any) {\r\n this.subject.next({ ...this.value, [name]: state });\r\n }\r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/src/gui/qt-daemon/html/styles.js b/src/gui/qt-daemon/html/styles.js index 15749fb0..383090a9 100644 --- a/src/gui/qt-daemon/html/styles.js +++ b/src/gui/qt-daemon/html/styles.js @@ -7,7 +7,7 @@ /*! no static exports found */ /***/ (function(module, exports) { -module.exports = [[module.i, "/*\r\n* Implementation of themes\r\n*/\n.ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}\n.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}\n.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}\n.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}\n.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}\n.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}\n.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:#007eff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 0 3px rgba(0,126,255,0.1)}\n.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}\n.ng-select .ng-has-value .ng-placeholder{display:none}\n.ng-select .ng-select-container{background-color:#fff;border-radius:4px;border:1px solid #ccc;min-height:36px;align-items:center}\n.ng-select .ng-select-container:hover{box-shadow:0 1px 0 rgba(0,0,0,0.06)}\n.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}\n[dir=\"rtl\"] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}\n.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}\n.ng-select.ng-select-single .ng-select-container{height:36px}\n.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}\n[dir=\"rtl\"] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}\n.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}\n.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;background-color:#ebf5ff;border-radius:2px;margin-right:5px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label{display:inline-block;padding:1px 5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}\n.ng-select .ng-clear-wrapper{color:#999}\n.ng-select .ng-clear-wrapper:hover .ng-clear{color:#D0021B}\n.ng-select .ng-spinner-zone{padding:5px 5px 0 0}\n[dir=\"rtl\"] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}\n.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}\n[dir=\"rtl\"] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}\n.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}\n.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}\n.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,0.06);left:0}\n.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-color:#e6e6e6;margin-top:-1px}\n.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}\n.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}\n.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}\n.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}\n.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:rgba(0,0,0,0.54);cursor:pointer}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5faff}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{background-color:#ebf5ff;font-weight:600}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:rgba(0,0,0,0.87);padding:8px 10px}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#ebf5ff}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5faff;color:#333}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}\n[dir=\"rtl\"] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}\n[dir=\"rtl\"] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}\n[dir=\"rtl\"] .ng-dropdown-panel{direction:rtl;text-align:right}\nhtml {\n box-sizing: border-box;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box; }\n*, *:before, *:after {\n box-sizing: inherit;\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n margin: 0;\n padding: 0;\n -webkit-touch-collout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none; }\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline; }\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block; }\nbody {\n line-height: 1;\n font-style: normal; }\nol, ul {\n list-style: none; }\nblockquote, q {\n quotes: none; }\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: none; }\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\ntd,\nth {\n padding: 0; }\ninput {\n outline: none; }\ninput:-webkit-autofill {\n -webkit-box-shadow: 0 0 0 1000px white inset; }\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n outline: none; }\nbutton[disabled],\nhtml input[disabled] {\n cursor: default; }\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0; }\ninput {\n line-height: normal; }\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box; }\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none; }\na {\n text-decoration: none; }\na:active, a:hover, a:focus {\n outline: 0; }\ni {\n font-style: italic; }\nb, strong {\n font-weight: 700; }\nimg {\n width: auto;\n max-width: 100%;\n height: auto;\n vertical-align: top;\n border: 0; }\n.hidden {\n display: none !important; }\n.theme-dark .app-content .preloader .loading-bar {\n background-color: #5cda9d; }\n.theme-gray .app-content .preloader .loading-bar {\n background-color: #47cf8d; }\n.theme-white .app-content .preloader .loading-bar {\n background-color: #46c172; }\nbutton {\n border: none;\n font-family: OpenSans, sans-serif;\n font-size: 1.5rem;\n font-weight: 600;\n outline: none;\n padding: 0 1rem;\n height: 4.2rem; }\n.theme-dark button:disabled:not(.transparent-button), .theme-dark button.blue-button_reset {\n background-color: #9cadb7;\n color: #111921; }\n.theme-gray button:disabled:not(.transparent-button), .theme-gray button.blue-button_reset {\n background-color: #79848f;\n color: #1a1a1a; }\n.theme-white button:disabled:not(.transparent-button), .theme-white button.blue-button_reset {\n background-color: #90a4ae;\n color: #fefefe; }\n.theme-dark button:disabled:not(.transparent-button):hover, .theme-dark button.blue-button_reset:hover {\n background-color: #b7d1e0; }\n.theme-gray button:disabled:not(.transparent-button):hover, .theme-gray button.blue-button_reset:hover {\n background-color: #a1aebb; }\n.theme-white button:disabled:not(.transparent-button):hover, .theme-white button.blue-button_reset:hover {\n background-color: #aebec6; }\n.theme-dark button:disabled:not(.transparent-button):focus, .theme-dark button.blue-button_reset:focus {\n background-color: #a7b9c2; }\n.theme-gray button:disabled:not(.transparent-button):focus, .theme-gray button.blue-button_reset:focus {\n background-color: #8a959f; }\n.theme-white button:disabled:not(.transparent-button):focus, .theme-white button.blue-button_reset:focus {\n background-color: #a7b9c2; }\n.theme-dark button.blue-button:not(:disabled) {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray button.blue-button:not(:disabled) {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white button.blue-button:not(:disabled) {\n background-color: #2c95f1;\n color: #fefefe; }\n.theme-dark button.blue-button:not(:disabled):hover {\n background-color: #82d7ff; }\n.theme-gray button.blue-button:not(:disabled):hover {\n background-color: #86d6ff; }\n.theme-white button.blue-button:not(:disabled):hover {\n background-color: #5cb3ff; }\n.theme-dark button.blue-button:not(:disabled):focus {\n background-color: #59b5fd; }\n.theme-gray button.blue-button:not(:disabled):focus {\n background-color: #5fb6fc; }\n.theme-white button.blue-button:not(:disabled):focus {\n background-color: #379ffa; }\n.theme-dark button.green-button:not(:disabled) {\n background-color: #5cda9d;\n color: #111921; }\n.theme-gray button.green-button:not(:disabled) {\n background-color: #47cf8d;\n color: #1a1a1a; }\n.theme-white button.green-button:not(:disabled) {\n background-color: #46c172;\n color: #fefefe; }\n.theme-dark button.green-button:not(:disabled):hover {\n background-color: #8dfcc6; }\n.theme-gray button.green-button:not(:disabled):hover {\n background-color: #7bf6c6; }\n.theme-white button.green-button:not(:disabled):hover {\n background-color: #5ad586; }\n.theme-dark button.green-button:not(:disabled):focus {\n background-color: #62e0b2; }\n.theme-gray button.green-button:not(:disabled):focus {\n background-color: #5cdc9e; }\n.theme-white button.green-button:not(:disabled):focus {\n background-color: #53c77c; }\n.theme-dark button.turquoise-button:not(:disabled) {\n background-color: #4dd0e1;\n color: #111921; }\n.theme-gray button.turquoise-button:not(:disabled) {\n background-color: #3ec5d7;\n color: #1a1a1a; }\n.theme-white button.turquoise-button:not(:disabled) {\n background-color: #26b6c7;\n color: #fefefe; }\n.theme-dark button.turquoise-button:not(:disabled):hover {\n background-color: #87f4f5; }\n.theme-gray button.turquoise-button:not(:disabled):hover {\n background-color: #72edfe; }\n.theme-white button.turquoise-button:not(:disabled):hover {\n background-color: #52cbd9; }\n.theme-dark button.turquoise-button:not(:disabled):focus {\n background-color: #42d5e8; }\n.theme-gray button.turquoise-button:not(:disabled):focus {\n background-color: #50d0e1; }\n.theme-white button.turquoise-button:not(:disabled):focus {\n background-color: #31becf; }\nbutton.transparent-button {\n display: flex;\n align-items: center;\n justify-content: center; }\n.theme-dark button.transparent-button {\n background-color: transparent;\n border: 0.2rem solid #2b3644;\n color: #e0e0e0; }\n.theme-gray button.transparent-button {\n background-color: transparent;\n border: 0.2rem solid #2f3438;\n color: #e0e0e0; }\n.theme-white button.transparent-button {\n background-color: transparent;\n border: 0.2rem solid #ebebeb;\n color: #43454b; }\nbutton.transparent-button .icon {\n margin-right: 1rem;\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\n mask: url('complete-testwallet.svg') no-repeat center;\n width: 1.7rem;\n height: 1.7rem; }\n.theme-dark button.transparent-button .icon {\n background-color: #e0e0e0; }\n.theme-gray button.transparent-button .icon {\n background-color: #e0e0e0; }\n.theme-white button.transparent-button .icon {\n background-color: #43454b; }\n.input-block {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n margin-bottom: 0.4rem; }\n.input-block .wrap-label {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n min-height: 2.4rem; }\n.input-block label {\n font-size: 1.3rem;\n line-height: 2.4rem; }\n.theme-dark .input-block label {\n color: #556576; }\n.theme-gray .input-block label {\n color: #565c62; }\n.theme-white .input-block label {\n color: #a0a5ab; }\n.input-block input[type='text'], .input-block input[type='password'], .input-block select {\n border: none;\n font-size: 1.4rem;\n outline: none;\n padding: 0 1rem;\n width: 100%;\n height: 4.2rem; }\n.theme-dark .input-block input[type='text'], .theme-dark .input-block input[type='password'], .theme-dark .input-block select {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .input-block input[type='text'], .theme-gray .input-block input[type='password'], .theme-gray .input-block select {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .input-block input[type='text'], .theme-white .input-block input[type='password'], .theme-white .input-block select {\n background-color: #e6e6e6;\n color: #43454b; }\n.input-block.textarea {\n height: auto; }\n.input-block.textarea textarea {\n font-family: OpenSans, sans-serif;\n border: none;\n font-size: 1.4rem;\n outline: none;\n padding: 1rem;\n width: 100%;\n min-width: 100%;\n height: 100%;\n min-height: 7.5rem;\n max-height: 7.5rem;\n overflow: auto;\n resize: none; }\n.theme-dark .input-block.textarea textarea {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .input-block.textarea textarea {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .input-block.textarea textarea {\n background-color: #e6e6e6;\n color: #43454b; }\n.input-block .error-block {\n font-size: 1rem;\n line-height: 1.4rem;\n align-self: flex-end;\n text-align: right; }\n.theme-dark .input-block .error-block {\n color: #ff5252; }\n.theme-gray .input-block .error-block {\n color: #ff5252; }\n.theme-white .input-block .error-block {\n color: #ff5252; }\n.input-block .success-block {\n font-size: 1rem;\n line-height: 1.4rem;\n align-self: flex-end;\n text-align: right; }\n.theme-dark .input-block .success-block {\n color: #5cda9d; }\n.theme-gray .input-block .success-block {\n color: #47cf8d; }\n.theme-white .input-block .success-block {\n color: #46c172; }\n.theme-dark .error-text {\n color: #ff5252; }\n.theme-gray .error-text {\n color: #ff5252; }\n.theme-white .error-text {\n color: #ff5252; }\ninput[type='radio'].style-radio + label {\n display: flex;\n align-items: center;\n cursor: pointer;\n font-weight: 400;\n padding-left: 2.4rem;\n -webkit-touch-collout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none; }\n.theme-dark input[type='radio'].style-radio + label {\n color: #556576; }\n.theme-gray input[type='radio'].style-radio + label {\n color: #565c62; }\n.theme-white input[type='radio'].style-radio + label {\n color: #a0a5ab; }\ninput[type='radio'].style-radio:not(checked) {\n position: absolute;\n opacity: 0; }\ninput[type='radio'].style-radio:not(checked) + label {\n position: relative; }\ninput[type='radio'].style-radio:not(checked) + label:before {\n content: '';\n position: absolute;\n top: 0.7rem;\n left: 0;\n background: transparent;\n border-radius: 50%;\n width: 1.4rem;\n height: 1.4rem; }\n.theme-dark input[type='radio'].style-radio:not(checked) + label:before {\n border: 0.1rem solid #4db1ff; }\n.theme-gray input[type='radio'].style-radio:not(checked) + label:before {\n border: 0.1rem solid #42a5f5; }\n.theme-white input[type='radio'].style-radio:not(checked) + label:before {\n border: 0.1rem solid #2c95f1; }\ninput[type='radio'].style-radio:not(checked) + label:after {\n content: '';\n position: absolute;\n top: 1rem;\n left: 0.3rem;\n border-radius: 50%;\n opacity: 0;\n width: 0.8rem;\n height: 0.8rem; }\n.theme-dark input[type='radio'].style-radio:not(checked) + label:after {\n background-color: #4db1ff; }\n.theme-gray input[type='radio'].style-radio:not(checked) + label:after {\n background-color: #42a5f5; }\n.theme-white input[type='radio'].style-radio:not(checked) + label:after {\n background-color: #2c95f1; }\ninput[type='radio'].style-radio:checked + label:after {\n opacity: 1; }\ninput[type='checkbox'].style-checkbox + label {\n display: flex;\n align-items: center;\n cursor: pointer;\n font-weight: 400;\n padding-left: 3.6rem;\n -webkit-touch-collout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none; }\n.theme-dark input[type='checkbox'].style-checkbox + label {\n color: #556576; }\n.theme-gray input[type='checkbox'].style-checkbox + label {\n color: #565c62; }\n.theme-white input[type='checkbox'].style-checkbox + label {\n color: #a0a5ab; }\ninput[type='checkbox'].style-checkbox:not(checked) {\n position: absolute;\n top: 50%;\n left: 1.6rem;\n transform: translateY(-50%);\n visibility: hidden; }\ninput[type='checkbox'].style-checkbox:not(checked) + label {\n position: relative; }\ninput[type='checkbox'].style-checkbox:not(checked) + label:before {\n content: '';\n position: absolute;\n top: 50%;\n left: 1.6rem;\n transform: translateY(-50%);\n background: transparent;\n width: 1.4rem;\n height: 1.4rem; }\n.theme-dark input[type='checkbox'].style-checkbox:not(checked) + label:before {\n border: 0.1rem solid #4db1ff; }\n.theme-gray input[type='checkbox'].style-checkbox:not(checked) + label:before {\n border: 0.1rem solid #42a5f5; }\n.theme-white input[type='checkbox'].style-checkbox:not(checked) + label:before {\n border: 0.1rem solid #2c95f1; }\ninput[type='checkbox'].style-checkbox:checked + label:before {\n background: url('complete-testwallet.svg'); }\n.theme-dark input[type='checkbox'].style-checkbox:checked + label:before {\n background-color: #4db1ff; }\n.theme-gray input[type='checkbox'].style-checkbox:checked + label:before {\n background-color: #42a5f5; }\n.theme-white input[type='checkbox'].style-checkbox:checked + label:before {\n background-color: #2c95f1; }\n.theme-dark .switch {\n background-color: #000000; }\n.theme-gray .switch {\n background-color: #000000; }\n.theme-white .switch {\n background-color: #e0e0e0; }\n.theme-dark .switch .circle.on {\n background-color: #4db1ff; }\n.theme-gray .switch .circle.on {\n background-color: #42a5f5; }\n.theme-white .switch .circle.on {\n background-color: #2c95f1; }\n.theme-dark .switch .circle.off {\n background-color: #556576; }\n.theme-gray .switch .circle.off {\n background-color: #565c62; }\n.theme-white .switch .circle.off {\n background-color: #a0a5ab; }\n.table-tooltip {\n padding: 1rem 2rem; }\n.theme-dark .table-tooltip {\n background: #42505f;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-gray .table-tooltip {\n background: #3e464c;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-white .table-tooltip {\n background: #ffffff;\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5);\n color: #43454b; }\n.table-tooltip .tooltip-inner {\n font-size: 1.3rem;\n line-height: 1.8rem;\n white-space: pre-wrap; }\n.table-tooltip.ng-tooltip-top {\n margin-top: -1rem; }\n.table-tooltip.ng-tooltip-top:after {\n content: \"\";\n position: absolute;\n bottom: -1rem;\n left: calc(50% - 0.5rem);\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-top:after {\n border-color: #42505f transparent transparent transparent; }\n.theme-gray .table-tooltip.ng-tooltip-top:after {\n border-color: #3e464c transparent transparent transparent; }\n.theme-white .table-tooltip.ng-tooltip-top:after {\n border-color: #ffffff transparent transparent transparent; }\n.table-tooltip.ng-tooltip-top-left {\n margin-top: -1rem; }\n.table-tooltip.ng-tooltip-top-left:after {\n content: \"\";\n position: absolute;\n bottom: -1rem;\n left: 0.7rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-top-left:after {\n border-color: #42505f transparent transparent #42505f; }\n.theme-gray .table-tooltip.ng-tooltip-top-left:after {\n border-color: #3e464c transparent transparent #3e464c; }\n.theme-white .table-tooltip.ng-tooltip-top-left:after {\n border-color: #ffffff transparent transparent #ffffff; }\n.table-tooltip.ng-tooltip-top-right {\n margin-top: -1rem; }\n.table-tooltip.ng-tooltip-top-right:after {\n content: \"\";\n position: absolute;\n bottom: -1rem;\n right: 0.7rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-top-right:after {\n border-color: #42505f #42505f transparent transparent; }\n.theme-gray .table-tooltip.ng-tooltip-top-right:after {\n border-color: #3e464c #3e464c transparent transparent; }\n.theme-white .table-tooltip.ng-tooltip-top-right:after {\n border-color: #ffffff #ffffff transparent transparent; }\n.table-tooltip.ng-tooltip-bottom {\n margin-top: 1rem; }\n.table-tooltip.ng-tooltip-bottom:before {\n content: \"\";\n position: absolute;\n top: -1rem;\n left: calc(50% - 0.5rem);\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-bottom:before {\n border-color: transparent transparent #42505f transparent; }\n.theme-gray .table-tooltip.ng-tooltip-bottom:before {\n border-color: transparent transparent #3e464c transparent; }\n.theme-white .table-tooltip.ng-tooltip-bottom:before {\n border-color: transparent transparent #ffffff transparent; }\n.table-tooltip.ng-tooltip-bottom-left {\n margin-top: 1rem; }\n.table-tooltip.ng-tooltip-bottom-left:before {\n content: \"\";\n position: absolute;\n top: -1rem;\n left: 0.7rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-bottom-left:before {\n border-color: transparent transparent #42505f #42505f; }\n.theme-gray .table-tooltip.ng-tooltip-bottom-left:before {\n border-color: transparent transparent #3e464c #3e464c; }\n.theme-white .table-tooltip.ng-tooltip-bottom-left:before {\n border-color: transparent transparent #ffffff #ffffff; }\n.table-tooltip.ng-tooltip-bottom-right {\n margin-top: 1rem; }\n.table-tooltip.ng-tooltip-bottom-right:before {\n content: \"\";\n position: absolute;\n top: -1rem;\n right: 0.7rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-bottom-right:before {\n border-color: transparent #42505f #42505f transparent; }\n.theme-gray .table-tooltip.ng-tooltip-bottom-right:before {\n border-color: transparent #3e464c #3e464c transparent; }\n.theme-white .table-tooltip.ng-tooltip-bottom-right:before {\n border-color: transparent #ffffff #ffffff transparent; }\n.table-tooltip.ng-tooltip-left {\n margin-left: -1rem; }\n.table-tooltip.ng-tooltip-left:after {\n content: \"\";\n position: absolute;\n top: calc(50% - 0.5rem);\n right: -1rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-left:after {\n border-color: transparent transparent transparent #42505f; }\n.theme-gray .table-tooltip.ng-tooltip-left:after {\n border-color: transparent transparent transparent #3e464c; }\n.theme-white .table-tooltip.ng-tooltip-left:after {\n border-color: transparent transparent transparent #ffffff; }\n.table-tooltip.ng-tooltip-right {\n margin-left: 1rem; }\n.table-tooltip.ng-tooltip-right:before {\n content: \"\";\n position: absolute;\n top: calc(50% - 0.5rem);\n left: -1rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-right:before {\n border-color: transparent #42505f transparent transparent; }\n.theme-gray .table-tooltip.ng-tooltip-right:before {\n border-color: transparent #3e464c transparent transparent; }\n.theme-white .table-tooltip.ng-tooltip-right:before {\n border-color: transparent #ffffff transparent transparent; }\n.table-tooltip-dimensions .tooltip-inner {\n overflow: auto;\n max-width: 20rem;\n max-height: 10rem; }\n.balance-tooltip {\n padding: 1.3rem; }\n.theme-dark .balance-tooltip {\n background: #42505f;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-gray .balance-tooltip {\n background: #3e464c;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-white .balance-tooltip {\n background: #ffffff;\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5);\n color: #43454b; }\n.balance-tooltip .tooltip-inner {\n display: flex;\n flex-direction: column;\n font-size: 1.3rem; }\n.balance-tooltip .tooltip-inner .available {\n margin-bottom: 1.7rem; }\n.balance-tooltip .tooltip-inner .available b {\n font-weight: 600; }\n.balance-tooltip .tooltip-inner .locked {\n margin-bottom: 0.7rem; }\n.balance-tooltip .tooltip-inner .locked b {\n font-weight: 600; }\n.balance-tooltip .tooltip-inner .link {\n cursor: pointer; }\n.theme-dark .balance-tooltip .tooltip-inner .link {\n color: #4db1ff; }\n.theme-gray .balance-tooltip .tooltip-inner .link {\n color: #42a5f5; }\n.theme-white .balance-tooltip .tooltip-inner .link {\n color: #2c95f1; }\n.balance-tooltip.ng-tooltip-top {\n margin-top: -1rem; }\n.balance-tooltip.ng-tooltip-bottom {\n margin-top: 1rem; }\n.balance-tooltip.ng-tooltip-left {\n margin-left: -1rem; }\n.balance-tooltip.ng-tooltip-right {\n margin-left: 1rem; }\n.account-tooltip .tooltip-inner {\n word-break: break-word;\n max-width: 18rem; }\n.comment-tooltip .tooltip-inner {\n overflow: auto;\n word-break: break-word;\n max-width: 50rem;\n max-height: 25rem; }\n.update-tooltip {\n padding: 1.5rem; }\n.theme-dark .update-tooltip {\n background: #42505f;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-gray .update-tooltip {\n background: #3e464c;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-white .update-tooltip {\n background: #ffffff;\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5);\n color: #43454b; }\n.theme-dark .update-tooltip.important {\n background: #5f2b11;\n color: #e0e0e0; }\n.theme-gray .update-tooltip.important {\n background: #55240d;\n color: #e0e0e0; }\n.theme-white .update-tooltip.important {\n background: #ef6c00;\n color: #ffffff; }\n.theme-dark .update-tooltip.important.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #5f2b11 #5f2b11; }\n.theme-gray .update-tooltip.important.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #55240d #55240d; }\n.theme-white .update-tooltip.important.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #ef6c00 #ef6c00; }\n.theme-dark .update-tooltip.important.ng-tooltip-right-bottom:before {\n border-color: transparent #5f2b11 #5f2b11 transparent; }\n.theme-gray .update-tooltip.important.ng-tooltip-right-bottom:before {\n border-color: transparent #55240d #55240d transparent; }\n.theme-white .update-tooltip.important.ng-tooltip-right-bottom:before {\n border-color: transparent #ef6c00 #ef6c00 transparent; }\n.update-tooltip.critical {\n padding: 2.5rem; }\n.theme-dark .update-tooltip.critical {\n background: #5f1d1d;\n color: #e0e0e0; }\n.theme-gray .update-tooltip.critical {\n background: #4c1919;\n color: #e0e0e0; }\n.theme-white .update-tooltip.critical {\n background: #e53935;\n color: #ffffff; }\n.update-tooltip.critical .tooltip-inner {\n display: flex;\n flex-direction: column;\n align-items: center; }\n.theme-dark .update-tooltip.critical.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #5f1d1d #5f1d1d; }\n.theme-gray .update-tooltip.critical.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #4c1919 #4c1919; }\n.theme-white .update-tooltip.critical.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #e53935 #e53935; }\n.theme-dark .update-tooltip.critical.ng-tooltip-right-bottom:before {\n border-color: transparent #5f1d1d #5f1d1d transparent; }\n.theme-gray .update-tooltip.critical.ng-tooltip-right-bottom:before {\n border-color: transparent #4c1919 #4c1919 transparent; }\n.theme-white .update-tooltip.critical.ng-tooltip-right-bottom:before {\n border-color: transparent #e53935 #e53935 transparent; }\n.update-tooltip .tooltip-inner {\n font-size: 1.3rem;\n line-height: 1.8rem;\n white-space: pre-wrap; }\n.update-tooltip .tooltip-inner .standard-update {\n font-size: 1.5rem;\n line-height: 2.7rem; }\n.theme-dark .update-tooltip .tooltip-inner .standard-update {\n color: #4db1ff; }\n.theme-gray .update-tooltip .tooltip-inner .standard-update {\n color: #42a5f5; }\n.theme-white .update-tooltip .tooltip-inner .standard-update {\n color: #2c95f1; }\n.update-tooltip .tooltip-inner .important-update {\n font-size: 1.5rem;\n line-height: 2.7rem; }\n.theme-dark .update-tooltip .tooltip-inner .important-update {\n color: #ff6f00; }\n.theme-gray .update-tooltip .tooltip-inner .important-update {\n color: #ff6f00; }\n.theme-white .update-tooltip .tooltip-inner .important-update {\n color: #ffffff; }\n.update-tooltip .tooltip-inner .critical-update {\n font-size: 1.5rem;\n line-height: 2.7rem;\n text-align: center; }\n.update-tooltip .tooltip-inner .wrong-time {\n font-size: 1.5rem;\n line-height: 2.7rem; }\n.theme-dark .update-tooltip .tooltip-inner .wrong-time {\n color: #ff6f00; }\n.theme-gray .update-tooltip .tooltip-inner .wrong-time {\n color: #ff6f00; }\n.theme-white .update-tooltip .tooltip-inner .wrong-time {\n color: #ffffff; }\n.update-tooltip .tooltip-inner .icon {\n margin: 1.5rem 0;\n width: 5rem;\n height: 5rem; }\n.theme-dark .update-tooltip .tooltip-inner .icon {\n background-color: #ff5252; }\n.theme-gray .update-tooltip .tooltip-inner .icon {\n background-color: #ff5252; }\n.theme-white .update-tooltip .tooltip-inner .icon {\n background-color: #ffffff; }\n.update-tooltip.ng-tooltip-left-bottom {\n margin-left: -1.5rem; }\n.update-tooltip.ng-tooltip-left-bottom:after {\n content: \"\";\n position: absolute;\n bottom: 0.6rem;\n right: -1rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .update-tooltip.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #42505f #42505f; }\n.theme-gray .update-tooltip.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #3e464c #3e464c; }\n.theme-white .update-tooltip.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #ffffff #ffffff; }\n.update-tooltip.ng-tooltip-right-bottom {\n margin-left: 1.5rem; }\n.update-tooltip.ng-tooltip-right-bottom:before {\n content: \"\";\n position: absolute;\n bottom: 0.6rem;\n left: -1rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .update-tooltip.ng-tooltip-right-bottom:before {\n border-color: transparent #42505f #42505f transparent; }\n.theme-gray .update-tooltip.ng-tooltip-right-bottom:before {\n border-color: transparent #3e464c #3e464c transparent; }\n.theme-white .update-tooltip.ng-tooltip-right-bottom:before {\n border-color: transparent #ffffff #ffffff transparent; }\n.ngx-contextmenu .dropdown-menu {\n border: none;\n padding: 0; }\n.theme-dark .ngx-contextmenu .dropdown-menu {\n background-color: #2b3644;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5); }\n.theme-gray .ngx-contextmenu .dropdown-menu {\n background-color: #292d31;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5); }\n.theme-white .ngx-contextmenu .dropdown-menu {\n background-color: #e0e0e0;\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5); }\n.ngx-contextmenu li {\n display: block;\n font-family: OpenSans, sans-serif;\n font-size: 1.3rem;\n text-transform: uppercase;\n text-align: center; }\n.ngx-contextmenu a {\n display: block;\n padding: 0.5em 1em; }\n.theme-dark .ngx-contextmenu a {\n color: #e0e0e0; }\n.theme-gray .ngx-contextmenu a {\n color: #e0e0e0; }\n.theme-white .ngx-contextmenu a {\n color: #43454b; }\n.theme-dark .ngx-contextmenu a:hover {\n background-color: #556576;\n color: #e0e0e0; }\n.theme-gray .ngx-contextmenu a:hover {\n background-color: #515960;\n color: #e0e0e0; }\n.theme-white .ngx-contextmenu a:hover {\n background-color: #ffffff;\n color: #43454b; }\n.ng-select.custom-select {\n width: 100%; }\n.ng-select.custom-select.ng-select-single .ng-select-container .ng-value-container .ng-value {\n line-height: 1.8rem; }\n.ng-select.custom-select .ng-select-container {\n border: none;\n border-radius: 0;\n cursor: pointer;\n font-size: 1.4rem;\n outline: none;\n padding: 0 1rem;\n height: 4.2rem; }\n.theme-dark .ng-select.custom-select .ng-select-container {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .ng-select.custom-select .ng-select-container {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .ng-select.custom-select .ng-select-container {\n background-color: #e6e6e6;\n color: #43454b; }\n.ng-select.custom-select .ng-select-container .ng-value-container {\n padding: 0; }\n.ng-select.custom-select .ng-select-container .ng-value-container .ng-input {\n top: auto; }\n.ng-select.custom-select .ng-dropdown-panel {\n border: none; }\n.theme-dark .ng-select.custom-select .ng-dropdown-panel {\n background-color: #171e27; }\n.theme-gray .ng-select.custom-select .ng-dropdown-panel {\n background-color: #292d31; }\n.theme-white .ng-select.custom-select .ng-dropdown-panel {\n background-color: #e6e6e6; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\n font-size: 1.4rem;\n padding: 1rem; }\n.theme-dark .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\n background-color: #e6e6e6;\n color: #43454b; }\n.theme-dark .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked {\n background-color: rgba(58, 69, 85, 0.5);\n color: #e0e0e0; }\n.theme-gray .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked {\n background-color: rgba(58, 62, 66, 0.5);\n color: #e0e0e0; }\n.theme-white .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked {\n background-color: rgba(240, 240, 240, 0.5);\n color: #43454b; }\n.theme-dark .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected {\n background-color: rgba(43, 54, 68, 0.5);\n color: #e0e0e0; }\n.theme-gray .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected {\n background-color: rgba(37, 40, 43, 0.5);\n color: #e0e0e0; }\n.theme-white .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected {\n background-color: rgba(224, 224, 224, 0.5);\n color: #43454b; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar {\n background-color: transparent;\n cursor: default;\n width: 1rem;\n height: 1rem; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-track {\n background: transparent; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-thumb {\n background-color: #556576;\n background-clip: padding-box;\n border: 0.25rem solid transparent;\n border-radius: 0.5rem; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-thumb:hover {\n background-color: #556576; }\n.theme-dark app-modal-container .modal, .theme-dark app-confirm-modal .modal {\n background: url('background-dark.png');\n color: #e0e0e0; }\n.theme-gray app-modal-container .modal, .theme-gray app-confirm-modal .modal {\n background: url('background-gray.png');\n color: #e0e0e0; }\n.theme-white app-modal-container .modal, .theme-white app-confirm-modal .modal {\n background: url('background-white.png');\n color: #43454b; }\n.theme-dark app-modal-container .modal .content .icon.error, .theme-dark app-confirm-modal .modal .content .icon.error {\n background-color: #ff5252; }\n.theme-gray app-modal-container .modal .content .icon.error, .theme-gray app-confirm-modal .modal .content .icon.error {\n background-color: #ff5252; }\n.theme-white app-modal-container .modal .content .icon.error, .theme-white app-confirm-modal .modal .content .icon.error {\n background-color: #ff5252; }\n.theme-dark app-modal-container .modal .content .icon.success, .theme-dark app-confirm-modal .modal .content .icon.success {\n background-color: #5cda9d; }\n.theme-gray app-modal-container .modal .content .icon.success, .theme-gray app-confirm-modal .modal .content .icon.success {\n background-color: #47cf8d; }\n.theme-white app-modal-container .modal .content .icon.success, .theme-white app-confirm-modal .modal .content .icon.success {\n background-color: #46c172; }\n.theme-dark app-modal-container .modal .content .icon.info, .theme-dark app-confirm-modal .modal .content .icon.info {\n background-color: #4db1ff; }\n.theme-gray app-modal-container .modal .content .icon.info, .theme-gray app-confirm-modal .modal .content .icon.info {\n background-color: #42a5f5; }\n.theme-white app-modal-container .modal .content .icon.info, .theme-white app-confirm-modal .modal .content .icon.info {\n background-color: #2c95f1; }\n.theme-dark app-modal-container .modal .action-button, .theme-dark app-confirm-modal .modal .action-button {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-modal-container .modal .action-button, .theme-gray app-confirm-modal .modal .action-button {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-modal-container .modal .action-button, .theme-white app-confirm-modal .modal .action-button {\n background-color: #2c95f1;\n color: #fefefe; }\n.theme-dark app-modal-container .modal .close-button .icon, .theme-dark app-confirm-modal .modal .close-button .icon {\n background-color: #556576; }\n.theme-gray app-modal-container .modal .close-button .icon, .theme-gray app-confirm-modal .modal .close-button .icon {\n background-color: #515960; }\n.theme-white app-modal-container .modal .close-button .icon, .theme-white app-confirm-modal .modal .close-button .icon {\n background-color: #43454b; }\n.theme-dark app-transaction-details .table {\n border-top: 0.2rem solid #2b3644; }\n.theme-gray app-transaction-details .table {\n border-top: 0.2rem solid #2f3438; }\n.theme-white app-transaction-details .table {\n border-top: 0.2rem solid #ebebeb; }\n.theme-dark app-transaction-details .table .row .cell.label {\n color: #556576; }\n.theme-gray app-transaction-details .table .row .cell.label {\n color: #565c62; }\n.theme-white app-transaction-details .table .row .cell.label {\n color: #a0a5ab; }\n.theme-dark app-transaction-details .table .row .cell.value {\n color: #e0e0e0; }\n.theme-gray app-transaction-details .table .row .cell.value {\n color: #e0e0e0; }\n.theme-white app-transaction-details .table .row .cell.value {\n color: #43454b; }\n.theme-dark app-transaction-details .table .row .cell.key-value {\n color: #4db1ff; }\n.theme-gray app-transaction-details .table .row .cell.key-value {\n color: #42a5f5; }\n.theme-white app-transaction-details .table .row .cell.key-value {\n color: #2c95f1; }\n.theme-dark app-progress-container .progress-bar-container {\n color: #e0e0e0; }\n.theme-gray app-progress-container .progress-bar-container {\n color: #e0e0e0; }\n.theme-white app-progress-container .progress-bar-container {\n color: #43454b; }\n.theme-dark app-progress-container .progress-bar-container .progress-bar {\n background-color: #343f4a; }\n.theme-gray app-progress-container .progress-bar-container .progress-bar {\n background-color: #363a3e; }\n.theme-white app-progress-container .progress-bar-container .progress-bar {\n background-color: #dcdcdc; }\n.theme-dark app-progress-container .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #5cda9d; }\n.theme-gray app-progress-container .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #47cf8d; }\n.theme-white app-progress-container .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #46c172; }\n.theme-dark app-open-wallet-modal .modal {\n background: url('background-dark.png');\n color: #e0e0e0; }\n.theme-gray app-open-wallet-modal .modal {\n background: url('background-gray.png');\n color: #e0e0e0; }\n.theme-white app-open-wallet-modal .modal {\n background: url('background-white.png');\n color: #43454b; }\n.theme-dark app-send-modal .modal {\n background: url('background-dark.png');\n color: #e0e0e0; }\n.theme-gray app-send-modal .modal {\n background: url('background-gray.png');\n color: #e0e0e0; }\n.theme-white app-send-modal .modal {\n background: url('background-white.png');\n color: #43454b; }\n.theme-dark app-send-modal .modal .title {\n border-bottom: 0.2rem solid #2b3644; }\n.theme-gray app-send-modal .modal .title {\n border-bottom: 0.2rem solid #2f3438; }\n.theme-white app-send-modal .modal .title {\n border-bottom: 0.2rem solid #ebebeb; }\n.theme-dark app-send-modal .modal .action-button {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-send-modal .modal .action-button {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-send-modal .modal .action-button {\n background-color: #2c95f1;\n color: #fefefe; }\napp-main, app-create-wallet, app-open-wallet, app-restore-wallet, app-seed-phrase, app-wallet-details, app-assign-alias, app-edit-alias, app-transfer-alias, app-settings, app-login {\n flex: 1 1 auto;\n padding: 3rem;\n min-width: 85rem; }\napp-main .content, app-create-wallet .content, app-open-wallet .content, app-restore-wallet .content, app-seed-phrase .content, app-wallet-details .content, app-assign-alias .content, app-edit-alias .content, app-transfer-alias .content, app-settings .content, app-login .content {\n position: relative;\n padding: 3rem;\n min-height: 100%; }\n.theme-dark app-main .content, .theme-dark app-create-wallet .content, .theme-dark app-open-wallet .content, .theme-dark app-restore-wallet .content, .theme-dark app-seed-phrase .content, .theme-dark app-wallet-details .content, .theme-dark app-assign-alias .content, .theme-dark app-edit-alias .content, .theme-dark app-transfer-alias .content, .theme-dark app-settings .content, .theme-dark app-login .content {\n background-color: rgba(43, 54, 68, 0.5);\n color: #e0e0e0; }\n.theme-gray app-main .content, .theme-gray app-create-wallet .content, .theme-gray app-open-wallet .content, .theme-gray app-restore-wallet .content, .theme-gray app-seed-phrase .content, .theme-gray app-wallet-details .content, .theme-gray app-assign-alias .content, .theme-gray app-edit-alias .content, .theme-gray app-transfer-alias .content, .theme-gray app-settings .content, .theme-gray app-login .content {\n background-color: rgba(37, 40, 43, 0.5);\n color: #e0e0e0; }\n.theme-white app-main .content, .theme-white app-create-wallet .content, .theme-white app-open-wallet .content, .theme-white app-restore-wallet .content, .theme-white app-seed-phrase .content, .theme-white app-wallet-details .content, .theme-white app-assign-alias .content, .theme-white app-edit-alias .content, .theme-white app-transfer-alias .content, .theme-white app-settings .content, .theme-white app-login .content {\n background-color: rgba(255, 255, 255, 0.5);\n color: #43454b; }\napp-main .content .head, app-create-wallet .content .head, app-open-wallet .content .head, app-restore-wallet .content .head, app-seed-phrase .content .head, app-wallet-details .content .head, app-assign-alias .content .head, app-edit-alias .content .head, app-transfer-alias .content .head, app-settings .content .head, app-login .content .head {\n position: absolute;\n top: 0;\n left: 0; }\n.theme-dark app-main .content .add-wallet .add-wallet-help {\n color: #4db1ff; }\n.theme-gray app-main .content .add-wallet .add-wallet-help {\n color: #42a5f5; }\n.theme-white app-main .content .add-wallet .add-wallet-help {\n color: #2c95f1; }\n.theme-dark app-main .content .add-wallet .add-wallet-help .icon {\n background-color: #4db1ff; }\n.theme-gray app-main .content .add-wallet .add-wallet-help .icon {\n background-color: #42a5f5; }\n.theme-white app-main .content .add-wallet .add-wallet-help .icon {\n background-color: #2c95f1; }\n.theme-dark app-seed-phrase .seed-phrase-content {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray app-seed-phrase .seed-phrase-content {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white app-seed-phrase .seed-phrase-content {\n background-color: #e6e6e6;\n color: #43454b; }\n.theme-dark app-wallet-details .seed-phrase {\n background-color: #171e27; }\n.theme-gray app-wallet-details .seed-phrase {\n background-color: #292d31; }\n.theme-white app-wallet-details .seed-phrase {\n background-color: #e6e6e6; }\napp-settings .content {\n height: 100%;\n overflow-y: auto;\n display: flex;\n justify-content: space-between;\n flex-direction: column; }\n.theme-dark app-settings .content .theme-selection {\n color: #556576; }\n.theme-gray app-settings .content .theme-selection {\n color: #565c62; }\n.theme-white app-settings .content .theme-selection {\n color: #a0a5ab; }\n.theme-dark app-settings .content .scale-selection .button-block {\n background-color: rgba(23, 31, 39, 0.5); }\n.theme-gray app-settings .content .scale-selection .button-block {\n background-color: rgba(28, 30, 33, 0.5); }\n.theme-white app-settings .content .scale-selection .button-block {\n background-color: rgba(224, 224, 224, 0.5); }\n.theme-dark app-settings .content .scale-selection .button-block .label {\n color: #556576; }\n.theme-gray app-settings .content .scale-selection .button-block .label {\n color: #565c62; }\n.theme-white app-settings .content .scale-selection .button-block .label {\n color: #a0a5ab; }\n.theme-dark app-settings .content .scale-selection .button-block.active {\n background-color: #4db1ff; }\n.theme-gray app-settings .content .scale-selection .button-block.active {\n background-color: #42a5f5; }\n.theme-white app-settings .content .scale-selection .button-block.active {\n background-color: #2c95f1; }\n.theme-dark app-settings .content .scale-selection .button-block.active .label {\n color: #4db1ff; }\n.theme-gray app-settings .content .scale-selection .button-block.active .label {\n color: #42a5f5; }\n.theme-white app-settings .content .scale-selection .button-block.active .label {\n color: #2c95f1; }\napp-login {\n min-width: inherit; }\n.theme-dark app-sidebar {\n background-color: #171f27; }\n.theme-gray app-sidebar {\n background-color: #1c1e21; }\n.theme-white app-sidebar {\n background-color: white; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-header h3 {\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-header h3 {\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-header h3 {\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-header button {\n color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-header button {\n color: #42a5f5; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-header button {\n color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account {\n background-color: transparent;\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account {\n background-color: transparent;\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account {\n background-color: transparent;\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .icon {\n background-color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .icon {\n background-color: #42a5f5; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .icon {\n background-color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .text {\n color: #556576; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .text {\n color: #565c62; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .text {\n color: #a0a5ab; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .icon {\n background-color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .icon {\n background-color: #42a5f5; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .icon {\n background-color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .indicator {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .indicator {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .indicator {\n background-color: #2c95f1;\n color: #fefefe; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar {\n background-color: #343f4a; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar {\n background-color: #363a3e; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar {\n background-color: #dcdcdc; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar .fill {\n background-color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar .fill {\n background-color: #42a5f5; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar .fill {\n background-color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\n color: #556576; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\n color: #565c62; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\n color: #a0a5ab; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active {\n background-color: rgba(43, 54, 68, 0.5);\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active {\n background-color: rgba(37, 40, 43, 0.5);\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active {\n background-color: #1e88e5;\n color: #ffffff; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .text {\n color: #556576; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .text {\n color: #565c62; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .text {\n color: #91baf1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .indicator {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .indicator {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .indicator {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .switch {\n background-color: #000000;\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .switch {\n background-color: #000000;\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .switch {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row.account-synchronization {\n color: #556576; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row.account-synchronization {\n color: #565c62; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row.account-synchronization {\n color: #91baf1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account:hover:not(.active) {\n background-color: rgba(58, 69, 85, 0.5); }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account:hover:not(.active) {\n background-color: rgba(58, 62, 66, 0.5); }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account:hover:not(.active) {\n background-color: rgba(240, 240, 240, 0.5); }\n.theme-dark app-sidebar .sidebar-accounts:after {\n background: linear-gradient(to bottom, transparent 0%, #171f27 100%); }\n.theme-gray app-sidebar .sidebar-accounts:after {\n background: linear-gradient(to bottom, transparent 0%, #1c1e21 100%); }\n.theme-white app-sidebar .sidebar-accounts:after {\n background: linear-gradient(to bottom, transparent 0%, white 100%); }\n.theme-dark app-sidebar .sidebar-settings {\n border-bottom: 0.2rem solid #1f2833; }\n.theme-gray app-sidebar .sidebar-settings {\n border-bottom: 0.2rem solid #2e3337; }\n.theme-white app-sidebar .sidebar-settings {\n border-bottom: 0.2rem solid #ebebeb; }\n.theme-dark app-sidebar .sidebar-settings .wrap-button button {\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-settings .wrap-button button {\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-settings .wrap-button button {\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-settings .wrap-button button .icon {\n background-color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-settings .wrap-button button .icon {\n background-color: #42a5f5; }\n.theme-white app-sidebar .sidebar-settings .wrap-button button .icon {\n background-color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-settings .wrap-button.active button {\n background-color: rgba(43, 54, 68, 0.5) !important;\n color: #e0e0e0 !important; }\n.theme-gray app-sidebar .sidebar-settings .wrap-button.active button {\n background-color: rgba(37, 40, 43, 0.5) !important;\n color: #e0e0e0 !important; }\n.theme-white app-sidebar .sidebar-settings .wrap-button.active button {\n background-color: #1e88e5 !important;\n color: #ffffff !important; }\n.theme-dark app-sidebar .sidebar-settings .wrap-button.active button .icon {\n background-color: #4db1ff !important; }\n.theme-gray app-sidebar .sidebar-settings .wrap-button.active button .icon {\n background-color: #42a5f5 !important; }\n.theme-white app-sidebar .sidebar-settings .wrap-button.active button .icon {\n background-color: #ffffff !important; }\n.synchronization-status {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 0 0 7rem;\n font-size: 1.3rem; }\n.theme-dark .synchronization-status {\n color: #556576; }\n.theme-gray .synchronization-status {\n color: #565c62; }\n.theme-white .synchronization-status {\n color: #a0a5ab; }\n.synchronization-status .status-container {\n position: relative;\n flex-grow: 1;\n text-align: left; }\n.synchronization-status .status-container .offline, .synchronization-status .status-container .online {\n position: relative;\n display: block;\n line-height: 1.2rem;\n padding-left: 2.2rem; }\n.synchronization-status .status-container .offline:before, .synchronization-status .status-container .online:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n border-radius: 50%;\n width: 1.2rem;\n height: 1.2rem; }\n.theme-dark .synchronization-status .status-container .offline:before {\n background-color: #ff5252; }\n.theme-gray .synchronization-status .status-container .offline:before {\n background-color: #ff5252; }\n.theme-white .synchronization-status .status-container .offline:before {\n background-color: #ff5252; }\n.theme-dark .synchronization-status .status-container .online:before {\n background-color: #5cda9d; }\n.theme-gray .synchronization-status .status-container .online:before {\n background-color: #47cf8d; }\n.theme-white .synchronization-status .status-container .online:before {\n background-color: #46c172; }\n.synchronization-status .status-container .syncing, .synchronization-status .status-container .loading {\n line-height: 5rem; }\n.synchronization-status .status-container .progress-bar-container {\n position: absolute;\n bottom: 0;\n left: 0;\n height: 0.7rem;\n width: 100%; }\n.synchronization-status .status-container .progress-bar-container .syncing {\n display: flex; }\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\n flex: 1 0 auto; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\n background-color: #343f4a; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\n background-color: #363a3e; }\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\n background-color: #dcdcdc; }\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\n height: 100%; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\n background-color: #5cda9d; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\n background-color: #47cf8d; }\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\n background-color: #46c172; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar {\n background-color: #343f4a; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar {\n background-color: #363a3e; }\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar {\n background-color: #dcdcdc; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar .fill {\n background-color: #4db1ff; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar .fill {\n background-color: #42a5f5; }\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar .fill {\n background-color: #2c95f1; }\n.synchronization-status .status-container .progress-bar-container .syncing .progress-percent {\n flex: 0 0 auto;\n font-size: 1.3rem;\n line-height: 0.7rem;\n padding-left: 0.7rem; }\n.synchronization-status .status-container .progress-bar-container .loading {\n -webkit-animation: move 5s linear infinite;\n animation: move 5s linear infinite;\n background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.125, rgba(0, 0, 0, 0.15)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.1)), color-stop(0.375, rgba(0, 0, 0, 0.1)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.15)), color-stop(0.625, rgba(0, 0, 0, 0.15)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.1)), color-stop(0.875, rgba(0, 0, 0, 0.1)), color-stop(0.875, transparent), to(transparent)), -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\n background-size: 7rem 7rem;\n height: 100%; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .loading {\n background-color: #5cda9d; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .loading {\n background-color: #47cf8d; }\n.theme-white .synchronization-status .status-container .progress-bar-container .loading {\n background-color: #46c172; }\n.synchronization-status .update-container {\n display: flex;\n flex-grow: 1;\n margin-left: 1rem;\n text-align: right; }\n.synchronization-status .update-container .update-text {\n flex: 1 1 auto;\n font-size: 1.2rem;\n line-height: 1.8rem;\n text-align: left; }\n.synchronization-status .update-container .update-text.time {\n font-size: 1.1rem; }\n.synchronization-status .update-container .icon {\n flex: 1 0 auto;\n margin: 0.3rem 0 0 0.6rem;\n width: 1.2rem;\n height: 1.2rem; }\n.synchronization-status .update-container .icon.update {\n -webkit-mask: url('update.svg') no-repeat center;\n mask: url('update.svg') no-repeat center; }\n.synchronization-status .update-container .icon.time {\n -webkit-mask: url('time.svg') no-repeat center;\n mask: url('time.svg') no-repeat center; }\n.theme-dark .synchronization-status .update-container .standard {\n color: #4db1ff; }\n.theme-gray .synchronization-status .update-container .standard {\n color: #42a5f5; }\n.theme-white .synchronization-status .update-container .standard {\n color: #2c95f1; }\n.theme-dark .synchronization-status .update-container .important {\n color: #ff6f00; }\n.theme-gray .synchronization-status .update-container .important {\n color: #ff6f00; }\n.theme-white .synchronization-status .update-container .important {\n color: #ff6f00; }\n.theme-dark .synchronization-status .update-container .critical {\n color: #ff5252; }\n.theme-gray .synchronization-status .update-container .critical {\n color: #ff5252; }\n.theme-white .synchronization-status .update-container .critical {\n color: #ff5252; }\n.theme-dark .synchronization-status .update-container .time {\n color: #ff6f00; }\n.theme-gray .synchronization-status .update-container .time {\n color: #ff6f00; }\n.theme-white .synchronization-status .update-container .time {\n color: #ff6f00; }\n.theme-dark .synchronization-status .update-container .icon.standard {\n background-color: #4db1ff; }\n.theme-gray .synchronization-status .update-container .icon.standard {\n background-color: #42a5f5; }\n.theme-white .synchronization-status .update-container .icon.standard {\n background-color: #2c95f1; }\n.theme-dark .synchronization-status .update-container .icon.important {\n background-color: #ff6f00; }\n.theme-gray .synchronization-status .update-container .icon.important {\n background-color: #ff6f00; }\n.theme-white .synchronization-status .update-container .icon.important {\n background-color: #ff6f00; }\n.theme-dark .synchronization-status .update-container .icon.critical {\n background-color: #ff5252; }\n.theme-gray .synchronization-status .update-container .icon.critical {\n background-color: #ff5252; }\n.theme-white .synchronization-status .update-container .icon.critical {\n background-color: #ff5252; }\n.theme-dark .synchronization-status .update-container .icon.time {\n background-color: #ff6f00; }\n.theme-gray .synchronization-status .update-container .icon.time {\n background-color: #ff6f00; }\n.theme-white .synchronization-status .update-container .icon.time {\n background-color: #ff6f00; }\n@-webkit-keyframes move {\n 0% {\n background-position: 100% -7rem; }\n 100% {\n background-position: 100% 7rem; } }\n@keyframes move {\n 0% {\n background-position: 100% -7rem; }\n 100% {\n background-position: 100% 7rem; } }\n.theme-dark app-wallet {\n color: #e0e0e0; }\n.theme-gray app-wallet {\n color: #e0e0e0; }\n.theme-white app-wallet {\n color: #43454b; }\n.theme-dark app-wallet .header button {\n color: #e0e0e0; }\n.theme-gray app-wallet .header button {\n color: #e0e0e0; }\n.theme-white app-wallet .header button {\n color: #43454b; }\n.theme-dark app-wallet .header button .icon {\n background-color: #4db1ff; }\n.theme-gray app-wallet .header button .icon {\n background-color: #42a5f5; }\n.theme-white app-wallet .header button .icon {\n background-color: #2c95f1; }\napp-wallet .header button:disabled {\n background-color: transparent !important; }\n.theme-dark app-wallet .header button:disabled .icon {\n background-color: #556576; }\n.theme-gray app-wallet .header button:disabled .icon {\n background-color: #565c62; }\n.theme-white app-wallet .header button:disabled .icon {\n background-color: #91baf1; }\n.theme-dark app-wallet .header .alias .icon {\n background-color: #4db1ff; }\n.theme-gray app-wallet .header .alias .icon {\n background-color: #42a5f5; }\n.theme-white app-wallet .header .alias .icon {\n background-color: #2c95f1; }\n.theme-dark app-wallet .address {\n color: #4db1ff; }\n.theme-gray app-wallet .address {\n color: #42a5f5; }\n.theme-white app-wallet .address {\n color: #2c95f1; }\n.theme-dark app-wallet .address .icon {\n background-color: #4db1ff; }\n.theme-gray app-wallet .address .icon {\n background-color: #42a5f5; }\n.theme-white app-wallet .address .icon {\n background-color: #2c95f1; }\n.theme-dark app-wallet .tabs .tabs-header .tab {\n background-color: rgba(23, 31, 39, 0.5); }\n.theme-gray app-wallet .tabs .tabs-header .tab {\n background-color: rgba(28, 30, 33, 0.5); }\n.theme-white app-wallet .tabs .tabs-header .tab {\n background-color: rgba(224, 224, 224, 0.5); }\n.theme-dark app-wallet .tabs .tabs-header .tab .icon {\n background-color: #4db1ff; }\n.theme-gray app-wallet .tabs .tabs-header .tab .icon {\n background-color: #42a5f5; }\n.theme-white app-wallet .tabs .tabs-header .tab .icon {\n background-color: #2c95f1; }\n.theme-dark app-wallet .tabs .tabs-header .tab .indicator {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-wallet .tabs .tabs-header .tab .indicator {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-wallet .tabs .tabs-header .tab .indicator {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-wallet .tabs .tabs-header .tab.active {\n background-color: rgba(43, 54, 68, 0.5); }\n.theme-gray app-wallet .tabs .tabs-header .tab.active {\n background-color: rgba(37, 40, 43, 0.5); }\n.theme-white app-wallet .tabs .tabs-header .tab.active {\n background-color: rgba(255, 255, 255, 0.5); }\n.theme-dark app-wallet .tabs .tabs-header .tab:hover:not(.active):not(.disabled) {\n background-color: rgba(58, 69, 85, 0.5); }\n.theme-gray app-wallet .tabs .tabs-header .tab:hover:not(.active):not(.disabled) {\n background-color: rgba(58, 62, 66, 0.5); }\n.theme-white app-wallet .tabs .tabs-header .tab:hover:not(.active):not(.disabled) {\n background-color: #ffffff; }\n.theme-dark app-wallet .tabs .tabs-content {\n background-color: rgba(43, 54, 68, 0.5); }\n.theme-gray app-wallet .tabs .tabs-content {\n background-color: rgba(37, 40, 43, 0.5); }\n.theme-white app-wallet .tabs .tabs-content {\n background-color: rgba(255, 255, 255, 0.5); }\n.theme-dark app-wallet .tabs .pagination-wrapper {\n background-color: rgba(43, 54, 68, 0.5); }\n.theme-gray app-wallet .tabs .pagination-wrapper {\n background-color: rgba(37, 40, 43, 0.5); }\n.theme-white app-wallet .tabs .pagination-wrapper {\n background-color: rgba(255, 255, 255, 0.5); }\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination {\n border-top: 0.2rem solid #2b3644; }\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination {\n border-top: 0.2rem solid #2f3438; }\n.theme-white app-wallet .tabs .pagination-wrapper .pagination {\n border-top: 0.2rem solid #ebebeb; }\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination button {\n background-color: #2b3644;\n color: #e0e0e0; }\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination button {\n background-color: #2f3438;\n color: #e0e0e0; }\n.theme-white app-wallet .tabs .pagination-wrapper .pagination button {\n background-color: #ebebeb;\n color: #43454b; }\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination button.active {\n background-color: #18202a;\n color: #e0e0e0; }\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination button.active {\n background-color: #25292d;\n color: #e0e0e0; }\n.theme-white app-wallet .tabs .pagination-wrapper .pagination button.active {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination button:hover {\n background-color: #3a485a;\n color: #e0e0e0; }\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination button:hover {\n background-color: #383e43;\n color: #e0e0e0; }\n.theme-white app-wallet .tabs .pagination-wrapper .pagination button:hover {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-send .form-send .send-select {\n color: #e0e0e0; }\n.theme-gray app-send .form-send .send-select {\n color: #e0e0e0; }\n.theme-white app-send .form-send .send-select {\n color: #43454b; }\n.theme-dark app-send .form-send .send-select .icon {\n background-color: #4db1ff; }\n.theme-gray app-send .form-send .send-select .icon {\n background-color: #42a5f5; }\n.theme-white app-send .form-send .send-select .icon {\n background-color: #2c95f1; }\n.theme-dark app-send .form-send .additional-details {\n border: 0.2rem solid #2b3644; }\n.theme-gray app-send .form-send .additional-details {\n border: 0.2rem solid #2f3438; }\n.theme-white app-send .form-send .additional-details {\n border: 0.2rem solid #ebebeb; }\n.theme-dark app-receive .btn-copy-address {\n background-color: #4db1ff; }\n.theme-gray app-receive .btn-copy-address {\n background-color: #42a5f5; }\n.theme-white app-receive .btn-copy-address {\n background-color: #2c95f1; }\n.theme-dark app-history table tbody tr.locked-transaction {\n color: #556576; }\n.theme-gray app-history table tbody tr.locked-transaction {\n color: #565c62; }\n.theme-white app-history table tbody tr.locked-transaction {\n color: #a0a5ab; }\n.theme-dark app-history table tbody tr:nth-child(4n+1) {\n background-color: #18202a; }\n.theme-gray app-history table tbody tr:nth-child(4n+1) {\n background-color: #25292d; }\n.theme-white app-history table tbody tr:nth-child(4n+1) {\n background-color: #ffffff; }\n.theme-dark app-history table tbody tr:nth-child(4n+2) {\n background-color: #18202a; }\n.theme-gray app-history table tbody tr:nth-child(4n+2) {\n background-color: #25292d; }\n.theme-white app-history table tbody tr:nth-child(4n+2) {\n background-color: #ffffff; }\n.theme-dark app-history table tbody tr:nth-child(4n+3) {\n background-color: transparent; }\n.theme-gray app-history table tbody tr:nth-child(4n+3) {\n background-color: transparent; }\n.theme-white app-history table tbody tr:nth-child(4n+3) {\n background-color: transparent; }\n.theme-dark app-history table tbody tr:nth-child(4n+4) {\n background-color: transparent; }\n.theme-gray app-history table tbody tr:nth-child(4n+4) {\n background-color: transparent; }\n.theme-white app-history table tbody tr:nth-child(4n+4) {\n background-color: transparent; }\n.theme-dark app-history table tbody tr .status .confirmation {\n background-color: #343f4a; }\n.theme-gray app-history table tbody tr .status .confirmation {\n background-color: #363a3e; }\n.theme-white app-history table tbody tr .status .confirmation {\n background-color: #dcdcdc; }\n.theme-dark app-history table tbody tr .status .confirmation .fill {\n background-color: #5cda9d; }\n.theme-gray app-history table tbody tr .status .confirmation .fill {\n background-color: #47cf8d; }\n.theme-white app-history table tbody tr .status .confirmation .fill {\n background-color: #46c172; }\n.theme-dark app-history table tbody tr .lock-transaction {\n background-color: #ff6f00; }\n.theme-gray app-history table tbody tr .lock-transaction {\n background-color: #ff6f00; }\n.theme-white app-history table tbody tr .lock-transaction {\n background-color: #ff6f00; }\n.theme-dark app-history table tbody tr .unlock-transaction {\n background-color: #4db1ff; }\n.theme-gray app-history table tbody tr .unlock-transaction {\n background-color: #42a5f5; }\n.theme-white app-history table tbody tr .unlock-transaction {\n background-color: #2c95f1; }\n.theme-dark app-history table tbody tr .status.send .status-transaction {\n background-color: #ff5252; }\n.theme-gray app-history table tbody tr .status.send .status-transaction {\n background-color: #ff5252; }\n.theme-white app-history table tbody tr .status.send .status-transaction {\n background-color: #ff5252; }\n.theme-dark app-history table tbody tr .status.received .status-transaction {\n background-color: #5cda9d; }\n.theme-gray app-history table tbody tr .status.received .status-transaction {\n background-color: #47cf8d; }\n.theme-white app-history table tbody tr .status.received .status-transaction {\n background-color: #46c172; }\n.theme-dark app-contracts .wrap-table .contract .icon.new, .theme-dark app-contracts .wrap-table .contract .icon.alert {\n background-color: #ff5252; }\n.theme-gray app-contracts .wrap-table .contract .icon.new, .theme-gray app-contracts .wrap-table .contract .icon.alert {\n background-color: #ff5252; }\n.theme-white app-contracts .wrap-table .contract .icon.new, .theme-white app-contracts .wrap-table .contract .icon.alert {\n background-color: #ff5252; }\n.theme-dark app-contracts .wrap-table .contract .icon.purchase, .theme-dark app-contracts .wrap-table .contract .icon.sell {\n background-color: #4db1ff; }\n.theme-gray app-contracts .wrap-table .contract .icon.purchase, .theme-gray app-contracts .wrap-table .contract .icon.sell {\n background-color: #42a5f5; }\n.theme-white app-contracts .wrap-table .contract .icon.purchase, .theme-white app-contracts .wrap-table .contract .icon.sell {\n background-color: #2c95f1; }\n.theme-dark app-purchase .form-purchase .purchase-select {\n color: #e0e0e0; }\n.theme-gray app-purchase .form-purchase .purchase-select {\n color: #e0e0e0; }\n.theme-white app-purchase .form-purchase .purchase-select {\n color: #43454b; }\n.theme-dark app-purchase .form-purchase .purchase-select .icon {\n background-color: #4db1ff; }\n.theme-gray app-purchase .form-purchase .purchase-select .icon {\n background-color: #42a5f5; }\n.theme-white app-purchase .form-purchase .purchase-select .icon {\n background-color: #2c95f1; }\n.theme-dark app-purchase .form-purchase .purchase-states {\n color: #4db1ff; }\n.theme-gray app-purchase .form-purchase .purchase-states {\n color: #42a5f5; }\n.theme-white app-purchase .form-purchase .purchase-states {\n color: #2c95f1; }\n.theme-dark app-purchase .form-purchase .additional-details {\n border: 0.2rem solid #2b3644; }\n.theme-gray app-purchase .form-purchase .additional-details {\n border: 0.2rem solid #2f3438; }\n.theme-white app-purchase .form-purchase .additional-details {\n border: 0.2rem solid #ebebeb; }\n.theme-dark app-purchase .progress-bar-container .progress-bar {\n background-color: #343f4a; }\n.theme-gray app-purchase .progress-bar-container .progress-bar {\n background-color: #363a3e; }\n.theme-white app-purchase .progress-bar-container .progress-bar {\n background-color: #dcdcdc; }\n.theme-dark app-purchase .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #5cda9d; }\n.theme-gray app-purchase .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #47cf8d; }\n.theme-white app-purchase .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #46c172; }\napp-messages table tbody tr td:first-child span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n.theme-dark app-messages table tbody tr td:first-child .icon {\n background-color: #ff5252; }\n.theme-gray app-messages table tbody tr td:first-child .icon {\n background-color: #ff5252; }\n.theme-white app-messages table tbody tr td:first-child .icon {\n background-color: #ff5252; }\n.theme-dark app-typing-message .head .interlocutor {\n color: #4db1ff; }\n.theme-gray app-typing-message .head .interlocutor {\n color: #42a5f5; }\n.theme-white app-typing-message .head .interlocutor {\n color: #2c95f1; }\n.theme-dark app-typing-message .messages-content .messages-list div.date {\n color: #556576; }\n.theme-gray app-typing-message .messages-content .messages-list div.date {\n color: #565c62; }\n.theme-white app-typing-message .messages-content .messages-list div.date {\n color: #a0a5ab; }\n.theme-dark app-typing-message .messages-content .messages-list div.my {\n background-color: #2a3544; }\n.theme-gray app-typing-message .messages-content .messages-list div.my {\n background-color: #30363c; }\n.theme-white app-typing-message .messages-content .messages-list div.my {\n background-color: #fff; }\napp-typing-message .messages-content .messages-list div.my:before {\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n left: -1.1rem;\n border: 1.2rem solid transparent; }\n.theme-dark app-typing-message .messages-content .messages-list div.my:before {\n border-top-color: #2a3544; }\n.theme-gray app-typing-message .messages-content .messages-list div.my:before {\n border-top-color: #30363c; }\n.theme-white app-typing-message .messages-content .messages-list div.my:before {\n border-top-color: #fff; }\n.theme-dark app-typing-message .messages-content .messages-list div.buddy {\n background-color: #18202a; }\n.theme-gray app-typing-message .messages-content .messages-list div.buddy {\n background-color: #25292d; }\n.theme-white app-typing-message .messages-content .messages-list div.buddy {\n background-color: #ededed; }\napp-typing-message .messages-content .messages-list div.buddy:after {\n content: \"\";\n display: block;\n position: absolute;\n right: -1.1rem;\n top: 0;\n border: 1.2rem solid transparent; }\n.theme-dark app-typing-message .messages-content .messages-list div.buddy:after {\n border-top-color: #18202a; }\n.theme-gray app-typing-message .messages-content .messages-list div.buddy:after {\n border-top-color: #25292d; }\n.theme-white app-typing-message .messages-content .messages-list div.buddy:after {\n border-top-color: #ededed; }\n.theme-dark app-staking .chart-header .general .label {\n color: #556576; }\n.theme-gray app-staking .chart-header .general .label {\n color: #565c62; }\n.theme-white app-staking .chart-header .general .label {\n color: #a0a5ab; }\n.theme-dark app-staking .chart-header .general .options {\n color: #e0e0e0; }\n.theme-gray app-staking .chart-header .general .options {\n color: #e0e0e0; }\n.theme-white app-staking .chart-header .general .options {\n color: #43454b; }\napp-staking .chart-header .selected {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n flex-grow: 1;\n font-size: 1.6rem; }\n.theme-dark app-staking .chart-options .title {\n color: #556576; }\n.theme-gray app-staking .chart-options .title {\n color: #565c62; }\n.theme-white app-staking .chart-options .title {\n color: #a0a5ab; }\n.theme-dark app-staking .chart-options .options button {\n color: #e0e0e0;\n background-color: #2b3644; }\n.theme-gray app-staking .chart-options .options button {\n color: #e0e0e0;\n background-color: #292d31; }\n.theme-white app-staking .chart-options .options button {\n color: #43454b;\n background-color: #e0e0e0; }\n.theme-dark app-staking .chart-options .options button.active {\n background-color: #556576; }\n.theme-gray app-staking .chart-options .options button.active {\n background-color: #515960; }\n.theme-white app-staking .chart-options .options button.active {\n background-color: #ffffff; }\n.input-block-alias {\n position: relative; }\n.input-block-alias .alias-dropdown {\n position: absolute;\n top: 6.5rem;\n max-height: 10rem;\n overflow: auto;\n width: 100%; }\n.theme-dark .input-block-alias .alias-dropdown {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .input-block-alias .alias-dropdown {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .input-block-alias .alias-dropdown {\n background-color: #e6e6e6;\n color: #43454b; }\n.input-block-alias .alias-dropdown div {\n font-size: 1.4rem;\n padding: 1rem; }\n.theme-dark .input-block-alias .alias-dropdown div:hover {\n background-color: rgba(58, 69, 85, 0.5); }\n.theme-gray .input-block-alias .alias-dropdown div:hover {\n background-color: rgba(58, 62, 66, 0.5); }\n.theme-white .input-block-alias .alias-dropdown div:hover {\n background-color: rgba(240, 240, 240, 0.5); }\napp-contacts, app-add-contacts,\napp-contact-send, app-export-import {\n flex: 1 1 auto;\n padding: 3rem;\n min-width: 85rem; }\napp-contacts .content, app-add-contacts .content,\n app-contact-send .content, app-export-import .content {\n position: relative;\n padding: 3rem;\n min-height: 100%; }\n.theme-dark app-contacts .content, .theme-dark app-add-contacts .content, .theme-dark\n app-contact-send .content, .theme-dark app-export-import .content {\n background-color: rgba(43, 54, 68, 0.5);\n color: #e0e0e0; }\n.theme-gray app-contacts .content, .theme-gray app-add-contacts .content, .theme-gray\n app-contact-send .content, .theme-gray app-export-import .content {\n background-color: rgba(37, 40, 43, 0.5);\n color: #e0e0e0; }\n.theme-white app-contacts .content, .theme-white app-add-contacts .content, .theme-white\n app-contact-send .content, .theme-white app-export-import .content {\n background-color: rgba(255, 255, 255, 0.5);\n color: #43454b; }\napp-contacts .content .head, app-add-contacts .content .head,\n app-contact-send .content .head, app-export-import .content .head {\n position: absolute;\n top: 0;\n left: 0; }\n.theme-dark app-contacts table .alias {\n color: #4db1ff; }\n.theme-gray app-contacts table .alias {\n color: #42a5f5; }\n.theme-white app-contacts table .alias {\n color: #2c95f1; }\n.theme-dark app-contacts table button .icon {\n background-color: #4db1ff; }\n.theme-gray app-contacts table button .icon {\n background-color: #42a5f5; }\n.theme-white app-contacts table button .icon {\n background-color: #2c95f1; }\n.theme-dark app-contacts table button span {\n color: #e0e0e0; }\n.theme-gray app-contacts table button span {\n color: #e0e0e0; }\n.theme-white app-contacts table button span {\n color: #43454b; }\n.theme-dark app-contacts .footer {\n color: #4db1ff; }\n.theme-gray app-contacts .footer {\n color: #42a5f5; }\n.theme-white app-contacts .footer {\n color: #2c95f1; }\n.theme-dark app-contacts .footer .import-btn {\n color: #4db1ff; }\n.theme-gray app-contacts .footer .import-btn {\n color: #42a5f5; }\n.theme-white app-contacts .footer .import-btn {\n color: #2c95f1; }\n.theme-dark app-contacts .footer .import-btn .icon {\n background-color: #4db1ff; }\n.theme-gray app-contacts .footer .import-btn .icon {\n background-color: #42a5f5; }\n.theme-white app-contacts .footer .import-btn .icon {\n background-color: #2c95f1; }\n.theme-dark app-contact-send .wallets-selection button {\n color: #4db1ff; }\n.theme-gray app-contact-send .wallets-selection button {\n color: #42a5f5; }\n.theme-white app-contact-send .wallets-selection button {\n color: #2c95f1; }\n.head {\n display: flex;\n align-items: flex-end;\n justify-content: space-between;\n font-size: 1.3rem;\n padding: 0 3rem;\n width: 100%;\n height: 3rem; }\n.theme-dark .head {\n color: #4db1ff; }\n.theme-gray .head {\n color: #42a5f5; }\n.theme-white .head {\n color: #2c95f1; }\n.head .breadcrumbs > span:not(:last-child), .head .breadcrumbs a:not(:last-child) {\n position: relative;\n cursor: pointer;\n margin-right: 20px;\n outline-style: none; }\n.head .breadcrumbs > span:not(:last-child):after, .head .breadcrumbs a:not(:last-child):after {\n content: \"\";\n display: block;\n position: absolute;\n top: 0.5rem;\n right: -1.5rem;\n width: 0.9rem;\n height: 0.9rem;\n -webkit-mask: url('arrow-right.svg') no-repeat center;\n mask: url('arrow-right.svg') no-repeat center;\n -webkit-mask-size: cover;\n mask-size: cover; }\n.theme-dark .head .breadcrumbs > span:not(:last-child):after, .theme-dark .head .breadcrumbs a:not(:last-child):after {\n background-color: #4db1ff; }\n.theme-gray .head .breadcrumbs > span:not(:last-child):after, .theme-gray .head .breadcrumbs a:not(:last-child):after {\n background-color: #42a5f5; }\n.theme-white .head .breadcrumbs > span:not(:last-child):after, .theme-white .head .breadcrumbs a:not(:last-child):after {\n background-color: #2c95f1; }\n.head .back-btn {\n display: flex;\n align-items: center;\n background-color: transparent;\n color: #4db1ff;\n font-size: inherit;\n font-weight: 400;\n line-height: 1.3rem;\n padding: 0;\n height: auto; }\n.head .back-btn .icon {\n margin-right: 0.7rem;\n -webkit-mask: url('back.svg') no-repeat center;\n mask: url('back.svg') no-repeat center;\n width: 0.9rem;\n height: 0.9rem; }\n.theme-dark .head .back-btn .icon {\n background-color: #4db1ff; }\n.theme-gray .head .back-btn .icon {\n background-color: #42a5f5; }\n.theme-white .head .back-btn .icon {\n background-color: #2c95f1; }\n.scrolled-content::-webkit-scrollbar {\n background-color: transparent;\n cursor: default;\n width: 1rem;\n height: 1rem; }\n.scrolled-content::-webkit-scrollbar-track {\n background: transparent; }\n.scrolled-content::-webkit-scrollbar-thumb {\n background-color: #556576;\n background-clip: padding-box;\n border: 0.25rem solid transparent;\n border-radius: 0.5rem; }\n.scrolled-content::-webkit-scrollbar-thumb:hover {\n background-color: #556576; }\ntable {\n font-size: 1.3rem;\n width: 100%; }\ntable thead {\n text-align: left; }\n.theme-dark table thead {\n color: #556576; }\n.theme-gray table thead {\n color: #565c62; }\n.theme-white table thead {\n color: #a0a5ab; }\ntable thead tr {\n height: 4rem; }\ntable thead tr th {\n padding: 1rem;\n vertical-align: bottom; }\ntable thead tr th:first-child {\n padding-left: 3rem; }\ntable thead tr th:last-child {\n padding-right: 3rem; }\ntable tbody {\n text-align: left; }\n.theme-dark table tbody {\n color: #e0e0e0; }\n.theme-gray table tbody {\n color: #e0e0e0; }\n.theme-white table tbody {\n color: #43454b; }\ntable tbody tr {\n height: 3.5rem; }\n.theme-dark table tbody tr:nth-child(odd) {\n background-color: #18202a; }\n.theme-gray table tbody tr:nth-child(odd) {\n background-color: #25292d; }\n.theme-white table tbody tr:nth-child(odd) {\n background-color: #ffffff; }\ntable tbody tr td {\n line-height: 1.7rem;\n padding: 0 1rem;\n vertical-align: middle;\n white-space: nowrap;\n max-width: 20rem; }\ntable tbody tr td:first-child {\n padding-left: 3rem; }\ntable tbody tr td:last-child {\n padding-right: 3rem; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-Light.ttf');\n font-weight: 300; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-Regular.ttf');\n font-weight: 400; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-SemiBold.ttf');\n font-weight: 600; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-Bold.ttf');\n font-weight: 700; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-ExtraBold.ttf');\n font-weight: 800; }\nhtml {\n font-family: OpenSans, sans-serif;\n font-size: 10px; }\nbody {\n font-family: OpenSans, sans-serif;\n font-size: 1.6rem;\n width: 100vw;\n height: 100vh; }\nbody.theme-dark {\n background: #131921 url('background-dark.png') no-repeat center;\n background-size: cover; }\nbody.theme-gray {\n background: #101417 url('background-gray.png') no-repeat center;\n background-size: cover; }\nbody.theme-white {\n background: #eeeeee url('background-white.png') no-repeat center;\n background-size: cover; }\nbody app-root {\n display: flex;\n width: 100%;\n height: 100%; }\n.update-tooltip .tooltip-inner .icon {\n -webkit-mask: url('update-alert.svg') no-repeat center;\n mask: url('update-alert.svg') no-repeat center; }\n\r\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxiYXNlXFxfbWl4aW5zLnNjc3MiLCJzcmMvc3R5bGVzLnNjc3MiLCJub2RlX21vZHVsZXMvQG5nLXNlbGVjdC9uZy1zZWxlY3QvdGhlbWVzL2RlZmF1bHQudGhlbWUuY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGJhc2VcXF9udWxsLnNjc3MiLCJzcmMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFzc2V0c1xcc2Nzc1xcYmFzZVxcX2Jhc2Uuc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxiYXNlXFxfdGhlbWUuc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxsYXlvdXRcXF9tYWluLnNjc3MiLCJzcmMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFzc2V0c1xcc2Nzc1xcbGF5b3V0XFxfc2lkZWJhci5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGxheW91dFxcX3N0YXR1cy5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGxheW91dFxcX3dhbGxldC5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGxheW91dFxcX2NvbnRhY3Quc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxtb2R1bGVzXFxfaGVhZC5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXG1vZHVsZXNcXF9zY3JvbGwuc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxtb2R1bGVzXFxfdGFibGUuc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcc3R5bGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEVBOztDQzVFQztBQ0ZELGlEQUFpRCxlQUFlLENBQUMsaUNBQWlDO0FBQUMsdURBQXVELGVBQWU7QUFBQywyREFBMkQsUUFBUSxDQUFDLHlDQUF5QyxDQUFDLHNCQUFzQjtBQUFDLGlFQUFpRSx5Q0FBeUM7QUFBQyxrRUFBa0UsNEJBQTRCLENBQUMsMkJBQTJCO0FBQUMsK0RBQStELHlCQUF5QixDQUFDLHdCQUF3QjtBQUFDLHlFQUF5RSxvQkFBb0IsQ0FBQywwRUFBMEU7QUFBQyxtREFBbUQsd0JBQXdCO0FBQUMseUNBQXlDLFlBQVk7QUFBQyxnQ0FBZ0MscUJBQXFCLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFD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O0FMMEU3QjtJSXpERSx5QkNpRG9DO0lEaERwQyxjQ3VDMkIsRUFBQTtBTGlCN0I7SUl6REUseUJDMEdvQztJRHpHcEMsY0NnRzJCLEVBQUE7QUx4QzdCO0lJbERJLHlCQ2Q2QixFQUFBO0FMZ0VqQztJSWxESSx5QkMyQzZCLEVBQUE7QUxPakM7SUlsREkseUJDb0c2QixFQUFBO0FMbERqQztJSTNDSSx5QkNwQjZCLEVBQUE7QUwrRGpDO0lJM0NJLHlCQ3FDNkIsRUFBQTtBTE1qQztJSTNDSSx5QkM4RjZCLEVBQUE7QUxuRGpDO0lJbkNFLHlCQ2pDZ0M7SURrQ2hDLGNDeEMyQixFQUFBO0FMMEU3QjtJSW5DRSx5QkN3QmdDO0lEdkJoQyxjQ2lCMkIsRUFBQTtBTGlCN0I7SUluQ0UseUJDaUZnQztJRGhGaEMsY0MwRTJCLEVBQUE7QUx4QzdCO0lJNUJJLHlCQ3ZDeUIsRUFBQTtBTG1FN0I7SUk1QkkseUJDa0J5QixFQUFBO0FMVTdCO0lJNUJJLHlCQzJFeUIsRUFBQTtBTC9DN0I7SUlyQkkseUJDN0N5QixFQUFBO0FMa0U3QjtJSXJCSSx5QkNZeUIsRUFBQTtBTFM3QjtJSXJCSSx5QkNxRXlCLEVBQUE7QUxoRDdCO0lJYkUseUJDakRpQztJRGtEakMsY0M5RDJCLEVBQUE7QUwwRTdCO0lJYkUseUJDUWlDO0lEUGpDLGNDTDJCLEVBQUE7QUxpQjdCO0lJYkUseUJDaUVpQztJRGhFakMsY0NvRDJCLEVBQUE7QUx4QzdCO0lJTkkseUJDdkQwQixFQUFBO0FMNkQ5QjtJSU5JLHlCQ0UwQixFQUFBO0FMSTlCO0lJTkkseUJDMkQwQixFQUFBO0FMckQ5QjtJSUNJLHlCQzdEMEIsRUFBQTtBTDREOUI7SUlDSSx5QkNKMEIsRUFBQTtBTEc5QjtJSUNJLHlCQ3FEMEIsRUFBQTtBTHREOUI7SUlTRSx5QkNwRXFDO0lEcUVyQyxjQ3BGMkIsRUFBQTtBTDBFN0I7SUlTRSx5QkNYcUM7SURZckMsY0MzQjJCLEVBQUE7QUxpQjdCO0lJU0UseUJDOENxQztJRDdDckMsY0M4QjJCLEVBQUE7QUx4QzdCO0lJZ0JJLHlCQzFF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THdFdEI7SUk4UEkseUJDN1FrQixFQUFBO0FMZXRCO0lJOFBJLHlCQ3BOa0IsRUFBQTtBTDFDdEI7RUl1UUEseUJDM1Q4QixFQUFBO0FMb0Q5QjtFSXVRQSx5QkNsUThCLEVBQUE7QUxMOUI7RUl1UUEseUJDek04QixFQUFBO0FMOUQ5QjtFSStRSSx5QkN2VmtCLEVBQUE7QUx3RXRCO0VJK1FJLHlCQzlSa0IsRUFBQTtBTGV0QjtFSStRSSx5QkNyT2tCLEVBQUE7QUwxQ3RCO0VJc1JJLHlCQy9Wc0IsRUFBQTtBTHlFMUI7RUlzUkkseUJDdFNzQixFQUFBO0FMZ0IxQjtFSXNSSSx5QkM3T3NCLEVBQUE7QURtUDlCO0VBQ0Usa0JBQWtCLEVBQUE7QUo3UmhCO0lJZ1NBLG1CQ25VK0I7SURvVS9CLHVDQy9UMEM7SURnVTFDLGNDN1dzQixFQUFBO0FMMkV0QjtJSWdTQSxtQkMxUStCO0lEMlEvQix1Q0N0UTBDO0lEdVExQyxjQ3BUc0IsRUFBQTtBTGtCdEI7SUlnU0EsbUJDak4rQjtJRGtOL0IsNkNDN01nRDtJRDhNaEQsY0MzUHNCLEVBQUE7QURxUDFCO0lBVUksaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixxQkFBcUIsRUFBQTtBQVp6QjtJQWdCSSxpQkFBaUIsRUFBQTtBQWhCckI7TUFtQk0sV0FBVztNQUNYLGtCQUFrQjtNQUNsQixhQUFhO01BQ2Isd0JBQXdCO01BQ3hCLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTtBSnBUckI7UUl1VEkseURBQWdGLEVBQUE7QUp2VHBGO1FJdVRJLHlEQUFnRixFQUFBO0FKdlRwRjtRSXVUSSx5REFBZ0YsRUFBQTtBQTNCeEY7SUFpQ0ksaUJBQWlCLEVBQUE7QUFqQ3JCO01Bb0NNLFdBQVc7TUFDWCxrQkFBa0I7TUFDbEIsYUFBYTtNQUNiLFlBQVk7TUFDWixvQkFBb0I7TUFDcEIsbUJBQW1CLEVBQUE7QUpyVXJCO1FJd1VJLHFEQzNXMkIsRUFBQTtBTG1DL0I7UUl3VUkscURDbFQyQixFQUFBO0FMdEIvQjtRSXdVSSxxREN6UDJCLEVBQUE7QUQ2TW5DO0lBa0RJLGlCQUFpQixFQUFBO0FBbERyQjtNQXFETSxXQUFXO01BQ1gsa0JBQWtCO01BQ2xCLGFBQWE7TUFDYixhQUFhO01BQ2Isb0JBQW9CO01BQ3BCLG1CQUFtQixFQUFBO0FKdFZyQjtRSXlWSSxxREFBbUcsRUFBQTtBSnpWdkc7UUl5VkkscURBQW1HLEVBQUE7QUp6VnZHO1FJeVZJLHFEQUFtRyxFQUFBO0FBN0QzRztJQW1FSSxnQkFBZ0IsRUFBQTtBQW5FcEI7TUFzRU0sV0FBVztNQUNYLGtCQUFrQjtNQUNsQixVQUFVO01BQ1Ysd0JBQXdCO01BQ3hCLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTtBSnZXckI7UUkwV0kseURBQWdGLEVBQUE7QUoxV3BGO1FJMFdJLHlEQUFnRixFQUFBO0FKMVdwRjtRSTBXSSx5REFBZ0YsRUFBQTtBQTlFeEY7SUFvRkksZ0JBQWdCLEVBQUE7QUFwRnBCO01BdUZNLFdBQVc7TUFDWCxrQkFBa0I7TUFDbEIsVUFBVTtNQUNWLFlBQVk7TUFDWixvQkFBb0I7TUFDcEIsbUJBQW1CLEVBQUE7QUp4WHJCO1FJMlhJLHFEQzlaMkIsRUFBQTtBTG1DL0I7UUkyWEkscURDclcyQixFQUFBO0FMdEIvQjtRSTJYSSxxREM1UzJCLEVBQUE7QUQ2TW5DO0lBcUdJLGdCQUFnQixFQUFBO0FBckdwQjtNQXdHTSxXQUFXO01BQ1gsa0JBQWtCO01BQ2xCLFVBQVU7TUFDVixhQUFhO01BQ2Isb0JBQW9CO01BQ3BCLG1CQUFtQixFQUFBO0FKellyQjtRSTRZSSxxREFBbUcsRUFBQTtBSjVZdkc7UUk0WUkscURBQW1HLEVBQUE7QUo1WXZHO1FJNFlJLHFEQUFtRyxFQUFBO0FBaEgzRztJQXNISSxrQkFBa0IsRUFBQTtBQXRIdEI7TUF5SE0sV0FBVztNQUNYLGtCQUFrQjtNQUNsQix1QkFBdUI7TUFDdkIsWUFBWTtNQUNaLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTtBSjFackI7UUk2WkkseURDaGMyQixFQUFBO0FMbUMvQjtRSTZaSSx5REN2WTJCLEVBQUE7QUx0Qi9CO1FJNlpJLHlEQzlVMkIsRUFBQTtBRDZNbkM7SUF1SUksaUJBQWlCLEVBQUE7QUF2SXJCO01BMElNLFdBQVc7TUFDWCxrQkFBa0I7TUFDbEIsdUJBQXVCO01BQ3ZCLFdBQVc7TUFDWCxvQkFBb0I7TUFDcEIsbUJBQW1CLEVBQUE7QUozYXJCO1FJOGFJLHlEQUFnRixFQUFBO0FKOWFwRjtRSThhSSx5REFBZ0YsRUFBQTtBSjlhcEY7UUk4YUkseURBQWdGLEVBQUE7QUFNeEY7RUFHSSxjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLGlCQUFpQixFQUFBO0FBSXJCO0VBQ0UsZUFBZSxFQUFBO0FKOWJiO0lJaWNBLG1CQ3BlK0I7SURxZS9CLHVDQ2hlMEM7SURpZTFDLGNDOWdCc0IsRUFBQTtBTDJFdEI7SUlpY0EsbUJDM2ErQjtJRDRhL0IsdUNDdmEwQztJRHdhMUMsY0NyZHNCLEVBQUE7QUxrQnRCO0lJaWNBLG1CQ2xYK0I7SURtWC9CLDZDQzlXZ0Q7SUQrV2hELGNDNVpzQixFQUFBO0FEc1oxQjtJQVVJLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsaUJBQWlCLEVBQUE7QUFackI7TUFlTSxxQkFBcUIsRUFBQTtBQWYzQjtRQWtCUSxnQkFBZ0IsRUFBQTtBQWxCeEI7TUF1Qk0scUJBQXFCLEVBQUE7QUF2QjNCO1FBMEJRLGdCQUFnQixFQUFBO0FBMUJ4QjtNQStCTSxlQUFlLEVBQUE7QUo1ZGpCO1FJK2RJLGNDdmlCa0IsRUFBQTtBTHdFdEI7UUkrZEksY0M5ZWtCLEVBQUE7QUxldEI7UUkrZEksY0NyYmtCLEVBQUE7QURtWjFCO0lBd0NJLGlCQUFpQixFQUFBO0FBeENyQjtJQTRDSSxnQkFBZ0IsRUFBQTtBQTVDcEI7SUFnREksa0JBQWtCLEVBQUE7QUFoRHRCO0lBb0RJLGlCQUFpQixFQUFBO0FBSXJCO0VBR0ksc0JBQXNCO0VBQ3RCLGdCQUFnQixFQUFBO0FBSXBCO0VBR0ksY0FBYztFQUNkLHNCQUFzQjtFQUN0QixnQkFBZ0I7RUFDaEIsaUJBQWlCLEVBQUE7QUFJckI7RUFDRSxlQUFlLEVBQUE7QUp4Z0JiO0lJMmdCQSxtQkM5aUIrQjtJRCtpQi9CLHVDQzFpQjBDO0lEMmlCMUMsY0N4bEJzQixFQUFBO0FMMkV0QjtJSTJnQkEsbUJDcmYrQjtJRHNmL0IsdUNDamYwQztJRGtmMUMsY0MvaEJzQixFQUFBO0FMa0J0QjtJSTJnQkEsbUJDNWIrQjtJRDZiL0IsNkNDeGJnRDtJRHliaEQsY0N0ZXNCLEVBQUE7QUx2Q3RCO0lJbWhCRSxtQkNwakJzQztJRHFqQnRDLGNDcmtCMkIsRUFBQTtBTGlEN0I7SUltaEJFLG1CQzNmc0M7SUQ0ZnRDLGNDNWdCMkIsRUFBQTtBTFI3QjtJSW1oQkUsbUJDbGNzQztJRG1jdEMsY0NuZDJCLEVBQUE7QUxqRTdCO0lJNGhCTSxxREM3akJrQyxFQUFBO0FMaUN4QztJSTRoQk0scURDcGdCa0MsRUFBQTtBTHhCeEM7SUk0aEJNLHFEQzNja0MsRUFBQTtBTGpGeEM7SUlzaUJNLHFEQUFxSCxFQUFBO0FKdGlCM0g7SUlzaUJNLHFEQUFxSCxFQUFBO0FKdGlCM0g7SUlzaUJNLHFEQUFxSCxFQUFBO0FBL0IvSDtJQXNDSSxlQUFlLEVBQUE7QUo3aUJmO01JZ2pCRSxtQkMva0JxQztNRGdsQnJDLGNDbG1CMkIsRUFBQTtBTGlEN0I7TUlnakJFLG1CQ3RoQnFDO01EdWhCckMsY0N6aUIyQixFQUFBO0FMUjdCO01JZ2pCRSxtQkM3ZHFDO01EOGRyQyxjQ2hmMkIsRUFBQTtBRHNjakM7TUE4Q00sYUFBYTtNQUNiLHNCQUFzQjtNQUN0QixtQkFBbUIsRUFBQTtBSnZqQnJCO01JK2pCTSxxREM5bEJpQyxFQUFBO0FMK0J2QztNSStqQk0scURDcmlCaUMsRUFBQTtBTDFCdkM7TUkrakJNLHFEQzVlaUMsRUFBQTtBTG5GdkM7TUl5a0JNLHFEQUFtSCxFQUFBO0FKemtCekg7TUl5a0JNLHFEQUFtSCxFQUFBO0FKemtCekg7TUl5a0JNLHFEQUFtSCxFQUFBO0FBbEU3SDtJQXlFSSxpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLHFCQUFxQixFQUFBO0FBM0V6QjtNQThFTSxpQkFBaUI7TUFDakIsbUJBQW1CLEVBQUE7QUp0bEJyQjtRSXlsQkksY0NqcUJrQixFQUFBO0FMd0V0QjtRSXlsQkksY0N4bUJrQixFQUFBO0FMZXRCO1FJeWxCSSxjQy9pQmtCLEVBQUE7QUQ2ZDFCO01BdUZNLGlCQUFpQjtNQUNqQixtQkFBbUIsRUFBQTtBSi9sQnJCO1FJa21CSSxjQ3BvQjhCLEVBQUE7QUxrQ2xDO1FJa21CSSxjQzNrQjhCLEVBQUE7QUx2QmxDO1FJa21CSSxjQ2xoQjhCLEVBQUE7QUR1YnRDO01BZ0dNLGlCQUFpQjtNQUNqQixtQkFBbUI7TUFDbkIsa0JBQWtCLEVBQUE7QUFsR3hCO01Bc0dNLGlCQUFpQjtNQUNqQixtQkFBbUIsRUFBQTtBSjltQnJCO1FJaW5CSSxjQ25wQjhCLEVBQUE7QUxrQ2xDO1FJaW5CSSxjQzFsQjhCLEVBQUE7QUx2QmxDO1FJaW5CSSxjQ2ppQjhCLEVBQUE7QUR1YnRDO01BK0dNLGdCQUFnQjtNQUNoQixXQUFXO01BQ1gsWUFBWSxFQUFBO0FKeG5CZDtRSTJuQkkseUJDM3BCNkIsRUFBQTtBTGdDakM7UUkybkJJLHlCQ2xtQjZCLEVBQUE7QUx6QmpDO1FJMm5CSSx5QkN6aUI2QixFQUFBO0FEcWJyQztJQTBISSxvQkFBb0IsRUFBQTtBQTFIeEI7TUE2SE0sV0FBVztNQUNYLGtCQUFrQjtNQUNsQixjQUFjO01BQ2QsWUFBWTtNQUNaLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTtBSnpvQnJCO1FJNG9CSSxxREMvcUIyQixFQUFBO0FMbUMvQjtRSTRvQkkscURDdG5CMkIsRUFBQTtBTHRCL0I7UUk0b0JJLHFEQzdqQjJCLEVBQUE7QUR3Ym5DO0lBMklJLG1CQUFtQixFQUFBO0FBM0l2QjtNQThJTSxXQUFXO01BQ1gsa0JBQWtCO01BQ2xCLGNBQWM7TUFDZCxXQUFXO01BQ1gsb0JBQW9CO01BQ3BCLG1CQUFtQixFQUFBO0FKMXBCckI7UUk2cEJJLHFEQUFtRyxFQUFBO0FKN3BCdkc7UUk2cEJJLHFEQUFtRyxFQUFBO0FKN3BCdkc7UUk2cEJJLHFEQUFtRyxFQUFBO0FBTTNHO0VBR0ksWUFBWTtFQUNaLFVBQVUsRUFBQTtBSnZxQlY7SUkwcUJFLHlCQy9zQmtDO0lEZ3RCbEMsdUNDenNCd0MsRUFBQTtBTDhCMUM7SUkwcUJFLHlCQ3RwQmtDO0lEdXBCbEMsdUNDaHBCd0MsRUFBQTtBTDNCMUM7SUkwcUJFLHlCQzdsQmtDO0lEOGxCbEMsNkNDdmxCOEMsRUFBQTtBRCtrQnBEO0VBYUksY0FBYztFQUNkLGlDQUFpQztFQUNqQyxpQkFBaUI7RUFDakIseUJBQXlCO0VBQ3pCLGtCQUFrQixFQUFBO0FBakJ0QjtFQXFCSSxjQUFjO0VBQ2Qsa0JBQWtCLEVBQUE7QUp6ckJsQjtJSTRyQkUsY0N2d0JvQixFQUFBO0FMMkV0QjtJSTRyQkUsY0M5c0JvQixFQUFBO0FMa0J0QjtJSTRyQkUsY0NycEJvQixFQUFBO0FMdkN0QjtJSWtzQkkseUJDdHVCMkI7SUR1dUIzQixjQzl3QmtCLEVBQUE7QUwyRXRCO0lJa3NCSSx5QkM3cUIyQjtJRDhxQjNCLGNDcnRCa0IsRUFBQTtBTGtCdEI7SUlrc0JJLHlCQ3BuQjJCO0lEcW5CM0IsY0M1cEJrQixFQUFBO0FEa3FCMUI7RUFHSSxXQUFXLEVBQUE7QUFIZjtJQVNZLG1CQUFtQixFQUFBO0FBVC9CO0lBZ0JNLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixhQUFhO0lBQ2IsZUFBZTtJQUNmLGNBQWMsRUFBQTtBSi90QmhCO01Ja3VCSSx5QkN6eEJ5QjtNRDB4QnpCLGNDOXlCa0IsRUFBQTtBTDJFdEI7TUlrdUJJLHlCQ2h1QnlCO01EaXVCekIsY0NydkJrQixFQUFBO0FMa0J0QjtNSWt1QkkseUJDdnFCeUI7TUR3cUJ6QixjQzVyQmtCLEVBQUE7QURrcUIxQjtNQThCUSxVQUFVLEVBQUE7QUE5QmxCO1FBaUNVLFNBQVMsRUFBQTtBQWpDbkI7SUF1Q00sWUFBWSxFQUFBO0FKaHZCZDtNSW12QkkseUJDMXlCeUIsRUFBQTtBTHVEN0I7TUltdkJJLHlCQ2p2QnlCLEVBQUE7QUxGN0I7TUltdkJJLHlCQ3hyQnlCLEVBQUE7QUQ4b0JqQztNQWdEVSxpQkFBaUI7TUFDakIsYUFBYSxFQUFBO0FKMXZCbkI7UUk2dkJRLHlCQ3B6QnFCO1FEcXpCckIsY0N6MEJjLEVBQUE7QUwyRXRCO1FJNnZCUSx5QkMzdkJxQjtRRDR2QnJCLGNDaHhCYyxFQUFBO0FMa0J0QjtRSTZ2QlEseUJDbHNCcUI7UURtc0JyQixjQ3Z0QmMsRUFBQTtBTHZDdEI7UUlvd0JVLHVDQzF6QjZCO1FEMnpCN0IsY0NoMUJZLEVBQUE7QUwyRXRCO1FJb3dCVSx1Q0Nqd0I2QjtRRGt3QjdCLGNDdnhCWSxFQUFBO0FMa0J0QjtRSW93QlUsMENDeHNCZ0M7UUR5c0JoQyxjQzl0QlksRUFBQTtBTHZDdEI7UUk0d0JVLHVDQ2owQmdDO1FEazBCaEMsY0N4MUJZLEVBQUE7QUwyRXRCO1FJNHdCVSx1Q0N4d0JnQztRRHl3QmhDLGNDL3hCWSxFQUFBO0FMa0J0QjtRSTR3QlUsMENDL3NCbUM7UURndEJuQyxjQ3R1QlksRUFBQTtBRGtxQjFCO01BMEVVLDZCQUE2QjtNQUM3QixlQUFlO01BQ2YsV0FBVztNQUNYLFlBQVksRUFBQTtBQTdFdEI7TUFpRlUsdUJBQXVCLEVBQUE7QUFqRmpDO01BcUZVLHlCQUF5QjtNQUN6Qiw0QkFBNEI7TUFDNUIsaUNBQWlDO01BQ2pDLHFCQUFxQixFQUFBO0FBeEYvQjtNQTRGVSx5QkFBeUIsRUFBQTtBSnJ5Qi9CO0VJaXpCRSxzQ0M5MEIwRDtFRCswQjFELGNDNzNCb0IsRUFBQTtBTDJFdEI7RUlpekJFLHNDQ3J4QjBEO0VEc3hCMUQsY0NwMEJvQixFQUFBO0FMa0J0QjtFSWl6QkUsdUNDNXRCMkQ7RUQ2dEIzRCxjQzN3Qm9CLEVBQUE7QUx2Q3RCO0VJMHpCTSx5QkMvM0JlLEVBQUE7QUxxRXJCO0VJMHpCTSx5QkN0MEJlLEVBQUE7QUxZckI7RUkwekJNLHlCQzd3QmUsRUFBQTtBTDdDckI7RUlpMEJNLHlCQ3g0QmlCLEVBQUE7QUx1RXZCO0VJaTBCTSx5QkMvMEJpQixFQUFBO0FMY3ZCO0VJaTBCTSx5QkN0eEJpQixFQUFBO0FMM0N2QjtFSXcwQk0seUJDaDVCZ0IsRUFBQTtBTHdFdEI7RUl3MEJNLHlCQ3YxQmdCLEVBQUE7QUxldEI7RUl3MEJNLHlCQzl4QmdCLEVBQUE7QUwxQ3RCO0VJZzFCSSx5QkN4NUJrQjtFRHk1QmxCLGNDMzVCeUIsRUFBQTtBTDBFN0I7RUlnMUJJLHlCQy8xQmtCO0VEZzJCbEIsY0NsMkJ5QixFQUFBO0FMaUI3QjtFSWcxQkkseUJDdHlCa0I7RUR1eUJsQixjQ3p5QnlCLEVBQUE7QUx4QzdCO0VJMDFCTSx5QkN0M0JtQixFQUFBO0FMNEJ6QjtFSTAxQk0seUJDN3pCbUIsRUFBQTtBTDdCekI7RUkwMUJNLHlCQ3B3Qm1CLEVBQUE7QUx0RnpCO0VJczJCRSxnQ0M5NUJtQyxFQUFBO0FMd0RyQztFSXMyQkUsZ0NDcjJCbUMsRUFBQTtBTERyQztFSXMyQkUsZ0NDNXlCbUMsRUFBQTtBTDFEckM7RUlnM0JRLGNDejdCa0IsRUFBQTtBTHlFMUI7RUlnM0JRLGNDaDRCa0IsRUFBQTtBTGdCMUI7RUlnM0JRLGNDdjBCa0IsRUFBQTtBTHpDMUI7RUl1M0JRLGNDbDhCYyxFQUFBO0FMMkV0QjtFSXUzQlEsY0N6NEJjLEVBQUE7QUxrQnRCO0VJdTNCUSxjQ2gxQmMsRUFBQTtBTHZDdEI7RUk4M0JRLGNDdDhCYyxFQUFBO0FMd0V0QjtFSTgzQlEsY0M3NEJjLEVBQUE7QUxldEI7RUk4M0JRLGNDcDFCYyxFQUFBO0FMMUN0QjtFSTI0QkUsY0N0OUJvQixFQUFBO0FMMkV0QjtFSTI0QkUsY0M3NUJvQixFQUFBO0FMa0J0QjtFSTI0QkUsY0NwMkJvQixFQUFBO0FMdkN0QjtFSWk1QkkseUJDeDdCK0IsRUFBQTtBTHVDbkM7RUlpNUJJLHlCQy8zQitCLEVBQUE7QUxsQm5DO0VJaTVCSSx5QkN0MEIrQixFQUFBO0FMM0VuQztFSXU1Qk0seUJDNzdCaUMsRUFBQTtBTHNDdkM7RUl1NUJNLHlCQ3A0QmlDLEVBQUE7QUxuQnZDO0VJdTVCTSx5QkMzMEJpQyxFQUFBO0FMNUV2QztFSW02QkUsc0NDaDhCMEQ7RURpOEIxRCxjQy8rQm9CLEVBQUE7QUwyRXRCO0VJbTZCRSxzQ0N2NEIwRDtFRHc0QjFELGNDdDdCb0IsRUFBQTtBTGtCdEI7RUltNkJFLHVDQzkwQjJEO0VEKzBCM0QsY0M3M0JvQixFQUFBO0FMdkN0QjtFSTY2QkUsc0NDMThCMEQ7RUQyOEIxRCxjQ3ovQm9CLEVBQUE7QUwyRXRCO0VJNjZCRSxzQ0NqNUIwRDtFRGs1QjFELGNDaDhCb0IsRUFBQTtBTGtCdEI7RUk2NkJFLHVDQ3gxQjJEO0VEeTFCM0QsY0N2NEJvQixFQUFBO0FMdkN0QjtFSW83QkksbUNDNStCaUMsRUFBQTtBTHdEckM7RUlvN0JJLG1DQ243QmlDLEVBQUE7QUxEckM7RUlvN0JJLG1DQzEzQmlDLEVBQUE7QUwxRHJDO0VJNDdCSSx5QkNwZ0NrQjtFRHFnQ2xCLGNDdmdDeUIsRUFBQTtBTDBFN0I7RUk0N0JJLHlCQzM4QmtCO0VENDhCbEIsY0M5OEJ5QixFQUFBO0FMaUI3QjtFSTQ3QkkseUJDbDVCa0I7RURtNUJsQixjQ3I1QnlCLEVBQUE7QUMzSGpDO0VBQ0UsY0FBYztFQUNkLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTtBQUhsQjtJQU1JLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsZ0JBQWdCLEVBQUE7QU4yRWhCO01NeEVFLHVDREoyQztNQ0szQyxjREpvQixFQUFBO0FMMkV0QjtNTXhFRSx1Q0RxRDJDO01DcEQzQyxjRHFEb0IsRUFBQTtBTGtCdEI7TU14RUUsMENEOEc4QztNQzdHOUMsY0Q4R29CLEVBQUE7QUMxSDFCO01BZ0JNLGtCQUFrQjtNQUNsQixNQUFNO01BQ04sT0FBTyxFQUFBO0FOaUVUO0VNbkRNLGNEckJnQixFQUFBO0FMd0V0QjtFTW5ETSxjRG9DZ0IsRUFBQTtBTGV0QjtFTW5ETSxjRDZGZ0IsRUFBQTtBTDFDdEI7RU03Q1EseUJEM0JjLEVBQUE7QUx3RXRCO0VNN0NRLHlCRDhCYyxFQUFBO0FMZXRCO0VNN0NRLHlCRHVGYyxFQUFBO0FMMUN0QjtFTWhDRSx5QkR2QjJCO0VDd0IzQixjRDVDb0IsRUFBQTtBTDJFdEI7RU1oQ0UseUJEa0MyQjtFQ2pDM0IsY0Rhb0IsRUFBQTtBTGtCdEI7RU1oQ0UseUJEMkYyQjtFQzFGM0IsY0RzRW9CLEVBQUE7QUx2Q3RCO0VNckJFLHlCRGxDMkIsRUFBQTtBTHVEN0I7RU1yQkUseUJEdUIyQixFQUFBO0FMRjdCO0VNckJFLHlCRGdGMkIsRUFBQTtBQzNFakM7RUFHSSxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsc0JBQXNCLEVBQUE7QU5TdEI7SU1KSSxjRHJFc0IsRUFBQTtBTHlFMUI7SU1KSSxjRFpzQixFQUFBO0FMZ0IxQjtJTUpJLGNENkNzQixFQUFBO0FMekMxQjtJTUtNLHVDRGpEMkMsRUFBQTtBTDRDakQ7SU1LTSx1Q0RRMkMsRUFBQTtBTGJqRDtJTUtNLDBDRGlFOEMsRUFBQTtBTHRFcEQ7SU1XUSxjRHBGa0IsRUFBQTtBTHlFMUI7SU1XUSxjRDNCa0IsRUFBQTtBTGdCMUI7SU1XUSxjRDhCa0IsRUFBQTtBTHpDMUI7SU1rQlEseUJEMUZjLEVBQUE7QUx3RXRCO0lNa0JRLHlCRGpDYyxFQUFBO0FMZXRCO0lNa0JRLHlCRHdCYyxFQUFBO0FMMUN0QjtJTXdCVSxjRGhHWSxFQUFBO0FMd0V0QjtJTXdCVSxjRHZDWSxFQUFBO0FMZXRCO0lNd0JVLGNEa0JZLEVBQUE7QUNUMUI7RUFDRSxrQkFBa0IsRUFBQTtBTmxDaEI7RU9oRkEseUJGQTJDLEVBQUE7QUxnRjNDO0VPaEZBLHlCRnlEMkMsRUFBQTtBTHVCM0M7RU9oRkEsdUJGa0g4QyxFQUFBO0FMbEM5QztFT3RFTSxjRkxnQixFQUFBO0FMMkV0QjtFT3RFTSxjRm9EZ0IsRUFBQTtBTGtCdEI7RU90RU0sY0Y2R2dCLEVBQUE7QUx2Q3RCO0VPL0RNLGNGVGdCLEVBQUE7QUx3RXRCO0VPL0RNLGNGZ0RnQixFQUFBO0FMZXRCO0VPL0RNLGNGeUdnQixFQUFBO0FMMUN0QjtFT3JETSw2QkFBNkI7RUFDN0IsY0Z2QmdCLEVBQUE7QUwyRXRCO0VPckRNLDZCQUE2QjtFQUM3QixjRmtDZ0IsRUFBQTtBTGtCdEI7RU9yRE0sNkJBQTZCO0VBQzdCLGNGMkZnQixFQUFBO0FMdkN0QjtFTzlDUSx5QkYxQmMsRUFBQTtBTHdFdEI7RU85Q1EseUJGK0JjLEVBQUE7QUxldEI7RU85Q1EseUJGd0ZjLEVBQUE7QUwxQ3RCO0VPckNVLGNGcENnQixFQUFBO0FMeUUxQjtFT3JDVSxjRnFCZ0IsRUFBQTtBTGdCMUI7RU9yQ1UsY0Y4RWdCLEVBQUE7QUx6QzFCO0VPOUJVLHlCRjFDWSxFQUFBO0FMd0V0QjtFTzlCVSx5QkZlWSxFQUFBO0FMZXRCO0VPOUJVLHlCRndFWSxFQUFBO0FMMUN0QjtFT3ZCVSx5QkY3Q3dCO0VFOEN4QixjRnBEbUIsRUFBQTtBTDBFN0I7RU92QlUseUJGWXdCO0VFWHhCLGNGS21CLEVBQUE7QUxpQjdCO0VPdkJVLHlCRnFFd0I7RUVwRXhCLGNGOERtQixFQUFBO0FMeEM3QjtFT2JZLHlCRjFCdUIsRUFBQTtBTHVDbkM7RU9iWSx5QkYrQnVCLEVBQUE7QUxsQm5DO0VPYlkseUJGd0Z1QixFQUFBO0FMM0VuQztFT1BjLHlCRmpFUSxFQUFBO0FMd0V0QjtFT1BjLHlCRlJRLEVBQUE7QUxldEI7RU9QYyx5QkZpRFEsRUFBQTtBTDFDdEI7RU9FVSxjRjNFZ0IsRUFBQTtBTHlFMUI7RU9FVSxjRmxCZ0IsRUFBQTtBTGdCMUI7RU9FVSxjRnVDZ0IsRUFBQTtBTHpDMUI7RU9VUSx1Q0Y3RHFDO0VFOERyQyxjRjVEcUIsRUFBQTtBTGlEN0I7RU9VUSx1Q0ZKcUM7RUVLckMsY0ZIcUIsRUFBQTtBTFI3QjtFT1VRLHlCRnFEcUM7RUVwRHJDLGNGc0RxQixFQUFBO0FMakU3QjtFT21CWSxjRm5FcUIsRUFBQTtBTGdEakM7RU9tQlksY0ZWcUIsRUFBQTtBTFRqQztFT21CWSxjRitDcUIsRUFBQTtBTGxFakM7RU8wQlkseUJGdkU0QjtFRXdFNUIsY0YxRXNCLEVBQUE7QUwrQ2xDO0VPMEJZLHlCRmQ0QjtFRWU1QixjRmpCc0IsRUFBQTtBTFZsQztFTzBCWSx5QkYyQzRCO0VFMUM1QixjRndDc0IsRUFBQTtBTG5FbEM7RU9rQ1kseUJGaEZ5QjtFRWlGekIsY0Y5R1UsRUFBQTtBTDJFdEI7RU9rQ1kseUJGdkJ5QjtFRXdCekIsY0ZyRFUsRUFBQTtBTGtCdEI7RU9rQ1kseUJGa0N5QjtFRWpDekIsY0ZJVSxFQUFBO0FMdkN0QjtFTzBDWSxjRjFGcUIsRUFBQTtBTGdEakM7RU8wQ1ksY0ZqQ3FCLEVBQUE7QUxUakM7RU8wQ1ksY0Z3QnFCLEVBQUE7QUxsRWpDO0VPbURRLHVDRnJHMEMsRUFBQTtBTGtEbEQ7RU9tRFEsdUNGNUMwQyxFQUFBO0FMUGxEO0VPbURRLDBDRmE2QyxFQUFBO0FMaEVyRDtFTzRESSxvRUFBMkYsRUFBQTtBUDVEL0Y7RU80REksb0VBQTJGLEVBQUE7QVA1RC9GO0VPNERJLGtFQUEyRixFQUFBO0FQNUQvRjtFT29FRSxtQ0ZuSnlCLEVBQUE7QUwrRTNCO0VPb0VFLG1DRjFGeUIsRUFBQTtBTHNCM0I7RU9vRUUsbUNGakN5QixFQUFBO0FMbkMzQjtFTzRFTSxjRnZKZ0IsRUFBQTtBTDJFdEI7RU80RU0sY0Y5RmdCLEVBQUE7QUxrQnRCO0VPNEVNLGNGckNnQixFQUFBO0FMdkN0QjtFT2tGUSx5QkYxSmMsRUFBQTtBTHdFdEI7RU9rRlEseUJGakdjLEVBQUE7QUxldEI7RU9rRlEseUJGeENjLEVBQUE7QUwxQ3RCO0VPNEZRLGtEQUEwRDtFQUMxRCx5QkFBNkMsRUFBQTtBUDdGckQ7RU80RlEsa0RBQTBEO0VBQzFELHlCQUE2QyxFQUFBO0FQN0ZyRDtFTzRGUSxvQ0FBMEQ7RUFDMUQseUJBQTZDLEVBQUE7QVA3RnJEO0VPbUdVLG9DQUFtRSxFQUFBO0FQbkc3RTtFT21HVSxvQ0FBbUUsRUFBQTtBUG5HN0U7RU9tR1Usb0NBQW1FLEVBQUE7QUN0TGpGO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiwyQkFBMkI7RUFDM0IsY0FBYztFQUNkLGlCQUFpQixFQUFBO0FSOEVmO0lRNUVBLGNIRzBCLEVBQUE7QUx5RTFCO0lRNUVBLGNINEQwQixFQUFBO0FMZ0IxQjtJUTVFQSxjSHFIMEIsRUFBQTtBRzVIOUI7SUFXSSxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGdCQUFnQixFQUFBO0FBYnBCO01BZ0JNLGtCQUFrQjtNQUNsQixjQUFjO01BQ2QsbUJBQW1CO01BQ25CLG9CQUFvQixFQUFBO0FBbkIxQjtRQXNCUSxXQUFXO1FBQ1gsa0JBQWtCO1FBQ2xCLE1BQU07UUFDTixPQUFPO1FBQ1Asa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixjQUFjLEVBQUE7QVJ1RGxCO01RaERJLHlCSDdCaUIsRUFBQTtBTDZFckI7TVFoREkseUJINEJpQixFQUFBO0FMb0JyQjtNUWhESSx5QkhxRmlCLEVBQUE7QUxyQ3JCO01RekNJLHlCSHJDZ0IsRUFBQTtBTDhFcEI7TVF6Q0kseUJIb0JnQixFQUFBO0FMcUJwQjtNUXpDSSx5Qkg2RWdCLEVBQUE7QUd2SHhCO01BK0NNLGlCQUFpQixFQUFBO0FBL0N2QjtNQW1ETSxrQkFBa0I7TUFDbEIsU0FBUztNQUNULE9BQU87TUFDUCxjQUFjO01BQ2QsV0FBVyxFQUFBO0FBdkRqQjtRQTBEUSxhQUFhLEVBQUE7QUExRHJCO1VBNkRVLGNBQWMsRUFBQTtBUnNCcEI7WVFwQlEseUJIbkIyQixFQUFBO0FMdUNuQztZUXBCUSx5QkhzQzJCLEVBQUE7QUxsQm5DO1lRcEJRLHlCSCtGMkIsRUFBQTtBRzlKdkM7WUFrRVksWUFBWSxFQUFBO0FSaUJwQjtjUWZVLHlCSHZCNkIsRUFBQTtBTHNDdkM7Y1FmVSx5QkhrQzZCLEVBQUE7QUxuQnZDO2NRZlUseUJIMkY2QixFQUFBO0FMNUV2QztVUU5VLHlCSGpDeUIsRUFBQTtBTHVDbkM7VVFOVSx5Qkh3QnlCLEVBQUE7QUxsQm5DO1VRTlUseUJIaUZ5QixFQUFBO0FMM0VuQztVUUFZLHlCSHhFVSxFQUFBO0FMd0V0QjtVUUFZLHlCSGZVLEVBQUE7QUxldEI7VVFBWSx5QkgwQ1UsRUFBQTtBRzdIMUI7VUF5RlUsY0FBYztVQUNkLGlCQUFpQjtVQUNqQixtQkFBbUI7VUFDbkIsb0JBQW9CLEVBQUE7QUE1RjlCO1FBb0dRLDBDQUFrQztnQkFBbEMsa0NBQWtDO1FBQ2xDLCtsQ0FzQkc7UUFDSCwwQkFBMEI7UUFDMUIsWUFBWSxFQUFBO0FSMUNoQjtVUWVNLHlCSHJEaUMsRUFBQTtBTHNDdkM7VVFlTSx5QkhJaUMsRUFBQTtBTG5CdkM7VVFlTSx5Qkg2RGlDLEVBQUE7QUcvSjNDO0lBbUlJLGFBQWE7SUFDYixZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLGlCQUFpQixFQUFBO0FBdElyQjtNQXlJTSxjQUFjO01BQ2QsaUJBQWlCO01BQ2pCLG1CQUFtQjtNQUNuQixnQkFBZ0IsRUFBQTtBQTVJdEI7UUErSVEsaUJBQWlCLEVBQUE7QUEvSXpCO01Bb0pNLGNBQWM7TUFDZCx5QkFBeUI7TUFDekIsYUFBYTtNQUNiLGNBQWMsRUFBQTtBQXZKcEI7UUEwSlEsZ0RBQXFEO2dCQUFyRCx3Q0FBcUQsRUFBQTtBQTFKN0Q7UUE4SlEsOENBQW1EO2dCQUFuRCxzQ0FBbUQsRUFBQTtBUjNFdkQ7TVFrRkksY0gxSmtCLEVBQUE7QUx3RXRCO01Ra0ZJLGNIakdrQixFQUFBO0FMZXRCO01Ra0ZJLGNIeENrQixFQUFBO0FMMUN0QjtNUXlGSSxjSC9Kb0IsRUFBQTtBTHNFeEI7TVF5RkksY0h0R29CLEVBQUE7QUxheEI7TVF5RkksY0g3Q29CLEVBQUE7QUw1Q3hCO01RZ0dJLGNIcktpQixFQUFBO0FMcUVyQjtNUWdHSSxjSDVHaUIsRUFBQTtBTFlyQjtNUWdHSSxjSG5EaUIsRUFBQTtBTDdDckI7TVF1R0ksY0g3S29CLEVBQUE7QUxzRXhCO01RdUdJLGNIcEhvQixFQUFBO0FMYXhCO01RdUdJLGNIM0RvQixFQUFBO0FMNUN4QjtNUWdITSx5Qkh4TGdCLEVBQUE7QUx3RXRCO01RZ0hNLHlCSC9IZ0IsRUFBQTtBTGV0QjtNUWdITSx5Qkh0RWdCLEVBQUE7QUwxQ3RCO01RdUhNLHlCSDdMa0IsRUFBQTtBTHNFeEI7TVF1SE0seUJIcElrQixFQUFBO0FMYXhCO01RdUhNLHlCSDNFa0IsRUFBQTtBTDVDeEI7TVE4SE0seUJIbk1lLEVBQUE7QUxxRXJCO01ROEhNLHlCSDFJZSxFQUFBO0FMWXJCO01ROEhNLHlCSGpGZSxFQUFBO0FMN0NyQjtNUXFJTSx5QkgzTWtCLEVBQUE7QUxzRXhCO01RcUlNLHlCSGxKa0IsRUFBQTtBTGF4QjtNUXFJTSx5Qkh6RmtCLEVBQUE7QUdpRzVCO0VBQ0U7SUFDRSwrQkFBK0IsRUFBQTtFQUVqQztJQUNFLDhCQUE4QixFQUFBLEVBQUE7QUFMbEM7RUFDRTtJQUNFLCtCQUErQixFQUFBO0VBRWpDO0lBQ0UsOEJBQThCLEVBQUEsRUFBQTtBUmxKOUI7RVNoRkEsY0pLc0IsRUFBQTtBTDJFdEI7RVNoRkEsY0o4RHNCLEVBQUE7QUxrQnRCO0VTaEZBLGNKdUhzQixFQUFBO0FMdkN0QjtFU3hFSSxjSkhrQixFQUFBO0FMMkV0QjtFU3hFSSxjSnNEa0IsRUFBQTtBTGtCdEI7RVN4RUksY0orR2tCLEVBQUE7QUx2Q3RCO0VTbEVNLHlCSk5nQixFQUFBO0FMd0V0QjtFU2xFTSx5QkptRGdCLEVBQUE7QUxldEI7RVNsRU0seUJKNEdnQixFQUFBO0FJN0gxQjtFQXFCUSx3Q0FBd0MsRUFBQTtBVDhENUM7SVMzRFEseUJKV3lCLEVBQUE7QUxnRGpDO0lTM0RRLHlCSm9FeUIsRUFBQTtBTFRqQztJUzNEUSx5Qko2SHlCLEVBQUE7QUxsRWpDO0VTaERNLHlCSnhCZ0IsRUFBQTtBTHdFdEI7RVNoRE0seUJKaUNnQixFQUFBO0FMZXRCO0VTaERNLHlCSjBGZ0IsRUFBQTtBTDFDdEI7RVN2Q0UsY0pqQ29CLEVBQUE7QUx3RXRCO0VTdkNFLGNKd0JvQixFQUFBO0FMZXRCO0VTdkNFLGNKaUZvQixFQUFBO0FMMUN0QjtFU2pDSSx5Qkp2Q2tCLEVBQUE7QUx3RXRCO0VTakNJLHlCSmtCa0IsRUFBQTtBTGV0QjtFU2pDSSx5QkoyRWtCLEVBQUE7QUwxQ3RCO0VTckJNLHVDSnZCMkMsRUFBQTtBTDRDakQ7RVNyQk0sdUNKa0MyQyxFQUFBO0FMYmpEO0VTckJNLDBDSjJGOEMsRUFBQTtBTHRFcEQ7RVNmUSx5Qkp6RGMsRUFBQTtBTHdFdEI7RVNmUSx5QkpBYyxFQUFBO0FMZXRCO0VTZlEseUJKeURjLEVBQUE7QUwxQ3RCO0VTUlEseUJKckNnQztFSXNDaEMsY0p4QzBCLEVBQUE7QUwrQ2xDO0VTUlEseUJKb0JnQztFSW5CaEMsY0ppQjBCLEVBQUE7QUxWbEM7RVNSUSx5Qko2RWdDO0VJNUVoQyxjSjBFMEIsRUFBQTtBTG5FbEM7RVNBUSx1Q0o1RXFDLEVBQUE7QUw0RTdDO0VTQVEsdUNKbkJxQyxFQUFBO0FMbUI3QztFU0FRLDBDSnNDd0MsRUFBQTtBTHRDaEQ7RVNPUSx1Q0psRHNDLEVBQUE7QUwyQzlDO0VTT1EsdUNKT3NDLEVBQUE7QUxkOUM7RVNPUSx5QkpnRXdCLEVBQUE7QUx2RWhDO0VTZ0JJLHVDSjVGeUMsRUFBQTtBTDRFN0M7RVNnQkksdUNKbkN5QyxFQUFBO0FMbUI3QztFU2dCSSwwQ0pzQjRDLEVBQUE7QUx0Q2hEO0VTdUJJLHVDSm5HeUMsRUFBQTtBTDRFN0M7RVN1QkksdUNKMUN5QyxFQUFBO0FMbUI3QztFU3VCSSwwQ0plNEMsRUFBQTtBTHRDaEQ7RVM2Qk0sZ0NKckYrQixFQUFBO0FMd0RyQztFUzZCTSxnQ0o1QitCLEVBQUE7QUxEckM7RVM2Qk0sZ0NKNkIrQixFQUFBO0FMMURyQztFU2tDUSx5QkoxRjZCO0VJMkY3QixjSjlHYyxFQUFBO0FMMkV0QjtFU2tDUSx5QkpqQzZCO0VJa0M3QixjSnJEYyxFQUFBO0FMa0J0QjtFU2tDUSx5Qkp3QjZCO0VJdkI3QixjSkljLEVBQUE7QUx2Q3RCO0VTd0NVLHlCSmxGbUI7RUltRm5CLGNKcEhZLEVBQUE7QUwyRXRCO0VTd0NVLHlCSnpCbUI7RUkwQm5CLGNKM0RZLEVBQUE7QUxrQnRCO0VTd0NVLHlCSmdDbUI7RUkvQm5CLGNKRlksRUFBQTtBTHZDdEI7RVMrQ1UseUJKMUVRO0VJMkVSLGNKM0hZLEVBQUE7QUwyRXRCO0VTK0NVLHlCSmpCUTtFSWtCUixjSmxFWSxFQUFBO0FMa0J0QjtFUytDVSx5Qkp3Q1E7RUl2Q1IsY0pUWSxFQUFBO0FMdkN0QjtFU2dFSSxjSjNJa0IsRUFBQTtBTDJFdEI7RVNnRUksY0psRmtCLEVBQUE7QUxrQnRCO0VTZ0VJLGNKekJrQixFQUFBO0FMdkN0QjtFU3NFTSx5Qko5SWdCLEVBQUE7QUx3RXRCO0VTc0VNLHlCSnJGZ0IsRUFBQTtBTGV0QjtFU3NFTSx5Qko1QmdCLEVBQUE7QUwxQ3RCO0VTOEVJLDRCSnRJaUMsRUFBQTtBTHdEckM7RVM4RUksNEJKN0VpQyxFQUFBO0FMRHJDO0VTOEVJLDRCSnBCaUMsRUFBQTtBTDFEckM7RVN5RkUseUJKaktvQixFQUFBO0FMd0V0QjtFU3lGRSx5Qkp4R29CLEVBQUE7QUxldEI7RVN5RkUseUJKL0NvQixFQUFBO0FMMUN0QjtFU3lHUSxjSmxMa0IsRUFBQTtBTHlFMUI7RVN5R1EsY0p6SGtCLEVBQUE7QUxnQjFCO0VTeUdRLGNKaEVrQixFQUFBO0FMekMxQjtFU2dIUSx5QkoxSnFCLEVBQUE7QUwwQzdCO0VTZ0hRLHlCSmpHcUIsRUFBQTtBTGY3QjtFU2dIUSx5Qkp4Q3FCLEVBQUE7QUx4RTdCO0VTdUhRLHlCSmpLcUIsRUFBQTtBTDBDN0I7RVN1SFEseUJKeEdxQixFQUFBO0FMZjdCO0VTdUhRLHlCSi9DcUIsRUFBQTtBTHhFN0I7RVM4SFEsNkJBQTZCLEVBQUE7QVQ5SHJDO0VTOEhRLDZCQUE2QixFQUFBO0FUOUhyQztFUzhIUSw2QkFBNkIsRUFBQTtBVDlIckM7RVNxSVEsNkJBQTZCLEVBQUE7QVRySXJDO0VTcUlRLDZCQUE2QixFQUFBO0FUcklyQztFU3FJUSw2QkFBNkIsRUFBQTtBVHJJckM7RVM4SVUseUJKckx5QixFQUFBO0FMdUNuQztFUzhJVSx5Qko1SHlCLEVBQUE7QUxsQm5DO0VTOElVLHlCSm5FeUIsRUFBQTtBTDNFbkM7RVNvSlkseUJKMUwyQixFQUFBO0FMc0N2QztFU29KWSx5QkpqSTJCLEVBQUE7QUxuQnZDO0VTb0pZLHlCSnhFMkIsRUFBQTtBTDVFdkM7RVM2SlEseUJKbk9nQixFQUFBO0FMc0V4QjtFUzZKUSx5QkoxS2dCLEVBQUE7QUxheEI7RVM2SlEseUJKakhnQixFQUFBO0FMNUN4QjtFU29LUSx5Qko1T2MsRUFBQTtBTHdFdEI7RVNvS1EseUJKbkxjLEVBQUE7QUxldEI7RVNvS1EseUJKMUhjLEVBQUE7QUwxQ3RCO0VTNktVLHlCSmxQVyxFQUFBO0FMcUVyQjtFUzZLVSx5Qkp6TFcsRUFBQTtBTFlyQjtFUzZLVSx5QkpoSVcsRUFBQTtBTDdDckI7RVN1TFUseUJKOVBhLEVBQUE7QUx1RXZCO0VTdUxVLHlCSnJNYSxFQUFBO0FMY3ZCO0VTdUxVLHlCSjVJYSxFQUFBO0FMM0N2QjtFUzJNUSx5QkpoUmEsRUFBQTtBTHFFckI7RVMyTVEseUJKdk5hLEVBQUE7QUxZckI7RVMyTVEseUJKOUphLEVBQUE7QUw3Q3JCO0VTa05RLHlCSjFSYyxFQUFBO0FMd0V0QjtFU2tOUSx5QkpqT2MsRUFBQTtBTGV0QjtFU2tOUSx5Qkp4S2MsRUFBQTtBTDFDdEI7RVNpT0ksY0o1U2tCLEVBQUE7QUwyRXRCO0VTaU9JLGNKblBrQixFQUFBO0FMa0J0QjtFU2lPSSxjSjFMa0IsRUFBQTtBTHZDdEI7RVN1T00seUJKL1NnQixFQUFBO0FMd0V0QjtFU3VPTSx5Qkp0UGdCLEVBQUE7QUxldEI7RVN1T00seUJKN0xnQixFQUFBO0FMMUN0QjtFUytPSSxjSnZUa0IsRUFBQTtBTHdFdEI7RVMrT0ksY0o5UGtCLEVBQUE7QUxldEI7RVMrT0ksY0pyTWtCLEVBQUE7QUwxQ3RCO0VTc1BJLDRCSjlTaUMsRUFBQTtBTHdEckM7RVNzUEksNEJKclBpQyxFQUFBO0FMRHJDO0VTc1BJLDRCSjVMaUMsRUFBQTtBTDFEckM7RVNnUUkseUJKdlMrQixFQUFBO0FMdUNuQztFU2dRSSx5Qko5TytCLEVBQUE7QUxsQm5DO0VTZ1FJLHlCSnJMK0IsRUFBQTtBTDNFbkM7RVNzUU0seUJKNVNpQyxFQUFBO0FMc0N2QztFU3NRTSx5QkpuUGlDLEVBQUE7QUxuQnZDO0VTc1FNLHlCSjFMaUMsRUFBQTtBSWlNM0M7RVQvVkUsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtFQUN2QixtQkFBbUIsRUFBQTtBQWdGakI7RVM4UlUseUJKbldXLEVBQUE7QUxxRXJCO0VTOFJVLHlCSjFTVyxFQUFBO0FMWXJCO0VTOFJVLHlCSmpQVyxFQUFBO0FMN0NyQjtFUzhTSSxjSnRYa0IsRUFBQTtBTHdFdEI7RVM4U0ksY0o3VGtCLEVBQUE7QUxldEI7RVM4U0ksY0pwUWtCLEVBQUE7QUwxQ3RCO0VTNFRRLGNKcllrQixFQUFBO0FMeUUxQjtFUzRUUSxjSjVVa0IsRUFBQTtBTGdCMUI7RVM0VFEsY0puUmtCLEVBQUE7QUx6QzFCO0VTbVVRLHlCSjVXeUIsRUFBQTtBTHlDakM7RVNtVVEseUJKblR5QixFQUFBO0FMaEJqQztFU21VUSxzQkoxUHNCLEVBQUE7QUk4TmxDO0VUalRFLFdBRDBEO0VBRTFELGNBRjRCO0VBRzVCLGtCQUg0QztFU29WbEMsTUFBTTtFQUNOLGFBQWE7RUFDYixnQ0FBZ0MsRUFBQTtBVDNVeEM7SVM4VVUseUJKdlh1QixFQUFBO0FMeUNqQztJUzhVVSx5Qko5VHVCLEVBQUE7QUxoQmpDO0lTOFVVLHNCSnJRb0IsRUFBQTtBTHpFOUI7RVNzVlEseUJKOVg0QixFQUFBO0FMd0NwQztFU3NWUSx5QkpyVTRCLEVBQUE7QUxqQnBDO0VTc1ZRLHlCSjVRNEIsRUFBQTtBSTZOeEM7RVRqVEUsV0FEMEQ7RUFFMUQsY0FGNEI7RUFHNUIsa0JBSDRDO0VTdVdsQyxjQUFjO0VBQ2QsTUFBTTtFQUNOLGdDQUFnQyxFQUFBO0FUOVZ4QztJU2lXVSx5Qkp6WTBCLEVBQUE7QUx3Q3BDO0lTaVdVLHlCSmhWMEIsRUFBQTtBTGpCcEM7SVNpV1UseUJKdlIwQixFQUFBO0FMMUVwQztFU21YTSxjSjVib0IsRUFBQTtBTHlFMUI7RVNtWE0sY0puWW9CLEVBQUE7QUxnQjFCO0VTbVhNLGNKMVVvQixFQUFBO0FMekMxQjtFUzBYTSxjSnJjZ0IsRUFBQTtBTDJFdEI7RVMwWE0sY0o1WWdCLEVBQUE7QUxrQnRCO0VTMFhNLGNKblZnQixFQUFBO0FJbVUxQjtFQXNCTSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1osaUJBQWlCLEVBQUE7QVRwWW5CO0VTNllJLGNKdGRzQixFQUFBO0FMeUUxQjtFUzZZSSxjSjdac0IsRUFBQTtBTGdCMUI7RVM2WUksY0pwV3NCLEVBQUE7QUx6QzFCO0VTc1pNLGNKamVnQjtFSWtlaEIseUJKNWI4QixFQUFBO0FMcUNwQztFU3NaTSxjSnhhZ0I7RUl5YWhCLHlCSm5ZOEIsRUFBQTtBTHBCcEM7RVNzWk0sY0ovV2dCO0VJZ1hoQix5QkoxVThCLEVBQUE7QUw3RXBDO0VTNlpRLHlCSmpjdUIsRUFBQTtBTG9DL0I7RVM2WlEseUJKeFl1QixFQUFBO0FMckIvQjtFUzZaUSx5QkovVXVCLEVBQUE7QUl1Vm5DO0VBQ0Usa0JBQWtCLEVBQUE7QUFEcEI7SUFJSSxrQkFBa0I7SUFDbEIsV0FBVztJQUNYLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsV0FBVyxFQUFBO0FUN2FYO01TZ2JFLHlCSnZlMkI7TUl3ZTNCLGNKNWZvQixFQUFBO0FMMkV0QjtNU2diRSx5Qko5YTJCO01JK2EzQixjSm5jb0IsRUFBQTtBTGtCdEI7TVNnYkUseUJKclgyQjtNSXNYM0IsY0oxWW9CLEVBQUE7QUk4WDFCO01BZ0JNLGlCQUFpQjtNQUNqQixhQUFhLEVBQUE7QVR0YmY7UVMwYk0sdUNKaGZpQyxFQUFBO0FMc0R2QztRUzBiTSx1Q0p2YmlDLEVBQUE7QUxIdkM7UVMwYk0sMENKOVhvQyxFQUFBO0FLL0k5Qzs7RUFFRSxjQUFjO0VBQ2QsYUFBYTtFQUNiLGdCQUFnQixFQUFBO0FBSmxCOztJQU9JLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsZ0JBQWdCLEVBQUE7QVYwRWhCOztNVXZFRSx1Q0xMMkM7TUtNM0MsY0xMb0IsRUFBQTtBTDJFdEI7O01VdkVFLHVDTG9EMkM7TUtuRDNDLGNMb0RvQixFQUFBO0FMa0J0Qjs7TVV2RUUsMENMNkc4QztNSzVHOUMsY0w2R29CLEVBQUE7QUsxSDFCOztNQWlCTSxrQkFBa0I7TUFDbEIsTUFBTTtNQUNOLE9BQU8sRUFBQTtBVmdFVDtFVXBETSxjTHBCZ0IsRUFBQTtBTHdFdEI7RVVwRE0sY0xxQ2dCLEVBQUE7QUxldEI7RVVwRE0sY0w4RmdCLEVBQUE7QUwxQ3RCO0VVM0NNLHlCTDdCZ0IsRUFBQTtBTHdFdEI7RVUz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QUFrQixFQUFBO0FBdEQ1QjtVQTBEVSxtQkFBbUIsRUFBQTtBQ3JDN0I7RUFDRSxxQkFBcUI7RUFDckIsOEJBQThDO0VBQzlDLGdCQUFnQixFQUFBO0FBR2xCO0VBQ0UscUJBQXFCO0VBQ3JCLGdDQUFnRDtFQUNoRCxnQkFBZ0IsRUFBQTtBQUdsQjtFQUNFLHFCQUFxQjtFQUNyQixpQ0FBaUQ7RUFDakQsZ0JBQWdCLEVBQUE7QUFHbEI7RUFDRSxxQkFBcUI7RUFDckIsNkJBQTZDO0VBQzdDLGdCQUFnQixFQUFBO0FBR2xCO0VBQ0UscUJBQXFCO0VBQ3JCLGtDQUFrRDtFQUNsRCxnQkFBZ0IsRUFBQTtBQUlsQjtFQUNFLGlDQUFpQztFQUNqQyxlQUFlLEVBQUE7QUFHakI7RUFDRSxpQ0FBaUM7RUFDakMsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixhQUFhLEVBQUE7QUFKZjtJQU9JLCtEQUE2RTtJQUM3RSxzQkFBc0IsRUFBQTtBQVIxQjtJQVlJLCtEQUE2RTtJQUM3RSxzQkFBc0IsRUFBQTtBQWIxQjtJQWlCSSxnRUFBOEU7SUFDOUUsc0JBQXNCLEVBQUE7QUFsQjFCO0lBc0JJLGFBQWE7SUFDYixXQUFXO0lBQ1gsWUFBWSxFQUFBO0FBSWhCO0VBS00sc0RBQXlEO1VBQXpELDhDQUF5RCxFQUFBIiwiZmlsZSI6InNyYy9zdHlsZXMuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBtaXhpbiB0ZXh0LXRydW5jYXRlIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuQG1peGluIHRleHRXcmFwIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICBsaW5lLWJyZWFrOiBzdHJpY3Q7XHJcbiAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xyXG4gIC1tcy1oeXBoZW5zOiBhdXRvO1xyXG4gIGh5cGhlbnM6IGF1dG87XHJcbn1cclxuQG1peGluIGNvdmVyQm94IHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG59XHJcbkBtaXhpbiBhYnMgKCR0b3A6IGF1dG8sICRyaWdodDogYXV0bywgJGJvdHRvbTogYXV0bywgJGxlZnQ6IGF1dG8pIHtcclxuICB0b3A6ICR0b3A7XHJcbiAgcmlnaHQ6ICRyaWdodDtcclxuICBib3R0b206ICRib3R0b207XHJcbiAgbGVmdDogJGxlZnQ7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcbkBtaXhpbiBjb3ZlckltZyB7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHQtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0LW8tYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbn1cclxuQG1peGluIHZhbGluZ0JveCB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogIDUwJTtcclxuXHRsZWZ0OiA1MCU7XHJcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbn1cclxuQG1peGluIHVuU2VsZWN0IHtcclxuXHQtd2Via2l0LXRvdWNoLWNvbGxvdXQ6IG5vbmU7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbn1cclxuQG1peGluIG1heDExOTkgeyAvLyBtYWtldCAxMTcxXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkgeyBAY29udGVudDsgfVxyXG59XHJcbkBtaXhpbiBtYXgxMTcwIHsgLy8gbWFrZXRzIDk5MlxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMTcwcHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbWF4OTkxIHsgLy8gbWFrZXRzIDc2MlxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkgeyBAY29udGVudDsgfVxyXG59XHJcbkBtaXhpbiBtYXg3NjEgeyAvLyBtYWtldHMgNTc2XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2MXB4KSB7IEBjb250ZW50OyB9XHJcbn1cclxuQG1peGluIG1heDU3NSB7IC8vIG1ha2V0cyA0MDBcclxuICBAbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbW9iaWxlIHtcclxuICBAbWVkaWEgKG1heC13aWR0aDogMzk5cHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gaWNvQ2VudGVyIHtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xyXG59XHJcbkBtaXhpbiBwc2V1ZG8gKCRkaXNwbGF5OiBibG9jaywgJHBvczogYWJzb2x1dGUsICRjb250ZW50OiAnJyl7XHJcbiAgY29udGVudDogJGNvbnRlbnQ7XHJcbiAgZGlzcGxheTogJGRpc3BsYXk7XHJcbiAgcG9zaXRpb246ICRwb3M7XHJcbn1cclxuXHJcbi8qXHJcbiogSW1wbGVtZW50YXRpb24gb2YgdGhlbWVzXHJcbiovXHJcbkBtaXhpbiB0aGVtaWZ5KCR0aGVtZXM6ICR0aGVtZXMpIHtcclxuICBAZWFjaCAkdGhlbWUsICRtYXAgaW4gJHRoZW1lcyB7XHJcbiAgICAudGhlbWUtI3skdGhlbWV9ICYge1xyXG4gICAgICAkdGhlbWUtbWFwOiAoKSAhZ2xvYmFsO1xyXG4gICAgICBAZWFjaCAka2V5LCAkc3VibWFwIGluICRtYXAge1xyXG4gICAgICAgICR2YWx1ZTogbWFwLWdldChtYXAtZ2V0KCR0aGVtZXMsICR0aGVtZSksICcjeyRrZXl9Jyk7XHJcbiAgICAgICAgJHRoZW1lLW1hcDogbWFwLW1lcmdlKCR0aGVtZS1tYXAsICgka2V5OiAkdmFsdWUpKSAhZ2xvYmFsO1xyXG4gICAgICB9XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgICAkdGhlbWUtbWFwOiBudWxsICFnbG9iYWw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AZnVuY3Rpb24gdGhlbWVkKCRrZXkpIHtcclxuICBAcmV0dXJuIG1hcC1nZXQoJHRoZW1lLW1hcCwgJGtleSk7XHJcbn1cclxuIiwiLypcclxuKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGVtZXNcclxuKi9cbkBpbXBvcnQgdXJsKH5Abmctc2VsZWN0L25nLXNlbGVjdC90aGVtZXMvZGVmYXVsdC50aGVtZS5jc3MpO1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBpbmhlcml0O1xuICAtbW96LWJveC1zaXppbmc6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgLXdlYmtpdC10b3VjaC1jb2xsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbmIsIHUsIGksIGNlbnRlcixcbmRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG5maWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsXG5maWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsXG5tZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcbnRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250OiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSxcbmZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbmJvZHkge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbm9sLCB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuYmxvY2txdW90ZSwgcSB7XG4gIHF1b3Rlczogbm9uZTsgfVxuXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlcixcbnE6YmVmb3JlLCBxOmFmdGVyIHtcbiAgY29udGVudDogbm9uZTsgfVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwOyB9XG5cbmlucHV0IHtcbiAgb3V0bGluZTogbm9uZTsgfVxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDEwMDBweCB3aGl0ZSBpbnNldDsgfVxuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICBhOmFjdGl2ZSwgYTpob3ZlciwgYTpmb2N1cyB7XG4gICAgb3V0bGluZTogMDsgfVxuXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbmIsIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuaW1nIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBib3JkZXI6IDA7IH1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4udGhlbWUtZGFyayAuYXBwLWNvbnRlbnQgLnByZWxvYWRlciAubG9hZGluZy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkOyB9XG5cbi50aGVtZS1ncmF5IC5hcHAtY29udGVudCAucHJlbG9hZGVyIC5sb2FkaW5nLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0N2NmOGQ7IH1cblxuLnRoZW1lLXdoaXRlIC5hcHAtY29udGVudCAucHJlbG9hZGVyIC5sb2FkaW5nLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NmMxNzI7IH1cblxuYnV0dG9uIHtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LWZhbWlseTogT3BlblNhbnMsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBvdXRsaW5lOiBub25lO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGhlaWdodDogNC4ycmVtOyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbjpkaXNhYmxlZDpub3QoLnRyYW5zcGFyZW50LWJ1dHRvbiksIC50aGVtZS1kYXJrIGJ1dHRvbi5ibHVlLWJ1dHRvbl9yZXNldCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzljYWRiNztcbiAgICBjb2xvcjogIzExMTkyMTsgfVxuICAudGhlbWUtZ3JheSBidXR0b246ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pLCAudGhlbWUtZ3JheSBidXR0b24uYmx1ZS1idXR0b25fcmVzZXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3OTg0OGY7XG4gICAgY29sb3I6ICMxYTFhMWE7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbjpkaXNhYmxlZDpub3QoLnRyYW5zcGFyZW50LWJ1dHRvbiksIC50aGVtZS13aGl0ZSBidXR0b24uYmx1ZS1idXR0b25fcmVzZXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MGE0YWU7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uOmRpc2FibGVkOm5vdCgudHJhbnNwYXJlbnQtYnV0dG9uKTpob3ZlciwgLnRoZW1lLWRhcmsgYnV0dG9uLmJsdWUtYnV0dG9uX3Jlc2V0OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjdkMWUwOyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbjpkaXNhYmxlZDpub3QoLnRyYW5zcGFyZW50LWJ1dHRvbik6aG92ZXIsIC50aGVtZS1ncmF5IGJ1dHRvbi5ibHVlLWJ1dHRvbl9yZXNldDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ExYWViYjsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uOmRpc2FibGVkOm5vdCgudHJhbnNwYXJlbnQtYnV0dG9uKTpob3ZlciwgLnRoZW1lLXdoaXRlIGJ1dHRvbi5ibHVlLWJ1dHRvbl9yZXNldDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2FlYmVjNjsgfVxuICAudGhlbWUtZGFyayBidXR0b246ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pOmZvY3VzLCAudGhlbWUtZGFyayBidXR0b24uYmx1ZS1idXR0b25fcmVzZXQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhN2I5YzI7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uOmRpc2FibGVkOm5vdCgudHJhbnNwYXJlbnQtYnV0dG9uKTpmb2N1cywgLnRoZW1lLWdyYXkgYnV0dG9uLmJsdWUtYnV0dG9uX3Jlc2V0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE5NTlmOyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b246ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pOmZvY3VzLCAudGhlbWUtd2hpdGUgYnV0dG9uLmJsdWUtYnV0dG9uX3Jlc2V0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdiOWMyOyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjtcbiAgICBjb2xvcjogIzExMTkyMTsgfVxuICAudGhlbWUtZ3JheSBidXR0b24uYmx1ZS1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7XG4gICAgY29sb3I6ICMxYTFhMWE7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAudGhlbWUtZGFyayBidXR0b24uYmx1ZS1idXR0b246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM4MmQ3ZmY7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uLmJsdWUtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODZkNmZmOyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b24uYmx1ZS1idXR0b246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2IzZmY7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uLmJsdWUtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTliNWZkOyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzVmYjZmYzsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uLmJsdWUtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc5ZmZhOyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbi5ncmVlbi1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2RhOWQ7XG4gICAgY29sb3I6ICMxMTE5MjE7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ3Y2Y4ZDtcbiAgICBjb2xvcjogIzFhMWExYTsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAudGhlbWUtZGFyayBidXR0b24uZ3JlZW4tYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGRmY2M2OyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbi5ncmVlbi1idXR0b246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3YmY2YzY7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbi5ncmVlbi1idXR0b246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1YWQ1ODY7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzYyZTBiMjsgfVxuICAudGhlbWUtZ3JheSBidXR0b24uZ3JlZW4tYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYzllOyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b24uZ3JlZW4tYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTNjNzdjOyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbi50dXJxdW9pc2UtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRkMGUxO1xuICAgIGNvbG9yOiAjMTExOTIxOyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbi50dXJxdW9pc2UtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2VjNWQ3O1xuICAgIGNvbG9yOiAjMWExYTFhOyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b24udHVycXVvaXNlLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI2YjZjNztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAudGhlbWUtZGFyayBidXR0b24udHVycXVvaXNlLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzg3ZjRmNTsgfVxuICAudGhlbWUtZ3JheSBidXR0b24udHVycXVvaXNlLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzcyZWRmZTsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1MmNiZDk7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCk6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmQ1ZTg7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCk6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1MGQwZTE7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbi50dXJxdW9pc2UtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzFiZWNmOyB9XG4gIGJ1dHRvbi50cmFuc3BhcmVudC1idXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC50aGVtZS1kYXJrIGJ1dHRvbi50cmFuc3BhcmVudC1idXR0b24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDAuMnJlbSBzb2xpZCAjMmIzNjQ0O1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtZ3JheSBidXR0b24udHJhbnNwYXJlbnQtYnV0dG9uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAwLjJyZW0gc29saWQgIzJmMzQzODtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLXdoaXRlIGJ1dHRvbi50cmFuc3BhcmVudC1idXR0b24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDAuMnJlbSBzb2xpZCAjZWJlYmViO1xuICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICBidXR0b24udHJhbnNwYXJlbnQtYnV0dG9uIC5pY29uIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9jb21wbGV0ZS10ZXN0d2FsbGV0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxLjdyZW07XG4gICAgICBoZWlnaHQ6IDEuN3JlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgYnV0dG9uLnRyYW5zcGFyZW50LWJ1dHRvbiAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7IH1cbiAgICAgIC50aGVtZS1ncmF5IGJ1dHRvbi50cmFuc3BhcmVudC1idXR0b24gLmljb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtd2hpdGUgYnV0dG9uLnRyYW5zcGFyZW50LWJ1dHRvbiAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MzQ1NGI7IH1cblxuLmlucHV0LWJsb2NrIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbi1ib3R0b206IDAuNHJlbTsgfVxuICAuaW5wdXQtYmxvY2sgLndyYXAtbGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgbWluLWhlaWdodDogMi40cmVtOyB9XG4gIC5pbnB1dC1ibG9jayBsYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuNHJlbTsgfVxuICAgIC50aGVtZS1kYXJrIC5pbnB1dC1ibG9jayBsYWJlbCB7XG4gICAgICBjb2xvcjogIzU1NjU3NjsgfVxuICAgIC50aGVtZS1ncmF5IC5pbnB1dC1ibG9jayBsYWJlbCB7XG4gICAgICBjb2xvcjogIzU2NWM2MjsgfVxuICAgIC50aGVtZS13aGl0ZSAuaW5wdXQtYmxvY2sgbGFiZWwge1xuICAgICAgY29sb3I6ICNhMGE1YWI7IH1cbiAgLmlucHV0LWJsb2NrIGlucHV0W3R5cGU9J3RleHQnXSwgLmlucHV0LWJsb2NrIGlucHV0W3R5cGU9J3Bhc3N3b3JkJ10sIC5pbnB1dC1ibG9jayBzZWxlY3Qge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQuMnJlbTsgfVxuICAgIC50aGVtZS1kYXJrIC5pbnB1dC1ibG9jayBpbnB1dFt0eXBlPSd0ZXh0J10sIC50aGVtZS1kYXJrIC5pbnB1dC1ibG9jayBpbnB1dFt0eXBlPSdwYXNzd29yZCddLCAudGhlbWUtZGFyayAuaW5wdXQtYmxvY2sgc2VsZWN0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzFlMjc7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS1ncmF5IC5pbnB1dC1ibG9jayBpbnB1dFt0eXBlPSd0ZXh0J10sIC50aGVtZS1ncmF5IC5pbnB1dC1ibG9jayBpbnB1dFt0eXBlPSdwYXNzd29yZCddLCAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2sgc2VsZWN0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS13aGl0ZSAuaW5wdXQtYmxvY2sgaW5wdXRbdHlwZT0ndGV4dCddLCAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrIGlucHV0W3R5cGU9J3Bhc3N3b3JkJ10sIC50aGVtZS13aGl0ZSAuaW5wdXQtYmxvY2sgc2VsZWN0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAuaW5wdXQtYmxvY2sudGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5pbnB1dC1ibG9jay50ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgICBmb250LWZhbWlseTogT3BlblNhbnMsIHNhbnMtc2VyaWY7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiA3LjVyZW07XG4gICAgICBtYXgtaGVpZ2h0OiA3LjVyZW07XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgIHJlc2l6ZTogbm9uZTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLmlucHV0LWJsb2NrLnRleHRhcmVhIHRleHRhcmVhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE3MWUyNztcbiAgICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAgIC50aGVtZS1ncmF5IC5pbnB1dC1ibG9jay50ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrLnRleHRhcmVhIHRleHRhcmVhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgLmlucHV0LWJsb2NrIC5lcnJvci1ibG9jayB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjRyZW07XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAudGhlbWUtZGFyayAuaW5wdXQtYmxvY2sgLmVycm9yLWJsb2NrIHtcbiAgICAgIGNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLWdyYXkgLmlucHV0LWJsb2NrIC5lcnJvci1ibG9jayB7XG4gICAgICBjb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS13aGl0ZSAuaW5wdXQtYmxvY2sgLmVycm9yLWJsb2NrIHtcbiAgICAgIGNvbG9yOiAjZmY1MjUyOyB9XG4gIC5pbnB1dC1ibG9jayAuc3VjY2Vzcy1ibG9jayB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjRyZW07XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAudGhlbWUtZGFyayAuaW5wdXQtYmxvY2sgLnN1Y2Nlc3MtYmxvY2sge1xuICAgICAgY29sb3I6ICM1Y2RhOWQ7IH1cbiAgICAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2sgLnN1Y2Nlc3MtYmxvY2sge1xuICAgICAgY29sb3I6ICM0N2NmOGQ7IH1cbiAgICAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrIC5zdWNjZXNzLWJsb2NrIHtcbiAgICAgIGNvbG9yOiAjNDZjMTcyOyB9XG5cbi50aGVtZS1kYXJrIC5lcnJvci10ZXh0IHtcbiAgY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLWdyYXkgLmVycm9yLXRleHQge1xuICBjb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtd2hpdGUgLmVycm9yLXRleHQge1xuICBjb2xvcjogI2ZmNTI1MjsgfVxuXG5pbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvICsgbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBhZGRpbmctbGVmdDogMi40cmVtO1xuICAtd2Via2l0LXRvdWNoLWNvbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAudGhlbWUtZGFyayBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvICsgbGFiZWwge1xuICAgIGNvbG9yOiAjNTU2NTc2OyB9XG4gIC50aGVtZS1ncmF5IGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW8gKyBsYWJlbCB7XG4gICAgY29sb3I6ICM1NjVjNjI7IH1cbiAgLnRoZW1lLXdoaXRlIGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW8gKyBsYWJlbCB7XG4gICAgY29sb3I6ICNhMGE1YWI7IH1cblxuaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbzpub3QoY2hlY2tlZCkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7IH1cbiAgaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbzpub3QoY2hlY2tlZCkgKyBsYWJlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwLjdyZW07XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgd2lkdGg6IDEuNHJlbTtcbiAgICBoZWlnaHQ6IDEuNHJlbTsgfVxuICAgIC50aGVtZS1kYXJrIGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICM0ZGIxZmY7IH1cbiAgICAudGhlbWUtZ3JheSBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvOm5vdChjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4gICAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCAjNDJhNWY1OyB9XG4gICAgLnRoZW1lLXdoaXRlIGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICMyYzk1ZjE7IH1cbiAgaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbzpub3QoY2hlY2tlZCkgKyBsYWJlbDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMXJlbTtcbiAgICBsZWZ0OiAwLjNyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2lkdGg6IDAuOHJlbTtcbiAgICBoZWlnaHQ6IDAuOHJlbTsgfVxuICAgIC50aGVtZS1kYXJrIGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAgIC50aGVtZS1ncmF5IGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuICAgIC50aGVtZS13aGl0ZSBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvOm5vdChjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbzpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuICBvcGFjaXR5OiAxOyB9XG5cbmlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3ggKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcGFkZGluZy1sZWZ0OiAzLjZyZW07XG4gIC13ZWJraXQtdG91Y2gtY29sbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC50aGVtZS1kYXJrIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3ggKyBsYWJlbCB7XG4gICAgY29sb3I6ICM1NTY1NzY7IH1cbiAgLnRoZW1lLWdyYXkgaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveCArIGxhYmVsIHtcbiAgICBjb2xvcjogIzU2NWM2MjsgfVxuICAudGhlbWUtd2hpdGUgaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveCArIGxhYmVsIHtcbiAgICBjb2xvcjogI2EwYTVhYjsgfVxuXG5pbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94Om5vdChjaGVja2VkKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDEuNnJlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveDpub3QoY2hlY2tlZCkgKyBsYWJlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3g6bm90KGNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMS42cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB3aWR0aDogMS40cmVtO1xuICAgIGhlaWdodDogMS40cmVtOyB9XG4gICAgLnRoZW1lLWRhcmsgaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveDpub3QoY2hlY2tlZCkgKyBsYWJlbDpiZWZvcmUge1xuICAgICAgYm9yZGVyOiAwLjFyZW0gc29saWQgIzRkYjFmZjsgfVxuICAgIC50aGVtZS1ncmF5IGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3g6bm90KGNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICM0MmE1ZjU7IH1cbiAgICAudGhlbWUtd2hpdGUgaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveDpub3QoY2hlY2tlZCkgKyBsYWJlbDpiZWZvcmUge1xuICAgICAgYm9yZGVyOiAwLjFyZW0gc29saWQgIzJjOTVmMTsgfVxuXG5pbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94OmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvY29tcGxldGUtdGVzdHdhbGxldC5zdmcpOyB9XG4gIC50aGVtZS1kYXJrIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3g6Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAudGhlbWUtZ3JheSBpbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94OmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cbiAgLnRoZW1lLXdoaXRlIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3g6Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayAuc3dpdGNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsgfVxuXG4udGhlbWUtZ3JheSAuc3dpdGNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsgfVxuXG4udGhlbWUtd2hpdGUgLnN3aXRjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWRhcmsgLnN3aXRjaCAuY2lyY2xlLm9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSAuc3dpdGNoIC5jaXJjbGUub24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSAuc3dpdGNoIC5jaXJjbGUub24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIC5zd2l0Y2ggLmNpcmNsZS5vZmYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IC5zd2l0Y2ggLmNpcmNsZS5vZmYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSAuc3dpdGNoIC5jaXJjbGUub2ZmIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2EwYTVhYjsgfVxuXG4udGFibGUtdG9vbHRpcCB7XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTsgfVxuICAudGhlbWUtZGFyayAudGFibGUtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogIzQyNTA1ZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6ICMzZTQ2NGM7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS13aGl0ZSAudGFibGUtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDEyMCwgMTIwLCAxMjAsIDAuNSk7XG4gICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgLnRhYmxlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB9XG4gIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wIHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuICAgIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0xcmVtO1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSAwLjVyZW0pO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzQyNTA1ZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3A6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICMzZTQ2NGMgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZmZmZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcC1sZWZ0IHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuICAgIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLWxlZnQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogLTFyZW07XG4gICAgICBsZWZ0OiAwLjdyZW07XG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cbiAgICAgIC50aGVtZS1kYXJrIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLWxlZnQ6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICM0MjUwNWYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzQyNTA1ZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3AtbGVmdDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzNlNDY0YyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjM2U0NjRjOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3AtbGVmdDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZmZmZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmZmZmOyB9XG4gIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLXJpZ2h0IHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuICAgIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLXJpZ2h0OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0xcmVtO1xuICAgICAgcmlnaHQ6IDAuN3JlbTtcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3AtcmlnaHQ6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICM0MjUwNWYgIzQyNTA1ZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3AtcmlnaHQ6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICMzZTQ2NGMgIzNlNDY0YyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLXJpZ2h0OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmICNmZmZmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20ge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTFyZW07XG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtIDAuNXJlbSk7XG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cbiAgICAgIC50aGVtZS1kYXJrIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzQyNTA1ZiB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b206YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjM2U0NjRjIHRyYW5zcGFyZW50OyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b206YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmZmZmIHRyYW5zcGFyZW50OyB9XG4gIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tLWxlZnQge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbS1sZWZ0OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMXJlbTtcbiAgICAgIGxlZnQ6IDAuN3JlbTtcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tbGVmdDpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM0MjUwNWYgIzQyNTA1ZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tbGVmdDpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMzZTQ2NGMgIzNlNDY0YzsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tLWxlZnQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmZmZmICNmZmZmZmY7IH1cbiAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tcmlnaHQge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbS1yaWdodDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTFyZW07XG4gICAgICByaWdodDogMC43cmVtO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbS1yaWdodDpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICM0MjUwNWYgIzQyNTA1ZiB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tcmlnaHQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjM2U0NjRjICMzZTQ2NGMgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbS1yaWdodDpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNmZmZmZmYgI2ZmZmZmZiB0cmFuc3BhcmVudDsgfVxuICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTsgfVxuICAgIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdDphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiBjYWxjKDUwJSAtIDAuNXJlbSk7XG4gICAgICByaWdodDogLTFyZW07XG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cbiAgICAgIC50aGVtZS1kYXJrIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzQyNTA1ZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1sZWZ0OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjM2U0NjRjOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1sZWZ0OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmZmZmOyB9XG4gIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gICAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1yaWdodDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSAwLjVyZW0pO1xuICAgICAgbGVmdDogLTFyZW07XG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cbiAgICAgIC50aGVtZS1kYXJrIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNDI1MDVmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gICAgICAudGhlbWUtZ3JheSAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXJpZ2h0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzNlNDY0YyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZmZmZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG5cbi50YWJsZS10b29sdGlwLWRpbWVuc2lvbnMgLnRvb2x0aXAtaW5uZXIge1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWF4LXdpZHRoOiAyMHJlbTtcbiAgbWF4LWhlaWdodDogMTByZW07IH1cblxuLmJhbGFuY2UtdG9vbHRpcCB7XG4gIHBhZGRpbmc6IDEuM3JlbTsgfVxuICAudGhlbWUtZGFyayAuYmFsYW5jZS10b29sdGlwIHtcbiAgICBiYWNrZ3JvdW5kOiAjNDI1MDVmO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAudGhlbWUtZ3JheSAuYmFsYW5jZS10b29sdGlwIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2U0NjRjO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAudGhlbWUtd2hpdGUgLmJhbGFuY2UtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDEyMCwgMTIwLCAxMjAsIDAuNSk7XG4gICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gICAgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuYXZhaWxhYmxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuN3JlbTsgfVxuICAgICAgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuYXZhaWxhYmxlIGIge1xuICAgICAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAubG9ja2VkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuN3JlbTsgfVxuICAgICAgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAubG9ja2VkIGIge1xuICAgICAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAubGluayB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIC50aGVtZS1kYXJrIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmxpbmsge1xuICAgICAgICBjb2xvcjogIzRkYjFmZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAubGluayB7XG4gICAgICAgIGNvbG9yOiAjNDJhNWY1OyB9XG4gICAgICAudGhlbWUtd2hpdGUgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAubGluayB7XG4gICAgICAgIGNvbG9yOiAjMmM5NWYxOyB9XG4gIC5iYWxhbmNlLXRvb2x0aXAubmctdG9vbHRpcC10b3Age1xuICAgIG1hcmdpbi10b3A6IC0xcmVtOyB9XG4gIC5iYWxhbmNlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20ge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgLmJhbGFuY2UtdG9vbHRpcC5uZy10b29sdGlwLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTsgfVxuICAuYmFsYW5jZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG5cbi5hY2NvdW50LXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIge1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBtYXgtd2lkdGg6IDE4cmVtOyB9XG5cbi5jb21tZW50LXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIge1xuICBvdmVyZmxvdzogYXV0bztcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgbWF4LXdpZHRoOiA1MHJlbTtcbiAgbWF4LWhlaWdodDogMjVyZW07IH1cblxuLnVwZGF0ZS10b29sdGlwIHtcbiAgcGFkZGluZzogMS41cmVtOyB9XG4gIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogIzQyNTA1ZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2U0NjRjO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAudGhlbWUtd2hpdGUgLnVwZGF0ZS10b29sdGlwIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMTIwLCAxMjAsIDEyMCwgMC41KTtcbiAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjNWYyYjExO1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS1ncmF5IC51cGRhdGUtdG9vbHRpcC5pbXBvcnRhbnQge1xuICAgIGJhY2tncm91bmQ6ICM1NTI0MGQ7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcC5pbXBvcnRhbnQge1xuICAgIGJhY2tncm91bmQ6ICNlZjZjMDA7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwLmltcG9ydGFudC5uZy10b29sdGlwLWxlZnQtYm90dG9tOmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM1ZjJiMTEgIzVmMmIxMTsgfVxuICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50Lm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzU1MjQwZCAjNTUyNDBkOyB9XG4gIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50Lm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2VmNmMwMCAjZWY2YzAwOyB9XG4gIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcC5pbXBvcnRhbnQubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICM1ZjJiMTEgIzVmMmIxMSB0cmFuc3BhcmVudDsgfVxuICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50Lm5nLXRvb2x0aXAtcmlnaHQtYm90dG9tOmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNTUyNDBkICM1NTI0MGQgdHJhbnNwYXJlbnQ7IH1cbiAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcC5pbXBvcnRhbnQubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNlZjZjMDAgI2VmNmMwMCB0cmFuc3BhcmVudDsgfVxuICAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwge1xuICAgIHBhZGRpbmc6IDIuNXJlbTsgfVxuICAgIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcC5jcml0aWNhbCB7XG4gICAgICBiYWNrZ3JvdW5kOiAjNWYxZDFkO1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwge1xuICAgICAgYmFja2dyb3VuZDogIzRjMTkxOTtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcC5jcml0aWNhbCB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZTUzOTM1O1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwgLnRvb2x0aXAtaW5uZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwLmNyaXRpY2FsLm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNWYxZDFkICM1ZjFkMWQ7IH1cbiAgICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwubmctdG9vbHRpcC1sZWZ0LWJvdHRvbTphZnRlciB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM0YzE5MTkgIzRjMTkxOTsgfVxuICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwubmctdG9vbHRpcC1sZWZ0LWJvdHRvbTphZnRlciB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNlNTM5MzUgI2U1MzkzNTsgfVxuICAgIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcC5jcml0aWNhbC5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbTpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNWYxZDFkICM1ZjFkMWQgdHJhbnNwYXJlbnQ7IH1cbiAgICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzRjMTkxOSAjNGMxOTE5IHRyYW5zcGFyZW50OyB9XG4gICAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcC5jcml0aWNhbC5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbTpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZTUzOTM1ICNlNTM5MzUgdHJhbnNwYXJlbnQ7IH1cbiAgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIHtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBsaW5lLWhlaWdodDogMS44cmVtO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgfVxuICAgIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuc3RhbmRhcmQtdXBkYXRlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5zdGFuZGFyZC11cGRhdGUge1xuICAgICAgICBjb2xvcjogIzRkYjFmZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5zdGFuZGFyZC11cGRhdGUge1xuICAgICAgICBjb2xvcjogIzQyYTVmNTsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuc3RhbmRhcmQtdXBkYXRlIHtcbiAgICAgICAgY29sb3I6ICMyYzk1ZjE7IH1cbiAgICAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmltcG9ydGFudC11cGRhdGUge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMi43cmVtOyB9XG4gICAgICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmltcG9ydGFudC11cGRhdGUge1xuICAgICAgICBjb2xvcjogI2ZmNmYwMDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5pbXBvcnRhbnQtdXBkYXRlIHtcbiAgICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmltcG9ydGFudC11cGRhdGUge1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuY3JpdGljYWwtdXBkYXRlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAud3JvbmctdGltZSB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07IH1cbiAgICAgIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAud3JvbmctdGltZSB7XG4gICAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLndyb25nLXRpbWUge1xuICAgICAgICBjb2xvcjogI2ZmNmYwMDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAud3JvbmctdGltZSB7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5pY29uIHtcbiAgICAgIG1hcmdpbjogMS41cmVtIDA7XG4gICAgICB3aWR0aDogNXJlbTtcbiAgICAgIGhlaWdodDogNXJlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdC1ib3R0b20ge1xuICAgIG1hcmdpbi1sZWZ0OiAtMS41cmVtOyB9XG4gICAgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMC42cmVtO1xuICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAubmctdG9vbHRpcC1sZWZ0LWJvdHRvbTphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzQyNTA1ZiAjNDI1MDVmOyB9XG4gICAgICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAubmctdG9vbHRpcC1sZWZ0LWJvdHRvbTphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzNlNDY0YyAjM2U0NjRjOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmZmZmYgI2ZmZmZmZjsgfVxuICAudXBkYXRlLXRvb2x0aXAubmctdG9vbHRpcC1yaWdodC1ib3R0b20ge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07IH1cbiAgICAudXBkYXRlLXRvb2x0aXAubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDAuNnJlbTtcbiAgICAgIGxlZnQ6IC0xcmVtO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNDI1MDVmICM0MjUwNWYgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS1ncmF5IC51cGRhdGUtdG9vbHRpcC5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbTpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMzZTQ2NGMgIzNlNDY0YyB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcC5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbTpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNmZmZmZmYgI2ZmZmZmZiB0cmFuc3BhcmVudDsgfVxuXG4ubmd4LWNvbnRleHRtZW51IC5kcm9wZG93bi1tZW51IHtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwOyB9XG4gIC50aGVtZS1kYXJrIC5uZ3gtY29udGV4dG1lbnUgLmRyb3Bkb3duLW1lbnUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyYjM2NDQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjUpOyB9XG4gIC50aGVtZS1ncmF5IC5uZ3gtY29udGV4dG1lbnUgLmRyb3Bkb3duLW1lbnUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjUpOyB9XG4gIC50aGVtZS13aGl0ZSAubmd4LWNvbnRleHRtZW51IC5kcm9wZG93bi1tZW51IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMTIwLCAxMjAsIDEyMCwgMC41KTsgfVxuXG4ubmd4LWNvbnRleHRtZW51IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBPcGVuU2Fucywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ubmd4LWNvbnRleHRtZW51IGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMC41ZW0gMWVtOyB9XG4gIC50aGVtZS1kYXJrIC5uZ3gtY29udGV4dG1lbnUgYSB7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLWdyYXkgLm5neC1jb250ZXh0bWVudSBhIHtcbiAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAudGhlbWUtd2hpdGUgLm5neC1jb250ZXh0bWVudSBhIHtcbiAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAudGhlbWUtZGFyayAubmd4LWNvbnRleHRtZW51IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLWdyYXkgLm5neC1jb250ZXh0bWVudSBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTE1OTYwO1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS13aGl0ZSAubmd4LWNvbnRleHRtZW51IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0Lm5nLXNlbGVjdC1zaW5nbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07IH1cbiAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1zZWxlY3QtY29udGFpbmVyIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgaGVpZ2h0OiA0LjJyZW07IH1cbiAgICAudGhlbWUtZGFyayAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE3MWUyNztcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1zZWxlY3QtY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS13aGl0ZSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICAgIGNvbG9yOiAjNDM0NTRiOyB9XG4gICAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLWlucHV0IHtcbiAgICAgICAgdG9wOiBhdXRvOyB9XG4gIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwge1xuICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC50aGVtZS1kYXJrIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE3MWUyNzsgfVxuICAgIC50aGVtZS1ncmF5IC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI5MmQzMTsgfVxuICAgIC50aGVtZS13aGl0ZSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cbiAgICAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgcGFkZGluZzogMXJlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzFlMjc7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtZ3JheSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI5MmQzMTtcbiAgICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICAgIC50aGVtZS1kYXJrIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLW1hcmtlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTgsIDY5LCA4NSwgMC41KTtcbiAgICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAgIC50aGVtZS1ncmF5IC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLW1hcmtlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTgsIDYyLCA2NiwgMC41KTtcbiAgICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1tYXJrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MCwgMjQwLCAyNDAsIDAuNSk7XG4gICAgICAgIGNvbG9yOiAjNDM0NTRiOyB9XG4gICAgICAudGhlbWUtZGFyayAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KTtcbiAgICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAgIC50aGVtZS1ncmF5IC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLXNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNywgNDAsIDQzLCAwLjUpO1xuICAgICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLXNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjQsIDIyNCwgMjI0LCAwLjUpO1xuICAgICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAgIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgaGVpZ2h0OiAxcmVtOyB9XG4gICAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XG4gICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtOyB9XG4gICAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwsIC50aGVtZS1kYXJrIGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCB7XG4gIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1kYXJrLnBuZyk7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsLCAudGhlbWUtZ3JheSBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtZ3JheS5wbmcpO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwsIC50aGVtZS13aGl0ZSBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtd2hpdGUucG5nKTtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNvbnRlbnQgLmljb24uZXJyb3IsIC50aGVtZS1kYXJrIGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY29udGVudCAuaWNvbi5lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLWdyYXkgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNvbnRlbnQgLmljb24uZXJyb3IsIC50aGVtZS1ncmF5IGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY29udGVudCAuaWNvbi5lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5jb250ZW50IC5pY29uLmVycm9yLCAudGhlbWUtd2hpdGUgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jb250ZW50IC5pY29uLmVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtZGFyayBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY29udGVudCAuaWNvbi5zdWNjZXNzLCAudGhlbWUtZGFyayBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmNvbnRlbnQgLmljb24uc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1Y2RhOWQ7IH1cblxuLnRoZW1lLWdyYXkgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNvbnRlbnQgLmljb24uc3VjY2VzcywgLnRoZW1lLWdyYXkgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jb250ZW50IC5pY29uLnN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDdjZjhkOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY29udGVudCAuaWNvbi5zdWNjZXNzLCAudGhlbWUtd2hpdGUgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jb250ZW50IC5pY29uLnN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDZjMTcyOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5jb250ZW50IC5pY29uLmluZm8sIC50aGVtZS1kYXJrIGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY29udGVudCAuaWNvbi5pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY29udGVudCAuaWNvbi5pbmZvLCAudGhlbWUtZ3JheSBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmNvbnRlbnQgLmljb24uaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5jb250ZW50IC5pY29uLmluZm8sIC50aGVtZS13aGl0ZSBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmNvbnRlbnQgLmljb24uaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmFjdGlvbi1idXR0b24sIC50aGVtZS1kYXJrIGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuYWN0aW9uLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7XG4gIGNvbG9yOiAjMTExOTIxOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5hY3Rpb24tYnV0dG9uLCAudGhlbWUtZ3JheSBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmFjdGlvbi1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1O1xuICBjb2xvcjogIzFhMWExYTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmFjdGlvbi1idXR0b24sIC50aGVtZS13aGl0ZSBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmFjdGlvbi1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4udGhlbWUtZGFyayBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY2xvc2UtYnV0dG9uIC5pY29uLCAudGhlbWUtZGFyayBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmNsb3NlLWJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNsb3NlLWJ1dHRvbiAuaWNvbiwgLnRoZW1lLWdyYXkgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jbG9zZS1idXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTE1OTYwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY2xvc2UtYnV0dG9uIC5pY29uLCAudGhlbWUtd2hpdGUgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jbG9zZS1idXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIC50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCAjMmIzNjQ0OyB9XG5cbi50aGVtZS1ncmF5IGFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIC50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCAjMmYzNDM4OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJyZW0gc29saWQgI2ViZWJlYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC5sYWJlbCB7XG4gIGNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IGFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIC50YWJsZSAucm93IC5jZWxsLmxhYmVsIHtcbiAgY29sb3I6ICM1NjVjNjI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIC50YWJsZSAucm93IC5jZWxsLmxhYmVsIHtcbiAgY29sb3I6ICNhMGE1YWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXRyYW5zYWN0aW9uLWRldGFpbHMgLnRhYmxlIC5yb3cgLmNlbGwudmFsdWUge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC52YWx1ZSB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC52YWx1ZSB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIC50YWJsZSAucm93IC5jZWxsLmtleS12YWx1ZSB7XG4gIGNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIC50YWJsZSAucm93IC5jZWxsLmtleS12YWx1ZSB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC5rZXktdmFsdWUge1xuICBjb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXByb2dyZXNzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXByb2dyZXNzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2Y0YTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzYzYTNlOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1wcm9ncmVzcy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1wcm9ncmVzcy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDdjZjhkOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIgLnByb2dyZXNzLWJhci1mdWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjsgfVxuXG4udGhlbWUtZGFyayBhcHAtb3Blbi13YWxsZXQtbW9kYWwgLm1vZGFsIHtcbiAgYmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWRhcmsucG5nKTtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLW9wZW4td2FsbGV0LW1vZGFsIC5tb2RhbCB7XG4gIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1ncmF5LnBuZyk7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtb3Blbi13YWxsZXQtbW9kYWwgLm1vZGFsIHtcbiAgYmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLXdoaXRlLnBuZyk7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zZW5kLW1vZGFsIC5tb2RhbCB7XG4gIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1kYXJrLnBuZyk7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zZW5kLW1vZGFsIC5tb2RhbCB7XG4gIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1ncmF5LnBuZyk7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2VuZC1tb2RhbCAubW9kYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtd2hpdGUucG5nKTtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNlbmQtbW9kYWwgLm1vZGFsIC50aXRsZSB7XG4gIGJvcmRlci1ib3R0b206IDAuMnJlbSBzb2xpZCAjMmIzNjQ0OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zZW5kLW1vZGFsIC5tb2RhbCAudGl0bGUge1xuICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgIzJmMzQzODsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNlbmQtbW9kYWwgLm1vZGFsIC50aXRsZSB7XG4gIGJvcmRlci1ib3R0b206IDAuMnJlbSBzb2xpZCAjZWJlYmViOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zZW5kLW1vZGFsIC5tb2RhbCAuYWN0aW9uLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7XG4gIGNvbG9yOiAjMTExOTIxOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zZW5kLW1vZGFsIC5tb2RhbCAuYWN0aW9uLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7XG4gIGNvbG9yOiAjMWExYTFhOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2VuZC1tb2RhbCAubW9kYWwgLmFjdGlvbi1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuXG5hcHAtbWFpbiwgYXBwLWNyZWF0ZS13YWxsZXQsIGFwcC1vcGVuLXdhbGxldCwgYXBwLXJlc3RvcmUtd2FsbGV0LCBhcHAtc2VlZC1waHJhc2UsIGFwcC13YWxsZXQtZGV0YWlscywgYXBwLWFzc2lnbi1hbGlhcywgYXBwLWVkaXQtYWxpYXMsIGFwcC10cmFuc2Zlci1hbGlhcywgYXBwLXNldHRpbmdzLCBhcHAtbG9naW4ge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgcGFkZGluZzogM3JlbTtcbiAgbWluLXdpZHRoOiA4NXJlbTsgfVxuICBhcHAtbWFpbiAuY29udGVudCwgYXBwLWNyZWF0ZS13YWxsZXQgLmNvbnRlbnQsIGFwcC1vcGVuLXdhbGxldCAuY29udGVudCwgYXBwLXJlc3RvcmUtd2FsbGV0IC5jb250ZW50LCBhcHAtc2VlZC1waHJhc2UgLmNvbnRlbnQsIGFwcC13YWxsZXQtZGV0YWlscyAuY29udGVudCwgYXBwLWFzc2lnbi1hbGlhcyAuY29udGVudCwgYXBwLWVkaXQtYWxpYXMgLmNvbnRlbnQsIGFwcC10cmFuc2Zlci1hbGlhcyAuY29udGVudCwgYXBwLXNldHRpbmdzIC5jb250ZW50LCBhcHAtbG9naW4gLmNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAzcmVtO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7IH1cbiAgICAudGhlbWUtZGFyayBhcHAtbWFpbiAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLWNyZWF0ZS13YWxsZXQgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC1vcGVuLXdhbGxldCAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLXJlc3RvcmUtd2FsbGV0IC5jb250ZW50LCAudGhlbWUtZGFyayBhcHAtc2VlZC1waHJhc2UgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC13YWxsZXQtZGV0YWlscyAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLWFzc2lnbi1hbGlhcyAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLWVkaXQtYWxpYXMgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC10cmFuc2Zlci1hbGlhcyAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLXNldHRpbmdzIC5jb250ZW50LCAudGhlbWUtZGFyayBhcHAtbG9naW4gLmNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MywgNTQsIDY4LCAwLjUpO1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtZ3JheSBhcHAtbWFpbiAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLWNyZWF0ZS13YWxsZXQgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC1vcGVuLXdhbGxldCAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLXJlc3RvcmUtd2FsbGV0IC5jb250ZW50LCAudGhlbWUtZ3JheSBhcHAtc2VlZC1waHJhc2UgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC13YWxsZXQtZGV0YWlscyAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLWFzc2lnbi1hbGlhcyAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLWVkaXQtYWxpYXMgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC10cmFuc2Zlci1hbGlhcyAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLXNldHRpbmdzIC5jb250ZW50LCAudGhlbWUtZ3JheSBhcHAtbG9naW4gLmNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNywgNDAsIDQzLCAwLjUpO1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtd2hpdGUgYXBwLW1haW4gLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtY3JlYXRlLXdhbGxldCAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC1vcGVuLXdhbGxldCAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC1yZXN0b3JlLXdhbGxldCAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC1zZWVkLXBocmFzZSAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQtZGV0YWlscyAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC1hc3NpZ24tYWxpYXMgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtZWRpdC1hbGlhcyAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC10cmFuc2Zlci1hbGlhcyAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC1zZXR0aW5ncyAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC1sb2dpbiAuY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAgIGFwcC1tYWluIC5jb250ZW50IC5oZWFkLCBhcHAtY3JlYXRlLXdhbGxldCAuY29udGVudCAuaGVhZCwgYXBwLW9wZW4td2FsbGV0IC5jb250ZW50IC5oZWFkLCBhcHAtcmVzdG9yZS13YWxsZXQgLmNvbnRlbnQgLmhlYWQsIGFwcC1zZWVkLXBocmFzZSAuY29udGVudCAuaGVhZCwgYXBwLXdhbGxldC1kZXRhaWxzIC5jb250ZW50IC5oZWFkLCBhcHAtYXNzaWduLWFsaWFzIC5jb250ZW50IC5oZWFkLCBhcHAtZWRpdC1hbGlhcyAuY29udGVudCAuaGVhZCwgYXBwLXRyYW5zZmVyLWFsaWFzIC5jb250ZW50IC5oZWFkLCBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLmhlYWQsIGFwcC1sb2dpbiAuY29udGVudCAuaGVhZCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1tYWluIC5jb250ZW50IC5hZGQtd2FsbGV0IC5hZGQtd2FsbGV0LWhlbHAge1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtbWFpbiAuY29udGVudCAuYWRkLXdhbGxldCAuYWRkLXdhbGxldC1oZWxwIHtcbiAgY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1tYWluIC5jb250ZW50IC5hZGQtd2FsbGV0IC5hZGQtd2FsbGV0LWhlbHAge1xuICBjb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtbWFpbiAuY29udGVudCAuYWRkLXdhbGxldCAuYWRkLXdhbGxldC1oZWxwIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtbWFpbiAuY29udGVudCAuYWRkLXdhbGxldCAuYWRkLXdhbGxldC1oZWxwIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLW1haW4gLmNvbnRlbnQgLmFkZC13YWxsZXQgLmFkZC13YWxsZXQtaGVscCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNlZWQtcGhyYXNlIC5zZWVkLXBocmFzZS1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MWUyNztcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNlZWQtcGhyYXNlIC5zZWVkLXBocmFzZS1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI5MmQzMTtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zZWVkLXBocmFzZSAuc2VlZC1waHJhc2UtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQtZGV0YWlscyAuc2VlZC1waHJhc2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxZTI3OyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQtZGV0YWlscyAuc2VlZC1waHJhc2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0LWRldGFpbHMgLnNlZWQtcGhyYXNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsgfVxuXG5hcHAtc2V0dGluZ3MgLmNvbnRlbnQge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAudGhlbWUtZGFyayBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnRoZW1lLXNlbGVjdGlvbiB7XG4gICAgY29sb3I6ICM1NTY1NzY7IH1cbiAgLnRoZW1lLWdyYXkgYXBwLXNldHRpbmdzIC5jb250ZW50IC50aGVtZS1zZWxlY3Rpb24ge1xuICAgIGNvbG9yOiAjNTY1YzYyOyB9XG4gIC50aGVtZS13aGl0ZSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnRoZW1lLXNlbGVjdGlvbiB7XG4gICAgY29sb3I6ICNhMGE1YWI7IH1cbiAgLnRoZW1lLWRhcmsgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMywgMzEsIDM5LCAwLjUpOyB9XG4gIC50aGVtZS1ncmF5IGFwcC1zZXR0aW5ncyAuY29udGVudCAuc2NhbGUtc2VsZWN0aW9uIC5idXR0b24tYmxvY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjgsIDMwLCAzMywgMC41KTsgfVxuICAudGhlbWUtd2hpdGUgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjQsIDIyNCwgMjI0LCAwLjUpOyB9XG4gIC50aGVtZS1kYXJrIGFwcC1zZXR0aW5ncyAuY29udGVudCAuc2NhbGUtc2VsZWN0aW9uIC5idXR0b24tYmxvY2sgLmxhYmVsIHtcbiAgICBjb2xvcjogIzU1NjU3NjsgfVxuICAudGhlbWUtZ3JheSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrIC5sYWJlbCB7XG4gICAgY29sb3I6ICM1NjVjNjI7IH1cbiAgLnRoZW1lLXdoaXRlIGFwcC1zZXR0aW5ncyAuY29udGVudCAuc2NhbGUtc2VsZWN0aW9uIC5idXR0b24tYmxvY2sgLmxhYmVsIHtcbiAgICBjb2xvcjogI2EwYTVhYjsgfVxuICAudGhlbWUtZGFyayBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAudGhlbWUtZ3JheSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuICAudGhlbWUtd2hpdGUgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jay5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cbiAgLnRoZW1lLWRhcmsgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jay5hY3RpdmUgLmxhYmVsIHtcbiAgICBjb2xvcjogIzRkYjFmZjsgfVxuICAudGhlbWUtZ3JheSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrLmFjdGl2ZSAubGFiZWwge1xuICAgIGNvbG9yOiAjNDJhNWY1OyB9XG4gIC50aGVtZS13aGl0ZSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrLmFjdGl2ZSAubGFiZWwge1xuICAgIGNvbG9yOiAjMmM5NWYxOyB9XG5cbmFwcC1sb2dpbiB7XG4gIG1pbi13aWR0aDogaW5oZXJpdDsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzFmMjc7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWMxZTIxOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWhlYWRlciBoMyB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWhlYWRlciBoMyB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1oZWFkZXIgaDMge1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1oZWFkZXIgYnV0dG9uIHtcbiAgY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtaGVhZGVyIGJ1dHRvbiB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1oZWFkZXIgYnV0dG9uIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLnRleHQge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLnRleHQge1xuICBjb2xvcjogIzU2NWM2MjsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC50ZXh0IHtcbiAgY29sb3I6ICNhMGE1YWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAuaW5kaWNhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjtcbiAgY29sb3I6ICMxMTE5MjE7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1O1xuICBjb2xvcjogIzFhMWExYTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDNmNGE7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzYzYTNlOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2RjZGM7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIgLmZpbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIgLmZpbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdy5hY2NvdW50LXN5bmNocm9uaXphdGlvbiB7XG4gIGNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdy5hY2NvdW50LXN5bmNocm9uaXphdGlvbiB7XG4gIGNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cuYWNjb3VudC1zeW5jaHJvbml6YXRpb24ge1xuICBjb2xvcjogI2EwYTVhYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MywgNTQsIDY4LCAwLjUpO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNywgNDAsIDQzLCAwLjUpO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTg4ZTU7XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cgLnRleHQge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93IC50ZXh0IHtcbiAgY29sb3I6ICM1NjVjNjI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cgLnRleHQge1xuICBjb2xvcjogIzkxYmFmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93IC5pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmO1xuICBjb2xvcjogIzExMTkyMTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93IC5pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1O1xuICBjb2xvcjogIzFhMWExYTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSAuc2lkZWJhci1hY2NvdW50LXJvdyAuaW5kaWNhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSAuc2lkZWJhci1hY2NvdW50LXJvdyAuc3dpdGNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSAuc2lkZWJhci1hY2NvdW50LXJvdyAuc3dpdGNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cgLnN3aXRjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cuYWNjb3VudC1zeW5jaHJvbml6YXRpb24ge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93LmFjY291bnQtc3luY2hyb25pemF0aW9uIHtcbiAgY29sb3I6ICM1NjVjNjI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cuYWNjb3VudC1zeW5jaHJvbml6YXRpb24ge1xuICBjb2xvcjogIzkxYmFmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQ6aG92ZXI6bm90KC5hY3RpdmUpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OCwgNjksIDg1LCAwLjUpOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudDpob3Zlcjpub3QoLmFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU4LCA2MiwgNjYsIDAuNSk7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudDpob3Zlcjpub3QoLmFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MCwgMjQwLCAyNDAsIDAuNSk7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHM6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCAwJSwgIzE3MWYyNyAxMDAlKTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50czphZnRlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDAlLCAjMWMxZTIxIDEwMCUpOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50czphZnRlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDAlLCB3aGl0ZSAxMDAlKTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyB7XG4gIGJvcmRlci1ib3R0b206IDAuMnJlbSBzb2xpZCAjMWYyODMzOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIHtcbiAgYm9yZGVyLWJvdHRvbTogMC4ycmVtIHNvbGlkICMyZTMzMzc7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIHtcbiAgYm9yZGVyLWJvdHRvbTogMC4ycmVtIHNvbGlkICNlYmViZWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItc2V0dGluZ3MgLndyYXAtYnV0dG9uIGJ1dHRvbiB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbiBidXR0b24ge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItc2V0dGluZ3MgLndyYXAtYnV0dG9uIGJ1dHRvbiB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbiBidXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbiBidXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24gYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24uYWN0aXZlIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2UwZTBlMCAhaW1wb3J0YW50OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbi5hY3RpdmUgYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNywgNDAsIDQzLCAwLjUpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZTBlMGUwICFpbXBvcnRhbnQ7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbi5hY3RpdmUgYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlODhlNSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50OyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbi5hY3RpdmUgYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZiAhaW1wb3J0YW50OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbi5hY3RpdmUgYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNSAhaW1wb3J0YW50OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24uYWN0aXZlIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsgfVxuXG4uc3luY2hyb25pemF0aW9uLXN0YXR1cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgZmxleDogMCAwIDdyZW07XG4gIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIHtcbiAgICBjb2xvcjogIzU1NjU3NjsgfVxuICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyB7XG4gICAgY29sb3I6ICM1NjVjNjI7IH1cbiAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIHtcbiAgICBjb2xvcjogI2EwYTVhYjsgfVxuICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLm9mZmxpbmUsIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vbmxpbmUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMS4ycmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyLjJyZW07IH1cbiAgICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vZmZsaW5lOmJlZm9yZSwgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLm9ubGluZTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgd2lkdGg6IDEuMnJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjJyZW07IH1cbiAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAub2ZmbGluZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vZmZsaW5lOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vZmZsaW5lOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLm9ubGluZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDsgfVxuICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vbmxpbmU6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0N2NmOGQ7IH1cbiAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLm9ubGluZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjsgfVxuICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5zeW5jaW5nLCAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAubG9hZGluZyB7XG4gICAgICBsaW5lLWhlaWdodDogNXJlbTsgfVxuICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBoZWlnaHQ6IDAuN3JlbTtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAgICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcgLnByb2dyZXNzLWJhciB7XG4gICAgICAgICAgZmxleDogMSAwIGF1dG87IH1cbiAgICAgICAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZyAucHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDNmNGE7IH1cbiAgICAgICAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZyAucHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNjNhM2U7IH1cbiAgICAgICAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcgLnByb2dyZXNzLWJhciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjOyB9XG4gICAgICAgICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcgLnByb2dyZXNzLWJhciAuZmlsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgICAgICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nIC5wcm9ncmVzcy1iYXIgLmZpbGwge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkOyB9XG4gICAgICAgICAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZyAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ3Y2Y4ZDsgfVxuICAgICAgICAgICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nIC5wcm9ncmVzcy1iYXIgLmZpbGwge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDZjMTcyOyB9XG4gICAgICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nLmRvd25sb2FkaW5nIC5wcm9ncmVzcy1iYXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDNmNGE7IH1cbiAgICAgICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcuZG93bmxvYWRpbmcgLnByb2dyZXNzLWJhciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM2M2EzZTsgfVxuICAgICAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcuZG93bmxvYWRpbmcgLnByb2dyZXNzLWJhciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYzsgfVxuICAgICAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZy5kb3dubG9hZGluZyAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG4gICAgICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nLmRvd25sb2FkaW5nIC5wcm9ncmVzcy1iYXIgLmZpbGwge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cbiAgICAgICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nLmRvd25sb2FkaW5nIC5wcm9ncmVzcy1iYXIgLmZpbGwge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cbiAgICAgICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcgLnByb2dyZXNzLXBlcmNlbnQge1xuICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwLjdyZW07XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjdyZW07IH1cbiAgICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5sb2FkaW5nIHtcbiAgICAgICAgYW5pbWF0aW9uOiBtb3ZlIDVzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMTAwJSAxMDAlLCBjb2xvci1zdG9wKDAuMTI1LCByZ2JhKDAsIDAsIDAsIDAuMTUpKSwgY29sb3Itc3RvcCgwLjEyNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjI1LCByZ2JhKDAsIDAsIDAsIDAuMSkpLCBjb2xvci1zdG9wKDAuMzc1LCByZ2JhKDAsIDAsIDAsIDAuMSkpLCBjb2xvci1zdG9wKDAuMzc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCByZ2JhKDAsIDAsIDAsIDAuMTUpKSwgY29sb3Itc3RvcCgwLjYyNSwgcmdiYSgwLCAwLCAwLCAwLjE1KSksIGNvbG9yLXN0b3AoMC42MjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC43NSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjg3NSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjg3NSwgdHJhbnNwYXJlbnQpLCB0byh0cmFuc3BhcmVudCkpLCAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsIGNvbG9yLXN0b3AoMC4xMjUsIHJnYmEoMCwgMCwgMCwgMC4zKSksIGNvbG9yLXN0b3AoMC4xMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC4yNSwgcmdiYSgwLCAwLCAwLCAwLjI1KSksIGNvbG9yLXN0b3AoMC4zNzUsIHJnYmEoMCwgMCwgMCwgMC4yNSkpLCBjb2xvci1zdG9wKDAuMzc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCByZ2JhKDAsIDAsIDAsIDAuMykpLCBjb2xvci1zdG9wKDAuNjI1LCByZ2JhKDAsIDAsIDAsIDAuMykpLCBjb2xvci1zdG9wKDAuNjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC43NSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNzUsIHJnYmEoMCwgMCwgMCwgMC4yNSkpLCBjb2xvci1zdG9wKDAuODc1LCByZ2JhKDAsIDAsIDAsIDAuMjUpKSwgY29sb3Itc3RvcCgwLjg3NSwgdHJhbnNwYXJlbnQpLCB0byh0cmFuc3BhcmVudCkpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDdyZW0gN3JlbTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5sb2FkaW5nIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkOyB9XG4gICAgICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5sb2FkaW5nIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDdjZjhkOyB9XG4gICAgICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAubG9hZGluZyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjsgfVxuICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAudXBkYXRlLXRleHQge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAudXBkYXRlLXRleHQudGltZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOyB9XG4gICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24ge1xuICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICBtYXJnaW46IDAuM3JlbSAwIDAgMC42cmVtO1xuICAgICAgd2lkdGg6IDEuMnJlbTtcbiAgICAgIGhlaWdodDogMS4ycmVtOyB9XG4gICAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi51cGRhdGUge1xuICAgICAgICBtYXNrOiB1cmwoLi9hc3NldHMvaWNvbnMvdXBkYXRlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjsgfVxuICAgICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24udGltZSB7XG4gICAgICAgIG1hc2s6IHVybCguL2Fzc2V0cy9pY29ucy90aW1lLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjsgfVxuICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5zdGFuZGFyZCB7XG4gICAgICBjb2xvcjogIzRkYjFmZjsgfVxuICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5zdGFuZGFyZCB7XG4gICAgICBjb2xvcjogIzQyYTVmNTsgfVxuICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuc3RhbmRhcmQge1xuICAgICAgY29sb3I6ICMyYzk1ZjE7IH1cbiAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaW1wb3J0YW50IHtcbiAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmltcG9ydGFudCB7XG4gICAgICBjb2xvcjogI2ZmNmYwMDsgfVxuICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaW1wb3J0YW50IHtcbiAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmNyaXRpY2FsIHtcbiAgICAgIGNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmNyaXRpY2FsIHtcbiAgICAgIGNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5jcml0aWNhbCB7XG4gICAgICBjb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC50aW1lIHtcbiAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLnRpbWUge1xuICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLnRpbWUge1xuICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi5zdGFuZGFyZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG4gICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24uc3RhbmRhcmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi5zdGFuZGFyZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG4gICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24uaW1wb3J0YW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi5pbXBvcnRhbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMDsgfVxuICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi5pbXBvcnRhbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMDsgfVxuICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pY29uLmNyaXRpY2FsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cbiAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi5jcml0aWNhbCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pY29uLmNyaXRpY2FsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cbiAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi50aW1lIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi50aW1lIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24udGltZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwOyB9XG5cbkBrZXlmcmFtZXMgbW92ZSB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIC03cmVtOyB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgN3JlbTsgfSB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQge1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC5oZWFkZXIgYnV0dG9uIHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAuaGVhZGVyIGJ1dHRvbiB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC5oZWFkZXIgYnV0dG9uIHtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAuaGVhZGVyIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAuaGVhZGVyIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLmhlYWRlciBidXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbmFwcC13YWxsZXQgLmhlYWRlciBidXR0b246ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9XG4gIC50aGVtZS1kYXJrIGFwcC13YWxsZXQgLmhlYWRlciBidXR0b246ZGlzYWJsZWQgLmljb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7IH1cbiAgLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAuaGVhZGVyIGJ1dHRvbjpkaXNhYmxlZCAuaWNvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU2NWM2MjsgfVxuICAudGhlbWUtd2hpdGUgYXBwLXdhbGxldCAuaGVhZGVyIGJ1dHRvbjpkaXNhYmxlZCAuaWNvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzkxYmFmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC5oZWFkZXIgLmFsaWFzIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC5oZWFkZXIgLmFsaWFzIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAuaGVhZGVyIC5hbGlhcyAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAuYWRkcmVzcyB7XG4gIGNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLmFkZHJlc3Mge1xuICBjb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAuYWRkcmVzcyB7XG4gIGNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLmFkZHJlc3MgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLmFkZHJlc3MgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC5hZGRyZXNzIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMywgMzEsIDM5LCAwLjUpOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI4LCAzMCwgMzMsIDAuNSk7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyNCwgMjI0LCAyMjQsIDAuNSk7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIgLmluZGljYXRvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7XG4gIGNvbG9yOiAjMTExOTIxOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIgLmluZGljYXRvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7XG4gIGNvbG9yOiAjMWExYTFhOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiIC5pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYjpob3Zlcjpub3QoLmFjdGl2ZSk6bm90KC5kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU4LCA2OSwgODUsIDAuNSk7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYjpob3Zlcjpub3QoLmFjdGl2ZSk6bm90KC5kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU4LCA2MiwgNjYsIDAuNSk7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWI6aG92ZXI6bm90KC5hY3RpdmUpOm5vdCguZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1NCwgNjgsIDAuNSk7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAudGFicyAudGFicy1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNywgNDAsIDQzLCAwLjUpOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MywgNTQsIDY4LCAwLjUpOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciAucGFnaW5hdGlvbiB7XG4gIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCAjMmIzNjQ0OyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciAucGFnaW5hdGlvbiB7XG4gIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCAjMmYzNDM4OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24ge1xuICBib3JkZXItdG9wOiAwLjJyZW0gc29saWQgI2ViZWJlYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24gYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJiMzY0NDtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZjM0Mzg7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24gYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIGJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgyMDJhO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24gYnV0dG9uLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNTI5MmQ7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24gYnV0dG9uLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciAucGFnaW5hdGlvbiBidXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2E0ODVhO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24gYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4M2U0MztcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciAucGFnaW5hdGlvbiBidXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2VuZCAuZm9ybS1zZW5kIC5zZW5kLXNlbGVjdCB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zZW5kIC5mb3JtLXNlbmQgLnNlbmQtc2VsZWN0IHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zZW5kIC5mb3JtLXNlbmQgLnNlbmQtc2VsZWN0IHtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNlbmQgLmZvcm0tc2VuZCAuc2VuZC1zZWxlY3QgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zZW5kIC5mb3JtLXNlbmQgLnNlbmQtc2VsZWN0IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNlbmQgLmZvcm0tc2VuZCAuc2VuZC1zZWxlY3QgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zZW5kIC5mb3JtLXNlbmQgLmFkZGl0aW9uYWwtZGV0YWlscyB7XG4gIGJvcmRlcjogMC4ycmVtIHNvbGlkICMyYjM2NDQ7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNlbmQgLmZvcm0tc2VuZCAuYWRkaXRpb25hbC1kZXRhaWxzIHtcbiAgYm9yZGVyOiAwLjJyZW0gc29saWQgIzJmMzQzODsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNlbmQgLmZvcm0tc2VuZCAuYWRkaXRpb25hbC1kZXRhaWxzIHtcbiAgYm9yZGVyOiAwLjJyZW0gc29saWQgI2ViZWJlYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtcmVjZWl2ZSAuYnRuLWNvcHktYWRkcmVzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXJlY2VpdmUgLmJ0bi1jb3B5LWFkZHJlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcmVjZWl2ZSAuYnRuLWNvcHktYWRkcmVzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIubG9ja2VkLXRyYW5zYWN0aW9uIHtcbiAgY29sb3I6ICM1NTY1NzY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIubG9ja2VkLXRyYW5zYWN0aW9uIHtcbiAgY29sb3I6ICM1NjVjNjI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyLmxvY2tlZC10cmFuc2FjdGlvbiB7XG4gIGNvbG9yOiAjYTBhNWFiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0bisxKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODIwMmE7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDRuKzEpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI1MjkyZDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDRuKzEpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuXG4udGhlbWUtZGFyayBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rMikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgyMDJhOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0bisyKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNTI5MmQ7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0bisyKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDRuKzMpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDRuKzMpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0biszKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0bis0KSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0bis0KSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rNCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4udGhlbWUtZGFyayBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAuc3RhdHVzIC5jb25maXJtYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzZjRhOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMgLmNvbmZpcm1hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNjNhM2U7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMgLmNvbmZpcm1hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2RjZGM7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cyAuY29uZmlybWF0aW9uIC5maWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAuc3RhdHVzIC5jb25maXJtYXRpb24gLmZpbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDdjZjhkOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAuc3RhdHVzIC5jb25maXJtYXRpb24gLmZpbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDZjMTcyOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5sb2NrLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAubG9jay10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5sb2NrLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMDsgfVxuXG4udGhlbWUtZGFyayBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAudW5sb2NrLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAudW5sb2NrLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnVubG9jay10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cy5zZW5kIC5zdGF0dXMtdHJhbnNhY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMuc2VuZCAuc3RhdHVzLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cy5zZW5kIC5zdGF0dXMtdHJhbnNhY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMucmVjZWl2ZWQgLnN0YXR1cy10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1Y2RhOWQ7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cy5yZWNlaXZlZCAuc3RhdHVzLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3Y2Y4ZDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cy5yZWNlaXZlZCAuc3RhdHVzLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjsgfVxuXG4udGhlbWUtZGFyayBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5uZXcsIC50aGVtZS1kYXJrIGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLmFsZXJ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5uZXcsIC50aGVtZS1ncmF5IGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLmFsZXJ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24ubmV3LCAudGhlbWUtd2hpdGUgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24uYWxlcnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLnB1cmNoYXNlLCAudGhlbWUtZGFyayBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5zZWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5wdXJjaGFzZSwgLnRoZW1lLWdyYXkgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24uc2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLnB1cmNoYXNlLCAudGhlbWUtd2hpdGUgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24uc2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXB1cmNoYXNlIC5mb3JtLXB1cmNoYXNlIC5wdXJjaGFzZS1zZWxlY3Qge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXNlbGVjdCB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXNlbGVjdCB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAucHVyY2hhc2Utc2VsZWN0IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXNlbGVjdCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAucHVyY2hhc2Utc2VsZWN0IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXN0YXRlcyB7XG4gIGNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAucHVyY2hhc2Utc3RhdGVzIHtcbiAgY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAucHVyY2hhc2Utc3RhdGVzIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXB1cmNoYXNlIC5mb3JtLXB1cmNoYXNlIC5hZGRpdGlvbmFsLWRldGFpbHMge1xuICBib3JkZXI6IDAuMnJlbSBzb2xpZCAjMmIzNjQ0OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAuYWRkaXRpb25hbC1kZXRhaWxzIHtcbiAgYm9yZGVyOiAwLjJyZW0gc29saWQgIzJmMzQzODsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXB1cmNoYXNlIC5mb3JtLXB1cmNoYXNlIC5hZGRpdGlvbmFsLWRldGFpbHMge1xuICBib3JkZXI6IDAuMnJlbSBzb2xpZCAjZWJlYmViOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1wdXJjaGFzZSAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2Y0YTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHVyY2hhc2UgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNjNhM2U7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1wdXJjaGFzZSAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYzsgfVxuXG4udGhlbWUtZGFyayBhcHAtcHVyY2hhc2UgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1wdXJjaGFzZSAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIC5wcm9ncmVzcy1iYXItZnVsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0N2NmOGQ7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1wdXJjaGFzZSAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIC5wcm9ncmVzcy1iYXItZnVsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NmMxNzI7IH1cblxuYXBwLW1lc3NhZ2VzIHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxkIHNwYW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4udGhlbWUtZGFyayBhcHAtbWVzc2FnZXMgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGQgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1tZXNzYWdlcyB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1tZXNzYWdlcyB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXR5cGluZy1tZXNzYWdlIC5oZWFkIC5pbnRlcmxvY3V0b3Ige1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHlwaW5nLW1lc3NhZ2UgLmhlYWQgLmludGVybG9jdXRvciB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtdHlwaW5nLW1lc3NhZ2UgLmhlYWQgLmludGVybG9jdXRvciB7XG4gIGNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYuZGF0ZSB7XG4gIGNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYuZGF0ZSB7XG4gIGNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2LmRhdGUge1xuICBjb2xvcjogI2EwYTVhYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2Lm15IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhMzU0NDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2Lm15IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwMzYzYzsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5teSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5teTpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IC0xLjFyZW07XG4gIGJvcmRlcjogMS4ycmVtIHNvbGlkIHRyYW5zcGFyZW50OyB9XG4gIC50aGVtZS1kYXJrIGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYubXk6YmVmb3JlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMmEzNTQ0OyB9XG4gIC50aGVtZS1ncmF5IGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYubXk6YmVmb3JlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMzAzNjNjOyB9XG4gIC50aGVtZS13aGl0ZSBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2Lm15OmJlZm9yZSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZjsgfVxuXG4udGhlbWUtZGFyayBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2LmJ1ZGR5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MjAyYTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2LmJ1ZGR5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI1MjkyZDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5idWRkeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7IH1cblxuYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5idWRkeTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtMS4xcmVtO1xuICB0b3A6IDA7XG4gIGJvcmRlcjogMS4ycmVtIHNvbGlkIHRyYW5zcGFyZW50OyB9XG4gIC50aGVtZS1kYXJrIGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYuYnVkZHk6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMxODIwMmE7IH1cbiAgLnRoZW1lLWdyYXkgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5idWRkeTphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzI1MjkyZDsgfVxuICAudGhlbWUtd2hpdGUgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5idWRkeTphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2VkZWRlZDsgfVxuXG4udGhlbWUtZGFyayBhcHAtc3Rha2luZyAuY2hhcnQtaGVhZGVyIC5nZW5lcmFsIC5sYWJlbCB7XG4gIGNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zdGFraW5nIC5jaGFydC1oZWFkZXIgLmdlbmVyYWwgLmxhYmVsIHtcbiAgY29sb3I6ICM1NjVjNjI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zdGFraW5nIC5jaGFydC1oZWFkZXIgLmdlbmVyYWwgLmxhYmVsIHtcbiAgY29sb3I6ICNhMGE1YWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXN0YWtpbmcgLmNoYXJ0LWhlYWRlciAuZ2VuZXJhbCAub3B0aW9ucyB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zdGFraW5nIC5jaGFydC1oZWFkZXIgLmdlbmVyYWwgLm9wdGlvbnMge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXN0YWtpbmcgLmNoYXJ0LWhlYWRlciAuZ2VuZXJhbCAub3B0aW9ucyB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbmFwcC1zdGFraW5nIC5jaGFydC1oZWFkZXIgLnNlbGVjdGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZmxleC1ncm93OiAxO1xuICBmb250LXNpemU6IDEuNnJlbTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc3Rha2luZyAuY2hhcnQtb3B0aW9ucyAudGl0bGUge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc3Rha2luZyAuY2hhcnQtb3B0aW9ucyAudGl0bGUge1xuICBjb2xvcjogIzU2NWM2MjsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXN0YWtpbmcgLmNoYXJ0LW9wdGlvbnMgLnRpdGxlIHtcbiAgY29sb3I6ICNhMGE1YWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXN0YWtpbmcgLmNoYXJ0LW9wdGlvbnMgLm9wdGlvbnMgYnV0dG9uIHtcbiAgY29sb3I6ICNlMGUwZTA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYjM2NDQ7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXN0YWtpbmcgLmNoYXJ0LW9wdGlvbnMgLm9wdGlvbnMgYnV0dG9uIHtcbiAgY29sb3I6ICNlMGUwZTA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zdGFraW5nIC5jaGFydC1vcHRpb25zIC5vcHRpb25zIGJ1dHRvbiB7XG4gIGNvbG9yOiAjNDM0NTRiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zdGFraW5nIC5jaGFydC1vcHRpb25zIC5vcHRpb25zIGJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zdGFraW5nIC5jaGFydC1vcHRpb25zIC5vcHRpb25zIGJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTE1OTYwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc3Rha2luZyAuY2hhcnQtb3B0aW9ucyAub3B0aW9ucyBidXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuXG4uaW5wdXQtYmxvY2stYWxpYXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmlucHV0LWJsb2NrLWFsaWFzIC5hbGlhcy1kcm9wZG93biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNi41cmVtO1xuICAgIG1heC1oZWlnaHQ6IDEwcmVtO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnRoZW1lLWRhcmsgLmlucHV0LWJsb2NrLWFsaWFzIC5hbGlhcy1kcm9wZG93biB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxZTI3O1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2stYWxpYXMgLmFsaWFzLWRyb3Bkb3duIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS13aGl0ZSAuaW5wdXQtYmxvY2stYWxpYXMgLmFsaWFzLWRyb3Bkb3duIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAgIC5pbnB1dC1ibG9jay1hbGlhcyAuYWxpYXMtZHJvcGRvd24gZGl2IHtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgcGFkZGluZzogMXJlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLmlucHV0LWJsb2NrLWFsaWFzIC5hbGlhcy1kcm9wZG93biBkaXY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU4LCA2OSwgODUsIDAuNSk7IH1cbiAgICAgIC50aGVtZS1ncmF5IC5pbnB1dC1ibG9jay1hbGlhcyAuYWxpYXMtZHJvcGRvd24gZGl2OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OCwgNjIsIDY2LCAwLjUpOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrLWFsaWFzIC5hbGlhcy1kcm9wZG93biBkaXY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MCwgMjQwLCAyNDAsIDAuNSk7IH1cblxuYXBwLWNvbnRhY3RzLCBhcHAtYWRkLWNvbnRhY3RzLFxuYXBwLWNvbnRhY3Qtc2VuZCwgYXBwLWV4cG9ydC1pbXBvcnQge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgcGFkZGluZzogM3JlbTtcbiAgbWluLXdpZHRoOiA4NXJlbTsgfVxuICBhcHAtY29udGFjdHMgLmNvbnRlbnQsIGFwcC1hZGQtY29udGFjdHMgLmNvbnRlbnQsXG4gIGFwcC1jb250YWN0LXNlbmQgLmNvbnRlbnQsIGFwcC1leHBvcnQtaW1wb3J0IC5jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogM3JlbTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlOyB9XG4gICAgLnRoZW1lLWRhcmsgYXBwLWNvbnRhY3RzIC5jb250ZW50LCAudGhlbWUtZGFyayBhcHAtYWRkLWNvbnRhY3RzIC5jb250ZW50LCAudGhlbWUtZGFya1xuICAgIGFwcC1jb250YWN0LXNlbmQgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC1leHBvcnQtaW1wb3J0IC5jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KTtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgYXBwLWNvbnRhY3RzIC5jb250ZW50LCAudGhlbWUtZ3JheSBhcHAtYWRkLWNvbnRhY3RzIC5jb250ZW50LCAudGhlbWUtZ3JheVxuICAgIGFwcC1jb250YWN0LXNlbmQgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC1leHBvcnQtaW1wb3J0IC5jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KTtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLXdoaXRlIGFwcC1jb250YWN0cyAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC1hZGQtY29udGFjdHMgLmNvbnRlbnQsIC50aGVtZS13aGl0ZVxuICAgIGFwcC1jb250YWN0LXNlbmQgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtZXhwb3J0LWltcG9ydCAuY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAgIGFwcC1jb250YWN0cyAuY29udGVudCAuaGVhZCwgYXBwLWFkZC1jb250YWN0cyAuY29udGVudCAuaGVhZCxcbiAgICBhcHAtY29udGFjdC1zZW5kIC5jb250ZW50IC5oZWFkLCBhcHAtZXhwb3J0LWltcG9ydCAuY29udGVudCAuaGVhZCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1jb250YWN0cyB0YWJsZSAuYWxpYXMge1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtY29udGFjdHMgdGFibGUgLmFsaWFzIHtcbiAgY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250YWN0cyB0YWJsZSAuYWxpYXMge1xuICBjb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtY29udGFjdHMgdGFibGUgYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtY29udGFjdHMgdGFibGUgYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWNvbnRhY3RzIHRhYmxlIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWNvbnRhY3RzIHRhYmxlIGJ1dHRvbiBzcGFuIHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWNvbnRhY3RzIHRhYmxlIGJ1dHRvbiBzcGFuIHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250YWN0cyB0YWJsZSBidXR0b24gc3BhbiB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1jb250YWN0cyAuZm9vdGVyIHtcbiAgY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWNvbnRhY3RzIC5mb290ZXIge1xuICBjb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWNvbnRhY3RzIC5mb290ZXIge1xuICBjb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtY29udGFjdHMgLmZvb3RlciAuaW1wb3J0LWJ0biB7XG4gIGNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1jb250YWN0cyAuZm9vdGVyIC5pbXBvcnQtYnRuIHtcbiAgY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250YWN0cyAuZm9vdGVyIC5pbXBvcnQtYnRuIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWNvbnRhY3RzIC5mb290ZXIgLmltcG9ydC1idG4gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1jb250YWN0cyAuZm9vdGVyIC5pbXBvcnQtYnRuIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWNvbnRhY3RzIC5mb290ZXIgLmltcG9ydC1idG4gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1jb250YWN0LXNlbmQgLndhbGxldHMtc2VsZWN0aW9uIGJ1dHRvbiB7XG4gIGNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1jb250YWN0LXNlbmQgLndhbGxldHMtc2VsZWN0aW9uIGJ1dHRvbiB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtY29udGFjdC1zZW5kIC53YWxsZXRzLXNlbGVjdGlvbiBidXR0b24ge1xuICBjb2xvcjogIzJjOTVmMTsgfVxuXG4uaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgcGFkZGluZzogMCAzcmVtO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzcmVtOyB9XG4gIC50aGVtZS1kYXJrIC5oZWFkIHtcbiAgICBjb2xvcjogIzRkYjFmZjsgfVxuICAudGhlbWUtZ3JheSAuaGVhZCB7XG4gICAgY29sb3I6ICM0MmE1ZjU7IH1cbiAgLnRoZW1lLXdoaXRlIC5oZWFkIHtcbiAgICBjb2xvcjogIzJjOTVmMTsgfVxuICAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCksIC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG91dGxpbmUtc3R5bGU6IG5vbmU7IH1cbiAgICAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIsIC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwLjVyZW07XG4gICAgICByaWdodDogLTEuNXJlbTtcbiAgICAgIHdpZHRoOiAwLjlyZW07XG4gICAgICBoZWlnaHQ6IDAuOXJlbTtcbiAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1yaWdodC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgICBtYXNrLXNpemU6IGNvdmVyOyB9XG4gICAgICAudGhlbWUtZGFyayAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIsIC50aGVtZS1kYXJrIC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG4gICAgICAudGhlbWUtZ3JheSAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIsIC50aGVtZS1ncmF5IC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG4gICAgICAudGhlbWUtd2hpdGUgLmhlYWQgLmJyZWFkY3J1bWJzID4gc3Bhbjpub3QoOmxhc3QtY2hpbGQpOmFmdGVyLCAudGhlbWUtd2hpdGUgLmhlYWQgLmJyZWFkY3J1bWJzIGE6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cbiAgLmhlYWQgLmJhY2stYnRuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM0ZGIxZmY7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5oZWFkIC5iYWNrLWJ0biAuaWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuN3JlbTtcbiAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9iYWNrLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAwLjlyZW07XG4gICAgICBoZWlnaHQ6IDAuOXJlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLmhlYWQgLmJhY2stYnRuIC5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLmhlYWQgLmJhY2stYnRuIC5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC5oZWFkIC5iYWNrLWJ0biAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnNjcm9sbGVkLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgd2lkdGg6IDFyZW07XG4gIGhlaWdodDogMXJlbTsgfVxuXG4uc2Nyb2xsZWQtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4uc2Nyb2xsZWQtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTsgfVxuXG4uc2Nyb2xsZWQtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2OyB9XG5cbnRhYmxlIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIHRhYmxlIHRoZWFkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgLnRoZW1lLWRhcmsgdGFibGUgdGhlYWQge1xuICAgICAgY29sb3I6ICM1NTY1NzY7IH1cbiAgICAudGhlbWUtZ3JheSB0YWJsZSB0aGVhZCB7XG4gICAgICBjb2xvcjogIzU2NWM2MjsgfVxuICAgIC50aGVtZS13aGl0ZSB0YWJsZSB0aGVhZCB7XG4gICAgICBjb2xvcjogI2EwYTVhYjsgfVxuICAgIHRhYmxlIHRoZWFkIHRyIHtcbiAgICAgIGhlaWdodDogNHJlbTsgfVxuICAgICAgdGFibGUgdGhlYWQgdHIgdGgge1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyB9XG4gICAgICAgIHRhYmxlIHRoZWFkIHRyIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cbiAgICAgICAgdGFibGUgdGhlYWQgdHIgdGg6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTsgfVxuICB0YWJsZSB0Ym9keSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC50aGVtZS1kYXJrIHRhYmxlIHRib2R5IHtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgdGFibGUgdGJvZHkge1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtd2hpdGUgdGFibGUgdGJvZHkge1xuICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICB0YWJsZSB0Ym9keSB0ciB7XG4gICAgICBoZWlnaHQ6IDMuNXJlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgyMDJhOyB9XG4gICAgICAudGhlbWUtZ3JheSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyNTI5MmQ7IH1cbiAgICAgIC50aGVtZS13aGl0ZSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgICAgIHRhYmxlIHRib2R5IHRyIHRkIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuN3JlbTtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBtYXgtd2lkdGg6IDIwcmVtOyB9XG4gICAgICAgIHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cbiAgICAgICAgdGFibGUgdGJvZHkgdHIgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1MaWdodC50dGYpO1xuICBmb250LXdlaWdodDogMzAwOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogT3BlblNhbnM7XG4gIHNyYzogdXJsKH5zcmMvYXNzZXRzL2ZvbnRzL09wZW5TYW5zLVJlZ3VsYXIudHRmKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1TZW1pQm9sZC50dGYpO1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogT3BlblNhbnM7XG4gIHNyYzogdXJsKH5zcmMvYXNzZXRzL2ZvbnRzL09wZW5TYW5zLUJvbGQudHRmKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1FeHRyYUJvbGQudHRmKTtcbiAgZm9udC13ZWlnaHQ6IDgwMDsgfVxuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEwcHg7IH1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBPcGVuU2Fucywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDB2aDsgfVxuICBib2R5LnRoZW1lLWRhcmsge1xuICAgIGJhY2tncm91bmQ6ICMxMzE5MjEgdXJsKFwiYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWRhcmsucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICBib2R5LnRoZW1lLWdyYXkge1xuICAgIGJhY2tncm91bmQ6ICMxMDE0MTcgdXJsKFwiYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWdyYXkucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICBib2R5LnRoZW1lLXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlZWVlIHVybChcImFzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC13aGl0ZS5wbmdcIikgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4gIGJvZHkgYXBwLXJvb3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG5cbi51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuaWNvbiB7XG4gIG1hc2s6IHVybChhc3NldHMvaWNvbnMvdXBkYXRlLWFsZXJ0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjsgfVxuIiwiLm5nLXNlbGVjdC5uZy1zZWxlY3Qtb3BlbmVkPi5uZy1zZWxlY3QtY29udGFpbmVye2JhY2tncm91bmQ6I2ZmZjtib3JkZXItY29sb3I6I2IzYjNiMyAjY2NjICNkOWQ5ZDl9Lm5nLXNlbGVjdC5uZy1zZWxlY3Qtb3BlbmVkPi5uZy1zZWxlY3QtY29udGFpbmVyOmhvdmVye2JveC1zaGFkb3c6bm9uZX0ubmctc2VsZWN0Lm5nLXNlbGVjdC1vcGVuZWQ+Lm5nLXNlbGVjdC1jb250YWluZXIgLm5nLWFycm93e3RvcDotMnB4O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjOTk5O2JvcmRlci13aWR0aDowIDVweCA1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3Qtb3BlbmVkPi5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy1hcnJvdzpob3Zlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzMzM30ubmctc2VsZWN0Lm5nLXNlbGVjdC1vcGVuZWQubmctc2VsZWN0LWJvdHRvbT4ubmctc2VsZWN0LWNvbnRhaW5lcntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1vcGVuZWQubmctc2VsZWN0LXRvcD4ubmctc2VsZWN0LWNvbnRhaW5lcntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1mb2N1c2VkOm5vdCgubmctc2VsZWN0LW9wZW5lZCk+Lm5nLXNlbGVjdC1jb250YWluZXJ7Ym9yZGVyLWNvbG9yOiMwMDdlZmY7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjA3NSksMCAwIDAgM3B4IHJnYmEoMCwxMjYsMjU1LDAuMSl9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtZGlzYWJsZWQ+Lm5nLXNlbGVjdC1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5fS5uZy1zZWxlY3QgLm5nLWhhcy12YWx1ZSAubmctcGxhY2Vob2xkZXJ7ZGlzcGxheTpub25lfS5uZy1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlcjoxcHggc29saWQgI2NjYzttaW4taGVpZ2h0OjM2cHg7YWxpZ24taXRlbXM6Y2VudGVyfS5uZy1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXI6aG92ZXJ7Ym94LXNoYWRvdzowIDFweCAwIHJnYmEoMCwwLDAsMC4wNil9Lm5nLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVye2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nLWxlZnQ6MTBweH1bZGlyPVwicnRsXCJdIC5uZy1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lcntwYWRkaW5nLXJpZ2h0OjEwcHg7cGFkZGluZy1sZWZ0OjB9Lm5nLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy1wbGFjZWhvbGRlcntjb2xvcjojOTk5fS5uZy1zZWxlY3Qubmctc2VsZWN0LXNpbmdsZSAubmctc2VsZWN0LWNvbnRhaW5lcntoZWlnaHQ6MzZweH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1zaW5nbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctaW5wdXR7dG9wOjVweDtsZWZ0OjA7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDo1MHB4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3Qtc2luZ2xlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLWlucHV0e3BhZGRpbmctcmlnaHQ6MTBweDtwYWRkaW5nLWxlZnQ6NTBweH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZS5uZy1zZWxlY3QtZGlzYWJsZWQ+Lm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlcjoxcHggc29saWQgI2U2ZTZlNn0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZS5uZy1zZWxlY3QtZGlzYWJsZWQ+Lm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUgLm5nLXZhbHVlLWxhYmVse3BhZGRpbmc6MCA1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lcntwYWRkaW5nLXRvcDo1cHg7cGFkZGluZy1sZWZ0OjdweH1bZGlyPVwicnRsXCJdIC5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXJ7cGFkZGluZy1yaWdodDo3cHg7cGFkZGluZy1sZWZ0OjB9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWV7Zm9udC1zaXplOi45ZW07bWFyZ2luLWJvdHRvbTo1cHg7YmFja2dyb3VuZC1jb2xvcjojZWJmNWZmO2JvcmRlci1yYWRpdXM6MnB4O21hcmdpbi1yaWdodDo1cHh9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy12YWx1ZXttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDo1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUubmctdmFsdWUtZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5fS5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlLm5nLXZhbHVlLWRpc2FibGVkIC5uZy12YWx1ZS1sYWJlbHtwYWRkaW5nLWxlZnQ6NXB4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUubmctdmFsdWUtZGlzYWJsZWQgLm5nLXZhbHVlLWxhYmVse3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6NXB4fS5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlIC5uZy12YWx1ZS1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjFweCA1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUgLm5nLXZhbHVlLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzoxcHggNXB4fS5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlIC5uZy12YWx1ZS1pY29uOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2QxZThmZn0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy12YWx1ZSAubmctdmFsdWUtaWNvbi5sZWZ0e2JvcmRlci1yaWdodDoxcHggc29saWQgI2I4ZGJmZn1bZGlyPVwicnRsXCJdIC5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlIC5uZy12YWx1ZS1pY29uLmxlZnR7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNiOGRiZmY7Ym9yZGVyLXJpZ2h0Om5vbmV9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUgLm5nLXZhbHVlLWljb24ucmlnaHR7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNiOGRiZmZ9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy12YWx1ZSAubmctdmFsdWUtaWNvbi5yaWdodHtib3JkZXItbGVmdDowO2JvcmRlci1yaWdodDoxcHggc29saWQgI2I4ZGJmZn0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy1pbnB1dHtwYWRkaW5nOjAgMCAzcHggM3B4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctaW5wdXR7cGFkZGluZzowIDNweCAzcHggMH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy1wbGFjZWhvbGRlcnt0b3A6NXB4O3BhZGRpbmctYm90dG9tOjVweDtwYWRkaW5nLWxlZnQ6M3B4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctcGxhY2Vob2xkZXJ7cGFkZGluZy1yaWdodDozcHg7cGFkZGluZy1sZWZ0OjB9Lm5nLXNlbGVjdCAubmctY2xlYXItd3JhcHBlcntjb2xvcjojOTk5fS5uZy1zZWxlY3QgLm5nLWNsZWFyLXdyYXBwZXI6aG92ZXIgLm5nLWNsZWFye2NvbG9yOiNEMDAyMUJ9Lm5nLXNlbGVjdCAubmctc3Bpbm5lci16b25le3BhZGRpbmc6NXB4IDVweCAwIDB9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0IC5uZy1zcGlubmVyLXpvbmV7cGFkZGluZzo1cHggMCAwIDVweH0ubmctc2VsZWN0IC5uZy1hcnJvdy13cmFwcGVye3dpZHRoOjI1cHg7cGFkZGluZy1yaWdodDo1cHh9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0IC5uZy1hcnJvdy13cmFwcGVye3BhZGRpbmctbGVmdDo1cHg7cGFkZGluZy1yaWdodDowfS5uZy1zZWxlY3QgLm5nLWFycm93LXdyYXBwZXI6aG92ZXIgLm5nLWFycm93e2JvcmRlci10b3AtY29sb3I6IzY2Nn0ubmctc2VsZWN0IC5uZy1hcnJvdy13cmFwcGVyIC5uZy1hcnJvd3tib3JkZXItY29sb3I6Izk5OSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjVweCA1cHggMi41cHh9Lm5nLWRyb3Bkb3duLXBhbmVse2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym94LXNoYWRvdzowIDFweCAwIHJnYmEoMCwwLDAsMC4wNik7bGVmdDowfS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtYm90dG9te3RvcDoxMDAlO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweDtib3JkZXItdG9wLWNvbG9yOiNlNmU2ZTY7bWFyZ2luLXRvcDotMXB4fS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtYm90dG9tIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NHB4fS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtdG9we2JvdHRvbToxMDAlO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLWNvbG9yOiNlNmU2ZTY7bWFyZ2luLWJvdHRvbTotMXB4fS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtdG9wIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uOmZpcnN0LWNoaWxke2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLWhlYWRlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6NXB4IDdweH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLWZvb3Rlcntib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6NXB4IDdweH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRncm91cHt1c2VyLXNlbGVjdDpub25lO3BhZGRpbmc6OHB4IDEwcHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnJnYmEoMCwwLDAsMC41NCk7Y3Vyc29yOnBvaW50ZXJ9Lm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0Z3JvdXAubmctb3B0aW9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGdyb3VwLm5nLW9wdGlvbi1tYXJrZWR7YmFja2dyb3VuZC1jb2xvcjojZjVmYWZmfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGdyb3VwLm5nLW9wdGlvbi1zZWxlY3RlZCwubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRncm91cC5uZy1vcHRpb24tc2VsZWN0ZWQubmctb3B0aW9uLW1hcmtlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlYmY1ZmY7Zm9udC13ZWlnaHQ6NjAwfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6cmdiYSgwLDAsMCwwLjg3KTtwYWRkaW5nOjhweCAxMHB4fS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tc2VsZWN0ZWQsLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1zZWxlY3RlZC5uZy1vcHRpb24tbWFya2Vke2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZWJmNWZmfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tc2VsZWN0ZWQgLm5nLW9wdGlvbi1sYWJlbCwubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLXNlbGVjdGVkLm5nLW9wdGlvbi1tYXJrZWQgLm5nLW9wdGlvbi1sYWJlbHtmb250LXdlaWdodDo2MDB9Lm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1tYXJrZWR7YmFja2dyb3VuZC1jb2xvcjojZjVmYWZmO2NvbG9yOiMzMzN9Lm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1kaXNhYmxlZHtjb2xvcjojY2NjfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tY2hpbGR7cGFkZGluZy1sZWZ0OjIycHh9W2Rpcj1cInJ0bFwiXSAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLWNoaWxke3BhZGRpbmctcmlnaHQ6MjJweDtwYWRkaW5nLWxlZnQ6MH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24gLm5nLXRhZy1sYWJlbHtmb250LXNpemU6ODAlO2ZvbnQtd2VpZ2h0OjQwMDtwYWRkaW5nLXJpZ2h0OjVweH1bZGlyPVwicnRsXCJdIC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbiAubmctdGFnLWxhYmVse3BhZGRpbmctbGVmdDo1cHg7cGFkZGluZy1yaWdodDowfVtkaXI9XCJydGxcIl0gLm5nLWRyb3Bkb3duLXBhbmVse2RpcmVjdGlvbjpydGw7dGV4dC1hbGlnbjpyaWdodH1cbiIsIi8vKiAqKioqKioqIHJlc2V0ICYgbm9ybWFsaXplICoqKioqKiogICovL1xyXG5cclxuLy8gYm94LXNpemluZyB0aGUgc2FtZSBmb3IgYWxsIGVsZW1lbnRzXHJcbmh0bWwge1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XHJcbiAgYm94LXNpemluZzogaW5oZXJpdDtcclxuICAtd2Via2l0LWJveC1zaXppbmc6IGluaGVyaXQ7XHJcbiAgLW1vei1ib3gtc2l6aW5nOiBpbmhlcml0O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIEBpbmNsdWRlIHVuU2VsZWN0O1xyXG59XHJcblxyXG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXHJcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcclxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxyXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXHJcbnNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXHJcbmIsIHUsIGksIGNlbnRlcixcclxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcclxuZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXHJcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxyXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCxcclxuZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLFxyXG5tZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcclxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIGZvbnQtc2l6ZTogMTAwJTtcclxuICAgIGZvbnQ6IGluaGVyaXQ7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSxcclxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5ib2R5IHtcclxuICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxufVxyXG5vbCwgdWwge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG5ibG9ja3F1b3RlLCBxIHtcclxuICAgIHF1b3Rlczogbm9uZTtcclxufVxyXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlcixcclxucTpiZWZvcmUsIHE6YWZ0ZXIge1xyXG4gICAgY29udGVudDogbm9uZTtcclxufVxyXG5cclxuLy90YWJsZVxyXG50YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XHJcbn1cclxudGQsXHJcbnRoIHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4vL2Zvcm1zIGVsZW1lbnRcclxuaW5wdXQge1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgICY6LXdlYmtpdC1hdXRvZmlsbCB7XHJcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMTAwMHB4IHdoaXRlIGluc2V0O1xyXG4gICAgfVxyXG59XHJcblxyXG5idXR0b24sXHJcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcclxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5idXR0b25bZGlzYWJsZWRdLFxyXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcclxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xyXG4gIGJvcmRlcjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcbmlucHV0IHtcclxuICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG59XHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG59XHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5cclxuXHJcbi8vbGlua1xyXG5hIHtcclxuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0JjphY3RpdmUsXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzIHtcclxuXHRcdG91dGxpbmU6IDA7XHJcblx0fVxyXG59XHJcblxyXG5pIHsgZm9udC1zdHlsZTogaXRhbGljOyB9XHJcbmIsIHN0cm9uZyB7IGZvbnQtd2VpZ2h0OiA3MDA7ICAgfVxyXG5cclxuLy8gaW1hZ2VzXHJcbmltZyB7XHJcblx0d2lkdGg6IGF1dG87XHJcblx0bWF4LXdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogYXV0bztcclxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG5cdGJvcmRlcjogMDtcclxufVxyXG5cclxuLmhpZGRlbiB7XHJcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcbiIsIi5hcHAtY29udGVudCB7XHJcblxyXG4gIC5wcmVsb2FkZXIge1xyXG5cclxuICAgIC5sb2FkaW5nLWJhciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYnV0dG9uIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBwYWRkaW5nOiAwIDFyZW07XHJcbiAgaGVpZ2h0OiA0LjJyZW07XHJcblxyXG4gICY6ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pLCBcclxuICAmLmJsdWUtYnV0dG9uX3Jlc2V0e1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZGlzYWJsZWRCdXR0b25CYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChkaXNhYmxlZEJ1dHRvbkhvdmVyQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZGlzYWJsZWRCdXR0b25Gb2N1c0NvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlQnV0dG9uQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChhbHRlcm5hdGl2ZVRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZUJ1dHRvbkhvdmVyQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZUJ1dHRvbkZvY3VzQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChncmVlbkJ1dHRvbkJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQoYWx0ZXJuYXRpdmVUZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGdyZWVuQnV0dG9uSG92ZXJDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChncmVlbkJ1dHRvbkZvY3VzQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCkge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodHVycXVvaXNlQnV0dG9uQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChhbHRlcm5hdGl2ZVRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodHVycXVvaXNlQnV0dG9uSG92ZXJDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCh0dXJxdW9pc2VCdXR0b25Gb2N1c0NvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi50cmFuc3BhcmVudC1idXR0b24ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJvcmRlcjogMC4ycmVtIHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAuaWNvbiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcclxuICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2NvbXBsZXRlLXRlc3R3YWxsZXQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB3aWR0aDogMS43cmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuN3JlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4uaW5wdXQtYmxvY2sge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBtYXJnaW4tYm90dG9tOiAwLjRyZW07XHJcblxyXG4gIC53cmFwLWxhYmVsIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgbWluLWhlaWdodDogMi40cmVtO1xyXG4gIH1cclxuXHJcbiAgbGFiZWwge1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlucHV0W3R5cGU9J3RleHQnXSwgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSwgc2VsZWN0IHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiA0LjJyZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnRleHRhcmVhIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICB0ZXh0YXJlYSB7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiBPcGVuU2Fucywgc2Fucy1zZXJpZjtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICBtaW4taGVpZ2h0OiA3LjVyZW07XHJcbiAgICAgIG1heC1oZWlnaHQ6IDcuNXJlbTtcclxuICAgICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICAgIHJlc2l6ZTogbm9uZTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmVycm9yLWJsb2NrIHtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjRyZW07XHJcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKHJlZFRleHRDb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zdWNjZXNzLWJsb2NrIHtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjRyZW07XHJcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGdyZWVuVGV4dENvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5lcnJvci10ZXh0IHtcclxuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgIGNvbG9yOiB0aGVtZWQocmVkVGV4dENvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW8ge1xyXG5cclxuICAmICsgbGFiZWwge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyLjRyZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIHVuU2VsZWN0O1xyXG4gIH1cclxuXHJcbiAgJjpub3QoY2hlY2tlZCkge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgb3BhY2l0eTogMDtcclxuXHJcbiAgICAmICsgbGFiZWwge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB9XHJcblxyXG4gICAgJiArIGxhYmVsOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMC43cmVtO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICB3aWR0aDogMS40cmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuNHJlbTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkIHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYgKyBsYWJlbDphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMXJlbTtcclxuICAgICAgbGVmdDogMC4zcmVtO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIHdpZHRoOiAwLjhyZW07XHJcbiAgICAgIGhlaWdodDogMC44cmVtO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOmNoZWNrZWQge1xyXG5cclxuICAgICYgKyBsYWJlbDphZnRlciB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94IHtcclxuXHJcbiAgJiArIGxhYmVsIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIHBhZGRpbmctbGVmdDogMy42cmVtO1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSB1blNlbGVjdDtcclxuICB9XHJcblxyXG4gICY6bm90KGNoZWNrZWQpIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogMS42cmVtO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cclxuICAgICYgKyBsYWJlbCB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIH1cclxuXHJcbiAgICAmICsgbGFiZWw6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIGxlZnQ6IDEuNnJlbTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgd2lkdGg6IDEuNHJlbTtcclxuICAgICAgaGVpZ2h0OiAxLjRyZW07XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6Y2hlY2tlZCB7XHJcblxyXG4gICAgJiArIGxhYmVsOmJlZm9yZSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9jb21wbGV0ZS10ZXN0d2FsbGV0LnN2Zyk7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zd2l0Y2gge1xyXG5cclxuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChzd2l0Y2hCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gIH1cclxuXHJcbiAgLmNpcmNsZSB7XHJcblxyXG4gICAgJi5vbiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm9mZiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udGFibGUtdG9vbHRpcCB7XHJcbiAgcGFkZGluZzogMXJlbSAycmVtO1xyXG5cclxuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgIGJhY2tncm91bmQ6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKTtcclxuICAgIGJveC1zaGFkb3c6IHRoZW1lZCh0b29sdGlwU2hhZG93KTtcclxuICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgfVxyXG5cclxuICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XHJcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XHJcbiAgfVxyXG5cclxuICAmLm5nLXRvb2x0aXAtdG9wIHtcclxuICAgIG1hcmdpbi10b3A6IC0xcmVtO1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogLTFyZW07XHJcbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMC41cmVtKTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLXRvcC1sZWZ0IHtcclxuICAgIG1hcmdpbi10b3A6IC0xcmVtO1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogLTFyZW07XHJcbiAgICAgIGxlZnQ6IDAuN3JlbTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC10b3AtcmlnaHQge1xyXG4gICAgbWFyZ2luLXRvcDogLTFyZW07XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAtMXJlbTtcclxuICAgICAgcmlnaHQ6IDAuN3JlbTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAtMXJlbTtcclxuICAgICAgbGVmdDogY2FsYyg1MCUgLSAwLjVyZW0pO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRyYW5zcGFyZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLm5nLXRvb2x0aXAtYm90dG9tLWxlZnQge1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAtMXJlbTtcclxuICAgICAgbGVmdDogMC43cmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLWJvdHRvbS1yaWdodCB7XHJcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG5cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IC0xcmVtO1xyXG4gICAgICByaWdodDogMC43cmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLWxlZnQge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogY2FsYyg1MCUgLSAwLjVyZW0pO1xyXG4gICAgICByaWdodDogLTFyZW07XHJcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xyXG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1yaWdodCB7XHJcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiBjYWxjKDUwJSAtIDAuNXJlbSk7XHJcbiAgICAgIGxlZnQ6IC0xcmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udGFibGUtdG9vbHRpcC1kaW1lbnNpb25zIHtcclxuXHJcbiAgLnRvb2x0aXAtaW5uZXIge1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICBtYXgtd2lkdGg6IDIwcmVtO1xyXG4gICAgbWF4LWhlaWdodDogMTByZW07XHJcbiAgfVxyXG59XHJcblxyXG4uYmFsYW5jZS10b29sdGlwIHtcclxuICBwYWRkaW5nOiAxLjNyZW07XHJcblxyXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgYmFja2dyb3VuZDogdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgYm94LXNoYWRvdzogdGhlbWVkKHRvb2x0aXBTaGFkb3cpO1xyXG4gICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICB9XHJcblxyXG4gIC50b29sdGlwLWlubmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcblxyXG4gICAgLmF2YWlsYWJsZSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuN3JlbTtcclxuXHJcbiAgICAgIGIge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubG9ja2VkIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMC43cmVtO1xyXG5cclxuICAgICAgYiB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5saW5rIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLXRvcCB7XHJcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTtcclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1sZWZ0IHtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1yaWdodCB7XHJcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5hY2NvdW50LXRvb2x0aXAge1xyXG5cclxuICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgbWF4LXdpZHRoOiAxOHJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5jb21tZW50LXRvb2x0aXAge1xyXG5cclxuICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgICBtYXgtd2lkdGg6IDUwcmVtO1xyXG4gICAgbWF4LWhlaWdodDogMjVyZW07XHJcbiAgfVxyXG59XHJcblxyXG4udXBkYXRlLXRvb2x0aXAge1xyXG4gIHBhZGRpbmc6IDEuNXJlbTtcclxuXHJcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICBib3gtc2hhZG93OiB0aGVtZWQodG9vbHRpcFNoYWRvdyk7XHJcbiAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gIH1cclxuXHJcbiAgJi5pbXBvcnRhbnQge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0aGVtZWQodG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQoYWNjb3VudE1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgICYubmctdG9vbHRpcC1sZWZ0LWJvdHRvbSB7XHJcblxyXG4gICAgICAmOmFmdGVyIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRoZW1lZCh0b29sdGlwSW1wb3J0YW50QmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbSB7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcikgdGhlbWVkKHRvb2x0aXBJbXBvcnRhbnRCYWNrZ3JvdW5kQ29sb3IpIHRyYW5zcGFyZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5jcml0aWNhbCB7XHJcbiAgICBwYWRkaW5nOiAyLjVyZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lZCh0b29sdGlwQ3JpdGljYWxCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGFjY291bnRNYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJi5uZy10b29sdGlwLWxlZnQtYm90dG9tIHtcclxuXHJcbiAgICAgICY6YWZ0ZXIge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcikgdGhlbWVkKHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbSB7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcENyaXRpY2FsQmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcENyaXRpY2FsQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50b29sdGlwLWlubmVyIHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuOHJlbTtcclxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcclxuXHJcbiAgICAuc3RhbmRhcmQtdXBkYXRlIHtcclxuICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmltcG9ydGFudC11cGRhdGUge1xyXG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQodG9vbHRpcEltcG9ydGFudFRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY3JpdGljYWwtdXBkYXRlIHtcclxuICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAud3JvbmctdGltZSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZCh0b29sdGlwSW1wb3J0YW50VGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFyZ2luOiAxLjVyZW0gMDtcclxuICAgICAgd2lkdGg6IDVyZW07XHJcbiAgICAgIGhlaWdodDogNXJlbTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCh0b29sdGlwQ3JpdGljYWxUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLm5nLXRvb2x0aXAtbGVmdC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAwLjZyZW07XHJcbiAgICAgIHJpZ2h0OiAtMXJlbTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1yaWdodC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAwLjZyZW07XHJcbiAgICAgIGxlZnQ6IC0xcmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm5neC1jb250ZXh0bWVudSB7XHJcblxyXG4gIC5kcm9wZG93bi1tZW51IHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChjaGFydE9wdGlvbnNCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBib3gtc2hhZG93OiB0aGVtZWQodG9vbHRpcFNoYWRvdyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsaSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtZmFtaWx5OiBPcGVuU2Fucywgc2Fucy1zZXJpZjtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAwLjVlbSAxZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY2hhcnRPcHRpb25zSG92ZXJDb2xvcik7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm5nLXNlbGVjdCB7XHJcblxyXG4gICYuY3VzdG9tLXNlbGVjdCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAmLm5nLXNlbGVjdC1zaW5nbGUge1xyXG4gICAgICAubmctc2VsZWN0LWNvbnRhaW5lciB7XHJcbiAgICAgICAgLm5nLXZhbHVlLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAubmctdmFsdWUge1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS44cmVtO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uZy1zZWxlY3QtY29udGFpbmVyIHtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICBwYWRkaW5nOiAwIDFyZW07XHJcbiAgICAgIGhlaWdodDogNC4ycmVtO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGlucHV0QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubmctdmFsdWUtY29udGFpbmVyIHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICAgICAubmctaW5wdXQge1xyXG4gICAgICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uZy1kcm9wZG93bi1wYW5lbCB7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyB7XHJcblxyXG4gICAgICAgIC5uZy1vcHRpb24ge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoaW5wdXRCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYubmctb3B0aW9uLW1hcmtlZCB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoc2VsZWN0SG92ZXJDb2xvcik7XHJcbiAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYubmctb3B0aW9uLXNlbGVjdGVkIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChzZWxlY3RTZWxlY3RlZENvbG9yKTtcclxuICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgICAgICAgIHdpZHRoOiAxcmVtO1xyXG4gICAgICAgICAgaGVpZ2h0OiAxcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtbW9kYWwtY29udGFpbmVyLCBhcHAtY29uZmlybS1tb2RhbCAge1xyXG5cclxuICAubW9kYWwge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0aGVtZWQobW9kYWxCYWNrZ3JvdW5kKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAuY29udGVudCB7XHJcblxyXG4gICAgICAuaWNvbi5lcnJvciB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHJlZFRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuaWNvbi5zdWNjZXNzIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZ3JlZW5UZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmljb24uaW5mbyB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hY3Rpb24tYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jbG9zZS1idXR0b24ge1xyXG5cclxuICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChjbG9zZUJ1dHRvbkNvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIHtcclxuXHJcbiAgLnRhYmxlIHtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYm9yZGVyLXRvcDogMC4ycmVtIHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAucm93IHtcclxuXHJcbiAgICAgIC5jZWxsIHtcclxuXHJcbiAgICAgICAgJi5sYWJlbCB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi52YWx1ZSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmtleS12YWx1ZSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtcHJvZ3Jlc3MtY29udGFpbmVyIHtcclxuXHJcbiAgLnByb2dyZXNzLWJhci1jb250YWluZXIge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9ncmVzcy1iYXIge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnByb2dyZXNzLWJhci1mdWxsIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1vcGVuLXdhbGxldC1tb2RhbCB7XHJcblxyXG4gIC5tb2RhbCB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lZChtb2RhbEJhY2tncm91bmQpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXNlbmQtbW9kYWwge1xyXG4gIC5tb2RhbCB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lZChtb2RhbEJhY2tncm91bmQpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC50aXRsZSB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgdGhlbWVkKHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC5hY3Rpb24tYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufSIsIiR0aGVtZXM6IChcclxuICBkYXJrOiAoXHJcbiAgICBib2R5QmFja2dyb3VuZENvbG9yOiAjMTMxOTIxLFxyXG4gICAgc2lkZWJhckJhY2tncm91bmRDb2xvcjogcmdiYSgyMywgMzEsIDM5LCAxKSxcclxuICAgIHNpZGViYXJCb3JkZXJDb2xvcjogIzFmMjgzMyxcclxuICAgIG9ubGluZUNvbG9yOiAjNWNkYTlkLFxyXG4gICAgb2ZmbGluZUNvbG9yOiAjZmY1MjUyLFxyXG4gICAgY29udGVudEJhY2tncm91bmRDb2xvcjogcmdiYSg0MywgNTQsIDY4LCAwLjUpLFxyXG4gICAgbWFpblRleHRDb2xvcjogI2UwZTBlMCxcclxuICAgIGFsdGVybmF0aXZlVGV4dENvbG9yOiAjMTExOTIxLFxyXG4gICAgb3B0aW9uYWxUZXh0Q29sb3I6ICM1NTY1NzYsXHJcbiAgICBibHVlVGV4dENvbG9yOiAjNGRiMWZmLFxyXG4gICAgZ3JlZW5UZXh0Q29sb3I6ICM1Y2RhOWQsXHJcbiAgICBvcmFuZ2VUZXh0Q29sb3I6ICNmZjZmMDAsXHJcbiAgICByZWRUZXh0Q29sb3I6ICNmZjUyNTIsXHJcbiAgICBibHVlQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjNGRiMWZmLFxyXG4gICAgYmx1ZUJ1dHRvbkhvdmVyQ29sb3I6ICM4MmQ3ZmYsXHJcbiAgICBibHVlQnV0dG9uRm9jdXNDb2xvcjogIzU5YjVmZCxcclxuICAgIGRpc2FibGVkQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjOWNhZGI3LFxyXG4gICAgZGlzYWJsZWRCdXR0b25Ib3ZlckNvbG9yOiAjYjdkMWUwLFxyXG4gICAgZGlzYWJsZWRCdXR0b25Gb2N1c0NvbG9yOiAjYTdiOWMyLFxyXG4gICAgZ3JlZW5CdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM1Y2RhOWQsXHJcbiAgICBncmVlbkJ1dHRvbkhvdmVyQ29sb3I6ICM4ZGZjYzYsXHJcbiAgICBncmVlbkJ1dHRvbkZvY3VzQ29sb3I6ICM2MmUwYjIsXHJcbiAgICB0dXJxdW9pc2VCdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM0ZGQwZTEsXHJcbiAgICB0dXJxdW9pc2VCdXR0b25Ib3ZlckNvbG9yOiAjODdmNGY1LFxyXG4gICAgdHVycXVvaXNlQnV0dG9uRm9jdXNDb2xvcjogIzQyZDVlOCxcclxuICAgIHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3I6ICMyYjM2NDQsXHJcbiAgICBpbnB1dEJhY2tncm91bmRDb2xvcjogIzE3MWUyNyxcclxuICAgIHNlbGVjdEhvdmVyQ29sb3I6IHJnYmEoNTgsIDY5LCA4NSwgMC41KSxcclxuICAgIHNlbGVjdFNlbGVjdGVkQ29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KSxcclxuICAgIHN3aXRjaEJhY2tncm91bmRDb2xvcjogIzAwMDAwMCxcclxuICAgIGFjY291bnRCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KSxcclxuICAgIGFjY291bnRIb3ZlckJhY2tncm91bmRDb2xvcjogcmdiYSg1OCwgNjksIDg1LCAwLjUpLFxyXG4gICAgYWNjb3VudE1haW5UZXh0Q29sb3I6ICNlMGUwZTAsXHJcbiAgICBhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3I6ICM1NTY1NzYsXHJcbiAgICBhY2NvdW50SW5kaWNhdG9yVGV4dENvbG9yOiAjMTExOTIxLFxyXG4gICAgYWNjb3VudFN3aXRjaEJhY2tncm91bmRDb2xvcjogIzAwMDAwMCxcclxuICAgIGFjY291bnRJbmRpY2F0b3JCYWNrZ3JvdW5kQ29sb3I6ICM0ZGIxZmYsXHJcbiAgICB0YWJJbmFjdGl2ZUJhY2tncm91bmRDb2xvcjogcmdiYSgyMywgMzEsIDM5LCAwLjUpLFxyXG4gICAgdGFiSG92ZXJCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoNTgsIDY5LCA4NSwgMC41KSxcclxuICAgIHRhYmxlQmFja2dyb3VuZENvbG9yOiAjMTgyMDJhLFxyXG4gICAgbWVzc2FnZU15QmFja2dyb3VuZENvbG9yOiAjMmEzNTQ0LFxyXG4gICAgbWVzc2FnZUJ1ZGR5QmFja2dyb3VuZENvbG9yOiAjMTgyMDJhLFxyXG4gICAgcHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3I6ICMzNDNmNGEsXHJcbiAgICBwcm9ncmVzc0JhckZ1bGxCYWNrZ3JvdW5kQ29sb3I6ICM1Y2RhOWQsXHJcbiAgICBjaGFydE9wdGlvbnNCYWNrZ3JvdW5kQ29sb3I6ICMyYjM2NDQsXHJcbiAgICBjaGFydE9wdGlvbnNIb3ZlckNvbG9yOiAjNTU2NTc2LFxyXG4gICAgdG9vbHRpcEJhY2tncm91bmRDb2xvcjogIzQyNTA1ZixcclxuICAgIHRvb2x0aXBJbXBvcnRhbnRUZXh0Q29sb3I6ICNmZjZmMDAsXHJcbiAgICB0b29sdGlwSW1wb3J0YW50QmFja2dyb3VuZENvbG9yOiAjNWYyYjExLFxyXG4gICAgdG9vbHRpcENyaXRpY2FsVGV4dENvbG9yOiAjZmY1MjUyLFxyXG4gICAgdG9vbHRpcENyaXRpY2FsQmFja2dyb3VuZENvbG9yOiAjNWYxZDFkLFxyXG4gICAgdG9vbHRpcFNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjUpLFxyXG4gICAgbW9kYWxCYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtZGFyay5wbmcpLFxyXG4gICAgY2xvc2VCdXR0b25Db2xvcjogIzU1NjU3NixcclxuICAgIGhvdmVyUGFnZTogIzNhNDg1YVxyXG4gICksXHJcbiAgZ3JheTogKFxyXG4gICAgYm9keUJhY2tncm91bmRDb2xvcjogIzEwMTQxNyxcclxuICAgIHNpZGViYXJCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoMjgsIDMwLCAzMywgMSksXHJcbiAgICBzaWRlYmFyQm9yZGVyQ29sb3I6ICMyZTMzMzcsXHJcbiAgICBvbmxpbmVDb2xvcjogIzQ3Y2Y4ZCxcclxuICAgIG9mZmxpbmVDb2xvcjogI2ZmNTI1MixcclxuICAgIGNvbnRlbnRCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KSxcclxuICAgIG1haW5UZXh0Q29sb3I6ICNlMGUwZTAsXHJcbiAgICBhbHRlcm5hdGl2ZVRleHRDb2xvcjogIzFhMWExYSxcclxuICAgIG9wdGlvbmFsVGV4dENvbG9yOiAjNTY1YzYyLFxyXG4gICAgYmx1ZVRleHRDb2xvcjogIzQyYTVmNSxcclxuICAgIGdyZWVuVGV4dENvbG9yOiAjNDdjZjhkLFxyXG4gICAgb3JhbmdlVGV4dENvbG9yOiAjZmY2ZjAwLFxyXG4gICAgcmVkVGV4dENvbG9yOiAjZmY1MjUyLFxyXG4gICAgYmx1ZUJ1dHRvbkJhY2tncm91bmRDb2xvcjogIzQyYTVmNSxcclxuICAgIGJsdWVCdXR0b25Ib3ZlckNvbG9yOiAjODZkNmZmLFxyXG4gICAgYmx1ZUJ1dHRvbkZvY3VzQ29sb3I6ICM1ZmI2ZmMsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbkJhY2tncm91bmRDb2xvcjogIzc5ODQ4ZixcclxuICAgIGRpc2FibGVkQnV0dG9uSG92ZXJDb2xvcjogI2ExYWViYixcclxuICAgIGRpc2FibGVkQnV0dG9uRm9jdXNDb2xvcjogIzhhOTU5ZixcclxuICAgIGdyZWVuQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjNDdjZjhkLFxyXG4gICAgZ3JlZW5CdXR0b25Ib3ZlckNvbG9yOiAjN2JmNmM2LFxyXG4gICAgZ3JlZW5CdXR0b25Gb2N1c0NvbG9yOiAjNWNkYzllLFxyXG4gICAgdHVycXVvaXNlQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjM2VjNWQ3LFxyXG4gICAgdHVycXVvaXNlQnV0dG9uSG92ZXJDb2xvcjogIzcyZWRmZSxcclxuICAgIHR1cnF1b2lzZUJ1dHRvbkZvY3VzQ29sb3I6ICM1MGQwZTEsXHJcbiAgICB0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yOiAjMmYzNDM4LFxyXG4gICAgaW5wdXRCYWNrZ3JvdW5kQ29sb3I6ICMyOTJkMzEsXHJcbiAgICBzZWxlY3RIb3ZlckNvbG9yOiByZ2JhKDU4LCA2MiwgNjYsIDAuNSksXHJcbiAgICBzZWxlY3RTZWxlY3RlZENvbG9yOiByZ2JhKDM3LCA0MCwgNDMsIDAuNSksXHJcbiAgICBzd2l0Y2hCYWNrZ3JvdW5kQ29sb3I6ICMwMDAwMDAsXHJcbiAgICBhY2NvdW50QmFja2dyb3VuZENvbG9yOiByZ2JhKDM3LCA0MCwgNDMsIDAuNSksXHJcbiAgICBhY2NvdW50SG92ZXJCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoNTgsIDYyLCA2NiwgMC41KSxcclxuICAgIGFjY291bnRNYWluVGV4dENvbG9yOiAjZTBlMGUwLFxyXG4gICAgYWNjb3VudE9wdGlvbmFsVGV4dENvbG9yOiAjNTY1YzYyLFxyXG4gICAgYWNjb3VudEluZGljYXRvclRleHRDb2xvcjogIzFhMWExYSxcclxuICAgIGFjY291bnRTd2l0Y2hCYWNrZ3JvdW5kQ29sb3I6ICMwMDAwMDAsXHJcbiAgICBhY2NvdW50SW5kaWNhdG9yQmFja2dyb3VuZENvbG9yOiAjNDJhNWY1LFxyXG4gICAgdGFiSW5hY3RpdmVCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoMjgsIDMwLCAzMywgMC41KSxcclxuICAgIHRhYkhvdmVyQmFja2dyb3VuZENvbG9yOiByZ2JhKDU4LCA2MiwgNjYsIDAuNSksXHJcbiAgICB0YWJsZUJhY2tncm91bmRDb2xvcjogIzI1MjkyZCxcclxuICAgIG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcjogIzMwMzYzYyxcclxuICAgIG1lc3NhZ2VCdWRkeUJhY2tncm91bmRDb2xvcjogIzI1MjkyZCxcclxuICAgIHByb2dyZXNzQmFyQmFja2dyb3VuZENvbG9yOiAjMzYzYTNlLFxyXG4gICAgcHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yOiAjNDdjZjhkLFxyXG4gICAgY2hhcnRPcHRpb25zQmFja2dyb3VuZENvbG9yOiAjMjkyZDMxLFxyXG4gICAgY2hhcnRPcHRpb25zSG92ZXJDb2xvcjogIzUxNTk2MCxcclxuICAgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I6ICMzZTQ2NGMsXHJcbiAgICB0b29sdGlwSW1wb3J0YW50VGV4dENvbG9yOiAjZmY2ZjAwLFxyXG4gICAgdG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcjogIzU1MjQwZCxcclxuICAgIHRvb2x0aXBDcml0aWNhbFRleHRDb2xvcjogI2ZmNTI1MixcclxuICAgIHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcjogIzRjMTkxOSxcclxuICAgIHRvb2x0aXBTaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KSxcclxuICAgIG1vZGFsQmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWdyYXkucG5nKSxcclxuICAgIGNsb3NlQnV0dG9uQ29sb3I6ICM1MTU5NjAsXHJcbiAgICBob3ZlclBhZ2U6ICMzODNlNDNcclxuICApLFxyXG4gIHdoaXRlOiAoXHJcbiAgICBib2R5QmFja2dyb3VuZENvbG9yOiAjZWVlZWVlLFxyXG4gICAgc2lkZWJhckJhY2tncm91bmRDb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKSxcclxuICAgIHNpZGViYXJCb3JkZXJDb2xvcjogI2ViZWJlYixcclxuICAgIG9ubGluZUNvbG9yOiAjNDZjMTcyLFxyXG4gICAgb2ZmbGluZUNvbG9yOiAjZmY1MjUyLFxyXG4gICAgY29udGVudEJhY2tncm91bmRDb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpLFxyXG4gICAgbWFpblRleHRDb2xvcjogIzQzNDU0YixcclxuICAgIGFsdGVybmF0aXZlVGV4dENvbG9yOiAjZmVmZWZlLFxyXG4gICAgb3B0aW9uYWxUZXh0Q29sb3I6ICNhMGE1YWIsXHJcbiAgICBibHVlVGV4dENvbG9yOiAjMmM5NWYxLFxyXG4gICAgZ3JlZW5UZXh0Q29sb3I6ICM0NmMxNzIsXHJcbiAgICBvcmFuZ2VUZXh0Q29sb3I6ICNmZjZmMDAsXHJcbiAgICByZWRUZXh0Q29sb3I6ICNmZjUyNTIsXHJcbiAgICBibHVlQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjMmM5NWYxLFxyXG4gICAgYmx1ZUJ1dHRvbkhvdmVyQ29sb3I6ICM1Y2IzZmYsXHJcbiAgICBibHVlQnV0dG9uRm9jdXNDb2xvcjogIzM3OWZmYSxcclxuICAgIGRpc2FibGVkQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjOTBhNGFlLFxyXG4gICAgZGlzYWJsZWRCdXR0b25Ib3ZlckNvbG9yOiAjYWViZWM2LFxyXG4gICAgZGlzYWJsZWRCdXR0b25Gb2N1c0NvbG9yOiAjYTdiOWMyLFxyXG4gICAgZ3JlZW5CdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM0NmMxNzIsXHJcbiAgICBncmVlbkJ1dHRvbkhvdmVyQ29sb3I6ICM1YWQ1ODYsXHJcbiAgICBncmVlbkJ1dHRvbkZvY3VzQ29sb3I6ICM1M2M3N2MsXHJcbiAgICB0dXJxdW9pc2VCdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICMyNmI2YzcsXHJcbiAgICB0dXJxdW9pc2VCdXR0b25Ib3ZlckNvbG9yOiAjNTJjYmQ5LFxyXG4gICAgdHVycXVvaXNlQnV0dG9uRm9jdXNDb2xvcjogIzMxYmVjZixcclxuICAgIHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3I6ICNlYmViZWIsXHJcbiAgICBpbnB1dEJhY2tncm91bmRDb2xvcjogI2U2ZTZlNixcclxuICAgIHNlbGVjdEhvdmVyQ29sb3I6IHJnYmEoMjQwLCAyNDAsIDI0MCwgMC41KSxcclxuICAgIHNlbGVjdFNlbGVjdGVkQ29sb3I6IHJnYmEoMjI0LCAyMjQsIDIyNCwgMC41KSxcclxuICAgIHN3aXRjaEJhY2tncm91bmRDb2xvcjogI2UwZTBlMCxcclxuICAgIGFjY291bnRCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoMzAsIDEzNiwgMjI5LCAxKSxcclxuICAgIGFjY291bnRIb3ZlckJhY2tncm91bmRDb2xvcjogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjUpLFxyXG4gICAgYWNjb3VudE1haW5UZXh0Q29sb3I6ICNmZmZmZmYsXHJcbiAgICBhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3I6ICM5MWJhZjEsXHJcbiAgICBhY2NvdW50SW5kaWNhdG9yVGV4dENvbG9yOiAjNDM0NTRiLFxyXG4gICAgYWNjb3VudFN3aXRjaEJhY2tncm91bmRDb2xvcjogI2ZmZmZmZixcclxuICAgIGFjY291bnRJbmRpY2F0b3JCYWNrZ3JvdW5kQ29sb3I6ICNmZmZmZmYsXHJcbiAgICB0YWJJbmFjdGl2ZUJhY2tncm91bmRDb2xvcjogcmdiYSgyMjQsIDIyNCwgMjI0LCAwLjUpLFxyXG4gICAgdGFiSG92ZXJCYWNrZ3JvdW5kQ29sb3I6ICNmZmZmZmYsXHJcbiAgICB0YWJsZUJhY2tncm91bmRDb2xvcjogI2ZmZmZmZixcclxuICAgIG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcjogI2ZmZixcclxuICAgIG1lc3NhZ2VCdWRkeUJhY2tncm91bmRDb2xvcjogI2VkZWRlZCxcclxuICAgIHByb2dyZXNzQmFyQmFja2dyb3VuZENvbG9yOiAjZGNkY2RjLFxyXG4gICAgcHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yOiAjNDZjMTcyLFxyXG4gICAgY2hhcnRPcHRpb25zQmFja2dyb3VuZENvbG9yOiAjZTBlMGUwLFxyXG4gICAgY2hhcnRPcHRpb25zSG92ZXJDb2xvcjogI2ZmZmZmZixcclxuICAgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I6ICNmZmZmZmYsXHJcbiAgICB0b29sdGlwSW1wb3J0YW50VGV4dENvbG9yOiAjZmZmZmZmLFxyXG4gICAgdG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcjogI2VmNmMwMCxcclxuICAgIHRvb2x0aXBDcml0aWNhbFRleHRDb2xvcjogI2ZmZmZmZixcclxuICAgIHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcjogI2U1MzkzNSxcclxuICAgIHRvb2x0aXBTaGFkb3c6IDAgMCAxcmVtIHJnYmEoMTIwLCAxMjAsIDEyMCwgMC41KSxcclxuICAgIG1vZGFsQmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLXdoaXRlLnBuZyksXHJcbiAgICBjbG9zZUJ1dHRvbkNvbG9yOiAjNDM0NTRiLFxyXG4gICAgaG92ZXJQYWdlOiAjZmZmZmZmXHJcbiAgKVxyXG4pO1xyXG5cclxuXHJcblxyXG5cclxuXHJcbiIsImFwcC1tYWluLCBhcHAtY3JlYXRlLXdhbGxldCwgYXBwLW9wZW4td2FsbGV0LCBhcHAtcmVzdG9yZS13YWxsZXQsIGFwcC1zZWVkLXBocmFzZSwgYXBwLXdhbGxldC1kZXRhaWxzLCBhcHAtYXNzaWduLWFsaWFzLCBhcHAtZWRpdC1hbGlhcywgYXBwLXRyYW5zZmVyLWFsaWFzLCBhcHAtc2V0dGluZ3MsIGFwcC1sb2dpbiB7XHJcbiAgZmxleDogMSAxIGF1dG87XHJcbiAgcGFkZGluZzogM3JlbTtcclxuICBtaW4td2lkdGg6IDg1cmVtO1xyXG5cclxuICAuY29udGVudCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nOiAzcmVtO1xyXG4gICAgbWluLWhlaWdodDogMTAwJTtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGNvbnRlbnRCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC5oZWFkIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtbWFpbiB7XHJcblxyXG4gIC5jb250ZW50IHtcclxuXHJcbiAgICAuYWRkLXdhbGxldCB7XHJcblxyXG4gICAgICAuYWRkLXdhbGxldC1oZWxwIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtc2VlZC1waHJhc2Uge1xyXG5cclxuICAuc2VlZC1waHJhc2UtY29udGVudCB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcilcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC13YWxsZXQtZGV0YWlscyB7XHJcblxyXG4gIC5zZWVkLXBocmFzZSB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtc2V0dGluZ3Mge1xyXG5cclxuICAuY29udGVudCB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gICAgLnRoZW1lLXNlbGVjdGlvbiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zY2FsZS1zZWxlY3Rpb24ge1xyXG5cclxuICAgICAgLmJ1dHRvbi1ibG9jayB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYkluYWN0aXZlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5sYWJlbCB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLmxhYmVsIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1sb2dpbiB7XHJcbiAgbWluLXdpZHRoOiBpbmhlcml0O1xyXG59XHJcbiIsImFwcC1zaWRlYmFyIHtcclxuXHJcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoc2lkZWJhckJhY2tncm91bmRDb2xvcik7XHJcbiAgfVxyXG5cclxuICAuc2lkZWJhci1hY2NvdW50cyB7XHJcblxyXG4gICAgLnNpZGViYXItYWNjb3VudHMtaGVhZGVyIHtcclxuXHJcbiAgICAgIGgzIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgYnV0dG9uIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zaWRlYmFyLWFjY291bnRzLWxpc3Qge1xyXG5cclxuICAgICAgLnNpZGViYXItYWNjb3VudCB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2lkZWJhci1hY2NvdW50LXJvdyB7XHJcblxyXG4gICAgICAgICAgLnRleHQge1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuaW5kaWNhdG9yIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlQnV0dG9uQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuXHJcbiAgICAgICAgICAgIC5wcm9ncmVzcy1iYXIge1xyXG5cclxuICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChwcm9ncmVzc0JhckJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAuZmlsbCB7XHJcblxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmLmFjY291bnQtc3luY2hyb25pemF0aW9uIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjdGl2ZSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgY29sb3I6IHRoZW1lZChhY2NvdW50TWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLnNpZGViYXItYWNjb3VudC1yb3cge1xyXG5cclxuICAgICAgICAgICAgLnRleHQge1xyXG5cclxuICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYWNjb3VudE9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5pbmRpY2F0b3Ige1xyXG5cclxuICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50SW5kaWNhdG9yQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYWNjb3VudEluZGljYXRvclRleHRDb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc3dpdGNoIHtcclxuXHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYWNjb3VudFN3aXRjaEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5hY2NvdW50LXN5bmNocm9uaXphdGlvbiB7XHJcblxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3Zlcjpub3QoLmFjdGl2ZSkge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYWNjb3VudEhvdmVyQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmFmdGVyIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDAlLCB0aGVtZWQoc2lkZWJhckJhY2tncm91bmRDb2xvcikgMTAwJSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zaWRlYmFyLXNldHRpbmdzIHtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMC4ycmVtIHNvbGlkIHRoZW1lZChzaWRlYmFyQm9yZGVyQ29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC53cmFwLWJ1dHRvbiB7XHJcblxyXG4gICAgICBidXR0b24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuYWN0aXZlIHtcclxuXHJcbiAgICAgICAgYnV0dG9uIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGFjY291bnRCYWNrZ3JvdW5kQ29sb3IpIWltcG9ydGFudDtcclxuICAgICAgICAgICAgY29sb3I6IHRoZW1lZChhY2NvdW50TWFpblRleHRDb2xvcikhaW1wb3J0YW50O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5pY29uIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50SW5kaWNhdG9yQmFja2dyb3VuZENvbG9yKSFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIi5zeW5jaHJvbml6YXRpb24tc3RhdHVzIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGZsZXg6IDAgMCA3cmVtO1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgfVxyXG5cclxuICAuc3RhdHVzLWNvbnRhaW5lciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICAgIC5vZmZsaW5lLCAub25saW5lIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAyLjJyZW07XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgICAgIGhlaWdodDogMS4ycmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm9mZmxpbmU6YmVmb3JlIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChvZmZsaW5lQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm9ubGluZTpiZWZvcmUge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKG9ubGluZUNvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zeW5jaW5nLCAubG9hZGluZyB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA1cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIGhlaWdodDogMC43cmVtO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIC5zeW5jaW5nIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgICAucHJvZ3Jlc3MtYmFyIHtcclxuICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChwcm9ncmVzc0JhckJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAuZmlsbCB7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyRnVsbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi5kb3dubG9hZGluZyB7XHJcblxyXG4gICAgICAgICAgLnByb2dyZXNzLWJhciB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuZmlsbCB7XHJcblxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAucHJvZ3Jlc3MtcGVyY2VudCB7XHJcbiAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDAuN3JlbTtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmxvYWRpbmcge1xyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyRnVsbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFuaW1hdGlvbjogbW92ZSA1cyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTpcclxuICAgICAgICAgIC13ZWJraXQtZ3JhZGllbnQoXHJcbiAgICAgICAgICAgICAgbGluZWFyLCAwIDAsIDEwMCUgMTAwJSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4xMjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjEyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjI1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC4yNTAsIHJnYmEoMCwgMCwgMCwgLjEwKSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMzc1LCByZ2JhKDAsIDAsIDAsIC4xMCkpLCBjb2xvci1zdG9wKC4zNzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC41MDAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNTAwLCByZ2JhKDAsIDAsIDAsIC4xNSkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjYyNSwgcmdiYSgwLCAwLCAwLCAuMTUpKSwgY29sb3Itc3RvcCguNjI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNzUwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjc1MCwgcmdiYSgwLCAwLCAwLCAuMTApKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC44NzUsIHJnYmEoMCwgMCwgMCwgLjEwKSksIGNvbG9yLXN0b3AoLjg3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIHRvKHRyYW5zcGFyZW50KVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIC13ZWJraXQtZ3JhZGllbnQoXHJcbiAgICAgICAgICAgICAgbGluZWFyLCAwIDEwMCUsIDEwMCUgMCxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4xMjUsIHJnYmEoMCwgMCwgMCwgLjMwKSksIGNvbG9yLXN0b3AoLjEyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjI1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC4yNTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMzc1LCByZ2JhKDAsIDAsIDAsIC4yNSkpLCBjb2xvci1zdG9wKC4zNzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC41MDAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNTAwLCByZ2JhKDAsIDAsIDAsIC4zMCkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjYyNSwgcmdiYSgwLCAwLCAwLCAuMzApKSwgY29sb3Itc3RvcCguNjI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNzUwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjc1MCwgcmdiYSgwLCAwLCAwLCAuMjUpKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC44NzUsIHJnYmEoMCwgMCwgMCwgLjI1KSksIGNvbG9yLXN0b3AoLjg3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIHRvKHRyYW5zcGFyZW50KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDdyZW0gN3JlbTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC51cGRhdGUtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgIC51cGRhdGUtdGV4dCB7XHJcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuOHJlbTtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAgICYudGltZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICBtYXJnaW46IDAuM3JlbSAwIDAgMC42cmVtO1xyXG4gICAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuMnJlbTtcclxuXHJcbiAgICAgICYudXBkYXRlIHtcclxuICAgICAgICBtYXNrOiB1cmwoLi9hc3NldHMvaWNvbnMvdXBkYXRlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi50aW1lIHtcclxuICAgICAgICBtYXNrOiB1cmwoLi9hc3NldHMvaWNvbnMvdGltZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc3RhbmRhcmQge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pbXBvcnRhbnQge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChvcmFuZ2VUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNyaXRpY2FsIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQocmVkVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50aW1lIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQob3JhbmdlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pY29uIHtcclxuXHJcbiAgICAgICYuc3RhbmRhcmQge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuaW1wb3J0YW50IHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQob3JhbmdlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuY3JpdGljYWwge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChyZWRUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi50aW1lIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQob3JhbmdlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIG1vdmUge1xyXG4gIDAlIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgLTdyZW07XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA3cmVtO1xyXG4gIH1cclxufVxyXG4iLCJhcHAtd2FsbGV0IHtcclxuXHJcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gIH1cclxuXHJcbiAgLmhlYWRlciB7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5pY29uIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICY6ZGlzYWJsZWQge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hbGlhcyB7XHJcblxyXG4gICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZHJlc3Mge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC5pY29uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnRhYnMge1xyXG5cclxuICAgIC50YWJzLWhlYWRlciB7XHJcblxyXG4gICAgICAudGFiIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodGFiSW5hY3RpdmVCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaW5kaWNhdG9yIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGFjY291bnRJbmRpY2F0b3JCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKGFjY291bnRJbmRpY2F0b3JUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY29udGVudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmhvdmVyOm5vdCguYWN0aXZlKTpub3QoLmRpc2FibGVkKSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCh0YWJIb3ZlckJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYnMtY29udGVudCB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY29udGVudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucGFnaW5hdGlvbi13cmFwcGVyIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChjb250ZW50QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnBhZ2luYXRpb24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCB0aGVtZWQodHJhbnNwYXJlbnRCdXR0b25Cb3JkZXJDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3IpO1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodGFibGVCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICBcclxuICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoaG92ZXJQYWdlKTtcclxuICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXNlbmQge1xyXG5cclxuICAuZm9ybS1zZW5kIHtcclxuXHJcbiAgICAuc2VuZC1zZWxlY3Qge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYWRkaXRpb25hbC1kZXRhaWxzIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlcjogMC4ycmVtIHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXJlY2VpdmUge1xyXG5cclxuICAuYnRuLWNvcHktYWRkcmVzcyB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1oaXN0b3J5IHtcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuXHJcbiAgICAgICAgJi5sb2NrZWQtdHJhbnNhY3Rpb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKDRuKzEpIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYmxlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKDRuKzIpIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYmxlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKDRuKzMpIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOm50aC1jaGlsZCg0bis0KSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cyB7XHJcblxyXG4gICAgICAgICAgLmNvbmZpcm1hdGlvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuZmlsbCB7XHJcblxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyRnVsbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubG9jay10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChvcmFuZ2VUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnVubG9jay10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zdGF0dXMuc2VuZCB7XHJcblxyXG4gICAgICAgICAgLnN0YXR1cy10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocmVkVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cy5yZWNlaXZlZCB7XHJcblxyXG4gICAgICAgICAgLnN0YXR1cy10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZ3JlZW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtY29udHJhY3RzIHtcclxuXHJcbiAgLndyYXAtdGFibGUge1xyXG5cclxuICAgIC5jb250cmFjdCB7XHJcblxyXG4gICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgICYubmV3LCAmLmFsZXJ0IHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHJlZFRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnB1cmNoYXNlLCAmLnNlbGwge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtcHVyY2hhc2Uge1xyXG5cclxuICAuZm9ybS1wdXJjaGFzZSB7XHJcblxyXG4gICAgLnB1cmNoYXNlLXNlbGVjdCB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wdXJjaGFzZS1zdGF0ZXMge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hZGRpdGlvbmFsLWRldGFpbHMge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYm9yZGVyOiAwLjJyZW0gc29saWQgdGhlbWVkKHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XHJcblxyXG4gICAgLnByb2dyZXNzLWJhciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChwcm9ncmVzc0JhckZ1bGxCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLW1lc3NhZ2VzIHtcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuXHJcbiAgICAgICAgdGQ6Zmlyc3QtY2hpbGQge1xyXG5cclxuICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LXRydW5jYXRlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5pY29uIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChyZWRUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtdHlwaW5nLW1lc3NhZ2Uge1xyXG5cclxuICAuaGVhZCB7XHJcblxyXG4gICAgLmludGVybG9jdXRvciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWVzc2FnZXMtY29udGVudCB7XHJcblxyXG4gICAgLm1lc3NhZ2VzLWxpc3Qge1xyXG5cclxuICAgICAgZGl2IHtcclxuXHJcbiAgICAgICAgJi5kYXRlIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLm15IHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjpiZWZvcmUge1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvO1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgIGxlZnQ6IC0xLjFyZW07XHJcbiAgICAgICAgICAgIGJvcmRlcjogMS4ycmVtIHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdGhlbWVkKG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYnVkZHkge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQobWVzc2FnZUJ1ZGR5QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmOmFmdGVyIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkbztcclxuICAgICAgICAgICAgcmlnaHQ6IC0xLjFyZW07XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgYm9yZGVyOiAxLjJyZW0gc29saWQgdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0aGVtZWQobWVzc2FnZUJ1ZGR5QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXN0YWtpbmcge1xyXG5cclxuICAuY2hhcnQtaGVhZGVyIHtcclxuXHJcbiAgICAuZ2VuZXJhbCB7XHJcblxyXG4gICAgICAubGFiZWwge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLm9wdGlvbnMge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdGVkIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jaGFydC1vcHRpb25zIHtcclxuXHJcbiAgICAudGl0bGUge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAub3B0aW9ucyB7XHJcblxyXG4gICAgICBidXR0b24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY2hhcnRPcHRpb25zQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYWN0aXZlIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGNoYXJ0T3B0aW9uc0hvdmVyQ29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmlucHV0LWJsb2NrLWFsaWFzIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIC5hbGlhcy1kcm9wZG93biB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDYuNXJlbTtcclxuICAgIG1heC1oZWlnaHQ6IDEwcmVtO1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGlucHV0QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXYge1xyXG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgcGFkZGluZzogMXJlbTtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHNlbGVjdEhvdmVyQ29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJhcHAtY29udGFjdHMsIGFwcC1hZGQtY29udGFjdHMsXHJcbmFwcC1jb250YWN0LXNlbmQsIGFwcC1leHBvcnQtaW1wb3J0IHtcclxuICBmbGV4OiAxIDEgYXV0bztcclxuICBwYWRkaW5nOiAzcmVtO1xyXG4gIG1pbi13aWR0aDogODVyZW07XHJcblxyXG4gIC5jb250ZW50IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDNyZW07XHJcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY29udGVudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLmhlYWQge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1jb250YWN0cyB7XHJcbiAgXHJcbiAgdGFibGUge1xyXG5cclxuICAgIC5hbGlhcyB7XHJcbiAgXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICBcclxuICAgICAgLmljb24ge1xyXG4gIFxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gIFxyXG4gICAgICBzcGFuIHtcclxuICAgICAgICBcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcilcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mb290ZXIge1xyXG4gICAgXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgIH1cclxuICBcclxuICAgIC5pbXBvcnQtYnRuIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5pY29uIHtcclxuICBcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbn1cclxuXHJcbmFwcC1jb250YWN0LXNlbmQge1xyXG4gIFxyXG4gIC53YWxsZXRzLXNlbGVjdGlvbiB7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iLCIuaGVhZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIHBhZGRpbmc6IDAgM3JlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDNyZW07XHJcblxyXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICB9XHJcblxyXG4gIC5icmVhZGNydW1icyB7XHJcblxyXG4gICAgPiBzcGFuLCBhIHtcclxuXHJcbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgb3V0bGluZS1zdHlsZTogbm9uZTtcclxuXHJcbiAgICAgICAgJjphZnRlciB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgcHNldWRvO1xyXG4gICAgICAgICAgdG9wOiAwLjVyZW07XHJcbiAgICAgICAgICByaWdodDogLTEuNXJlbTtcclxuICAgICAgICAgIHdpZHRoOiAwLjlyZW07XHJcbiAgICAgICAgICBoZWlnaHQ6IDAuOXJlbTtcclxuICAgICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1yaWdodC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICBtYXNrLXNpemU6IGNvdmVyO1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuYmFjay1idG4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiAjNGRiMWZmO1xyXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjNyZW07XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjdyZW07XHJcbiAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9iYWNrLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDAuOXJlbTtcclxuICAgICAgaGVpZ2h0OiAwLjlyZW07XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLnNjcm9sbGVkLWNvbnRlbnQge1xyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgIHdpZHRoOiAxcmVtO1xyXG4gICAgaGVpZ2h0OiAxcmVtO1xyXG4gIH1cclxuXHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xyXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcclxuICB9XHJcblxyXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XHJcbiAgfVxyXG59XHJcbiIsInRhYmxlIHtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgdGhlYWQge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgdHIge1xyXG4gICAgICBoZWlnaHQ6IDRyZW07XHJcblxyXG4gICAgICB0aCB7XHJcbiAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogM3JlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGJvZHkge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICB0ciB7XHJcbiAgICAgIGhlaWdodDogMy41cmVtO1xyXG5cclxuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYmxlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRkIHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS43cmVtO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAyMHJlbTtcclxuXHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gQkFTRVxyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9iYXNlL21peGlucyc7XHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2Jhc2UvbnVsbCc7XHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2Jhc2UvdGhlbWUnO1xyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9iYXNlL2Jhc2UnO1xyXG5cclxuLy8gTEFZT1VUXHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2xheW91dC9tYWluJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbGF5b3V0L3NldHRpbmdzJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbGF5b3V0L3NpZGViYXInO1xyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9sYXlvdXQvc3RhdHVzJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbGF5b3V0L3dhbGxldCc7XHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2xheW91dC9jb250YWN0JztcclxuXHJcbi8vIE1PRFVMRVNcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbW9kdWxlcy9oZWFkJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbW9kdWxlcy9zY3JvbGwnO1xyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9tb2R1bGVzL3RhYmxlJztcclxuXHJcbkBpbXBvcnQgXCJ+QG5nLXNlbGVjdC9uZy1zZWxlY3QvdGhlbWVzL2RlZmF1bHQudGhlbWUuY3NzXCI7XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnM7XHJcbiAgc3JjOiB1cmwofnNyYy9hc3NldHMvZm9udHMvT3BlblNhbnMtTGlnaHQudHRmKTtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnM7XHJcbiAgc3JjOiB1cmwofnNyYy9hc3NldHMvZm9udHMvT3BlblNhbnMtUmVndWxhci50dGYpO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiBPcGVuU2FucztcclxuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1TZW1pQm9sZC50dGYpO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiBPcGVuU2FucztcclxuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1Cb2xkLnR0Zik7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xyXG4gIHNyYzogdXJsKH5zcmMvYXNzZXRzL2ZvbnRzL09wZW5TYW5zLUV4dHJhQm9sZC50dGYpO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbn1cclxuXHJcblxyXG5odG1sIHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnMsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxMHB4O1xyXG59XHJcblxyXG5ib2R5IHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnMsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgd2lkdGg6IDEwMHZ3O1xyXG4gIGhlaWdodDogMTAwdmg7XHJcblxyXG4gICYudGhlbWUtZGFyayB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMTMxOTIxIHVybChcImFzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1kYXJrLnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICB9XHJcblxyXG4gICYudGhlbWUtZ3JheSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMTAxNDE3IHVybChcImFzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1ncmF5LnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICB9XHJcblxyXG4gICYudGhlbWUtd2hpdGUge1xyXG4gICAgYmFja2dyb3VuZDogI2VlZWVlZSB1cmwoXCJhc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtd2hpdGUucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIH1cclxuXHJcbiAgYXBwLXJvb3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLnVwZGF0ZS10b29sdGlwIHtcclxuXHJcbiAgLnRvb2x0aXAtaW5uZXIge1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKGFzc2V0cy9pY29ucy91cGRhdGUtYWxlcnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */", '', '']] +module.exports = [[module.i, "/*\r\n* Implementation of themes\r\n*/\n.ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}\n.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}\n.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}\n.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}\n.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}\n.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}\n.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:#007eff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 0 3px rgba(0,126,255,0.1)}\n.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}\n.ng-select .ng-has-value .ng-placeholder{display:none}\n.ng-select .ng-select-container{background-color:#fff;border-radius:4px;border:1px solid #ccc;min-height:36px;align-items:center}\n.ng-select .ng-select-container:hover{box-shadow:0 1px 0 rgba(0,0,0,0.06)}\n.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}\n[dir=\"rtl\"] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}\n.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}\n.ng-select.ng-select-single .ng-select-container{height:36px}\n.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}\n[dir=\"rtl\"] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}\n.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}\n.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;background-color:#ebf5ff;border-radius:2px;margin-right:5px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label{display:inline-block;padding:1px 5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}\n.ng-select .ng-clear-wrapper{color:#999}\n.ng-select .ng-clear-wrapper:hover .ng-clear{color:#D0021B}\n.ng-select .ng-spinner-zone{padding:5px 5px 0 0}\n[dir=\"rtl\"] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}\n.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}\n[dir=\"rtl\"] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}\n.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}\n.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}\n.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,0.06);left:0}\n.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-color:#e6e6e6;margin-top:-1px}\n.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}\n.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}\n.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}\n.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}\n.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:rgba(0,0,0,0.54);cursor:pointer}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5faff}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{background-color:#ebf5ff;font-weight:600}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:rgba(0,0,0,0.87);padding:8px 10px}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#ebf5ff}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5faff;color:#333}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}\n[dir=\"rtl\"] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}\n[dir=\"rtl\"] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}\n[dir=\"rtl\"] .ng-dropdown-panel{direction:rtl;text-align:right}\nhtml {\n box-sizing: border-box;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box; }\n*, *:before, *:after {\n box-sizing: inherit;\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n margin: 0;\n padding: 0;\n -webkit-touch-collout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none; }\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline; }\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block; }\nbody {\n line-height: 1;\n font-style: normal; }\nol, ul {\n list-style: none; }\nblockquote, q {\n quotes: none; }\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: none; }\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\ntd,\nth {\n padding: 0; }\ninput {\n outline: none; }\ninput:-webkit-autofill {\n -webkit-box-shadow: 0 0 0 1000px white inset; }\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n outline: none; }\nbutton[disabled],\nhtml input[disabled] {\n cursor: default; }\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0; }\ninput {\n line-height: normal; }\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box; }\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none; }\na {\n text-decoration: none; }\na:active, a:hover, a:focus {\n outline: 0; }\ni {\n font-style: italic; }\nb, strong {\n font-weight: 700; }\nimg {\n width: auto;\n max-width: 100%;\n height: auto;\n vertical-align: top;\n border: 0; }\n.hidden {\n display: none !important; }\n.theme-dark .app-content .preloader .loading-bar {\n background-color: #5cda9d; }\n.theme-gray .app-content .preloader .loading-bar {\n background-color: #47cf8d; }\n.theme-white .app-content .preloader .loading-bar {\n background-color: #46c172; }\nbutton {\n border: none;\n font-family: OpenSans, sans-serif;\n font-size: 1.5rem;\n font-weight: 600;\n outline: none;\n padding: 0 1rem;\n height: 4.2rem; }\n.theme-dark button:disabled:not(.transparent-button), .theme-dark button.blue-button_reset {\n background-color: #9cadb7;\n color: #111921; }\n.theme-gray button:disabled:not(.transparent-button), .theme-gray button.blue-button_reset {\n background-color: #79848f;\n color: #1a1a1a; }\n.theme-white button:disabled:not(.transparent-button), .theme-white button.blue-button_reset {\n background-color: #90a4ae;\n color: #fefefe; }\n.theme-dark button:disabled:not(.transparent-button):hover, .theme-dark button.blue-button_reset:hover {\n background-color: #b7d1e0; }\n.theme-gray button:disabled:not(.transparent-button):hover, .theme-gray button.blue-button_reset:hover {\n background-color: #a1aebb; }\n.theme-white button:disabled:not(.transparent-button):hover, .theme-white button.blue-button_reset:hover {\n background-color: #aebec6; }\n.theme-dark button:disabled:not(.transparent-button):focus, .theme-dark button.blue-button_reset:focus {\n background-color: #a7b9c2; }\n.theme-gray button:disabled:not(.transparent-button):focus, .theme-gray button.blue-button_reset:focus {\n background-color: #8a959f; }\n.theme-white button:disabled:not(.transparent-button):focus, .theme-white button.blue-button_reset:focus {\n background-color: #a7b9c2; }\n.theme-dark button.blue-button:not(:disabled) {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray button.blue-button:not(:disabled) {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white button.blue-button:not(:disabled) {\n background-color: #2c95f1;\n color: #fefefe; }\n.theme-dark button.blue-button:not(:disabled):hover {\n background-color: #82d7ff; }\n.theme-gray button.blue-button:not(:disabled):hover {\n background-color: #86d6ff; }\n.theme-white button.blue-button:not(:disabled):hover {\n background-color: #5cb3ff; }\n.theme-dark button.blue-button:not(:disabled):focus {\n background-color: #59b5fd; }\n.theme-gray button.blue-button:not(:disabled):focus {\n background-color: #5fb6fc; }\n.theme-white button.blue-button:not(:disabled):focus {\n background-color: #379ffa; }\n.theme-dark button.green-button:not(:disabled) {\n background-color: #5cda9d;\n color: #111921; }\n.theme-gray button.green-button:not(:disabled) {\n background-color: #47cf8d;\n color: #1a1a1a; }\n.theme-white button.green-button:not(:disabled) {\n background-color: #46c172;\n color: #fefefe; }\n.theme-dark button.green-button:not(:disabled):hover {\n background-color: #8dfcc6; }\n.theme-gray button.green-button:not(:disabled):hover {\n background-color: #7bf6c6; }\n.theme-white button.green-button:not(:disabled):hover {\n background-color: #5ad586; }\n.theme-dark button.green-button:not(:disabled):focus {\n background-color: #62e0b2; }\n.theme-gray button.green-button:not(:disabled):focus {\n background-color: #5cdc9e; }\n.theme-white button.green-button:not(:disabled):focus {\n background-color: #53c77c; }\n.theme-dark button.turquoise-button:not(:disabled) {\n background-color: #4dd0e1;\n color: #111921; }\n.theme-gray button.turquoise-button:not(:disabled) {\n background-color: #3ec5d7;\n color: #1a1a1a; }\n.theme-white button.turquoise-button:not(:disabled) {\n background-color: #26b6c7;\n color: #fefefe; }\n.theme-dark button.turquoise-button:not(:disabled):hover {\n background-color: #87f4f5; }\n.theme-gray button.turquoise-button:not(:disabled):hover {\n background-color: #72edfe; }\n.theme-white button.turquoise-button:not(:disabled):hover {\n background-color: #52cbd9; }\n.theme-dark button.turquoise-button:not(:disabled):focus {\n background-color: #42d5e8; }\n.theme-gray button.turquoise-button:not(:disabled):focus {\n background-color: #50d0e1; }\n.theme-white button.turquoise-button:not(:disabled):focus {\n background-color: #31becf; }\nbutton.transparent-button {\n display: flex;\n align-items: center;\n justify-content: center; }\n.theme-dark button.transparent-button {\n background-color: transparent;\n border: 0.2rem solid #2b3644;\n color: #e0e0e0; }\n.theme-gray button.transparent-button {\n background-color: transparent;\n border: 0.2rem solid #2f3438;\n color: #e0e0e0; }\n.theme-white button.transparent-button {\n background-color: transparent;\n border: 0.2rem solid #ebebeb;\n color: #43454b; }\nbutton.transparent-button .icon {\n margin-right: 1rem;\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\n mask: url('complete-testwallet.svg') no-repeat center;\n width: 1.7rem;\n height: 1.7rem; }\n.theme-dark button.transparent-button .icon {\n background-color: #e0e0e0; }\n.theme-gray button.transparent-button .icon {\n background-color: #e0e0e0; }\n.theme-white button.transparent-button .icon {\n background-color: #43454b; }\n.input-block {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n margin-bottom: 0.4rem; }\n.input-block .wrap-label {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n min-height: 2.4rem; }\n.input-block label {\n font-size: 1.3rem;\n line-height: 2.4rem; }\n.theme-dark .input-block label {\n color: #556576; }\n.theme-gray .input-block label {\n color: #565c62; }\n.theme-white .input-block label {\n color: #a0a5ab; }\n.input-block input[type='text'], .input-block input[type='password'], .input-block select {\n border: none;\n font-size: 1.4rem;\n outline: none;\n padding: 0 1rem;\n width: 100%;\n height: 4.2rem; }\n.theme-dark .input-block input[type='text'], .theme-dark .input-block input[type='password'], .theme-dark .input-block select {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .input-block input[type='text'], .theme-gray .input-block input[type='password'], .theme-gray .input-block select {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .input-block input[type='text'], .theme-white .input-block input[type='password'], .theme-white .input-block select {\n background-color: #e6e6e6;\n color: #43454b; }\n.input-block.textarea {\n height: auto; }\n.input-block.textarea textarea {\n font-family: OpenSans, sans-serif;\n border: none;\n font-size: 1.4rem;\n outline: none;\n padding: 1rem;\n width: 100%;\n min-width: 100%;\n height: 100%;\n min-height: 7.5rem;\n max-height: 7.5rem;\n overflow: auto;\n resize: none; }\n.theme-dark .input-block.textarea textarea {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .input-block.textarea textarea {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .input-block.textarea textarea {\n background-color: #e6e6e6;\n color: #43454b; }\n.input-block .error-block {\n font-size: 1rem;\n line-height: 1.4rem;\n align-self: flex-end;\n text-align: right; }\n.theme-dark .input-block .error-block {\n color: #ff5252; }\n.theme-gray .input-block .error-block {\n color: #ff5252; }\n.theme-white .input-block .error-block {\n color: #ff5252; }\n.input-block .success-block {\n font-size: 1rem;\n line-height: 1.4rem;\n align-self: flex-end;\n text-align: right; }\n.theme-dark .input-block .success-block {\n color: #5cda9d; }\n.theme-gray .input-block .success-block {\n color: #47cf8d; }\n.theme-white .input-block .success-block {\n color: #46c172; }\n.theme-dark .error-text {\n color: #ff5252; }\n.theme-gray .error-text {\n color: #ff5252; }\n.theme-white .error-text {\n color: #ff5252; }\ninput[type='radio'].style-radio + label {\n display: flex;\n align-items: center;\n cursor: pointer;\n font-weight: 400;\n padding-left: 2.4rem;\n -webkit-touch-collout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none; }\n.theme-dark input[type='radio'].style-radio + label {\n color: #556576; }\n.theme-gray input[type='radio'].style-radio + label {\n color: #565c62; }\n.theme-white input[type='radio'].style-radio + label {\n color: #a0a5ab; }\ninput[type='radio'].style-radio:not(checked) {\n position: absolute;\n opacity: 0; }\ninput[type='radio'].style-radio:not(checked) + label {\n position: relative; }\ninput[type='radio'].style-radio:not(checked) + label:before {\n content: '';\n position: absolute;\n top: 0.7rem;\n left: 0;\n background: transparent;\n border-radius: 50%;\n width: 1.4rem;\n height: 1.4rem; }\n.theme-dark input[type='radio'].style-radio:not(checked) + label:before {\n border: 0.1rem solid #4db1ff; }\n.theme-gray input[type='radio'].style-radio:not(checked) + label:before {\n border: 0.1rem solid #42a5f5; }\n.theme-white input[type='radio'].style-radio:not(checked) + label:before {\n border: 0.1rem solid #2c95f1; }\ninput[type='radio'].style-radio:not(checked) + label:after {\n content: '';\n position: absolute;\n top: 1rem;\n left: 0.3rem;\n border-radius: 50%;\n opacity: 0;\n width: 0.8rem;\n height: 0.8rem; }\n.theme-dark input[type='radio'].style-radio:not(checked) + label:after {\n background-color: #4db1ff; }\n.theme-gray input[type='radio'].style-radio:not(checked) + label:after {\n background-color: #42a5f5; }\n.theme-white input[type='radio'].style-radio:not(checked) + label:after {\n background-color: #2c95f1; }\ninput[type='radio'].style-radio:checked + label:after {\n opacity: 1; }\ninput[type='checkbox'].style-checkbox + label {\n display: flex;\n align-items: center;\n cursor: pointer;\n font-weight: 400;\n padding-left: 3.6rem;\n -webkit-touch-collout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none; }\n.theme-dark input[type='checkbox'].style-checkbox + label {\n color: #556576; }\n.theme-gray input[type='checkbox'].style-checkbox + label {\n color: #565c62; }\n.theme-white input[type='checkbox'].style-checkbox + label {\n color: #a0a5ab; }\ninput[type='checkbox'].style-checkbox:not(checked) {\n position: absolute;\n top: 50%;\n left: 1.6rem;\n transform: translateY(-50%);\n visibility: hidden; }\ninput[type='checkbox'].style-checkbox:not(checked) + label {\n position: relative; }\ninput[type='checkbox'].style-checkbox:not(checked) + label:before {\n content: '';\n position: absolute;\n top: 50%;\n left: 1.6rem;\n transform: translateY(-50%);\n background: transparent;\n width: 1.4rem;\n height: 1.4rem; }\n.theme-dark input[type='checkbox'].style-checkbox:not(checked) + label:before {\n border: 0.1rem solid #4db1ff; }\n.theme-gray input[type='checkbox'].style-checkbox:not(checked) + label:before {\n border: 0.1rem solid #42a5f5; }\n.theme-white input[type='checkbox'].style-checkbox:not(checked) + label:before {\n border: 0.1rem solid #2c95f1; }\ninput[type='checkbox'].style-checkbox:checked + label:before {\n background: url('complete-testwallet.svg'); }\n.theme-dark input[type='checkbox'].style-checkbox:checked + label:before {\n background-color: #4db1ff; }\n.theme-gray input[type='checkbox'].style-checkbox:checked + label:before {\n background-color: #42a5f5; }\n.theme-white input[type='checkbox'].style-checkbox:checked + label:before {\n background-color: #2c95f1; }\n.theme-dark .switch {\n background-color: #000000; }\n.theme-gray .switch {\n background-color: #000000; }\n.theme-white .switch {\n background-color: #e0e0e0; }\n.theme-dark .switch .circle.on {\n background-color: #4db1ff; }\n.theme-gray .switch .circle.on {\n background-color: #42a5f5; }\n.theme-white .switch .circle.on {\n background-color: #2c95f1; }\n.theme-dark .switch .circle.off {\n background-color: #556576; }\n.theme-gray .switch .circle.off {\n background-color: #565c62; }\n.theme-white .switch .circle.off {\n background-color: #a0a5ab; }\n.table-tooltip {\n padding: 1rem 2rem; }\n.theme-dark .table-tooltip {\n background: #42505f;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-gray .table-tooltip {\n background: #3e464c;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-white .table-tooltip {\n background: #ffffff;\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5);\n color: #43454b; }\n.table-tooltip .tooltip-inner {\n font-size: 1.3rem;\n line-height: 1.8rem;\n white-space: pre-wrap; }\n.table-tooltip.ng-tooltip-top {\n margin-top: -1rem; }\n.table-tooltip.ng-tooltip-top:after {\n content: \"\";\n position: absolute;\n bottom: -1rem;\n left: calc(50% - 0.5rem);\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-top:after {\n border-color: #42505f transparent transparent transparent; }\n.theme-gray .table-tooltip.ng-tooltip-top:after {\n border-color: #3e464c transparent transparent transparent; }\n.theme-white .table-tooltip.ng-tooltip-top:after {\n border-color: #ffffff transparent transparent transparent; }\n.table-tooltip.ng-tooltip-top-left {\n margin-top: -1rem; }\n.table-tooltip.ng-tooltip-top-left:after {\n content: \"\";\n position: absolute;\n bottom: -1rem;\n left: 0.7rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-top-left:after {\n border-color: #42505f transparent transparent #42505f; }\n.theme-gray .table-tooltip.ng-tooltip-top-left:after {\n border-color: #3e464c transparent transparent #3e464c; }\n.theme-white .table-tooltip.ng-tooltip-top-left:after {\n border-color: #ffffff transparent transparent #ffffff; }\n.table-tooltip.ng-tooltip-top-right {\n margin-top: -1rem; }\n.table-tooltip.ng-tooltip-top-right:after {\n content: \"\";\n position: absolute;\n bottom: -1rem;\n right: 0.7rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-top-right:after {\n border-color: #42505f #42505f transparent transparent; }\n.theme-gray .table-tooltip.ng-tooltip-top-right:after {\n border-color: #3e464c #3e464c transparent transparent; }\n.theme-white .table-tooltip.ng-tooltip-top-right:after {\n border-color: #ffffff #ffffff transparent transparent; }\n.table-tooltip.ng-tooltip-bottom {\n margin-top: 1rem; }\n.table-tooltip.ng-tooltip-bottom:before {\n content: \"\";\n position: absolute;\n top: -1rem;\n left: calc(50% - 0.5rem);\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-bottom:before {\n border-color: transparent transparent #42505f transparent; }\n.theme-gray .table-tooltip.ng-tooltip-bottom:before {\n border-color: transparent transparent #3e464c transparent; }\n.theme-white .table-tooltip.ng-tooltip-bottom:before {\n border-color: transparent transparent #ffffff transparent; }\n.table-tooltip.ng-tooltip-bottom-left {\n margin-top: 1rem; }\n.table-tooltip.ng-tooltip-bottom-left:before {\n content: \"\";\n position: absolute;\n top: -1rem;\n left: 0.7rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-bottom-left:before {\n border-color: transparent transparent #42505f #42505f; }\n.theme-gray .table-tooltip.ng-tooltip-bottom-left:before {\n border-color: transparent transparent #3e464c #3e464c; }\n.theme-white .table-tooltip.ng-tooltip-bottom-left:before {\n border-color: transparent transparent #ffffff #ffffff; }\n.table-tooltip.ng-tooltip-bottom-right {\n margin-top: 1rem; }\n.table-tooltip.ng-tooltip-bottom-right:before {\n content: \"\";\n position: absolute;\n top: -1rem;\n right: 0.7rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-bottom-right:before {\n border-color: transparent #42505f #42505f transparent; }\n.theme-gray .table-tooltip.ng-tooltip-bottom-right:before {\n border-color: transparent #3e464c #3e464c transparent; }\n.theme-white .table-tooltip.ng-tooltip-bottom-right:before {\n border-color: transparent #ffffff #ffffff transparent; }\n.table-tooltip.ng-tooltip-left {\n margin-left: -1rem; }\n.table-tooltip.ng-tooltip-left:after {\n content: \"\";\n position: absolute;\n top: calc(50% - 0.5rem);\n right: -1rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-left:after {\n border-color: transparent transparent transparent #42505f; }\n.theme-gray .table-tooltip.ng-tooltip-left:after {\n border-color: transparent transparent transparent #3e464c; }\n.theme-white .table-tooltip.ng-tooltip-left:after {\n border-color: transparent transparent transparent #ffffff; }\n.table-tooltip.ng-tooltip-right {\n margin-left: 1rem; }\n.table-tooltip.ng-tooltip-right:before {\n content: \"\";\n position: absolute;\n top: calc(50% - 0.5rem);\n left: -1rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-right:before {\n border-color: transparent #42505f transparent transparent; }\n.theme-gray .table-tooltip.ng-tooltip-right:before {\n border-color: transparent #3e464c transparent transparent; }\n.theme-white .table-tooltip.ng-tooltip-right:before {\n border-color: transparent #ffffff transparent transparent; }\n.table-tooltip-dimensions .tooltip-inner {\n overflow: auto;\n max-width: 20rem;\n max-height: 10rem; }\n.balance-tooltip {\n padding: 1.3rem; }\n.theme-dark .balance-tooltip {\n background: #42505f;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-gray .balance-tooltip {\n background: #3e464c;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-white .balance-tooltip {\n background: #ffffff;\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5);\n color: #43454b; }\n.balance-tooltip .tooltip-inner {\n display: flex;\n flex-direction: column;\n font-size: 1.3rem; }\n.balance-tooltip .tooltip-inner .available {\n margin-bottom: 1.7rem; }\n.balance-tooltip .tooltip-inner .available b {\n font-weight: 600; }\n.balance-tooltip .tooltip-inner .locked {\n margin-bottom: 0.7rem; }\n.balance-tooltip .tooltip-inner .locked b {\n font-weight: 600; }\n.balance-tooltip .tooltip-inner .link {\n cursor: pointer; }\n.theme-dark .balance-tooltip .tooltip-inner .link {\n color: #4db1ff; }\n.theme-gray .balance-tooltip .tooltip-inner .link {\n color: #42a5f5; }\n.theme-white .balance-tooltip .tooltip-inner .link {\n color: #2c95f1; }\n.balance-tooltip.ng-tooltip-top {\n margin-top: -1rem; }\n.balance-tooltip.ng-tooltip-bottom {\n margin-top: 1rem; }\n.balance-tooltip.ng-tooltip-left {\n margin-left: -1rem; }\n.balance-tooltip.ng-tooltip-right {\n margin-left: 1rem; }\n.account-tooltip .tooltip-inner {\n word-break: break-word;\n max-width: 18rem; }\n.comment-tooltip .tooltip-inner {\n overflow: auto;\n word-break: break-word;\n max-width: 50rem;\n max-height: 25rem; }\n.update-tooltip {\n padding: 1.5rem; }\n.theme-dark .update-tooltip {\n background: #42505f;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-gray .update-tooltip {\n background: #3e464c;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-white .update-tooltip {\n background: #ffffff;\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5);\n color: #43454b; }\n.theme-dark .update-tooltip.important {\n background: #5f2b11;\n color: #e0e0e0; }\n.theme-gray .update-tooltip.important {\n background: #55240d;\n color: #e0e0e0; }\n.theme-white .update-tooltip.important {\n background: #ef6c00;\n color: #ffffff; }\n.theme-dark .update-tooltip.important.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #5f2b11 #5f2b11; }\n.theme-gray .update-tooltip.important.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #55240d #55240d; }\n.theme-white .update-tooltip.important.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #ef6c00 #ef6c00; }\n.theme-dark .update-tooltip.important.ng-tooltip-right-bottom:before {\n border-color: transparent #5f2b11 #5f2b11 transparent; }\n.theme-gray .update-tooltip.important.ng-tooltip-right-bottom:before {\n border-color: transparent #55240d #55240d transparent; }\n.theme-white .update-tooltip.important.ng-tooltip-right-bottom:before {\n border-color: transparent #ef6c00 #ef6c00 transparent; }\n.update-tooltip.critical {\n padding: 2.5rem; }\n.theme-dark .update-tooltip.critical {\n background: #5f1d1d;\n color: #e0e0e0; }\n.theme-gray .update-tooltip.critical {\n background: #4c1919;\n color: #e0e0e0; }\n.theme-white .update-tooltip.critical {\n background: #e53935;\n color: #ffffff; }\n.update-tooltip.critical .tooltip-inner {\n display: flex;\n flex-direction: column;\n align-items: center; }\n.theme-dark .update-tooltip.critical.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #5f1d1d #5f1d1d; }\n.theme-gray .update-tooltip.critical.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #4c1919 #4c1919; }\n.theme-white .update-tooltip.critical.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #e53935 #e53935; }\n.theme-dark .update-tooltip.critical.ng-tooltip-right-bottom:before {\n border-color: transparent #5f1d1d #5f1d1d transparent; }\n.theme-gray .update-tooltip.critical.ng-tooltip-right-bottom:before {\n border-color: transparent #4c1919 #4c1919 transparent; }\n.theme-white .update-tooltip.critical.ng-tooltip-right-bottom:before {\n border-color: transparent #e53935 #e53935 transparent; }\n.update-tooltip .tooltip-inner {\n font-size: 1.3rem;\n line-height: 1.8rem;\n white-space: pre-wrap; }\n.update-tooltip .tooltip-inner .standard-update {\n font-size: 1.5rem;\n line-height: 2.7rem; }\n.theme-dark .update-tooltip .tooltip-inner .standard-update {\n color: #4db1ff; }\n.theme-gray .update-tooltip .tooltip-inner .standard-update {\n color: #42a5f5; }\n.theme-white .update-tooltip .tooltip-inner .standard-update {\n color: #2c95f1; }\n.update-tooltip .tooltip-inner .important-update {\n font-size: 1.5rem;\n line-height: 2.7rem; }\n.theme-dark .update-tooltip .tooltip-inner .important-update {\n color: #ff6f00; }\n.theme-gray .update-tooltip .tooltip-inner .important-update {\n color: #ff6f00; }\n.theme-white .update-tooltip .tooltip-inner .important-update {\n color: #ffffff; }\n.update-tooltip .tooltip-inner .critical-update {\n font-size: 1.5rem;\n line-height: 2.7rem;\n text-align: center; }\n.update-tooltip .tooltip-inner .wrong-time {\n font-size: 1.5rem;\n line-height: 2.7rem; }\n.theme-dark .update-tooltip .tooltip-inner .wrong-time {\n color: #ff6f00; }\n.theme-gray .update-tooltip .tooltip-inner .wrong-time {\n color: #ff6f00; }\n.theme-white .update-tooltip .tooltip-inner .wrong-time {\n color: #ffffff; }\n.update-tooltip .tooltip-inner .icon {\n margin: 1.5rem 0;\n width: 5rem;\n height: 5rem; }\n.theme-dark .update-tooltip .tooltip-inner .icon {\n background-color: #ff5252; }\n.theme-gray .update-tooltip .tooltip-inner .icon {\n background-color: #ff5252; }\n.theme-white .update-tooltip .tooltip-inner .icon {\n background-color: #ffffff; }\n.update-tooltip.ng-tooltip-left-bottom {\n margin-left: -1.5rem; }\n.update-tooltip.ng-tooltip-left-bottom:after {\n content: \"\";\n position: absolute;\n bottom: 0.6rem;\n right: -1rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .update-tooltip.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #42505f #42505f; }\n.theme-gray .update-tooltip.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #3e464c #3e464c; }\n.theme-white .update-tooltip.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #ffffff #ffffff; }\n.update-tooltip.ng-tooltip-right-bottom {\n margin-left: 1.5rem; }\n.update-tooltip.ng-tooltip-right-bottom:before {\n content: \"\";\n position: absolute;\n bottom: 0.6rem;\n left: -1rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .update-tooltip.ng-tooltip-right-bottom:before {\n border-color: transparent #42505f #42505f transparent; }\n.theme-gray .update-tooltip.ng-tooltip-right-bottom:before {\n border-color: transparent #3e464c #3e464c transparent; }\n.theme-white .update-tooltip.ng-tooltip-right-bottom:before {\n border-color: transparent #ffffff #ffffff transparent; }\n.ngx-contextmenu .dropdown-menu {\n border: none;\n padding: 0; }\n.theme-dark .ngx-contextmenu .dropdown-menu {\n background-color: #2b3644;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5); }\n.theme-gray .ngx-contextmenu .dropdown-menu {\n background-color: #292d31;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5); }\n.theme-white .ngx-contextmenu .dropdown-menu {\n background-color: #e0e0e0;\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5); }\n.ngx-contextmenu li {\n display: block;\n font-family: OpenSans, sans-serif;\n font-size: 1.3rem;\n text-transform: uppercase;\n text-align: center; }\n.ngx-contextmenu a {\n display: block;\n padding: 0.5em 1em; }\n.theme-dark .ngx-contextmenu a {\n color: #e0e0e0; }\n.theme-gray .ngx-contextmenu a {\n color: #e0e0e0; }\n.theme-white .ngx-contextmenu a {\n color: #43454b; }\n.theme-dark .ngx-contextmenu a:hover {\n background-color: #556576;\n color: #e0e0e0; }\n.theme-gray .ngx-contextmenu a:hover {\n background-color: #515960;\n color: #e0e0e0; }\n.theme-white .ngx-contextmenu a:hover {\n background-color: #ffffff;\n color: #43454b; }\n.ng-select.custom-select {\n width: 100%; }\n.ng-select.custom-select.ng-select-single .ng-select-container .ng-value-container .ng-value {\n line-height: 1.8rem; }\n.ng-select.custom-select .ng-select-container {\n border: none;\n border-radius: 0;\n cursor: pointer;\n font-size: 1.4rem;\n outline: none;\n padding: 0 1rem;\n height: 4.2rem; }\n.theme-dark .ng-select.custom-select .ng-select-container {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .ng-select.custom-select .ng-select-container {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .ng-select.custom-select .ng-select-container {\n background-color: #e6e6e6;\n color: #43454b; }\n.ng-select.custom-select .ng-select-container .ng-value-container {\n padding: 0; }\n.ng-select.custom-select .ng-select-container .ng-value-container .ng-input {\n top: auto; }\n.ng-select.custom-select .ng-dropdown-panel {\n border: none; }\n.theme-dark .ng-select.custom-select .ng-dropdown-panel {\n background-color: #171e27; }\n.theme-gray .ng-select.custom-select .ng-dropdown-panel {\n background-color: #292d31; }\n.theme-white .ng-select.custom-select .ng-dropdown-panel {\n background-color: #e6e6e6; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\n font-size: 1.4rem;\n padding: 1rem; }\n.theme-dark .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\n background-color: #e6e6e6;\n color: #43454b; }\n.theme-dark .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked {\n background-color: rgba(58, 69, 85, 0.5);\n color: #e0e0e0; }\n.theme-gray .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked {\n background-color: rgba(58, 62, 66, 0.5);\n color: #e0e0e0; }\n.theme-white .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked {\n background-color: rgba(240, 240, 240, 0.5);\n color: #43454b; }\n.theme-dark .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected {\n background-color: rgba(43, 54, 68, 0.5);\n color: #e0e0e0; }\n.theme-gray .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected {\n background-color: rgba(37, 40, 43, 0.5);\n color: #e0e0e0; }\n.theme-white .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected {\n background-color: rgba(224, 224, 224, 0.5);\n color: #43454b; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar {\n background-color: transparent;\n cursor: default;\n width: 1rem;\n height: 1rem; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-track {\n background: transparent; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-thumb {\n background-color: #556576;\n background-clip: padding-box;\n border: 0.25rem solid transparent;\n border-radius: 0.5rem; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-thumb:hover {\n background-color: #556576; }\n.theme-dark app-modal-container .modal, .theme-dark app-confirm-modal .modal {\n background: url('background-dark.png');\n color: #e0e0e0; }\n.theme-gray app-modal-container .modal, .theme-gray app-confirm-modal .modal {\n background: url('background-gray.png');\n color: #e0e0e0; }\n.theme-white app-modal-container .modal, .theme-white app-confirm-modal .modal {\n background: url('background-white.png');\n color: #43454b; }\n.theme-dark app-modal-container .modal .content .icon.error, .theme-dark app-confirm-modal .modal .content .icon.error {\n background-color: #ff5252; }\n.theme-gray app-modal-container .modal .content .icon.error, .theme-gray app-confirm-modal .modal .content .icon.error {\n background-color: #ff5252; }\n.theme-white app-modal-container .modal .content .icon.error, .theme-white app-confirm-modal .modal .content .icon.error {\n background-color: #ff5252; }\n.theme-dark app-modal-container .modal .content .icon.success, .theme-dark app-confirm-modal .modal .content .icon.success {\n background-color: #5cda9d; }\n.theme-gray app-modal-container .modal .content .icon.success, .theme-gray app-confirm-modal .modal .content .icon.success {\n background-color: #47cf8d; }\n.theme-white app-modal-container .modal .content .icon.success, .theme-white app-confirm-modal .modal .content .icon.success {\n background-color: #46c172; }\n.theme-dark app-modal-container .modal .content .icon.info, .theme-dark app-confirm-modal .modal .content .icon.info {\n background-color: #4db1ff; }\n.theme-gray app-modal-container .modal .content .icon.info, .theme-gray app-confirm-modal .modal .content .icon.info {\n background-color: #42a5f5; }\n.theme-white app-modal-container .modal .content .icon.info, .theme-white app-confirm-modal .modal .content .icon.info {\n background-color: #2c95f1; }\n.theme-dark app-modal-container .modal .action-button, .theme-dark app-confirm-modal .modal .action-button {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-modal-container .modal .action-button, .theme-gray app-confirm-modal .modal .action-button {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-modal-container .modal .action-button, .theme-white app-confirm-modal .modal .action-button {\n background-color: #2c95f1;\n color: #fefefe; }\n.theme-dark app-modal-container .modal .close-button .icon, .theme-dark app-confirm-modal .modal .close-button .icon {\n background-color: #556576; }\n.theme-gray app-modal-container .modal .close-button .icon, .theme-gray app-confirm-modal .modal .close-button .icon {\n background-color: #515960; }\n.theme-white app-modal-container .modal .close-button .icon, .theme-white app-confirm-modal .modal .close-button .icon {\n background-color: #43454b; }\n.theme-dark app-transaction-details .table {\n border-top: 0.2rem solid #2b3644; }\n.theme-gray app-transaction-details .table {\n border-top: 0.2rem solid #2f3438; }\n.theme-white app-transaction-details .table {\n border-top: 0.2rem solid #ebebeb; }\n.theme-dark app-transaction-details .table .row .cell.label {\n color: #556576; }\n.theme-gray app-transaction-details .table .row .cell.label {\n color: #565c62; }\n.theme-white app-transaction-details .table .row .cell.label {\n color: #a0a5ab; }\n.theme-dark app-transaction-details .table .row .cell.value {\n color: #e0e0e0; }\n.theme-gray app-transaction-details .table .row .cell.value {\n color: #e0e0e0; }\n.theme-white app-transaction-details .table .row .cell.value {\n color: #43454b; }\n.theme-dark app-transaction-details .table .row .cell.key-value {\n color: #4db1ff; }\n.theme-gray app-transaction-details .table .row .cell.key-value {\n color: #42a5f5; }\n.theme-white app-transaction-details .table .row .cell.key-value {\n color: #2c95f1; }\n.theme-dark app-progress-container .progress-bar-container {\n color: #e0e0e0; }\n.theme-gray app-progress-container .progress-bar-container {\n color: #e0e0e0; }\n.theme-white app-progress-container .progress-bar-container {\n color: #43454b; }\n.theme-dark app-progress-container .progress-bar-container .progress-bar {\n background-color: #343f4a; }\n.theme-gray app-progress-container .progress-bar-container .progress-bar {\n background-color: #363a3e; }\n.theme-white app-progress-container .progress-bar-container .progress-bar {\n background-color: #dcdcdc; }\n.theme-dark app-progress-container .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #5cda9d; }\n.theme-gray app-progress-container .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #47cf8d; }\n.theme-white app-progress-container .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #46c172; }\n.theme-dark app-open-wallet-modal .modal {\n background: url('background-dark.png');\n color: #e0e0e0; }\n.theme-gray app-open-wallet-modal .modal {\n background: url('background-gray.png');\n color: #e0e0e0; }\n.theme-white app-open-wallet-modal .modal {\n background: url('background-white.png');\n color: #43454b; }\n.theme-dark app-send-modal .modal {\n background: url('background-dark.png');\n color: #e0e0e0; }\n.theme-gray app-send-modal .modal {\n background: url('background-gray.png');\n color: #e0e0e0; }\n.theme-white app-send-modal .modal {\n background: url('background-white.png');\n color: #43454b; }\n.theme-dark app-send-modal .modal .title {\n border-bottom: 0.2rem solid #2b3644; }\n.theme-gray app-send-modal .modal .title {\n border-bottom: 0.2rem solid #2f3438; }\n.theme-white app-send-modal .modal .title {\n border-bottom: 0.2rem solid #ebebeb; }\n.theme-dark app-send-modal .modal .action-button {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-send-modal .modal .action-button {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-send-modal .modal .action-button {\n background-color: #2c95f1;\n color: #fefefe; }\napp-main, app-create-wallet, app-open-wallet, app-restore-wallet, app-seed-phrase, app-wallet-details, app-assign-alias, app-edit-alias, app-transfer-alias, app-settings, app-login {\n flex: 1 1 auto;\n padding: 3rem;\n min-width: 85rem; }\napp-main .content, app-create-wallet .content, app-open-wallet .content, app-restore-wallet .content, app-seed-phrase .content, app-wallet-details .content, app-assign-alias .content, app-edit-alias .content, app-transfer-alias .content, app-settings .content, app-login .content {\n position: relative;\n padding: 3rem;\n min-height: 100%; }\n.theme-dark app-main .content, .theme-dark app-create-wallet .content, .theme-dark app-open-wallet .content, .theme-dark app-restore-wallet .content, .theme-dark app-seed-phrase .content, .theme-dark app-wallet-details .content, .theme-dark app-assign-alias .content, .theme-dark app-edit-alias .content, .theme-dark app-transfer-alias .content, .theme-dark app-settings .content, .theme-dark app-login .content {\n background-color: rgba(43, 54, 68, 0.5);\n color: #e0e0e0; }\n.theme-gray app-main .content, .theme-gray app-create-wallet .content, .theme-gray app-open-wallet .content, .theme-gray app-restore-wallet .content, .theme-gray app-seed-phrase .content, .theme-gray app-wallet-details .content, .theme-gray app-assign-alias .content, .theme-gray app-edit-alias .content, .theme-gray app-transfer-alias .content, .theme-gray app-settings .content, .theme-gray app-login .content {\n background-color: rgba(37, 40, 43, 0.5);\n color: #e0e0e0; }\n.theme-white app-main .content, .theme-white app-create-wallet .content, .theme-white app-open-wallet .content, .theme-white app-restore-wallet .content, .theme-white app-seed-phrase .content, .theme-white app-wallet-details .content, .theme-white app-assign-alias .content, .theme-white app-edit-alias .content, .theme-white app-transfer-alias .content, .theme-white app-settings .content, .theme-white app-login .content {\n background-color: rgba(255, 255, 255, 0.5);\n color: #43454b; }\napp-main .content .head, app-create-wallet .content .head, app-open-wallet .content .head, app-restore-wallet .content .head, app-seed-phrase .content .head, app-wallet-details .content .head, app-assign-alias .content .head, app-edit-alias .content .head, app-transfer-alias .content .head, app-settings .content .head, app-login .content .head {\n position: absolute;\n top: 0;\n left: 0; }\n.theme-dark app-main .content .add-wallet .add-wallet-help {\n color: #4db1ff; }\n.theme-gray app-main .content .add-wallet .add-wallet-help {\n color: #42a5f5; }\n.theme-white app-main .content .add-wallet .add-wallet-help {\n color: #2c95f1; }\n.theme-dark app-main .content .add-wallet .add-wallet-help .icon {\n background-color: #4db1ff; }\n.theme-gray app-main .content .add-wallet .add-wallet-help .icon {\n background-color: #42a5f5; }\n.theme-white app-main .content .add-wallet .add-wallet-help .icon {\n background-color: #2c95f1; }\n.theme-dark app-seed-phrase .seed-phrase-content {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray app-seed-phrase .seed-phrase-content {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white app-seed-phrase .seed-phrase-content {\n background-color: #e6e6e6;\n color: #43454b; }\n.theme-dark app-wallet-details .seed-phrase {\n background-color: #171e27; }\n.theme-gray app-wallet-details .seed-phrase {\n background-color: #292d31; }\n.theme-white app-wallet-details .seed-phrase {\n background-color: #e6e6e6; }\napp-settings .content {\n height: 100%;\n overflow-y: auto;\n display: flex;\n justify-content: space-between;\n flex-direction: column; }\n.theme-dark app-settings .content .theme-selection {\n color: #556576; }\n.theme-gray app-settings .content .theme-selection {\n color: #565c62; }\n.theme-white app-settings .content .theme-selection {\n color: #a0a5ab; }\n.theme-dark app-settings .content .scale-selection .button-block {\n background-color: rgba(23, 31, 39, 0.5); }\n.theme-gray app-settings .content .scale-selection .button-block {\n background-color: rgba(28, 30, 33, 0.5); }\n.theme-white app-settings .content .scale-selection .button-block {\n background-color: rgba(224, 224, 224, 0.5); }\n.theme-dark app-settings .content .scale-selection .button-block .label {\n color: #556576; }\n.theme-gray app-settings .content .scale-selection .button-block .label {\n color: #565c62; }\n.theme-white app-settings .content .scale-selection .button-block .label {\n color: #a0a5ab; }\n.theme-dark app-settings .content .scale-selection .button-block.active {\n background-color: #4db1ff; }\n.theme-gray app-settings .content .scale-selection .button-block.active {\n background-color: #42a5f5; }\n.theme-white app-settings .content .scale-selection .button-block.active {\n background-color: #2c95f1; }\n.theme-dark app-settings .content .scale-selection .button-block.active .label {\n color: #4db1ff; }\n.theme-gray app-settings .content .scale-selection .button-block.active .label {\n color: #42a5f5; }\n.theme-white app-settings .content .scale-selection .button-block.active .label {\n color: #2c95f1; }\napp-login {\n min-width: inherit; }\n.theme-dark app-sidebar {\n background-color: #171f27; }\n.theme-gray app-sidebar {\n background-color: #1c1e21; }\n.theme-white app-sidebar {\n background-color: white; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-header h3 {\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-header h3 {\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-header h3 {\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-header button {\n color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-header button {\n color: #42a5f5; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-header button {\n color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account {\n background-color: transparent;\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account {\n background-color: transparent;\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account {\n background-color: transparent;\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .icon {\n background-color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .icon {\n background-color: #42a5f5; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .icon {\n background-color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .text {\n color: #556576; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .text {\n color: #565c62; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .text {\n color: #a0a5ab; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .icon {\n background-color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .icon {\n background-color: #42a5f5; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .icon {\n background-color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .indicator {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .indicator {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .indicator {\n background-color: #2c95f1;\n color: #fefefe; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar {\n background-color: #343f4a; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar {\n background-color: #363a3e; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar {\n background-color: #dcdcdc; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar .fill {\n background-color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar .fill {\n background-color: #42a5f5; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar .fill {\n background-color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\n color: #556576; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\n color: #565c62; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\n color: #a0a5ab; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active {\n background-color: rgba(43, 54, 68, 0.5);\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active {\n background-color: rgba(37, 40, 43, 0.5);\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active {\n background-color: #1e88e5;\n color: #ffffff; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .text {\n color: #556576; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .text {\n color: #565c62; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .text {\n color: #91baf1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .indicator {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .indicator {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .indicator {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .switch {\n background-color: #000000;\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .switch {\n background-color: #000000;\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .switch {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row.account-synchronization {\n color: #556576; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row.account-synchronization {\n color: #565c62; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row.account-synchronization {\n color: #91baf1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account:hover:not(.active) {\n background-color: rgba(58, 69, 85, 0.5); }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account:hover:not(.active) {\n background-color: rgba(58, 62, 66, 0.5); }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account:hover:not(.active) {\n background-color: rgba(240, 240, 240, 0.5); }\n.theme-dark app-sidebar .sidebar-accounts:after {\n background: linear-gradient(to bottom, transparent 0%, #171f27 100%); }\n.theme-gray app-sidebar .sidebar-accounts:after {\n background: linear-gradient(to bottom, transparent 0%, #1c1e21 100%); }\n.theme-white app-sidebar .sidebar-accounts:after {\n background: linear-gradient(to bottom, transparent 0%, white 100%); }\n.theme-dark app-sidebar .sidebar-settings {\n border-bottom: 0.2rem solid #1f2833; }\n.theme-gray app-sidebar .sidebar-settings {\n border-bottom: 0.2rem solid #2e3337; }\n.theme-white app-sidebar .sidebar-settings {\n border-bottom: 0.2rem solid #ebebeb; }\n.theme-dark app-sidebar .sidebar-settings .wrap-button button {\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-settings .wrap-button button {\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-settings .wrap-button button {\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-settings .wrap-button button .icon {\n background-color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-settings .wrap-button button .icon {\n background-color: #42a5f5; }\n.theme-white app-sidebar .sidebar-settings .wrap-button button .icon {\n background-color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-settings .wrap-button.active button {\n background-color: rgba(43, 54, 68, 0.5) !important;\n color: #e0e0e0 !important; }\n.theme-gray app-sidebar .sidebar-settings .wrap-button.active button {\n background-color: rgba(37, 40, 43, 0.5) !important;\n color: #e0e0e0 !important; }\n.theme-white app-sidebar .sidebar-settings .wrap-button.active button {\n background-color: #1e88e5 !important;\n color: #ffffff !important; }\n.theme-dark app-sidebar .sidebar-settings .wrap-button.active button .icon {\n background-color: #4db1ff !important; }\n.theme-gray app-sidebar .sidebar-settings .wrap-button.active button .icon {\n background-color: #42a5f5 !important; }\n.theme-white app-sidebar .sidebar-settings .wrap-button.active button .icon {\n background-color: #ffffff !important; }\n.synchronization-status {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 0 0 7rem;\n font-size: 1.3rem; }\n.theme-dark .synchronization-status {\n color: #556576; }\n.theme-gray .synchronization-status {\n color: #565c62; }\n.theme-white .synchronization-status {\n color: #a0a5ab; }\n.synchronization-status .status-container {\n position: relative;\n flex-grow: 1;\n text-align: left; }\n.synchronization-status .status-container .offline, .synchronization-status .status-container .online {\n position: relative;\n display: block;\n line-height: 1.2rem;\n padding-left: 2.2rem; }\n.synchronization-status .status-container .offline:before, .synchronization-status .status-container .online:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n border-radius: 50%;\n width: 1.2rem;\n height: 1.2rem; }\n.theme-dark .synchronization-status .status-container .offline:before {\n background-color: #ff5252; }\n.theme-gray .synchronization-status .status-container .offline:before {\n background-color: #ff5252; }\n.theme-white .synchronization-status .status-container .offline:before {\n background-color: #ff5252; }\n.theme-dark .synchronization-status .status-container .online:before {\n background-color: #5cda9d; }\n.theme-gray .synchronization-status .status-container .online:before {\n background-color: #47cf8d; }\n.theme-white .synchronization-status .status-container .online:before {\n background-color: #46c172; }\n.synchronization-status .status-container .syncing, .synchronization-status .status-container .loading {\n line-height: 5rem; }\n.synchronization-status .status-container .progress-bar-container {\n position: absolute;\n bottom: 0;\n left: 0;\n height: 0.7rem;\n width: 100%; }\n.synchronization-status .status-container .progress-bar-container .syncing {\n display: flex; }\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\n flex: 1 0 auto; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\n background-color: #343f4a; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\n background-color: #363a3e; }\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\n background-color: #dcdcdc; }\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\n height: 100%; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\n background-color: #5cda9d; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\n background-color: #47cf8d; }\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\n background-color: #46c172; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar {\n background-color: #343f4a; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar {\n background-color: #363a3e; }\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar {\n background-color: #dcdcdc; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar .fill {\n background-color: #4db1ff; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar .fill {\n background-color: #42a5f5; }\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar .fill {\n background-color: #2c95f1; }\n.synchronization-status .status-container .progress-bar-container .syncing .progress-percent {\n flex: 0 0 auto;\n font-size: 1.3rem;\n line-height: 0.7rem;\n padding-left: 0.7rem; }\n.synchronization-status .status-container .progress-bar-container .loading {\n -webkit-animation: move 5s linear infinite;\n animation: move 5s linear infinite;\n background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.125, rgba(0, 0, 0, 0.15)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.1)), color-stop(0.375, rgba(0, 0, 0, 0.1)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.15)), color-stop(0.625, rgba(0, 0, 0, 0.15)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.1)), color-stop(0.875, rgba(0, 0, 0, 0.1)), color-stop(0.875, transparent), to(transparent)), -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\n background-size: 7rem 7rem;\n height: 100%; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .loading {\n background-color: #5cda9d; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .loading {\n background-color: #47cf8d; }\n.theme-white .synchronization-status .status-container .progress-bar-container .loading {\n background-color: #46c172; }\n.synchronization-status .update-container {\n display: flex;\n flex-grow: 1;\n margin-left: 1rem;\n text-align: right; }\n.synchronization-status .update-container .update-text {\n flex: 1 1 auto;\n font-size: 1.2rem;\n line-height: 1.8rem;\n text-align: left; }\n.synchronization-status .update-container .update-text.time {\n font-size: 1.1rem; }\n.synchronization-status .update-container .icon {\n flex: 1 0 auto;\n margin: 0.3rem 0 0 0.6rem;\n width: 1.2rem;\n height: 1.2rem; }\n.synchronization-status .update-container .icon.update {\n -webkit-mask: url('update.svg') no-repeat center;\n mask: url('update.svg') no-repeat center; }\n.synchronization-status .update-container .icon.time {\n -webkit-mask: url('time.svg') no-repeat center;\n mask: url('time.svg') no-repeat center; }\n.theme-dark .synchronization-status .update-container .standard {\n color: #4db1ff; }\n.theme-gray .synchronization-status .update-container .standard {\n color: #42a5f5; }\n.theme-white .synchronization-status .update-container .standard {\n color: #2c95f1; }\n.theme-dark .synchronization-status .update-container .important {\n color: #ff6f00; }\n.theme-gray .synchronization-status .update-container .important {\n color: #ff6f00; }\n.theme-white .synchronization-status .update-container .important {\n color: #ff6f00; }\n.theme-dark .synchronization-status .update-container .critical {\n color: #ff5252; }\n.theme-gray .synchronization-status .update-container .critical {\n color: #ff5252; }\n.theme-white .synchronization-status .update-container .critical {\n color: #ff5252; }\n.theme-dark .synchronization-status .update-container .time {\n color: #ff6f00; }\n.theme-gray .synchronization-status .update-container .time {\n color: #ff6f00; }\n.theme-white .synchronization-status .update-container .time {\n color: #ff6f00; }\n.theme-dark .synchronization-status .update-container .icon.standard {\n background-color: #4db1ff; }\n.theme-gray .synchronization-status .update-container .icon.standard {\n background-color: #42a5f5; }\n.theme-white .synchronization-status .update-container .icon.standard {\n background-color: #2c95f1; }\n.theme-dark .synchronization-status .update-container .icon.important {\n background-color: #ff6f00; }\n.theme-gray .synchronization-status .update-container .icon.important {\n background-color: #ff6f00; }\n.theme-white .synchronization-status .update-container .icon.important {\n background-color: #ff6f00; }\n.theme-dark .synchronization-status .update-container .icon.critical {\n background-color: #ff5252; }\n.theme-gray .synchronization-status .update-container .icon.critical {\n background-color: #ff5252; }\n.theme-white .synchronization-status .update-container .icon.critical {\n background-color: #ff5252; }\n.theme-dark .synchronization-status .update-container .icon.time {\n background-color: #ff6f00; }\n.theme-gray .synchronization-status .update-container .icon.time {\n background-color: #ff6f00; }\n.theme-white .synchronization-status .update-container .icon.time {\n background-color: #ff6f00; }\n@-webkit-keyframes move {\n 0% {\n background-position: 100% -7rem; }\n 100% {\n background-position: 100% 7rem; } }\n@keyframes move {\n 0% {\n background-position: 100% -7rem; }\n 100% {\n background-position: 100% 7rem; } }\n.theme-dark app-wallet {\n color: #e0e0e0; }\n.theme-gray app-wallet {\n color: #e0e0e0; }\n.theme-white app-wallet {\n color: #43454b; }\n.theme-dark app-wallet .header button {\n color: #e0e0e0; }\n.theme-gray app-wallet .header button {\n color: #e0e0e0; }\n.theme-white app-wallet .header button {\n color: #43454b; }\n.theme-dark app-wallet .header button .icon {\n background-color: #4db1ff; }\n.theme-gray app-wallet .header button .icon {\n background-color: #42a5f5; }\n.theme-white app-wallet .header button .icon {\n background-color: #2c95f1; }\napp-wallet .header button:disabled {\n background-color: transparent !important; }\n.theme-dark app-wallet .header button:disabled .icon {\n background-color: #556576; }\n.theme-gray app-wallet .header button:disabled .icon {\n background-color: #565c62; }\n.theme-white app-wallet .header button:disabled .icon {\n background-color: #91baf1; }\n.theme-dark app-wallet .header .alias .icon {\n background-color: #4db1ff; }\n.theme-gray app-wallet .header .alias .icon {\n background-color: #42a5f5; }\n.theme-white app-wallet .header .alias .icon {\n background-color: #2c95f1; }\n.theme-dark app-wallet .address {\n color: #4db1ff; }\n.theme-gray app-wallet .address {\n color: #42a5f5; }\n.theme-white app-wallet .address {\n color: #2c95f1; }\n.theme-dark app-wallet .address .icon {\n background-color: #4db1ff; }\n.theme-gray app-wallet .address .icon {\n background-color: #42a5f5; }\n.theme-white app-wallet .address .icon {\n background-color: #2c95f1; }\n.theme-dark app-wallet .tabs .tabs-header .tab {\n background-color: rgba(23, 31, 39, 0.5); }\n.theme-gray app-wallet .tabs .tabs-header .tab {\n background-color: rgba(28, 30, 33, 0.5); }\n.theme-white app-wallet .tabs .tabs-header .tab {\n background-color: rgba(224, 224, 224, 0.5); }\n.theme-dark app-wallet .tabs .tabs-header .tab .icon {\n background-color: #4db1ff; }\n.theme-gray app-wallet .tabs .tabs-header .tab .icon {\n background-color: #42a5f5; }\n.theme-white app-wallet .tabs .tabs-header .tab .icon {\n background-color: #2c95f1; }\n.theme-dark app-wallet .tabs .tabs-header .tab .indicator {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-wallet .tabs .tabs-header .tab .indicator {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-wallet .tabs .tabs-header .tab .indicator {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-wallet .tabs .tabs-header .tab.active {\n background-color: rgba(43, 54, 68, 0.5); }\n.theme-gray app-wallet .tabs .tabs-header .tab.active {\n background-color: rgba(37, 40, 43, 0.5); }\n.theme-white app-wallet .tabs .tabs-header .tab.active {\n background-color: rgba(255, 255, 255, 0.5); }\n.theme-dark app-wallet .tabs .tabs-header .tab:hover:not(.active):not(.disabled) {\n background-color: rgba(58, 69, 85, 0.5); }\n.theme-gray app-wallet .tabs .tabs-header .tab:hover:not(.active):not(.disabled) {\n background-color: rgba(58, 62, 66, 0.5); }\n.theme-white app-wallet .tabs .tabs-header .tab:hover:not(.active):not(.disabled) {\n background-color: #ffffff; }\n.theme-dark app-wallet .tabs .tabs-content {\n background-color: rgba(43, 54, 68, 0.5); }\n.theme-gray app-wallet .tabs .tabs-content {\n background-color: rgba(37, 40, 43, 0.5); }\n.theme-white app-wallet .tabs .tabs-content {\n background-color: rgba(255, 255, 255, 0.5); }\n.theme-dark app-wallet .tabs .pagination-wrapper {\n background-color: rgba(43, 54, 68, 0.5); }\n.theme-gray app-wallet .tabs .pagination-wrapper {\n background-color: rgba(37, 40, 43, 0.5); }\n.theme-white app-wallet .tabs .pagination-wrapper {\n background-color: rgba(255, 255, 255, 0.5); }\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination {\n border-top: 0.2rem solid #2b3644; }\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination {\n border-top: 0.2rem solid #2f3438; }\n.theme-white app-wallet .tabs .pagination-wrapper .pagination {\n border-top: 0.2rem solid #ebebeb; }\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination button {\n background-color: #2b3644;\n color: #e0e0e0; }\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination button {\n background-color: #2f3438;\n color: #e0e0e0; }\n.theme-white app-wallet .tabs .pagination-wrapper .pagination button {\n background-color: #ebebeb;\n color: #43454b; }\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination button.active {\n background-color: #18202a;\n color: #e0e0e0; }\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination button.active {\n background-color: #25292d;\n color: #e0e0e0; }\n.theme-white app-wallet .tabs .pagination-wrapper .pagination button.active {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination button:hover {\n background-color: #3a485a;\n color: #e0e0e0; }\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination button:hover {\n background-color: #383e43;\n color: #e0e0e0; }\n.theme-white app-wallet .tabs .pagination-wrapper .pagination button:hover {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-send .form-send .send-select {\n color: #e0e0e0; }\n.theme-gray app-send .form-send .send-select {\n color: #e0e0e0; }\n.theme-white app-send .form-send .send-select {\n color: #43454b; }\n.theme-dark app-send .form-send .send-select .icon {\n background-color: #4db1ff; }\n.theme-gray app-send .form-send .send-select .icon {\n background-color: #42a5f5; }\n.theme-white app-send .form-send .send-select .icon {\n background-color: #2c95f1; }\n.theme-dark app-send .form-send .additional-details {\n border: 0.2rem solid #2b3644; }\n.theme-gray app-send .form-send .additional-details {\n border: 0.2rem solid #2f3438; }\n.theme-white app-send .form-send .additional-details {\n border: 0.2rem solid #ebebeb; }\n.theme-dark app-receive .btn-copy-address {\n background-color: #4db1ff; }\n.theme-gray app-receive .btn-copy-address {\n background-color: #42a5f5; }\n.theme-white app-receive .btn-copy-address {\n background-color: #2c95f1; }\n.theme-dark app-history table tbody tr.locked-transaction {\n color: #556576; }\n.theme-gray app-history table tbody tr.locked-transaction {\n color: #565c62; }\n.theme-white app-history table tbody tr.locked-transaction {\n color: #a0a5ab; }\n.theme-dark app-history table tbody tr:nth-child(4n+1) {\n background-color: #18202a; }\n.theme-gray app-history table tbody tr:nth-child(4n+1) {\n background-color: #25292d; }\n.theme-white app-history table tbody tr:nth-child(4n+1) {\n background-color: #ffffff; }\n.theme-dark app-history table tbody tr:nth-child(4n+2) {\n background-color: #18202a; }\n.theme-gray app-history table tbody tr:nth-child(4n+2) {\n background-color: #25292d; }\n.theme-white app-history table tbody tr:nth-child(4n+2) {\n background-color: #ffffff; }\n.theme-dark app-history table tbody tr:nth-child(4n+3) {\n background-color: transparent; }\n.theme-gray app-history table tbody tr:nth-child(4n+3) {\n background-color: transparent; }\n.theme-white app-history table tbody tr:nth-child(4n+3) {\n background-color: transparent; }\n.theme-dark app-history table tbody tr:nth-child(4n+4) {\n background-color: transparent; }\n.theme-gray app-history table tbody tr:nth-child(4n+4) {\n background-color: transparent; }\n.theme-white app-history table tbody tr:nth-child(4n+4) {\n background-color: transparent; }\n.theme-dark app-history table tbody tr .status .confirmation {\n background-color: #343f4a; }\n.theme-gray app-history table tbody tr .status .confirmation {\n background-color: #363a3e; }\n.theme-white app-history table tbody tr .status .confirmation {\n background-color: #dcdcdc; }\n.theme-dark app-history table tbody tr .status .confirmation .fill {\n background-color: #5cda9d; }\n.theme-gray app-history table tbody tr .status .confirmation .fill {\n background-color: #47cf8d; }\n.theme-white app-history table tbody tr .status .confirmation .fill {\n background-color: #46c172; }\n.theme-dark app-history table tbody tr .lock-transaction {\n background-color: #ff6f00; }\n.theme-gray app-history table tbody tr .lock-transaction {\n background-color: #ff6f00; }\n.theme-white app-history table tbody tr .lock-transaction {\n background-color: #ff6f00; }\n.theme-dark app-history table tbody tr .unlock-transaction {\n background-color: #4db1ff; }\n.theme-gray app-history table tbody tr .unlock-transaction {\n background-color: #42a5f5; }\n.theme-white app-history table tbody tr .unlock-transaction {\n background-color: #2c95f1; }\n.theme-dark app-history table tbody tr .status.send .status-transaction {\n background-color: #ff5252; }\n.theme-gray app-history table tbody tr .status.send .status-transaction {\n background-color: #ff5252; }\n.theme-white app-history table tbody tr .status.send .status-transaction {\n background-color: #ff5252; }\n.theme-dark app-history table tbody tr .status.received .status-transaction {\n background-color: #5cda9d; }\n.theme-gray app-history table tbody tr .status.received .status-transaction {\n background-color: #47cf8d; }\n.theme-white app-history table tbody tr .status.received .status-transaction {\n background-color: #46c172; }\n.theme-dark app-contracts .wrap-table .contract .icon.new, .theme-dark app-contracts .wrap-table .contract .icon.alert {\n background-color: #ff5252; }\n.theme-gray app-contracts .wrap-table .contract .icon.new, .theme-gray app-contracts .wrap-table .contract .icon.alert {\n background-color: #ff5252; }\n.theme-white app-contracts .wrap-table .contract .icon.new, .theme-white app-contracts .wrap-table .contract .icon.alert {\n background-color: #ff5252; }\n.theme-dark app-contracts .wrap-table .contract .icon.purchase, .theme-dark app-contracts .wrap-table .contract .icon.sell {\n background-color: #4db1ff; }\n.theme-gray app-contracts .wrap-table .contract .icon.purchase, .theme-gray app-contracts .wrap-table .contract .icon.sell {\n background-color: #42a5f5; }\n.theme-white app-contracts .wrap-table .contract .icon.purchase, .theme-white app-contracts .wrap-table .contract .icon.sell {\n background-color: #2c95f1; }\n.theme-dark app-purchase .form-purchase .purchase-select {\n color: #e0e0e0; }\n.theme-gray app-purchase .form-purchase .purchase-select {\n color: #e0e0e0; }\n.theme-white app-purchase .form-purchase .purchase-select {\n color: #43454b; }\n.theme-dark app-purchase .form-purchase .purchase-select .icon {\n background-color: #4db1ff; }\n.theme-gray app-purchase .form-purchase .purchase-select .icon {\n background-color: #42a5f5; }\n.theme-white app-purchase .form-purchase .purchase-select .icon {\n background-color: #2c95f1; }\n.theme-dark app-purchase .form-purchase .purchase-states {\n color: #4db1ff; }\n.theme-gray app-purchase .form-purchase .purchase-states {\n color: #42a5f5; }\n.theme-white app-purchase .form-purchase .purchase-states {\n color: #2c95f1; }\n.theme-dark app-purchase .form-purchase .additional-details {\n border: 0.2rem solid #2b3644; }\n.theme-gray app-purchase .form-purchase .additional-details {\n border: 0.2rem solid #2f3438; }\n.theme-white app-purchase .form-purchase .additional-details {\n border: 0.2rem solid #ebebeb; }\n.theme-dark app-purchase .progress-bar-container .progress-bar {\n background-color: #343f4a; }\n.theme-gray app-purchase .progress-bar-container .progress-bar {\n background-color: #363a3e; }\n.theme-white app-purchase .progress-bar-container .progress-bar {\n background-color: #dcdcdc; }\n.theme-dark app-purchase .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #5cda9d; }\n.theme-gray app-purchase .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #47cf8d; }\n.theme-white app-purchase .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #46c172; }\napp-messages table tbody tr td:first-child span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n.theme-dark app-messages table tbody tr td:first-child .icon {\n background-color: #ff5252; }\n.theme-gray app-messages table tbody tr td:first-child .icon {\n background-color: #ff5252; }\n.theme-white app-messages table tbody tr td:first-child .icon {\n background-color: #ff5252; }\n.theme-dark app-typing-message .head .interlocutor {\n color: #4db1ff; }\n.theme-gray app-typing-message .head .interlocutor {\n color: #42a5f5; }\n.theme-white app-typing-message .head .interlocutor {\n color: #2c95f1; }\n.theme-dark app-typing-message .messages-content .messages-list div.date {\n color: #556576; }\n.theme-gray app-typing-message .messages-content .messages-list div.date {\n color: #565c62; }\n.theme-white app-typing-message .messages-content .messages-list div.date {\n color: #a0a5ab; }\n.theme-dark app-typing-message .messages-content .messages-list div.my {\n background-color: #2a3544; }\n.theme-gray app-typing-message .messages-content .messages-list div.my {\n background-color: #30363c; }\n.theme-white app-typing-message .messages-content .messages-list div.my {\n background-color: #fff; }\napp-typing-message .messages-content .messages-list div.my:before {\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n left: -1.1rem;\n border: 1.2rem solid transparent; }\n.theme-dark app-typing-message .messages-content .messages-list div.my:before {\n border-top-color: #2a3544; }\n.theme-gray app-typing-message .messages-content .messages-list div.my:before {\n border-top-color: #30363c; }\n.theme-white app-typing-message .messages-content .messages-list div.my:before {\n border-top-color: #fff; }\n.theme-dark app-typing-message .messages-content .messages-list div.buddy {\n background-color: #18202a; }\n.theme-gray app-typing-message .messages-content .messages-list div.buddy {\n background-color: #25292d; }\n.theme-white app-typing-message .messages-content .messages-list div.buddy {\n background-color: #ededed; }\napp-typing-message .messages-content .messages-list div.buddy:after {\n content: \"\";\n display: block;\n position: absolute;\n right: -1.1rem;\n top: 0;\n border: 1.2rem solid transparent; }\n.theme-dark app-typing-message .messages-content .messages-list div.buddy:after {\n border-top-color: #18202a; }\n.theme-gray app-typing-message .messages-content .messages-list div.buddy:after {\n border-top-color: #25292d; }\n.theme-white app-typing-message .messages-content .messages-list div.buddy:after {\n border-top-color: #ededed; }\n.theme-dark app-staking .chart-header .general .label {\n color: #556576; }\n.theme-gray app-staking .chart-header .general .label {\n color: #565c62; }\n.theme-white app-staking .chart-header .general .label {\n color: #a0a5ab; }\n.theme-dark app-staking .chart-header .general .options {\n color: #e0e0e0; }\n.theme-gray app-staking .chart-header .general .options {\n color: #e0e0e0; }\n.theme-white app-staking .chart-header .general .options {\n color: #43454b; }\napp-staking .chart-header .selected {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n flex-grow: 1;\n font-size: 1.6rem; }\n.theme-dark app-staking .chart-options .title {\n color: #556576; }\n.theme-gray app-staking .chart-options .title {\n color: #565c62; }\n.theme-white app-staking .chart-options .title {\n color: #a0a5ab; }\n.theme-dark app-staking .chart-options .options button {\n color: #e0e0e0;\n background-color: #2b3644; }\n.theme-gray app-staking .chart-options .options button {\n color: #e0e0e0;\n background-color: #292d31; }\n.theme-white app-staking .chart-options .options button {\n color: #43454b;\n background-color: #e0e0e0; }\n.theme-dark app-staking .chart-options .options button.active {\n background-color: #556576; }\n.theme-gray app-staking .chart-options .options button.active {\n background-color: #515960; }\n.theme-white app-staking .chart-options .options button.active {\n background-color: #ffffff; }\n.input-block-alias {\n position: relative; }\n.input-block-alias .alias-dropdown {\n position: absolute;\n top: 6.5rem;\n max-height: 10rem;\n overflow: auto;\n width: 100%; }\n.theme-dark .input-block-alias .alias-dropdown {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .input-block-alias .alias-dropdown {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .input-block-alias .alias-dropdown {\n background-color: #e6e6e6;\n color: #43454b; }\n.input-block-alias .alias-dropdown div {\n font-size: 1.4rem;\n padding: 1rem; }\n.theme-dark .input-block-alias .alias-dropdown div:hover {\n background-color: rgba(58, 69, 85, 0.5); }\n.theme-gray .input-block-alias .alias-dropdown div:hover {\n background-color: rgba(58, 62, 66, 0.5); }\n.theme-white .input-block-alias .alias-dropdown div:hover {\n background-color: rgba(240, 240, 240, 0.5); }\napp-contacts, app-add-contacts,\napp-contact-send, app-export-import {\n flex: 1 1 auto;\n padding: 3rem;\n min-width: 85rem; }\napp-contacts .content, app-add-contacts .content,\n app-contact-send .content, app-export-import .content {\n position: relative;\n padding: 3rem;\n min-height: 100%; }\n.theme-dark app-contacts .content, .theme-dark app-add-contacts .content, .theme-dark\n app-contact-send .content, .theme-dark app-export-import .content {\n background-color: rgba(43, 54, 68, 0.5);\n color: #e0e0e0; }\n.theme-gray app-contacts .content, .theme-gray app-add-contacts .content, .theme-gray\n app-contact-send .content, .theme-gray app-export-import .content {\n background-color: rgba(37, 40, 43, 0.5);\n color: #e0e0e0; }\n.theme-white app-contacts .content, .theme-white app-add-contacts .content, .theme-white\n app-contact-send .content, .theme-white app-export-import .content {\n background-color: rgba(255, 255, 255, 0.5);\n color: #43454b; }\napp-contacts .content .head, app-add-contacts .content .head,\n app-contact-send .content .head, app-export-import .content .head {\n position: absolute;\n top: 0;\n left: 0; }\n.theme-dark app-contacts table .alias {\n color: #4db1ff; }\n.theme-gray app-contacts table .alias {\n color: #42a5f5; }\n.theme-white app-contacts table .alias {\n color: #2c95f1; }\n.theme-dark app-contacts table button .icon {\n background-color: #4db1ff; }\n.theme-gray app-contacts table button .icon {\n background-color: #42a5f5; }\n.theme-white app-contacts table button .icon {\n background-color: #2c95f1; }\n.theme-dark app-contacts table button span {\n color: #e0e0e0; }\n.theme-gray app-contacts table button span {\n color: #e0e0e0; }\n.theme-white app-contacts table button span {\n color: #43454b; }\n.theme-dark app-contacts .footer {\n color: #4db1ff; }\n.theme-gray app-contacts .footer {\n color: #42a5f5; }\n.theme-white app-contacts .footer {\n color: #2c95f1; }\n.theme-dark app-contacts .footer .import-btn {\n color: #4db1ff; }\n.theme-gray app-contacts .footer .import-btn {\n color: #42a5f5; }\n.theme-white app-contacts .footer .import-btn {\n color: #2c95f1; }\n.theme-dark app-contacts .footer .import-btn .icon {\n background-color: #4db1ff; }\n.theme-gray app-contacts .footer .import-btn .icon {\n background-color: #42a5f5; }\n.theme-white app-contacts .footer .import-btn .icon {\n background-color: #2c95f1; }\n.theme-dark app-contact-send .wallets-selection button {\n color: #4db1ff; }\n.theme-gray app-contact-send .wallets-selection button {\n color: #42a5f5; }\n.theme-white app-contact-send .wallets-selection button {\n color: #2c95f1; }\n.form-details {\n margin-top: 1.8rem; }\n.form-details .input-block:first-child {\n width: 50%; }\n.form-details .wallet-buttons {\n display: flex;\n align-items: center;\n justify-content: space-between; }\n.form-details .wallet-buttons button {\n margin: 2.9rem 0;\n width: 100%;\n max-width: 15rem; }\n.form-seed label {\n font-size: 1.3rem;\n line-height: 2.4rem; }\n.theme-dark .form-seed label {\n color: #556576; }\n.theme-gray .form-seed label {\n color: #565c62; }\n.theme-white .form-seed label {\n color: #a0a5ab; }\n.form-seed .form-content {\n display: flex;\n justify-content: center;\n padding: 3rem;\n width: 100%; }\n.theme-dark .form-seed .form-content {\n border: 2px solid #2b3644; }\n.theme-gray .form-seed .form-content {\n border: 2px solid #2f3438; }\n.theme-white .form-seed .form-content {\n border: 2px solid #ebebeb; }\n.form-seed .text-coral {\n text-decoration: none; }\n.theme-dark .form-seed .text-coral {\n color: #4db1ff; }\n.theme-gray .form-seed .text-coral {\n color: #42a5f5; }\n.theme-white .form-seed .text-coral {\n color: #2c95f1; }\n.form-seed .seed-phrase-form {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 38rem;\n width: 100%; }\n.form-seed .seed-phrase-form .input-block,\n .form-seed .seed-phrase-form button {\n width: 100%; }\n.form-seed .seed-phrase-form .error-message {\n margin-top: 1rem; }\n.theme-dark .form-seed .seed-phrase-form .error-message {\n color: #ff6f00; }\n.theme-gray .form-seed .seed-phrase-form .error-message {\n color: #ff6f00; }\n.theme-white .form-seed .seed-phrase-form .error-message {\n color: #ff6f00; }\n.form-seed .seed-phrase-form .secured-seed {\n font-size: 1.2rem;\n line-height: 2.4rem;\n text-decoration: none;\n display: flex;\n align-items: center;\n cursor: pointer; }\n.theme-dark .form-seed .seed-phrase-form .secured-seed {\n color: #e0e0e0; }\n.theme-gray .form-seed .seed-phrase-form .secured-seed {\n color: #e0e0e0; }\n.theme-white .form-seed .seed-phrase-form .secured-seed {\n color: #a0a5ab; }\n.form-seed .seed-phrase-form .secured-seed .icon {\n margin-right: 1.2rem; }\n.form-seed .seed-phrase-form button {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-top: 3rem;\n margin-bottom: 2rem; }\n.form-seed .seed-phrase-form button .icon {\n margin-right: 1.2rem; }\n.seed-phrase {\n display: flex;\n flex-direction: column;\n width: 100%;\n background-color: transparent !important; }\n.seed-phrase-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%; }\n.theme-dark .seed-phrase-title {\n color: #556576; }\n.theme-gray .seed-phrase-title {\n color: #565c62; }\n.theme-white .seed-phrase-title {\n color: #a0a5ab; }\n.seed-phrase-title .right-part {\n display: inline-flex;\n align-items: center; }\n.seed-phrase-title .right-part .icon {\n cursor: pointer;\n width: 1.7rem;\n height: 1.7rem; }\n.seed-phrase-title .right-part .icon.copy {\n margin-right: 1.2rem;\n -webkit-mask: url('copy.svg') no-repeat center;\n mask: url('copy.svg') no-repeat center; }\n.theme-dark .seed-phrase-title .right-part .icon.copy {\n background-color: #4db1ff; }\n.theme-gray .seed-phrase-title .right-part .icon.copy {\n background-color: #42a5f5; }\n.theme-white .seed-phrase-title .right-part .icon.copy {\n background-color: #2c95f1; }\n.seed-phrase-title .right-part .icon.copy:hover {\n opacity: 0.75; }\n.seed-phrase-title .right-part .icon.copied {\n margin-right: 1.2rem;\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\n mask: url('complete-testwallet.svg') no-repeat center; }\n.theme-dark .seed-phrase-title .right-part .icon.copied {\n background-color: #4db1ff; }\n.theme-gray .seed-phrase-title .right-part .icon.copied {\n background-color: #42a5f5; }\n.theme-white .seed-phrase-title .right-part .icon.copied {\n background-color: #2c95f1; }\n.seed-phrase-title .right-part .icon.secured, .seed-phrase-title .right-part .icon.unsecured {\n margin-left: 1.2rem; }\n.seed-phrase-title .right-part span {\n font-size: 1.3rem;\n line-height: 2.4rem;\n display: inline-flex;\n align-items: center; }\n.seed-phrase-title .right-part span .icon {\n margin-left: 1.2rem; }\n.seed-phrase-content {\n padding: 1rem 0 1rem;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n margin-bottom: 1rem; }\n.theme-dark .seed-phrase-content {\n border-top: 2px solid #2b3644;\n border-bottom: 2px solid #2b3644; }\n.theme-gray .seed-phrase-content {\n border-top: 2px solid #2f3438;\n border-bottom: 2px solid #2f3438; }\n.theme-white .seed-phrase-content {\n border-top: 2px solid #ebebeb;\n border-bottom: 2px solid #ebebeb; }\n.seed-phrase-content .item {\n display: flex;\n align-items: center;\n padding: 0 2rem;\n width: calc(100% / 7);\n min-height: 35px;\n font-size: 1.3rem; }\n.theme-dark .seed-phrase-content .item {\n color: #e0e0e0; }\n.theme-gray .seed-phrase-content .item {\n color: #e0e0e0; }\n.theme-white .seed-phrase-content .item {\n color: #43454b; }\n.theme-dark .seed-phrase-content .item.dark {\n background-color: #18202a; }\n.theme-gray .seed-phrase-content .item.dark {\n background-color: #292d31; }\n.theme-white .seed-phrase-content .item.dark {\n background-color: #e6e6e6; }\n.seed-phrase-footer {\n text-align: center; }\n.seed-phrase-footer .title {\n font-size: 1.3rem;\n line-height: 2.4rem; }\n.theme-dark .seed-phrase-footer .title {\n color: #e0e0e0; }\n.theme-gray .seed-phrase-footer .title {\n color: #e0e0e0; }\n.theme-white .seed-phrase-footer .title {\n color: #43454b; }\n.icon {\n display: inline-flex;\n width: 1.6rem;\n height: 1.6rem; }\n.icon.secured {\n -webkit-mask: url('secured.svg') no-repeat center;\n mask: url('secured.svg') no-repeat center; }\n.theme-dark .icon.secured {\n background-color: #5cda9d; }\n.theme-gray .icon.secured {\n background-color: #47cf8d; }\n.theme-white .icon.secured {\n background-color: #46c172; }\n.icon.info {\n -webkit-mask: url('info.svg') no-repeat center;\n mask: url('info.svg') no-repeat center; }\n.theme-dark .icon.info {\n background-color: #4db1ff; }\n.theme-gray .icon.info {\n background-color: #42a5f5; }\n.theme-white .icon.info {\n background-color: #2c95f1; }\n.icon.unsecured {\n -webkit-mask: url('unsecured.svg') no-repeat center;\n mask: url('unsecured.svg') no-repeat center; }\n.theme-dark .icon.unsecured {\n background-color: #ff6f00; }\n.theme-gray .icon.unsecured {\n background-color: #ff6f00; }\n.theme-white .icon.unsecured {\n background-color: #ff6f00; }\n.icon.safety {\n -webkit-mask: url('safety.svg') no-repeat center;\n mask: url('safety.svg') no-repeat center; }\n.theme-dark .icon.safety {\n background-color: #111921; }\n.theme-gray .icon.safety {\n background-color: #1a1a1a; }\n.theme-white .icon.safety {\n background-color: #fefefe; }\n.wrap-buttons {\n display: flex; }\n.wrap-buttons .seed-phrase-button {\n margin: 2.8rem 0;\n width: 25%;\n min-width: 1.5rem; }\n.wrap-buttons .copy-button {\n margin: 2.8rem 1rem;\n width: 25%;\n min-width: 1.5rem; }\n.head {\n display: flex;\n align-items: flex-end;\n justify-content: space-between;\n font-size: 1.3rem;\n padding: 0 3rem;\n width: 100%;\n height: 3rem; }\n.theme-dark .head {\n color: #4db1ff; }\n.theme-gray .head {\n color: #42a5f5; }\n.theme-white .head {\n color: #2c95f1; }\n.head .breadcrumbs > span:not(:last-child), .head .breadcrumbs a:not(:last-child) {\n position: relative;\n cursor: pointer;\n margin-right: 20px;\n outline-style: none; }\n.head .breadcrumbs > span:not(:last-child):after, .head .breadcrumbs a:not(:last-child):after {\n content: \"\";\n display: block;\n position: absolute;\n top: 0.5rem;\n right: -1.5rem;\n width: 0.9rem;\n height: 0.9rem;\n -webkit-mask: url('arrow-right.svg') no-repeat center;\n mask: url('arrow-right.svg') no-repeat center;\n -webkit-mask-size: cover;\n mask-size: cover; }\n.theme-dark .head .breadcrumbs > span:not(:last-child):after, .theme-dark .head .breadcrumbs a:not(:last-child):after {\n background-color: #4db1ff; }\n.theme-gray .head .breadcrumbs > span:not(:last-child):after, .theme-gray .head .breadcrumbs a:not(:last-child):after {\n background-color: #42a5f5; }\n.theme-white .head .breadcrumbs > span:not(:last-child):after, .theme-white .head .breadcrumbs a:not(:last-child):after {\n background-color: #2c95f1; }\n.head .back-btn {\n display: flex;\n align-items: center;\n background-color: transparent;\n color: #4db1ff;\n font-size: inherit;\n font-weight: 400;\n line-height: 1.3rem;\n padding: 0;\n height: auto; }\n.head .back-btn .icon {\n margin-right: 0.7rem;\n -webkit-mask: url('back.svg') no-repeat center;\n mask: url('back.svg') no-repeat center;\n width: 0.9rem;\n height: 0.9rem; }\n.theme-dark .head .back-btn .icon {\n background-color: #4db1ff; }\n.theme-gray .head .back-btn .icon {\n background-color: #42a5f5; }\n.theme-white .head .back-btn .icon {\n background-color: #2c95f1; }\n.scrolled-content::-webkit-scrollbar {\n background-color: transparent;\n cursor: default;\n width: 1rem;\n height: 1rem; }\n.scrolled-content::-webkit-scrollbar-track {\n background: transparent; }\n.scrolled-content::-webkit-scrollbar-thumb {\n background-color: #556576;\n background-clip: padding-box;\n border: 0.25rem solid transparent;\n border-radius: 0.5rem; }\n.scrolled-content::-webkit-scrollbar-thumb:hover {\n background-color: #556576; }\ntable {\n font-size: 1.3rem;\n width: 100%; }\ntable thead {\n text-align: left; }\n.theme-dark table thead {\n color: #556576; }\n.theme-gray table thead {\n color: #565c62; }\n.theme-white table thead {\n color: #a0a5ab; }\ntable thead tr {\n height: 4rem; }\ntable thead tr th {\n padding: 1rem;\n vertical-align: bottom; }\ntable thead tr th:first-child {\n padding-left: 3rem; }\ntable thead tr th:last-child {\n padding-right: 3rem; }\ntable tbody {\n text-align: left; }\n.theme-dark table tbody {\n color: #e0e0e0; }\n.theme-gray table tbody {\n color: #e0e0e0; }\n.theme-white table tbody {\n color: #43454b; }\ntable tbody tr {\n height: 3.5rem; }\n.theme-dark table tbody tr:nth-child(odd) {\n background-color: #18202a; }\n.theme-gray table tbody tr:nth-child(odd) {\n background-color: #25292d; }\n.theme-white table tbody tr:nth-child(odd) {\n background-color: #ffffff; }\ntable tbody tr td {\n line-height: 1.7rem;\n padding: 0 1rem;\n vertical-align: middle;\n white-space: nowrap;\n max-width: 20rem; }\ntable tbody tr td:first-child {\n padding-left: 3rem; }\ntable tbody tr td:last-child {\n padding-right: 3rem; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-Light.ttf');\n font-weight: 300; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-Regular.ttf');\n font-weight: 400; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-SemiBold.ttf');\n font-weight: 600; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-Bold.ttf');\n font-weight: 700; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-ExtraBold.ttf');\n font-weight: 800; }\nhtml {\n font-family: OpenSans, sans-serif;\n font-size: 10px; }\nbody {\n font-family: OpenSans, sans-serif;\n font-size: 1.6rem;\n width: 100vw;\n height: 100vh; }\nbody.theme-dark {\n background: #131921 url('background-dark.png') no-repeat center;\n background-size: cover; }\nbody.theme-gray {\n background: #101417 url('background-gray.png') no-repeat center;\n background-size: cover; }\nbody.theme-white {\n background: #eeeeee url('background-white.png') no-repeat center;\n background-size: cover; }\nbody app-root {\n display: flex;\n width: 100%;\n height: 100%; }\n.update-tooltip .tooltip-inner .icon {\n -webkit-mask: url('update-alert.svg') no-repeat center;\n mask: url('update-alert.svg') no-repeat center; }\n\r\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxiYXNlXFxfbWl4aW5zLnNjc3MiLCJzcmMvc3R5bGVzLnNjc3MiLCJub2RlX21vZHVsZXMvQG5nLXNlbGVjdC9uZy1zZWxlY3QvdGhlbWVzL2RlZmF1bHQudGhlbWUuY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGJhc2VcXF9udWxsLnNjc3MiLCJzcmMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFzc2V0c1xcc2Nzc1xcYmFzZVxcX2Jhc2Uuc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxiYXNlXFxfdGhlbWUuc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxsYXlvdXRcXF9tYWluLnNjc3MiLCJzcmMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFzc2V0c1xcc2Nzc1xcbGF5b3V0XFxfc2lkZWJhci5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGxheW91dFxcX3N0YXR1cy5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGxheW91dFxcX3dhbGxldC5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGxheW91dFxcX2NvbnRhY3Quc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxsYXlvdXRcXF9zZWVkLXBocmFzZS5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXG1vZHVsZXNcXF9oZWFkLnNjc3MiLCJzcmMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFzc2V0c1xcc2Nzc1xcbW9kdWxlc1xcX3Njcm9sbC5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXG1vZHVsZXNcXF90YWJsZS5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxzdHlsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4RUE7O0NDNUVDO0FDRkQsaURBQWlELGVBQWUsQ0FBQyxpQ0FBaUM7QUFBQyx1REFBdUQsZUFBZTtBQUFDLDJEQUEyRCxRQUFRLENBQUMseUNBQXlDLENBQUMsc0JBQXNCO0FBQUMsaUVBQWlFLHlDQUF5QztBQUFDLGtFQUFrRSw0QkFBNEIsQ0FBQywyQkFBMkI7QUFBQywrREFBK0QseUJBQXlCLENBQUMsd0JBQXdCO0FBQUMseUVBQXlF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QVk7RUFDWixpQ0FBaUM7RUFDakMsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsZUFBZTtFQUNmLGNBQWMsRUFBQTtBSitEWjtJSXpERSx5QkNSb0M7SURTcEMsY0NsQjJCLEVBQUE7QUwwRTdCO0lJekRFLHlCQ29Eb0M7SURuRHBDLGNDMEMyQixFQUFBO0FMYzdCO0lJekRFLHlCQ2dIb0M7SUQvR3BDLGNDc0cyQixFQUFBO0FMOUM3QjtJSWxESSx5QkNkNkIsRUFBQTtBTGdFakM7SUlsREkseUJDOEM2QixFQUFBO0FMSWpDO0lJbERJLHlCQzBHNkIsRUFBQTtBTHhEakM7SUkzQ0kseUJDcEI2QixFQUFBO0FMK0RqQztJSTNDSSx5QkN3QzZCLEVBQUE7QUxHakM7SUkzQ0kseUJDb0c2QixFQUFBO0FMekRqQztJSW5DRSx5QkNqQ2dDO0lEa0NoQyxjQ3hDMkIsRUFBQTtBTDBFN0I7SUluQ0UseUJDMkJnQztJRDFCaEMsY0NvQjJCLEVBQUE7QUxjN0I7SUluQ0UseUJDdUZnQztJRHRGaEMsY0NnRjJCLEVBQUE7QUw5QzdCO0lJNUJJLHlCQ3ZDeUIsRUFBQTtBTG1FN0I7SUk1QkkseUJDcUJ5QixFQUFBO0FMTzdCO0lJNUJJLHlCQ2lGeUIsRUFBQTtBTHJEN0I7SUlyQkkseUJDN0N5QixFQUFBO0FMa0U3QjtJSXJCSSx5QkNleUIsRUFBQTtBTE03QjtJSXJCSSx5QkMyRXlCLEVBQUE7QUx0RDdCO0lJYkUseUJDakRpQztJRGtEakMsY0M5RDJCLEVBQUE7QUwwRTdCO0lJYkUseUJDV2lDO0lEVmpDLGNDRjJCLEVBQUE7QUxjN0I7SUliRSx5QkN1RWlDO0lEdEVqQyxjQzBEMkIsRUFBQTtBTDlDN0I7SUlOSSx5QkN2RDBCLEVBQUE7QUw2RDlCO0lJTkkseUJDSzBCLEVBQUE7QUxDOUI7SUlOSSx5QkNpRTBCLEVBQUE7QUwzRDlCO0lJQ0kseUJDN0QwQixFQUFBO0FMNEQ5QjtJSUNJLHlCQ0QwQixFQUFBO0FMQTlCO0lJQ0kseUJDMkQwQixFQUFBO0FMNUQ5QjtJSVNFLHlCQ3BFcUM7SURx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d0V0QjtNSW1QSSw0QkMvUGtCLEVBQUE7QUxZdEI7TUltUEksNEJDbk1rQixFQUFBO0FENkoxQjtFQThDTSwwQ0FBMEQsRUFBQTtBSjNQNUQ7SUk4UEkseUJDdFVrQixFQUFBO0FMd0V0QjtJSThQSSx5QkMxUWtCLEVBQUE7QUxZdEI7SUk4UEkseUJDOU1rQixFQUFBO0FMaER0QjtFSXVRQSx5QkMzVDhCLEVBQUE7QUxvRDlCO0VJdVFBLHlCQy9QOEIsRUFBQTtBTFI5QjtFSXVRQSx5QkNuTThCLEVBQUE7QUxwRTlCO0VJK1FJLHlCQ3ZWa0IsRUFBQTtBTHdFdEI7RUkrUUkseUJDM1JrQixFQUFBO0FMWXRCO0VJK1FJLHlCQy9Oa0IsRUFBQTtBTGhEdEI7RUlzUkkseUJDL1ZzQixFQUFBO0FMeUUxQjtFSXNSSSx5QkNuU3NCLEVBQUE7QUxhMUI7RUlzUkkseUJDdk9zQixFQUFBO0FENk85QjtFQUNFLGtCQUFrQixFQUFBO0FKN1JoQjtJSWdTQSxtQkNoVStCO0lEaVUvQix1Q0M1VDBDO0lENlQxQyxjQzdXc0IsRUFBQTtBTDJFdEI7SUlnU0EsbUJDcFErQjtJRHFRL0IsdUNDaFEwQztJRGlRMUMsY0NqVHNCLEVBQUE7QUxldEI7SUlnU0EsbUJDeE0rQjtJRHlNL0IsNkNDcE1nRDtJRHFNaEQsY0NyUHNCLEVBQUE7QUQrTzFCO0lBVUksaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixxQkFBcUIsRUFBQTtBQVp6QjtJQWdCSSxpQkFBaUIsRUFBQTtBQWhCckI7TUFtQk0sV0FBVztNQUNYLGtCQUFrQjtNQUNsQixhQUFhO01BQ2Isd0JBQXdCO01BQ3hCLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTtBSnBUckI7UUl1VEkseURBQWdGLEVBQUE7QUp2VHBGO1FJdVRJLHlEQUFnRixFQUFBO0FKdlRwRjtRSXVUSSx5REFBZ0YsRUFBQTtBQTNCeEY7SUFpQ0ksaUJBQWlCLEVBQUE7QUFqQ3JCO01Bb0NNLFdBQVc7TUFDWCxrQkFBa0I7TUFDbEIsYUFBYTtNQUNiLFlBQVk7TUFDWixvQkFBb0I7TUFDcEIsbUJB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cEI7RUFHSSxjQUFjO0VBQ2Qsc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixpQkFBaUIsRUFBQTtBQUlyQjtFQUNFLGVBQWUsRUFBQTtBSnhnQmI7SUkyZ0JBLG1CQzNpQitCO0lENGlCL0IsdUNDdmlCMEM7SUR3aUIxQyxjQ3hsQnNCLEVBQUE7QUwyRXRCO0lJMmdCQSxtQkMvZStCO0lEZ2YvQix1Q0MzZTBDO0lENGUxQyxjQzVoQnNCLEVBQUE7QUxldEI7SUkyZ0JBLG1CQ25iK0I7SURvYi9CLDZDQy9hZ0Q7SURnYmhELGNDaGVzQixFQUFBO0FMN0N0QjtJSW1oQkUsbUJDampCc0M7SURrakJ0QyxjQ3JrQjJCLEVBQUE7QUxpRDdCO0lJbWhCRSxtQkNyZnNDO0lEc2Z0QyxjQ3pnQjJCLEVBQUE7QUxYN0I7SUltaEJFLG1CQ3pic0M7SUQwYnRDLGNDN2MyQixFQUFBO0FMdkU3QjtJSTRoQk0scURDMWpCa0MsRUFBQTtBTDhCeEM7SUk0aEJNLHFEQzlma0MsRUFBQTtBTDlCeEM7SUk0aEJNLHFEQ2xja0MsRUFBQTtBTDFGeEM7SUlzaUJNLHFEQUFxSCxFQUFBO0FKdGlCM0g7SUlzaUJNLHFEQUFxSCxFQUFBO0FKdGlCM0g7SUlzaUJNLHFEQUFxSCxFQUFBO0FBL0IvSDtJQXNDSSxlQUFlLEVBQUE7QUo3aUJmO01JZ2pCRSxtQkM1a0JxQztNRDZrQnJDLGNDbG1CMkIsRUFBQTtBTGlEN0I7TUlnakJFLG1CQ2hoQnFDO01EaWhCckMsY0N0aUIyQixFQUFBO0FMWDdCO01JZ2pCRSxtQkNwZHFDO01EcWRyQyxjQzFlMkIsRUFBQTtBRGdjakM7TUE4Q00sYUFBYTtNQUNiLHNCQUFzQjtNQUN0QixtQkFBbUIsRUFBQTtBSnZqQnJCO01JK2pCTSxxREMzbEJpQyxFQUFBO0FMNEJ2QztNSStqQk0scURDL2hCaUMsRUFBQTtBTGhDdkM7TUkrakJNLHFEQ25laUMsRUFBQTtBTDVGdkM7TUl5a0JNLHFEQUFtSCxFQUFBO0FKemtCekg7TUl5a0JNLHFEQUFtSCxFQUFBO0FKemtCekg7TUl5a0JNLHFEQUFtSCxFQUFB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SW12QkkseUJDMXlCeUIsRUFBQTtBTHVEN0I7TUltdkJJLHlCQzl1QnlCLEVBQUE7QUxMN0I7TUltdkJJLHlCQ2xyQnlCLEVBQUE7QUR3b0JqQztNQWdEVSxpQkFBaUI7TUFDakIsYUFBYSxFQUFBO0FKMXZCbkI7UUk2dkJRLHlCQ3B6QnFCO1FEcXpCckIsY0N6MEJjLEVBQUE7QUwyRXRCO1FJNnZCUSx5QkN4dkJxQjtRRHl2QnJCLGNDN3dCYyxFQUFBO0FMZXRCO1FJNnZCUSx5QkM1ckJxQjtRRDZyQnJCLGNDanRCYyxFQUFBO0FMN0N0QjtRSW93QlUsdUNDMXpCNkI7UUQyekI3QixjQ2gxQlksRUFBQTtBTDJFdEI7UUlvd0JVLHVDQzl2QjZCO1FEK3ZCN0IsY0NweEJZLEVBQUE7QUxldEI7UUlvd0JVLDBDQ2xzQmdDO1FEbXNCaEMsY0N4dEJZLEVBQUE7QUw3Q3RCO1FJNHdCVSx1Q0NqMEJnQztRRGswQmhDLGNDeDFCWSxFQUFBO0FMMkV0QjtRSTR3QlUsdUNDcndCZ0M7UURzd0JoQyxjQzV4QlksRUFBQTtBTGV0QjtRSTR3QlUsMENDenNCbUM7UUQwc0JuQyxjQ2h1QlksRUFBQTtBRDRwQjFCO01BMEVVLDZCQUE2QjtNQUM3QixlQUFlO01BQ2YsV0FBVztNQUNYLFlBQVksRUFBQTtBQTdFdEI7TUFpRlUsdUJBQXVCLEVBQUE7QUFqRmpDO01BcUZVLHlCQUF5QjtNQUN6Qiw0QkFBNEI7TUFDNUIsaUNBQWlDO01BQ2pDLHFCQUFxQixFQUFBO0FBeEYvQjtNQTRGVSx5QkFBeUIsRUFBQTtBSnJ5Qi9CO0VJaXpCRSxzQ0MzMEIwRDtFRDQwQjFELGNDNzNCb0IsRUFBQTtBTDJFdEI7RUlpekJFLHNDQy93QjBEO0VEZ3hCMUQsY0NqMEJvQixFQUFBO0FMZXRCO0VJaXpCRSx1Q0NudEIyRDtFRG90QjNELGNDcndCb0IsRUFBQTtBTDdDdEI7RUkwekJNLHlCQy8zQmUsRUFBQTtBTHFFckI7RUkwekJNLHlCQ24wQmUsRUFBQTtBTFNyQjtFSTB6Qk0seUJDdndCZSxFQUFBO0FMbkRyQjtFSWkwQk0seUJDeDRCaUIsRUFBQTtBTHVFdkI7RUlpMEJNLHlCQzUwQmlCLEVBQUE7QUxXdkI7RUlpMEJNLHlCQ2h4QmlCLEVBQUE7QUxqRHZCO0VJdzBCTSx5QkNoNUJnQixFQUFBO0FMd0V0QjtFSXcwQk0seUJDcDFCZ0IsRUFBQTtBTFl0QjtFSXcwQk0seUJDeHhCZ0IsRUFBQTtBTGhEdEI7RUlnMUJJLHlCQ3g1QmtCO0VEeTVCbEIsY0MzNUJ5QixFQUFBO0FMMEU3QjtFSWcxQkkseUJDNTFCa0I7RUQ2MUJsQixjQy8xQnlCLEVBQUE7QUxjN0I7RUlnMUJJLHlCQ2h5QmtCO0VEaXlCbEIsY0NueUJ5QixFQUFBO0FMOUM3QjtFSTAxQk0seUJDbjNCbUIsRUFBQTtBTHlCekI7RUkwMUJNLHlCQ3Z6Qm1CLEVBQUE7QUxuQ3pCO0VJMDFCTSx5QkMzdkJtQixFQUFBO0FML0Z6QjtFSXMyQkUsZ0NDOTVCbUMsRUFBQTtBTHdEckM7RUlzMkJFLGdDQ2wyQm1DLEVBQUE7QUxKckM7RUlzMkJFLGdDQ3R5Qm1DLEVBQUE7QUxoRXJDO0VJZzNCUSxjQ3o3QmtCLEVBQUE7QUx5RTFCO0VJZzNCUSxjQzczQmtCLEVBQUE7QUxhMUI7RUlnM0JRLGNDajBCa0IsRUFBQTtBTC9DMUI7RUl1M0JRLGNDbDhCYyxFQUFBO0FMMkV0QjtFSXUzQlEsY0N0NEJjLEVBQUE7QUxldEI7RUl1M0JRLGNDMTBCYyxFQUFBO0FMN0N0QjtFSTgzQlEsY0N0OEJjLEVBQUE7QUx3RXRCO0VJODNCUSxjQzE0QmMsRUFBQTtBTFl0QjtFSTgzQlEsY0M5MEJjLEVBQUE7QUxoRHRCO0VJMjRCRSxjQ3Q5Qm9CLEVBQUE7QUwyRXRCO0VJMjRCRSxjQzE1Qm9CLEVBQUE7QUxldEI7RUkyNEJFLGNDOTFCb0IsRUFBQTtBTDdDdEI7RUlpNUJJLHlCQ3I3QitCLEVBQUE7QUxvQ25DO0VJaTVCSSx5QkN6M0IrQixFQUFBO0FMeEJuQztFSWk1QkkseUJDN3pCK0IsRUFBQTtBTHBGbkM7RUl1NUJNLHlCQzE3QmlDLEVBQUE7QUxtQ3ZDO0VJdTVCTSx5QkM5M0JpQyxFQUFBO0FMekJ2QztFSXU1Qk0seUJDbDBCaUMsRUFBQTtBTHJGdkM7RUltNkJFLHNDQzc3QjBEO0VEODdCMUQsY0MvK0JvQixFQUFBO0FMMkV0QjtFSW02QkUsc0NDajRCMEQ7RURrNEIxRCxjQ243Qm9CLEVBQUE7QUxldEI7RUltNkJFLHVDQ3IwQjJEO0VEczBCM0QsY0N2M0JvQixFQUFBO0FMN0N0QjtFSTY2QkUsc0NDdjhCMEQ7RUR3OEIxRCxjQ3ovQm9CLEVBQUE7QUwyRXRCO0VJNjZCRSxzQ0MzNEIwRDtFRDQ0QjFELGNDNzdCb0IsRUFBQTtBTGV0QjtFSTY2QkUsdUNDLzBCMkQ7RURnMUIzRCxjQ2o0Qm9CLEVBQUE7QUw3Q3RCO0VJbzdCSSxtQ0M1K0JpQyxFQUFBO0FMd0RyQztFSW83QkksbUNDaDdCaUMsRUFBQTtBTEpyQztFSW83QkksbUNDcDNCaUMsRUFBQTtBTGhFckM7RUk0N0JJLHlCQ3BnQ2tCO0VEcWdDbEIsY0N2Z0N5QixFQUFBO0FMMEU3QjtFSTQ3QkkseUJDeDhCa0I7RUR5OEJsQixjQzM4QnlCLEVBQUE7QUxjN0I7RUk0N0JJLHlCQzU0QmtCO0VENjRCbEIsY0MvNEJ5QixFQUFBO0FDaklqQztFQUNFLGNBQWM7RUFDZCxhQUFhO0VBQ2IsZ0JBQWdCLEVBQUE7QUFIbEI7SUFNSSxrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLGdCQUFnQixFQUFBO0FOMkVoQjtNTXhFRSx1Q0RKMkM7TUNLM0MsY0RKb0IsRUFBQTtBTDJFdEI7TU14RUUsdUNEd0QyQztNQ3ZEM0MsY0R3RG9CLEVBQUE7QUxldEI7TU14RUUsMENEb0g4QztNQ25IOUMsY0RvSG9CLEVBQUE7QUNoSTFCO01BZ0JNLGtCQUFrQjtNQUNsQixNQUFNO01BQ04sT0FBTyxFQUFBO0FOaUVUO0VNbkRNLGNEckJnQixFQUFBO0FMd0V0QjtFTW5ETSxjRHVDZ0IsRUFBQTtBTFl0QjtFTW5ETSxjRG1HZ0IsRUFBQTtBTGhEdEI7RU03Q1EseUJEM0JjLEVBQUE7QUx3RXRCO0VNN0NRLHlCRGlDYyxFQUFBO0FMWXRCO0VNN0NRLHlCRDZGYyxFQUFBO0FMaER0QjtFTWhDRSx5QkR2QjJCO0VDd0IzQixjRDVDb0IsRUFBQTtBTDJFdEI7RU1oQ0UseUJEcUMyQjtFQ3BDM0IsY0RnQm9CLEVBQUE7QUxldEI7RU1oQ0UseUJEaUcyQjtFQ2hHM0IsY0Q0RW9CLEVBQUE7QUw3Q3RCO0VNckJFLHlCRGxDMkIsRUFBQTtBTHVEN0I7RU1yQkUseUJEMEIyQixFQUFBO0FMTDdCO0VNckJFLHlCRHNGMkIsRUFBQTtBQ2pGakM7RUFHSSxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsc0JBQXNCLEVBQUE7QU5TdEI7SU1KSSxjRHJFc0IsRUFBQTtBTHlFMUI7SU1KSSxjRFRzQixFQUFBO0FMYTFCO0lNSkksY0RtRHNCLEVBQUE7QUwvQzFCO0lNS00sdUNEOUMyQyxFQUFBO0FMeUNqRDtJTUtNLHVDRGMyQyxFQUFBO0FMbkJqRDtJTUtNLDBDRDBFOEMsRUFBQTtBTC9FcEQ7SU1XUSxjRHBGa0IsRUFBQTtBTHlFMUI7SU1XUSxjRHhCa0IsRUFBQTtBTGExQjtJTVdRLGNEb0NrQixFQUFBO0FML0MxQjtJTWtCUSx5QkQxRmMsRUFBQTtBTHdFdEI7SU1rQlEseUJEOUJjLEVBQUE7QUxZdEI7SU1rQlEseUJEOEJjLEVBQUE7QUxoRHRCO0lNd0JVLGNEaEdZLEVBQUE7QUx3RXRCO0lNd0JVLGNEcENZLEVBQUE7QUxZdEI7SU13QlUsY0R3QlksRUFBQTtBQ2YxQjtFQUNFLGtCQUFrQixFQUFBO0FObENoQjtFT2hGQSx5QkZBMkMsRUFBQTtBTGdGM0M7RU9oRkEseUJGNEQyQyxFQUFBO0FMb0IzQztFT2hGQSx1QkZ3SDhDLEVBQUE7QUx4QzlDO0VPdEVNLGNGTGdCLEVBQUE7QUwyRXRCO0VPdEVNLGNGdURnQixFQUFBO0FMZXRCO0VPdEVNLGNGbUhnQixFQUFBO0FMN0N0QjtFTy9ETSxjRlRnQixFQUFBO0FMd0V0QjtFTy9ETSxjRm1EZ0IsRUFBQTtBTFl0QjtFTy9ETSxjRitHZ0IsRUFBQTtBTGhEdEI7RU9yRE0sNkJBQTZCO0VBQzdCLGNGdkJnQixFQUFBO0FMMkV0QjtFT3JETSw2QkFBNkI7RUFDN0IsY0ZxQ2dCLEVBQUE7QUxldEI7RU9yRE0sNkJBQTZCO0VBQzdCLGNGaUdnQixFQUFBO0FMN0N0QjtFTzlDUSx5QkYxQmMsRUFBQTtBTHdFdEI7RU85Q1EseUJGa0NjLEVBQUE7QUxZdEI7RU85Q1EseUJGOEZjLEVBQUE7QUxoRHRCO0VPckNVLGNGcENnQixFQUFBO0FMeUUxQjtFT3JDVSxjRndCZ0IsRUFBQTtBTGExQjtFT3JDVSxjRm9GZ0IsRUFBQTtBTC9DMUI7RU85QlUseUJGMUNZLEVBQUE7QUx3RXRCO0VPOUJVLHlCRmtCWSxFQUFBO0FMWXRCO0VPOUJVLHlCRjhFWSxFQUFBO0FMaER0QjtFT3ZCVSx5QkY3Q3dCO0VFOEN4QixjRnBEbUIsRUFBQTtBTDBFN0I7RU92QlUseUJGZXdCO0VFZHhCLGNGUW1CLEVBQUE7QUxjN0I7RU92QlUseUJGMkV3QjtFRTFFeEIsY0ZvRW1CLEVBQUE7QUw5QzdCO0VPYlkseUJGdkJ1QixFQUFBO0FMb0NuQztFT2JZLHlCRnFDdUIsRUFBQTtBTHhCbkM7RU9iWSx5QkZpR3VCLEVBQUE7QUxwRm5DO0VPUGMseUJGakVRLEVBQUE7QUx3RXRCO0VPUGMseUJGTFEsRUFBQTtBTFl0QjtFT1BjLHlCRnVEUSxFQUFBO0FMaER0QjtFT0VVLGNGM0VnQixFQUFBO0FMeUUxQjtFT0VVLGNGZmdCLEVBQUE7QUxhMUI7RU9FVSxjRjZDZ0IsRUFBQTtBTC9DMUI7RU9VUSx1Q0Y3RHFDO0VFOERyQyxjRjVEcUIsRUFBQTtBTGlEN0I7RU9VUSx1Q0ZEcUM7RUVFckMsY0ZBcUIsRUFBQTtBTFg3QjtFT1VRLHlCRjJEcUM7RUUxRHJDLGNGNERxQixFQUFBO0FMdkU3QjtFT21CWSxjRmhFcUIsRUFBQTtBTDZDakM7RU9tQlksY0ZKcUIsRUFBQTtBTGZqQztFT21CWSxjRndEcUIsRUFBQTtBTDNFakM7RU8wQlkseUJGcEU0QjtFRXFFNUIsY0Z2RXNCLEVBQUE7QUw0Q2xDO0VPMEJZLHlCRlI0QjtFRVM1QixjRlhzQixFQUFBO0FMaEJsQztFTzBCWSx5QkZvRDRCO0VFbkQ1QixjRmlEc0IsRUFBQTtBTDVFbEM7RU9rQ1kseUJGN0V5QjtFRThFekIsY0Y5R1UsRUFBQTtBTDJFdEI7RU9rQ1kseUJGakJ5QjtFRWtCekIsY0ZsRFUsRUFBQTtBTGV0QjtFT2tDWSx5QkYyQ3lCO0VFMUN6QixjRlVVLEVBQUE7QUw3Q3RCO0VPMENZLGNGdkZxQixFQUFBO0FMNkNqQztFTzBDWSxjRjNCcUIsRUFBQTtBTGZqQztFTzBDWSxjRmlDcUIsRUFBQTtBTDNFakM7RU9tRFEsdUNGckcwQyxFQUFBO0FMa0RsRDtFT21EUSx1Q0Z6QzBDLEVBQUE7QUxWbEQ7RU9tRFEsMENGbUI2QyxFQUFBO0FMdEVyRDtFTzRESSxvRUFBMkYsRUFBQTtBUDVEL0Y7RU80REksb0VBQTJGLEVBQUE7QVA1RC9GO0VPNERJLGtFQUEyRixFQUFBO0FQNUQvRjtFT29FRSxtQ0ZuSnlCLEVBQUE7QUwrRTNCO0VPb0VFLG1DRnZGeUIsRUFBQTtBTG1CM0I7RU9vRUUsbUNGM0J5QixFQUFBO0FMekMzQjtFTzRFTSxjRnZKZ0IsRUFBQTtBTDJFdEI7RU80RU0sY0YzRmdCLEVBQUE7QUxldEI7RU80RU0sY0YvQmdCLEVBQUE7QUw3Q3RCO0VPa0ZRLHlCRjFKYyxFQUFBO0FMd0V0QjtFT2tGUSx5QkY5RmMsRUFBQTtBTFl0QjtFT2tGUSx5QkZsQ2MsRUFBQTtBTGhEdEI7RU80RlEsa0RBQTBEO0VBQzFELHlCQUE2QyxFQUFBO0FQN0ZyRDtFTzRGUSxrREFBMEQ7RUFDMUQseUJBQTZDLEVBQUE7QVA3RnJEO0VPNEZRLG9DQUEwRDtFQUMxRCx5QkFBNkMsRUFBQTtBUDdGckQ7RU9tR1Usb0NBQW1FLEVBQUE7QVBuRzdFO0VPbUdVLG9DQUFtRSxFQUFBO0FQbkc3RTtFT21HVSxvQ0FBbUUsRUFBQTtBQ3RMakY7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLDJCQUEyQjtFQUMzQixjQUFjO0VBQ2QsaUJBQWlCLEVBQUE7QVI4RWY7SVE1RUEsY0hHMEIsRUFBQTtBTHlFMUI7SVE1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LHlCSG5NZSxFQUFBO0FMcUVyQjtNUThITSx5Qkh2SWUsRUFBQTtBTFNyQjtNUThITSx5QkgzRWUsRUFBQTtBTG5EckI7TVFxSU0seUJIM01rQixFQUFBO0FMc0V4QjtNUXFJTSx5QkgvSWtCLEVBQUE7QUxVeEI7TVFxSU0seUJIbkZrQixFQUFBO0FHMkY1QjtFQUNFO0lBQ0UsK0JBQStCLEVBQUE7RUFFakM7SUFDRSw4QkFBOEIsRUFBQSxFQUFBO0FBTGxDO0VBQ0U7SUFDRSwrQkFBK0IsRUFBQTtFQUVqQztJQUNFLDhCQUE4QixFQUFBLEVBQUE7QVJsSjlCO0VTaEZBLGNKS3NCLEVBQUE7QUwyRXRCO0VTaEZBLGNKaUVzQixFQUFBO0FMZXRCO0VTaEZBLGNKNkhzQixFQUFBO0FMN0N0QjtFU3hFSSxjSkhrQixFQUFBO0FMMkV0QjtFU3hFSSxjSnlEa0IsRUFBQTtBTGV0QjtFU3hFSSxjSnFIa0IsRUFBQTtBTDdDdEI7RVNsRU0seUJKTmdCLEVBQUE7QUx3RXRCO0VTbEVNLHlCSnNEZ0IsRUFBQTtBTFl0QjtFU2xFTSx5QkprSGdCLEVBQUE7QUluSTFCO0VBcUJRLHdDQUF3QyxFQUFBO0FUOEQ1QztJUzNEUSx5QkpjeUIsRUFBQTtBTDZDakM7SVMzRFEseUJKMEV5QixFQUFBO0FMZmpDO0lTM0RRLHlCSnNJeUIsRUFBQTtBTDNFakM7RVNoRE0seUJKeEJnQixFQUFBO0FMd0V0QjtFU2hETSx5QkpvQ2dCLEVBQUE7QUxZdEI7RVNoRE0seUJKZ0dnQixFQUFBO0FMaER0QjtFU3ZDRSxjSmpDb0IsRUFBQTtBTHdFdEI7RVN2Q0UsY0oyQm9CLEVBQUE7QUxZdEI7RVN2Q0UsY0p1Rm9CLEVBQUE7QUxoRHRCO0VTakNJLHlCSnZDa0IsRUFBQTtBTHdFdEI7RVNqQ0kseUJKcUJrQixFQUFBO0FMWXRCO0VTakNJLHlCSmlGa0IsRUFBQTtBTGhEdEI7RVNyQk0sdUNKcEIyQyxFQUFBO0FMeUNqRDtFU3JCTSx1Q0p3QzJDLEVBQUE7QUxuQmpEO0VTckJNLDBDSm9HOEMsRUFBQTtBTC9FcEQ7RVNmUSx5Qkp6RGMsRUFBQTtBTHdFdEI7RVNmUSx5QkpHYyxFQUFBO0FMWXRCO0VTZlEseUJKK0RjLEVBQUE7QUxoRHRCO0VTUlEseUJKbENnQztFSW1DaEMsY0pyQzBCLEVBQUE7QUw0Q2xDO0VTUlEseUJKMEJnQztFSXpCaEMsY0p1QjBCLEVBQUE7QUxoQmxDO0VTUlEseUJKc0ZnQztFSXJGaEMsY0ptRjBCLEVBQUE7QUw1RWxDO0VTQVEsdUNKNUVxQyxFQUFBO0FMNEU3QztFU0FRLHVDSmhCcUMsRUFBQTtBTGdCN0M7RVNBUSwwQ0o0Q3dDLEVBQUE7QUw1Q2hEO0VTT1EsdUNKL0NzQyxFQUFBO0FMd0M5QztFU09RLHVDSmFzQyxFQUFBO0FMcEI5QztFU09RLHlCSnlFd0IsRUFBQTtBTGhGaEM7RVNnQkksdUNKNUZ5QyxFQUFBO0FMNEU3QztFU2dCSSx1Q0poQ3lDLEVBQUE7QUxnQjdDO0VTZ0JJLDBDSjRCNEMsRUFBQTtBTDVDaEQ7RVN1QkksdUNKbkd5QyxFQUFBO0FMNEU3QztFU3VCSSx1Q0p2Q3lDLEVBQUE7QUxnQjdDO0VTdUJJLDBDSnFCNEMsRUFBQTtBTDVDaEQ7RVM2Qk0sZ0NKckYrQixFQUFBO0FMd0RyQztFUzZCTSxnQ0p6QitCLEVBQUE7QUxKckM7RVM2Qk0sZ0NKbUMrQixFQUFBO0FMaEVyQztFU2tDUSx5QkoxRjZCO0VJMkY3QixjSjlHYyxFQUFBO0FMMkV0QjtFU2tDUSx5Qko5QjZCO0VJK0I3QixjSmxEYyxFQUFBO0FMZXRCO0VTa0NRLHlCSjhCNkI7RUk3QjdCLGNKVWMsRUFBQTtBTDdDdEI7RVN3Q1UseUJKL0VtQjtFSWdGbkIsY0pwSFksRUFBQTtBTDJFdEI7RVN3Q1UseUJKbkJtQjtFSW9CbkIsY0p4RFksRUFBQTtBTGV0QjtFU3dDVSx5Qkp5Q21CO0VJeENuQixjSklZLEVBQUE7QUw3Q3RCO0VTK0NVLHlCSnZFUTtFSXdFUixjSjNIWSxFQUFBO0FMMkV0QjtFUytDVSx5QkpYUTtFSVlSLGNKL0RZLEVBQUE7QUxldEI7RVMrQ1UseUJKaURRO0VJaERSLGNKSFksRUFBQTtBTDdDdEI7RVNnRUksY0ozSWtCLEVBQUE7QUwyRXRCO0VTZ0VJLGNKL0VrQixFQUFBO0FMZXRCO0VTZ0VJLGNKbkJrQixFQUFBO0FMN0N0QjtFU3NFTSx5Qko5SWdCLEVBQUE7QUx3RXRCO0VTc0VNLHlCSmxGZ0IsRUFBQTtBTFl0QjtFU3NFTSx5Qkp0QmdCLEVBQUE7QUxoRHRCO0VTOEVJLDRCSnRJaUMsRUFBQTtBTHdEckM7RVM4RUksNEJKMUVpQyxFQUFBO0FMSnJDO0VTOEVJLDRCSmRpQyxFQUFBO0FMaEVyQztFU3lGRSx5QkpqS29CLEVBQUE7QUx3RXRCO0VTeUZFLHlCSnJHb0IsRUFBQTtBTFl0QjtFU3lGRSx5Qkp6Q29CLEVBQUE7QUxoRHRCO0VTeUdRLGNKbExrQixFQUFBO0FMeUUxQjtFU3lHUSxjSnRIa0IsRUFBQTtBTGExQjtFU3lHUSxjSjFEa0IsRUFBQTtBTC9DMUI7RVNnSFEseUJKdkpxQixFQUFBO0FMdUM3QjtFU2dIUSx5QkozRnFCLEVBQUE7QUxyQjdCO0VTZ0hRLHlCSi9CcUIsRUFBQTtBTGpGN0I7RVN1SFEseUJKOUpxQixFQUFBO0FMdUM3QjtFU3VIUSx5QkpsR3FCLEVBQUE7QUxyQjdCO0VTdUhRLHlCSnRDcUIsRUFBQTtBTGpGN0I7RVM4SFEsNkJBQTZCLEVBQUE7QVQ5SHJDO0VTOEhRLDZCQUE2QixFQUFBO0FUOUhyQztFUzhIUSw2QkFBNkIsRUFBQTtBVDlIckM7RVNxSVEsNkJBQTZCLEVBQUE7QVRySXJDO0VTcUlRLDZCQUE2QixFQUFBO0FUcklyQztFU3FJUSw2QkFBNkIsRUFBQTtBVHJJckM7RVM4SVUseUJKbEx5QixFQUFBO0FMb0NuQztFUzhJVSx5Qkp0SHlCLEVBQUE7QUx4Qm5DO0VTOElVLHlCSjFEeUIsRUFBQTtBTHBGbkM7RVNvSlkseUJKdkwyQixFQUFBO0FMbUN2QztFU29KWSx5QkozSDJCLEVBQUE7QUx6QnZDO0VTb0pZLHlCSi9EMkIsRUFBQTtBTHJGdkM7RVM2SlEseUJKbk9nQixFQUFBO0FMc0V4QjtFUzZKUSx5Qkp2S2dCLEVBQUE7QUxVeEI7RVM2SlEseUJKM0dnQixFQUFBO0FMbER4QjtFU29LUSx5Qko1T2MsRUFBQTtBTHdFdEI7RVNvS1EseUJKaExjLEVBQUE7QUxZdEI7RVNvS1EseUJKcEhjLEVBQUE7QUxoRHRCO0VTNktVLHlCSmxQVyxFQUFBO0FMcUVyQjtFUzZLVSx5Qkp0TFcsRUFBQTtBTFNyQjtFUzZLVSx5QkoxSFcsRUFBQTtBTG5EckI7RVN1TFUseUJKOVBhLEVBQUE7QUx1RXZCO0VTdUxVLHlCSmxNYSxFQUFBO0FMV3ZCO0VTdUxVLHlCSnRJYSxFQUFBO0FMakR2QjtFUzJNUSx5QkpoUmEsRUFBQTtBTHFFckI7RVMyTVEseUJKcE5hLEVBQUE7QUxTckI7RVMyTVEseUJKeEphLEVBQUE7QUxuRHJCO0VTa05RLHlCSjFSYyxFQUFBO0FMd0V0QjtFU2tOUSx5Qko5TmMsRUFBQTtBTFl0QjtFU2tOUSx5QkpsS2MsRUFBQTtBTGhEdEI7RVNpT0ksY0o1U2tCLEVBQUE7QUwyRXRCO0VTaU9JLGNKaFBrQixFQUFBO0FMZXRCO0VTaU9JLGNKcExrQixFQUFBO0FMN0N0QjtFU3VPTSx5QkovU2dCLEVBQUE7QUx3RXRCO0VTdU9NLHlCSm5QZ0IsRUFBQTtBTFl0QjtFU3VPTSx5Qkp2TGdCLEVBQUE7QUxoRHRCO0VTK09JLGNKdlRrQixFQUFBO0FMd0V0QjtFUytPSSxjSjNQa0IsRUFBQTtBTFl0QjtFUytPSSxjSi9Ma0IsRUFBQTtBTGhEdEI7RVNzUEksNEJKOVNpQyxFQUFBO0FMd0RyQztFU3NQSSw0QkpsUGlDLEVBQUE7QUxKckM7RVNzUEksNEJKdExpQyxFQUFBO0FMaEVyQztFU2dRSSx5QkpwUytCLEVBQUE7QUxvQ25DO0VTZ1FJLHlCSnhPK0IsRUFBQTtBTHhCbkM7RVNnUUkseUJKNUsrQixFQUFBO0FMcEZuQztFU3NRTSx5Qkp6U2lDLEVBQUE7QUxtQ3ZDO0VTc1FNLHlCSjdPaUMsRUFBQTtBTHpCdkM7RVNzUU0seUJKakxpQyxFQUFBO0FJd0wzQztFVC9WRSxnQkFBZ0I7RUFDaEIsdUJBQXVCO0VBQ3ZCLG1CQUFtQixFQUFBO0FBZ0ZqQjtFUzhSVSx5QkpuV1csRUFBQTtBTHFFckI7RVM4UlUseUJKdlNXLEVBQUE7QUxTckI7RVM4UlUseUJKM09XLEVBQUE7QUxuRHJCO0VTOFNJLGNKdFhrQixFQUFBO0FMd0V0QjtFUzhTSSxjSjFUa0IsRUFBQTtBTFl0QjtFUzhTSSxjSjlQa0IsRUFBQTtBTGhEdEI7RVM0VFEsY0pyWWtCLEVBQUE7QUx5RTFCO0VTNFRRLGNKelVrQixFQUFBO0FMYTFCO0VTNFRRLGNKN1FrQixFQUFBO0FML0MxQjtFU21VUSx5Qkp6V3lCLEVBQUE7QUxzQ2pDO0VTbVVRLHlCSjdTeUIsRUFBQTtBTHRCakM7RVNtVVEsc0JKalBzQixFQUFBO0FJcU5sQztFVGpURSxXQUQwRDtFQUUxRCxjQUY0QjtFQUc1QixrQkFINEM7RVNvVmxDLE1BQU07RUFDTixhQUFhO0VBQ2IsZ0NBQWdDLEVBQUE7QVQzVXhDO0lTOFVVLHlCSnBYdUIsRUFBQTtBTHNDakM7SVM4VVUseUJKeFR1QixFQUFBO0FMdEJqQztJUzhVVSxzQko1UG9CLEVBQUE7QUxsRjlCO0VTc1ZRLHlCSjNYNEIsRUFBQTtBTHFDcEM7RVNzVlEseUJKL1Q0QixFQUFBO0FMdkJwQztFU3NWUSx5QkpuUTRCLEVBQUE7QUlvTnhDO0VUalRFLFdBRDBEO0VBRTFELGNBRjRCO0VBRzVCLGtCQUg0QztFU3VXbEMsY0FBYztFQUNkLE1BQU07RUFDTixnQ0FBZ0MsRUFBQTtBVDlWeEM7SVNpV1UseUJKdFkwQixFQUFBO0FMcUNwQztJU2lXVSx5QkoxVTBCLEVBQUE7QUx2QnBDO0lTaVdVLHlCSjlRMEIsRUFBQTtBTG5GcEM7RVNtWE0sY0o1Ym9CLEVBQUE7QUx5RTFCO0VTbVhNLGNKaFlvQixFQUFBO0FMYTFCO0VTbVhNLGNKcFVvQixFQUFBO0FML0MxQjtFUzBYTSxjSnJjZ0IsRUFBQTtBTDJFdEI7RVMwWE0sY0p6WWdCLEVBQUE7QUxldEI7RVMwWE0sY0o3VWdCLEVBQUE7QUk2VDFCO0VBc0JNLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIseUJBQXlCO0VBQ3pCLFlBQVk7RUFDWixpQkFBaUIsRUFBQTtBVHBZbkI7RVM2WUksY0p0ZHNCLEVBQUE7QUx5RTFCO0VTNllJLGNKMVpzQixFQUFBO0FMYTFCO0VTNllJLGNKOVZzQixFQUFBO0FML0MxQjtFU3NaTSxjSmplZ0I7RUlrZWhCLHlCSnpiOEIsRUFBQTtBTGtDcEM7RVNzWk0sY0pyYWdCO0VJc2FoQix5Qko3WDhCLEVBQUE7QUwxQnBDO0VTc1pNLGNKeldnQjtFSTBXaEIseUJKalU4QixFQUFBO0FMdEZwQztFUzZaUSx5Qko5YnVCLEVBQUE7QUxpQy9CO0VTNlpRLHlCSmxZdUIsRUFBQTtBTDNCL0I7RVM2WlEseUJKdFV1QixFQUFBO0FJOFVuQztFQUNFLGtCQUFrQixFQUFBO0FBRHBCO0lBSUksa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxpQkFBaUI7SUFDakIsY0FBYztJQUNkLFdBQVcsRUFBQTtBVDdhWDtNU2diRSx5Qkp2ZTJCO01Jd2UzQixjSjVmb0IsRUFBQTtBTDJFdEI7TVNnYkUseUJKM2EyQjtNSTRhM0IsY0poY29CLEVBQUE7QUxldEI7TVNnYkUseUJKL1cyQjtNSWdYM0IsY0pwWW9CLEVBQUE7QUl3WDFCO01BZ0JNLGlCQUFpQjtNQUNqQixhQUFhLEVBQUE7QVR0YmY7UVMwYk0sdUNKaGZpQyxFQUFBO0FMc0R2QztRUzBiTSx1Q0pwYmlDLEVBQUE7QUxOdkM7UVMwYk0sMENKeFhvQyxFQUFBO0FLcko5Qzs7RUFFRSxjQUFjO0VBQ2QsYUFBYTtFQUNiLGdCQUFnQixFQUFBO0FBSmxCOztJQU9JLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsZ0JBQWdCLEVBQUE7QVYwRWhCOztNVXZFRSx1Q0xMMkM7TUtNM0MsY0xMb0IsRUFBQTtBTDJFdEI7O01VdkVFLHVDTHVEMkM7TUt0RDNDLGNMdURvQixFQUFBO0FMZXRCOztNVXZFRSwwQ0xtSDhDO01LbEg5QyxjTG1Ib0IsRUFBQTtBS2hJMUI7O01BaUJNLGtCQUFrQjtNQUNsQixNQUFNO01BQ04sT0FBTyxFQUFBO0FWZ0VUO0VVcERNLGNMcEJnQixFQUFBO0FMd0V0QjtFVXBETSxjTHdDZ0IsRUFBQTtBTFl0QjtFVXBETSxjTG9HZ0IsRUFBQTtBTGhEdEI7RVUzQ00seUJMN0JnQixFQUFBO0FMd0V0QjtFVTNDTSx5QkwrQmdCLEVBQUE7QUxZdEI7RVUzQ00seUJMMkZnQixFQUFBO0FMaER0QjtFVXBDTSxjTHZDZ0IsRUFBQTtBTDJFdEI7RVVwQ00sY0xxQmdCLEVBQUE7QUxldEI7RVVwQ00sY0xpRmdCLEVBQUE7QUw3Q3RCO0VVM0JFLGNMN0NvQixFQUFBO0FMd0V0QjtFVTNCRSxjTGVvQixFQUFBO0FMWXRCO0VVM0JFLGNMMkVvQixFQUFBO0FMaER0QjtFVXJCSSxjTG5Ea0IsRUFBQTtBTHdFdEI7RVVyQkksY0xTa0IsRUFBQTtBTFl0QjtFVXJCSSxjTHFFa0IsRUFBQTtBTGhEdEI7RVVmTSx5Qkx6RGdCLEVBQUE7QUx3RXRCO0VVZk0seUJMR2dCLEVBQUE7QUxZdEI7RVVmTSx5QkwrRGdCLEVBQUE7QUxoRHRCO0VVQUksY0x4RWtCLEVBQUE7QUx3RXRCO0VVQUksY0xaa0IsRUFBQTtBTFl0QjtFVUFJLGNMZ0RrQixFQUFBO0FNbkkxQjtFQUNJLGtCQUFrQixFQUFBO0FBRHRCO0lBTVksVUFBVSxFQUFBO0FBTnRCO0lBV1EsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEIsRUFBQTtBQWJ0QztNQWdCWSxnQkFBZ0I7TUFDaEIsV0FBVztNQUNYLGdCQUFnQixFQUFBO0FBSzVCO0VBT1EsaUJBQWlCO0VBQ2pCLG1CQUFtQixFQUFBO0FYb0R2QjtJV3hEUSxjTmpCa0IsRUFBQTtBTHlFMUI7SVd4RFEsY04yQ2tCLEVBQUE7QUxhMUI7SVd4RFEsY051R2tCLEVBQUE7QU0zRzlCO0VBZ0JRLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsYUFBYTtFQUNiLFdBQVcsRUFBQTtBWHlDZjtJVy9DUSx5Qk5UNkIsRUFBQTtBTHdEckM7SVcvQ1EseUJObUQ2QixFQUFBO0FMSnJDO0lXL0NRLHlCTitHNkIsRUFBQTtBTTVIekM7RUEwQlEscUJBQXFCLEVBQUE7QVhrQ3pCO0lXcENRLGNOcENjLEVBQUE7QUx3RXRC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VEV1QixFQUFBO0FMdUM3QjtRY3pDTSx5QlQ4RHVCLEVBQUE7QUxyQjdCO1FjekNNLHlCVDBIdUIsRUFBQTtBU3BLakM7UUErQ1EsbUJBQW1CO1FBQ25CLGVBQWU7UUFDZixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLGdCQUFnQixFQUFBO0FBbkR4QjtVQXNEVSxrQkFBa0IsRUFBQTtBQXRENUI7VUEwRFUsbUJBQW1CLEVBQUE7QUNwQzdCO0VBQ0UscUJBQXFCO0VBQ3JCLDhCQUE4QztFQUM5QyxnQkFBZ0IsRUFBQTtBQUdsQjtFQUNFLHFCQUFxQjtFQUNyQixnQ0FBZ0Q7RUFDaEQsZ0JBQWdCLEVBQUE7QUFHbEI7RUFDRSxxQkFBcUI7RUFDckIsaUNBQWlEO0VBQ2pELGdCQUFnQixFQUFBO0FBR2xCO0VBQ0UscUJBQXFCO0VBQ3JCLDZCQUE2QztFQUM3QyxnQkFBZ0IsRUFBQTtBQUdsQjtFQUNFLHFCQUFxQjtFQUNyQixrQ0FBa0Q7RUFDbEQsZ0JBQWdCLEVBQUE7QUFJbEI7RUFDRSxpQ0FBaUM7RUFDakMsZUFBZSxFQUFBO0FBR2pCO0VBQ0UsaUNBQWlDO0VBQ2pDLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osYUFBYSxFQUFBO0FBSmY7SUFPSSwrREFBNkU7SUFDN0Usc0JBQXNCLEVBQUE7QUFSMUI7SUFZSSwrREFBNkU7SUFDN0Usc0JBQXNCLEVBQUE7QUFiMUI7SUFpQkksZ0VBQThFO0lBQzlFLHNCQUFzQixFQUFBO0FBbEIxQjtJQXNCSSxhQUFhO0lBQ2IsV0FBVztJQUNYLFlBQVksRUFBQTtBQUloQjtFQUtNLHNEQUF5RDtVQUF6RCw4Q0FBeUQsRUFBQSIsImZpbGUiOiJzcmMvc3R5bGVzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAbWl4aW4gdGV4dC10cnVuY2F0ZSB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcbkBtaXhpbiB0ZXh0V3JhcCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbiAgbGluZS1icmVhazogc3RyaWN0O1xyXG4gIC13ZWJraXQtaHlwaGVuczogYXV0bztcclxuICAtbXMtaHlwaGVuczogYXV0bztcclxuICBoeXBoZW5zOiBhdXRvO1xyXG59XHJcbkBtaXhpbiBjb3ZlckJveCB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHRsZWZ0OiAwO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxufVxyXG5AbWl4aW4gYWJzICgkdG9wOiBhdXRvLCAkcmlnaHQ6IGF1dG8sICRib3R0b206IGF1dG8sICRsZWZ0OiBhdXRvKSB7XHJcbiAgdG9wOiAkdG9wO1xyXG4gIHJpZ2h0OiAkcmlnaHQ7XHJcbiAgYm90dG9tOiAkYm90dG9tO1xyXG4gIGxlZnQ6ICRsZWZ0O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxufVxyXG5AbWl4aW4gY292ZXJJbWcge1xyXG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdC1vLWJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xyXG59XHJcbkBtaXhpbiB2YWxpbmdCb3gge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6ICA1MCU7XHJcblx0bGVmdDogNTAlO1xyXG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG59XHJcbkBtaXhpbiB1blNlbGVjdCB7XHJcblx0LXdlYmtpdC10b3VjaC1jb2xsb3V0OiBub25lO1xyXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHVzZXItc2VsZWN0OiBub25lO1xyXG59XHJcbkBtaXhpbiBtYXgxMTk5IHsgLy8gbWFrZXQgMTE3MVxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbWF4MTE3MCB7IC8vIG1ha2V0cyA5OTJcclxuICBAbWVkaWEgKG1heC13aWR0aDogMTE3MHB4KSB7IEBjb250ZW50OyB9XHJcbn1cclxuQG1peGluIG1heDk5MSB7IC8vIG1ha2V0cyA3NjJcclxuICBAbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbWF4NzYxIHsgLy8gbWFrZXRzIDU3NlxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjFweCkgeyBAY29udGVudDsgfVxyXG59XHJcbkBtaXhpbiBtYXg1NzUgeyAvLyBtYWtldHMgNDAwXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7IEBjb250ZW50OyB9XHJcbn1cclxuQG1peGluIG1vYmlsZSB7XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDM5OXB4KSB7IEBjb250ZW50OyB9XHJcbn1cclxuQG1peGluIGljb0NlbnRlciB7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcclxufVxyXG5AbWl4aW4gcHNldWRvICgkZGlzcGxheTogYmxvY2ssICRwb3M6IGFic29sdXRlLCAkY29udGVudDogJycpe1xyXG4gIGNvbnRlbnQ6ICRjb250ZW50O1xyXG4gIGRpc3BsYXk6ICRkaXNwbGF5O1xyXG4gIHBvc2l0aW9uOiAkcG9zO1xyXG59XHJcblxyXG4vKlxyXG4qIEltcGxlbWVudGF0aW9uIG9mIHRoZW1lc1xyXG4qL1xyXG5AbWl4aW4gdGhlbWlmeSgkdGhlbWVzOiAkdGhlbWVzKSB7XHJcbiAgQGVhY2ggJHRoZW1lLCAkbWFwIGluICR0aGVtZXMge1xyXG4gICAgLnRoZW1lLSN7JHRoZW1lfSAmIHtcclxuICAgICAgJHRoZW1lLW1hcDogKCkgIWdsb2JhbDtcclxuICAgICAgQGVhY2ggJGtleSwgJHN1Ym1hcCBpbiAkbWFwIHtcclxuICAgICAgICAkdmFsdWU6IG1hcC1nZXQobWFwLWdldCgkdGhlbWVzLCAkdGhlbWUpLCAnI3ska2V5fScpO1xyXG4gICAgICAgICR0aGVtZS1tYXA6IG1hcC1tZXJnZSgkdGhlbWUtbWFwLCAoJGtleTogJHZhbHVlKSkgIWdsb2JhbDtcclxuICAgICAgfVxyXG4gICAgICBAY29udGVudDtcclxuICAgICAgJHRoZW1lLW1hcDogbnVsbCAhZ2xvYmFsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQGZ1bmN0aW9uIHRoZW1lZCgka2V5KSB7XHJcbiAgQHJldHVybiBtYXAtZ2V0KCR0aGVtZS1tYXAsICRrZXkpO1xyXG59XHJcbiIsIi8qXHJcbiogSW1wbGVtZW50YXRpb24gb2YgdGhlbWVzXHJcbiovXG5AaW1wb3J0IHVybCh+QG5nLXNlbGVjdC9uZy1zZWxlY3QvdGhlbWVzL2RlZmF1bHQudGhlbWUuY3NzKTtcbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIC13ZWJraXQtYm94LXNpemluZzogaW5oZXJpdDtcbiAgLW1vei1ib3gtc2l6aW5nOiBpbmhlcml0O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIC13ZWJraXQtdG91Y2gtY29sbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcbmEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSxcbmRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbnNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXG5iLCB1LCBpLCBjZW50ZXIsXG5kbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxuZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXG50YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCxcbmFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLFxuZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLFxubWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksXG50aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICBib3JkZXI6IDA7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgZm9udDogaW5oZXJpdDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbmFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsXG5mb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIHNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5vbCwgdWwge1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbmJsb2NrcXVvdGUsIHEge1xuICBxdW90ZXM6IG5vbmU7IH1cblxuYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsXG5xOmJlZm9yZSwgcTphZnRlciB7XG4gIGNvbnRlbnQ6IG5vbmU7IH1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDsgfVxuXG5pbnB1dCB7XG4gIG91dGxpbmU6IG5vbmU7IH1cbiAgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAxMDAwcHggd2hpdGUgaW5zZXQ7IH1cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgYTphY3RpdmUsIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7IH1cblxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG5iLCBzdHJvbmcge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbmltZyB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYm9yZGVyOiAwOyB9XG5cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnRoZW1lLWRhcmsgLmFwcC1jb250ZW50IC5wcmVsb2FkZXIgLmxvYWRpbmctYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDsgfVxuXG4udGhlbWUtZ3JheSAuYXBwLWNvbnRlbnQgLnByZWxvYWRlciAubG9hZGluZy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDdjZjhkOyB9XG5cbi50aGVtZS13aGl0ZSAuYXBwLWNvbnRlbnQgLnByZWxvYWRlciAubG9hZGluZy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDZjMTcyOyB9XG5cbmJ1dHRvbiB7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBoZWlnaHQ6IDQuMnJlbTsgfVxuICAudGhlbWUtZGFyayBidXR0b246ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pLCAudGhlbWUtZGFyayBidXR0b24uYmx1ZS1idXR0b25fcmVzZXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5Y2FkYjc7XG4gICAgY29sb3I6ICMxMTE5MjE7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uOmRpc2FibGVkOm5vdCgudHJhbnNwYXJlbnQtYnV0dG9uKSwgLnRoZW1lLWdyYXkgYnV0dG9uLmJsdWUtYnV0dG9uX3Jlc2V0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzk4NDhmO1xuICAgIGNvbG9yOiAjMWExYTFhOyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b246ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pLCAudGhlbWUtd2hpdGUgYnV0dG9uLmJsdWUtYnV0dG9uX3Jlc2V0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTBhNGFlO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbjpkaXNhYmxlZDpub3QoLnRyYW5zcGFyZW50LWJ1dHRvbik6aG92ZXIsIC50aGVtZS1kYXJrIGJ1dHRvbi5ibHVlLWJ1dHRvbl9yZXNldDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2I3ZDFlMDsgfVxuICAudGhlbWUtZ3JheSBidXR0b246ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pOmhvdmVyLCAudGhlbWUtZ3JheSBidXR0b24uYmx1ZS1idXR0b25fcmVzZXQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhMWFlYmI7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbjpkaXNhYmxlZDpub3QoLnRyYW5zcGFyZW50LWJ1dHRvbik6aG92ZXIsIC50aGVtZS13aGl0ZSBidXR0b24uYmx1ZS1idXR0b25fcmVzZXQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhZWJlYzY7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uOmRpc2FibGVkOm5vdCgudHJhbnNwYXJlbnQtYnV0dG9uKTpmb2N1cywgLnRoZW1lLWRhcmsgYnV0dG9uLmJsdWUtYnV0dG9uX3Jlc2V0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdiOWMyOyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbjpkaXNhYmxlZDpub3QoLnRyYW5zcGFyZW50LWJ1dHRvbik6Zm9jdXMsIC50aGVtZS1ncmF5IGJ1dHRvbi5ibHVlLWJ1dHRvbl9yZXNldDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzhhOTU5ZjsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uOmRpc2FibGVkOm5vdCgudHJhbnNwYXJlbnQtYnV0dG9uKTpmb2N1cywgLnRoZW1lLXdoaXRlIGJ1dHRvbi5ibHVlLWJ1dHRvbl9yZXNldDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2E3YjljMjsgfVxuICAudGhlbWUtZGFyayBidXR0b24uYmx1ZS1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7XG4gICAgY29sb3I6ICMxMTE5MjE7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uLmJsdWUtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1O1xuICAgIGNvbG9yOiAjMWExYTFhOyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b24uYmx1ZS1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uLmJsdWUtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODJkN2ZmOyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzg2ZDZmZjsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uLmJsdWUtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNiM2ZmOyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU5YjVmZDsgfVxuICAudGhlbWUtZ3JheSBidXR0b24uYmx1ZS1idXR0b246bm90KDpkaXNhYmxlZCk6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1ZmI2ZmM7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM3OWZmYTsgfVxuICAudGhlbWUtZGFyayBidXR0b24uZ3JlZW4tYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkO1xuICAgIGNvbG9yOiAjMTExOTIxOyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbi5ncmVlbi1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0N2NmOGQ7XG4gICAgY29sb3I6ICMxYTFhMWE7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbi5ncmVlbi1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NmMxNzI7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzhkZmNjNjsgfVxuICAudGhlbWUtZ3JheSBidXR0b24uZ3JlZW4tYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2JmNmM2OyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b24uZ3JlZW4tYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWFkNTg2OyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbi5ncmVlbi1idXR0b246bm90KDpkaXNhYmxlZCk6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2MmUwYjI7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGM5ZTsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzUzYzc3YzsgfVxuICAudGhlbWUtZGFyayBidXR0b24udHVycXVvaXNlLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkZDBlMTtcbiAgICBjb2xvcjogIzExMTkyMTsgfVxuICAudGhlbWUtZ3JheSBidXR0b24udHVycXVvaXNlLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNlYzVkNztcbiAgICBjb2xvcjogIzFhMWExYTsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyNmI2Yzc7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM4N2Y0ZjU7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3MmVkZmU7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbi50dXJxdW9pc2UtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTJjYmQ5OyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbi50dXJxdW9pc2UtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJkNWU4OyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbi50dXJxdW9pc2UtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTBkMGUxOyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b24udHVycXVvaXNlLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMxYmVjZjsgfVxuICBidXR0b24udHJhbnNwYXJlbnQtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAudGhlbWUtZGFyayBidXR0b24udHJhbnNwYXJlbnQtYnV0dG9uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAwLjJyZW0gc29saWQgIzJiMzY0NDtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgYnV0dG9uLnRyYW5zcGFyZW50LWJ1dHRvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogMC4ycmVtIHNvbGlkICMyZjM0Mzg7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS13aGl0ZSBidXR0b24udHJhbnNwYXJlbnQtYnV0dG9uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAwLjJyZW0gc29saWQgI2ViZWJlYjtcbiAgICAgIGNvbG9yOiAjNDM0NTRiOyB9XG4gICAgYnV0dG9uLnRyYW5zcGFyZW50LWJ1dHRvbiAuaWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvY29tcGxldGUtdGVzdHdhbGxldC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgICB3aWR0aDogMS43cmVtO1xuICAgICAgaGVpZ2h0OiAxLjdyZW07IH1cbiAgICAgIC50aGVtZS1kYXJrIGJ1dHRvbi50cmFuc3BhcmVudC1idXR0b24gLmljb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtZ3JheSBidXR0b24udHJhbnNwYXJlbnQtYnV0dG9uIC5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIGJ1dHRvbi50cmFuc3BhcmVudC1idXR0b24gLmljb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDM0NTRiOyB9XG5cbi5pbnB1dC1ibG9jayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBtYXJnaW4tYm90dG9tOiAwLjRyZW07IH1cbiAgLmlucHV0LWJsb2NrIC53cmFwLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIG1pbi1oZWlnaHQ6IDIuNHJlbTsgfVxuICAuaW5wdXQtYmxvY2sgbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjRyZW07IH1cbiAgICAudGhlbWUtZGFyayAuaW5wdXQtYmxvY2sgbGFiZWwge1xuICAgICAgY29sb3I6ICM1NTY1NzY7IH1cbiAgICAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2sgbGFiZWwge1xuICAgICAgY29sb3I6ICM1NjVjNjI7IH1cbiAgICAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrIGxhYmVsIHtcbiAgICAgIGNvbG9yOiAjYTBhNWFiOyB9XG4gIC5pbnB1dC1ibG9jayBpbnB1dFt0eXBlPSd0ZXh0J10sIC5pbnB1dC1ibG9jayBpbnB1dFt0eXBlPSdwYXNzd29yZCddLCAuaW5wdXQtYmxvY2sgc2VsZWN0IHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0LjJyZW07IH1cbiAgICAudGhlbWUtZGFyayAuaW5wdXQtYmxvY2sgaW5wdXRbdHlwZT0ndGV4dCddLCAudGhlbWUtZGFyayAuaW5wdXQtYmxvY2sgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSwgLnRoZW1lLWRhcmsgLmlucHV0LWJsb2NrIHNlbGVjdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxZTI3O1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2sgaW5wdXRbdHlwZT0ndGV4dCddLCAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2sgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSwgLnRoZW1lLWdyYXkgLmlucHV0LWJsb2NrIHNlbGVjdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxO1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrIGlucHV0W3R5cGU9J3RleHQnXSwgLnRoZW1lLXdoaXRlIC5pbnB1dC1ibG9jayBpbnB1dFt0eXBlPSdwYXNzd29yZCddLCAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrIHNlbGVjdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgLmlucHV0LWJsb2NrLnRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuaW5wdXQtYmxvY2sudGV4dGFyZWEgdGV4dGFyZWEge1xuICAgICAgZm9udC1mYW1pbHk6IE9wZW5TYW5zLCBzYW5zLXNlcmlmO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogNy41cmVtO1xuICAgICAgbWF4LWhlaWdodDogNy41cmVtO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICByZXNpemU6IG5vbmU7IH1cbiAgICAgIC50aGVtZS1kYXJrIC5pbnB1dC1ibG9jay50ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzFlMjc7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2sudGV4dGFyZWEgdGV4dGFyZWEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxO1xuICAgICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC5pbnB1dC1ibG9jay50ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgICAgIGNvbG9yOiAjNDM0NTRiOyB9XG4gIC5pbnB1dC1ibG9jayAuZXJyb3ItYmxvY2sge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40cmVtO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLnRoZW1lLWRhcmsgLmlucHV0LWJsb2NrIC5lcnJvci1ibG9jayB7XG4gICAgICBjb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS1ncmF5IC5pbnB1dC1ibG9jayAuZXJyb3ItYmxvY2sge1xuICAgICAgY29sb3I6ICNmZjUyNTI7IH1cbiAgICAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrIC5lcnJvci1ibG9jayB7XG4gICAgICBjb2xvcjogI2ZmNTI1MjsgfVxuICAuaW5wdXQtYmxvY2sgLnN1Y2Nlc3MtYmxvY2sge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40cmVtO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLnRoZW1lLWRhcmsgLmlucHV0LWJsb2NrIC5zdWNjZXNzLWJsb2NrIHtcbiAgICAgIGNvbG9yOiAjNWNkYTlkOyB9XG4gICAgLnRoZW1lLWdyYXkgLmlucHV0LWJsb2NrIC5zdWNjZXNzLWJsb2NrIHtcbiAgICAgIGNvbG9yOiAjNDdjZjhkOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5pbnB1dC1ibG9jayAuc3VjY2Vzcy1ibG9jayB7XG4gICAgICBjb2xvcjogIzQ2YzE3MjsgfVxuXG4udGhlbWUtZGFyayAuZXJyb3ItdGV4dCB7XG4gIGNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS1ncmF5IC5lcnJvci10ZXh0IHtcbiAgY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLXdoaXRlIC5lcnJvci10ZXh0IHtcbiAgY29sb3I6ICNmZjUyNTI7IH1cblxuaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbyArIGxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwYWRkaW5nLWxlZnQ6IDIuNHJlbTtcbiAgLXdlYmtpdC10b3VjaC1jb2xsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLnRoZW1lLWRhcmsgaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbyArIGxhYmVsIHtcbiAgICBjb2xvcjogIzU1NjU3NjsgfVxuICAudGhlbWUtZ3JheSBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvICsgbGFiZWwge1xuICAgIGNvbG9yOiAjNTY1YzYyOyB9XG4gIC50aGVtZS13aGl0ZSBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvICsgbGFiZWwge1xuICAgIGNvbG9yOiAjYTBhNWFiOyB9XG5cbmlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvcGFjaXR5OiAwOyB9XG4gIGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpICsgbGFiZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvOm5vdChjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMC43cmVtO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHdpZHRoOiAxLjRyZW07XG4gICAgaGVpZ2h0OiAxLjRyZW07IH1cbiAgICAudGhlbWUtZGFyayBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvOm5vdChjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4gICAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCAjNGRiMWZmOyB9XG4gICAgLnRoZW1lLWdyYXkgaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbzpub3QoY2hlY2tlZCkgKyBsYWJlbDpiZWZvcmUge1xuICAgICAgYm9yZGVyOiAwLjFyZW0gc29saWQgIzQyYTVmNTsgfVxuICAgIC50aGVtZS13aGl0ZSBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvOm5vdChjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4gICAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCAjMmM5NWYxOyB9XG4gIGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDFyZW07XG4gICAgbGVmdDogMC4zcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdpZHRoOiAwLjhyZW07XG4gICAgaGVpZ2h0OiAwLjhyZW07IH1cbiAgICAudGhlbWUtZGFyayBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvOm5vdChjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cbiAgICAudGhlbWUtZ3JheSBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvOm5vdChjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cbiAgICAudGhlbWUtd2hpdGUgaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbzpub3QoY2hlY2tlZCkgKyBsYWJlbDphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbmlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcbiAgb3BhY2l0eTogMTsgfVxuXG5pbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94ICsgbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBhZGRpbmctbGVmdDogMy42cmVtO1xuICAtd2Via2l0LXRvdWNoLWNvbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAudGhlbWUtZGFyayBpbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94ICsgbGFiZWwge1xuICAgIGNvbG9yOiAjNTU2NTc2OyB9XG4gIC50aGVtZS1ncmF5IGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3ggKyBsYWJlbCB7XG4gICAgY29sb3I6ICM1NjVjNjI7IH1cbiAgLnRoZW1lLXdoaXRlIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3ggKyBsYWJlbCB7XG4gICAgY29sb3I6ICNhMGE1YWI7IH1cblxuaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveDpub3QoY2hlY2tlZCkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAxLjZyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3g6bm90KGNoZWNrZWQpICsgbGFiZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBpbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94Om5vdChjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDEuNnJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgd2lkdGg6IDEuNHJlbTtcbiAgICBoZWlnaHQ6IDEuNHJlbTsgfVxuICAgIC50aGVtZS1kYXJrIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3g6bm90KGNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICM0ZGIxZmY7IH1cbiAgICAudGhlbWUtZ3JheSBpbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94Om5vdChjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4gICAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCAjNDJhNWY1OyB9XG4gICAgLnRoZW1lLXdoaXRlIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3g6bm90KGNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICMyYzk1ZjE7IH1cblxuaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveDpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2NvbXBsZXRlLXRlc3R3YWxsZXQuc3ZnKTsgfVxuICAudGhlbWUtZGFyayBpbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94OmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cbiAgLnRoZW1lLWdyYXkgaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveDpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG4gIC50aGVtZS13aGl0ZSBpbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94OmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgLnN3aXRjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7IH1cblxuLnRoZW1lLWdyYXkgLnN3aXRjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7IH1cblxuLnRoZW1lLXdoaXRlIC5zd2l0Y2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1kYXJrIC5zd2l0Y2ggLmNpcmNsZS5vbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgLnN3aXRjaCAuY2lyY2xlLm9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgLnN3aXRjaCAuY2lyY2xlLm9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayAuc3dpdGNoIC5jaXJjbGUub2ZmIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSAuc3dpdGNoIC5jaXJjbGUub2ZmIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU2NWM2MjsgfVxuXG4udGhlbWUtd2hpdGUgLnN3aXRjaCAuY2lyY2xlLm9mZiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhMGE1YWI7IH1cblxuLnRhYmxlLXRvb2x0aXAge1xuICBwYWRkaW5nOiAxcmVtIDJyZW07IH1cbiAgLnRoZW1lLWRhcmsgLnRhYmxlLXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6ICM0MjUwNWY7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2U0NjRjO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAudGhlbWUtd2hpdGUgLnRhYmxlLXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgxMjAsIDEyMCwgMTIwLCAwLjUpO1xuICAgIGNvbG9yOiAjNDM0NTRiOyB9XG4gIC50YWJsZS10b29sdGlwIC50b29sdGlwLWlubmVyIHtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBsaW5lLWhlaWdodDogMS44cmVtO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgfVxuICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcCB7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cbiAgICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcDphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMXJlbTtcbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMC41cmVtKTtcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3A6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICM0MjUwNWYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wOmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2U0NjRjIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3A6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICNmZmZmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3AtbGVmdCB7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cbiAgICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcC1sZWZ0OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0xcmVtO1xuICAgICAgbGVmdDogMC43cmVtO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcC1sZWZ0OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNDI1MDVmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM0MjUwNWY7IH1cbiAgICAgIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLWxlZnQ6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICMzZTQ2NGMgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzNlNDY0YzsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLWxlZnQ6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICNmZmZmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZmZmZjsgfVxuICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcC1yaWdodCB7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cbiAgICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcC1yaWdodDphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMXJlbTtcbiAgICAgIHJpZ2h0OiAwLjdyZW07XG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cbiAgICAgIC50aGVtZS1kYXJrIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLXJpZ2h0OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNDI1MDVmICM0MjUwNWYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLXJpZ2h0OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2U0NjRjICMzZTQ2NGMgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcC1yaWdodDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZmZmZmZiAjZmZmZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gICAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b206YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0xcmVtO1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSAwLjVyZW0pO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbTpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM0MjUwNWYgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzNlNDY0YyB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZmZmZiB0cmFuc3BhcmVudDsgfVxuICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbS1sZWZ0IHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gICAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tbGVmdDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTFyZW07XG4gICAgICBsZWZ0OiAwLjdyZW07XG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cbiAgICAgIC50aGVtZS1kYXJrIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tLWxlZnQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNDI1MDVmICM0MjUwNWY7IH1cbiAgICAgIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tLWxlZnQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjM2U0NjRjICMzZTQ2NGM7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbS1sZWZ0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZmZmZiAjZmZmZmZmOyB9XG4gIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tLXJpZ2h0IHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gICAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tcmlnaHQ6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0xcmVtO1xuICAgICAgcmlnaHQ6IDAuN3JlbTtcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tcmlnaHQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNDI1MDVmICM0MjUwNWYgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tLXJpZ2h0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzNlNDY0YyAjM2U0NjRjIHRyYW5zcGFyZW50OyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tcmlnaHQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZmZmZmZmICNmZmZmZmYgdHJhbnNwYXJlbnQ7IH1cbiAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogLTFyZW07IH1cbiAgICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWxlZnQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSAwLjVyZW0pO1xuICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWxlZnQ6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM0MjUwNWY7IH1cbiAgICAgIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzNlNDY0YzsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZmZmZjsgfVxuICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXJpZ2h0IHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAgIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQ6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGNhbGMoNTAlIC0gMC41cmVtKTtcbiAgICAgIGxlZnQ6IC0xcmVtO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXJpZ2h0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzQyNTA1ZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1yaWdodDpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMzZTQ2NGMgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXJpZ2h0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2ZmZmZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuXG4udGFibGUtdG9vbHRpcC1kaW1lbnNpb25zIC50b29sdGlwLWlubmVyIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1heC13aWR0aDogMjByZW07XG4gIG1heC1oZWlnaHQ6IDEwcmVtOyB9XG5cbi5iYWxhbmNlLXRvb2x0aXAge1xuICBwYWRkaW5nOiAxLjNyZW07IH1cbiAgLnRoZW1lLWRhcmsgLmJhbGFuY2UtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogIzQyNTA1ZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLWdyYXkgLmJhbGFuY2UtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogIzNlNDY0YztcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLXdoaXRlIC5iYWxhbmNlLXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgxMjAsIDEyMCwgMTIwLCAwLjUpO1xuICAgIGNvbG9yOiAjNDM0NTRiOyB9XG4gIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAgIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmF2YWlsYWJsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjdyZW07IH1cbiAgICAgIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmF2YWlsYWJsZSBiIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmxvY2tlZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjdyZW07IH1cbiAgICAgIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmxvY2tlZCBiIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmxpbmsge1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAudGhlbWUtZGFyayAuYmFsYW5jZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5saW5rIHtcbiAgICAgICAgY29sb3I6ICM0ZGIxZmY7IH1cbiAgICAgIC50aGVtZS1ncmF5IC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmxpbmsge1xuICAgICAgICBjb2xvcjogIzQyYTVmNTsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmxpbmsge1xuICAgICAgICBjb2xvcjogIzJjOTVmMTsgfVxuICAuYmFsYW5jZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wIHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuICAuYmFsYW5jZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gIC5iYWxhbmNlLXRvb2x0aXAubmctdG9vbHRpcC1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogLTFyZW07IH1cbiAgLmJhbGFuY2UtdG9vbHRpcC5uZy10b29sdGlwLXJpZ2h0IHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuXG4uYWNjb3VudC10b29sdGlwIC50b29sdGlwLWlubmVyIHtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgbWF4LXdpZHRoOiAxOHJlbTsgfVxuXG4uY29tbWVudC10b29sdGlwIC50b29sdGlwLWlubmVyIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIG1heC13aWR0aDogNTByZW07XG4gIG1heC1oZWlnaHQ6IDI1cmVtOyB9XG5cbi51cGRhdGUtdG9vbHRpcCB7XG4gIHBhZGRpbmc6IDEuNXJlbTsgfVxuICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6ICM0MjUwNWY7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS1ncmF5IC51cGRhdGUtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogIzNlNDY0YztcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDEyMCwgMTIwLCAxMjAsIDAuNSk7XG4gICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwLmltcG9ydGFudCB7XG4gICAgYmFja2dyb3VuZDogIzVmMmIxMTtcbiAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjNTUyNDBkO1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjZWY2YzAwO1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcC5pbXBvcnRhbnQubmctdG9vbHRpcC1sZWZ0LWJvdHRvbTphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNWYyYjExICM1ZjJiMTE7IH1cbiAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwLmltcG9ydGFudC5uZy10b29sdGlwLWxlZnQtYm90dG9tOmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM1NTI0MGQgIzU1MjQwZDsgfVxuICAudGhlbWUtd2hpdGUgLnVwZGF0ZS10b29sdGlwLmltcG9ydGFudC5uZy10b29sdGlwLWxlZnQtYm90dG9tOmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNlZjZjMDAgI2VmNmMwMDsgfVxuICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50Lm5nLXRvb2x0aXAtcmlnaHQtYm90dG9tOmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNWYyYjExICM1ZjJiMTEgdHJhbnNwYXJlbnQ7IH1cbiAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwLmltcG9ydGFudC5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbTpiZWZvcmUge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzU1MjQwZCAjNTUyNDBkIHRyYW5zcGFyZW50OyB9XG4gIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50Lm5nLXRvb2x0aXAtcmlnaHQtYm90dG9tOmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZWY2YzAwICNlZjZjMDAgdHJhbnNwYXJlbnQ7IH1cbiAgLnVwZGF0ZS10b29sdGlwLmNyaXRpY2FsIHtcbiAgICBwYWRkaW5nOiAyLjVyZW07IH1cbiAgICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwge1xuICAgICAgYmFja2dyb3VuZDogIzVmMWQxZDtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwLmNyaXRpY2FsIHtcbiAgICAgIGJhY2tncm91bmQ6ICM0YzE5MTk7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwge1xuICAgICAgYmFja2dyb3VuZDogI2U1MzkzNTtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLnVwZGF0ZS10b29sdGlwLmNyaXRpY2FsIC50b29sdGlwLWlubmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcC5jcml0aWNhbC5uZy10b29sdGlwLWxlZnQtYm90dG9tOmFmdGVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzVmMWQxZCAjNWYxZDFkOyB9XG4gICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwLmNyaXRpY2FsLm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNGMxOTE5ICM0YzE5MTk7IH1cbiAgICAudGhlbWUtd2hpdGUgLnVwZGF0ZS10b29sdGlwLmNyaXRpY2FsLm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZTUzOTM1ICNlNTM5MzU7IH1cbiAgICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzVmMWQxZCAjNWYxZDFkIHRyYW5zcGFyZW50OyB9XG4gICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwLmNyaXRpY2FsLm5nLXRvb2x0aXAtcmlnaHQtYm90dG9tOmJlZm9yZSB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICM0YzE5MTkgIzRjMTkxOSB0cmFuc3BhcmVudDsgfVxuICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2U1MzkzNSAjZTUzOTM1IHRyYW5zcGFyZW50OyB9XG4gIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuOHJlbTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IH1cbiAgICAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLnN0YW5kYXJkLXVwZGF0ZSB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07IH1cbiAgICAgIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuc3RhbmRhcmQtdXBkYXRlIHtcbiAgICAgICAgY29sb3I6ICM0ZGIxZmY7IH1cbiAgICAgIC50aGVtZS1ncmF5IC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuc3RhbmRhcmQtdXBkYXRlIHtcbiAgICAgICAgY29sb3I6ICM0MmE1ZjU7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLnN0YW5kYXJkLXVwZGF0ZSB7XG4gICAgICAgIGNvbG9yOiAjMmM5NWYxOyB9XG4gICAgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5pbXBvcnRhbnQtdXBkYXRlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5pbXBvcnRhbnQtdXBkYXRlIHtcbiAgICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgICAgIC50aGVtZS1ncmF5IC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuaW1wb3J0YW50LXVwZGF0ZSB7XG4gICAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5pbXBvcnRhbnQtdXBkYXRlIHtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmNyaXRpY2FsLXVwZGF0ZSB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLndyb25nLXRpbWUge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMi43cmVtOyB9XG4gICAgICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLndyb25nLXRpbWUge1xuICAgICAgICBjb2xvcjogI2ZmNmYwMDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC53cm9uZy10aW1lIHtcbiAgICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLndyb25nLXRpbWUge1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuaWNvbiB7XG4gICAgICBtYXJnaW46IDEuNXJlbSAwO1xuICAgICAgd2lkdGg6IDVyZW07XG4gICAgICBoZWlnaHQ6IDVyZW07IH1cbiAgICAgIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cbiAgICAgIC50aGVtZS1ncmF5IC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmljb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gIC51cGRhdGUtdG9vbHRpcC5uZy10b29sdGlwLWxlZnQtYm90dG9tIHtcbiAgICBtYXJnaW4tbGVmdDogLTEuNXJlbTsgfVxuICAgIC51cGRhdGUtdG9vbHRpcC5uZy10b29sdGlwLWxlZnQtYm90dG9tOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDAuNnJlbTtcbiAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM0MjUwNWYgIzQyNTA1ZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMzZTQ2NGMgIzNlNDY0YzsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcC5uZy10b29sdGlwLWxlZnQtYm90dG9tOmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmZmZmICNmZmZmZmY7IH1cbiAgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQtYm90dG9tIHtcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtOyB9XG4gICAgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQtYm90dG9tOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwLjZyZW07XG4gICAgICBsZWZ0OiAtMXJlbTtcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQtYm90dG9tOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzQyNTA1ZiAjNDI1MDVmIHRyYW5zcGFyZW50OyB9XG4gICAgICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjM2U0NjRjICMzZTQ2NGMgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZmZmZmZmICNmZmZmZmYgdHJhbnNwYXJlbnQ7IH1cblxuLm5neC1jb250ZXh0bWVudSAuZHJvcGRvd24tbWVudSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDsgfVxuICAudGhlbWUtZGFyayAubmd4LWNvbnRleHRtZW51IC5kcm9wZG93bi1tZW51IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmIzNjQ0O1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KTsgfVxuICAudGhlbWUtZ3JheSAubmd4LWNvbnRleHRtZW51IC5kcm9wZG93bi1tZW51IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KTsgfVxuICAudGhlbWUtd2hpdGUgLm5neC1jb250ZXh0bWVudSAuZHJvcGRvd24tbWVudSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDEyMCwgMTIwLCAxMjAsIDAuNSk7IH1cblxuLm5neC1jb250ZXh0bWVudSBsaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogT3BlblNhbnMsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLm5neC1jb250ZXh0bWVudSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAuNWVtIDFlbTsgfVxuICAudGhlbWUtZGFyayAubmd4LWNvbnRleHRtZW51IGEge1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS1ncmF5IC5uZ3gtY29udGV4dG1lbnUgYSB7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLXdoaXRlIC5uZ3gtY29udGV4dG1lbnUgYSB7XG4gICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgLnRoZW1lLWRhcmsgLm5neC1jb250ZXh0bWVudSBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS1ncmF5IC5uZ3gtY29udGV4dG1lbnUgYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzUxNTk2MDtcbiAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAudGhlbWUtd2hpdGUgLm5neC1jb250ZXh0bWVudSBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdC5uZy1zZWxlY3Qtc2luZ2xlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlIHtcbiAgICBsaW5lLWhlaWdodDogMS44cmVtOyB9XG4gIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIGhlaWdodDogNC4ycmVtOyB9XG4gICAgLnRoZW1lLWRhcmsgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1zZWxlY3QtY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzFlMjc7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS1ncmF5IC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxO1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtd2hpdGUgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1zZWxlY3QtY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAgIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy1pbnB1dCB7XG4gICAgICAgIHRvcDogYXV0bzsgfVxuICAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIHtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAudGhlbWUtZGFyayAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzFlMjc7IH1cbiAgICAudGhlbWUtZ3JheSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7IH1cbiAgICAudGhlbWUtd2hpdGUgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OyB9XG4gICAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbiB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIHBhZGRpbmc6IDFyZW07IH1cbiAgICAgIC50aGVtZS1kYXJrIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxZTI3O1xuICAgICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgICAgIGNvbG9yOiAjNDM0NTRiOyB9XG4gICAgICAudGhlbWUtZGFyayAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1tYXJrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU4LCA2OSwgODUsIDAuNSk7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtZ3JheSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1tYXJrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU4LCA2MiwgNjYsIDAuNSk7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tbWFya2VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjUpO1xuICAgICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAgICAgLnRoZW1lLWRhcmsgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1NCwgNjgsIDAuNSk7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtZ3JheSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KTtcbiAgICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI0LCAyMjQsIDIyNCwgMC41KTtcbiAgICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB3aWR0aDogMXJlbTtcbiAgICAgIGhlaWdodDogMXJlbTsgfVxuICAgIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xuICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTsgfVxuICAgIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1kYXJrIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsLCAudGhlbWUtZGFyayBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtZGFyay5wbmcpO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCwgLnRoZW1lLWdyYXkgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIHtcbiAgYmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWdyYXkucG5nKTtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsLCAudGhlbWUtd2hpdGUgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIHtcbiAgYmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLXdoaXRlLnBuZyk7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5jb250ZW50IC5pY29uLmVycm9yLCAudGhlbWUtZGFyayBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmNvbnRlbnQgLmljb24uZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5jb250ZW50IC5pY29uLmVycm9yLCAudGhlbWUtZ3JheSBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmNvbnRlbnQgLmljb24uZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY29udGVudCAuaWNvbi5lcnJvciwgLnRoZW1lLXdoaXRlIGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY29udGVudCAuaWNvbi5lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNvbnRlbnQgLmljb24uc3VjY2VzcywgLnRoZW1lLWRhcmsgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jb250ZW50IC5pY29uLnN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5jb250ZW50IC5pY29uLnN1Y2Nlc3MsIC50aGVtZS1ncmF5IGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY29udGVudCAuaWNvbi5zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3Y2Y4ZDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNvbnRlbnQgLmljb24uc3VjY2VzcywgLnRoZW1lLXdoaXRlIGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY29udGVudCAuaWNvbi5zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjsgfVxuXG4udGhlbWUtZGFyayBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY29udGVudCAuaWNvbi5pbmZvLCAudGhlbWUtZGFyayBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmNvbnRlbnQgLmljb24uaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNvbnRlbnQgLmljb24uaW5mbywgLnRoZW1lLWdyYXkgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jb250ZW50IC5pY29uLmluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY29udGVudCAuaWNvbi5pbmZvLCAudGhlbWUtd2hpdGUgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jb250ZW50IC5pY29uLmluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5hY3Rpb24tYnV0dG9uLCAudGhlbWUtZGFyayBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmFjdGlvbi1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmO1xuICBjb2xvcjogIzExMTkyMTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuYWN0aW9uLWJ1dHRvbiwgLnRoZW1lLWdyYXkgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5hY3Rpb24tYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTtcbiAgY29sb3I6ICMxYTFhMWE7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5hY3Rpb24tYnV0dG9uLCAudGhlbWUtd2hpdGUgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5hY3Rpb24tYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNsb3NlLWJ1dHRvbiAuaWNvbiwgLnRoZW1lLWRhcmsgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jbG9zZS1idXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5jbG9zZS1idXR0b24gLmljb24sIC50aGVtZS1ncmF5IGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY2xvc2UtYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUxNTk2MDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNsb3NlLWJ1dHRvbiAuaWNvbiwgLnRoZW1lLXdoaXRlIGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY2xvc2UtYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJyZW0gc29saWQgIzJiMzY0NDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJyZW0gc29saWQgIzJmMzQzODsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXRyYW5zYWN0aW9uLWRldGFpbHMgLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4ycmVtIHNvbGlkICNlYmViZWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXRyYW5zYWN0aW9uLWRldGFpbHMgLnRhYmxlIC5yb3cgLmNlbGwubGFiZWwge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC5sYWJlbCB7XG4gIGNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC5sYWJlbCB7XG4gIGNvbG9yOiAjYTBhNWFiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIC50YWJsZSAucm93IC5jZWxsLnZhbHVlIHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXRyYW5zYWN0aW9uLWRldGFpbHMgLnRhYmxlIC5yb3cgLmNlbGwudmFsdWUge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXRyYW5zYWN0aW9uLWRldGFpbHMgLnRhYmxlIC5yb3cgLmNlbGwudmFsdWUge1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC5rZXktdmFsdWUge1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC5rZXktdmFsdWUge1xuICBjb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXRyYW5zYWN0aW9uLWRldGFpbHMgLnRhYmxlIC5yb3cgLmNlbGwua2V5LXZhbHVlIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXByb2dyZXNzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1wcm9ncmVzcy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXByb2dyZXNzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1wcm9ncmVzcy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDNmNGE7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXByb2dyZXNzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM2M2EzZTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXByb2dyZXNzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYzsgfVxuXG4udGhlbWUtZGFyayBhcHAtcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIgLnByb2dyZXNzLWJhci1mdWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIgLnByb2dyZXNzLWJhci1mdWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3Y2Y4ZDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXByb2dyZXNzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIC5wcm9ncmVzcy1iYXItZnVsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NmMxNzI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW9wZW4td2FsbGV0LW1vZGFsIC5tb2RhbCB7XG4gIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1kYXJrLnBuZyk7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1vcGVuLXdhbGxldC1tb2RhbCAubW9kYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtZ3JheS5wbmcpO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLW9wZW4td2FsbGV0LW1vZGFsIC5tb2RhbCB7XG4gIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC13aGl0ZS5wbmcpO1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2VuZC1tb2RhbCAubW9kYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtZGFyay5wbmcpO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2VuZC1tb2RhbCAubW9kYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtZ3JheS5wbmcpO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNlbmQtbW9kYWwgLm1vZGFsIHtcbiAgYmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLXdoaXRlLnBuZyk7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zZW5kLW1vZGFsIC5tb2RhbCAudGl0bGUge1xuICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgIzJiMzY0NDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2VuZC1tb2RhbCAubW9kYWwgLnRpdGxlIHtcbiAgYm9yZGVyLWJvdHRvbTogMC4ycmVtIHNvbGlkICMyZjM0Mzg7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zZW5kLW1vZGFsIC5tb2RhbCAudGl0bGUge1xuICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgI2ViZWJlYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2VuZC1tb2RhbCAubW9kYWwgLmFjdGlvbi1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmO1xuICBjb2xvcjogIzExMTkyMTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2VuZC1tb2RhbCAubW9kYWwgLmFjdGlvbi1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1O1xuICBjb2xvcjogIzFhMWExYTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNlbmQtbW9kYWwgLm1vZGFsIC5hY3Rpb24tYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cblxuYXBwLW1haW4sIGFwcC1jcmVhdGUtd2FsbGV0LCBhcHAtb3Blbi13YWxsZXQsIGFwcC1yZXN0b3JlLXdhbGxldCwgYXBwLXNlZWQtcGhyYXNlLCBhcHAtd2FsbGV0LWRldGFpbHMsIGFwcC1hc3NpZ24tYWxpYXMsIGFwcC1lZGl0LWFsaWFzLCBhcHAtdHJhbnNmZXItYWxpYXMsIGFwcC1zZXR0aW5ncywgYXBwLWxvZ2luIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIHBhZGRpbmc6IDNyZW07XG4gIG1pbi13aWR0aDogODVyZW07IH1cbiAgYXBwLW1haW4gLmNvbnRlbnQsIGFwcC1jcmVhdGUtd2FsbGV0IC5jb250ZW50LCBhcHAtb3Blbi13YWxsZXQgLmNvbnRlbnQsIGFwcC1yZXN0b3JlLXdhbGxldCAuY29udGVudCwgYXBwLXNlZWQtcGhyYXNlIC5jb250ZW50LCBhcHAtd2FsbGV0LWRldGFpbHMgLmNvbnRlbnQsIGFwcC1hc3NpZ24tYWxpYXMgLmNvbnRlbnQsIGFwcC1lZGl0LWFsaWFzIC5jb250ZW50LCBhcHAtdHJhbnNmZXItYWxpYXMgLmNvbnRlbnQsIGFwcC1zZXR0aW5ncyAuY29udGVudCwgYXBwLWxvZ2luIC5jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogM3JlbTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlOyB9XG4gICAgLnRoZW1lLWRhcmsgYXBwLW1haW4gLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC1jcmVhdGUtd2FsbGV0IC5jb250ZW50LCAudGhlbWUtZGFyayBhcHAtb3Blbi13YWxsZXQgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC1yZXN0b3JlLXdhbGxldCAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLXNlZWQtcGhyYXNlIC5jb250ZW50LCAudGhlbWUtZGFyayBhcHAtd2FsbGV0LWRldGFpbHMgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC1hc3NpZ24tYWxpYXMgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC1lZGl0LWFsaWFzIC5jb250ZW50LCAudGhlbWUtZGFyayBhcHAtdHJhbnNmZXItYWxpYXMgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC1zZXR0aW5ncyAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLWxvZ2luIC5jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KTtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgYXBwLW1haW4gLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC1jcmVhdGUtd2FsbGV0IC5jb250ZW50LCAudGhlbWUtZ3JheSBhcHAtb3Blbi13YWxsZXQgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC1yZXN0b3JlLXdhbGxldCAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLXNlZWQtcGhyYXNlIC5jb250ZW50LCAudGhlbWUtZ3JheSBhcHAtd2FsbGV0LWRldGFpbHMgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC1hc3NpZ24tYWxpYXMgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC1lZGl0LWFsaWFzIC5jb250ZW50LCAudGhlbWUtZ3JheSBhcHAtdHJhbnNmZXItYWxpYXMgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC1zZXR0aW5ncyAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLWxvZ2luIC5jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KTtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLXdoaXRlIGFwcC1tYWluIC5jb250ZW50LCAudGhlbWUtd2hpdGUgYXBwLWNyZWF0ZS13YWxsZXQgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtb3Blbi13YWxsZXQgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtcmVzdG9yZS13YWxsZXQgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtc2VlZC1waHJhc2UgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtd2FsbGV0LWRldGFpbHMgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtYXNzaWduLWFsaWFzIC5jb250ZW50LCAudGhlbWUtd2hpdGUgYXBwLWVkaXQtYWxpYXMgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtdHJhbnNmZXItYWxpYXMgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtbG9naW4gLmNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICBhcHAtbWFpbiAuY29udGVudCAuaGVhZCwgYXBwLWNyZWF0ZS13YWxsZXQgLmNvbnRlbnQgLmhlYWQsIGFwcC1vcGVuLXdhbGxldCAuY29udGVudCAuaGVhZCwgYXBwLXJlc3RvcmUtd2FsbGV0IC5jb250ZW50IC5oZWFkLCBhcHAtc2VlZC1waHJhc2UgLmNvbnRlbnQgLmhlYWQsIGFwcC13YWxsZXQtZGV0YWlscyAuY29udGVudCAuaGVhZCwgYXBwLWFzc2lnbi1hbGlhcyAuY29udGVudCAuaGVhZCwgYXBwLWVkaXQtYWxpYXMgLmNvbnRlbnQgLmhlYWQsIGFwcC10cmFuc2Zlci1hbGlhcyAuY29udGVudCAuaGVhZCwgYXBwLXNldHRpbmdzIC5jb250ZW50IC5oZWFkLCBhcHAtbG9naW4gLmNvbnRlbnQgLmhlYWQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDsgfVxuXG4udGhlbWUtZGFyayBhcHAtbWFpbiAuY29udGVudCAuYWRkLXdhbGxldCAuYWRkLXdhbGxldC1oZWxwIHtcbiAgY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLW1haW4gLmNvbnRlbnQgLmFkZC13YWxsZXQgLmFkZC13YWxsZXQtaGVscCB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtbWFpbiAuY29udGVudCAuYWRkLXdhbGxldCAuYWRkLXdhbGxldC1oZWxwIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW1haW4gLmNvbnRlbnQgLmFkZC13YWxsZXQgLmFkZC13YWxsZXQtaGVscCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLW1haW4gLmNvbnRlbnQgLmFkZC13YWxsZXQgLmFkZC13YWxsZXQtaGVscCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1tYWluIC5jb250ZW50IC5hZGQtd2FsbGV0IC5hZGQtd2FsbGV0LWhlbHAgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zZWVkLXBocmFzZSAuc2VlZC1waHJhc2UtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzFlMjc7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zZWVkLXBocmFzZSAuc2VlZC1waHJhc2UtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2VlZC1waHJhc2UgLnNlZWQtcGhyYXNlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0LWRldGFpbHMgLnNlZWQtcGhyYXNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MWUyNzsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0LWRldGFpbHMgLnNlZWQtcGhyYXNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI5MmQzMTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldC1kZXRhaWxzIC5zZWVkLXBocmFzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cblxuYXBwLXNldHRpbmdzIC5jb250ZW50IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLnRoZW1lLWRhcmsgYXBwLXNldHRpbmdzIC5jb250ZW50IC50aGVtZS1zZWxlY3Rpb24ge1xuICAgIGNvbG9yOiAjNTU2NTc2OyB9XG4gIC50aGVtZS1ncmF5IGFwcC1zZXR0aW5ncyAuY29udGVudCAudGhlbWUtc2VsZWN0aW9uIHtcbiAgICBjb2xvcjogIzU2NWM2MjsgfVxuICAudGhlbWUtd2hpdGUgYXBwLXNldHRpbmdzIC5jb250ZW50IC50aGVtZS1zZWxlY3Rpb24ge1xuICAgIGNvbG9yOiAjYTBhNWFiOyB9XG4gIC50aGVtZS1kYXJrIGFwcC1zZXR0aW5ncyAuY29udGVudCAuc2NhbGUtc2VsZWN0aW9uIC5idXR0b24tYmxvY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjMsIDMxLCAzOSwgMC41KTsgfVxuICAudGhlbWUtZ3JheSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI4LCAzMCwgMzMsIDAuNSk7IH1cbiAgLnRoZW1lLXdoaXRlIGFwcC1zZXR0aW5ncyAuY29udGVudCAuc2NhbGUtc2VsZWN0aW9uIC5idXR0b24tYmxvY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI0LCAyMjQsIDIyNCwgMC41KTsgfVxuICAudGhlbWUtZGFyayBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrIC5sYWJlbCB7XG4gICAgY29sb3I6ICM1NTY1NzY7IH1cbiAgLnRoZW1lLWdyYXkgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jayAubGFiZWwge1xuICAgIGNvbG9yOiAjNTY1YzYyOyB9XG4gIC50aGVtZS13aGl0ZSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrIC5sYWJlbCB7XG4gICAgY29sb3I6ICNhMGE1YWI7IH1cbiAgLnRoZW1lLWRhcmsgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jay5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cbiAgLnRoZW1lLWdyYXkgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jay5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cbiAgLnRoZW1lLXdoaXRlIGFwcC1zZXR0aW5ncyAuY29udGVudCAuc2NhbGUtc2VsZWN0aW9uIC5idXR0b24tYmxvY2suYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG4gIC50aGVtZS1kYXJrIGFwcC1zZXR0aW5ncyAuY29udGVudCAuc2NhbGUtc2VsZWN0aW9uIC5idXR0b24tYmxvY2suYWN0aXZlIC5sYWJlbCB7XG4gICAgY29sb3I6ICM0ZGIxZmY7IH1cbiAgLnRoZW1lLWdyYXkgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jay5hY3RpdmUgLmxhYmVsIHtcbiAgICBjb2xvcjogIzQyYTVmNTsgfVxuICAudGhlbWUtd2hpdGUgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jay5hY3RpdmUgLmxhYmVsIHtcbiAgICBjb2xvcjogIzJjOTVmMTsgfVxuXG5hcHAtbG9naW4ge1xuICBtaW4td2lkdGg6IGluaGVyaXQ7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxZjI3OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFjMWUyMTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1oZWFkZXIgaDMge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1oZWFkZXIgaDMge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtaGVhZGVyIGgzIHtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtaGVhZGVyIGJ1dHRvbiB7XG4gIGNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWhlYWRlciBidXR0b24ge1xuICBjb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtaGVhZGVyIGJ1dHRvbiB7XG4gIGNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC50ZXh0IHtcbiAgY29sb3I6ICM1NTY1NzY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC50ZXh0IHtcbiAgY29sb3I6ICM1NjVjNjI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAudGV4dCB7XG4gIGNvbG9yOiAjYTBhNWFiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLmluZGljYXRvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7XG4gIGNvbG9yOiAjMTExOTIxOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAuaW5kaWNhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTtcbiAgY29sb3I6ICMxYTFhMWE7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAuaW5kaWNhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzZjRhOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM2M2EzZTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciAuZmlsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cuYWNjb3VudC1zeW5jaHJvbml6YXRpb24ge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cuYWNjb3VudC1zeW5jaHJvbml6YXRpb24ge1xuICBjb2xvcjogIzU2NWM2MjsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93LmFjY291bnQtc3luY2hyb25pemF0aW9uIHtcbiAgY29sb3I6ICNhMGE1YWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KTtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KTtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWU4OGU1O1xuICBjb2xvcjogI2ZmZmZmZjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93IC50ZXh0IHtcbiAgY29sb3I6ICM1NTY1NzY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSAuc2lkZWJhci1hY2NvdW50LXJvdyAudGV4dCB7XG4gIGNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93IC50ZXh0IHtcbiAgY29sb3I6ICM5MWJhZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSAuc2lkZWJhci1hY2NvdW50LXJvdyAuaW5kaWNhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjtcbiAgY29sb3I6ICMxMTE5MjE7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSAuc2lkZWJhci1hY2NvdW50LXJvdyAuaW5kaWNhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTtcbiAgY29sb3I6ICMxYTFhMWE7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cgLmluZGljYXRvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cgLnN3aXRjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cgLnN3aXRjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93IC5zd2l0Y2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93LmFjY291bnQtc3luY2hyb25pemF0aW9uIHtcbiAgY29sb3I6ICM1NTY1NzY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSAuc2lkZWJhci1hY2NvdW50LXJvdy5hY2NvdW50LXN5bmNocm9uaXphdGlvbiB7XG4gIGNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93LmFjY291bnQtc3luY2hyb25pemF0aW9uIHtcbiAgY29sb3I6ICM5MWJhZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50OmhvdmVyOm5vdCguYWN0aXZlKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTgsIDY5LCA4NSwgMC41KTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQ6aG92ZXI6bm90KC5hY3RpdmUpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OCwgNjIsIDY2LCAwLjUpOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQ6aG92ZXI6bm90KC5hY3RpdmUpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjUpOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQgMCUsICMxNzFmMjcgMTAwJSk7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHM6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCAwJSwgIzFjMWUyMSAxMDAlKTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHM6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCAwJSwgd2hpdGUgMTAwJSk7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItc2V0dGluZ3Mge1xuICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgIzFmMjgzMzsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyB7XG4gIGJvcmRlci1ib3R0b206IDAuMnJlbSBzb2xpZCAjMmUzMzM3OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyB7XG4gIGJvcmRlci1ib3R0b206IDAuMnJlbSBzb2xpZCAjZWJlYmViOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbiBidXR0b24ge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24gYnV0dG9uIHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbiBidXR0b24ge1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24gYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24gYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItc2V0dGluZ3MgLndyYXAtYnV0dG9uIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItc2V0dGluZ3MgLndyYXAtYnV0dG9uLmFjdGl2ZSBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1NCwgNjgsIDAuNSkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlMGUwZTAgIWltcG9ydGFudDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24uYWN0aXZlIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2UwZTBlMCAhaW1wb3J0YW50OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24uYWN0aXZlIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTg4ZTUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24uYWN0aXZlIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmYgIWltcG9ydGFudDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24uYWN0aXZlIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjUgIWltcG9ydGFudDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItc2V0dGluZ3MgLndyYXAtYnV0dG9uLmFjdGl2ZSBidXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7IH1cblxuLnN5bmNocm9uaXphdGlvbi1zdGF0dXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGZsZXg6IDAgMCA3cmVtO1xuICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyB7XG4gICAgY29sb3I6ICM1NTY1NzY7IH1cbiAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMge1xuICAgIGNvbG9yOiAjNTY1YzYyOyB9XG4gIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyB7XG4gICAgY29sb3I6ICNhMGE1YWI7IH1cbiAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vZmZsaW5lLCAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAub25saW5lIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMi4ycmVtOyB9XG4gICAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAub2ZmbGluZTpiZWZvcmUsIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vbmxpbmU6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICAgIGhlaWdodDogMS4ycmVtOyB9XG4gICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLm9mZmxpbmU6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cbiAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAub2ZmbGluZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAub2ZmbGluZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vbmxpbmU6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2RhOWQ7IH1cbiAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAub25saW5lOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDdjZjhkOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vbmxpbmU6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0NmMxNzI7IH1cbiAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAuc3luY2luZywgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLmxvYWRpbmcge1xuICAgICAgbGluZS1oZWlnaHQ6IDVyZW07IH1cbiAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgaGVpZ2h0OiAwLjdyZW07XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nIC5wcm9ncmVzcy1iYXIge1xuICAgICAgICAgIGZsZXg6IDEgMCBhdXRvOyB9XG4gICAgICAgICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcgLnByb2dyZXNzLWJhciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzZjRhOyB9XG4gICAgICAgICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcgLnByb2dyZXNzLWJhciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzYzYTNlOyB9XG4gICAgICAgICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nIC5wcm9ncmVzcy1iYXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYzsgfVxuICAgICAgICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nIC5wcm9ncmVzcy1iYXIgLmZpbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgICAgICAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZyAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDsgfVxuICAgICAgICAgICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcgLnByb2dyZXNzLWJhciAuZmlsbCB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0N2NmOGQ7IH1cbiAgICAgICAgICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZyAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjsgfVxuICAgICAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZy5kb3dubG9hZGluZyAucHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzZjRhOyB9XG4gICAgICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nLmRvd25sb2FkaW5nIC5wcm9ncmVzcy1iYXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNjNhM2U7IH1cbiAgICAgICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nLmRvd25sb2FkaW5nIC5wcm9ncmVzcy1iYXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkY2RjZGM7IH1cbiAgICAgICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcuZG93bmxvYWRpbmcgLnByb2dyZXNzLWJhciAuZmlsbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAgICAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZy5kb3dubG9hZGluZyAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG4gICAgICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZy5kb3dubG9hZGluZyAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG4gICAgICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nIC5wcm9ncmVzcy1wZXJjZW50IHtcbiAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMC43cmVtO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtOyB9XG4gICAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAubG9hZGluZyB7XG4gICAgICAgIGFuaW1hdGlvbjogbW92ZSA1cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDEwMCUgMTAwJSwgY29sb3Itc3RvcCgwLjEyNSwgcmdiYSgwLCAwLCAwLCAwLjE1KSksIGNvbG9yLXN0b3AoMC4xMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC4yNSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjM3NSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjM3NSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNSwgcmdiYSgwLCAwLCAwLCAwLjE1KSksIGNvbG9yLXN0b3AoMC42MjUsIHJnYmEoMCwgMCwgMCwgMC4xNSkpLCBjb2xvci1zdG9wKDAuNjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC43NSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNzUsIHJnYmEoMCwgMCwgMCwgMC4xKSksIGNvbG9yLXN0b3AoMC44NzUsIHJnYmEoMCwgMCwgMCwgMC4xKSksIGNvbG9yLXN0b3AoMC44NzUsIHRyYW5zcGFyZW50KSwgdG8odHJhbnNwYXJlbnQpKSwgLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMTAwJSwgMTAwJSAwLCBjb2xvci1zdG9wKDAuMTI1LCByZ2JhKDAsIDAsIDAsIDAuMykpLCBjb2xvci1zdG9wKDAuMTI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC4yNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuMjUsIHJnYmEoMCwgMCwgMCwgMC4yNSkpLCBjb2xvci1zdG9wKDAuMzc1LCByZ2JhKDAsIDAsIDAsIDAuMjUpKSwgY29sb3Itc3RvcCgwLjM3NSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNSwgcmdiYSgwLCAwLCAwLCAwLjMpKSwgY29sb3Itc3RvcCgwLjYyNSwgcmdiYSgwLCAwLCAwLCAwLjMpKSwgY29sb3Itc3RvcCgwLjYyNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNzUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjc1LCByZ2JhKDAsIDAsIDAsIDAuMjUpKSwgY29sb3Itc3RvcCgwLjg3NSwgcmdiYSgwLCAwLCAwLCAwLjI1KSksIGNvbG9yLXN0b3AoMC44NzUsIHRyYW5zcGFyZW50KSwgdG8odHJhbnNwYXJlbnQpKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA3cmVtIDdyZW07XG4gICAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgICAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAubG9hZGluZyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDsgfVxuICAgICAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAubG9hZGluZyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ3Y2Y4ZDsgfVxuICAgICAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLmxvYWRpbmcge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0NmMxNzI7IH1cbiAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLnVwZGF0ZS10ZXh0IHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS44cmVtO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLnVwZGF0ZS10ZXh0LnRpbWUge1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTsgfVxuICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pY29uIHtcbiAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgbWFyZ2luOiAwLjNyZW0gMCAwIDAuNnJlbTtcbiAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICBoZWlnaHQ6IDEuMnJlbTsgfVxuICAgICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24udXBkYXRlIHtcbiAgICAgICAgbWFzazogdXJsKC4vYXNzZXRzL2ljb25zL3VwZGF0ZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7IH1cbiAgICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pY29uLnRpbWUge1xuICAgICAgICBtYXNrOiB1cmwoLi9hc3NldHMvaWNvbnMvdGltZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7IH1cbiAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuc3RhbmRhcmQge1xuICAgICAgY29sb3I6ICM0ZGIxZmY7IH1cbiAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuc3RhbmRhcmQge1xuICAgICAgY29sb3I6ICM0MmE1ZjU7IH1cbiAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLnN0YW5kYXJkIHtcbiAgICAgIGNvbG9yOiAjMmM5NWYxOyB9XG4gICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmltcG9ydGFudCB7XG4gICAgICBjb2xvcjogI2ZmNmYwMDsgfVxuICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pbXBvcnRhbnQge1xuICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmltcG9ydGFudCB7XG4gICAgICBjb2xvcjogI2ZmNmYwMDsgfVxuICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5jcml0aWNhbCB7XG4gICAgICBjb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5jcml0aWNhbCB7XG4gICAgICBjb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuY3JpdGljYWwge1xuICAgICAgY29sb3I6ICNmZjUyNTI7IH1cbiAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAudGltZSB7XG4gICAgICBjb2xvcjogI2ZmNmYwMDsgfVxuICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC50aW1lIHtcbiAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC50aW1lIHtcbiAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24uc3RhbmRhcmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pY29uLnN0YW5kYXJkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cbiAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24uc3RhbmRhcmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pY29uLmltcG9ydGFudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24uaW1wb3J0YW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24uaW1wb3J0YW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi5jcml0aWNhbCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24uY3JpdGljYWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi5jcml0aWNhbCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24udGltZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24udGltZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pY29uLnRpbWUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMDsgfVxuXG5Aa2V5ZnJhbWVzIG1vdmUge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtN3JlbTsgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDdyZW07IH0gfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IHtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAuaGVhZGVyIGJ1dHRvbiB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLmhlYWRlciBidXR0b24ge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAuaGVhZGVyIGJ1dHRvbiB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLmhlYWRlciBidXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLmhlYWRlciBidXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC5oZWFkZXIgYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG5hcHAtd2FsbGV0IC5oZWFkZXIgYnV0dG9uOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAudGhlbWUtZGFyayBhcHAtd2FsbGV0IC5oZWFkZXIgYnV0dG9uOmRpc2FibGVkIC5pY29uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2OyB9XG4gIC50aGVtZS1ncmF5IGFwcC13YWxsZXQgLmhlYWRlciBidXR0b246ZGlzYWJsZWQgLmljb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NjVjNjI7IH1cbiAgLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLmhlYWRlciBidXR0b246ZGlzYWJsZWQgLmljb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MWJhZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAuaGVhZGVyIC5hbGlhcyAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAuaGVhZGVyIC5hbGlhcyAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLmhlYWRlciAuYWxpYXMgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLmFkZHJlc3Mge1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC5hZGRyZXNzIHtcbiAgY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLmFkZHJlc3Mge1xuICBjb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC5hZGRyZXNzIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC5hZGRyZXNzIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAuYWRkcmVzcyAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjMsIDMxLCAzOSwgMC41KTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyOCwgMzAsIDMzLCAwLjUpOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjQsIDIyNCwgMjI0LCAwLjUpOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiIC5pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmO1xuICBjb2xvcjogIzExMTkyMTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiIC5pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1O1xuICBjb2xvcjogIzFhMWExYTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYiAuaW5kaWNhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1NCwgNjgsIDAuNSk7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM3LCA0MCwgNDMsIDAuNSk7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWI6aG92ZXI6bm90KC5hY3RpdmUpOm5vdCguZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OCwgNjksIDg1LCAwLjUpOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWI6aG92ZXI6bm90KC5hY3RpdmUpOm5vdCguZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OCwgNjIsIDY2LCAwLjUpOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiOmhvdmVyOm5vdCguYWN0aXZlKTpub3QoLmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAudGFicy1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MywgNTQsIDY4LCAwLjUpOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAudGFicyAudGFicy1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM3LCA0MCwgNDMsIDAuNSk7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24ge1xuICBib3JkZXItdG9wOiAwLjJyZW0gc29saWQgIzJiMzY0NDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24ge1xuICBib3JkZXItdG9wOiAwLjJyZW0gc29saWQgIzJmMzQzODsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIHtcbiAgYm9yZGVyLXRvcDogMC4ycmVtIHNvbGlkICNlYmViZWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYjM2NDQ7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciAucGFnaW5hdGlvbiBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmYzNDM4O1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciAucGFnaW5hdGlvbiBidXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MjAyYTtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIGJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjUyOTJkO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIGJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24gYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhNDg1YTtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIGJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzODNlNDM7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24gYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNlbmQgLmZvcm0tc2VuZCAuc2VuZC1zZWxlY3Qge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2VuZCAuZm9ybS1zZW5kIC5zZW5kLXNlbGVjdCB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2VuZCAuZm9ybS1zZW5kIC5zZW5kLXNlbGVjdCB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zZW5kIC5mb3JtLXNlbmQgLnNlbmQtc2VsZWN0IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2VuZCAuZm9ybS1zZW5kIC5zZW5kLXNlbGVjdCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zZW5kIC5mb3JtLXNlbmQgLnNlbmQtc2VsZWN0IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2VuZCAuZm9ybS1zZW5kIC5hZGRpdGlvbmFsLWRldGFpbHMge1xuICBib3JkZXI6IDAuMnJlbSBzb2xpZCAjMmIzNjQ0OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zZW5kIC5mb3JtLXNlbmQgLmFkZGl0aW9uYWwtZGV0YWlscyB7XG4gIGJvcmRlcjogMC4ycmVtIHNvbGlkICMyZjM0Mzg7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zZW5kIC5mb3JtLXNlbmQgLmFkZGl0aW9uYWwtZGV0YWlscyB7XG4gIGJvcmRlcjogMC4ycmVtIHNvbGlkICNlYmViZWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXJlY2VpdmUgLmJ0bi1jb3B5LWFkZHJlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1yZWNlaXZlIC5idG4tY29weS1hZGRyZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXJlY2VpdmUgLmJ0bi1jb3B5LWFkZHJlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyLmxvY2tlZC10cmFuc2FjdGlvbiB7XG4gIGNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyLmxvY2tlZC10cmFuc2FjdGlvbiB7XG4gIGNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ci5sb2NrZWQtdHJhbnNhY3Rpb24ge1xuICBjb2xvcjogI2EwYTVhYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rMSkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgyMDJhOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0bisxKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNTI5MmQ7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0bisxKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDRuKzIpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MjAyYTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rMikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjUyOTJkOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rMikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0biszKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0biszKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rMykge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4udGhlbWUtZGFyayBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rNCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rNCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDRuKzQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cyAuY29uZmlybWF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2Y0YTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAuc3RhdHVzIC5jb25maXJtYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzYzYTNlOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAuc3RhdHVzIC5jb25maXJtYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMgLmNvbmZpcm1hdGlvbiAuZmlsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1Y2RhOWQ7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cyAuY29uZmlybWF0aW9uIC5maWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3Y2Y4ZDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cyAuY29uZmlybWF0aW9uIC5maWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjsgfVxuXG4udGhlbWUtZGFyayBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAubG9jay10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLmxvY2stdHJhbnNhY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAubG9jay10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnVubG9jay10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnVubG9jay10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC51bmxvY2stdHJhbnNhY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMuc2VuZCAuc3RhdHVzLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAuc3RhdHVzLnNlbmQgLnN0YXR1cy10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMuc2VuZCAuc3RhdHVzLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtZGFyayBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAuc3RhdHVzLnJlY2VpdmVkIC5zdGF0dXMtdHJhbnNhY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMucmVjZWl2ZWQgLnN0YXR1cy10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0N2NmOGQ7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMucmVjZWl2ZWQgLnN0YXR1cy10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NmMxNzI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24ubmV3LCAudGhlbWUtZGFyayBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5hbGVydCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24ubmV3LCAudGhlbWUtZ3JheSBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5hbGVydCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLm5ldywgLnRoZW1lLXdoaXRlIGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLmFsZXJ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtZGFyayBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5wdXJjaGFzZSwgLnRoZW1lLWRhcmsgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24uc2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24ucHVyY2hhc2UsIC50aGVtZS1ncmF5IGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLnNlbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5wdXJjaGFzZSwgLnRoZW1lLXdoaXRlIGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLnNlbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAucHVyY2hhc2Utc2VsZWN0IHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXB1cmNoYXNlIC5mb3JtLXB1cmNoYXNlIC5wdXJjaGFzZS1zZWxlY3Qge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXB1cmNoYXNlIC5mb3JtLXB1cmNoYXNlIC5wdXJjaGFzZS1zZWxlY3Qge1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXNlbGVjdCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXB1cmNoYXNlIC5mb3JtLXB1cmNoYXNlIC5wdXJjaGFzZS1zZWxlY3QgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXNlbGVjdCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXB1cmNoYXNlIC5mb3JtLXB1cmNoYXNlIC5wdXJjaGFzZS1zdGF0ZXMge1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXN0YXRlcyB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXN0YXRlcyB7XG4gIGNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAuYWRkaXRpb25hbC1kZXRhaWxzIHtcbiAgYm9yZGVyOiAwLjJyZW0gc29saWQgIzJiMzY0NDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLmFkZGl0aW9uYWwtZGV0YWlscyB7XG4gIGJvcmRlcjogMC4ycmVtIHNvbGlkICMyZjM0Mzg7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAuYWRkaXRpb25hbC1kZXRhaWxzIHtcbiAgYm9yZGVyOiAwLjJyZW0gc29saWQgI2ViZWJlYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtcHVyY2hhc2UgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDNmNGE7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXB1cmNoYXNlIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzYzYTNlOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHVyY2hhc2UgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2RjZGM7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXB1cmNoYXNlIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIgLnByb2dyZXNzLWJhci1mdWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHVyY2hhc2UgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDdjZjhkOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHVyY2hhc2UgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDZjMTcyOyB9XG5cbmFwcC1tZXNzYWdlcyB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZCBzcGFuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW1lc3NhZ2VzIHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxkIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtbWVzc2FnZXMgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGQgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtbWVzc2FnZXMgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGQgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS1kYXJrIGFwcC10eXBpbmctbWVzc2FnZSAuaGVhZCAuaW50ZXJsb2N1dG9yIHtcbiAgY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXR5cGluZy1tZXNzYWdlIC5oZWFkIC5pbnRlcmxvY3V0b3Ige1xuICBjb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXR5cGluZy1tZXNzYWdlIC5oZWFkIC5pbnRlcmxvY3V0b3Ige1xuICBjb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2LmRhdGUge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2LmRhdGUge1xuICBjb2xvcjogIzU2NWM2MjsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5kYXRlIHtcbiAgY29sb3I6ICNhMGE1YWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5teSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYTM1NDQ7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5teSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDM2M2M7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYubXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbmFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYubXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAtMS4xcmVtO1xuICBib3JkZXI6IDEuMnJlbSBzb2xpZCB0cmFuc3BhcmVudDsgfVxuICAudGhlbWUtZGFyayBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2Lm15OmJlZm9yZSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzJhMzU0NDsgfVxuICAudGhlbWUtZ3JheSBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2Lm15OmJlZm9yZSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzMwMzYzYzsgfVxuICAudGhlbWUtd2hpdGUgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5teTpiZWZvcmUge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNmZmY7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5idWRkeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODIwMmE7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5idWRkeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNTI5MmQ7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYuYnVkZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGVkOyB9XG5cbmFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYuYnVkZHk6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTEuMXJlbTtcbiAgdG9wOiAwO1xuICBib3JkZXI6IDEuMnJlbSBzb2xpZCB0cmFuc3BhcmVudDsgfVxuICAudGhlbWUtZGFyayBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2LmJ1ZGR5OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMTgyMDJhOyB9XG4gIC50aGVtZS1ncmF5IGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYuYnVkZHk6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMyNTI5MmQ7IH1cbiAgLnRoZW1lLXdoaXRlIGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYuYnVkZHk6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNlZGVkZWQ7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXN0YWtpbmcgLmNoYXJ0LWhlYWRlciAuZ2VuZXJhbCAubGFiZWwge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc3Rha2luZyAuY2hhcnQtaGVhZGVyIC5nZW5lcmFsIC5sYWJlbCB7XG4gIGNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc3Rha2luZyAuY2hhcnQtaGVhZGVyIC5nZW5lcmFsIC5sYWJlbCB7XG4gIGNvbG9yOiAjYTBhNWFiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zdGFraW5nIC5jaGFydC1oZWFkZXIgLmdlbmVyYWwgLm9wdGlvbnMge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc3Rha2luZyAuY2hhcnQtaGVhZGVyIC5nZW5lcmFsIC5vcHRpb25zIHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zdGFraW5nIC5jaGFydC1oZWFkZXIgLmdlbmVyYWwgLm9wdGlvbnMge1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG5hcHAtc3Rha2luZyAuY2hhcnQtaGVhZGVyIC5zZWxlY3RlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZm9udC1zaXplOiAxLjZyZW07IH1cblxuLnRoZW1lLWRhcmsgYXBwLXN0YWtpbmcgLmNoYXJ0LW9wdGlvbnMgLnRpdGxlIHtcbiAgY29sb3I6ICM1NTY1NzY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXN0YWtpbmcgLmNoYXJ0LW9wdGlvbnMgLnRpdGxlIHtcbiAgY29sb3I6ICM1NjVjNjI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zdGFraW5nIC5jaGFydC1vcHRpb25zIC50aXRsZSB7XG4gIGNvbG9yOiAjYTBhNWFiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zdGFraW5nIC5jaGFydC1vcHRpb25zIC5vcHRpb25zIGJ1dHRvbiB7XG4gIGNvbG9yOiAjZTBlMGUwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmIzNjQ0OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zdGFraW5nIC5jaGFydC1vcHRpb25zIC5vcHRpb25zIGJ1dHRvbiB7XG4gIGNvbG9yOiAjZTBlMGUwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc3Rha2luZyAuY2hhcnQtb3B0aW9ucyAub3B0aW9ucyBidXR0b24ge1xuICBjb2xvcjogIzQzNDU0YjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZGFyayBhcHAtc3Rha2luZyAuY2hhcnQtb3B0aW9ucyAub3B0aW9ucyBidXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc3Rha2luZyAuY2hhcnQtb3B0aW9ucyAub3B0aW9ucyBidXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUxNTk2MDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXN0YWtpbmcgLmNoYXJ0LW9wdGlvbnMgLm9wdGlvbnMgYnV0dG9uLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuLmlucHV0LWJsb2NrLWFsaWFzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5pbnB1dC1ibG9jay1hbGlhcyAuYWxpYXMtZHJvcGRvd24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDYuNXJlbTtcbiAgICBtYXgtaGVpZ2h0OiAxMHJlbTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC50aGVtZS1kYXJrIC5pbnB1dC1ibG9jay1hbGlhcyAuYWxpYXMtZHJvcGRvd24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE3MWUyNztcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgLmlucHV0LWJsb2NrLWFsaWFzIC5hbGlhcy1kcm9wZG93biB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxO1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrLWFsaWFzIC5hbGlhcy1kcm9wZG93biB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICAuaW5wdXQtYmxvY2stYWxpYXMgLmFsaWFzLWRyb3Bkb3duIGRpdiB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIHBhZGRpbmc6IDFyZW07IH1cbiAgICAgIC50aGVtZS1kYXJrIC5pbnB1dC1ibG9jay1hbGlhcyAuYWxpYXMtZHJvcGRvd24gZGl2OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OCwgNjksIDg1LCAwLjUpOyB9XG4gICAgICAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2stYWxpYXMgLmFsaWFzLWRyb3Bkb3duIGRpdjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTgsIDYyLCA2NiwgMC41KTsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC5pbnB1dC1ibG9jay1hbGlhcyAuYWxpYXMtZHJvcGRvd24gZGl2OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjUpOyB9XG5cbmFwcC1jb250YWN0cywgYXBwLWFkZC1jb250YWN0cyxcbmFwcC1jb250YWN0LXNlbmQsIGFwcC1leHBvcnQtaW1wb3J0IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIHBhZGRpbmc6IDNyZW07XG4gIG1pbi13aWR0aDogODVyZW07IH1cbiAgYXBwLWNvbnRhY3RzIC5jb250ZW50LCBhcHAtYWRkLWNvbnRhY3RzIC5jb250ZW50LFxuICBhcHAtY29udGFjdC1zZW5kIC5jb250ZW50LCBhcHAtZXhwb3J0LWltcG9ydCAuY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDNyZW07XG4gICAgbWluLWhlaWdodDogMTAwJTsgfVxuICAgIC50aGVtZS1kYXJrIGFwcC1jb250YWN0cyAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLWFkZC1jb250YWN0cyAuY29udGVudCwgLnRoZW1lLWRhcmtcbiAgICBhcHAtY29udGFjdC1zZW5kIC5jb250ZW50LCAudGhlbWUtZGFyayBhcHAtZXhwb3J0LWltcG9ydCAuY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1NCwgNjgsIDAuNSk7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS1ncmF5IGFwcC1jb250YWN0cyAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLWFkZC1jb250YWN0cyAuY29udGVudCwgLnRoZW1lLWdyYXlcbiAgICBhcHAtY29udGFjdC1zZW5kIC5jb250ZW50LCAudGhlbWUtZ3JheSBhcHAtZXhwb3J0LWltcG9ydCAuY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM3LCA0MCwgNDMsIDAuNSk7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS13aGl0ZSBhcHAtY29udGFjdHMgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtYWRkLWNvbnRhY3RzIC5jb250ZW50LCAudGhlbWUtd2hpdGVcbiAgICBhcHAtY29udGFjdC1zZW5kIC5jb250ZW50LCAudGhlbWUtd2hpdGUgYXBwLWV4cG9ydC1pbXBvcnQgLmNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICBhcHAtY29udGFjdHMgLmNvbnRlbnQgLmhlYWQsIGFwcC1hZGQtY29udGFjdHMgLmNvbnRlbnQgLmhlYWQsXG4gICAgYXBwLWNvbnRhY3Qtc2VuZCAuY29udGVudCAuaGVhZCwgYXBwLWV4cG9ydC1pbXBvcnQgLmNvbnRlbnQgLmhlYWQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDsgfVxuXG4udGhlbWUtZGFyayBhcHAtY29udGFjdHMgdGFibGUgLmFsaWFzIHtcbiAgY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWNvbnRhY3RzIHRhYmxlIC5hbGlhcyB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtY29udGFjdHMgdGFibGUgLmFsaWFzIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWNvbnRhY3RzIHRhYmxlIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWNvbnRhY3RzIHRhYmxlIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250YWN0cyB0YWJsZSBidXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1jb250YWN0cyB0YWJsZSBidXR0b24gc3BhbiB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1jb250YWN0cyB0YWJsZSBidXR0b24gc3BhbiB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtY29udGFjdHMgdGFibGUgYnV0dG9uIHNwYW4ge1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtY29udGFjdHMgLmZvb3RlciB7XG4gIGNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1jb250YWN0cyAuZm9vdGVyIHtcbiAgY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250YWN0cyAuZm9vdGVyIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWNvbnRhY3RzIC5mb290ZXIgLmltcG9ydC1idG4ge1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtY29udGFjdHMgLmZvb3RlciAuaW1wb3J0LWJ0biB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtY29udGFjdHMgLmZvb3RlciAuaW1wb3J0LWJ0biB7XG4gIGNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1jb250YWN0cyAuZm9vdGVyIC5pbXBvcnQtYnRuIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtY29udGFjdHMgLmZvb3RlciAuaW1wb3J0LWJ0biAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250YWN0cyAuZm9vdGVyIC5pbXBvcnQtYnRuIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtY29udGFjdC1zZW5kIC53YWxsZXRzLXNlbGVjdGlvbiBidXR0b24ge1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtY29udGFjdC1zZW5kIC53YWxsZXRzLXNlbGVjdGlvbiBidXR0b24ge1xuICBjb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWNvbnRhY3Qtc2VuZCAud2FsbGV0cy1zZWxlY3Rpb24gYnV0dG9uIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLmZvcm0tZGV0YWlscyB7XG4gIG1hcmdpbi10b3A6IDEuOHJlbTsgfVxuICAuZm9ybS1kZXRhaWxzIC5pbnB1dC1ibG9jazpmaXJzdC1jaGlsZCB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuZm9ybS1kZXRhaWxzIC53YWxsZXQtYnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIC5mb3JtLWRldGFpbHMgLndhbGxldC1idXR0b25zIGJ1dHRvbiB7XG4gICAgICBtYXJnaW46IDIuOXJlbSAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDE1cmVtOyB9XG5cbi5mb3JtLXNlZWQgbGFiZWwge1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNHJlbTsgfVxuICAudGhlbWUtZGFyayAuZm9ybS1zZWVkIGxhYmVsIHtcbiAgICBjb2xvcjogIzU1NjU3NjsgfVxuICAudGhlbWUtZ3JheSAuZm9ybS1zZWVkIGxhYmVsIHtcbiAgICBjb2xvcjogIzU2NWM2MjsgfVxuICAudGhlbWUtd2hpdGUgLmZvcm0tc2VlZCBsYWJlbCB7XG4gICAgY29sb3I6ICNhMGE1YWI7IH1cblxuLmZvcm0tc2VlZCAuZm9ybS1jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDNyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC50aGVtZS1kYXJrIC5mb3JtLXNlZWQgLmZvcm0tY29udGVudCB7XG4gICAgYm9yZGVyOiAycHggc29saWQgIzJiMzY0NDsgfVxuICAudGhlbWUtZ3JheSAuZm9ybS1zZWVkIC5mb3JtLWNvbnRlbnQge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICMyZjM0Mzg7IH1cbiAgLnRoZW1lLXdoaXRlIC5mb3JtLXNlZWQgLmZvcm0tY29udGVudCB7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2ViZWJlYjsgfVxuXG4uZm9ybS1zZWVkIC50ZXh0LWNvcmFsIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC50aGVtZS1kYXJrIC5mb3JtLXNlZWQgLnRleHQtY29yYWwge1xuICAgIGNvbG9yOiAjNGRiMWZmOyB9XG4gIC50aGVtZS1ncmF5IC5mb3JtLXNlZWQgLnRleHQtY29yYWwge1xuICAgIGNvbG9yOiAjNDJhNWY1OyB9XG4gIC50aGVtZS13aGl0ZSAuZm9ybS1zZWVkIC50ZXh0LWNvcmFsIHtcbiAgICBjb2xvcjogIzJjOTVmMTsgfVxuXG4uZm9ybS1zZWVkIC5zZWVkLXBocmFzZS1mb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1heC13aWR0aDogMzhyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5mb3JtLXNlZWQgLnNlZWQtcGhyYXNlLWZvcm0gLmlucHV0LWJsb2NrLFxuICAuZm9ybS1zZWVkIC5zZWVkLXBocmFzZS1mb3JtIGJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmZvcm0tc2VlZCAuc2VlZC1waHJhc2UtZm9ybSAuZXJyb3ItbWVzc2FnZSB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAgIC50aGVtZS1kYXJrIC5mb3JtLXNlZWQgLnNlZWQtcGhyYXNlLWZvcm0gLmVycm9yLW1lc3NhZ2Uge1xuICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtZ3JheSAuZm9ybS1zZWVkIC5zZWVkLXBocmFzZS1mb3JtIC5lcnJvci1tZXNzYWdlIHtcbiAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5mb3JtLXNlZWQgLnNlZWQtcGhyYXNlLWZvcm0gLmVycm9yLW1lc3NhZ2Uge1xuICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgLmZvcm0tc2VlZCAuc2VlZC1waHJhc2UtZm9ybSAuc2VjdXJlZC1zZWVkIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgLnRoZW1lLWRhcmsgLmZvcm0tc2VlZCAuc2VlZC1waHJhc2UtZm9ybSAuc2VjdXJlZC1zZWVkIHtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgLmZvcm0tc2VlZCAuc2VlZC1waHJhc2UtZm9ybSAuc2VjdXJlZC1zZWVkIHtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5mb3JtLXNlZWQgLnNlZWQtcGhyYXNlLWZvcm0gLnNlY3VyZWQtc2VlZCB7XG4gICAgICBjb2xvcjogI2EwYTVhYjsgfVxuICAgIC5mb3JtLXNlZWQgLnNlZWQtcGhyYXNlLWZvcm0gLnNlY3VyZWQtc2VlZCAuaWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuMnJlbTsgfVxuICAuZm9ybS1zZWVkIC5zZWVkLXBocmFzZS1mb3JtIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIC5mb3JtLXNlZWQgLnNlZWQtcGhyYXNlLWZvcm0gYnV0dG9uIC5pY29uIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtOyB9XG5cbi5zZWVkLXBocmFzZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9XG4gIC5zZWVkLXBocmFzZS10aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC50aGVtZS1kYXJrIC5zZWVkLXBocmFzZS10aXRsZSB7XG4gICAgICBjb2xvcjogIzU1NjU3NjsgfVxuICAgIC50aGVtZS1ncmF5IC5zZWVkLXBocmFzZS10aXRsZSB7XG4gICAgICBjb2xvcjogIzU2NWM2MjsgfVxuICAgIC50aGVtZS13aGl0ZSAuc2VlZC1waHJhc2UtdGl0bGUge1xuICAgICAgY29sb3I6ICNhMGE1YWI7IH1cbiAgICAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgLmljb24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHdpZHRoOiAxLjdyZW07XG4gICAgICAgIGhlaWdodDogMS43cmVtOyB9XG4gICAgICAgIC5zZWVkLXBocmFzZS10aXRsZSAucmlnaHQtcGFydCAuaWNvbi5jb3B5IHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMnJlbTtcbiAgICAgICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvY29weS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7IH1cbiAgICAgICAgICAudGhlbWUtZGFyayAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgLmljb24uY29weSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG4gICAgICAgICAgLnRoZW1lLWdyYXkgLnNlZWQtcGhyYXNlLXRpdGxlIC5yaWdodC1wYXJ0IC5pY29uLmNvcHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuICAgICAgICAgIC50aGVtZS13aGl0ZSAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgLmljb24uY29weSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG4gICAgICAgICAgLnNlZWQtcGhyYXNlLXRpdGxlIC5yaWdodC1wYXJ0IC5pY29uLmNvcHk6aG92ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMC43NTsgfVxuICAgICAgICAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgLmljb24uY29waWVkIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMnJlbTtcbiAgICAgICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvY29tcGxldGUtdGVzdHdhbGxldC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7IH1cbiAgICAgICAgICAudGhlbWUtZGFyayAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgLmljb24uY29waWVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cbiAgICAgICAgICAudGhlbWUtZ3JheSAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgLmljb24uY29waWVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cbiAgICAgICAgICAudGhlbWUtd2hpdGUgLnNlZWQtcGhyYXNlLXRpdGxlIC5yaWdodC1wYXJ0IC5pY29uLmNvcGllZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG4gICAgICAgIC5zZWVkLXBocmFzZS10aXRsZSAucmlnaHQtcGFydCAuaWNvbi5zZWN1cmVkLCAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgLmljb24udW5zZWN1cmVkIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMS4ycmVtOyB9XG4gICAgICAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMi40cmVtO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgICAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgc3BhbiAuaWNvbiB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMnJlbTsgfVxuICAuc2VlZC1waHJhc2UtY29udGVudCB7XG4gICAgcGFkZGluZzogMXJlbSAwIDFyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICAgLnRoZW1lLWRhcmsgLnNlZWQtcGhyYXNlLWNvbnRlbnQge1xuICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMyYjM2NDQ7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzJiMzY0NDsgfVxuICAgIC50aGVtZS1ncmF5IC5zZWVkLXBocmFzZS1jb250ZW50IHtcbiAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjMmYzNDM4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMyZjM0Mzg7IH1cbiAgICAudGhlbWUtd2hpdGUgLnNlZWQtcGhyYXNlLWNvbnRlbnQge1xuICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNlYmViZWI7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ViZWJlYjsgfVxuICAgIC5zZWVkLXBocmFzZS1jb250ZW50IC5pdGVtIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcGFkZGluZzogMCAycmVtO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDcpO1xuICAgICAgbWluLWhlaWdodDogMzVweDtcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gICAgICAudGhlbWUtZGFyayAuc2VlZC1waHJhc2UtY29udGVudCAuaXRlbSB7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtZ3JheSAuc2VlZC1waHJhc2UtY29udGVudCAuaXRlbSB7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnNlZWQtcGhyYXNlLWNvbnRlbnQgLml0ZW0ge1xuICAgICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnNlZWQtcGhyYXNlLWNvbnRlbnQgLml0ZW0uZGFyayB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxODIwMmE7IH1cbiAgICAgIC50aGVtZS1ncmF5IC5zZWVkLXBocmFzZS1jb250ZW50IC5pdGVtLmRhcmsge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnNlZWQtcGhyYXNlLWNvbnRlbnQgLml0ZW0uZGFyayB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cbiAgLnNlZWQtcGhyYXNlLWZvb3RlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLnNlZWQtcGhyYXNlLWZvb3RlciAudGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICBsaW5lLWhlaWdodDogMi40cmVtOyB9XG4gICAgICAudGhlbWUtZGFyayAuc2VlZC1waHJhc2UtZm9vdGVyIC50aXRsZSB7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtZ3JheSAuc2VlZC1waHJhc2UtZm9vdGVyIC50aXRsZSB7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnNlZWQtcGhyYXNlLWZvb3RlciAudGl0bGUge1xuICAgICAgICBjb2xvcjogIzQzNDU0YjsgfVxuXG4uaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogMS42cmVtO1xuICBoZWlnaHQ6IDEuNnJlbTsgfVxuICAuaWNvbi5zZWN1cmVkIHtcbiAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvc2VjdXJlZC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7IH1cbiAgICAudGhlbWUtZGFyayAuaWNvbi5zZWN1cmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2RhOWQ7IH1cbiAgICAudGhlbWUtZ3JheSAuaWNvbi5zZWN1cmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0N2NmOGQ7IH1cbiAgICAudGhlbWUtd2hpdGUgLmljb24uc2VjdXJlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDZjMTcyOyB9XG4gIC5pY29uLmluZm8ge1xuICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9pbmZvLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjsgfVxuICAgIC50aGVtZS1kYXJrIC5pY29uLmluZm8ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAgIC50aGVtZS1ncmF5IC5pY29uLmluZm8ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuICAgIC50aGVtZS13aGl0ZSAuaWNvbi5pbmZvIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cbiAgLmljb24udW5zZWN1cmVkIHtcbiAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvdW5zZWN1cmVkLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjsgfVxuICAgIC50aGVtZS1kYXJrIC5pY29uLnVuc2VjdXJlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLWdyYXkgLmljb24udW5zZWN1cmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtd2hpdGUgLmljb24udW5zZWN1cmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cbiAgLmljb24uc2FmZXR5IHtcbiAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvc2FmZXR5LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjsgfVxuICAgIC50aGVtZS1kYXJrIC5pY29uLnNhZmV0eSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOTIxOyB9XG4gICAgLnRoZW1lLWdyYXkgLmljb24uc2FmZXR5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYTFhMWE7IH1cbiAgICAudGhlbWUtd2hpdGUgLmljb24uc2FmZXR5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cblxuLndyYXAtYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLndyYXAtYnV0dG9ucyAuc2VlZC1waHJhc2UtYnV0dG9uIHtcbiAgICBtYXJnaW46IDIuOHJlbSAwO1xuICAgIHdpZHRoOiAyNSU7XG4gICAgbWluLXdpZHRoOiAxLjVyZW07IH1cbiAgLndyYXAtYnV0dG9ucyAuY29weS1idXR0b24ge1xuICAgIG1hcmdpbjogMi44cmVtIDFyZW07XG4gICAgd2lkdGg6IDI1JTtcbiAgICBtaW4td2lkdGg6IDEuNXJlbTsgfVxuXG4uaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgcGFkZGluZzogMCAzcmVtO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzcmVtOyB9XG4gIC50aGVtZS1kYXJrIC5oZWFkIHtcbiAgICBjb2xvcjogIzRkYjFmZjsgfVxuICAudGhlbWUtZ3JheSAuaGVhZCB7XG4gICAgY29sb3I6ICM0MmE1ZjU7IH1cbiAgLnRoZW1lLXdoaXRlIC5oZWFkIHtcbiAgICBjb2xvcjogIzJjOTVmMTsgfVxuICAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCksIC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG91dGxpbmUtc3R5bGU6IG5vbmU7IH1cbiAgICAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIsIC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwLjVyZW07XG4gICAgICByaWdodDogLTEuNXJlbTtcbiAgICAgIHdpZHRoOiAwLjlyZW07XG4gICAgICBoZWlnaHQ6IDAuOXJlbTtcbiAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1yaWdodC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgICBtYXNrLXNpemU6IGNvdmVyOyB9XG4gICAgICAudGhlbWUtZGFyayAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIsIC50aGVtZS1kYXJrIC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG4gICAgICAudGhlbWUtZ3JheSAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIsIC50aGVtZS1ncmF5IC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG4gICAgICAudGhlbWUtd2hpdGUgLmhlYWQgLmJyZWFkY3J1bWJzID4gc3Bhbjpub3QoOmxhc3QtY2hpbGQpOmFmdGVyLCAudGhlbWUtd2hpdGUgLmhlYWQgLmJyZWFkY3J1bWJzIGE6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cbiAgLmhlYWQgLmJhY2stYnRuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM0ZGIxZmY7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5oZWFkIC5iYWNrLWJ0biAuaWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuN3JlbTtcbiAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9iYWNrLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAwLjlyZW07XG4gICAgICBoZWlnaHQ6IDAuOXJlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLmhlYWQgLmJhY2stYnRuIC5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLmhlYWQgLmJhY2stYnRuIC5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC5oZWFkIC5iYWNrLWJ0biAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnNjcm9sbGVkLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgd2lkdGg6IDFyZW07XG4gIGhlaWdodDogMXJlbTsgfVxuXG4uc2Nyb2xsZWQtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4uc2Nyb2xsZWQtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTsgfVxuXG4uc2Nyb2xsZWQtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2OyB9XG5cbnRhYmxlIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIHRhYmxlIHRoZWFkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgLnRoZW1lLWRhcmsgdGFibGUgdGhlYWQge1xuICAgICAgY29sb3I6ICM1NTY1NzY7IH1cbiAgICAudGhlbWUtZ3JheSB0YWJsZSB0aGVhZCB7XG4gICAgICBjb2xvcjogIzU2NWM2MjsgfVxuICAgIC50aGVtZS13aGl0ZSB0YWJsZSB0aGVhZCB7XG4gICAgICBjb2xvcjogI2EwYTVhYjsgfVxuICAgIHRhYmxlIHRoZWFkIHRyIHtcbiAgICAgIGhlaWdodDogNHJlbTsgfVxuICAgICAgdGFibGUgdGhlYWQgdHIgdGgge1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyB9XG4gICAgICAgIHRhYmxlIHRoZWFkIHRyIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cbiAgICAgICAgdGFibGUgdGhlYWQgdHIgdGg6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTsgfVxuICB0YWJsZSB0Ym9keSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC50aGVtZS1kYXJrIHRhYmxlIHRib2R5IHtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgdGFibGUgdGJvZHkge1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtd2hpdGUgdGFibGUgdGJvZHkge1xuICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICB0YWJsZSB0Ym9keSB0ciB7XG4gICAgICBoZWlnaHQ6IDMuNXJlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgyMDJhOyB9XG4gICAgICAudGhlbWUtZ3JheSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyNTI5MmQ7IH1cbiAgICAgIC50aGVtZS13aGl0ZSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgICAgIHRhYmxlIHRib2R5IHRyIHRkIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuN3JlbTtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBtYXgtd2lkdGg6IDIwcmVtOyB9XG4gICAgICAgIHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cbiAgICAgICAgdGFibGUgdGJvZHkgdHIgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1MaWdodC50dGYpO1xuICBmb250LXdlaWdodDogMzAwOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogT3BlblNhbnM7XG4gIHNyYzogdXJsKH5zcmMvYXNzZXRzL2ZvbnRzL09wZW5TYW5zLVJlZ3VsYXIudHRmKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1TZW1pQm9sZC50dGYpO1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogT3BlblNhbnM7XG4gIHNyYzogdXJsKH5zcmMvYXNzZXRzL2ZvbnRzL09wZW5TYW5zLUJvbGQudHRmKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1FeHRyYUJvbGQudHRmKTtcbiAgZm9udC13ZWlnaHQ6IDgwMDsgfVxuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEwcHg7IH1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBPcGVuU2Fucywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDB2aDsgfVxuICBib2R5LnRoZW1lLWRhcmsge1xuICAgIGJhY2tncm91bmQ6ICMxMzE5MjEgdXJsKFwiYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWRhcmsucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICBib2R5LnRoZW1lLWdyYXkge1xuICAgIGJhY2tncm91bmQ6ICMxMDE0MTcgdXJsKFwiYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWdyYXkucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICBib2R5LnRoZW1lLXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlZWVlIHVybChcImFzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC13aGl0ZS5wbmdcIikgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4gIGJvZHkgYXBwLXJvb3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG5cbi51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuaWNvbiB7XG4gIG1hc2s6IHVybChhc3NldHMvaWNvbnMvdXBkYXRlLWFsZXJ0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjsgfVxuIiwiLm5nLXNlbGVjdC5uZy1zZWxlY3Qtb3BlbmVkPi5uZy1zZWxlY3QtY29udGFpbmVye2JhY2tncm91bmQ6I2ZmZjtib3JkZXItY29sb3I6I2IzYjNiMyAjY2NjICNkOWQ5ZDl9Lm5nLXNlbGVjdC5uZy1zZWxlY3Qtb3BlbmVkPi5uZy1zZWxlY3QtY29udGFpbmVyOmhvdmVye2JveC1zaGFkb3c6bm9uZX0ubmctc2VsZWN0Lm5nLXNlbGVjdC1vcGVuZWQ+Lm5nLXNlbGVjdC1jb250YWluZXIgLm5nLWFycm93e3RvcDotMnB4O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjOTk5O2JvcmRlci13aWR0aDowIDVweCA1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3Qtb3BlbmVkPi5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy1hcnJvdzpob3Zlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzMzM30ubmctc2VsZWN0Lm5nLXNlbGVjdC1vcGVuZWQubmctc2VsZWN0LWJvdHRvbT4ubmctc2VsZWN0LWNvbnRhaW5lcntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1vcGVuZWQubmctc2VsZWN0LXRvcD4ubmctc2VsZWN0LWNvbnRhaW5lcntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1mb2N1c2VkOm5vdCgubmctc2VsZWN0LW9wZW5lZCk+Lm5nLXNlbGVjdC1jb250YWluZXJ7Ym9yZGVyLWNvbG9yOiMwMDdlZmY7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjA3NSksMCAwIDAgM3B4IHJnYmEoMCwxMjYsMjU1LDAuMSl9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtZGlzYWJsZWQ+Lm5nLXNlbGVjdC1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5fS5uZy1zZWxlY3QgLm5nLWhhcy12YWx1ZSAubmctcGxhY2Vob2xkZXJ7ZGlzcGxheTpub25lfS5uZy1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlcjoxcHggc29saWQgI2NjYzttaW4taGVpZ2h0OjM2cHg7YWxpZ24taXRlbXM6Y2VudGVyfS5uZy1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXI6aG92ZXJ7Ym94LXNoYWRvdzowIDFweCAwIHJnYmEoMCwwLDAsMC4wNil9Lm5nLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVye2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nLWxlZnQ6MTBweH1bZGlyPVwicnRsXCJdIC5uZy1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lcntwYWRkaW5nLXJpZ2h0OjEwcHg7cGFkZGluZy1sZWZ0OjB9Lm5nLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy1wbGFjZWhvbGRlcntjb2xvcjojOTk5fS5uZy1zZWxlY3Qubmctc2VsZWN0LXNpbmdsZSAubmctc2VsZWN0LWNvbnRhaW5lcntoZWlnaHQ6MzZweH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1zaW5nbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctaW5wdXR7dG9wOjVweDtsZWZ0OjA7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDo1MHB4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3Qtc2luZ2xlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLWlucHV0e3BhZGRpbmctcmlnaHQ6MTBweDtwYWRkaW5nLWxlZnQ6NTBweH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZS5uZy1zZWxlY3QtZGlzYWJsZWQ+Lm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlcjoxcHggc29saWQgI2U2ZTZlNn0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZS5uZy1zZWxlY3QtZGlzYWJsZWQ+Lm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUgLm5nLXZhbHVlLWxhYmVse3BhZGRpbmc6MCA1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lcntwYWRkaW5nLXRvcDo1cHg7cGFkZGluZy1sZWZ0OjdweH1bZGlyPVwicnRsXCJdIC5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXJ7cGFkZGluZy1yaWdodDo3cHg7cGFkZGluZy1sZWZ0OjB9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWV7Zm9udC1zaXplOi45ZW07bWFyZ2luLWJvdHRvbTo1cHg7YmFja2dyb3VuZC1jb2xvcjojZWJmNWZmO2JvcmRlci1yYWRpdXM6MnB4O21hcmdpbi1yaWdodDo1cHh9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy12YWx1ZXttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDo1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUubmctdmFsdWUtZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5fS5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlLm5nLXZhbHVlLWRpc2FibGVkIC5uZy12YWx1ZS1sYWJlbHtwYWRkaW5nLWxlZnQ6NXB4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUubmctdmFsdWUtZGlzYWJsZWQgLm5nLXZhbHVlLWxhYmVse3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6NXB4fS5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlIC5uZy12YWx1ZS1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjFweCA1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUgLm5nLXZhbHVlLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzoxcHggNXB4fS5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlIC5uZy12YWx1ZS1pY29uOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2QxZThmZn0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy12YWx1ZSAubmctdmFsdWUtaWNvbi5sZWZ0e2JvcmRlci1yaWdodDoxcHggc29saWQgI2I4ZGJmZn1bZGlyPVwicnRsXCJdIC5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlIC5uZy12YWx1ZS1pY29uLmxlZnR7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNiOGRiZmY7Ym9yZGVyLXJpZ2h0Om5vbmV9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUgLm5nLXZhbHVlLWljb24ucmlnaHR7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNiOGRiZmZ9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy12YWx1ZSAubmctdmFsdWUtaWNvbi5yaWdodHtib3JkZXItbGVmdDowO2JvcmRlci1yaWdodDoxcHggc29saWQgI2I4ZGJmZn0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy1pbnB1dHtwYWRkaW5nOjAgMCAzcHggM3B4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctaW5wdXR7cGFkZGluZzowIDNweCAzcHggMH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy1wbGFjZWhvbGRlcnt0b3A6NXB4O3BhZGRpbmctYm90dG9tOjVweDtwYWRkaW5nLWxlZnQ6M3B4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctcGxhY2Vob2xkZXJ7cGFkZGluZy1yaWdodDozcHg7cGFkZGluZy1sZWZ0OjB9Lm5nLXNlbGVjdCAubmctY2xlYXItd3JhcHBlcntjb2xvcjojOTk5fS5uZy1zZWxlY3QgLm5nLWNsZWFyLXdyYXBwZXI6aG92ZXIgLm5nLWNsZWFye2NvbG9yOiNEMDAyMUJ9Lm5nLXNlbGVjdCAubmctc3Bpbm5lci16b25le3BhZGRpbmc6NXB4IDVweCAwIDB9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0IC5uZy1zcGlubmVyLXpvbmV7cGFkZGluZzo1cHggMCAwIDVweH0ubmctc2VsZWN0IC5uZy1hcnJvdy13cmFwcGVye3dpZHRoOjI1cHg7cGFkZGluZy1yaWdodDo1cHh9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0IC5uZy1hcnJvdy13cmFwcGVye3BhZGRpbmctbGVmdDo1cHg7cGFkZGluZy1yaWdodDowfS5uZy1zZWxlY3QgLm5nLWFycm93LXdyYXBwZXI6aG92ZXIgLm5nLWFycm93e2JvcmRlci10b3AtY29sb3I6IzY2Nn0ubmctc2VsZWN0IC5uZy1hcnJvdy13cmFwcGVyIC5uZy1hcnJvd3tib3JkZXItY29sb3I6Izk5OSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjVweCA1cHggMi41cHh9Lm5nLWRyb3Bkb3duLXBhbmVse2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym94LXNoYWRvdzowIDFweCAwIHJnYmEoMCwwLDAsMC4wNik7bGVmdDowfS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtYm90dG9te3RvcDoxMDAlO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweDtib3JkZXItdG9wLWNvbG9yOiNlNmU2ZTY7bWFyZ2luLXRvcDotMXB4fS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtYm90dG9tIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NHB4fS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtdG9we2JvdHRvbToxMDAlO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLWNvbG9yOiNlNmU2ZTY7bWFyZ2luLWJvdHRvbTotMXB4fS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtdG9wIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uOmZpcnN0LWNoaWxke2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLWhlYWRlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6NXB4IDdweH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLWZvb3Rlcntib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6NXB4IDdweH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRncm91cHt1c2VyLXNlbGVjdDpub25lO3BhZGRpbmc6OHB4IDEwcHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnJnYmEoMCwwLDAsMC41NCk7Y3Vyc29yOnBvaW50ZXJ9Lm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0Z3JvdXAubmctb3B0aW9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGdyb3VwLm5nLW9wdGlvbi1tYXJrZWR7YmFja2dyb3VuZC1jb2xvcjojZjVmYWZmfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGdyb3VwLm5nLW9wdGlvbi1zZWxlY3RlZCwubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRncm91cC5uZy1vcHRpb24tc2VsZWN0ZWQubmctb3B0aW9uLW1hcmtlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlYmY1ZmY7Zm9udC13ZWlnaHQ6NjAwfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6cmdiYSgwLDAsMCwwLjg3KTtwYWRkaW5nOjhweCAxMHB4fS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tc2VsZWN0ZWQsLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1zZWxlY3RlZC5uZy1vcHRpb24tbWFya2Vke2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZWJmNWZmfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tc2VsZWN0ZWQgLm5nLW9wdGlvbi1sYWJlbCwubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLXNlbGVjdGVkLm5nLW9wdGlvbi1tYXJrZWQgLm5nLW9wdGlvbi1sYWJlbHtmb250LXdlaWdodDo2MDB9Lm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1tYXJrZWR7YmFja2dyb3VuZC1jb2xvcjojZjVmYWZmO2NvbG9yOiMzMzN9Lm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1kaXNhYmxlZHtjb2xvcjojY2NjfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tY2hpbGR7cGFkZGluZy1sZWZ0OjIycHh9W2Rpcj1cInJ0bFwiXSAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLWNoaWxke3BhZGRpbmctcmlnaHQ6MjJweDtwYWRkaW5nLWxlZnQ6MH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24gLm5nLXRhZy1sYWJlbHtmb250LXNpemU6ODAlO2ZvbnQtd2VpZ2h0OjQwMDtwYWRkaW5nLXJpZ2h0OjVweH1bZGlyPVwicnRsXCJdIC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbiAubmctdGFnLWxhYmVse3BhZGRpbmctbGVmdDo1cHg7cGFkZGluZy1yaWdodDowfVtkaXI9XCJydGxcIl0gLm5nLWRyb3Bkb3duLXBhbmVse2RpcmVjdGlvbjpydGw7dGV4dC1hbGlnbjpyaWdodH1cbiIsIi8vKiAqKioqKioqIHJlc2V0ICYgbm9ybWFsaXplICoqKioqKiogICovL1xyXG5cclxuLy8gYm94LXNpemluZyB0aGUgc2FtZSBmb3IgYWxsIGVsZW1lbnRzXHJcbmh0bWwge1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XHJcbiAgYm94LXNpemluZzogaW5oZXJpdDtcclxuICAtd2Via2l0LWJveC1zaXppbmc6IGluaGVyaXQ7XHJcbiAgLW1vei1ib3gtc2l6aW5nOiBpbmhlcml0O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIEBpbmNsdWRlIHVuU2VsZWN0O1xyXG59XHJcblxyXG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXHJcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcclxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxyXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXHJcbnNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXHJcbmIsIHUsIGksIGNlbnRlcixcclxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcclxuZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXHJcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxyXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCxcclxuZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLFxyXG5tZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcclxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIGZvbnQtc2l6ZTogMTAwJTtcclxuICAgIGZvbnQ6IGluaGVyaXQ7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSxcclxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5ib2R5IHtcclxuICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxufVxyXG5vbCwgdWwge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG5ibG9ja3F1b3RlLCBxIHtcclxuICAgIHF1b3Rlczogbm9uZTtcclxufVxyXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlcixcclxucTpiZWZvcmUsIHE6YWZ0ZXIge1xyXG4gICAgY29udGVudDogbm9uZTtcclxufVxyXG5cclxuLy90YWJsZVxyXG50YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XHJcbn1cclxudGQsXHJcbnRoIHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4vL2Zvcm1zIGVsZW1lbnRcclxuaW5wdXQge1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgICY6LXdlYmtpdC1hdXRvZmlsbCB7XHJcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMTAwMHB4IHdoaXRlIGluc2V0O1xyXG4gICAgfVxyXG59XHJcblxyXG5idXR0b24sXHJcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcclxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5idXR0b25bZGlzYWJsZWRdLFxyXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcclxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xyXG4gIGJvcmRlcjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcbmlucHV0IHtcclxuICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG59XHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG59XHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5cclxuXHJcbi8vbGlua1xyXG5hIHtcclxuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0JjphY3RpdmUsXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzIHtcclxuXHRcdG91dGxpbmU6IDA7XHJcblx0fVxyXG59XHJcblxyXG5pIHsgZm9udC1zdHlsZTogaXRhbGljOyB9XHJcbmIsIHN0cm9uZyB7IGZvbnQtd2VpZ2h0OiA3MDA7ICAgfVxyXG5cclxuLy8gaW1hZ2VzXHJcbmltZyB7XHJcblx0d2lkdGg6IGF1dG87XHJcblx0bWF4LXdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogYXV0bztcclxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG5cdGJvcmRlcjogMDtcclxufVxyXG5cclxuLmhpZGRlbiB7XHJcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcbiIsIi5hcHAtY29udGVudCB7XHJcblxyXG4gIC5wcmVsb2FkZXIge1xyXG5cclxuICAgIC5sb2FkaW5nLWJhciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYnV0dG9uIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBwYWRkaW5nOiAwIDFyZW07XHJcbiAgaGVpZ2h0OiA0LjJyZW07XHJcblxyXG4gICY6ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pLCBcclxuICAmLmJsdWUtYnV0dG9uX3Jlc2V0e1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZGlzYWJsZWRCdXR0b25CYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChkaXNhYmxlZEJ1dHRvbkhvdmVyQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZGlzYWJsZWRCdXR0b25Gb2N1c0NvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlQnV0dG9uQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChhbHRlcm5hdGl2ZVRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZUJ1dHRvbkhvdmVyQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZUJ1dHRvbkZvY3VzQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChncmVlbkJ1dHRvbkJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQoYWx0ZXJuYXRpdmVUZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGdyZWVuQnV0dG9uSG92ZXJDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChncmVlbkJ1dHRvbkZvY3VzQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCkge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodHVycXVvaXNlQnV0dG9uQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChhbHRlcm5hdGl2ZVRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodHVycXVvaXNlQnV0dG9uSG92ZXJDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCh0dXJxdW9pc2VCdXR0b25Gb2N1c0NvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi50cmFuc3BhcmVudC1idXR0b24ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJvcmRlcjogMC4ycmVtIHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAuaWNvbiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcclxuICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2NvbXBsZXRlLXRlc3R3YWxsZXQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB3aWR0aDogMS43cmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuN3JlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4uaW5wdXQtYmxvY2sge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBtYXJnaW4tYm90dG9tOiAwLjRyZW07XHJcblxyXG4gIC53cmFwLWxhYmVsIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgbWluLWhlaWdodDogMi40cmVtO1xyXG4gIH1cclxuXHJcbiAgbGFiZWwge1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlucHV0W3R5cGU9J3RleHQnXSwgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSwgc2VsZWN0IHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiA0LjJyZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnRleHRhcmVhIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICB0ZXh0YXJlYSB7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiBPcGVuU2Fucywgc2Fucy1zZXJpZjtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICBtaW4taGVpZ2h0OiA3LjVyZW07XHJcbiAgICAgIG1heC1oZWlnaHQ6IDcuNXJlbTtcclxuICAgICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICAgIHJlc2l6ZTogbm9uZTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmVycm9yLWJsb2NrIHtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjRyZW07XHJcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKHJlZFRleHRDb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zdWNjZXNzLWJsb2NrIHtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjRyZW07XHJcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGdyZWVuVGV4dENvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5lcnJvci10ZXh0IHtcclxuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgIGNvbG9yOiB0aGVtZWQocmVkVGV4dENvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW8ge1xyXG5cclxuICAmICsgbGFiZWwge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyLjRyZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIHVuU2VsZWN0O1xyXG4gIH1cclxuXHJcbiAgJjpub3QoY2hlY2tlZCkge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgb3BhY2l0eTogMDtcclxuXHJcbiAgICAmICsgbGFiZWwge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB9XHJcblxyXG4gICAgJiArIGxhYmVsOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMC43cmVtO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICB3aWR0aDogMS40cmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuNHJlbTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkIHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYgKyBsYWJlbDphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMXJlbTtcclxuICAgICAgbGVmdDogMC4zcmVtO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIHdpZHRoOiAwLjhyZW07XHJcbiAgICAgIGhlaWdodDogMC44cmVtO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOmNoZWNrZWQge1xyXG5cclxuICAgICYgKyBsYWJlbDphZnRlciB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94IHtcclxuXHJcbiAgJiArIGxhYmVsIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIHBhZGRpbmctbGVmdDogMy42cmVtO1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSB1blNlbGVjdDtcclxuICB9XHJcblxyXG4gICY6bm90KGNoZWNrZWQpIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogMS42cmVtO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cclxuICAgICYgKyBsYWJlbCB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIH1cclxuXHJcbiAgICAmICsgbGFiZWw6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIGxlZnQ6IDEuNnJlbTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgd2lkdGg6IDEuNHJlbTtcclxuICAgICAgaGVpZ2h0OiAxLjRyZW07XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6Y2hlY2tlZCB7XHJcblxyXG4gICAgJiArIGxhYmVsOmJlZm9yZSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9jb21wbGV0ZS10ZXN0d2FsbGV0LnN2Zyk7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zd2l0Y2gge1xyXG5cclxuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChzd2l0Y2hCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gIH1cclxuXHJcbiAgLmNpcmNsZSB7XHJcblxyXG4gICAgJi5vbiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm9mZiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udGFibGUtdG9vbHRpcCB7XHJcbiAgcGFkZGluZzogMXJlbSAycmVtO1xyXG5cclxuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgIGJhY2tncm91bmQ6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKTtcclxuICAgIGJveC1zaGFkb3c6IHRoZW1lZCh0b29sdGlwU2hhZG93KTtcclxuICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgfVxyXG5cclxuICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XHJcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XHJcbiAgfVxyXG5cclxuICAmLm5nLXRvb2x0aXAtdG9wIHtcclxuICAgIG1hcmdpbi10b3A6IC0xcmVtO1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogLTFyZW07XHJcbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMC41cmVtKTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLXRvcC1sZWZ0IHtcclxuICAgIG1hcmdpbi10b3A6IC0xcmVtO1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogLTFyZW07XHJcbiAgICAgIGxlZnQ6IDAuN3JlbTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC10b3AtcmlnaHQge1xyXG4gICAgbWFyZ2luLXRvcDogLTFyZW07XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAtMXJlbTtcclxuICAgICAgcmlnaHQ6IDAuN3JlbTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAtMXJlbTtcclxuICAgICAgbGVmdDogY2FsYyg1MCUgLSAwLjVyZW0pO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRyYW5zcGFyZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLm5nLXRvb2x0aXAtYm90dG9tLWxlZnQge1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAtMXJlbTtcclxuICAgICAgbGVmdDogMC43cmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLWJvdHRvbS1yaWdodCB7XHJcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG5cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IC0xcmVtO1xyXG4gICAgICByaWdodDogMC43cmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLWxlZnQge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogY2FsYyg1MCUgLSAwLjVyZW0pO1xyXG4gICAgICByaWdodDogLTFyZW07XHJcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xyXG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1yaWdodCB7XHJcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiBjYWxjKDUwJSAtIDAuNXJlbSk7XHJcbiAgICAgIGxlZnQ6IC0xcmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udGFibGUtdG9vbHRpcC1kaW1lbnNpb25zIHtcclxuXHJcbiAgLnRvb2x0aXAtaW5uZXIge1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICBtYXgtd2lkdGg6IDIwcmVtO1xyXG4gICAgbWF4LWhlaWdodDogMTByZW07XHJcbiAgfVxyXG59XHJcblxyXG4uYmFsYW5jZS10b29sdGlwIHtcclxuICBwYWRkaW5nOiAxLjNyZW07XHJcblxyXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgYmFja2dyb3VuZDogdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgYm94LXNoYWRvdzogdGhlbWVkKHRvb2x0aXBTaGFkb3cpO1xyXG4gICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICB9XHJcblxyXG4gIC50b29sdGlwLWlubmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcblxyXG4gICAgLmF2YWlsYWJsZSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuN3JlbTtcclxuXHJcbiAgICAgIGIge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubG9ja2VkIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMC43cmVtO1xyXG5cclxuICAgICAgYiB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5saW5rIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLXRvcCB7XHJcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTtcclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1sZWZ0IHtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1yaWdodCB7XHJcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5hY2NvdW50LXRvb2x0aXAge1xyXG5cclxuICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgbWF4LXdpZHRoOiAxOHJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5jb21tZW50LXRvb2x0aXAge1xyXG5cclxuICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgICBtYXgtd2lkdGg6IDUwcmVtO1xyXG4gICAgbWF4LWhlaWdodDogMjVyZW07XHJcbiAgfVxyXG59XHJcblxyXG4udXBkYXRlLXRvb2x0aXAge1xyXG4gIHBhZGRpbmc6IDEuNXJlbTtcclxuXHJcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICBib3gtc2hhZG93OiB0aGVtZWQodG9vbHRpcFNoYWRvdyk7XHJcbiAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gIH1cclxuXHJcbiAgJi5pbXBvcnRhbnQge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0aGVtZWQodG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQoYWNjb3VudE1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgICYubmctdG9vbHRpcC1sZWZ0LWJvdHRvbSB7XHJcblxyXG4gICAgICAmOmFmdGVyIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRoZW1lZCh0b29sdGlwSW1wb3J0YW50QmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbSB7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcikgdGhlbWVkKHRvb2x0aXBJbXBvcnRhbnRCYWNrZ3JvdW5kQ29sb3IpIHRyYW5zcGFyZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5jcml0aWNhbCB7XHJcbiAgICBwYWRkaW5nOiAyLjVyZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lZCh0b29sdGlwQ3JpdGljYWxCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGFjY291bnRNYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJi5uZy10b29sdGlwLWxlZnQtYm90dG9tIHtcclxuXHJcbiAgICAgICY6YWZ0ZXIge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcikgdGhlbWVkKHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbSB7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcENyaXRpY2FsQmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcENyaXRpY2FsQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50b29sdGlwLWlubmVyIHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuOHJlbTtcclxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcclxuXHJcbiAgICAuc3RhbmRhcmQtdXBkYXRlIHtcclxuICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmltcG9ydGFudC11cGRhdGUge1xyXG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQodG9vbHRpcEltcG9ydGFudFRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY3JpdGljYWwtdXBkYXRlIHtcclxuICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAud3JvbmctdGltZSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZCh0b29sdGlwSW1wb3J0YW50VGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFyZ2luOiAxLjVyZW0gMDtcclxuICAgICAgd2lkdGg6IDVyZW07XHJcbiAgICAgIGhlaWdodDogNXJlbTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCh0b29sdGlwQ3JpdGljYWxUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLm5nLXRvb2x0aXAtbGVmdC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAwLjZyZW07XHJcbiAgICAgIHJpZ2h0OiAtMXJlbTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1yaWdodC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAwLjZyZW07XHJcbiAgICAgIGxlZnQ6IC0xcmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm5neC1jb250ZXh0bWVudSB7XHJcblxyXG4gIC5kcm9wZG93bi1tZW51IHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChjaGFydE9wdGlvbnNCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBib3gtc2hhZG93OiB0aGVtZWQodG9vbHRpcFNoYWRvdyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsaSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtZmFtaWx5OiBPcGVuU2Fucywgc2Fucy1zZXJpZjtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAwLjVlbSAxZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY2hhcnRPcHRpb25zSG92ZXJDb2xvcik7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm5nLXNlbGVjdCB7XHJcblxyXG4gICYuY3VzdG9tLXNlbGVjdCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAmLm5nLXNlbGVjdC1zaW5nbGUge1xyXG4gICAgICAubmctc2VsZWN0LWNvbnRhaW5lciB7XHJcbiAgICAgICAgLm5nLXZhbHVlLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAubmctdmFsdWUge1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS44cmVtO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uZy1zZWxlY3QtY29udGFpbmVyIHtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICBwYWRkaW5nOiAwIDFyZW07XHJcbiAgICAgIGhlaWdodDogNC4ycmVtO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGlucHV0QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubmctdmFsdWUtY29udGFpbmVyIHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICAgICAubmctaW5wdXQge1xyXG4gICAgICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uZy1kcm9wZG93bi1wYW5lbCB7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyB7XHJcblxyXG4gICAgICAgIC5uZy1vcHRpb24ge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoaW5wdXRCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYubmctb3B0aW9uLW1hcmtlZCB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoc2VsZWN0SG92ZXJDb2xvcik7XHJcbiAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYubmctb3B0aW9uLXNlbGVjdGVkIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChzZWxlY3RTZWxlY3RlZENvbG9yKTtcclxuICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgICAgICAgIHdpZHRoOiAxcmVtO1xyXG4gICAgICAgICAgaGVpZ2h0OiAxcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtbW9kYWwtY29udGFpbmVyLCBhcHAtY29uZmlybS1tb2RhbCAge1xyXG5cclxuICAubW9kYWwge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0aGVtZWQobW9kYWxCYWNrZ3JvdW5kKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAuY29udGVudCB7XHJcblxyXG4gICAgICAuaWNvbi5lcnJvciB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHJlZFRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuaWNvbi5zdWNjZXNzIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZ3JlZW5UZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmljb24uaW5mbyB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hY3Rpb24tYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jbG9zZS1idXR0b24ge1xyXG5cclxuICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChjbG9zZUJ1dHRvbkNvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIHtcclxuXHJcbiAgLnRhYmxlIHtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYm9yZGVyLXRvcDogMC4ycmVtIHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAucm93IHtcclxuXHJcbiAgICAgIC5jZWxsIHtcclxuXHJcbiAgICAgICAgJi5sYWJlbCB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi52YWx1ZSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmtleS12YWx1ZSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtcHJvZ3Jlc3MtY29udGFpbmVyIHtcclxuXHJcbiAgLnByb2dyZXNzLWJhci1jb250YWluZXIge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9ncmVzcy1iYXIge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnByb2dyZXNzLWJhci1mdWxsIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1vcGVuLXdhbGxldC1tb2RhbCB7XHJcblxyXG4gIC5tb2RhbCB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lZChtb2RhbEJhY2tncm91bmQpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXNlbmQtbW9kYWwge1xyXG4gIC5tb2RhbCB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lZChtb2RhbEJhY2tncm91bmQpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC50aXRsZSB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgdGhlbWVkKHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC5hY3Rpb24tYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufSIsIiR0aGVtZXM6IChcclxuICBkYXJrOiAoXHJcbiAgICBib2R5QmFja2dyb3VuZENvbG9yOiAjMTMxOTIxLFxyXG4gICAgc2lkZWJhckJhY2tncm91bmRDb2xvcjogcmdiYSgyMywgMzEsIDM5LCAxKSxcclxuICAgIHNpZGViYXJCb3JkZXJDb2xvcjogIzFmMjgzMyxcclxuICAgIG9ubGluZUNvbG9yOiAjNWNkYTlkLFxyXG4gICAgb2ZmbGluZUNvbG9yOiAjZmY1MjUyLFxyXG4gICAgY29udGVudEJhY2tncm91bmRDb2xvcjogcmdiYSg0MywgNTQsIDY4LCAwLjUpLFxyXG4gICAgbWFpblRleHRDb2xvcjogI2UwZTBlMCxcclxuICAgIGFsdGVybmF0aXZlVGV4dENvbG9yOiAjMTExOTIxLFxyXG4gICAgb3B0aW9uYWxUZXh0Q29sb3I6ICM1NTY1NzYsXHJcbiAgICBibHVlVGV4dENvbG9yOiAjNGRiMWZmLFxyXG4gICAgZ3JlZW5UZXh0Q29sb3I6ICM1Y2RhOWQsXHJcbiAgICBvcmFuZ2VUZXh0Q29sb3I6ICNmZjZmMDAsXHJcbiAgICByZWRUZXh0Q29sb3I6ICNmZjUyNTIsXHJcbiAgICBibHVlQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjNGRiMWZmLFxyXG4gICAgYmx1ZUJ1dHRvbkhvdmVyQ29sb3I6ICM4MmQ3ZmYsXHJcbiAgICBibHVlQnV0dG9uRm9jdXNDb2xvcjogIzU5YjVmZCxcclxuICAgIGRpc2FibGVkQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjOWNhZGI3LFxyXG4gICAgZGlzYWJsZWRCdXR0b25Ib3ZlckNvbG9yOiAjYjdkMWUwLFxyXG4gICAgZGlzYWJsZWRCdXR0b25Gb2N1c0NvbG9yOiAjYTdiOWMyLFxyXG4gICAgZ3JlZW5CdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM1Y2RhOWQsXHJcbiAgICBncmVlbkJ1dHRvbkhvdmVyQ29sb3I6ICM4ZGZjYzYsXHJcbiAgICBncmVlbkJ1dHRvbkZvY3VzQ29sb3I6ICM2MmUwYjIsXHJcbiAgICB0dXJxdW9pc2VCdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM0ZGQwZTEsXHJcbiAgICB0dXJxdW9pc2VCdXR0b25Ib3ZlckNvbG9yOiAjODdmNGY1LFxyXG4gICAgdHVycXVvaXNlQnV0dG9uRm9jdXNDb2xvcjogIzQyZDVlOCxcclxuICAgIHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3I6ICMyYjM2NDQsXHJcbiAgICBpbnB1dEJhY2tncm91bmRDb2xvcjogIzE3MWUyNyxcclxuICAgIHNlbGVjdEhvdmVyQ29sb3I6IHJnYmEoNTgsIDY5LCA4NSwgMC41KSxcclxuICAgIHNlbGVjdFNlbGVjdGVkQ29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KSxcclxuICAgIHN3aXRjaEJhY2tncm91bmRDb2xvcjogIzAwMDAwMCxcclxuICAgIGFjY291bnRCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KSxcclxuICAgIGFjY291bnRIb3ZlckJhY2tncm91bmRDb2xvcjogcmdiYSg1OCwgNjksIDg1LCAwLjUpLFxyXG4gICAgYWNjb3VudE1haW5UZXh0Q29sb3I6ICNlMGUwZTAsXHJcbiAgICBzZWN1cmVkU2VlZDogI2UwZTBlMCxcclxuICAgIHNlZWRJdGVtVGV4dDogI2UwZTBlMCxcclxuICAgIHNlZWRJdGVtQmFja2dyb3VuZENvbG9yOiAjMTgyMDJhLFxyXG4gICAgYWNjb3VudE9wdGlvbmFsVGV4dENvbG9yOiAjNTU2NTc2LFxyXG4gICAgYWNjb3VudEluZGljYXRvclRleHRDb2xvcjogIzExMTkyMSxcclxuICAgIGFjY291bnRTd2l0Y2hCYWNrZ3JvdW5kQ29sb3I6ICMwMDAwMDAsXHJcbiAgICBhY2NvdW50SW5kaWNhdG9yQmFja2dyb3VuZENvbG9yOiAjNGRiMWZmLFxyXG4gICAgdGFiSW5hY3RpdmVCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoMjMsIDMxLCAzOSwgMC41KSxcclxuICAgIHRhYkhvdmVyQmFja2dyb3VuZENvbG9yOiByZ2JhKDU4LCA2OSwgODUsIDAuNSksXHJcbiAgICB0YWJsZUJhY2tncm91bmRDb2xvcjogIzE4MjAyYSxcclxuICAgIG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcjogIzJhMzU0NCxcclxuICAgIG1lc3NhZ2VCdWRkeUJhY2tncm91bmRDb2xvcjogIzE4MjAyYSxcclxuICAgIHByb2dyZXNzQmFyQmFja2dyb3VuZENvbG9yOiAjMzQzZjRhLFxyXG4gICAgcHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yOiAjNWNkYTlkLFxyXG4gICAgY2hhcnRPcHRpb25zQmFja2dyb3VuZENvbG9yOiAjMmIzNjQ0LFxyXG4gICAgY2hhcnRPcHRpb25zSG92ZXJDb2xvcjogIzU1NjU3NixcclxuICAgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I6ICM0MjUwNWYsXHJcbiAgICB0b29sdGlwSW1wb3J0YW50VGV4dENvbG9yOiAjZmY2ZjAwLFxyXG4gICAgdG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcjogIzVmMmIxMSxcclxuICAgIHRvb2x0aXBDcml0aWNhbFRleHRDb2xvcjogI2ZmNTI1MixcclxuICAgIHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcjogIzVmMWQxZCxcclxuICAgIHRvb2x0aXBTaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KSxcclxuICAgIG1vZGFsQmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWRhcmsucG5nKSxcclxuICAgIGNsb3NlQnV0dG9uQ29sb3I6ICM1NTY1NzYsXHJcbiAgICBob3ZlclBhZ2U6ICMzYTQ4NWFcclxuICApLFxyXG4gIGdyYXk6IChcclxuICAgIGJvZHlCYWNrZ3JvdW5kQ29sb3I6ICMxMDE0MTcsXHJcbiAgICBzaWRlYmFyQmFja2dyb3VuZENvbG9yOiByZ2JhKDI4LCAzMCwgMzMsIDEpLFxyXG4gICAgc2lkZWJhckJvcmRlckNvbG9yOiAjMmUzMzM3LFxyXG4gICAgb25saW5lQ29sb3I6ICM0N2NmOGQsXHJcbiAgICBvZmZsaW5lQ29sb3I6ICNmZjUyNTIsXHJcbiAgICBjb250ZW50QmFja2dyb3VuZENvbG9yOiByZ2JhKDM3LCA0MCwgNDMsIDAuNSksXHJcbiAgICBtYWluVGV4dENvbG9yOiAjZTBlMGUwLFxyXG4gICAgYWx0ZXJuYXRpdmVUZXh0Q29sb3I6ICMxYTFhMWEsXHJcbiAgICBvcHRpb25hbFRleHRDb2xvcjogIzU2NWM2MixcclxuICAgIGJsdWVUZXh0Q29sb3I6ICM0MmE1ZjUsXHJcbiAgICBncmVlblRleHRDb2xvcjogIzQ3Y2Y4ZCxcclxuICAgIG9yYW5nZVRleHRDb2xvcjogI2ZmNmYwMCxcclxuICAgIHJlZFRleHRDb2xvcjogI2ZmNTI1MixcclxuICAgIGJsdWVCdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM0MmE1ZjUsXHJcbiAgICBibHVlQnV0dG9uSG92ZXJDb2xvcjogIzg2ZDZmZixcclxuICAgIGJsdWVCdXR0b25Gb2N1c0NvbG9yOiAjNWZiNmZjLFxyXG4gICAgZGlzYWJsZWRCdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM3OTg0OGYsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbkhvdmVyQ29sb3I6ICNhMWFlYmIsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbkZvY3VzQ29sb3I6ICM4YTk1OWYsXHJcbiAgICBncmVlbkJ1dHRvbkJhY2tncm91bmRDb2xvcjogIzQ3Y2Y4ZCxcclxuICAgIGdyZWVuQnV0dG9uSG92ZXJDb2xvcjogIzdiZjZjNixcclxuICAgIGdyZWVuQnV0dG9uRm9jdXNDb2xvcjogIzVjZGM5ZSxcclxuICAgIHR1cnF1b2lzZUJ1dHRvbkJhY2tncm91bmRDb2xvcjogIzNlYzVkNyxcclxuICAgIHR1cnF1b2lzZUJ1dHRvbkhvdmVyQ29sb3I6ICM3MmVkZmUsXHJcbiAgICB0dXJxdW9pc2VCdXR0b25Gb2N1c0NvbG9yOiAjNTBkMGUxLFxyXG4gICAgdHJhbnNwYXJlbnRCdXR0b25Cb3JkZXJDb2xvcjogIzJmMzQzOCxcclxuICAgIGlucHV0QmFja2dyb3VuZENvbG9yOiAjMjkyZDMxLFxyXG4gICAgc2VsZWN0SG92ZXJDb2xvcjogcmdiYSg1OCwgNjIsIDY2LCAwLjUpLFxyXG4gICAgc2VsZWN0U2VsZWN0ZWRDb2xvcjogcmdiYSgzNywgNDAsIDQzLCAwLjUpLFxyXG4gICAgc3dpdGNoQmFja2dyb3VuZENvbG9yOiAjMDAwMDAwLFxyXG4gICAgYWNjb3VudEJhY2tncm91bmRDb2xvcjogcmdiYSgzNywgNDAsIDQzLCAwLjUpLFxyXG4gICAgYWNjb3VudEhvdmVyQmFja2dyb3VuZENvbG9yOiByZ2JhKDU4LCA2MiwgNjYsIDAuNSksXHJcbiAgICBhY2NvdW50TWFpblRleHRDb2xvcjogI2UwZTBlMCxcclxuICAgIHNlY3VyZWRTZWVkOiAjZTBlMGUwLFxyXG4gICAgc2VlZEl0ZW1UZXh0OiAjZTBlMGUwLFxyXG4gICAgc2VlZEl0ZW1CYWNrZ3JvdW5kQ29sb3I6ICMyOTJkMzEsXHJcbiAgICBhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3I6ICM1NjVjNjIsXHJcbiAgICBhY2NvdW50SW5kaWNhdG9yVGV4dENvbG9yOiAjMWExYTFhLFxyXG4gICAgYWNjb3VudFN3aXRjaEJhY2tncm91bmRDb2xvcjogIzAwMDAwMCxcclxuICAgIGFjY291bnRJbmRpY2F0b3JCYWNrZ3JvdW5kQ29sb3I6ICM0MmE1ZjUsXHJcbiAgICB0YWJJbmFjdGl2ZUJhY2tncm91bmRDb2xvcjogcmdiYSgyOCwgMzAsIDMzLCAwLjUpLFxyXG4gICAgdGFiSG92ZXJCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoNTgsIDYyLCA2NiwgMC41KSxcclxuICAgIHRhYmxlQmFja2dyb3VuZENvbG9yOiAjMjUyOTJkLFxyXG4gICAgbWVzc2FnZU15QmFja2dyb3VuZENvbG9yOiAjMzAzNjNjLFxyXG4gICAgbWVzc2FnZUJ1ZGR5QmFja2dyb3VuZENvbG9yOiAjMjUyOTJkLFxyXG4gICAgcHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3I6ICMzNjNhM2UsXHJcbiAgICBwcm9ncmVzc0JhckZ1bGxCYWNrZ3JvdW5kQ29sb3I6ICM0N2NmOGQsXHJcbiAgICBjaGFydE9wdGlvbnNCYWNrZ3JvdW5kQ29sb3I6ICMyOTJkMzEsXHJcbiAgICBjaGFydE9wdGlvbnNIb3ZlckNvbG9yOiAjNTE1OTYwLFxyXG4gICAgdG9vbHRpcEJhY2tncm91bmRDb2xvcjogIzNlNDY0YyxcclxuICAgIHRvb2x0aXBJbXBvcnRhbnRUZXh0Q29sb3I6ICNmZjZmMDAsXHJcbiAgICB0b29sdGlwSW1wb3J0YW50QmFja2dyb3VuZENvbG9yOiAjNTUyNDBkLFxyXG4gICAgdG9vbHRpcENyaXRpY2FsVGV4dENvbG9yOiAjZmY1MjUyLFxyXG4gICAgdG9vbHRpcENyaXRpY2FsQmFja2dyb3VuZENvbG9yOiAjNGMxOTE5LFxyXG4gICAgdG9vbHRpcFNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjUpLFxyXG4gICAgbW9kYWxCYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtZ3JheS5wbmcpLFxyXG4gICAgY2xvc2VCdXR0b25Db2xvcjogIzUxNTk2MCxcclxuICAgIGhvdmVyUGFnZTogIzM4M2U0M1xyXG4gICksXHJcbiAgd2hpdGU6IChcclxuICAgIGJvZHlCYWNrZ3JvdW5kQ29sb3I6ICNlZWVlZWUsXHJcbiAgICBzaWRlYmFyQmFja2dyb3VuZENvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpLFxyXG4gICAgc2lkZWJhckJvcmRlckNvbG9yOiAjZWJlYmViLFxyXG4gICAgb25saW5lQ29sb3I6ICM0NmMxNzIsXHJcbiAgICBvZmZsaW5lQ29sb3I6ICNmZjUyNTIsXHJcbiAgICBjb250ZW50QmFja2dyb3VuZENvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSksXHJcbiAgICBtYWluVGV4dENvbG9yOiAjNDM0NTRiLFxyXG4gICAgYWx0ZXJuYXRpdmVUZXh0Q29sb3I6ICNmZWZlZmUsXHJcbiAgICBvcHRpb25hbFRleHRDb2xvcjogI2EwYTVhYixcclxuICAgIGJsdWVUZXh0Q29sb3I6ICMyYzk1ZjEsXHJcbiAgICBncmVlblRleHRDb2xvcjogIzQ2YzE3MixcclxuICAgIG9yYW5nZVRleHRDb2xvcjogI2ZmNmYwMCxcclxuICAgIHJlZFRleHRDb2xvcjogI2ZmNTI1MixcclxuICAgIGJsdWVCdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICMyYzk1ZjEsXHJcbiAgICBibHVlQnV0dG9uSG92ZXJDb2xvcjogIzVjYjNmZixcclxuICAgIGJsdWVCdXR0b25Gb2N1c0NvbG9yOiAjMzc5ZmZhLFxyXG4gICAgZGlzYWJsZWRCdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM5MGE0YWUsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbkhvdmVyQ29sb3I6ICNhZWJlYzYsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbkZvY3VzQ29sb3I6ICNhN2I5YzIsXHJcbiAgICBncmVlbkJ1dHRvbkJhY2tncm91bmRDb2xvcjogIzQ2YzE3MixcclxuICAgIGdyZWVuQnV0dG9uSG92ZXJDb2xvcjogIzVhZDU4NixcclxuICAgIGdyZWVuQnV0dG9uRm9jdXNDb2xvcjogIzUzYzc3YyxcclxuICAgIHR1cnF1b2lzZUJ1dHRvbkJhY2tncm91bmRDb2xvcjogIzI2YjZjNyxcclxuICAgIHR1cnF1b2lzZUJ1dHRvbkhvdmVyQ29sb3I6ICM1MmNiZDksXHJcbiAgICB0dXJxdW9pc2VCdXR0b25Gb2N1c0NvbG9yOiAjMzFiZWNmLFxyXG4gICAgdHJhbnNwYXJlbnRCdXR0b25Cb3JkZXJDb2xvcjogI2ViZWJlYixcclxuICAgIGlucHV0QmFja2dyb3VuZENvbG9yOiAjZTZlNmU2LFxyXG4gICAgc2VsZWN0SG92ZXJDb2xvcjogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjUpLFxyXG4gICAgc2VsZWN0U2VsZWN0ZWRDb2xvcjogcmdiYSgyMjQsIDIyNCwgMjI0LCAwLjUpLFxyXG4gICAgc3dpdGNoQmFja2dyb3VuZENvbG9yOiAjZTBlMGUwLFxyXG4gICAgYWNjb3VudEJhY2tncm91bmRDb2xvcjogcmdiYSgzMCwgMTM2LCAyMjksIDEpLFxyXG4gICAgYWNjb3VudEhvdmVyQmFja2dyb3VuZENvbG9yOiByZ2JhKDI0MCwgMjQwLCAyNDAsIDAuNSksXHJcbiAgICBhY2NvdW50TWFpblRleHRDb2xvcjogI2ZmZmZmZixcclxuICAgIHNlY3VyZWRTZWVkOiAjYTBhNWFiLFxyXG4gICAgc2VlZEl0ZW1UZXh0OiAjNDM0NTRiLFxyXG4gICAgc2VlZEl0ZW1CYWNrZ3JvdW5kQ29sb3I6ICNlNmU2ZTYsXHJcbiAgICBhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3I6ICM5MWJhZjEsXHJcbiAgICBhY2NvdW50SW5kaWNhdG9yVGV4dENvbG9yOiAjNDM0NTRiLFxyXG4gICAgYWNjb3VudFN3aXRjaEJhY2tncm91bmRDb2xvcjogI2ZmZmZmZixcclxuICAgIGFjY291bnRJbmRpY2F0b3JCYWNrZ3JvdW5kQ29sb3I6ICNmZmZmZmYsXHJcbiAgICB0YWJJbmFjdGl2ZUJhY2tncm91bmRDb2xvcjogcmdiYSgyMjQsIDIyNCwgMjI0LCAwLjUpLFxyXG4gICAgdGFiSG92ZXJCYWNrZ3JvdW5kQ29sb3I6ICNmZmZmZmYsXHJcbiAgICB0YWJsZUJhY2tncm91bmRDb2xvcjogI2ZmZmZmZixcclxuICAgIG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcjogI2ZmZixcclxuICAgIG1lc3NhZ2VCdWRkeUJhY2tncm91bmRDb2xvcjogI2VkZWRlZCxcclxuICAgIHByb2dyZXNzQmFyQmFja2dyb3VuZENvbG9yOiAjZGNkY2RjLFxyXG4gICAgcHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yOiAjNDZjMTcyLFxyXG4gICAgY2hhcnRPcHRpb25zQmFja2dyb3VuZENvbG9yOiAjZTBlMGUwLFxyXG4gICAgY2hhcnRPcHRpb25zSG92ZXJDb2xvcjogI2ZmZmZmZixcclxuICAgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I6ICNmZmZmZmYsXHJcbiAgICB0b29sdGlwSW1wb3J0YW50VGV4dENvbG9yOiAjZmZmZmZmLFxyXG4gICAgdG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcjogI2VmNmMwMCxcclxuICAgIHRvb2x0aXBDcml0aWNhbFRleHRDb2xvcjogI2ZmZmZmZixcclxuICAgIHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcjogI2U1MzkzNSxcclxuICAgIHRvb2x0aXBTaGFkb3c6IDAgMCAxcmVtIHJnYmEoMTIwLCAxMjAsIDEyMCwgMC41KSxcclxuICAgIG1vZGFsQmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLXdoaXRlLnBuZyksXHJcbiAgICBjbG9zZUJ1dHRvbkNvbG9yOiAjNDM0NTRiLFxyXG4gICAgaG92ZXJQYWdlOiAjZmZmZmZmXHJcbiAgKVxyXG4pO1xyXG5cclxuXHJcblxyXG5cclxuXHJcbiIsImFwcC1tYWluLCBhcHAtY3JlYXRlLXdhbGxldCwgYXBwLW9wZW4td2FsbGV0LCBhcHAtcmVzdG9yZS13YWxsZXQsIGFwcC1zZWVkLXBocmFzZSwgYXBwLXdhbGxldC1kZXRhaWxzLCBhcHAtYXNzaWduLWFsaWFzLCBhcHAtZWRpdC1hbGlhcywgYXBwLXRyYW5zZmVyLWFsaWFzLCBhcHAtc2V0dGluZ3MsIGFwcC1sb2dpbiB7XHJcbiAgZmxleDogMSAxIGF1dG87XHJcbiAgcGFkZGluZzogM3JlbTtcclxuICBtaW4td2lkdGg6IDg1cmVtO1xyXG5cclxuICAuY29udGVudCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nOiAzcmVtO1xyXG4gICAgbWluLWhlaWdodDogMTAwJTtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGNvbnRlbnRCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC5oZWFkIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtbWFpbiB7XHJcblxyXG4gIC5jb250ZW50IHtcclxuXHJcbiAgICAuYWRkLXdhbGxldCB7XHJcblxyXG4gICAgICAuYWRkLXdhbGxldC1oZWxwIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtc2VlZC1waHJhc2Uge1xyXG5cclxuICAuc2VlZC1waHJhc2UtY29udGVudCB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcilcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC13YWxsZXQtZGV0YWlscyB7XHJcblxyXG4gIC5zZWVkLXBocmFzZSB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtc2V0dGluZ3Mge1xyXG5cclxuICAuY29udGVudCB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gICAgLnRoZW1lLXNlbGVjdGlvbiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zY2FsZS1zZWxlY3Rpb24ge1xyXG5cclxuICAgICAgLmJ1dHRvbi1ibG9jayB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYkluYWN0aXZlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5sYWJlbCB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLmxhYmVsIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1sb2dpbiB7XHJcbiAgbWluLXdpZHRoOiBpbmhlcml0O1xyXG59XHJcbiIsImFwcC1zaWRlYmFyIHtcclxuXHJcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoc2lkZWJhckJhY2tncm91bmRDb2xvcik7XHJcbiAgfVxyXG5cclxuICAuc2lkZWJhci1hY2NvdW50cyB7XHJcblxyXG4gICAgLnNpZGViYXItYWNjb3VudHMtaGVhZGVyIHtcclxuXHJcbiAgICAgIGgzIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgYnV0dG9uIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zaWRlYmFyLWFjY291bnRzLWxpc3Qge1xyXG5cclxuICAgICAgLnNpZGViYXItYWNjb3VudCB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2lkZWJhci1hY2NvdW50LXJvdyB7XHJcblxyXG4gICAgICAgICAgLnRleHQge1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuaW5kaWNhdG9yIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlQnV0dG9uQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuXHJcbiAgICAgICAgICAgIC5wcm9ncmVzcy1iYXIge1xyXG5cclxuICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChwcm9ncmVzc0JhckJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAuZmlsbCB7XHJcblxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmLmFjY291bnQtc3luY2hyb25pemF0aW9uIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjdGl2ZSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgY29sb3I6IHRoZW1lZChhY2NvdW50TWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLnNpZGViYXItYWNjb3VudC1yb3cge1xyXG5cclxuICAgICAgICAgICAgLnRleHQge1xyXG5cclxuICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYWNjb3VudE9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5pbmRpY2F0b3Ige1xyXG5cclxuICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50SW5kaWNhdG9yQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYWNjb3VudEluZGljYXRvclRleHRDb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc3dpdGNoIHtcclxuXHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYWNjb3VudFN3aXRjaEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5hY2NvdW50LXN5bmNocm9uaXphdGlvbiB7XHJcblxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3Zlcjpub3QoLmFjdGl2ZSkge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYWNjb3VudEhvdmVyQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmFmdGVyIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDAlLCB0aGVtZWQoc2lkZWJhckJhY2tncm91bmRDb2xvcikgMTAwJSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zaWRlYmFyLXNldHRpbmdzIHtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMC4ycmVtIHNvbGlkIHRoZW1lZChzaWRlYmFyQm9yZGVyQ29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC53cmFwLWJ1dHRvbiB7XHJcblxyXG4gICAgICBidXR0b24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuYWN0aXZlIHtcclxuXHJcbiAgICAgICAgYnV0dG9uIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGFjY291bnRCYWNrZ3JvdW5kQ29sb3IpIWltcG9ydGFudDtcclxuICAgICAgICAgICAgY29sb3I6IHRoZW1lZChhY2NvdW50TWFpblRleHRDb2xvcikhaW1wb3J0YW50O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5pY29uIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50SW5kaWNhdG9yQmFja2dyb3VuZENvbG9yKSFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIi5zeW5jaHJvbml6YXRpb24tc3RhdHVzIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGZsZXg6IDAgMCA3cmVtO1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgfVxyXG5cclxuICAuc3RhdHVzLWNvbnRhaW5lciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICAgIC5vZmZsaW5lLCAub25saW5lIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAyLjJyZW07XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgICAgIGhlaWdodDogMS4ycmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm9mZmxpbmU6YmVmb3JlIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChvZmZsaW5lQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm9ubGluZTpiZWZvcmUge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKG9ubGluZUNvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zeW5jaW5nLCAubG9hZGluZyB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA1cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIGhlaWdodDogMC43cmVtO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIC5zeW5jaW5nIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgICAucHJvZ3Jlc3MtYmFyIHtcclxuICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChwcm9ncmVzc0JhckJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAuZmlsbCB7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyRnVsbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi5kb3dubG9hZGluZyB7XHJcblxyXG4gICAgICAgICAgLnByb2dyZXNzLWJhciB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuZmlsbCB7XHJcblxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAucHJvZ3Jlc3MtcGVyY2VudCB7XHJcbiAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDAuN3JlbTtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmxvYWRpbmcge1xyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyRnVsbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFuaW1hdGlvbjogbW92ZSA1cyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTpcclxuICAgICAgICAgIC13ZWJraXQtZ3JhZGllbnQoXHJcbiAgICAgICAgICAgICAgbGluZWFyLCAwIDAsIDEwMCUgMTAwJSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4xMjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjEyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjI1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC4yNTAsIHJnYmEoMCwgMCwgMCwgLjEwKSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMzc1LCByZ2JhKDAsIDAsIDAsIC4xMCkpLCBjb2xvci1zdG9wKC4zNzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC41MDAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNTAwLCByZ2JhKDAsIDAsIDAsIC4xNSkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjYyNSwgcmdiYSgwLCAwLCAwLCAuMTUpKSwgY29sb3Itc3RvcCguNjI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNzUwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjc1MCwgcmdiYSgwLCAwLCAwLCAuMTApKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC44NzUsIHJnYmEoMCwgMCwgMCwgLjEwKSksIGNvbG9yLXN0b3AoLjg3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIHRvKHRyYW5zcGFyZW50KVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIC13ZWJraXQtZ3JhZGllbnQoXHJcbiAgICAgICAgICAgICAgbGluZWFyLCAwIDEwMCUsIDEwMCUgMCxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4xMjUsIHJnYmEoMCwgMCwgMCwgLjMwKSksIGNvbG9yLXN0b3AoLjEyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjI1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC4yNTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMzc1LCByZ2JhKDAsIDAsIDAsIC4yNSkpLCBjb2xvci1zdG9wKC4zNzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC41MDAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNTAwLCByZ2JhKDAsIDAsIDAsIC4zMCkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjYyNSwgcmdiYSgwLCAwLCAwLCAuMzApKSwgY29sb3Itc3RvcCguNjI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNzUwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjc1MCwgcmdiYSgwLCAwLCAwLCAuMjUpKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC44NzUsIHJnYmEoMCwgMCwgMCwgLjI1KSksIGNvbG9yLXN0b3AoLjg3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIHRvKHRyYW5zcGFyZW50KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDdyZW0gN3JlbTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC51cGRhdGUtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgIC51cGRhdGUtdGV4dCB7XHJcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuOHJlbTtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAgICYudGltZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICBtYXJnaW46IDAuM3JlbSAwIDAgMC42cmVtO1xyXG4gICAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuMnJlbTtcclxuXHJcbiAgICAgICYudXBkYXRlIHtcclxuICAgICAgICBtYXNrOiB1cmwoLi9hc3NldHMvaWNvbnMvdXBkYXRlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi50aW1lIHtcclxuICAgICAgICBtYXNrOiB1cmwoLi9hc3NldHMvaWNvbnMvdGltZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc3RhbmRhcmQge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pbXBvcnRhbnQge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChvcmFuZ2VUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNyaXRpY2FsIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQocmVkVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50aW1lIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQob3JhbmdlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pY29uIHtcclxuXHJcbiAgICAgICYuc3RhbmRhcmQge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuaW1wb3J0YW50IHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQob3JhbmdlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuY3JpdGljYWwge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChyZWRUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi50aW1lIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQob3JhbmdlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIG1vdmUge1xyXG4gIDAlIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgLTdyZW07XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA3cmVtO1xyXG4gIH1cclxufVxyXG4iLCJhcHAtd2FsbGV0IHtcclxuXHJcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gIH1cclxuXHJcbiAgLmhlYWRlciB7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5pY29uIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICY6ZGlzYWJsZWQge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hbGlhcyB7XHJcblxyXG4gICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZHJlc3Mge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC5pY29uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnRhYnMge1xyXG5cclxuICAgIC50YWJzLWhlYWRlciB7XHJcblxyXG4gICAgICAudGFiIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodGFiSW5hY3RpdmVCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaW5kaWNhdG9yIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGFjY291bnRJbmRpY2F0b3JCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKGFjY291bnRJbmRpY2F0b3JUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY29udGVudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmhvdmVyOm5vdCguYWN0aXZlKTpub3QoLmRpc2FibGVkKSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCh0YWJIb3ZlckJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYnMtY29udGVudCB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY29udGVudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucGFnaW5hdGlvbi13cmFwcGVyIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChjb250ZW50QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnBhZ2luYXRpb24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCB0aGVtZWQodHJhbnNwYXJlbnRCdXR0b25Cb3JkZXJDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3IpO1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodGFibGVCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICBcclxuICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoaG92ZXJQYWdlKTtcclxuICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXNlbmQge1xyXG5cclxuICAuZm9ybS1zZW5kIHtcclxuXHJcbiAgICAuc2VuZC1zZWxlY3Qge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYWRkaXRpb25hbC1kZXRhaWxzIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlcjogMC4ycmVtIHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXJlY2VpdmUge1xyXG5cclxuICAuYnRuLWNvcHktYWRkcmVzcyB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1oaXN0b3J5IHtcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuXHJcbiAgICAgICAgJi5sb2NrZWQtdHJhbnNhY3Rpb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKDRuKzEpIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYmxlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKDRuKzIpIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYmxlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKDRuKzMpIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOm50aC1jaGlsZCg0bis0KSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cyB7XHJcblxyXG4gICAgICAgICAgLmNvbmZpcm1hdGlvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuZmlsbCB7XHJcblxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyRnVsbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubG9jay10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChvcmFuZ2VUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnVubG9jay10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zdGF0dXMuc2VuZCB7XHJcblxyXG4gICAgICAgICAgLnN0YXR1cy10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocmVkVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cy5yZWNlaXZlZCB7XHJcblxyXG4gICAgICAgICAgLnN0YXR1cy10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZ3JlZW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtY29udHJhY3RzIHtcclxuXHJcbiAgLndyYXAtdGFibGUge1xyXG5cclxuICAgIC5jb250cmFjdCB7XHJcblxyXG4gICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgICYubmV3LCAmLmFsZXJ0IHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHJlZFRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnB1cmNoYXNlLCAmLnNlbGwge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtcHVyY2hhc2Uge1xyXG5cclxuICAuZm9ybS1wdXJjaGFzZSB7XHJcblxyXG4gICAgLnB1cmNoYXNlLXNlbGVjdCB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wdXJjaGFzZS1zdGF0ZXMge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hZGRpdGlvbmFsLWRldGFpbHMge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYm9yZGVyOiAwLjJyZW0gc29saWQgdGhlbWVkKHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XHJcblxyXG4gICAgLnByb2dyZXNzLWJhciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChwcm9ncmVzc0JhckZ1bGxCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLW1lc3NhZ2VzIHtcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuXHJcbiAgICAgICAgdGQ6Zmlyc3QtY2hpbGQge1xyXG5cclxuICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LXRydW5jYXRlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5pY29uIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChyZWRUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtdHlwaW5nLW1lc3NhZ2Uge1xyXG5cclxuICAuaGVhZCB7XHJcblxyXG4gICAgLmludGVybG9jdXRvciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWVzc2FnZXMtY29udGVudCB7XHJcblxyXG4gICAgLm1lc3NhZ2VzLWxpc3Qge1xyXG5cclxuICAgICAgZGl2IHtcclxuXHJcbiAgICAgICAgJi5kYXRlIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLm15IHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjpiZWZvcmUge1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvO1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgIGxlZnQ6IC0xLjFyZW07XHJcbiAgICAgICAgICAgIGJvcmRlcjogMS4ycmVtIHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdGhlbWVkKG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYnVkZHkge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQobWVzc2FnZUJ1ZGR5QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmOmFmdGVyIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkbztcclxuICAgICAgICAgICAgcmlnaHQ6IC0xLjFyZW07XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgYm9yZGVyOiAxLjJyZW0gc29saWQgdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0aGVtZWQobWVzc2FnZUJ1ZGR5QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXN0YWtpbmcge1xyXG5cclxuICAuY2hhcnQtaGVhZGVyIHtcclxuXHJcbiAgICAuZ2VuZXJhbCB7XHJcblxyXG4gICAgICAubGFiZWwge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLm9wdGlvbnMge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdGVkIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jaGFydC1vcHRpb25zIHtcclxuXHJcbiAgICAudGl0bGUge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAub3B0aW9ucyB7XHJcblxyXG4gICAgICBidXR0b24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY2hhcnRPcHRpb25zQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYWN0aXZlIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGNoYXJ0T3B0aW9uc0hvdmVyQ29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmlucHV0LWJsb2NrLWFsaWFzIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIC5hbGlhcy1kcm9wZG93biB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDYuNXJlbTtcclxuICAgIG1heC1oZWlnaHQ6IDEwcmVtO1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGlucHV0QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXYge1xyXG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgcGFkZGluZzogMXJlbTtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHNlbGVjdEhvdmVyQ29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJhcHAtY29udGFjdHMsIGFwcC1hZGQtY29udGFjdHMsXHJcbmFwcC1jb250YWN0LXNlbmQsIGFwcC1leHBvcnQtaW1wb3J0IHtcclxuICBmbGV4OiAxIDEgYXV0bztcclxuICBwYWRkaW5nOiAzcmVtO1xyXG4gIG1pbi13aWR0aDogODVyZW07XHJcblxyXG4gIC5jb250ZW50IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDNyZW07XHJcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY29udGVudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLmhlYWQge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1jb250YWN0cyB7XHJcbiAgXHJcbiAgdGFibGUge1xyXG5cclxuICAgIC5hbGlhcyB7XHJcbiAgXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICBcclxuICAgICAgLmljb24ge1xyXG4gIFxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gIFxyXG4gICAgICBzcGFuIHtcclxuICAgICAgICBcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcilcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mb290ZXIge1xyXG4gICAgXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgIH1cclxuICBcclxuICAgIC5pbXBvcnQtYnRuIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5pY29uIHtcclxuICBcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbn1cclxuXHJcbmFwcC1jb250YWN0LXNlbmQge1xyXG4gIFxyXG4gIC53YWxsZXRzLXNlbGVjdGlvbiB7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iLCIuZm9ybS1kZXRhaWxzIHtcclxuICAgIG1hcmdpbi10b3A6IDEuOHJlbTtcclxuXHJcbiAgICAuaW5wdXQtYmxvY2sge1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLndhbGxldC1idXR0b25zIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgICBtYXJnaW46IDIuOXJlbSAwO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxNXJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb3JtLXNlZWQge1xyXG5cclxuICAgIGxhYmVsIHtcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtLWNvbnRlbnQge1xyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB0aGVtZWQodHJhbnNwYXJlbnRCdXR0b25Cb3JkZXJDb2xvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIHBhZGRpbmc6IDNyZW07XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLnRleHQtY29yYWwge1xyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLnNlZWQtcGhyYXNlLWZvcm0ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIG1heC13aWR0aDogMzhyZW07XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAgIC5pbnB1dC1ibG9jayxcclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5lcnJvci1tZXNzYWdlIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKG9yYW5nZVRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWN1cmVkLXNlZWQge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoc2VjdXJlZFNlZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAgICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogM3JlbTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuXHJcbiAgICAgICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxufVxyXG5cclxuLnNlZWQtcGhyYXNlIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cclxuICAgICYtdGl0bGUge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAucmlnaHQtcGFydCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEuN3JlbTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMS43cmVtO1xyXG5cclxuICAgICAgICAgICAgICAgICYuY29weSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2NvcHkuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC43NTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJi5jb3BpZWQge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9jb21wbGV0ZS10ZXN0d2FsbGV0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmLnNlY3VyZWQsXHJcbiAgICAgICAgICAgICAgICAmLnVuc2VjdXJlZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMnJlbTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjRyZW07XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi1jb250ZW50IHtcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcGFkZGluZzogMXJlbSAwIDFyZW07XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG5cclxuICAgICAgICAuaXRlbSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChzZWVkSXRlbVRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMnJlbTtcclxuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDcpO1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzNXB4O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuXHJcbiAgICAgICAgICAgICYuZGFyayB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoc2VlZEl0ZW1CYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtZm9vdGVyIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChzZWVkSXRlbVRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmljb24ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICB3aWR0aDogMS42cmVtO1xyXG4gICAgaGVpZ2h0OiAxLjZyZW07XHJcblxyXG4gICAgJi5zZWN1cmVkIHtcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGdyZWVuVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL3NlY3VyZWQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICYuaW5mbyB7XHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2luZm8uc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICYudW5zZWN1cmVkIHtcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKG9yYW5nZVRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy91bnNlY3VyZWQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICYuc2FmZXR5IHtcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL3NhZmV0eS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICB9XHJcbn1cclxuXHJcbi53cmFwLWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAuc2VlZC1waHJhc2UtYnV0dG9uIHtcclxuICAgICAgICBtYXJnaW46IDIuOHJlbSAwO1xyXG4gICAgICAgIHdpZHRoOiAyNSU7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxLjVyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmNvcHktYnV0dG9uIHtcclxuICAgICAgICBtYXJnaW46IDIuOHJlbSAxcmVtO1xyXG4gICAgICAgIHdpZHRoOiAyNSU7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxLjVyZW07XHJcbiAgICB9XHJcbn0iLCIuaGVhZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIHBhZGRpbmc6IDAgM3JlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDNyZW07XHJcblxyXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICB9XHJcblxyXG4gIC5icmVhZGNydW1icyB7XHJcblxyXG4gICAgPiBzcGFuLCBhIHtcclxuXHJcbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgb3V0bGluZS1zdHlsZTogbm9uZTtcclxuXHJcbiAgICAgICAgJjphZnRlciB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgcHNldWRvO1xyXG4gICAgICAgICAgdG9wOiAwLjVyZW07XHJcbiAgICAgICAgICByaWdodDogLTEuNXJlbTtcclxuICAgICAgICAgIHdpZHRoOiAwLjlyZW07XHJcbiAgICAgICAgICBoZWlnaHQ6IDAuOXJlbTtcclxuICAgICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1yaWdodC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICBtYXNrLXNpemU6IGNvdmVyO1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuYmFjay1idG4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiAjNGRiMWZmO1xyXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjNyZW07XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjdyZW07XHJcbiAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9iYWNrLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDAuOXJlbTtcclxuICAgICAgaGVpZ2h0OiAwLjlyZW07XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLnNjcm9sbGVkLWNvbnRlbnQge1xyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgIHdpZHRoOiAxcmVtO1xyXG4gICAgaGVpZ2h0OiAxcmVtO1xyXG4gIH1cclxuXHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xyXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcclxuICB9XHJcblxyXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XHJcbiAgfVxyXG59XHJcbiIsInRhYmxlIHtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgdGhlYWQge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgdHIge1xyXG4gICAgICBoZWlnaHQ6IDRyZW07XHJcblxyXG4gICAgICB0aCB7XHJcbiAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogM3JlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGJvZHkge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICB0ciB7XHJcbiAgICAgIGhlaWdodDogMy41cmVtO1xyXG5cclxuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYmxlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRkIHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS43cmVtO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAyMHJlbTtcclxuXHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gQkFTRVxyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9iYXNlL21peGlucyc7XHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2Jhc2UvbnVsbCc7XHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2Jhc2UvdGhlbWUnO1xyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9iYXNlL2Jhc2UnO1xyXG5cclxuLy8gTEFZT1VUXHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2xheW91dC9tYWluJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbGF5b3V0L3NldHRpbmdzJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbGF5b3V0L3NpZGViYXInO1xyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9sYXlvdXQvc3RhdHVzJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbGF5b3V0L3dhbGxldCc7XHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2xheW91dC9jb250YWN0JztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbGF5b3V0L3NlZWQtcGhyYXNlJztcclxuXHJcbi8vIE1PRFVMRVNcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbW9kdWxlcy9oZWFkJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbW9kdWxlcy9zY3JvbGwnO1xyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9tb2R1bGVzL3RhYmxlJztcclxuXHJcbkBpbXBvcnQgXCJ+QG5nLXNlbGVjdC9uZy1zZWxlY3QvdGhlbWVzL2RlZmF1bHQudGhlbWUuY3NzXCI7XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnM7XHJcbiAgc3JjOiB1cmwofnNyYy9hc3NldHMvZm9udHMvT3BlblNhbnMtTGlnaHQudHRmKTtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnM7XHJcbiAgc3JjOiB1cmwofnNyYy9hc3NldHMvZm9udHMvT3BlblNhbnMtUmVndWxhci50dGYpO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiBPcGVuU2FucztcclxuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1TZW1pQm9sZC50dGYpO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiBPcGVuU2FucztcclxuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1Cb2xkLnR0Zik7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xyXG4gIHNyYzogdXJsKH5zcmMvYXNzZXRzL2ZvbnRzL09wZW5TYW5zLUV4dHJhQm9sZC50dGYpO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbn1cclxuXHJcblxyXG5odG1sIHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnMsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxMHB4O1xyXG59XHJcblxyXG5ib2R5IHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnMsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgd2lkdGg6IDEwMHZ3O1xyXG4gIGhlaWdodDogMTAwdmg7XHJcblxyXG4gICYudGhlbWUtZGFyayB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMTMxOTIxIHVybChcImFzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1kYXJrLnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICB9XHJcblxyXG4gICYudGhlbWUtZ3JheSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMTAxNDE3IHVybChcImFzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1ncmF5LnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICB9XHJcblxyXG4gICYudGhlbWUtd2hpdGUge1xyXG4gICAgYmFja2dyb3VuZDogI2VlZWVlZSB1cmwoXCJhc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtd2hpdGUucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIH1cclxuXHJcbiAgYXBwLXJvb3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLnVwZGF0ZS10b29sdGlwIHtcclxuXHJcbiAgLnRvb2x0aXAtaW5uZXIge1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKGFzc2V0cy9pY29ucy91cGRhdGUtYWxlcnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */", '', '']] /***/ }), diff --git a/src/gui/qt-daemon/html/styles.js.map b/src/gui/qt-daemon/html/styles.js.map index 5e86eb3e..5ddda900 100644 --- a/src/gui/qt-daemon/html/styles.js.map +++ b/src/gui/qt-daemon/html/styles.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/styles.scss","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///./src/styles.scss?4266"],"names":[],"mappings":"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CA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,cAAc,mBAAO,CAAC,uDAAQ;;AAE9B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA,KAAK,KAAwC,EAAE,EAE7C;;AAEF,QAAQ,sBAAiB;AACzB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;;AAEA,6BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;;;;;;;;;;;;;AC9YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW,EAAE;AACrD,wCAAwC,WAAW,EAAE;;AAErD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,sCAAsC;AACtC,GAAG;AACH;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;;;;;;;;;;;;ACvFA,cAAc,mBAAO,CAAC,4ZAA0N;;AAEhP,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,mGAAgD;;AAErE;;AAEA,GAAG,KAAU,EAAE,E","file":"styles.js","sourcesContent":["module.exports = [[module.id, \"/*\\r\\n* Implementation of themes\\r\\n*/\\n.ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}\\n.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}\\n.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}\\n.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}\\n.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}\\n.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}\\n.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:#007eff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 0 3px rgba(0,126,255,0.1)}\\n.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}\\n.ng-select .ng-has-value .ng-placeholder{display:none}\\n.ng-select .ng-select-container{background-color:#fff;border-radius:4px;border:1px solid #ccc;min-height:36px;align-items:center}\\n.ng-select .ng-select-container:hover{box-shadow:0 1px 0 rgba(0,0,0,0.06)}\\n.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}\\n[dir=\\\"rtl\\\"] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}\\n.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}\\n.ng-select.ng-select-single .ng-select-container{height:36px}\\n.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}\\n[dir=\\\"rtl\\\"] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}\\n.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}\\n.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}\\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}\\n[dir=\\\"rtl\\\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}\\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;background-color:#ebf5ff;border-radius:2px;margin-right:5px}\\n[dir=\\\"rtl\\\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}\\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}\\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}\\n[dir=\\\"rtl\\\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}\\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label{display:inline-block;padding:1px 5px}\\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}\\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}\\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}\\n[dir=\\\"rtl\\\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}\\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}\\n[dir=\\\"rtl\\\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}\\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}\\n[dir=\\\"rtl\\\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}\\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}\\n[dir=\\\"rtl\\\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}\\n.ng-select .ng-clear-wrapper{color:#999}\\n.ng-select .ng-clear-wrapper:hover .ng-clear{color:#D0021B}\\n.ng-select .ng-spinner-zone{padding:5px 5px 0 0}\\n[dir=\\\"rtl\\\"] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}\\n.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}\\n[dir=\\\"rtl\\\"] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}\\n.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}\\n.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}\\n.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,0.06);left:0}\\n.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-color:#e6e6e6;margin-top:-1px}\\n.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}\\n.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}\\n.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}\\n.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}\\n.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}\\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:rgba(0,0,0,0.54);cursor:pointer}\\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}\\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5faff}\\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{background-color:#ebf5ff;font-weight:600}\\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:rgba(0,0,0,0.87);padding:8px 10px}\\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#ebf5ff}\\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}\\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5faff;color:#333}\\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}\\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}\\n[dir=\\\"rtl\\\"] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}\\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}\\n[dir=\\\"rtl\\\"] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}\\n[dir=\\\"rtl\\\"] .ng-dropdown-panel{direction:rtl;text-align:right}\\nhtml {\\n box-sizing: border-box;\\n -webkit-box-sizing: border-box;\\n -moz-box-sizing: border-box; }\\n*, *:before, *:after {\\n box-sizing: inherit;\\n -webkit-box-sizing: inherit;\\n -moz-box-sizing: inherit;\\n margin: 0;\\n padding: 0;\\n -webkit-touch-collout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none; }\\nhtml, body, div, span, applet, object, iframe,\\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\\na, abbr, acronym, address, big, cite, code,\\ndel, dfn, em, img, ins, kbd, q, s, samp,\\nsmall, strike, strong, sub, sup, tt, var,\\nb, u, i, center,\\ndl, dt, dd, ol, ul, li,\\nfieldset, form, label, legend,\\ntable, caption, tbody, tfoot, thead, tr, th, td,\\narticle, aside, canvas, details, embed,\\nfigure, figcaption, footer, header, hgroup,\\nmenu, nav, output, ruby, section, summary,\\ntime, mark, audio, video {\\n border: 0;\\n font-size: 100%;\\n font: inherit;\\n vertical-align: baseline; }\\narticle, aside, details, figcaption, figure,\\nfooter, header, hgroup, menu, nav, section {\\n display: block; }\\nbody {\\n line-height: 1;\\n font-style: normal; }\\nol, ul {\\n list-style: none; }\\nblockquote, q {\\n quotes: none; }\\nblockquote:before, blockquote:after,\\nq:before, q:after {\\n content: none; }\\ntable {\\n border-collapse: collapse;\\n border-spacing: 0; }\\ntd,\\nth {\\n padding: 0; }\\ninput {\\n outline: none; }\\ninput:-webkit-autofill {\\n -webkit-box-shadow: 0 0 0 1000px white inset; }\\nbutton,\\nhtml input[type=\\\"button\\\"],\\ninput[type=\\\"reset\\\"],\\ninput[type=\\\"submit\\\"] {\\n -webkit-appearance: button;\\n cursor: pointer;\\n outline: none; }\\nbutton[disabled],\\nhtml input[disabled] {\\n cursor: default; }\\nbutton::-moz-focus-inner,\\ninput::-moz-focus-inner {\\n border: 0;\\n padding: 0; }\\ninput {\\n line-height: normal; }\\ninput[type=\\\"search\\\"] {\\n -webkit-appearance: textfield;\\n box-sizing: content-box; }\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button,\\ninput[type=\\\"search\\\"]::-webkit-search-decoration {\\n -webkit-appearance: none; }\\na {\\n text-decoration: none; }\\na:active, a:hover, a:focus {\\n outline: 0; }\\ni {\\n font-style: italic; }\\nb, strong {\\n font-weight: 700; }\\nimg {\\n width: auto;\\n max-width: 100%;\\n height: auto;\\n vertical-align: top;\\n border: 0; }\\n.hidden {\\n display: none !important; }\\n.theme-dark .app-content .preloader .loading-bar {\\n background-color: #5cda9d; }\\n.theme-gray .app-content .preloader .loading-bar {\\n background-color: #47cf8d; }\\n.theme-white .app-content .preloader .loading-bar {\\n background-color: #46c172; }\\nbutton {\\n border: none;\\n font-family: OpenSans, sans-serif;\\n font-size: 1.5rem;\\n font-weight: 600;\\n outline: none;\\n padding: 0 1rem;\\n height: 4.2rem; }\\n.theme-dark button:disabled:not(.transparent-button), .theme-dark button.blue-button_reset {\\n background-color: #9cadb7;\\n color: #111921; }\\n.theme-gray button:disabled:not(.transparent-button), .theme-gray button.blue-button_reset {\\n background-color: #79848f;\\n color: #1a1a1a; }\\n.theme-white button:disabled:not(.transparent-button), .theme-white button.blue-button_reset {\\n background-color: #90a4ae;\\n color: #fefefe; }\\n.theme-dark button:disabled:not(.transparent-button):hover, .theme-dark button.blue-button_reset:hover {\\n background-color: #b7d1e0; }\\n.theme-gray button:disabled:not(.transparent-button):hover, .theme-gray button.blue-button_reset:hover {\\n background-color: #a1aebb; }\\n.theme-white button:disabled:not(.transparent-button):hover, .theme-white button.blue-button_reset:hover {\\n background-color: #aebec6; }\\n.theme-dark button:disabled:not(.transparent-button):focus, .theme-dark button.blue-button_reset:focus {\\n background-color: #a7b9c2; }\\n.theme-gray button:disabled:not(.transparent-button):focus, .theme-gray button.blue-button_reset:focus {\\n background-color: #8a959f; }\\n.theme-white button:disabled:not(.transparent-button):focus, .theme-white button.blue-button_reset:focus {\\n background-color: #a7b9c2; }\\n.theme-dark button.blue-button:not(:disabled) {\\n background-color: #4db1ff;\\n color: #111921; }\\n.theme-gray button.blue-button:not(:disabled) {\\n background-color: #42a5f5;\\n color: #1a1a1a; }\\n.theme-white button.blue-button:not(:disabled) {\\n background-color: #2c95f1;\\n color: #fefefe; }\\n.theme-dark button.blue-button:not(:disabled):hover {\\n background-color: #82d7ff; }\\n.theme-gray button.blue-button:not(:disabled):hover {\\n background-color: #86d6ff; }\\n.theme-white button.blue-button:not(:disabled):hover {\\n background-color: #5cb3ff; }\\n.theme-dark button.blue-button:not(:disabled):focus {\\n background-color: #59b5fd; }\\n.theme-gray button.blue-button:not(:disabled):focus {\\n background-color: #5fb6fc; }\\n.theme-white button.blue-button:not(:disabled):focus {\\n background-color: #379ffa; }\\n.theme-dark button.green-button:not(:disabled) {\\n background-color: #5cda9d;\\n color: #111921; }\\n.theme-gray button.green-button:not(:disabled) {\\n background-color: #47cf8d;\\n color: #1a1a1a; }\\n.theme-white button.green-button:not(:disabled) {\\n background-color: #46c172;\\n color: #fefefe; }\\n.theme-dark button.green-button:not(:disabled):hover {\\n background-color: #8dfcc6; }\\n.theme-gray button.green-button:not(:disabled):hover {\\n background-color: #7bf6c6; }\\n.theme-white button.green-button:not(:disabled):hover {\\n background-color: #5ad586; }\\n.theme-dark button.green-button:not(:disabled):focus {\\n background-color: #62e0b2; }\\n.theme-gray button.green-button:not(:disabled):focus {\\n background-color: #5cdc9e; }\\n.theme-white button.green-button:not(:disabled):focus {\\n background-color: #53c77c; }\\n.theme-dark button.turquoise-button:not(:disabled) {\\n background-color: #4dd0e1;\\n color: #111921; }\\n.theme-gray button.turquoise-button:not(:disabled) {\\n background-color: #3ec5d7;\\n color: #1a1a1a; }\\n.theme-white button.turquoise-button:not(:disabled) {\\n background-color: #26b6c7;\\n color: #fefefe; }\\n.theme-dark button.turquoise-button:not(:disabled):hover {\\n background-color: #87f4f5; }\\n.theme-gray button.turquoise-button:not(:disabled):hover {\\n background-color: #72edfe; }\\n.theme-white button.turquoise-button:not(:disabled):hover {\\n background-color: #52cbd9; }\\n.theme-dark button.turquoise-button:not(:disabled):focus {\\n background-color: #42d5e8; }\\n.theme-gray button.turquoise-button:not(:disabled):focus {\\n background-color: #50d0e1; }\\n.theme-white button.turquoise-button:not(:disabled):focus {\\n background-color: #31becf; }\\nbutton.transparent-button {\\n display: flex;\\n align-items: center;\\n justify-content: center; }\\n.theme-dark button.transparent-button {\\n background-color: transparent;\\n border: 0.2rem solid #2b3644;\\n color: #e0e0e0; }\\n.theme-gray button.transparent-button {\\n background-color: transparent;\\n border: 0.2rem solid #2f3438;\\n color: #e0e0e0; }\\n.theme-white button.transparent-button {\\n background-color: transparent;\\n border: 0.2rem solid #ebebeb;\\n color: #43454b; }\\nbutton.transparent-button .icon {\\n margin-right: 1rem;\\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\\n mask: url('complete-testwallet.svg') no-repeat center;\\n width: 1.7rem;\\n height: 1.7rem; }\\n.theme-dark button.transparent-button .icon {\\n background-color: #e0e0e0; }\\n.theme-gray button.transparent-button .icon {\\n background-color: #e0e0e0; }\\n.theme-white button.transparent-button .icon {\\n background-color: #43454b; }\\n.input-block {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n margin-bottom: 0.4rem; }\\n.input-block .wrap-label {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n min-height: 2.4rem; }\\n.input-block label {\\n font-size: 1.3rem;\\n line-height: 2.4rem; }\\n.theme-dark .input-block label {\\n color: #556576; }\\n.theme-gray .input-block label {\\n color: #565c62; }\\n.theme-white .input-block label {\\n color: #a0a5ab; }\\n.input-block input[type='text'], .input-block input[type='password'], .input-block select {\\n border: none;\\n font-size: 1.4rem;\\n outline: none;\\n padding: 0 1rem;\\n width: 100%;\\n height: 4.2rem; }\\n.theme-dark .input-block input[type='text'], .theme-dark .input-block input[type='password'], .theme-dark .input-block select {\\n background-color: #171e27;\\n color: #e0e0e0; }\\n.theme-gray .input-block input[type='text'], .theme-gray .input-block input[type='password'], .theme-gray .input-block select {\\n background-color: #292d31;\\n color: #e0e0e0; }\\n.theme-white .input-block input[type='text'], .theme-white .input-block input[type='password'], .theme-white .input-block select {\\n background-color: #e6e6e6;\\n color: #43454b; }\\n.input-block.textarea {\\n height: auto; }\\n.input-block.textarea textarea {\\n font-family: OpenSans, sans-serif;\\n border: none;\\n font-size: 1.4rem;\\n outline: none;\\n padding: 1rem;\\n width: 100%;\\n min-width: 100%;\\n height: 100%;\\n min-height: 7.5rem;\\n max-height: 7.5rem;\\n overflow: auto;\\n resize: none; }\\n.theme-dark .input-block.textarea textarea {\\n background-color: #171e27;\\n color: #e0e0e0; }\\n.theme-gray .input-block.textarea textarea {\\n background-color: #292d31;\\n color: #e0e0e0; }\\n.theme-white .input-block.textarea textarea {\\n background-color: #e6e6e6;\\n color: #43454b; }\\n.input-block .error-block {\\n font-size: 1rem;\\n line-height: 1.4rem;\\n align-self: flex-end;\\n text-align: right; }\\n.theme-dark .input-block .error-block {\\n color: #ff5252; }\\n.theme-gray .input-block .error-block {\\n color: #ff5252; }\\n.theme-white .input-block .error-block {\\n color: #ff5252; }\\n.input-block .success-block {\\n font-size: 1rem;\\n line-height: 1.4rem;\\n align-self: flex-end;\\n text-align: right; }\\n.theme-dark .input-block .success-block {\\n color: #5cda9d; }\\n.theme-gray .input-block .success-block {\\n color: #47cf8d; }\\n.theme-white .input-block .success-block {\\n color: #46c172; }\\n.theme-dark .error-text {\\n color: #ff5252; }\\n.theme-gray .error-text {\\n color: #ff5252; }\\n.theme-white .error-text {\\n color: #ff5252; }\\ninput[type='radio'].style-radio + label {\\n display: flex;\\n align-items: center;\\n cursor: pointer;\\n font-weight: 400;\\n padding-left: 2.4rem;\\n -webkit-touch-collout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none; }\\n.theme-dark input[type='radio'].style-radio + label {\\n color: #556576; }\\n.theme-gray input[type='radio'].style-radio + label {\\n color: #565c62; }\\n.theme-white input[type='radio'].style-radio + label {\\n color: #a0a5ab; }\\ninput[type='radio'].style-radio:not(checked) {\\n position: absolute;\\n opacity: 0; }\\ninput[type='radio'].style-radio:not(checked) + label {\\n position: relative; }\\ninput[type='radio'].style-radio:not(checked) + label:before {\\n content: '';\\n position: absolute;\\n top: 0.7rem;\\n left: 0;\\n background: transparent;\\n border-radius: 50%;\\n width: 1.4rem;\\n height: 1.4rem; }\\n.theme-dark input[type='radio'].style-radio:not(checked) + label:before {\\n border: 0.1rem solid #4db1ff; }\\n.theme-gray input[type='radio'].style-radio:not(checked) + label:before {\\n border: 0.1rem solid #42a5f5; }\\n.theme-white input[type='radio'].style-radio:not(checked) + label:before {\\n border: 0.1rem solid #2c95f1; }\\ninput[type='radio'].style-radio:not(checked) + label:after {\\n content: '';\\n position: absolute;\\n top: 1rem;\\n left: 0.3rem;\\n border-radius: 50%;\\n opacity: 0;\\n width: 0.8rem;\\n height: 0.8rem; }\\n.theme-dark input[type='radio'].style-radio:not(checked) + label:after {\\n background-color: #4db1ff; }\\n.theme-gray input[type='radio'].style-radio:not(checked) + label:after {\\n background-color: #42a5f5; }\\n.theme-white input[type='radio'].style-radio:not(checked) + label:after {\\n background-color: #2c95f1; }\\ninput[type='radio'].style-radio:checked + label:after {\\n opacity: 1; }\\ninput[type='checkbox'].style-checkbox + label {\\n display: flex;\\n align-items: center;\\n cursor: pointer;\\n font-weight: 400;\\n padding-left: 3.6rem;\\n -webkit-touch-collout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none; }\\n.theme-dark input[type='checkbox'].style-checkbox + label {\\n color: #556576; }\\n.theme-gray input[type='checkbox'].style-checkbox + label {\\n color: #565c62; }\\n.theme-white input[type='checkbox'].style-checkbox + label {\\n color: #a0a5ab; }\\ninput[type='checkbox'].style-checkbox:not(checked) {\\n position: absolute;\\n top: 50%;\\n left: 1.6rem;\\n transform: translateY(-50%);\\n visibility: hidden; }\\ninput[type='checkbox'].style-checkbox:not(checked) + label {\\n position: relative; }\\ninput[type='checkbox'].style-checkbox:not(checked) + label:before {\\n content: '';\\n position: absolute;\\n top: 50%;\\n left: 1.6rem;\\n transform: translateY(-50%);\\n background: transparent;\\n width: 1.4rem;\\n height: 1.4rem; }\\n.theme-dark input[type='checkbox'].style-checkbox:not(checked) + label:before {\\n border: 0.1rem solid #4db1ff; }\\n.theme-gray input[type='checkbox'].style-checkbox:not(checked) + label:before {\\n border: 0.1rem solid #42a5f5; }\\n.theme-white input[type='checkbox'].style-checkbox:not(checked) + label:before {\\n border: 0.1rem solid #2c95f1; }\\ninput[type='checkbox'].style-checkbox:checked + label:before {\\n background: url('complete-testwallet.svg'); }\\n.theme-dark input[type='checkbox'].style-checkbox:checked + label:before {\\n background-color: #4db1ff; }\\n.theme-gray input[type='checkbox'].style-checkbox:checked + label:before {\\n background-color: #42a5f5; }\\n.theme-white input[type='checkbox'].style-checkbox:checked + label:before {\\n background-color: #2c95f1; }\\n.theme-dark .switch {\\n background-color: #000000; }\\n.theme-gray .switch {\\n background-color: #000000; }\\n.theme-white .switch {\\n background-color: #e0e0e0; }\\n.theme-dark .switch .circle.on {\\n background-color: #4db1ff; }\\n.theme-gray .switch .circle.on {\\n background-color: #42a5f5; }\\n.theme-white .switch .circle.on {\\n background-color: #2c95f1; }\\n.theme-dark .switch .circle.off {\\n background-color: #556576; }\\n.theme-gray .switch .circle.off {\\n background-color: #565c62; }\\n.theme-white .switch .circle.off {\\n background-color: #a0a5ab; }\\n.table-tooltip {\\n padding: 1rem 2rem; }\\n.theme-dark .table-tooltip {\\n background: #42505f;\\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\\n color: #e0e0e0; }\\n.theme-gray .table-tooltip {\\n background: #3e464c;\\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\\n color: #e0e0e0; }\\n.theme-white .table-tooltip {\\n background: #ffffff;\\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5);\\n color: #43454b; }\\n.table-tooltip .tooltip-inner {\\n font-size: 1.3rem;\\n line-height: 1.8rem;\\n white-space: pre-wrap; }\\n.table-tooltip.ng-tooltip-top {\\n margin-top: -1rem; }\\n.table-tooltip.ng-tooltip-top:after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: -1rem;\\n left: calc(50% - 0.5rem);\\n border-width: 0.5rem;\\n border-style: solid; }\\n.theme-dark .table-tooltip.ng-tooltip-top:after {\\n border-color: #42505f transparent transparent transparent; }\\n.theme-gray .table-tooltip.ng-tooltip-top:after {\\n border-color: #3e464c transparent transparent transparent; }\\n.theme-white .table-tooltip.ng-tooltip-top:after {\\n border-color: #ffffff transparent transparent transparent; }\\n.table-tooltip.ng-tooltip-top-left {\\n margin-top: -1rem; }\\n.table-tooltip.ng-tooltip-top-left:after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: -1rem;\\n left: 0.7rem;\\n border-width: 0.5rem;\\n border-style: solid; }\\n.theme-dark .table-tooltip.ng-tooltip-top-left:after {\\n border-color: #42505f transparent transparent #42505f; }\\n.theme-gray .table-tooltip.ng-tooltip-top-left:after {\\n border-color: #3e464c transparent transparent #3e464c; }\\n.theme-white .table-tooltip.ng-tooltip-top-left:after {\\n border-color: #ffffff transparent transparent #ffffff; }\\n.table-tooltip.ng-tooltip-top-right {\\n margin-top: -1rem; }\\n.table-tooltip.ng-tooltip-top-right:after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: -1rem;\\n right: 0.7rem;\\n border-width: 0.5rem;\\n border-style: solid; }\\n.theme-dark .table-tooltip.ng-tooltip-top-right:after {\\n border-color: #42505f #42505f transparent transparent; }\\n.theme-gray .table-tooltip.ng-tooltip-top-right:after {\\n border-color: #3e464c #3e464c transparent transparent; }\\n.theme-white .table-tooltip.ng-tooltip-top-right:after {\\n border-color: #ffffff #ffffff transparent transparent; }\\n.table-tooltip.ng-tooltip-bottom {\\n margin-top: 1rem; }\\n.table-tooltip.ng-tooltip-bottom:before {\\n content: \\\"\\\";\\n position: absolute;\\n top: -1rem;\\n left: calc(50% - 0.5rem);\\n border-width: 0.5rem;\\n border-style: solid; }\\n.theme-dark .table-tooltip.ng-tooltip-bottom:before {\\n border-color: transparent transparent #42505f transparent; }\\n.theme-gray .table-tooltip.ng-tooltip-bottom:before {\\n border-color: transparent transparent #3e464c transparent; }\\n.theme-white .table-tooltip.ng-tooltip-bottom:before {\\n border-color: transparent transparent #ffffff transparent; }\\n.table-tooltip.ng-tooltip-bottom-left {\\n margin-top: 1rem; }\\n.table-tooltip.ng-tooltip-bottom-left:before {\\n content: \\\"\\\";\\n position: absolute;\\n top: -1rem;\\n left: 0.7rem;\\n border-width: 0.5rem;\\n border-style: solid; }\\n.theme-dark .table-tooltip.ng-tooltip-bottom-left:before {\\n border-color: transparent transparent #42505f #42505f; }\\n.theme-gray .table-tooltip.ng-tooltip-bottom-left:before {\\n border-color: transparent transparent #3e464c #3e464c; }\\n.theme-white .table-tooltip.ng-tooltip-bottom-left:before {\\n border-color: transparent transparent #ffffff #ffffff; }\\n.table-tooltip.ng-tooltip-bottom-right {\\n margin-top: 1rem; }\\n.table-tooltip.ng-tooltip-bottom-right:before {\\n content: \\\"\\\";\\n position: absolute;\\n top: -1rem;\\n right: 0.7rem;\\n border-width: 0.5rem;\\n border-style: solid; }\\n.theme-dark .table-tooltip.ng-tooltip-bottom-right:before {\\n border-color: transparent #42505f #42505f transparent; }\\n.theme-gray .table-tooltip.ng-tooltip-bottom-right:before {\\n border-color: transparent #3e464c #3e464c transparent; }\\n.theme-white .table-tooltip.ng-tooltip-bottom-right:before {\\n border-color: transparent #ffffff #ffffff transparent; }\\n.table-tooltip.ng-tooltip-left {\\n margin-left: -1rem; }\\n.table-tooltip.ng-tooltip-left:after {\\n content: \\\"\\\";\\n position: absolute;\\n top: calc(50% - 0.5rem);\\n right: -1rem;\\n border-width: 0.5rem;\\n border-style: solid; }\\n.theme-dark .table-tooltip.ng-tooltip-left:after {\\n border-color: transparent transparent transparent #42505f; }\\n.theme-gray .table-tooltip.ng-tooltip-left:after {\\n border-color: transparent transparent transparent #3e464c; }\\n.theme-white .table-tooltip.ng-tooltip-left:after {\\n border-color: transparent transparent transparent #ffffff; }\\n.table-tooltip.ng-tooltip-right {\\n margin-left: 1rem; }\\n.table-tooltip.ng-tooltip-right:before {\\n content: \\\"\\\";\\n position: absolute;\\n top: calc(50% - 0.5rem);\\n left: -1rem;\\n border-width: 0.5rem;\\n border-style: solid; }\\n.theme-dark .table-tooltip.ng-tooltip-right:before {\\n border-color: transparent #42505f transparent transparent; }\\n.theme-gray .table-tooltip.ng-tooltip-right:before {\\n border-color: transparent #3e464c transparent transparent; }\\n.theme-white .table-tooltip.ng-tooltip-right:before {\\n border-color: transparent #ffffff transparent transparent; }\\n.table-tooltip-dimensions .tooltip-inner {\\n overflow: auto;\\n max-width: 20rem;\\n max-height: 10rem; }\\n.balance-tooltip {\\n padding: 1.3rem; }\\n.theme-dark .balance-tooltip {\\n background: #42505f;\\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\\n color: #e0e0e0; }\\n.theme-gray .balance-tooltip {\\n background: #3e464c;\\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\\n color: #e0e0e0; }\\n.theme-white .balance-tooltip {\\n background: #ffffff;\\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5);\\n color: #43454b; }\\n.balance-tooltip .tooltip-inner {\\n display: flex;\\n flex-direction: column;\\n font-size: 1.3rem; }\\n.balance-tooltip .tooltip-inner .available {\\n margin-bottom: 1.7rem; }\\n.balance-tooltip .tooltip-inner .available b {\\n font-weight: 600; }\\n.balance-tooltip .tooltip-inner .locked {\\n margin-bottom: 0.7rem; }\\n.balance-tooltip .tooltip-inner .locked b {\\n font-weight: 600; }\\n.balance-tooltip .tooltip-inner .link {\\n cursor: pointer; }\\n.theme-dark .balance-tooltip .tooltip-inner .link {\\n color: #4db1ff; }\\n.theme-gray .balance-tooltip .tooltip-inner .link {\\n color: #42a5f5; }\\n.theme-white .balance-tooltip .tooltip-inner .link {\\n color: #2c95f1; }\\n.balance-tooltip.ng-tooltip-top {\\n margin-top: -1rem; }\\n.balance-tooltip.ng-tooltip-bottom {\\n margin-top: 1rem; }\\n.balance-tooltip.ng-tooltip-left {\\n margin-left: -1rem; }\\n.balance-tooltip.ng-tooltip-right {\\n margin-left: 1rem; }\\n.account-tooltip .tooltip-inner {\\n word-break: break-word;\\n max-width: 18rem; }\\n.comment-tooltip .tooltip-inner {\\n overflow: auto;\\n word-break: break-word;\\n max-width: 50rem;\\n max-height: 25rem; }\\n.update-tooltip {\\n padding: 1.5rem; }\\n.theme-dark .update-tooltip {\\n background: #42505f;\\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\\n color: #e0e0e0; }\\n.theme-gray .update-tooltip {\\n background: #3e464c;\\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\\n color: #e0e0e0; }\\n.theme-white .update-tooltip {\\n background: #ffffff;\\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5);\\n color: #43454b; }\\n.theme-dark .update-tooltip.important {\\n background: #5f2b11;\\n color: #e0e0e0; }\\n.theme-gray .update-tooltip.important {\\n background: #55240d;\\n color: #e0e0e0; }\\n.theme-white .update-tooltip.important {\\n background: #ef6c00;\\n color: #ffffff; }\\n.theme-dark .update-tooltip.important.ng-tooltip-left-bottom:after {\\n border-color: transparent transparent #5f2b11 #5f2b11; }\\n.theme-gray .update-tooltip.important.ng-tooltip-left-bottom:after {\\n border-color: transparent transparent #55240d #55240d; }\\n.theme-white .update-tooltip.important.ng-tooltip-left-bottom:after {\\n border-color: transparent transparent #ef6c00 #ef6c00; }\\n.theme-dark .update-tooltip.important.ng-tooltip-right-bottom:before {\\n border-color: transparent #5f2b11 #5f2b11 transparent; }\\n.theme-gray .update-tooltip.important.ng-tooltip-right-bottom:before {\\n border-color: transparent #55240d #55240d transparent; }\\n.theme-white .update-tooltip.important.ng-tooltip-right-bottom:before {\\n border-color: transparent #ef6c00 #ef6c00 transparent; }\\n.update-tooltip.critical {\\n padding: 2.5rem; }\\n.theme-dark .update-tooltip.critical {\\n background: #5f1d1d;\\n color: #e0e0e0; }\\n.theme-gray .update-tooltip.critical {\\n background: #4c1919;\\n color: #e0e0e0; }\\n.theme-white .update-tooltip.critical {\\n background: #e53935;\\n color: #ffffff; }\\n.update-tooltip.critical .tooltip-inner {\\n display: flex;\\n flex-direction: column;\\n align-items: center; }\\n.theme-dark .update-tooltip.critical.ng-tooltip-left-bottom:after {\\n border-color: transparent transparent #5f1d1d #5f1d1d; }\\n.theme-gray .update-tooltip.critical.ng-tooltip-left-bottom:after {\\n border-color: transparent transparent #4c1919 #4c1919; }\\n.theme-white .update-tooltip.critical.ng-tooltip-left-bottom:after {\\n border-color: transparent transparent #e53935 #e53935; }\\n.theme-dark .update-tooltip.critical.ng-tooltip-right-bottom:before {\\n border-color: transparent #5f1d1d #5f1d1d transparent; }\\n.theme-gray .update-tooltip.critical.ng-tooltip-right-bottom:before {\\n border-color: transparent #4c1919 #4c1919 transparent; }\\n.theme-white .update-tooltip.critical.ng-tooltip-right-bottom:before {\\n border-color: transparent #e53935 #e53935 transparent; }\\n.update-tooltip .tooltip-inner {\\n font-size: 1.3rem;\\n line-height: 1.8rem;\\n white-space: pre-wrap; }\\n.update-tooltip .tooltip-inner .standard-update {\\n font-size: 1.5rem;\\n line-height: 2.7rem; }\\n.theme-dark .update-tooltip .tooltip-inner .standard-update {\\n color: #4db1ff; }\\n.theme-gray .update-tooltip .tooltip-inner .standard-update {\\n color: #42a5f5; }\\n.theme-white .update-tooltip .tooltip-inner .standard-update {\\n color: #2c95f1; }\\n.update-tooltip .tooltip-inner .important-update {\\n font-size: 1.5rem;\\n line-height: 2.7rem; }\\n.theme-dark .update-tooltip .tooltip-inner .important-update {\\n color: #ff6f00; }\\n.theme-gray .update-tooltip .tooltip-inner .important-update {\\n color: #ff6f00; }\\n.theme-white .update-tooltip .tooltip-inner .important-update {\\n color: #ffffff; }\\n.update-tooltip .tooltip-inner .critical-update {\\n font-size: 1.5rem;\\n line-height: 2.7rem;\\n text-align: center; }\\n.update-tooltip .tooltip-inner .wrong-time {\\n font-size: 1.5rem;\\n line-height: 2.7rem; }\\n.theme-dark .update-tooltip .tooltip-inner .wrong-time {\\n color: #ff6f00; }\\n.theme-gray .update-tooltip .tooltip-inner .wrong-time {\\n color: #ff6f00; }\\n.theme-white .update-tooltip .tooltip-inner .wrong-time {\\n color: #ffffff; }\\n.update-tooltip .tooltip-inner .icon {\\n margin: 1.5rem 0;\\n width: 5rem;\\n height: 5rem; }\\n.theme-dark .update-tooltip .tooltip-inner .icon {\\n background-color: #ff5252; }\\n.theme-gray .update-tooltip .tooltip-inner .icon {\\n background-color: #ff5252; }\\n.theme-white .update-tooltip .tooltip-inner .icon {\\n background-color: #ffffff; }\\n.update-tooltip.ng-tooltip-left-bottom {\\n margin-left: -1.5rem; }\\n.update-tooltip.ng-tooltip-left-bottom:after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: 0.6rem;\\n right: -1rem;\\n border-width: 0.5rem;\\n border-style: solid; }\\n.theme-dark .update-tooltip.ng-tooltip-left-bottom:after {\\n border-color: transparent transparent #42505f #42505f; }\\n.theme-gray .update-tooltip.ng-tooltip-left-bottom:after {\\n border-color: transparent transparent #3e464c #3e464c; }\\n.theme-white .update-tooltip.ng-tooltip-left-bottom:after {\\n border-color: transparent transparent #ffffff #ffffff; }\\n.update-tooltip.ng-tooltip-right-bottom {\\n margin-left: 1.5rem; }\\n.update-tooltip.ng-tooltip-right-bottom:before {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: 0.6rem;\\n left: -1rem;\\n border-width: 0.5rem;\\n border-style: solid; }\\n.theme-dark .update-tooltip.ng-tooltip-right-bottom:before {\\n border-color: transparent #42505f #42505f transparent; }\\n.theme-gray .update-tooltip.ng-tooltip-right-bottom:before {\\n border-color: transparent #3e464c #3e464c transparent; }\\n.theme-white .update-tooltip.ng-tooltip-right-bottom:before {\\n border-color: transparent #ffffff #ffffff transparent; }\\n.ngx-contextmenu .dropdown-menu {\\n border: none;\\n padding: 0; }\\n.theme-dark .ngx-contextmenu .dropdown-menu {\\n background-color: #2b3644;\\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5); }\\n.theme-gray .ngx-contextmenu .dropdown-menu {\\n background-color: #292d31;\\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5); }\\n.theme-white .ngx-contextmenu .dropdown-menu {\\n background-color: #e0e0e0;\\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5); }\\n.ngx-contextmenu li {\\n display: block;\\n font-family: OpenSans, sans-serif;\\n font-size: 1.3rem;\\n text-transform: uppercase;\\n text-align: center; }\\n.ngx-contextmenu a {\\n display: block;\\n padding: 0.5em 1em; }\\n.theme-dark .ngx-contextmenu a {\\n color: #e0e0e0; }\\n.theme-gray .ngx-contextmenu a {\\n color: #e0e0e0; }\\n.theme-white .ngx-contextmenu a {\\n color: #43454b; }\\n.theme-dark .ngx-contextmenu a:hover {\\n background-color: #556576;\\n color: #e0e0e0; }\\n.theme-gray .ngx-contextmenu a:hover {\\n background-color: #515960;\\n color: #e0e0e0; }\\n.theme-white .ngx-contextmenu a:hover {\\n background-color: #ffffff;\\n color: #43454b; }\\n.ng-select.custom-select {\\n width: 100%; }\\n.ng-select.custom-select.ng-select-single .ng-select-container .ng-value-container .ng-value {\\n line-height: 1.8rem; }\\n.ng-select.custom-select .ng-select-container {\\n border: none;\\n border-radius: 0;\\n cursor: pointer;\\n font-size: 1.4rem;\\n outline: none;\\n padding: 0 1rem;\\n height: 4.2rem; }\\n.theme-dark .ng-select.custom-select .ng-select-container {\\n background-color: #171e27;\\n color: #e0e0e0; }\\n.theme-gray .ng-select.custom-select .ng-select-container {\\n background-color: #292d31;\\n color: #e0e0e0; }\\n.theme-white .ng-select.custom-select .ng-select-container {\\n background-color: #e6e6e6;\\n color: #43454b; }\\n.ng-select.custom-select .ng-select-container .ng-value-container {\\n padding: 0; }\\n.ng-select.custom-select .ng-select-container .ng-value-container .ng-input {\\n top: auto; }\\n.ng-select.custom-select .ng-dropdown-panel {\\n border: none; }\\n.theme-dark .ng-select.custom-select .ng-dropdown-panel {\\n background-color: #171e27; }\\n.theme-gray .ng-select.custom-select .ng-dropdown-panel {\\n background-color: #292d31; }\\n.theme-white .ng-select.custom-select .ng-dropdown-panel {\\n background-color: #e6e6e6; }\\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\\n font-size: 1.4rem;\\n padding: 1rem; }\\n.theme-dark .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\\n background-color: #171e27;\\n color: #e0e0e0; }\\n.theme-gray .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\\n background-color: #292d31;\\n color: #e0e0e0; }\\n.theme-white .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\\n background-color: #e6e6e6;\\n color: #43454b; }\\n.theme-dark .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked {\\n background-color: rgba(58, 69, 85, 0.5);\\n color: #e0e0e0; }\\n.theme-gray .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked {\\n background-color: rgba(58, 62, 66, 0.5);\\n color: #e0e0e0; }\\n.theme-white .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked {\\n background-color: rgba(240, 240, 240, 0.5);\\n color: #43454b; }\\n.theme-dark .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected {\\n background-color: rgba(43, 54, 68, 0.5);\\n color: #e0e0e0; }\\n.theme-gray .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected {\\n background-color: rgba(37, 40, 43, 0.5);\\n color: #e0e0e0; }\\n.theme-white .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected {\\n background-color: rgba(224, 224, 224, 0.5);\\n color: #43454b; }\\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar {\\n background-color: transparent;\\n cursor: default;\\n width: 1rem;\\n height: 1rem; }\\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-track {\\n background: transparent; }\\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-thumb {\\n background-color: #556576;\\n background-clip: padding-box;\\n border: 0.25rem solid transparent;\\n border-radius: 0.5rem; }\\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-thumb:hover {\\n background-color: #556576; }\\n.theme-dark app-modal-container .modal, .theme-dark app-confirm-modal .modal {\\n background: url('background-dark.png');\\n color: #e0e0e0; }\\n.theme-gray app-modal-container .modal, .theme-gray app-confirm-modal .modal {\\n background: url('background-gray.png');\\n color: #e0e0e0; }\\n.theme-white app-modal-container .modal, .theme-white app-confirm-modal .modal {\\n background: url('background-white.png');\\n color: #43454b; }\\n.theme-dark app-modal-container .modal .content .icon.error, .theme-dark app-confirm-modal .modal .content .icon.error {\\n background-color: #ff5252; }\\n.theme-gray app-modal-container .modal .content .icon.error, .theme-gray app-confirm-modal .modal .content .icon.error {\\n background-color: #ff5252; }\\n.theme-white app-modal-container .modal .content .icon.error, .theme-white app-confirm-modal .modal .content .icon.error {\\n background-color: #ff5252; }\\n.theme-dark app-modal-container .modal .content .icon.success, .theme-dark app-confirm-modal .modal .content .icon.success {\\n background-color: #5cda9d; }\\n.theme-gray app-modal-container .modal .content .icon.success, .theme-gray app-confirm-modal .modal .content .icon.success {\\n background-color: #47cf8d; }\\n.theme-white app-modal-container .modal .content .icon.success, .theme-white app-confirm-modal .modal .content .icon.success {\\n background-color: #46c172; }\\n.theme-dark app-modal-container .modal .content .icon.info, .theme-dark app-confirm-modal .modal .content .icon.info {\\n background-color: #4db1ff; }\\n.theme-gray app-modal-container .modal .content .icon.info, .theme-gray app-confirm-modal .modal .content .icon.info {\\n background-color: #42a5f5; }\\n.theme-white app-modal-container .modal .content .icon.info, .theme-white app-confirm-modal .modal .content .icon.info {\\n background-color: #2c95f1; }\\n.theme-dark app-modal-container .modal .action-button, .theme-dark app-confirm-modal .modal .action-button {\\n background-color: #4db1ff;\\n color: #111921; }\\n.theme-gray app-modal-container .modal .action-button, .theme-gray app-confirm-modal .modal .action-button {\\n background-color: #42a5f5;\\n color: #1a1a1a; }\\n.theme-white app-modal-container .modal .action-button, .theme-white app-confirm-modal .modal .action-button {\\n background-color: #2c95f1;\\n color: #fefefe; }\\n.theme-dark app-modal-container .modal .close-button .icon, .theme-dark app-confirm-modal .modal .close-button .icon {\\n background-color: #556576; }\\n.theme-gray app-modal-container .modal .close-button .icon, .theme-gray app-confirm-modal .modal .close-button .icon {\\n background-color: #515960; }\\n.theme-white app-modal-container .modal .close-button .icon, .theme-white app-confirm-modal .modal .close-button .icon {\\n background-color: #43454b; }\\n.theme-dark app-transaction-details .table {\\n border-top: 0.2rem solid #2b3644; }\\n.theme-gray app-transaction-details .table {\\n border-top: 0.2rem solid #2f3438; }\\n.theme-white app-transaction-details .table {\\n border-top: 0.2rem solid #ebebeb; }\\n.theme-dark app-transaction-details .table .row .cell.label {\\n color: #556576; }\\n.theme-gray app-transaction-details .table .row .cell.label {\\n color: #565c62; }\\n.theme-white app-transaction-details .table .row .cell.label {\\n color: #a0a5ab; }\\n.theme-dark app-transaction-details .table .row .cell.value {\\n color: #e0e0e0; }\\n.theme-gray app-transaction-details .table .row .cell.value {\\n color: #e0e0e0; }\\n.theme-white app-transaction-details .table .row .cell.value {\\n color: #43454b; }\\n.theme-dark app-transaction-details .table .row .cell.key-value {\\n color: #4db1ff; }\\n.theme-gray app-transaction-details .table .row .cell.key-value {\\n color: #42a5f5; }\\n.theme-white app-transaction-details .table .row .cell.key-value {\\n color: #2c95f1; }\\n.theme-dark app-progress-container .progress-bar-container {\\n color: #e0e0e0; }\\n.theme-gray app-progress-container .progress-bar-container {\\n color: #e0e0e0; }\\n.theme-white app-progress-container .progress-bar-container {\\n color: #43454b; }\\n.theme-dark app-progress-container .progress-bar-container .progress-bar {\\n background-color: #343f4a; }\\n.theme-gray app-progress-container .progress-bar-container .progress-bar {\\n background-color: #363a3e; }\\n.theme-white app-progress-container .progress-bar-container .progress-bar {\\n background-color: #dcdcdc; }\\n.theme-dark app-progress-container .progress-bar-container .progress-bar .progress-bar-full {\\n background-color: #5cda9d; }\\n.theme-gray app-progress-container .progress-bar-container .progress-bar .progress-bar-full {\\n background-color: #47cf8d; }\\n.theme-white app-progress-container .progress-bar-container .progress-bar .progress-bar-full {\\n background-color: #46c172; }\\n.theme-dark app-open-wallet-modal .modal {\\n background: url('background-dark.png');\\n color: #e0e0e0; }\\n.theme-gray app-open-wallet-modal .modal {\\n background: url('background-gray.png');\\n color: #e0e0e0; }\\n.theme-white app-open-wallet-modal .modal {\\n background: url('background-white.png');\\n color: #43454b; }\\n.theme-dark app-send-modal .modal {\\n background: url('background-dark.png');\\n color: #e0e0e0; }\\n.theme-gray app-send-modal .modal {\\n background: url('background-gray.png');\\n color: #e0e0e0; }\\n.theme-white app-send-modal .modal {\\n background: url('background-white.png');\\n color: #43454b; }\\n.theme-dark app-send-modal .modal .title {\\n border-bottom: 0.2rem solid #2b3644; }\\n.theme-gray app-send-modal .modal .title {\\n border-bottom: 0.2rem solid #2f3438; }\\n.theme-white app-send-modal .modal .title {\\n border-bottom: 0.2rem solid #ebebeb; }\\n.theme-dark app-send-modal .modal .action-button {\\n background-color: #4db1ff;\\n color: #111921; }\\n.theme-gray app-send-modal .modal .action-button {\\n background-color: #42a5f5;\\n color: #1a1a1a; }\\n.theme-white app-send-modal .modal .action-button {\\n background-color: #2c95f1;\\n color: #fefefe; }\\napp-main, app-create-wallet, app-open-wallet, app-restore-wallet, app-seed-phrase, app-wallet-details, app-assign-alias, app-edit-alias, app-transfer-alias, app-settings, app-login {\\n flex: 1 1 auto;\\n padding: 3rem;\\n min-width: 85rem; }\\napp-main .content, app-create-wallet .content, app-open-wallet .content, app-restore-wallet .content, app-seed-phrase .content, app-wallet-details .content, app-assign-alias .content, app-edit-alias .content, app-transfer-alias .content, app-settings .content, app-login .content {\\n position: relative;\\n padding: 3rem;\\n min-height: 100%; }\\n.theme-dark app-main .content, .theme-dark app-create-wallet .content, .theme-dark app-open-wallet .content, .theme-dark app-restore-wallet .content, .theme-dark app-seed-phrase .content, .theme-dark app-wallet-details .content, .theme-dark app-assign-alias .content, .theme-dark app-edit-alias .content, .theme-dark app-transfer-alias .content, .theme-dark app-settings .content, .theme-dark app-login .content {\\n background-color: rgba(43, 54, 68, 0.5);\\n color: #e0e0e0; }\\n.theme-gray app-main .content, .theme-gray app-create-wallet .content, .theme-gray app-open-wallet .content, .theme-gray app-restore-wallet .content, .theme-gray app-seed-phrase .content, .theme-gray app-wallet-details .content, .theme-gray app-assign-alias .content, .theme-gray app-edit-alias .content, .theme-gray app-transfer-alias .content, .theme-gray app-settings .content, .theme-gray app-login .content {\\n background-color: rgba(37, 40, 43, 0.5);\\n color: #e0e0e0; }\\n.theme-white app-main .content, .theme-white app-create-wallet .content, .theme-white app-open-wallet .content, .theme-white app-restore-wallet .content, .theme-white app-seed-phrase .content, .theme-white app-wallet-details .content, .theme-white app-assign-alias .content, .theme-white app-edit-alias .content, .theme-white app-transfer-alias .content, .theme-white app-settings .content, .theme-white app-login .content {\\n background-color: rgba(255, 255, 255, 0.5);\\n color: #43454b; }\\napp-main .content .head, app-create-wallet .content .head, app-open-wallet .content .head, app-restore-wallet .content .head, app-seed-phrase .content .head, app-wallet-details .content .head, app-assign-alias .content .head, app-edit-alias .content .head, app-transfer-alias .content .head, app-settings .content .head, app-login .content .head {\\n position: absolute;\\n top: 0;\\n left: 0; }\\n.theme-dark app-main .content .add-wallet .add-wallet-help {\\n color: #4db1ff; }\\n.theme-gray app-main .content .add-wallet .add-wallet-help {\\n color: #42a5f5; }\\n.theme-white app-main .content .add-wallet .add-wallet-help {\\n color: #2c95f1; }\\n.theme-dark app-main .content .add-wallet .add-wallet-help .icon {\\n background-color: #4db1ff; }\\n.theme-gray app-main .content .add-wallet .add-wallet-help .icon {\\n background-color: #42a5f5; }\\n.theme-white app-main .content .add-wallet .add-wallet-help .icon {\\n background-color: #2c95f1; }\\n.theme-dark app-seed-phrase .seed-phrase-content {\\n background-color: #171e27;\\n color: #e0e0e0; }\\n.theme-gray app-seed-phrase .seed-phrase-content {\\n background-color: #292d31;\\n color: #e0e0e0; }\\n.theme-white app-seed-phrase .seed-phrase-content {\\n background-color: #e6e6e6;\\n color: #43454b; }\\n.theme-dark app-wallet-details .seed-phrase {\\n background-color: #171e27; }\\n.theme-gray app-wallet-details .seed-phrase {\\n background-color: #292d31; }\\n.theme-white app-wallet-details .seed-phrase {\\n background-color: #e6e6e6; }\\napp-settings .content {\\n height: 100%;\\n overflow-y: auto;\\n display: flex;\\n justify-content: space-between;\\n flex-direction: column; }\\n.theme-dark app-settings .content .theme-selection {\\n color: #556576; }\\n.theme-gray app-settings .content .theme-selection {\\n color: #565c62; }\\n.theme-white app-settings .content .theme-selection {\\n color: #a0a5ab; }\\n.theme-dark app-settings .content .scale-selection .button-block {\\n background-color: rgba(23, 31, 39, 0.5); }\\n.theme-gray app-settings .content .scale-selection .button-block {\\n background-color: rgba(28, 30, 33, 0.5); }\\n.theme-white app-settings .content .scale-selection .button-block {\\n background-color: rgba(224, 224, 224, 0.5); }\\n.theme-dark app-settings .content .scale-selection .button-block .label {\\n color: #556576; }\\n.theme-gray app-settings .content .scale-selection .button-block .label {\\n color: #565c62; }\\n.theme-white app-settings .content .scale-selection .button-block .label {\\n color: #a0a5ab; }\\n.theme-dark app-settings .content .scale-selection .button-block.active {\\n background-color: #4db1ff; }\\n.theme-gray app-settings .content .scale-selection .button-block.active {\\n background-color: #42a5f5; }\\n.theme-white app-settings .content .scale-selection .button-block.active {\\n background-color: #2c95f1; }\\n.theme-dark app-settings .content .scale-selection .button-block.active .label {\\n color: #4db1ff; }\\n.theme-gray app-settings .content .scale-selection .button-block.active .label {\\n color: #42a5f5; }\\n.theme-white app-settings .content .scale-selection .button-block.active .label {\\n color: #2c95f1; }\\napp-login {\\n min-width: inherit; }\\n.theme-dark app-sidebar {\\n background-color: #171f27; }\\n.theme-gray app-sidebar {\\n background-color: #1c1e21; }\\n.theme-white app-sidebar {\\n background-color: white; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-header h3 {\\n color: #e0e0e0; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-header h3 {\\n color: #e0e0e0; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-header h3 {\\n color: #43454b; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-header button {\\n color: #4db1ff; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-header button {\\n color: #42a5f5; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-header button {\\n color: #2c95f1; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account {\\n background-color: transparent;\\n color: #e0e0e0; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account {\\n background-color: transparent;\\n color: #e0e0e0; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account {\\n background-color: transparent;\\n color: #43454b; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .icon {\\n background-color: #4db1ff; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .icon {\\n background-color: #42a5f5; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .icon {\\n background-color: #2c95f1; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .text {\\n color: #556576; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .text {\\n color: #565c62; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .text {\\n color: #a0a5ab; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .icon {\\n background-color: #4db1ff; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .icon {\\n background-color: #42a5f5; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .icon {\\n background-color: #2c95f1; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .indicator {\\n background-color: #4db1ff;\\n color: #111921; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .indicator {\\n background-color: #42a5f5;\\n color: #1a1a1a; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .indicator {\\n background-color: #2c95f1;\\n color: #fefefe; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar {\\n background-color: #343f4a; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar {\\n background-color: #363a3e; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar {\\n background-color: #dcdcdc; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar .fill {\\n background-color: #4db1ff; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar .fill {\\n background-color: #42a5f5; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar .fill {\\n background-color: #2c95f1; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\\n color: #556576; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\\n color: #565c62; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\\n color: #a0a5ab; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active {\\n background-color: rgba(43, 54, 68, 0.5);\\n color: #e0e0e0; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active {\\n background-color: rgba(37, 40, 43, 0.5);\\n color: #e0e0e0; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active {\\n background-color: #1e88e5;\\n color: #ffffff; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .text {\\n color: #556576; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .text {\\n color: #565c62; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .text {\\n color: #91baf1; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .indicator {\\n background-color: #4db1ff;\\n color: #111921; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .indicator {\\n background-color: #42a5f5;\\n color: #1a1a1a; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .indicator {\\n background-color: #ffffff;\\n color: #43454b; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .switch {\\n background-color: #000000;\\n color: #e0e0e0; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .switch {\\n background-color: #000000;\\n color: #e0e0e0; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .switch {\\n background-color: #ffffff;\\n color: #43454b; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row.account-synchronization {\\n color: #556576; }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row.account-synchronization {\\n color: #565c62; }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row.account-synchronization {\\n color: #91baf1; }\\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account:hover:not(.active) {\\n background-color: rgba(58, 69, 85, 0.5); }\\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account:hover:not(.active) {\\n background-color: rgba(58, 62, 66, 0.5); }\\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account:hover:not(.active) {\\n background-color: rgba(240, 240, 240, 0.5); }\\n.theme-dark app-sidebar .sidebar-accounts:after {\\n background: linear-gradient(to bottom, transparent 0%, #171f27 100%); }\\n.theme-gray app-sidebar .sidebar-accounts:after {\\n background: linear-gradient(to bottom, transparent 0%, #1c1e21 100%); }\\n.theme-white app-sidebar .sidebar-accounts:after {\\n background: linear-gradient(to bottom, transparent 0%, white 100%); }\\n.theme-dark app-sidebar .sidebar-settings {\\n border-bottom: 0.2rem solid #1f2833; }\\n.theme-gray app-sidebar .sidebar-settings {\\n border-bottom: 0.2rem solid #2e3337; }\\n.theme-white app-sidebar .sidebar-settings {\\n border-bottom: 0.2rem solid #ebebeb; }\\n.theme-dark app-sidebar .sidebar-settings .wrap-button button {\\n color: #e0e0e0; }\\n.theme-gray app-sidebar .sidebar-settings .wrap-button button {\\n color: #e0e0e0; }\\n.theme-white app-sidebar .sidebar-settings .wrap-button button {\\n color: #43454b; }\\n.theme-dark app-sidebar .sidebar-settings .wrap-button button .icon {\\n background-color: #4db1ff; }\\n.theme-gray app-sidebar .sidebar-settings .wrap-button button .icon {\\n background-color: #42a5f5; }\\n.theme-white app-sidebar .sidebar-settings .wrap-button button .icon {\\n background-color: #2c95f1; }\\n.theme-dark app-sidebar .sidebar-settings .wrap-button.active button {\\n background-color: rgba(43, 54, 68, 0.5) !important;\\n color: #e0e0e0 !important; }\\n.theme-gray app-sidebar .sidebar-settings .wrap-button.active button {\\n background-color: rgba(37, 40, 43, 0.5) !important;\\n color: #e0e0e0 !important; }\\n.theme-white app-sidebar .sidebar-settings .wrap-button.active button {\\n background-color: #1e88e5 !important;\\n color: #ffffff !important; }\\n.theme-dark app-sidebar .sidebar-settings .wrap-button.active button .icon {\\n background-color: #4db1ff !important; }\\n.theme-gray app-sidebar .sidebar-settings .wrap-button.active button .icon {\\n background-color: #42a5f5 !important; }\\n.theme-white app-sidebar .sidebar-settings .wrap-button.active button .icon {\\n background-color: #ffffff !important; }\\n.synchronization-status {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n flex: 0 0 7rem;\\n font-size: 1.3rem; }\\n.theme-dark .synchronization-status {\\n color: #556576; }\\n.theme-gray .synchronization-status {\\n color: #565c62; }\\n.theme-white .synchronization-status {\\n color: #a0a5ab; }\\n.synchronization-status .status-container {\\n position: relative;\\n flex-grow: 1;\\n text-align: left; }\\n.synchronization-status .status-container .offline, .synchronization-status .status-container .online {\\n position: relative;\\n display: block;\\n line-height: 1.2rem;\\n padding-left: 2.2rem; }\\n.synchronization-status .status-container .offline:before, .synchronization-status .status-container .online:before {\\n content: '';\\n position: absolute;\\n top: 0;\\n left: 0;\\n border-radius: 50%;\\n width: 1.2rem;\\n height: 1.2rem; }\\n.theme-dark .synchronization-status .status-container .offline:before {\\n background-color: #ff5252; }\\n.theme-gray .synchronization-status .status-container .offline:before {\\n background-color: #ff5252; }\\n.theme-white .synchronization-status .status-container .offline:before {\\n background-color: #ff5252; }\\n.theme-dark .synchronization-status .status-container .online:before {\\n background-color: #5cda9d; }\\n.theme-gray .synchronization-status .status-container .online:before {\\n background-color: #47cf8d; }\\n.theme-white .synchronization-status .status-container .online:before {\\n background-color: #46c172; }\\n.synchronization-status .status-container .syncing, .synchronization-status .status-container .loading {\\n line-height: 5rem; }\\n.synchronization-status .status-container .progress-bar-container {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n height: 0.7rem;\\n width: 100%; }\\n.synchronization-status .status-container .progress-bar-container .syncing {\\n display: flex; }\\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\\n flex: 1 0 auto; }\\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\\n background-color: #343f4a; }\\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\\n background-color: #363a3e; }\\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\\n background-color: #dcdcdc; }\\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\\n height: 100%; }\\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\\n background-color: #5cda9d; }\\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\\n background-color: #47cf8d; }\\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\\n background-color: #46c172; }\\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar {\\n background-color: #343f4a; }\\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar {\\n background-color: #363a3e; }\\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar {\\n background-color: #dcdcdc; }\\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar .fill {\\n background-color: #4db1ff; }\\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar .fill {\\n background-color: #42a5f5; }\\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar .fill {\\n background-color: #2c95f1; }\\n.synchronization-status .status-container .progress-bar-container .syncing .progress-percent {\\n flex: 0 0 auto;\\n font-size: 1.3rem;\\n line-height: 0.7rem;\\n padding-left: 0.7rem; }\\n.synchronization-status .status-container .progress-bar-container .loading {\\n -webkit-animation: move 5s linear infinite;\\n animation: move 5s linear infinite;\\n background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.125, rgba(0, 0, 0, 0.15)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.1)), color-stop(0.375, rgba(0, 0, 0, 0.1)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.15)), color-stop(0.625, rgba(0, 0, 0, 0.15)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.1)), color-stop(0.875, rgba(0, 0, 0, 0.1)), color-stop(0.875, transparent), to(transparent)), -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\\n background-size: 7rem 7rem;\\n height: 100%; }\\n.theme-dark .synchronization-status .status-container .progress-bar-container .loading {\\n background-color: #5cda9d; }\\n.theme-gray .synchronization-status .status-container .progress-bar-container .loading {\\n background-color: #47cf8d; }\\n.theme-white .synchronization-status .status-container .progress-bar-container .loading {\\n background-color: #46c172; }\\n.synchronization-status .update-container {\\n display: flex;\\n flex-grow: 1;\\n margin-left: 1rem;\\n text-align: right; }\\n.synchronization-status .update-container .update-text {\\n flex: 1 1 auto;\\n font-size: 1.2rem;\\n line-height: 1.8rem;\\n text-align: left; }\\n.synchronization-status .update-container .update-text.time {\\n font-size: 1.1rem; }\\n.synchronization-status .update-container .icon {\\n flex: 1 0 auto;\\n margin: 0.3rem 0 0 0.6rem;\\n width: 1.2rem;\\n height: 1.2rem; }\\n.synchronization-status .update-container .icon.update {\\n -webkit-mask: url('update.svg') no-repeat center;\\n mask: url('update.svg') no-repeat center; }\\n.synchronization-status .update-container .icon.time {\\n -webkit-mask: url('time.svg') no-repeat center;\\n mask: url('time.svg') no-repeat center; }\\n.theme-dark .synchronization-status .update-container .standard {\\n color: #4db1ff; }\\n.theme-gray .synchronization-status .update-container .standard {\\n color: #42a5f5; }\\n.theme-white .synchronization-status .update-container .standard {\\n color: #2c95f1; }\\n.theme-dark .synchronization-status .update-container .important {\\n color: #ff6f00; }\\n.theme-gray .synchronization-status .update-container .important {\\n color: #ff6f00; }\\n.theme-white .synchronization-status .update-container .important {\\n color: #ff6f00; }\\n.theme-dark .synchronization-status .update-container .critical {\\n color: #ff5252; }\\n.theme-gray .synchronization-status .update-container .critical {\\n color: #ff5252; }\\n.theme-white .synchronization-status .update-container .critical {\\n color: #ff5252; }\\n.theme-dark .synchronization-status .update-container .time {\\n color: #ff6f00; }\\n.theme-gray .synchronization-status .update-container .time {\\n color: #ff6f00; }\\n.theme-white .synchronization-status .update-container .time {\\n color: #ff6f00; }\\n.theme-dark .synchronization-status .update-container .icon.standard {\\n background-color: #4db1ff; }\\n.theme-gray .synchronization-status .update-container .icon.standard {\\n background-color: #42a5f5; }\\n.theme-white .synchronization-status .update-container .icon.standard {\\n background-color: #2c95f1; }\\n.theme-dark .synchronization-status .update-container .icon.important {\\n background-color: #ff6f00; }\\n.theme-gray .synchronization-status .update-container .icon.important {\\n background-color: #ff6f00; }\\n.theme-white .synchronization-status .update-container .icon.important {\\n background-color: #ff6f00; }\\n.theme-dark .synchronization-status .update-container .icon.critical {\\n background-color: #ff5252; }\\n.theme-gray .synchronization-status .update-container .icon.critical {\\n background-color: #ff5252; }\\n.theme-white .synchronization-status .update-container .icon.critical {\\n background-color: #ff5252; }\\n.theme-dark .synchronization-status .update-container .icon.time {\\n background-color: #ff6f00; }\\n.theme-gray .synchronization-status .update-container .icon.time {\\n background-color: #ff6f00; }\\n.theme-white .synchronization-status .update-container .icon.time {\\n background-color: #ff6f00; }\\n@-webkit-keyframes move {\\n 0% {\\n background-position: 100% -7rem; }\\n 100% {\\n background-position: 100% 7rem; } }\\n@keyframes move {\\n 0% {\\n background-position: 100% -7rem; }\\n 100% {\\n background-position: 100% 7rem; } }\\n.theme-dark app-wallet {\\n color: #e0e0e0; }\\n.theme-gray app-wallet {\\n color: #e0e0e0; }\\n.theme-white app-wallet {\\n color: #43454b; }\\n.theme-dark app-wallet .header button {\\n color: #e0e0e0; }\\n.theme-gray app-wallet .header button {\\n color: #e0e0e0; }\\n.theme-white app-wallet .header button {\\n color: #43454b; }\\n.theme-dark app-wallet .header button .icon {\\n background-color: #4db1ff; }\\n.theme-gray app-wallet .header button .icon {\\n background-color: #42a5f5; }\\n.theme-white app-wallet .header button .icon {\\n background-color: #2c95f1; }\\napp-wallet .header button:disabled {\\n background-color: transparent !important; }\\n.theme-dark app-wallet .header button:disabled .icon {\\n background-color: #556576; }\\n.theme-gray app-wallet .header button:disabled .icon {\\n background-color: #565c62; }\\n.theme-white app-wallet .header button:disabled .icon {\\n background-color: #91baf1; }\\n.theme-dark app-wallet .header .alias .icon {\\n background-color: #4db1ff; }\\n.theme-gray app-wallet .header .alias .icon {\\n background-color: #42a5f5; }\\n.theme-white app-wallet .header .alias .icon {\\n background-color: #2c95f1; }\\n.theme-dark app-wallet .address {\\n color: #4db1ff; }\\n.theme-gray app-wallet .address {\\n color: #42a5f5; }\\n.theme-white app-wallet .address {\\n color: #2c95f1; }\\n.theme-dark app-wallet .address .icon {\\n background-color: #4db1ff; }\\n.theme-gray app-wallet .address .icon {\\n background-color: #42a5f5; }\\n.theme-white app-wallet .address .icon {\\n background-color: #2c95f1; }\\n.theme-dark app-wallet .tabs .tabs-header .tab {\\n background-color: rgba(23, 31, 39, 0.5); }\\n.theme-gray app-wallet .tabs .tabs-header .tab {\\n background-color: rgba(28, 30, 33, 0.5); }\\n.theme-white app-wallet .tabs .tabs-header .tab {\\n background-color: rgba(224, 224, 224, 0.5); }\\n.theme-dark app-wallet .tabs .tabs-header .tab .icon {\\n background-color: #4db1ff; }\\n.theme-gray app-wallet .tabs .tabs-header .tab .icon {\\n background-color: #42a5f5; }\\n.theme-white app-wallet .tabs .tabs-header .tab .icon {\\n background-color: #2c95f1; }\\n.theme-dark app-wallet .tabs .tabs-header .tab .indicator {\\n background-color: #4db1ff;\\n color: #111921; }\\n.theme-gray app-wallet .tabs .tabs-header .tab .indicator {\\n background-color: #42a5f5;\\n color: #1a1a1a; }\\n.theme-white app-wallet .tabs .tabs-header .tab .indicator {\\n background-color: #ffffff;\\n color: #43454b; }\\n.theme-dark app-wallet .tabs .tabs-header .tab.active {\\n background-color: rgba(43, 54, 68, 0.5); }\\n.theme-gray app-wallet .tabs .tabs-header .tab.active {\\n background-color: rgba(37, 40, 43, 0.5); }\\n.theme-white app-wallet .tabs .tabs-header .tab.active {\\n background-color: rgba(255, 255, 255, 0.5); }\\n.theme-dark app-wallet .tabs .tabs-header .tab:hover:not(.active):not(.disabled) {\\n background-color: rgba(58, 69, 85, 0.5); }\\n.theme-gray app-wallet .tabs .tabs-header .tab:hover:not(.active):not(.disabled) {\\n background-color: rgba(58, 62, 66, 0.5); }\\n.theme-white app-wallet .tabs .tabs-header .tab:hover:not(.active):not(.disabled) {\\n background-color: #ffffff; }\\n.theme-dark app-wallet .tabs .tabs-content {\\n background-color: rgba(43, 54, 68, 0.5); }\\n.theme-gray app-wallet .tabs .tabs-content {\\n background-color: rgba(37, 40, 43, 0.5); }\\n.theme-white app-wallet .tabs .tabs-content {\\n background-color: rgba(255, 255, 255, 0.5); }\\n.theme-dark app-wallet .tabs .pagination-wrapper {\\n background-color: rgba(43, 54, 68, 0.5); }\\n.theme-gray app-wallet .tabs .pagination-wrapper {\\n background-color: rgba(37, 40, 43, 0.5); }\\n.theme-white app-wallet .tabs .pagination-wrapper {\\n background-color: rgba(255, 255, 255, 0.5); }\\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination {\\n border-top: 0.2rem solid #2b3644; }\\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination {\\n border-top: 0.2rem solid #2f3438; }\\n.theme-white app-wallet .tabs .pagination-wrapper .pagination {\\n border-top: 0.2rem solid #ebebeb; }\\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination button {\\n background-color: #2b3644;\\n color: #e0e0e0; }\\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination button {\\n background-color: #2f3438;\\n color: #e0e0e0; }\\n.theme-white app-wallet .tabs .pagination-wrapper .pagination button {\\n background-color: #ebebeb;\\n color: #43454b; }\\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination button.active {\\n background-color: #18202a;\\n color: #e0e0e0; }\\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination button.active {\\n background-color: #25292d;\\n color: #e0e0e0; }\\n.theme-white app-wallet .tabs .pagination-wrapper .pagination button.active {\\n background-color: #ffffff;\\n color: #43454b; }\\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination button:hover {\\n background-color: #3a485a;\\n color: #e0e0e0; }\\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination button:hover {\\n background-color: #383e43;\\n color: #e0e0e0; }\\n.theme-white app-wallet .tabs .pagination-wrapper .pagination button:hover {\\n background-color: #ffffff;\\n color: #43454b; }\\n.theme-dark app-send .form-send .send-select {\\n color: #e0e0e0; }\\n.theme-gray app-send .form-send .send-select {\\n color: #e0e0e0; }\\n.theme-white app-send .form-send .send-select {\\n color: #43454b; }\\n.theme-dark app-send .form-send .send-select .icon {\\n background-color: #4db1ff; }\\n.theme-gray app-send .form-send .send-select .icon {\\n background-color: #42a5f5; }\\n.theme-white app-send .form-send .send-select .icon {\\n background-color: #2c95f1; }\\n.theme-dark app-send .form-send .additional-details {\\n border: 0.2rem solid #2b3644; }\\n.theme-gray app-send .form-send .additional-details {\\n border: 0.2rem solid #2f3438; }\\n.theme-white app-send .form-send .additional-details {\\n border: 0.2rem solid #ebebeb; }\\n.theme-dark app-receive .btn-copy-address {\\n background-color: #4db1ff; }\\n.theme-gray app-receive .btn-copy-address {\\n background-color: #42a5f5; }\\n.theme-white app-receive .btn-copy-address {\\n background-color: #2c95f1; }\\n.theme-dark app-history table tbody tr.locked-transaction {\\n color: #556576; }\\n.theme-gray app-history table tbody tr.locked-transaction {\\n color: #565c62; }\\n.theme-white app-history table tbody tr.locked-transaction {\\n color: #a0a5ab; }\\n.theme-dark app-history table tbody tr:nth-child(4n+1) {\\n background-color: #18202a; }\\n.theme-gray app-history table tbody tr:nth-child(4n+1) {\\n background-color: #25292d; }\\n.theme-white app-history table tbody tr:nth-child(4n+1) {\\n background-color: #ffffff; }\\n.theme-dark app-history table tbody tr:nth-child(4n+2) {\\n background-color: #18202a; }\\n.theme-gray app-history table tbody tr:nth-child(4n+2) {\\n background-color: #25292d; }\\n.theme-white app-history table tbody tr:nth-child(4n+2) {\\n background-color: #ffffff; }\\n.theme-dark app-history table tbody tr:nth-child(4n+3) {\\n background-color: transparent; }\\n.theme-gray app-history table tbody tr:nth-child(4n+3) {\\n background-color: transparent; }\\n.theme-white app-history table tbody tr:nth-child(4n+3) {\\n background-color: transparent; }\\n.theme-dark app-history table tbody tr:nth-child(4n+4) {\\n background-color: transparent; }\\n.theme-gray app-history table tbody tr:nth-child(4n+4) {\\n background-color: transparent; }\\n.theme-white app-history table tbody tr:nth-child(4n+4) {\\n background-color: transparent; }\\n.theme-dark app-history table tbody tr .status .confirmation {\\n background-color: #343f4a; }\\n.theme-gray app-history table tbody tr .status .confirmation {\\n background-color: #363a3e; }\\n.theme-white app-history table tbody tr .status .confirmation {\\n background-color: #dcdcdc; }\\n.theme-dark app-history table tbody tr .status .confirmation .fill {\\n background-color: #5cda9d; }\\n.theme-gray app-history table tbody tr .status .confirmation .fill {\\n background-color: #47cf8d; }\\n.theme-white app-history table tbody tr .status .confirmation .fill {\\n background-color: #46c172; }\\n.theme-dark app-history table tbody tr .lock-transaction {\\n background-color: #ff6f00; }\\n.theme-gray app-history table tbody tr .lock-transaction {\\n background-color: #ff6f00; }\\n.theme-white app-history table tbody tr .lock-transaction {\\n background-color: #ff6f00; }\\n.theme-dark app-history table tbody tr .unlock-transaction {\\n background-color: #4db1ff; }\\n.theme-gray app-history table tbody tr .unlock-transaction {\\n background-color: #42a5f5; }\\n.theme-white app-history table tbody tr .unlock-transaction {\\n background-color: #2c95f1; }\\n.theme-dark app-history table tbody tr .status.send .status-transaction {\\n background-color: #ff5252; }\\n.theme-gray app-history table tbody tr .status.send .status-transaction {\\n background-color: #ff5252; }\\n.theme-white app-history table tbody tr .status.send .status-transaction {\\n background-color: #ff5252; }\\n.theme-dark app-history table tbody tr .status.received .status-transaction {\\n background-color: #5cda9d; }\\n.theme-gray app-history table tbody tr .status.received .status-transaction {\\n background-color: #47cf8d; }\\n.theme-white app-history table tbody tr .status.received .status-transaction {\\n background-color: #46c172; }\\n.theme-dark app-contracts .wrap-table .contract .icon.new, .theme-dark app-contracts .wrap-table .contract .icon.alert {\\n background-color: #ff5252; }\\n.theme-gray app-contracts .wrap-table .contract .icon.new, .theme-gray app-contracts .wrap-table .contract .icon.alert {\\n background-color: #ff5252; }\\n.theme-white app-contracts .wrap-table .contract .icon.new, .theme-white app-contracts .wrap-table .contract .icon.alert {\\n background-color: #ff5252; }\\n.theme-dark app-contracts .wrap-table .contract .icon.purchase, .theme-dark app-contracts .wrap-table .contract .icon.sell {\\n background-color: #4db1ff; }\\n.theme-gray app-contracts .wrap-table .contract .icon.purchase, .theme-gray app-contracts .wrap-table .contract .icon.sell {\\n background-color: #42a5f5; }\\n.theme-white app-contracts .wrap-table .contract .icon.purchase, .theme-white app-contracts .wrap-table .contract .icon.sell {\\n background-color: #2c95f1; }\\n.theme-dark app-purchase .form-purchase .purchase-select {\\n color: #e0e0e0; }\\n.theme-gray app-purchase .form-purchase .purchase-select {\\n color: #e0e0e0; }\\n.theme-white app-purchase .form-purchase .purchase-select {\\n color: #43454b; }\\n.theme-dark app-purchase .form-purchase .purchase-select .icon {\\n background-color: #4db1ff; }\\n.theme-gray app-purchase .form-purchase .purchase-select .icon {\\n background-color: #42a5f5; }\\n.theme-white app-purchase .form-purchase .purchase-select .icon {\\n background-color: #2c95f1; }\\n.theme-dark app-purchase .form-purchase .purchase-states {\\n color: #4db1ff; }\\n.theme-gray app-purchase .form-purchase .purchase-states {\\n color: #42a5f5; }\\n.theme-white app-purchase .form-purchase .purchase-states {\\n color: #2c95f1; }\\n.theme-dark app-purchase .form-purchase .additional-details {\\n border: 0.2rem solid #2b3644; }\\n.theme-gray app-purchase .form-purchase .additional-details {\\n border: 0.2rem solid #2f3438; }\\n.theme-white app-purchase .form-purchase .additional-details {\\n border: 0.2rem solid #ebebeb; }\\n.theme-dark app-purchase .progress-bar-container .progress-bar {\\n background-color: #343f4a; }\\n.theme-gray app-purchase .progress-bar-container .progress-bar {\\n background-color: #363a3e; }\\n.theme-white app-purchase .progress-bar-container .progress-bar {\\n background-color: #dcdcdc; }\\n.theme-dark app-purchase .progress-bar-container .progress-bar .progress-bar-full {\\n background-color: #5cda9d; }\\n.theme-gray app-purchase .progress-bar-container .progress-bar .progress-bar-full {\\n background-color: #47cf8d; }\\n.theme-white app-purchase .progress-bar-container .progress-bar .progress-bar-full {\\n background-color: #46c172; }\\napp-messages table tbody tr td:first-child span {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n.theme-dark app-messages table tbody tr td:first-child .icon {\\n background-color: #ff5252; }\\n.theme-gray app-messages table tbody tr td:first-child .icon {\\n background-color: #ff5252; }\\n.theme-white app-messages table tbody tr td:first-child .icon {\\n background-color: #ff5252; }\\n.theme-dark app-typing-message .head .interlocutor {\\n color: #4db1ff; }\\n.theme-gray app-typing-message .head .interlocutor {\\n color: #42a5f5; }\\n.theme-white app-typing-message .head .interlocutor {\\n color: #2c95f1; }\\n.theme-dark app-typing-message .messages-content .messages-list div.date {\\n color: #556576; }\\n.theme-gray app-typing-message .messages-content .messages-list div.date {\\n color: #565c62; }\\n.theme-white app-typing-message .messages-content .messages-list div.date {\\n color: #a0a5ab; }\\n.theme-dark app-typing-message .messages-content .messages-list div.my {\\n background-color: #2a3544; }\\n.theme-gray app-typing-message .messages-content .messages-list div.my {\\n background-color: #30363c; }\\n.theme-white app-typing-message .messages-content .messages-list div.my {\\n background-color: #fff; }\\napp-typing-message .messages-content .messages-list div.my:before {\\n content: \\\"\\\";\\n display: block;\\n position: absolute;\\n top: 0;\\n left: -1.1rem;\\n border: 1.2rem solid transparent; }\\n.theme-dark app-typing-message .messages-content .messages-list div.my:before {\\n border-top-color: #2a3544; }\\n.theme-gray app-typing-message .messages-content .messages-list div.my:before {\\n border-top-color: #30363c; }\\n.theme-white app-typing-message .messages-content .messages-list div.my:before {\\n border-top-color: #fff; }\\n.theme-dark app-typing-message .messages-content .messages-list div.buddy {\\n background-color: #18202a; }\\n.theme-gray app-typing-message .messages-content .messages-list div.buddy {\\n background-color: #25292d; }\\n.theme-white app-typing-message .messages-content .messages-list div.buddy {\\n background-color: #ededed; }\\napp-typing-message .messages-content .messages-list div.buddy:after {\\n content: \\\"\\\";\\n display: block;\\n position: absolute;\\n right: -1.1rem;\\n top: 0;\\n border: 1.2rem solid transparent; }\\n.theme-dark app-typing-message .messages-content .messages-list div.buddy:after {\\n border-top-color: #18202a; }\\n.theme-gray app-typing-message .messages-content .messages-list div.buddy:after {\\n border-top-color: #25292d; }\\n.theme-white app-typing-message .messages-content .messages-list div.buddy:after {\\n border-top-color: #ededed; }\\n.theme-dark app-staking .chart-header .general .label {\\n color: #556576; }\\n.theme-gray app-staking .chart-header .general .label {\\n color: #565c62; }\\n.theme-white app-staking .chart-header .general .label {\\n color: #a0a5ab; }\\n.theme-dark app-staking .chart-header .general .options {\\n color: #e0e0e0; }\\n.theme-gray app-staking .chart-header .general .options {\\n color: #e0e0e0; }\\n.theme-white app-staking .chart-header .general .options {\\n color: #43454b; }\\napp-staking .chart-header .selected {\\n display: flex;\\n align-items: center;\\n justify-content: flex-end;\\n flex-grow: 1;\\n font-size: 1.6rem; }\\n.theme-dark app-staking .chart-options .title {\\n color: #556576; }\\n.theme-gray app-staking .chart-options .title {\\n color: #565c62; }\\n.theme-white app-staking .chart-options .title {\\n color: #a0a5ab; }\\n.theme-dark app-staking .chart-options .options button {\\n color: #e0e0e0;\\n background-color: #2b3644; }\\n.theme-gray app-staking .chart-options .options button {\\n color: #e0e0e0;\\n background-color: #292d31; }\\n.theme-white app-staking .chart-options .options button {\\n color: #43454b;\\n background-color: #e0e0e0; }\\n.theme-dark app-staking .chart-options .options button.active {\\n background-color: #556576; }\\n.theme-gray app-staking .chart-options .options button.active {\\n background-color: #515960; }\\n.theme-white app-staking .chart-options .options button.active {\\n background-color: #ffffff; }\\n.input-block-alias {\\n position: relative; }\\n.input-block-alias .alias-dropdown {\\n position: absolute;\\n top: 6.5rem;\\n max-height: 10rem;\\n overflow: auto;\\n width: 100%; }\\n.theme-dark .input-block-alias .alias-dropdown {\\n background-color: #171e27;\\n color: #e0e0e0; }\\n.theme-gray .input-block-alias .alias-dropdown {\\n background-color: #292d31;\\n color: #e0e0e0; }\\n.theme-white .input-block-alias .alias-dropdown {\\n background-color: #e6e6e6;\\n color: #43454b; }\\n.input-block-alias .alias-dropdown div {\\n font-size: 1.4rem;\\n padding: 1rem; }\\n.theme-dark .input-block-alias .alias-dropdown div:hover {\\n background-color: rgba(58, 69, 85, 0.5); }\\n.theme-gray .input-block-alias .alias-dropdown div:hover {\\n background-color: rgba(58, 62, 66, 0.5); }\\n.theme-white .input-block-alias .alias-dropdown div:hover {\\n background-color: rgba(240, 240, 240, 0.5); }\\napp-contacts, app-add-contacts,\\napp-contact-send, app-export-import {\\n flex: 1 1 auto;\\n padding: 3rem;\\n min-width: 85rem; }\\napp-contacts .content, app-add-contacts .content,\\n app-contact-send .content, app-export-import .content {\\n position: relative;\\n padding: 3rem;\\n min-height: 100%; }\\n.theme-dark app-contacts .content, .theme-dark app-add-contacts .content, .theme-dark\\n app-contact-send .content, .theme-dark app-export-import .content {\\n background-color: rgba(43, 54, 68, 0.5);\\n color: #e0e0e0; }\\n.theme-gray app-contacts .content, .theme-gray app-add-contacts .content, .theme-gray\\n app-contact-send .content, .theme-gray app-export-import .content {\\n background-color: rgba(37, 40, 43, 0.5);\\n color: #e0e0e0; }\\n.theme-white app-contacts .content, .theme-white app-add-contacts .content, .theme-white\\n app-contact-send .content, .theme-white app-export-import .content {\\n background-color: rgba(255, 255, 255, 0.5);\\n color: #43454b; }\\napp-contacts .content .head, app-add-contacts .content .head,\\n app-contact-send .content .head, app-export-import .content .head {\\n position: absolute;\\n top: 0;\\n left: 0; }\\n.theme-dark app-contacts table .alias {\\n color: #4db1ff; }\\n.theme-gray app-contacts table .alias {\\n color: #42a5f5; }\\n.theme-white app-contacts table .alias {\\n color: #2c95f1; }\\n.theme-dark app-contacts table button .icon {\\n background-color: #4db1ff; }\\n.theme-gray app-contacts table button .icon {\\n background-color: #42a5f5; }\\n.theme-white app-contacts table button .icon {\\n background-color: #2c95f1; }\\n.theme-dark app-contacts table button span {\\n color: #e0e0e0; }\\n.theme-gray app-contacts table button span {\\n color: #e0e0e0; }\\n.theme-white app-contacts table button span {\\n color: #43454b; }\\n.theme-dark app-contacts .footer {\\n color: #4db1ff; }\\n.theme-gray app-contacts .footer {\\n color: #42a5f5; }\\n.theme-white app-contacts .footer {\\n color: #2c95f1; }\\n.theme-dark app-contacts .footer .import-btn {\\n color: #4db1ff; }\\n.theme-gray app-contacts .footer .import-btn {\\n color: #42a5f5; }\\n.theme-white app-contacts .footer .import-btn {\\n color: #2c95f1; }\\n.theme-dark app-contacts .footer .import-btn .icon {\\n background-color: #4db1ff; }\\n.theme-gray app-contacts .footer .import-btn .icon {\\n background-color: #42a5f5; }\\n.theme-white app-contacts .footer .import-btn .icon {\\n background-color: #2c95f1; }\\n.theme-dark app-contact-send .wallets-selection button {\\n color: #4db1ff; }\\n.theme-gray app-contact-send .wallets-selection button {\\n color: #42a5f5; }\\n.theme-white app-contact-send .wallets-selection button {\\n color: #2c95f1; }\\n.head {\\n display: flex;\\n align-items: flex-end;\\n justify-content: space-between;\\n font-size: 1.3rem;\\n padding: 0 3rem;\\n width: 100%;\\n height: 3rem; }\\n.theme-dark .head {\\n color: #4db1ff; }\\n.theme-gray .head {\\n color: #42a5f5; }\\n.theme-white .head {\\n color: #2c95f1; }\\n.head .breadcrumbs > span:not(:last-child), .head .breadcrumbs a:not(:last-child) {\\n position: relative;\\n cursor: pointer;\\n margin-right: 20px;\\n outline-style: none; }\\n.head .breadcrumbs > span:not(:last-child):after, .head .breadcrumbs a:not(:last-child):after {\\n content: \\\"\\\";\\n display: block;\\n position: absolute;\\n top: 0.5rem;\\n right: -1.5rem;\\n width: 0.9rem;\\n height: 0.9rem;\\n -webkit-mask: url('arrow-right.svg') no-repeat center;\\n mask: url('arrow-right.svg') no-repeat center;\\n -webkit-mask-size: cover;\\n mask-size: cover; }\\n.theme-dark .head .breadcrumbs > span:not(:last-child):after, .theme-dark .head .breadcrumbs a:not(:last-child):after {\\n background-color: #4db1ff; }\\n.theme-gray .head .breadcrumbs > span:not(:last-child):after, .theme-gray .head .breadcrumbs a:not(:last-child):after {\\n background-color: #42a5f5; }\\n.theme-white .head .breadcrumbs > span:not(:last-child):after, .theme-white .head .breadcrumbs a:not(:last-child):after {\\n background-color: #2c95f1; }\\n.head .back-btn {\\n display: flex;\\n align-items: center;\\n background-color: transparent;\\n color: #4db1ff;\\n font-size: inherit;\\n font-weight: 400;\\n line-height: 1.3rem;\\n padding: 0;\\n height: auto; }\\n.head .back-btn .icon {\\n margin-right: 0.7rem;\\n -webkit-mask: url('back.svg') no-repeat center;\\n mask: url('back.svg') no-repeat center;\\n width: 0.9rem;\\n height: 0.9rem; }\\n.theme-dark .head .back-btn .icon {\\n background-color: #4db1ff; }\\n.theme-gray .head .back-btn .icon {\\n background-color: #42a5f5; }\\n.theme-white .head .back-btn .icon {\\n background-color: #2c95f1; }\\n.scrolled-content::-webkit-scrollbar {\\n background-color: transparent;\\n cursor: default;\\n width: 1rem;\\n height: 1rem; }\\n.scrolled-content::-webkit-scrollbar-track {\\n background: transparent; }\\n.scrolled-content::-webkit-scrollbar-thumb {\\n background-color: #556576;\\n background-clip: padding-box;\\n border: 0.25rem solid transparent;\\n border-radius: 0.5rem; }\\n.scrolled-content::-webkit-scrollbar-thumb:hover {\\n background-color: #556576; }\\ntable {\\n font-size: 1.3rem;\\n width: 100%; }\\ntable thead {\\n text-align: left; }\\n.theme-dark table thead {\\n color: #556576; }\\n.theme-gray table thead {\\n color: #565c62; }\\n.theme-white table thead {\\n color: #a0a5ab; }\\ntable thead tr {\\n height: 4rem; }\\ntable thead tr th {\\n padding: 1rem;\\n vertical-align: bottom; }\\ntable thead tr th:first-child {\\n padding-left: 3rem; }\\ntable thead tr th:last-child {\\n padding-right: 3rem; }\\ntable tbody {\\n text-align: left; }\\n.theme-dark table tbody {\\n color: #e0e0e0; }\\n.theme-gray table tbody {\\n color: #e0e0e0; }\\n.theme-white table tbody {\\n color: #43454b; }\\ntable tbody tr {\\n height: 3.5rem; }\\n.theme-dark table tbody tr:nth-child(odd) {\\n background-color: #18202a; }\\n.theme-gray table tbody tr:nth-child(odd) {\\n background-color: #25292d; }\\n.theme-white table tbody tr:nth-child(odd) {\\n background-color: #ffffff; }\\ntable tbody tr td {\\n line-height: 1.7rem;\\n padding: 0 1rem;\\n vertical-align: middle;\\n white-space: nowrap;\\n max-width: 20rem; }\\ntable tbody tr td:first-child {\\n padding-left: 3rem; }\\ntable tbody tr td:last-child {\\n padding-right: 3rem; }\\n@font-face {\\n font-family: OpenSans;\\n src: url('OpenSans-Light.ttf');\\n font-weight: 300; }\\n@font-face {\\n font-family: OpenSans;\\n src: url('OpenSans-Regular.ttf');\\n font-weight: 400; }\\n@font-face {\\n font-family: OpenSans;\\n src: url('OpenSans-SemiBold.ttf');\\n font-weight: 600; }\\n@font-face {\\n font-family: OpenSans;\\n src: url('OpenSans-Bold.ttf');\\n font-weight: 700; }\\n@font-face {\\n font-family: OpenSans;\\n src: url('OpenSans-ExtraBold.ttf');\\n font-weight: 800; }\\nhtml {\\n font-family: OpenSans, sans-serif;\\n font-size: 10px; }\\nbody {\\n font-family: OpenSans, sans-serif;\\n font-size: 1.6rem;\\n width: 100vw;\\n height: 100vh; }\\nbody.theme-dark {\\n background: #131921 url('background-dark.png') no-repeat center;\\n background-size: cover; }\\nbody.theme-gray {\\n background: #101417 url('background-gray.png') no-repeat center;\\n background-size: cover; }\\nbody.theme-white {\\n background: #eeeeee url('background-white.png') no-repeat center;\\n background-size: cover; }\\nbody app-root {\\n display: flex;\\n width: 100%;\\n height: 100%; }\\n.update-tooltip .tooltip-inner .icon {\\n -webkit-mask: url('update-alert.svg') no-repeat center;\\n mask: url('update-alert.svg') no-repeat center; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxiYXNlXFxfbWl4aW5zLnNjc3MiLCJzcmMvc3R5bGVzLnNjc3MiLCJub2RlX21vZHVsZXMvQG5nLXNlbGVjdC9uZy1zZWxlY3QvdGhlbWVzL2RlZmF1bHQudGhlbWUuY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGJhc2VcXF9udWxsLnNjc3MiLCJzcmMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFzc2V0c1xcc2Nzc1xcYmFzZVxcX2Jhc2Uuc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxiYXNlXFxfdGhlbWUuc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxsYXlvdXRcXF9tYWluLnNjc3MiLCJzcmMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFzc2V0c1xcc2Nzc1xcbGF5b3V0XFxfc2lkZWJhci5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGxheW91dFxcX3N0YXR1cy5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGxheW91dFxcX3dhbGxldC5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGxheW91dFxcX2NvbnRhY3Quc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxtb2R1bGVzXFxfaGVhZC5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXG1vZHVsZXNcXF9zY3JvbGwuc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxtb2R1bGVzXFxfdGFibGUuc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcc3R5bGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEVBOztDQzVFQztBQ0ZELGlEQUFpRCxlQUFlLENBQUMsaUNBQWlDO0FBQUMsdURBQXVELGVBQWU7QUFBQywyREFBMkQsUUFBUSxDQUFDLHlDQUF5QyxDQUFDLHNCQUFzQjtBQUFDLGlFQUFpRSx5Q0FBeUM7QUFBQyxrRUFBa0UsNEJBQTRCLENBQUMsMkJBQTJCO0FBQUMsK0RBQStELHlCQUF5QixDQUFDLHdCQUF3QjtBQUFDLHlFQUF5RSxvQkFBb0IsQ0FBQywwRUFBMEU7QUFBQyxtREFBbUQsd0JBQXdCO0FBQUMseUNBQXlDLFlBQVk7QUFBQyxnQ0FBZ0MscUJBQXFCLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLGtCQUFrQjtBQUFDLHNDQUFzQyxtQ0FBbUM7QUFBQyxvREFBb0Qsa0JBQWtCLENBQUMsaUJBQWlCO0FBQUMsZ0VBQWdFLGtCQUFrQixDQUFDLGNBQWM7QUFBQyxvRUFBb0UsVUFBVTtBQUFDLGlEQUFpRCxXQUFXO0FBQUMsK0VBQStFLE9BQU8sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCO0FBQUMsMkZBQTJGLGtCQUFrQixDQUFDLGlCQUFpQjtBQUFDLG9HQUFvRyx3QkFBd0IsQ0FBQyx3QkFBd0I7QUFBQyxvSEFBb0gsYUFBYTtBQUFDLHVFQUF1RSxlQUFlLENBQUMsZ0JBQWdCO0FBQUMsbUZBQW1GLGlCQUFpQixDQUFDLGNBQWM7QUFBQyxpRkFBaUYsY0FBYyxDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLGdCQUFnQjtBQUFDLDZGQUE2RixjQUFjLENBQUMsZUFBZTtBQUFDLG1HQUFtRyx3QkFBd0I7QUFBQyxtSEFBbUgsZ0JBQWdCO0FBQUMsK0hBQStILGNBQWMsQ0FBQyxpQkFBaUI7QUFBQyxpR0FBaUcsb0JBQW9CLENBQUMsZUFBZTtBQUFDLGdHQUFnRyxvQkFBb0IsQ0FBQyxlQUFlO0FBQUMsc0dBQXNHLHdCQUF3QjtBQUFDLHFHQUFxRyw4QkFBOEI7QUFBQyxpSEFBaUgsNkJBQTZCLENBQUMsaUJBQWlCO0FBQUMsc0dBQXNHLDZCQUE2QjtBQUFDLGtIQUFrSCxhQUFhLENBQUMsOEJBQThCO0FBQUMsaUZBQWlGLG1CQUFtQjtBQUFDLDZGQUE2RixtQkFBbUI7QUFBQyx1RkFBdUYsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQjtBQUFDLG1HQUFtRyxpQkFBaUIsQ0FBQyxjQUFjO0FBQUMsNkJBQTZCLFVBQVU7QUFBQyw2Q0FBNkMsYUFBYTtBQUFDLDRCQUE0QixtQkFBbUI7QUFBQyx3Q0FBd0MsbUJBQW1CO0FBQUMsNkJBQTZCLFVBQVUsQ0FBQyxpQkFBaUI7QUFBQyx5Q0FBeUMsZ0JBQWdCLENBQUMsZUFBZTtBQUFDLDZDQUE2QyxxQkFBcUI7QUFBQyx1Q0FBdUMseUNBQXlDLENBQUMsa0JBQWtCLENBQUMsMEJBQTBCO0FBQUMsbUJBQW1CLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLG1DQUFtQyxDQUFDLE1BQU07QUFBQyxvQ0FBb0MsUUFBUSxDQUFDLDhCQUE4QixDQUFDLDZCQUE2QixDQUFDLHdCQUF3QixDQUFDLGVBQWU7QUFBQyxtRkFBbUYsOEJBQThCLENBQUMsNkJBQTZCO0FBQUMsaUNBQWlDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQywwQkFBMEIsQ0FBQywyQkFBMkIsQ0FBQyxrQkFBa0I7QUFBQyxpRkFBaUYsMkJBQTJCLENBQUMsMEJBQTBCO0FBQUMsdUNBQXVDLDRCQUE0QixDQUFDLGVBQWU7QUFBQyx1Q0FBdUMseUJBQXlCLENBQUMsZUFBZTtBQUFDLHlEQUF5RCx3QkFBZ0IsQ0FBaEIscUJBQWdCLENBQWhCLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjO0FBQUMsNEVBQTRFLGNBQWM7QUFBQywwRUFBMEUsd0JBQXdCO0FBQUMseUtBQXlLLHdCQUF3QixDQUFDLGVBQWU7QUFBQyx1REFBdUQscUJBQXFCLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCO0FBQUMscUtBQXFLLFVBQVUsQ0FBQyx3QkFBd0I7QUFBQyx1TUFBdU0sZUFBZTtBQUFDLHdFQUF3RSx3QkFBd0IsQ0FBQyxVQUFVO0FBQUMsMEVBQTBFLFVBQVU7QUFBQyx1RUFBdUUsaUJBQWlCO0FBQUMsbUZBQW1GLGtCQUFrQixDQUFDLGNBQWM7QUFBQyxxRUFBcUUsYUFBYSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUI7QUFBQyxpRkFBaUYsZ0JBQWdCLENBQUMsZUFBZTtBQUFDLCtCQUErQixhQUFhLENBQUMsZ0JBQWdCO0FDRy8zTztFQUNFLHNCQUFzQjtFQUN0Qiw4QkFBOEI7RUFDOUIsMkJBQTJCLEVBQUE7QUFFN0I7RUFDRSxtQkFBbUI7RUFDbkIsMkJBQTJCO0VBQzNCLHdCQUF3QjtFQUN4QixTQUFTO0VBQ1QsVUFBVTtFSDhCWCwyQkFBMkI7RUFDMUIseUJBQXlCO0VBRXpCLHNCQUFzQjtFQUV0QixpQkFBaUIsRUFBQTtBRy9CbkI7Ozs7Ozs7Ozs7Ozs7RUFhSSxTQUFTO0VBQ1QsZUFBZTtFQUNmLGFBQWE7RUFDYix3QkFBd0IsRUFBQTtBQUU1Qjs7RUFFSSxjQUFjLEVBQUE7QUFHbEI7RUFDRyxjQUFjO0VBQ2Qsa0JBQWtCLEVBQUE7QUFFckI7RUFDSSxnQkFBZ0IsRUFBQTtBQUVwQjtFQUNJLFlBQVksRUFBQTtBQUVoQjs7RUFFSSxhQUFhLEVBQUE7QUFJakI7RUFDSSx5QkFBeUI7RUFDekIsaUJBQWlCLEVBQUE7QUFFckI7O0VBRUUsVUFBVSxFQUFBO0FBSVo7RUFDSSxhQUFhLEVBQUE7QUFEakI7SUFHTSw0Q0FBNEMsRUFBQTtBQUlsRDs7OztFQUlFLDBCQUEwQjtFQUMxQixlQUFlO0VBQ2YsYUFBYSxFQUFBO0FBRWY7O0VBRUUsZUFBZSxFQUFBO0FBRWpCOztFQUVFLFNBQVM7RUFDVCxVQUFVLEVBQUE7QUFFWjtFQUNFLG1CQUFtQixFQUFBO0FBRXJCO0VBQ0UsNkJBQTZCO0VBQzdCLHVCQUF1QixFQUFBO0FBRXpCOztFQUVFLHdCQUF3QixFQUFBO0FBSzFCO0VBQ0MscUJBQXFCLEVBQUE7QUFEdEI7SUFLRSxVQUFVLEVBQUE7QUFJWjtFQUFJLGtCQUFrQixFQUFBO0FBQ3RCO0VBQVksZ0JBQWdCLEVBQUE7QUFHNUI7RUFDQyxXQUFXO0VBQ1gsZUFBZTtFQUNmLFlBQVk7RUFDWCxtQkFBbUI7RUFDcEIsU0FBUyxFQUFBO0FBR1Y7RUFDRSx3QkFBd0IsRUFBQTtBSDNDdEI7RUk1RUkseUJDc0NtQyxFQUFBO0FMc0N2QztFSTVFSSx5QkMrRm1DLEVBQUE7QUxuQnZDO0VJNUVJLHlCQ3dKbUMsRUFBQTtBRGxKM0M7RUFDRSxZQUFZO0VBQ1osaUNBQWlDO0VBQ2pDLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLGVBQWU7RUFDZixjQUFjLEVBQUE7QUorRFo7SUl6REUseUJDUm9DO0lEU3BDLGNDbEIyQixFQUFBO0FMMEU3QjtJSXpERSx5QkNpRG9DO0lEaERwQyxjQ3VDMkIsRUFBQTtBTGlCN0I7SUl6REUseUJDMEdvQztJRHpHcEMsY0NnRzJCLEVBQUE7QUx4QzdCO0lJbERJLHlCQ2Q2QixFQUFBO0FMZ0VqQztJSWxESSx5QkMyQzZCLEVBQUE7QUxPakM7SUlsREkseUJDb0c2QixFQUFBO0FMbERqQztJSTNDSSx5QkNwQjZCLEVBQUE7QUwrRGpDO0lJM0NJLHlCQ3FDNkIsRUFBQTtBTE1qQztJSTNDSSx5QkM4RjZCLEVBQUE7QUxuRGpDO0lJbkNFLHlCQ2pDZ0M7SURrQ2hDLGNDeEMyQixFQUFBO0FMMEU3QjtJSW5DRSx5QkN3QmdDO0lEdkJoQyxjQ2lCMkIsRUFBQTtBTGlCN0I7SUluQ0UseUJDaUZnQztJRGhGaEMsY0MwRTJCLEVBQUE7QUx4QzdCO0lJNUJJLHlCQ3ZDeUIsRUFBQTtBTG1FN0I7SUk1QkkseUJDa0J5QixFQUFBO0FMVTdCO0lJNUJJLHlCQzJFeUIsRUFBQTtBTC9DN0I7SUlyQkkseUJDN0N5QixFQUFBO0FMa0U3QjtJSXJCSSx5QkNZeUIsRUFBQTtBTFM3QjtJSXJCSSx5QkNxRXlCLEVBQUE7QUxoRDdCO0lJYkUseUJDakRpQztJRGtEakMsY0M5RDJCLEVBQUE7QUwwRTdCO0lJYkUseUJDUWlDO0lEUGpDLGNDTDJCLEVBQUE7QUxpQjdCO0lJYkUseUJDaUVpQztJRGhFakMsY0NvRDJCLEVBQUE7QUx4QzdCO0lJTkkseUJDdkQwQixFQUFBO0FMNkQ5QjtJSU5JLHlCQ0UwQixFQUFBO0FMSTlCO0lJTkkseUJDMkQwQixFQUFBO0FMckQ5QjtJSUNJLHlCQzdEMEIsRUFBQTtBTDREOUI7SUlDSSx5QkNKMEIsRUFBQTtBTEc5QjtJSUNJLHlCQ3FEMEIsRUFBQTtBTHREOUI7SUlTRSx5QkNwRXFDO0lEcUVyQyxjQ3BGMkIsRUFBQTtBTDBFN0I7SUlTRSx5QkNYcUM7SURZckMsY0MzQjJCLEVBQUE7QUxpQjdCO0lJU0UseUJDOENxQztJRDdDckMsY0M4QjJCLEVBQUE7QUx4QzdCO0lJZ0JJLHlCQzFF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THdFdEI7SUk4UEkseUJDN1FrQixFQUFBO0FMZXRCO0lJOFBJLHlCQ3BOa0IsRUFBQTtBTDFDdEI7RUl1UUEseUJDM1Q4QixFQUFBO0FMb0Q5QjtFSXVRQSx5QkNsUThCLEVBQUE7QUxMOUI7RUl1UUEseUJDek04QixFQUFBO0FMOUQ5QjtFSStRSSx5QkN2VmtCLEVBQUE7QUx3RXRCO0VJK1FJLHlCQzlSa0IsRUFBQTtBTGV0QjtFSStRSSx5QkNyT2tCLEVBQUE7QUwxQ3RCO0VJc1JJLHlCQy9Wc0IsRUFBQTtBTHlFMUI7RUlzUkkseUJDdFNzQixFQUFBO0FMZ0IxQjtFSXNSSSx5QkM3T3NCLEVBQUE7QURtUDlCO0VBQ0Usa0JBQWtCLEVBQUE7QUo3UmhCO0lJZ1NBLG1CQ25VK0I7SURvVS9CLHVDQy9UMEM7SURnVTFDLGNDN1dzQixFQUFBO0FMMkV0QjtJSWdTQSxtQkMxUStCO0lEMlEvQix1Q0N0UTBDO0lEdVExQyxjQ3BUc0IsRUFBQTtBTGtCdEI7SUlnU0EsbUJDak4rQjtJRGtOL0IsNkNDN01nRDtJRDhNaEQsY0MzUHNCLEVBQUE7QURxUDFCO0lBVUksaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixxQkFBcUIsRUFBQTtBQVp6QjtJQWdCSSxpQkFBaUIsRUFBQTtBQWhCckI7TUFtQk0sV0FBVztNQUNYLGtCQUFrQjtNQUNsQixhQUFhO01BQ2Isd0JBQXdCO01BQ3hCLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTtBSnBUckI7UUl1VEkseURBQWdGLEVBQUE7QUp2VHBGO1FJdVRJLHlEQUFnRixFQUFBO0FKdlRwRjtRSXVUSSx5REFBZ0YsRUFBQTtBQTNCeEY7SUFpQ0ksaUJBQWlCLEVBQUE7QUFqQ3JCO01Bb0NNLFdBQVc7TUFDWCxrQkFBa0I7TUFDbEIsYUFBYTtNQUNiLFlBQVk7TUFDWixvQkFBb0I7TUFDcEIsbUJBQW1CLEVBQUE7QUpyVXJCO1FJd1VJLHFEQzNXMkIsRUFBQTtBTG1DL0I7UUl3VUkscURDbFQyQixFQUFBO0FMdEIvQjtRSXdVSSxxREN6UDJCLEVBQUE7QUQ2TW5DO0lBa0RJ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QjtJRCtpQi9CLHVDQzFpQjBDO0lEMmlCMUMsY0N4bEJzQixFQUFBO0FMMkV0QjtJSTJnQkEsbUJDcmYrQjtJRHNmL0IsdUNDamYwQztJRGtmMUMsY0MvaEJzQixFQUFBO0FMa0J0QjtJSTJnQkEsbUJDNWIrQjtJRDZiL0IsNkNDeGJnRDtJRHliaEQsY0N0ZXNCLEVBQUE7QUx2Q3RCO0lJbWhCRSxtQkNwakJzQztJRHFqQnRDLGNDcmtCMkIsRUFBQTtBTGlEN0I7SUltaEJFLG1CQzNmc0M7SUQ0ZnRDLGNDNWdCMkIsRUFBQTtBTFI3QjtJSW1oQkUsbUJDbGNzQztJRG1jdEMsY0NuZDJCLEVBQUE7QUxqRTdCO0lJNGhCTSxxREM3akJrQyxFQUFBO0FMaUN4QztJSTRoQk0scURDcGdCa0MsRUFBQTtBTHhCeEM7SUk0aEJNLHFEQzNja0MsRUFBQTtBTGpGeEM7SUlzaUJNLHFEQUFxSCxFQUFBO0FKdGlCM0g7SUlzaUJNLHFEQUFxSCxFQUFBO0FKdGlCM0g7SUlzaUJNLHFEQUFxSCxFQUFBO0FBL0IvSDtJQXNDSSxlQUFlLEVBQUE7QUo3aUJmO01JZ2pCRSxtQkMva0JxQztNRGdsQnJDLGNDbG1CMkIsRUFBQTtBTGlEN0I7TUlnakJFLG1CQ3RoQnFDO01EdWhCckMsY0N6aUIyQixFQUFBO0FMUjdCO01JZ2pCRSxtQkM3ZHFDO01EOGRyQyxjQ2hmMkIsRUFBQTtBRHNjakM7TUE4Q00sYUFBYTtNQUNiLHNCQUFzQjtNQUN0QixtQkFBbUIsRUFBQTtBSnZqQnJCO01JK2pCTSxxREM5bEJpQyxFQUFBO0FMK0J2QztNSStqQk0scURDcmlCaUMsRUFBQTtBTDFCdkM7TUkrakJNLHFEQzVlaUMsRUFBQTtBTG5GdkM7TUl5a0JNLHFEQUFtSCxFQUFBO0FKemtCekg7TUl5a0JNLHFEQUFtSCxFQUFBO0FKemtCekg7TUl5a0JNLHFEQUFtSCxFQUFBO0FBbEU3SDtJQXlFSSxpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLHFCQUFxQixFQUFBO0FBM0V6QjtNQThFTSxpQkFBaUI7TUFDakIsbUJBQW1CLEVBQUE7QUp0bEJyQjtRSXlsQkksY0NqcUJrQixFQUFBO0FMd0V0QjtRSXlsQkksY0N4bUJrQixFQUFBO0FMZXRCO1FJeWxCSSxjQy9pQmtCLEVBQUE7QUQ2ZDFCO01BdUZNLGlCQUFpQjtNQUNqQixtQkFBbUIsRUFBQTtBSi9sQnJCO1FJa21CSSxjQ3BvQjhCLEVBQUE7QUxrQ2xDO1FJa21CSSxjQzNrQjhCLEVBQUE7QUx2QmxDO1FJa21CSSxjQ2xoQjhCLEVBQUE7QUR1YnRDO01BZ0dNLGlCQUFpQjtNQUNqQixtQkFBbUI7TUFDbkIsa0JBQWtCLEVBQUE7QUFsR3hCO01Bc0dNLGlCQUFpQjtNQUNqQixtQkFBbUIsRUFBQTtBSjltQnJCO1FJaW5CSSxjQ25wQjhCLEVBQUE7QUxrQ2xDO1FJaW5CSSxjQzFsQjhCLEVBQUE7QUx2QmxDO1FJaW5CSSxjQ2ppQjhCLEVBQUE7QUR1YnRDO01BK0dNLGdCQUFnQjtNQUNoQixXQUFXO01BQ1gsWUFBWSxFQUFBO0FKeG5CZDtRSTJuQkkseUJDM3BCNkIsRUFBQTtBTGdDakM7UUkybkJJLHlCQ2xtQjZCLEVBQUE7QUx6QmpDO1FJMm5CSSx5QkN6aUI2QixFQUFBO0FEcWJyQztJQTBISSxvQkFBb0IsRUFBQTtBQTFIeEI7TUE2SE0sV0FBVztNQUNYLGtCQUFrQjtNQUNsQixjQUFjO01BQ2QsWUFBWTtNQUNaLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTtBSnpvQnJCO1FJNG9CSSxxREMvcUIyQixFQUFBO0FMbUMvQjtRSTRvQkkscURDdG5CMkIsRUFBQTtBTHRCL0I7UUk0b0JJLHFEQzdqQjJCLEVBQUE7QUR3Ym5DO0lBMklJLG1CQUFtQixFQUFBO0FBM0l2QjtNQThJTSxXQUFXO01BQ1gsa0JBQWtCO01BQ2xCLGNBQWM7TUFDZCxXQUFXO01BQ1gsb0JBQW9CO01BQ3BCLG1CQUFtQixFQUFBO0FKMXBCckI7UUk2cEJJLHFEQUFtRyxFQUFBO0FKN3BCdkc7UUk2cEJJLHFEQUFtRyxFQUFBO0FKN3BCdkc7UUk2cEJJLHFEQUFtRyxFQUFBO0FBTTNHO0VBR0ksWUFBWTtFQUNaLFVBQVUsRUFBQTtBSnZxQlY7SUkwcUJFLHlCQy9zQmtDO0lEZ3RCbEMsdUNDenNCd0MsRUFBQTtBTDhCMUM7SUkwcUJFLHlCQ3RwQmtDO0lEdXBCbEMsdUNDaHBCd0MsRUFBQTtBTDNCMUM7SUkwcUJFLHlCQzdsQmtDO0lEOGxCbEMsNkNDdmxCOEMsRUFBQTtBRCtrQnBEO0VBYUksY0FBYztFQUNkLGlDQUFpQztFQUNqQyxpQkFBaUI7RUFDakIseUJBQXlCO0VBQ3pCLGtCQUFrQixFQUFBO0FBakJ0QjtFQXFCSSxjQUFjO0VBQ2Qsa0JBQWtCLEVBQUE7QUp6ckJsQjtJSTRyQkUsY0N2d0JvQixFQUFBO0FMMkV0QjtJSTRyQkUsY0M5c0JvQixFQUFBO0FMa0J0QjtJSTRyQkUsY0NycEJvQixFQUFBO0FMdkN0QjtJSWtzQkkseUJDdHVCMkI7SUR1dUIzQixjQzl3QmtCLEVBQUE7QUwyRXRCO0lJa3NCSSx5QkM3cUIyQjtJRDhxQjNCLGNDcnRCa0IsRUFBQTtBTGtCdEI7SUlrc0JJLHlCQ3BuQjJCO0lEcW5CM0IsY0M1cEJrQixFQUFBO0FEa3FCMUI7RUFHSSxXQUFXLEVBQUE7QUFIZjtJQVNZLG1CQUFtQixFQUFBO0FBVC9CO0lBZ0JNLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixhQUFhO0lBQ2IsZUFBZTtJQUNmLGNBQWMsRUFBQTtBSi90QmhCO01Ja3VCSSx5QkN6eEJ5QjtNRDB4QnpCLGNDOXlCa0IsRUFBQTtBTDJFdEI7TUlrdUJJLHlCQ2h1QnlCO01EaXVCekIsY0NydkJrQixFQUFBO0FMa0J0QjtNSWt1QkkseUJDdnFCeUI7TUR3cUJ6QixjQzVyQmtCLEVBQUE7QURrcUIxQjtNQThCUSxVQUFVLEVBQUE7QUE5QmxCO1FBaUNVLFNBQVMsRUFBQTtBQWpDbkI7SUF1Q00sWUFBWSxFQUFBO0FKaHZCZDtNSW12QkkseUJDMXlCeUIsRUFBQTtBTHVEN0I7TUltdkJJLHlCQ2p2QnlCLEVBQUE7QUxGN0I7TUltdkJJLHlCQ3hyQnlCLEVBQUE7QUQ4b0JqQztNQWdEVSxpQkFBaUI7TUFDakIsYUFBYSxFQUFBO0FKMXZCbkI7UUk2dkJRLHlCQ3B6QnFCO1FEcXpCckIsY0N6MEJjLEVBQUE7QUwyRXRCO1FJNnZCUSx5QkMzdkJxQjtRRDR2QnJCLGNDaHhCYyxFQUFBO0FMa0J0QjtRSTZ2QlEseUJDbHNCcUI7UURtc0JyQixjQ3Z0QmMsRUFBQTtBTHZDdEI7UUlvd0JVLHVDQzF6QjZCO1FEMnpCN0IsY0NoMUJZLEVBQUE7QUwyRXRCO1FJb3dCVSx1Q0Nqd0I2QjtRRGt3QjdCLGNDdnhCWSxFQUFBO0FMa0J0QjtRSW93QlUsMENDeHNCZ0M7UUR5c0JoQyxjQzl0QlksRUFBQTtBTHZDdEI7UUk0d0JVLHVDQ2owQmdDO1FEazBCaEMsY0N4MUJZLEVBQUE7QUwyRXRCO1FJNHdCVSx1Q0N4d0JnQztRRHl3QmhDLGNDL3hCWSxFQUFBO0FMa0J0QjtRSTR3QlUsMENDL3NCbUM7UURndEJuQyxjQ3R1QlksRUFBQTtBRGtxQjFCO01BMEVVLDZCQUE2QjtNQUM3QixlQUFlO01BQ2YsV0FBVztNQUNYLFlBQVksRUFBQTtBQTdFdEI7TUFpRlUsdUJBQXVCLEVBQUE7QUFqRmpDO01BcUZVLHlCQUF5QjtNQUN6Qiw0QkFBNEI7TUFDNUIsaUNBQWlDO01BQ2pDLHFCQUFxQixFQUFBO0FBeEYvQjtNQTRGVSx5QkFBeUIsRUFBQTtBSnJ5Qi9CO0VJaXpCRSxzQ0M5MEIwRDtFRCswQjFELGNDNzNCb0IsRUFBQTtBTDJFdEI7RUlpekJFLHNDQ3J4QjBEO0VEc3hCMUQsY0NwMEJvQixFQUFBO0FMa0J0QjtFSWl6QkUsdUNDNXRCMkQ7RUQ2dEIzRCxjQzN3Qm9CLEVBQUE7QUx2Q3RCO0VJMHpCTSx5QkMvM0JlLEVBQUE7QUxxRXJCO0VJMHpCTSx5QkN0MEJlLEVBQUE7QUxZckI7RUkwekJNLHlCQzd3QmUsRUFBQTtBTDdDckI7RUlpMEJNLHlCQ3g0QmlCLEVBQUE7QUx1RXZCO0VJaTBCTSx5QkMvMEJpQixFQUFBO0FMY3ZCO0VJaTBCTSx5QkN0eEJpQixFQUFBO0FMM0N2QjtFSXcwQk0seUJDaDVCZ0IsRUFBQTtBTHdFdEI7RUl3MEJNLHlCQ3YxQmdCLEVBQUE7QUxldEI7RUl3MEJNLHlCQzl4QmdCLEVBQUE7QUwxQ3RCO0VJZzFCSSx5QkN4NUJrQjtFRHk1QmxCLGNDMzVCeUIsRUFBQTtBTDBFN0I7RUlnMUJJLHlCQy8xQmtCO0VEZzJCbEIsY0NsMkJ5QixFQUFBO0FMaUI3QjtFSWcxQkkseUJDdHlCa0I7RUR1eUJsQixjQ3p5QnlCLEVBQUE7QUx4QzdCO0VJMDFCTSx5QkN0M0JtQixFQUFBO0FMNEJ6QjtFSTAxQk0seUJDN3pCbUIsRUFBQTtBTDdCekI7RUkwMUJNLHlCQ3B3Qm1CLEVBQUE7QUx0RnpCO0VJczJCRSxnQ0M5NUJtQyxFQUFBO0FMd0RyQztFSXMyQkUsZ0NDcjJCbUMsRUFBQTtBTERyQztFSXMyQkUsZ0NDNXlCbUMsRUFBQTtBTDFEckM7RUlnM0JRLGNDejdCa0IsRUFBQTtBTHlFMUI7RUlnM0JRLGNDaDRCa0IsRUFBQTtBTGdCMUI7RUlnM0JRLGNDdjBCa0IsRUFBQTtBTHpDMUI7RUl1M0JRLGNDbDhCYyxFQUFBO0FMMkV0QjtFSXUzQlEsY0N6NEJjLEVBQUE7QUxrQnRCO0VJdTNCUSxjQ2gxQmMsRUFBQTtBTHZDdEI7RUk4M0JRLGNDdDhCYyxFQUFBO0FMd0V0QjtFSTgzQlEsY0M3NEJjLEVBQUE7QUxldEI7RUk4M0JRLGNDcDFCYyxFQUFBO0FMMUN0QjtFSTI0QkUsY0N0OUJvQixFQUFBO0FMMkV0QjtFSTI0QkUsY0M3NUJvQixFQUFBO0FMa0J0QjtFSTI0QkUsY0NwMkJvQixFQUFBO0FMdkN0QjtFSWk1QkkseUJDeDdCK0IsRUFBQTtBTHVDbkM7RUlpNUJJLHlCQy8zQitCLEVBQUE7QUxsQm5DO0VJaTVCSSx5QkN0MEIrQixFQUFBO0FMM0VuQztFSXU1Qk0seUJDNzdCaUMsRUFBQTtBTHNDdkM7RUl1NUJNLHlCQ3A0QmlDLEVBQUE7QUxuQnZDO0VJdTVCTSx5QkMzMEJpQyxFQUFBO0FMNUV2QztFSW02QkUsc0NDaDhCMEQ7RURpOEIxRCxjQy8rQm9CLEVBQUE7QUwyRXRCO0VJbTZCRSxzQ0N2NEIwRDtFRHc0QjFELGNDdDdCb0IsRUFBQTtBTGtCdEI7RUltNkJFLHVDQzkwQjJEO0VEKzBCM0QsY0M3M0JvQixFQUFBO0FMdkN0QjtFSTY2QkUsc0NDMThCMEQ7RUQyOEIxRCxjQ3ovQm9CLEVBQUE7QUwyRXRCO0VJNjZCRSxzQ0NqNUIwRDtFRGs1QjFELGNDaDhCb0IsRUFBQTtBTGtCdEI7RUk2NkJFLHVDQ3gxQjJEO0VEeTFCM0QsY0N2NEJvQixFQUFBO0FMdkN0QjtFSW83QkksbUNDNStCaUMsRUFBQTtBTHdEckM7RUlvN0JJLG1DQ243QmlDLEVBQUE7QUxEckM7RUlvN0JJLG1DQzEzQmlDLEVBQUE7QUwxRHJDO0VJNDdCSSx5QkNwZ0NrQjtFRHFnQ2xCLGNDdmdDeUIsRUFBQTtBTDBFN0I7RUk0N0JJLHlCQzM4QmtCO0VENDhCbEIsY0M5OEJ5QixFQUFBO0FMaUI3QjtFSTQ3QkkseUJDbDVCa0I7RURtNUJsQixjQ3I1QnlCLEVBQUE7QUMzSGpDO0VBQ0UsY0FBYztFQUNkLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTtBQUhsQjtJQU1JLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsZ0JBQWdCLEVBQUE7QU4yRWhCO01NeEVFLHVDREoyQztNQ0szQyxjREpvQixFQUFBO0FMMkV0QjtNTXhFRSx1Q0RxRDJDO01DcEQzQyxjRHFEb0IsRUFBQTtBTGtCdEI7TU14RUUsMENEOEc4QztNQzdHOUMsY0Q4R29CLEVBQUE7QUMxSDFCO01BZ0JNLGtCQUFrQjtNQUNsQixNQUFNO01BQ04sT0FBTyxFQUFBO0FOaUVUO0VNbkRNLGNEckJnQixFQUFBO0FMd0V0QjtFTW5ETSxjRG9DZ0IsRUFBQTtBTGV0QjtFTW5ETSxjRDZGZ0IsRUFBQTtBTDFDdEI7RU03Q1EseUJEM0JjLEVBQUE7QUx3RXRCO0VNN0NRLHlCRDhCYyxFQUFBO0FMZXRCO0VNN0NRLHlCRHVGYyxFQUFBO0FMMUN0QjtFTWhDRSx5QkR2QjJCO0VDd0IzQixjRDVDb0IsRUFBQTtBTDJFdEI7RU1oQ0UseUJEa0MyQjtFQ2pDM0IsY0Rhb0IsRUFBQTtBTGtCdEI7RU1oQ0UseUJEMkYyQjtFQzFGM0IsY0RzRW9CLEVBQUE7QUx2Q3RCO0VNckJFLHlCRGxDMkIsRUFBQTtBTHVEN0I7RU1yQkUseUJEdUIyQixFQUFBO0FMRjdCO0VNckJFLHlCRGdGMkIsRUFBQTtBQzNFakM7RUFHSSxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsc0JBQXNCLEVBQUE7QU5TdEI7SU1KSSxjRHJFc0IsRUFBQTtBTHlFMUI7SU1KSSxjRFpzQixFQUFBO0FMZ0IxQjtJTUpJLGNENkNzQixFQUFBO0FMekMxQjtJTUtNLHVDRGpEMkMsRUFBQTtBTDRDakQ7SU1LTSx1Q0RRMkMsRUFBQTtBTGJqRDtJTUtNLDBDRGlFOEMsRUFBQTtBTHRFcEQ7SU1XUSxjRHBGa0IsRUFBQTtBTHlFMUI7SU1XUSxjRDNCa0IsRUFBQTtBTGdCMUI7SU1XUSxjRDhCa0IsRUFBQTtBTHpDMUI7SU1rQlEseUJEMUZjLEVBQUE7QUx3RXRCO0lNa0JRLHlCRGpDYyxFQUFBO0FMZXRCO0lNa0JRLHlCRHdCYyxFQUFBO0FMMUN0QjtJTXdCVSxjRGhHWSxFQUFBO0FMd0V0QjtJTXdCVSxjRHZDWSxFQUFBO0FMZXRCO0lNd0JVLGNEa0JZLEVBQUE7QUNUMUI7RUFDRSxrQkFBa0IsRUFBQTtBTmxDaEI7RU9oRkEseUJGQTJDLEVBQUE7QUxnRjNDO0VPaEZBLHlCRnlEMkMsRUFBQTtBTHVCM0M7RU9oRkEsdUJGa0g4QyxFQUFBO0FMbEM5QztFT3RFTSxjRkxnQixFQUFBO0FMMkV0QjtFT3RFTSxjRm9EZ0IsRUFBQTtBTGtCdEI7RU90RU0sY0Y2R2dCLEVBQUE7QUx2Q3RCO0VPL0RNLGNGVGdCLEVBQUE7QUx3RXRCO0VPL0RNLGNGZ0RnQixFQUFBO0FMZXRCO0VPL0RNLGNGeUdnQixFQUFBO0FMMUN0QjtFT3JETSw2QkFBNkI7RUFDN0IsY0Z2QmdCLEVBQUE7QUwyRXRCO0VPckRNLDZCQUE2QjtFQUM3QixjRmtDZ0IsRUFBQTtBTGtCdEI7RU9yRE0sNkJBQTZCO0VBQzdCLGNGMkZnQixFQUFBO0FMdkN0QjtFTzlDUSx5QkYxQmMsRUFBQTtBTHdFdEI7RU85Q1EseUJGK0JjLEVBQUE7QUxldEI7RU85Q1EseUJGd0ZjLEVBQUE7QUwxQ3RCO0VPckNVLGNGcENnQixFQUFBO0FMeUUxQjtFT3JDVSxjRnFCZ0IsRUFBQTtBTGdCMUI7RU9yQ1UsY0Y4RWdCLEVBQUE7QUx6QzFCO0VPOUJVLHlCRjFDWSxFQUFBO0FMd0V0QjtFTzlCVSx5QkZlWSxFQUFBO0FMZXRCO0VPOUJVLHlCRndFWSxFQUFBO0FMMUN0QjtFT3ZCVSx5QkY3Q3dCO0VFOEN4QixjRnBEbUIsRUFBQTtBTDBFN0I7RU92QlUseUJGWXdCO0VFWHhCLGNGS21CLEVBQUE7QUxpQjdCO0VPdkJVLHlCRnFFd0I7RUVwRXhCLGNGOERtQixFQUFBO0FMeEM3QjtFT2JZLHlCRjFCdUIsRUFBQTtBTHVDbkM7RU9iWSx5QkYrQnVCLEVBQUE7QUxsQm5DO0VPYlkseUJGd0Z1QixFQUFBO0FMM0VuQztFT1BjLHlCRmpFUSxFQUFBO0FMd0V0QjtFT1BjLHlCRlJRLEVBQUE7QUxldEI7RU9QYyx5QkZpRFEsRUFBQTtBTDFDdEI7RU9FVSxjRjNFZ0IsRUFBQTtBTHlFMUI7RU9FVSxjRmxCZ0IsRUFBQTtBTGdCMUI7RU9FVSxjRnVDZ0IsRUFBQTtBTHpDMUI7RU9VUSx1Q0Y3RHFDO0VFOERyQyxjRjVEcUIsRUFBQTtBTGlEN0I7RU9VUSx1Q0ZKcUM7RUVLckMsY0ZIcUIsRUFBQTtBTFI3QjtFT1VRLHlCRnFEcUM7RUVwRHJDLGNGc0RxQixFQUFBO0FMakU3QjtFT21CWSxjRm5FcUIsRUFBQTtBTGdEakM7RU9tQlksY0ZWcUIsRUFBQTtBTFRqQztFT21CWSxjRitDcUIsRUFBQTtBTGxFakM7RU8wQlkseUJGdkU0QjtFRXdFNUIsY0YxRXNCLEVBQUE7QUwrQ2xDO0VPMEJZLHlCRmQ0QjtFRWU1QixjRmpCc0IsRUFBQTtBTFZsQztFTzBCWSx5QkYyQzRCO0VFMUM1QixjRndDc0IsRUFBQTtBTG5FbEM7RU9rQ1kseUJGaEZ5QjtFRWlGekIsY0Y5R1UsRUFBQTtBTDJFdEI7RU9rQ1kseUJGdkJ5QjtFRXdCekIsY0ZyRFUsRUFBQTtBTGtCdEI7RU9rQ1kseUJGa0N5QjtFRWpDekIsY0ZJVSxFQUFBO0FMdkN0QjtFTzBDWSxjRjFGcUIsRUFBQTtBTGdEakM7RU8wQ1ksY0ZqQ3FCLEVBQUE7QUxUakM7RU8wQ1ksY0Z3QnFCLEVBQUE7QUxsRWpDO0VPbURRLHVDRnJHMEMsRUFBQTtBTGtEbEQ7RU9tRFEsdUNGNUMwQyxFQUFBO0FMUGxEO0VPbURRLDBDRmE2QyxFQUFBO0FMaEVyRDtFTzRESSxvRUFBMkYsRUFBQTtBUDVEL0Y7RU80REksb0VBQTJGLEVBQUE7QVA1RC9GO0VPNERJLGtFQUEyRixFQUFBO0FQNUQvRjtFT29FRSxtQ0ZuSnlCLEVBQUE7QUwrRTNCO0VPb0VFLG1DRjFGeUIsRUFBQTtBTHNCM0I7RU9vRUUsbUNGakN5QixFQUFBO0FMbkMzQjtFTzRFTSxjRnZKZ0IsRUFBQTtBTDJFdEI7RU80RU0sY0Y5RmdCLEVBQUE7QUxrQnRCO0VPNEVNLGNGckNnQixFQUFBO0FMdkN0QjtFT2tGUSx5QkYxSmMsRUFBQTtBTHdFdEI7RU9rRlEseUJGakdjLEVBQUE7QUxldEI7RU9rRlEseUJGeENjLEVBQUE7QUwxQ3RCO0VPNEZRLGtEQUEwRDtFQUMxRCx5QkFBNkMsRUFBQTtBUDdGckQ7RU80RlEsa0RBQTBEO0VBQzFELHlCQUE2QyxFQUFBO0FQN0ZyRDtFTzRGUSxvQ0FBMEQ7RUFDMUQseUJBQTZDLEVBQUE7QVA3RnJEO0VPbUdVLG9DQUFtRSxFQUFBO0FQbkc3RTtFT21HVSxvQ0FBbUUsRUFBQTtBUG5HN0U7RU9tR1Usb0NBQW1FLEVBQUE7QUN0TGpGO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiwyQkFBMkI7RUFDM0IsY0FBYztFQUNkLGlCQUFpQixFQUFBO0FSOEVmO0lRNUVBLGNIRzBCLEVBQUE7QUx5RTFCO0lRNUVBLGNINEQwQixFQUFBO0FMZ0IxQjtJUTVFQSxjSHFIMEIsRUFBQTtBRzVIOUI7SUFXSSxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGdCQUFnQixFQUFBO0FBYnBCO01BZ0JNLGtCQUFrQjtNQUNsQixjQUFjO01BQ2QsbUJBQW1CO01BQ25CLG9CQUFvQixFQUFBO0FBbkIxQjtRQXNCUSxXQUFXO1FBQ1gsa0JBQWtCO1FBQ2xCLE1BQU07UUFDTixPQUFPO1FBQ1Asa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixjQUFjLEVBQUE7QVJ1RGxCO01RaERJLHlCSDdCaUIsRUFBQTtBTDZFckI7TVFoREkseUJINEJpQixFQUFBO0FMb0JyQjtNUWhESSx5QkhxRmlCLEVBQUE7QUxyQ3JCO01RekNJLHlCSHJDZ0IsRUFBQTtBTDhFcEI7TVF6Q0kseUJIb0JnQixFQUFBO0FMcUJwQjtNUXpDSSx5Qkg2RWdCLEVBQUE7QUd2SHhCO01BK0NNLGlCQUFpQixFQUFBO0FBL0N2QjtNQW1ETSxrQkFBa0I7TUFDbEIsU0FBUztNQUNULE9BQU87TUFDUCxjQUFjO01BQ2QsV0FBVyxFQUFBO0FBdkRqQjtRQTBEUSxhQUFhLEVBQUE7QUExRHJCO1VBNkRVLGNBQWMsRUFBQTtBUnNCcEI7WVFwQlEseUJIbkIyQixFQUFBO0FMdUNuQztZUXBCUSx5QkhzQzJCLEVBQUE7QUxsQm5DO1lRcEJRLHlCSCtGMkIsRUFBQTtBRzlKdkM7WUFrRVksWUFBWSxFQUFBO0FSaUJwQjtjUWZVLHlCSHZCNkIsRUFBQTtBTHNDdkM7Y1FmVSx5QkhrQzZCLEVBQUE7QUxuQnZDO2NRZlUseUJIMkY2QixFQUFBO0FMNUV2QztVUU5VLHlCSGpDeUIsRUFBQTtBTHVDbkM7VVFOVSx5Qkh3QnlCLEVBQUE7QUxsQm5DO1VRTlUseUJIaUZ5QixFQUFBO0FMM0VuQztVUUFZLHlCSHhFVSxFQUFBO0FMd0V0QjtVUUFZLHlCSGZVLEVBQUE7QUxldEI7VVFBWSx5QkgwQ1UsRUFBQTtBRzdIMUI7VUF5RlUsY0FBYztVQUNkLGlCQUFpQjtVQUNqQixtQkFBbUI7VUFDbkIsb0JBQW9CLEVBQUE7QUE1RjlCO1FBb0dRLDBDQUFrQztnQkFBbEMsa0NBQWtDO1FBQ2xDLCtsQ0FzQkc7UUFDSCwwQkFBMEI7UUFDMUIsWUFBWSxFQUFBO0FSMUNoQjtVUWVNLHlCSHJEaUMsRUFBQTtBTHNDdkM7VVFlTSx5QkhJaUMsRUFBQTtBTG5CdkM7VVFlTSx5Qkg2RGlDLEVBQUE7QUcvSjNDO0lBbUlJLGFBQWE7SUFDYixZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLGlCQUFpQixFQUFBO0FBdElyQjtNQXlJTSxjQUFjO01BQ2QsaUJBQWlCO01BQ2pCLG1CQUFtQjtNQUNuQixnQkFBZ0IsRUFBQTtBQTVJdEI7UUErSVEsaUJBQWlCLEVBQUE7QUEvSXpCO01Bb0pNLGNBQWM7TUFDZCx5QkFBeUI7TUFDekIsYUFBYTtNQUNiLGNBQWMsRUFBQTtBQXZKcEI7UUEwSlEsZ0RBQXFEO2dCQUFyRCx3Q0FBcUQsRUFBQTtBQTFKN0Q7UUE4SlEsOENBQW1EO2dCQUFuRCxzQ0FBbUQsRUFBQTtBUjNFdkQ7TVFrRkksY0gxSmtCLEVBQUE7QUx3RXRCO01Ra0ZJLGNIakdrQixFQUFBO0FMZXRCO01Ra0ZJLGNIeENrQixFQUFBO0FMMUN0QjtNUXlGSSxjSC9Kb0IsRUFBQTtBTHNFeEI7TVF5RkksY0h0R29CLEVBQUE7QUxheEI7TVF5RkksY0g3Q29CLEVBQUE7QUw1Q3hCO01RZ0dJLGNIcktpQixFQUFBO0FMcUVyQjtNUWdHSSxjSDVHaUIsRUFBQTtBTFlyQjtNUWdHSSxjSG5EaUIsRUFBQTtBTDdDckI7TVF1R0ksY0g3S29CLEVBQUE7QUxzRXhCO01RdUdJLGNIcEhvQixFQUFBO0FMYXhCO01RdUdJLGNIM0RvQixFQUFBO0FMNUN4QjtNUWdITSx5Qkh4TGdCLEVBQUE7QUx3RXRCO01RZ0hNLHlCSC9IZ0IsRUFBQTtBTGV0QjtNUWdITSx5Qkh0RWdCLEVBQUE7QUwxQ3RCO01RdUhNLHlCSDdMa0IsRUFBQTtBTHNFeEI7TVF1SE0seUJIcElrQixFQUFBO0FMYXhCO01RdUhNLHlCSDNFa0IsRUFBQTtBTDVDeEI7TVE4SE0seUJIbk1lLEVBQUE7QUxxRXJCO01ROEhNLHlCSDFJZSxFQUFBO0FMWXJCO01ROEhNLHlCSGpGZSxFQUFBO0FMN0NyQjtNUXFJTSx5QkgzTWtCLEVBQUE7QUxzRXhCO01RcUlNLHlCSGxKa0IsRUFBQTtBTGF4QjtNUXFJTSx5Qkh6RmtCLEVBQUE7QUdpRzVCO0VBQ0U7SUFDRSwrQkFBK0IsRUFBQTtFQUVqQztJQUNFLDhCQUE4QixFQUFBLEVBQUE7QUFMbEM7RUFDRTtJQUNFLCtCQUErQixFQUFBO0VBRWpDO0lBQ0UsOEJBQThCLEVBQUEsRUFBQTtBUmxKOUI7RVNoRkEsY0pLc0IsRUFBQTtBTDJFdEI7RVNoRkEsY0o4RHNCLEVBQUE7QUxrQnRCO0VTaEZBLGNKdUhzQixFQUFBO0FMdkN0QjtFU3hFSSxjSkhrQixFQUFBO0FMMkV0QjtFU3hFSSxjSnNEa0IsRUFBQTtBTGtCdEI7RVN4RUksY0orR2tCLEVBQUE7QUx2Q3RCO0VTbEVNLHlCSk5nQixFQUFBO0FMd0V0QjtFU2xFTSx5QkptRGdCLEVBQUE7QUxldEI7RVNsRU0seUJKNEdnQixFQUFBO0FJN0gxQjtFQXFCUSx3Q0FBd0MsRUFBQTtBVDhENUM7SVMzRFEseUJKV3lCLEVBQUE7QUxnRGpDO0lTM0RRLHlCSm9FeUIsRUFBQTtBTFRqQztJUzNEUSx5Qko2SHlCLEVBQUE7QUxsRWpDO0VTaERNLHlCSnhCZ0IsRUFBQTtBTHdFdEI7RVNoRE0seUJKaUNnQixFQUFBO0FMZXRCO0VTaERNLHlCSjBGZ0IsRUFBQTtBTDFDdEI7RVN2Q0UsY0pqQ29CLEVBQUE7QUx3RXRCO0VTdkNFLGNKd0JvQixFQUFBO0FMZXRCO0VTdkNFLGNKaUZvQixFQUFBO0FMMUN0QjtFU2pDSSx5Qkp2Q2tCLEVBQUE7QUx3RXRCO0VTakNJLHlCSmtCa0IsRUFBQTtBTGV0QjtFU2pDSSx5QkoyRWtCLEVBQUE7QUwxQ3RCO0VTckJNLHVDSnZCMkMsRUFBQTtBTDRDakQ7RVNyQk0sdUNKa0MyQyxFQUFBO0FMYmpEO0VTckJNLDBDSjJGOEMsRUFBQTtBTHRFcEQ7RVNmUSx5Qkp6RGMsRUFBQTtBTHdFdEI7RVNmUSx5QkpBYyxFQUFBO0FMZXRCO0VTZlEseUJKeURjLEVBQUE7QUwxQ3RCO0VTUlEseUJKckNnQztFSXNDaEMsY0p4QzBCLEVBQUE7QUwrQ2xDO0VTUlEseUJKb0JnQztFSW5CaEMsY0ppQjBCLEVBQUE7QUxWbEM7RVNSUSx5Qko2RWdDO0VJNUVoQyxjSjBFMEIsRUFBQTtBTG5FbEM7RVNBUSx1Q0o1RXFDLEVBQUE7QUw0RTdDO0VTQVEsdUNKbkJxQyxFQUFBO0FMbUI3QztFU0FRLDBDSnNDd0MsRUFBQTtBTHRDaEQ7RVNPUSx1Q0psRHNDLEVBQUE7QUwyQzlDO0VTT1EsdUNKT3NDLEVBQUE7QUxkOUM7RVNPUSx5QkpnRXdCLEVBQUE7QUx2RWhDO0VTZ0JJLHVDSjVGeUMsRUFBQTtBTDRFN0M7RVNnQkksdUNKbkN5QyxFQUFBO0FMbUI3QztFU2dCSSwwQ0pzQjRDLEVBQUE7QUx0Q2hEO0VTdUJJLHVDSm5HeUMsRUFBQTtBTDRFN0M7RVN1QkksdUNKMUN5QyxFQUFBO0FMbUI3QztFU3VCSSwwQ0plNEMsRUFBQTtBTHRDaEQ7RVM2Qk0sZ0NKckYrQixFQUFBO0FMd0RyQztFUzZCTSxnQ0o1QitCLEVBQUE7QUxEckM7RVM2Qk0sZ0NKNkIrQixFQUFBO0FMMURyQztFU2tDUSx5QkoxRjZCO0VJMkY3QixjSjlHYyxFQUFBO0FMMkV0QjtFU2tDUSx5QkpqQzZCO0VJa0M3QixjSnJEYyxFQUFBO0FMa0J0QjtFU2tDUSx5Qkp3QjZCO0VJdkI3QixjSkljLEVBQUE7QUx2Q3RCO0VTd0NVLHlCSmxGbUI7RUltRm5CLGNKcEhZLEVBQUE7QUwyRXRCO0VTd0NVLHlCSnpCbUI7RUkwQm5CLGNKM0RZLEVBQUE7QUxrQnRCO0VTd0NVLHlCSmdDbUI7RUkvQm5CLGNKRlksRUFBQTtBTHZDdEI7RVMrQ1UseUJKMUVRO0VJMkVSLGNKM0hZLEVBQUE7QUwyRXRCO0VTK0NVLHlCSmpCUTtFSWtCUixjSmxFWSxFQUFBO0FMa0J0QjtFUytDVSx5Qkp3Q1E7RUl2Q1IsY0pUWSxFQUFBO0FMdkN0QjtFU2dFSSxjSjNJa0IsRUFBQTtBTDJFdEI7RVNnRUksY0psRmtCLEVBQUE7QUxrQnRCO0VTZ0VJLGNKekJrQixFQUFBO0FMdkN0QjtFU3NFTSx5Qko5SWdCLEVBQUE7QUx3RXRCO0VTc0VNLHlCSnJGZ0IsRUFBQTtBTGV0QjtFU3NFTSx5Qko1QmdCLEVBQUE7QUwxQ3RCO0VTOEVJLDRCSnRJaUMsRUFBQTtBTHdEckM7RVM4RUksNEJKN0VpQyxFQUFBO0FMRHJDO0VTOEVJLDRCSnBCaUMsRUFBQTtBTDFEckM7RVN5RkUseUJKaktvQixFQUFBO0FMd0V0QjtFU3lGRSx5Qkp4R29CLEVBQUE7QUxldEI7RVN5RkUseUJKL0NvQixFQUFBO0FMMUN0QjtFU3lHUSxjSmxMa0IsRUFBQTtBTHlFMUI7RVN5R1EsY0p6SGtCLEVBQUE7QUxnQjFCO0VTeUdRLGNKaEVrQixFQUFBO0FMekMxQjtFU2dIUSx5QkoxSnFCLEVBQUE7QUwwQzdCO0VTZ0hRLHlCSmpHcUIsRUFBQTtBTGY3QjtFU2dIUSx5Qkp4Q3FCLEVBQUE7QUx4RTdCO0VTdUhRLHlCSmpLcUIsRUFBQTtBTDBDN0I7RVN1SFEseUJKeEdxQixFQUFBO0FMZjdCO0VTdUhRLHlCSi9DcUIsRUFBQTtBTHhFN0I7RVM4SFEsNkJBQTZCLEVBQUE7QVQ5SHJDO0VTOEhRLDZCQUE2QixFQUFBO0FUOUhyQztFUzhIUSw2QkFBNkIsRUFBQTtBVDlIckM7RVNxSVEsNkJBQTZCLEVBQUE7QVRySXJDO0VTcUlRLDZCQUE2QixFQUFBO0FUcklyQztFU3FJUSw2QkFBNkIsRUFBQTtBVHJJckM7RVM4SVUseUJKckx5QixFQUFBO0FMdUNuQztFUzhJVSx5Qko1SHlCLEVBQUE7QUxsQm5DO0VTOElVLHlCSm5FeUIsRUFBQTtBTDNFbkM7RVNvSlkseUJKMUwyQixFQUFBO0FMc0N2QztFU29KWSx5QkpqSTJCLEVBQUE7QUxuQnZDO0VTb0pZLHlCSnhFMkIsRUFBQTtBTDVFdkM7RVM2SlEseUJKbk9nQixFQUFBO0FMc0V4QjtFUzZKUSx5QkoxS2dCLEVBQUE7QUxheEI7RVM2SlEseUJKakhnQixFQUFBO0FMNUN4QjtFU29LUSx5Qko1T2MsRUFBQTtBTHdFdEI7RVNvS1EseUJKbkxjLEVBQUE7QUxldEI7RVNvS1EseUJKMUhjLEVBQUE7QUwxQ3RCO0VTNktVLHlCSmxQVyxFQUFBO0FMcUVyQjtFUzZLVSx5Qkp6TFcsRUFBQTtBTFlyQjtFUzZLVSx5QkpoSVcsRUFBQTtBTDdDckI7RVN1TFUseUJKOVBhLEVBQUE7QUx1RXZCO0VTdUxVLHlCSnJNYSxFQUFBO0FMY3ZCO0VTdUxVLHlCSjVJYSxFQUFBO0FMM0N2QjtFUzJNUSx5QkpoUmEsRUFBQTtBTHFFckI7RVMyTVEseUJKdk5hLEVBQUE7QUxZckI7RVMyTVEseUJKOUphLEVBQUE7QUw3Q3JCO0VTa05RLHlCSjFSYyxFQUFBO0FMd0V0QjtFU2tOUSx5QkpqT2MsRUFBQTtBTGV0QjtFU2tOUSx5Qkp4S2MsRUFBQTtBTDFDdEI7RVNpT0ksY0o1U2tCLEVBQUE7QUwyRXRCO0VTaU9JLGNKblBrQixFQUFBO0FMa0J0QjtFU2lPSSxjSjFMa0IsRUFBQTtBTHZDdEI7RVN1T00seUJKL1NnQixFQUFBO0FMd0V0QjtFU3VPTSx5Qkp0UGdCLEVBQUE7QUxldEI7RVN1T00seUJKN0xnQixFQUFBO0FMMUN0QjtFUytPSSxjSnZUa0IsRUFBQTtBTHdFdEI7RVMrT0ksY0o5UGtCLEVBQUE7QUxldEI7RVMrT0ksY0pyTWtCLEVBQUE7QUwxQ3RCO0VTc1BJLDRCSjlTaUMsRUFBQTtBTHdEckM7RVNzUEksNEJKclBpQyxFQUFBO0FMRHJDO0VTc1BJLDRCSjVMaUMsRUFBQTtBTDFEckM7RVNnUUkseUJKdlMrQixFQUFBO0FMdUNuQztFU2dRSSx5Qko5TytCLEVBQUE7QUxsQm5DO0VTZ1FJLHlCSnJMK0IsRUFBQTtBTDNFbkM7RVNzUU0seUJKNVNpQyxFQUFBO0FMc0N2QztFU3NRTSx5QkpuUGlDLEVBQUE7QUxuQnZDO0VTc1FNLHlCSjFMaUMsRUFBQTtBSWlNM0M7RVQvVkUsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtFQUN2QixtQkFBbUIsRUFBQTtBQWdGakI7RVM4UlUseUJKbldXLEVBQUE7QUxxRXJCO0VTOFJVLHlCSjFTVyxFQUFBO0FMWXJCO0VTOFJVLHlCSmpQVyxFQUFBO0FMN0NyQjtFUzhTSSxjSnRYa0IsRUFBQTtBTHdFdEI7RVM4U0ksY0o3VGtCLEVBQUE7QUxldEI7RVM4U0ksY0pwUWtCLEVBQUE7QUwxQ3RCO0VTNFRRLGNKcllrQixFQUFBO0FMeUUxQjtFUzRUUSxjSjVVa0IsRUFBQTtBTGdCMUI7RVM0VFEsY0puUmtCLEVBQUE7QUx6QzFCO0VTbVVRLHlCSjVXeUIsRUFBQTtBTHlDakM7RVNtVVEseUJKblR5QixFQUFBO0FMaEJqQztFU21VUSxzQkoxUHNCLEVBQUE7QUk4TmxDO0VUalRFLFdBRDBEO0VBRTFELGNBRjRCO0VBRzVCLGtCQUg0QztFU29WbEMsTUFBTTtFQUNOLGFBQWE7RUFDYixnQ0FBZ0MsRUFBQTtBVDNVeEM7SVM4VVUseUJKdlh1QixFQUFBO0FMeUNqQztJUzhVVSx5Qko5VHVCLEVBQUE7QUxoQmpDO0lTOFVVLHNCSnJRb0IsRUFBQTtBTHpFOUI7RVNzVlEseUJKOVg0QixFQUFBO0FMd0NwQztFU3NWUSx5QkpyVTRCLEVBQUE7QUxqQnBDO0VTc1ZRLHlCSjVRNEIsRUFBQTtBSTZOeEM7RVRqVEUsV0FEMEQ7RUFFMUQsY0FGNEI7RUFHNUIsa0JBSDRDO0VTdVdsQyxjQUFjO0VBQ2QsTUFBTTtFQUNOLGdDQUFnQyxFQUFBO0FUOVZ4QztJU2lXVSx5Qkp6WTBCLEVBQUE7QUx3Q3BDO0lTaVdVLHlCSmhWMEIsRUFBQTtBTGpCcEM7SVNpV1UseUJKdlIwQixFQUFBO0FMMUVwQztFU21YTSxjSjVib0IsRUFBQTtBTHlFMUI7RVNtWE0sY0puWW9CLEVBQUE7QUxnQjFCO0VTbVhNLGNKMVVvQixFQUFBO0FMekMxQjtFUzBYTSxjSnJjZ0IsRUFBQTtBTDJFdEI7RVMwWE0sY0o1WWdCLEVBQUE7QUxrQnRCO0VTMFhNLGNKblZnQixFQUFBO0FJbVUxQjtFQXNCTSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1osaUJBQWlCLEVBQUE7QVRwWW5CO0VTNllJLGNKdGRzQixFQUFBO0FMeUUxQjtFUzZZSSxjSjdac0IsRUFBQTtBTGdCMUI7RVM2WUksY0pwV3NCLEVBQUE7QUx6QzFCO0VTc1pNLGNKamVnQjtFSWtlaEIseUJKNWI4QixFQUFBO0FMcUNwQztFU3NaTSxjSnhhZ0I7RUl5YWhCLHlCSm5ZOEIsRUFBQTtBTHBCcEM7RVNzWk0sY0ovV2dCO0VJZ1hoQix5QkoxVThCLEVBQUE7QUw3RXBDO0VTNlpRLHlCSmpjdUIsRUFBQTtBTG9DL0I7RVM2WlEseUJKeFl1QixFQUFBO0FMckIvQjtFUzZaUSx5QkovVXVCLEVBQUE7QUl1Vm5DO0VBQ0Usa0JBQWtCLEVBQUE7QUFEcEI7SUFJSSxrQkFBa0I7SUFDbEIsV0FBVztJQUNYLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsV0FBVyxFQUFBO0FUN2FYO01TZ2JFLHlCSnZlMkI7TUl3ZTNCLGNKNWZvQixFQUFBO0FMMkV0QjtNU2diRSx5Qko5YTJCO01JK2EzQixjSm5jb0IsRUFBQTtBTGtCdEI7TVNnYkUseUJKclgyQjtNSXNYM0IsY0oxWW9CLEVBQUE7QUk4WDFCO01BZ0JNLGlCQUFpQjtNQUNqQixhQUFhLEVBQUE7QVR0YmY7UVMwYk0sdUNKaGZpQyxFQUFBO0FMc0R2QztRUzBiTSx1Q0p2YmlDLEVBQUE7QUxIdkM7UVMwYk0sMENKOVhvQyxFQUFBO0FLL0k5Qzs7RUFFRSxjQUFjO0VBQ2QsYUFBYTtFQUNiLGdCQUFnQixFQUFBO0FBSmxCOztJQU9JLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsZ0JBQWdCLEVBQUE7QVYwRWhCOztNVXZFRSx1Q0xMMkM7TUtNM0MsY0xMb0IsRUFBQTtBTDJFdEI7O01VdkVFLHVDTG9EMkM7TUtuRDNDLGNMb0RvQixFQUFBO0FMa0J0Qjs7TVV2RUUsMENMNkc4QztNSzVHOUMsY0w2R29CLEVBQUE7QUsxSDFCOztNQWlCTSxrQkFBa0I7TUFDbEIsTUFBTTtNQUNOLE9BQU8sRUFBQTtBVmdFVDtFVXBETSxjTHBCZ0IsRUFBQTtBTHdFdEI7RVVwRE0sY0xxQ2dCLEVBQUE7QUxldEI7RVVwRE0sY0w4RmdCLEVBQUE7QUwxQ3RCO0VVM0NNLHlCTDdCZ0IsRUFBQTtBTHdFdEI7RVUz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QUFrQixFQUFBO0FBdEQ1QjtVQTBEVSxtQkFBbUIsRUFBQTtBQ3JDN0I7RUFDRSxxQkFBcUI7RUFDckIsOEJBQThDO0VBQzlDLGdCQUFnQixFQUFBO0FBR2xCO0VBQ0UscUJBQXFCO0VBQ3JCLGdDQUFnRDtFQUNoRCxnQkFBZ0IsRUFBQTtBQUdsQjtFQUNFLHFCQUFxQjtFQUNyQixpQ0FBaUQ7RUFDakQsZ0JBQWdCLEVBQUE7QUFHbEI7RUFDRSxxQkFBcUI7RUFDckIsNkJBQTZDO0VBQzdDLGdCQUFnQixFQUFBO0FBR2xCO0VBQ0UscUJBQXFCO0VBQ3JCLGtDQUFrRDtFQUNsRCxnQkFBZ0IsRUFBQTtBQUlsQjtFQUNFLGlDQUFpQztFQUNqQyxlQUFlLEVBQUE7QUFHakI7RUFDRSxpQ0FBaUM7RUFDakMsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixhQUFhLEVBQUE7QUFKZjtJQU9JLCtEQUE2RTtJQUM3RSxzQkFBc0IsRUFBQTtBQVIxQjtJQVlJLCtEQUE2RTtJQUM3RSxzQkFBc0IsRUFBQTtBQWIxQjtJQWlCSSxnRUFBOEU7SUFDOUUsc0JBQXNCLEVBQUE7QUFsQjFCO0lBc0JJLGFBQWE7SUFDYixXQUFXO0lBQ1gsWUFBWSxFQUFBO0FBSWhCO0VBS00sc0RBQXlEO1VBQXpELDhDQUF5RCxFQUFBIiwiZmlsZSI6InNyYy9zdHlsZXMuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBtaXhpbiB0ZXh0LXRydW5jYXRlIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuQG1peGluIHRleHRXcmFwIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICBsaW5lLWJyZWFrOiBzdHJpY3Q7XHJcbiAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xyXG4gIC1tcy1oeXBoZW5zOiBhdXRvO1xyXG4gIGh5cGhlbnM6IGF1dG87XHJcbn1cclxuQG1peGluIGNvdmVyQm94IHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG59XHJcbkBtaXhpbiBhYnMgKCR0b3A6IGF1dG8sICRyaWdodDogYXV0bywgJGJvdHRvbTogYXV0bywgJGxlZnQ6IGF1dG8pIHtcclxuICB0b3A6ICR0b3A7XHJcbiAgcmlnaHQ6ICRyaWdodDtcclxuICBib3R0b206ICRib3R0b207XHJcbiAgbGVmdDogJGxlZnQ7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcbkBtaXhpbiBjb3ZlckltZyB7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHQtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0LW8tYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbn1cclxuQG1peGluIHZhbGluZ0JveCB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogIDUwJTtcclxuXHRsZWZ0OiA1MCU7XHJcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbn1cclxuQG1peGluIHVuU2VsZWN0IHtcclxuXHQtd2Via2l0LXRvdWNoLWNvbGxvdXQ6IG5vbmU7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbn1cclxuQG1peGluIG1heDExOTkgeyAvLyBtYWtldCAxMTcxXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkgeyBAY29udGVudDsgfVxyXG59XHJcbkBtaXhpbiBtYXgxMTcwIHsgLy8gbWFrZXRzIDk5MlxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMTcwcHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbWF4OTkxIHsgLy8gbWFrZXRzIDc2MlxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkgeyBAY29udGVudDsgfVxyXG59XHJcbkBtaXhpbiBtYXg3NjEgeyAvLyBtYWtldHMgNTc2XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2MXB4KSB7IEBjb250ZW50OyB9XHJcbn1cclxuQG1peGluIG1heDU3NSB7IC8vIG1ha2V0cyA0MDBcclxuICBAbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbW9iaWxlIHtcclxuICBAbWVkaWEgKG1heC13aWR0aDogMzk5cHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gaWNvQ2VudGVyIHtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xyXG59XHJcbkBtaXhpbiBwc2V1ZG8gKCRkaXNwbGF5OiBibG9jaywgJHBvczogYWJzb2x1dGUsICRjb250ZW50OiAnJyl7XHJcbiAgY29udGVudDogJGNvbnRlbnQ7XHJcbiAgZGlzcGxheTogJGRpc3BsYXk7XHJcbiAgcG9zaXRpb246ICRwb3M7XHJcbn1cclxuXHJcbi8qXHJcbiogSW1wbGVtZW50YXRpb24gb2YgdGhlbWVzXHJcbiovXHJcbkBtaXhpbiB0aGVtaWZ5KCR0aGVtZXM6ICR0aGVtZXMpIHtcclxuICBAZWFjaCAkdGhlbWUsICRtYXAgaW4gJHRoZW1lcyB7XHJcbiAgICAudGhlbWUtI3skdGhlbWV9ICYge1xyXG4gICAgICAkdGhlbWUtbWFwOiAoKSAhZ2xvYmFsO1xyXG4gICAgICBAZWFjaCAka2V5LCAkc3VibWFwIGluICRtYXAge1xyXG4gICAgICAgICR2YWx1ZTogbWFwLWdldChtYXAtZ2V0KCR0aGVtZXMsICR0aGVtZSksICcjeyRrZXl9Jyk7XHJcbiAgICAgICAgJHRoZW1lLW1hcDogbWFwLW1lcmdlKCR0aGVtZS1tYXAsICgka2V5OiAkdmFsdWUpKSAhZ2xvYmFsO1xyXG4gICAgICB9XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgICAkdGhlbWUtbWFwOiBudWxsICFnbG9iYWw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AZnVuY3Rpb24gdGhlbWVkKCRrZXkpIHtcclxuICBAcmV0dXJuIG1hcC1nZXQoJHRoZW1lLW1hcCwgJGtleSk7XHJcbn1cclxuIiwiLypcclxuKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGVtZXNcclxuKi9cbkBpbXBvcnQgdXJsKH5Abmctc2VsZWN0L25nLXNlbGVjdC90aGVtZXMvZGVmYXVsdC50aGVtZS5jc3MpO1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBpbmhlcml0O1xuICAtbW96LWJveC1zaXppbmc6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgLXdlYmtpdC10b3VjaC1jb2xsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbmIsIHUsIGksIGNlbnRlcixcbmRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG5maWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsXG5maWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsXG5tZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcbnRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250OiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSxcbmZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbmJvZHkge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbm9sLCB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuYmxvY2txdW90ZSwgcSB7XG4gIHF1b3Rlczogbm9uZTsgfVxuXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlcixcbnE6YmVmb3JlLCBxOmFmdGVyIHtcbiAgY29udGVudDogbm9uZTsgfVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwOyB9XG5cbmlucHV0IHtcbiAgb3V0bGluZTogbm9uZTsgfVxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDEwMDBweCB3aGl0ZSBpbnNldDsgfVxuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICBhOmFjdGl2ZSwgYTpob3ZlciwgYTpmb2N1cyB7XG4gICAgb3V0bGluZTogMDsgfVxuXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbmIsIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuaW1nIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBib3JkZXI6IDA7IH1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4udGhlbWUtZGFyayAuYXBwLWNvbnRlbnQgLnByZWxvYWRlciAubG9hZGluZy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkOyB9XG5cbi50aGVtZS1ncmF5IC5hcHAtY29udGVudCAucHJlbG9hZGVyIC5sb2FkaW5nLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0N2NmOGQ7IH1cblxuLnRoZW1lLXdoaXRlIC5hcHAtY29udGVudCAucHJlbG9hZGVyIC5sb2FkaW5nLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NmMxNzI7IH1cblxuYnV0dG9uIHtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LWZhbWlseTogT3BlblNhbnMsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBvdXRsaW5lOiBub25lO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGhlaWdodDogNC4ycmVtOyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbjpkaXNhYmxlZDpub3QoLnRyYW5zcGFyZW50LWJ1dHRvbiksIC50aGVtZS1kYXJrIGJ1dHRvbi5ibHVlLWJ1dHRvbl9yZXNldCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzljYWRiNztcbiAgICBjb2xvcjogIzExMTkyMTsgfVxuICAudGhlbWUtZ3JheSBidXR0b246ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pLCAudGhlbWUtZ3JheSBidXR0b24uYmx1ZS1idXR0b25fcmVzZXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3OTg0OGY7XG4gICAgY29sb3I6ICMxYTFhMWE7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbjpkaXNhYmxlZDpub3QoLnRyYW5zcGFyZW50LWJ1dHRvbiksIC50aGVtZS13aGl0ZSBidXR0b24uYmx1ZS1idXR0b25fcmVzZXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MGE0YWU7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uOmRpc2FibGVkOm5vdCgudHJhbnNwYXJlbnQtYnV0dG9uKTpob3ZlciwgLnRoZW1lLWRhcmsgYnV0dG9uLmJsdWUtYnV0dG9uX3Jlc2V0OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjdkMWUwOyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbjpkaXNhYmxlZDpub3QoLnRyYW5zcGFyZW50LWJ1dHRvbik6aG92ZXIsIC50aGVtZS1ncmF5IGJ1dHRvbi5ibHVlLWJ1dHRvbl9yZXNldDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ExYWViYjsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uOmRpc2FibGVkOm5vdCgudHJhbnNwYXJlbnQtYnV0dG9uKTpob3ZlciwgLnRoZW1lLXdoaXRlIGJ1dHRvbi5ibHVlLWJ1dHRvbl9yZXNldDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2FlYmVjNjsgfVxuICAudGhlbWUtZGFyayBidXR0b246ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pOmZvY3VzLCAudGhlbWUtZGFyayBidXR0b24uYmx1ZS1idXR0b25fcmVzZXQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhN2I5YzI7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uOmRpc2FibGVkOm5vdCgudHJhbnNwYXJlbnQtYnV0dG9uKTpmb2N1cywgLnRoZW1lLWdyYXkgYnV0dG9uLmJsdWUtYnV0dG9uX3Jlc2V0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE5NTlmOyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b246ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pOmZvY3VzLCAudGhlbWUtd2hpdGUgYnV0dG9uLmJsdWUtYnV0dG9uX3Jlc2V0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdiOWMyOyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjtcbiAgICBjb2xvcjogIzExMTkyMTsgfVxuICAudGhlbWUtZ3JheSBidXR0b24uYmx1ZS1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7XG4gICAgY29sb3I6ICMxYTFhMWE7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAudGhlbWUtZGFyayBidXR0b24uYmx1ZS1idXR0b246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM4MmQ3ZmY7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uLmJsdWUtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODZkNmZmOyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b24uYmx1ZS1idXR0b246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2IzZmY7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uLmJsdWUtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTliNWZkOyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzVmYjZmYzsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uLmJsdWUtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc5ZmZhOyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbi5ncmVlbi1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2RhOWQ7XG4gICAgY29sb3I6ICMxMTE5MjE7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ3Y2Y4ZDtcbiAgICBjb2xvcjogIzFhMWExYTsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAudGhlbWUtZGFyayBidXR0b24uZ3JlZW4tYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGRmY2M2OyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbi5ncmVlbi1idXR0b246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3YmY2YzY7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbi5ncmVlbi1idXR0b246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1YWQ1ODY7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzYyZTBiMjsgfVxuICAudGhlbWUtZ3JheSBidXR0b24uZ3JlZW4tYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYzllOyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b24uZ3JlZW4tYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTNjNzdjOyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbi50dXJxdW9pc2UtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRkMGUxO1xuICAgIGNvbG9yOiAjMTExOTIxOyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbi50dXJxdW9pc2UtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2VjNWQ3O1xuICAgIGNvbG9yOiAjMWExYTFhOyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b24udHVycXVvaXNlLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI2YjZjNztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAudGhlbWUtZGFyayBidXR0b24udHVycXVvaXNlLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzg3ZjRmNTsgfVxuICAudGhlbWUtZ3JheSBidXR0b24udHVycXVvaXNlLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzcyZWRmZTsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1MmNiZDk7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCk6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmQ1ZTg7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCk6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1MGQwZTE7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbi50dXJxdW9pc2UtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzFiZWNmOyB9XG4gIGJ1dHRvbi50cmFuc3BhcmVudC1idXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC50aGVtZS1kYXJrIGJ1dHRvbi50cmFuc3BhcmVudC1idXR0b24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDAuMnJlbSBzb2xpZCAjMmIzNjQ0O1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtZ3JheSBidXR0b24udHJhbnNwYXJlbnQtYnV0dG9uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAwLjJyZW0gc29saWQgIzJmMzQzODtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLXdoaXRlIGJ1dHRvbi50cmFuc3BhcmVudC1idXR0b24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDAuMnJlbSBzb2xpZCAjZWJlYmViO1xuICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICBidXR0b24udHJhbnNwYXJlbnQtYnV0dG9uIC5pY29uIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9jb21wbGV0ZS10ZXN0d2FsbGV0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxLjdyZW07XG4gICAgICBoZWlnaHQ6IDEuN3JlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgYnV0dG9uLnRyYW5zcGFyZW50LWJ1dHRvbiAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7IH1cbiAgICAgIC50aGVtZS1ncmF5IGJ1dHRvbi50cmFuc3BhcmVudC1idXR0b24gLmljb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtd2hpdGUgYnV0dG9uLnRyYW5zcGFyZW50LWJ1dHRvbiAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MzQ1NGI7IH1cblxuLmlucHV0LWJsb2NrIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbi1ib3R0b206IDAuNHJlbTsgfVxuICAuaW5wdXQtYmxvY2sgLndyYXAtbGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgbWluLWhlaWdodDogMi40cmVtOyB9XG4gIC5pbnB1dC1ibG9jayBsYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuNHJlbTsgfVxuICAgIC50aGVtZS1kYXJrIC5pbnB1dC1ibG9jayBsYWJlbCB7XG4gICAgICBjb2xvcjogIzU1NjU3NjsgfVxuICAgIC50aGVtZS1ncmF5IC5pbnB1dC1ibG9jayBsYWJlbCB7XG4gICAgICBjb2xvcjogIzU2NWM2MjsgfVxuICAgIC50aGVtZS13aGl0ZSAuaW5wdXQtYmxvY2sgbGFiZWwge1xuICAgICAgY29sb3I6ICNhMGE1YWI7IH1cbiAgLmlucHV0LWJsb2NrIGlucHV0W3R5cGU9J3RleHQnXSwgLmlucHV0LWJsb2NrIGlucHV0W3R5cGU9J3Bhc3N3b3JkJ10sIC5pbnB1dC1ibG9jayBzZWxlY3Qge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQuMnJlbTsgfVxuICAgIC50aGVtZS1kYXJrIC5pbnB1dC1ibG9jayBpbnB1dFt0eXBlPSd0ZXh0J10sIC50aGVtZS1kYXJrIC5pbnB1dC1ibG9jayBpbnB1dFt0eXBlPSdwYXNzd29yZCddLCAudGhlbWUtZGFyayAuaW5wdXQtYmxvY2sgc2VsZWN0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzFlMjc7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS1ncmF5IC5pbnB1dC1ibG9jayBpbnB1dFt0eXBlPSd0ZXh0J10sIC50aGVtZS1ncmF5IC5pbnB1dC1ibG9jayBpbnB1dFt0eXBlPSdwYXNzd29yZCddLCAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2sgc2VsZWN0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS13aGl0ZSAuaW5wdXQtYmxvY2sgaW5wdXRbdHlwZT0ndGV4dCddLCAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrIGlucHV0W3R5cGU9J3Bhc3N3b3JkJ10sIC50aGVtZS13aGl0ZSAuaW5wdXQtYmxvY2sgc2VsZWN0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAuaW5wdXQtYmxvY2sudGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5pbnB1dC1ibG9jay50ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgICBmb250LWZhbWlseTogT3BlblNhbnMsIHNhbnMtc2VyaWY7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiA3LjVyZW07XG4gICAgICBtYXgtaGVpZ2h0OiA3LjVyZW07XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgIHJlc2l6ZTogbm9uZTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLmlucHV0LWJsb2NrLnRleHRhcmVhIHRleHRhcmVhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE3MWUyNztcbiAgICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAgIC50aGVtZS1ncmF5IC5pbnB1dC1ibG9jay50ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrLnRleHRhcmVhIHRleHRhcmVhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgLmlucHV0LWJsb2NrIC5lcnJvci1ibG9jayB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjRyZW07XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAudGhlbWUtZGFyayAuaW5wdXQtYmxvY2sgLmVycm9yLWJsb2NrIHtcbiAgICAgIGNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLWdyYXkgLmlucHV0LWJsb2NrIC5lcnJvci1ibG9jayB7XG4gICAgICBjb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS13aGl0ZSAuaW5wdXQtYmxvY2sgLmVycm9yLWJsb2NrIHtcbiAgICAgIGNvbG9yOiAjZmY1MjUyOyB9XG4gIC5pbnB1dC1ibG9jayAuc3VjY2Vzcy1ibG9jayB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjRyZW07XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAudGhlbWUtZGFyayAuaW5wdXQtYmxvY2sgLnN1Y2Nlc3MtYmxvY2sge1xuICAgICAgY29sb3I6ICM1Y2RhOWQ7IH1cbiAgICAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2sgLnN1Y2Nlc3MtYmxvY2sge1xuICAgICAgY29sb3I6ICM0N2NmOGQ7IH1cbiAgICAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrIC5zdWNjZXNzLWJsb2NrIHtcbiAgICAgIGNvbG9yOiAjNDZjMTcyOyB9XG5cbi50aGVtZS1kYXJrIC5lcnJvci10ZXh0IHtcbiAgY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLWdyYXkgLmVycm9yLXRleHQge1xuICBjb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtd2hpdGUgLmVycm9yLXRleHQge1xuICBjb2xvcjogI2ZmNTI1MjsgfVxuXG5pbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvICsgbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBhZGRpbmctbGVmdDogMi40cmVtO1xuICAtd2Via2l0LXRvdWNoLWNvbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAudGhlbWUtZGFyayBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvICsgbGFiZWwge1xuICAgIGNvbG9yOiAjNTU2NTc2OyB9XG4gIC50aGVtZS1ncmF5IGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW8gKyBsYWJlbCB7XG4gICAgY29sb3I6ICM1NjVjNjI7IH1cbiAgLnRoZW1lLXdoaXRlIGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW8gKyBsYWJlbCB7XG4gICAgY29sb3I6ICNhMGE1YWI7IH1cblxuaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbzpub3QoY2hlY2tlZCkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7IH1cbiAgaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbzpub3QoY2hlY2tlZCkgKyBsYWJlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwLjdyZW07XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgd2lkdGg6IDEuNHJlbTtcbiAgICBoZWlnaHQ6IDEuNHJlbTsgfVxuICAgIC50aGVtZS1kYXJrIGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICM0ZGIxZmY7IH1cbiAgICAudGhlbWUtZ3JheSBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvOm5vdChjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4gICAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCAjNDJhNWY1OyB9XG4gICAgLnRoZW1lLXdoaXRlIGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICMyYzk1ZjE7IH1cbiAgaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbzpub3QoY2hlY2tlZCkgKyBsYWJlbDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMXJlbTtcbiAgICBsZWZ0OiAwLjNyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2lkdGg6IDAuOHJlbTtcbiAgICBoZWlnaHQ6IDAuOHJlbTsgfVxuICAgIC50aGVtZS1kYXJrIGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAgIC50aGVtZS1ncmF5IGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuICAgIC50aGVtZS13aGl0ZSBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvOm5vdChjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbzpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuICBvcGFjaXR5OiAxOyB9XG5cbmlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3ggKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcGFkZGluZy1sZWZ0OiAzLjZyZW07XG4gIC13ZWJraXQtdG91Y2gtY29sbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC50aGVtZS1kYXJrIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3ggKyBsYWJlbCB7XG4gICAgY29sb3I6ICM1NTY1NzY7IH1cbiAgLnRoZW1lLWdyYXkgaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveCArIGxhYmVsIHtcbiAgICBjb2xvcjogIzU2NWM2MjsgfVxuICAudGhlbWUtd2hpdGUgaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveCArIGxhYmVsIHtcbiAgICBjb2xvcjogI2EwYTVhYjsgfVxuXG5pbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94Om5vdChjaGVja2VkKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDEuNnJlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveDpub3QoY2hlY2tlZCkgKyBsYWJlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3g6bm90KGNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMS42cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB3aWR0aDogMS40cmVtO1xuICAgIGhlaWdodDogMS40cmVtOyB9XG4gICAgLnRoZW1lLWRhcmsgaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveDpub3QoY2hlY2tlZCkgKyBsYWJlbDpiZWZvcmUge1xuICAgICAgYm9yZGVyOiAwLjFyZW0gc29saWQgIzRkYjFmZjsgfVxuICAgIC50aGVtZS1ncmF5IGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3g6bm90KGNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICM0MmE1ZjU7IH1cbiAgICAudGhlbWUtd2hpdGUgaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveDpub3QoY2hlY2tlZCkgKyBsYWJlbDpiZWZvcmUge1xuICAgICAgYm9yZGVyOiAwLjFyZW0gc29saWQgIzJjOTVmMTsgfVxuXG5pbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94OmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvY29tcGxldGUtdGVzdHdhbGxldC5zdmcpOyB9XG4gIC50aGVtZS1kYXJrIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3g6Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAudGhlbWUtZ3JheSBpbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94OmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cbiAgLnRoZW1lLXdoaXRlIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3g6Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayAuc3dpdGNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsgfVxuXG4udGhlbWUtZ3JheSAuc3dpdGNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsgfVxuXG4udGhlbWUtd2hpdGUgLnN3aXRjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWRhcmsgLnN3aXRjaCAuY2lyY2xlLm9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSAuc3dpdGNoIC5jaXJjbGUub24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSAuc3dpdGNoIC5jaXJjbGUub24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIC5zd2l0Y2ggLmNpcmNsZS5vZmYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IC5zd2l0Y2ggLmNpcmNsZS5vZmYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSAuc3dpdGNoIC5jaXJjbGUub2ZmIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2EwYTVhYjsgfVxuXG4udGFibGUtdG9vbHRpcCB7XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTsgfVxuICAudGhlbWUtZGFyayAudGFibGUtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogIzQyNTA1ZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6ICMzZTQ2NGM7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS13aGl0ZSAudGFibGUtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDEyMCwgMTIwLCAxMjAsIDAuNSk7XG4gICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgLnRhYmxlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB9XG4gIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wIHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuICAgIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0xcmVtO1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSAwLjVyZW0pO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzQyNTA1ZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3A6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICMzZTQ2NGMgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZmZmZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcC1sZWZ0IHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuICAgIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLWxlZnQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogLTFyZW07XG4gICAgICBsZWZ0OiAwLjdyZW07XG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cbiAgICAgIC50aGVtZS1kYXJrIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLWxlZnQ6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICM0MjUwNWYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzQyNTA1ZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3AtbGVmdDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzNlNDY0YyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjM2U0NjRjOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3AtbGVmdDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZmZmZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmZmZmOyB9XG4gIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLXJpZ2h0IHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuICAgIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLXJpZ2h0OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0xcmVtO1xuICAgICAgcmlnaHQ6IDAuN3JlbTtcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3AtcmlnaHQ6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICM0MjUwNWYgIzQyNTA1ZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3AtcmlnaHQ6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICMzZTQ2NGMgIzNlNDY0YyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLXJpZ2h0OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmICNmZmZmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20ge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTFyZW07XG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtIDAuNXJlbSk7XG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cbiAgICAgIC50aGVtZS1kYXJrIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzQyNTA1ZiB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b206YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjM2U0NjRjIHRyYW5zcGFyZW50OyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b206YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmZmZmIHRyYW5zcGFyZW50OyB9XG4gIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tLWxlZnQge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbS1sZWZ0OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMXJlbTtcbiAgICAgIGxlZnQ6IDAuN3JlbTtcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tbGVmdDpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM0MjUwNWYgIzQyNTA1ZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tbGVmdDpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMzZTQ2NGMgIzNlNDY0YzsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tLWxlZnQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmZmZmICNmZmZmZmY7IH1cbiAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tcmlnaHQge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbS1yaWdodDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTFyZW07XG4gICAgICByaWdodDogMC43cmVtO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbS1yaWdodDpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICM0MjUwNWYgIzQyNTA1ZiB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tcmlnaHQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjM2U0NjRjICMzZTQ2NGMgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbS1yaWdodDpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNmZmZmZmYgI2ZmZmZmZiB0cmFuc3BhcmVudDsgfVxuICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTsgfVxuICAgIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdDphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiBjYWxjKDUwJSAtIDAuNXJlbSk7XG4gICAgICByaWdodDogLTFyZW07XG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cbiAgICAgIC50aGVtZS1kYXJrIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzQyNTA1ZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1sZWZ0OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjM2U0NjRjOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1sZWZ0OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmZmZmOyB9XG4gIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gICAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1yaWdodDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSAwLjVyZW0pO1xuICAgICAgbGVmdDogLTFyZW07XG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cbiAgICAgIC50aGVtZS1kYXJrIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNDI1MDVmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gICAgICAudGhlbWUtZ3JheSAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXJpZ2h0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzNlNDY0YyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZmZmZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG5cbi50YWJsZS10b29sdGlwLWRpbWVuc2lvbnMgLnRvb2x0aXAtaW5uZXIge1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWF4LXdpZHRoOiAyMHJlbTtcbiAgbWF4LWhlaWdodDogMTByZW07IH1cblxuLmJhbGFuY2UtdG9vbHRpcCB7XG4gIHBhZGRpbmc6IDEuM3JlbTsgfVxuICAudGhlbWUtZGFyayAuYmFsYW5jZS10b29sdGlwIHtcbiAgICBiYWNrZ3JvdW5kOiAjNDI1MDVmO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAudGhlbWUtZ3JheSAuYmFsYW5jZS10b29sdGlwIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2U0NjRjO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAudGhlbWUtd2hpdGUgLmJhbGFuY2UtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDEyMCwgMTIwLCAxMjAsIDAuNSk7XG4gICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gICAgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuYXZhaWxhYmxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuN3JlbTsgfVxuICAgICAgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuYXZhaWxhYmxlIGIge1xuICAgICAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAubG9ja2VkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuN3JlbTsgfVxuICAgICAgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAubG9ja2VkIGIge1xuICAgICAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAubGluayB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIC50aGVtZS1kYXJrIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmxpbmsge1xuICAgICAgICBjb2xvcjogIzRkYjFmZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAubGluayB7XG4gICAgICAgIGNvbG9yOiAjNDJhNWY1OyB9XG4gICAgICAudGhlbWUtd2hpdGUgLmJhbGFuY2UtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAubGluayB7XG4gICAgICAgIGNvbG9yOiAjMmM5NWYxOyB9XG4gIC5iYWxhbmNlLXRvb2x0aXAubmctdG9vbHRpcC10b3Age1xuICAgIG1hcmdpbi10b3A6IC0xcmVtOyB9XG4gIC5iYWxhbmNlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20ge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgLmJhbGFuY2UtdG9vbHRpcC5uZy10b29sdGlwLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTsgfVxuICAuYmFsYW5jZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG5cbi5hY2NvdW50LXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIge1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBtYXgtd2lkdGg6IDE4cmVtOyB9XG5cbi5jb21tZW50LXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIge1xuICBvdmVyZmxvdzogYXV0bztcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgbWF4LXdpZHRoOiA1MHJlbTtcbiAgbWF4LWhlaWdodDogMjVyZW07IH1cblxuLnVwZGF0ZS10b29sdGlwIHtcbiAgcGFkZGluZzogMS41cmVtOyB9XG4gIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogIzQyNTA1ZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2U0NjRjO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAudGhlbWUtd2hpdGUgLnVwZGF0ZS10b29sdGlwIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMTIwLCAxMjAsIDEyMCwgMC41KTtcbiAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjNWYyYjExO1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS1ncmF5IC51cGRhdGUtdG9vbHRpcC5pbXBvcnRhbnQge1xuICAgIGJhY2tncm91bmQ6ICM1NTI0MGQ7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcC5pbXBvcnRhbnQge1xuICAgIGJhY2tncm91bmQ6ICNlZjZjMDA7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwLmltcG9ydGFudC5uZy10b29sdGlwLWxlZnQtYm90dG9tOmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM1ZjJiMTEgIzVmMmIxMTsgfVxuICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50Lm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzU1MjQwZCAjNTUyNDBkOyB9XG4gIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50Lm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2VmNmMwMCAjZWY2YzAwOyB9XG4gIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcC5pbXBvcnRhbnQubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICM1ZjJiMTEgIzVmMmIxMSB0cmFuc3BhcmVudDsgfVxuICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50Lm5nLXRvb2x0aXAtcmlnaHQtYm90dG9tOmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNTUyNDBkICM1NTI0MGQgdHJhbnNwYXJlbnQ7IH1cbiAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcC5pbXBvcnRhbnQubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNlZjZjMDAgI2VmNmMwMCB0cmFuc3BhcmVudDsgfVxuICAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwge1xuICAgIHBhZGRpbmc6IDIuNXJlbTsgfVxuICAgIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcC5jcml0aWNhbCB7XG4gICAgICBiYWNrZ3JvdW5kOiAjNWYxZDFkO1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwge1xuICAgICAgYmFja2dyb3VuZDogIzRjMTkxOTtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcC5jcml0aWNhbCB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZTUzOTM1O1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwgLnRvb2x0aXAtaW5uZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwLmNyaXRpY2FsLm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNWYxZDFkICM1ZjFkMWQ7IH1cbiAgICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwubmctdG9vbHRpcC1sZWZ0LWJvdHRvbTphZnRlciB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM0YzE5MTkgIzRjMTkxOTsgfVxuICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwubmctdG9vbHRpcC1sZWZ0LWJvdHRvbTphZnRlciB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNlNTM5MzUgI2U1MzkzNTsgfVxuICAgIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcC5jcml0aWNhbC5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbTpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNWYxZDFkICM1ZjFkMWQgdHJhbnNwYXJlbnQ7IH1cbiAgICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzRjMTkxOSAjNGMxOTE5IHRyYW5zcGFyZW50OyB9XG4gICAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcC5jcml0aWNhbC5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbTpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZTUzOTM1ICNlNTM5MzUgdHJhbnNwYXJlbnQ7IH1cbiAgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIHtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBsaW5lLWhlaWdodDogMS44cmVtO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgfVxuICAgIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuc3RhbmRhcmQtdXBkYXRlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5zdGFuZGFyZC11cGRhdGUge1xuICAgICAgICBjb2xvcjogIzRkYjFmZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5zdGFuZGFyZC11cGRhdGUge1xuICAgICAgICBjb2xvcjogIzQyYTVmNTsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuc3RhbmRhcmQtdXBkYXRlIHtcbiAgICAgICAgY29sb3I6ICMyYzk1ZjE7IH1cbiAgICAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmltcG9ydGFudC11cGRhdGUge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMi43cmVtOyB9XG4gICAgICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmltcG9ydGFudC11cGRhdGUge1xuICAgICAgICBjb2xvcjogI2ZmNmYwMDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5pbXBvcnRhbnQtdXBkYXRlIHtcbiAgICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmltcG9ydGFudC11cGRhdGUge1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuY3JpdGljYWwtdXBkYXRlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAud3JvbmctdGltZSB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07IH1cbiAgICAgIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAud3JvbmctdGltZSB7XG4gICAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLndyb25nLXRpbWUge1xuICAgICAgICBjb2xvcjogI2ZmNmYwMDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAud3JvbmctdGltZSB7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5pY29uIHtcbiAgICAgIG1hcmdpbjogMS41cmVtIDA7XG4gICAgICB3aWR0aDogNXJlbTtcbiAgICAgIGhlaWdodDogNXJlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdC1ib3R0b20ge1xuICAgIG1hcmdpbi1sZWZ0OiAtMS41cmVtOyB9XG4gICAgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMC42cmVtO1xuICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAubmctdG9vbHRpcC1sZWZ0LWJvdHRvbTphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzQyNTA1ZiAjNDI1MDVmOyB9XG4gICAgICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAubmctdG9vbHRpcC1sZWZ0LWJvdHRvbTphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzNlNDY0YyAjM2U0NjRjOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmZmZmYgI2ZmZmZmZjsgfVxuICAudXBkYXRlLXRvb2x0aXAubmctdG9vbHRpcC1yaWdodC1ib3R0b20ge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07IH1cbiAgICAudXBkYXRlLXRvb2x0aXAubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDAuNnJlbTtcbiAgICAgIGxlZnQ6IC0xcmVtO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNDI1MDVmICM0MjUwNWYgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS1ncmF5IC51cGRhdGUtdG9vbHRpcC5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbTpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMzZTQ2NGMgIzNlNDY0YyB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcC5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbTpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNmZmZmZmYgI2ZmZmZmZiB0cmFuc3BhcmVudDsgfVxuXG4ubmd4LWNvbnRleHRtZW51IC5kcm9wZG93bi1tZW51IHtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwOyB9XG4gIC50aGVtZS1kYXJrIC5uZ3gtY29udGV4dG1lbnUgLmRyb3Bkb3duLW1lbnUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyYjM2NDQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjUpOyB9XG4gIC50aGVtZS1ncmF5IC5uZ3gtY29udGV4dG1lbnUgLmRyb3Bkb3duLW1lbnUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjUpOyB9XG4gIC50aGVtZS13aGl0ZSAubmd4LWNvbnRleHRtZW51IC5kcm9wZG93bi1tZW51IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMTIwLCAxMjAsIDEyMCwgMC41KTsgfVxuXG4ubmd4LWNvbnRleHRtZW51IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBPcGVuU2Fucywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ubmd4LWNvbnRleHRtZW51IGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMC41ZW0gMWVtOyB9XG4gIC50aGVtZS1kYXJrIC5uZ3gtY29udGV4dG1lbnUgYSB7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLWdyYXkgLm5neC1jb250ZXh0bWVudSBhIHtcbiAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAudGhlbWUtd2hpdGUgLm5neC1jb250ZXh0bWVudSBhIHtcbiAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAudGhlbWUtZGFyayAubmd4LWNvbnRleHRtZW51IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLWdyYXkgLm5neC1jb250ZXh0bWVudSBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTE1OTYwO1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS13aGl0ZSAubmd4LWNvbnRleHRtZW51IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0Lm5nLXNlbGVjdC1zaW5nbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07IH1cbiAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1zZWxlY3QtY29udGFpbmVyIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgaGVpZ2h0OiA0LjJyZW07IH1cbiAgICAudGhlbWUtZGFyayAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE3MWUyNztcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1zZWxlY3QtY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS13aGl0ZSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICAgIGNvbG9yOiAjNDM0NTRiOyB9XG4gICAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLWlucHV0IHtcbiAgICAgICAgdG9wOiBhdXRvOyB9XG4gIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwge1xuICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC50aGVtZS1kYXJrIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE3MWUyNzsgfVxuICAgIC50aGVtZS1ncmF5IC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI5MmQzMTsgfVxuICAgIC50aGVtZS13aGl0ZSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cbiAgICAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgcGFkZGluZzogMXJlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzFlMjc7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtZ3JheSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI5MmQzMTtcbiAgICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICAgIC50aGVtZS1kYXJrIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLW1hcmtlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTgsIDY5LCA4NSwgMC41KTtcbiAgICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAgIC50aGVtZS1ncmF5IC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLW1hcmtlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTgsIDYyLCA2NiwgMC41KTtcbiAgICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1tYXJrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MCwgMjQwLCAyNDAsIDAuNSk7XG4gICAgICAgIGNvbG9yOiAjNDM0NTRiOyB9XG4gICAgICAudGhlbWUtZGFyayAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KTtcbiAgICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAgIC50aGVtZS1ncmF5IC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLXNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNywgNDAsIDQzLCAwLjUpO1xuICAgICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLXNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjQsIDIyNCwgMjI0LCAwLjUpO1xuICAgICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAgIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgaGVpZ2h0OiAxcmVtOyB9XG4gICAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XG4gICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtOyB9XG4gICAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwsIC50aGVtZS1kYXJrIGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCB7XG4gIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1kYXJrLnBuZyk7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsLCAudGhlbWUtZ3JheSBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtZ3JheS5wbmcpO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwsIC50aGVtZS13aGl0ZSBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtd2hpdGUucG5nKTtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNvbnRlbnQgLmljb24uZXJyb3IsIC50aGVtZS1kYXJrIGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY29udGVudCAuaWNvbi5lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLWdyYXkgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNvbnRlbnQgLmljb24uZXJyb3IsIC50aGVtZS1ncmF5IGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY29udGVudCAuaWNvbi5lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5jb250ZW50IC5pY29uLmVycm9yLCAudGhlbWUtd2hpdGUgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jb250ZW50IC5pY29uLmVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtZGFyayBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY29udGVudCAuaWNvbi5zdWNjZXNzLCAudGhlbWUtZGFyayBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmNvbnRlbnQgLmljb24uc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1Y2RhOWQ7IH1cblxuLnRoZW1lLWdyYXkgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNvbnRlbnQgLmljb24uc3VjY2VzcywgLnRoZW1lLWdyYXkgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jb250ZW50IC5pY29uLnN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDdjZjhkOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY29udGVudCAuaWNvbi5zdWNjZXNzLCAudGhlbWUtd2hpdGUgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jb250ZW50IC5pY29uLnN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDZjMTcyOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5jb250ZW50IC5pY29uLmluZm8sIC50aGVtZS1kYXJrIGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY29udGVudCAuaWNvbi5pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY29udGVudCAuaWNvbi5pbmZvLCAudGhlbWUtZ3JheSBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmNvbnRlbnQgLmljb24uaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5jb250ZW50IC5pY29uLmluZm8sIC50aGVtZS13aGl0ZSBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmNvbnRlbnQgLmljb24uaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmFjdGlvbi1idXR0b24sIC50aGVtZS1kYXJrIGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuYWN0aW9uLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7XG4gIGNvbG9yOiAjMTExOTIxOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5hY3Rpb24tYnV0dG9uLCAudGhlbWUtZ3JheSBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmFjdGlvbi1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1O1xuICBjb2xvcjogIzFhMWExYTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmFjdGlvbi1idXR0b24sIC50aGVtZS13aGl0ZSBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmFjdGlvbi1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4udGhlbWUtZGFyayBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY2xvc2UtYnV0dG9uIC5pY29uLCAudGhlbWUtZGFyayBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmNsb3NlLWJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNsb3NlLWJ1dHRvbiAuaWNvbiwgLnRoZW1lLWdyYXkgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jbG9zZS1idXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTE1OTYwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY2xvc2UtYnV0dG9uIC5pY29uLCAudGhlbWUtd2hpdGUgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jbG9zZS1idXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIC50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCAjMmIzNjQ0OyB9XG5cbi50aGVtZS1ncmF5IGFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIC50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCAjMmYzNDM4OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJyZW0gc29saWQgI2ViZWJlYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC5sYWJlbCB7XG4gIGNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IGFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIC50YWJsZSAucm93IC5jZWxsLmxhYmVsIHtcbiAgY29sb3I6ICM1NjVjNjI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIC50YWJsZSAucm93IC5jZWxsLmxhYmVsIHtcbiAgY29sb3I6ICNhMGE1YWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXRyYW5zYWN0aW9uLWRldGFpbHMgLnRhYmxlIC5yb3cgLmNlbGwudmFsdWUge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC52YWx1ZSB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC52YWx1ZSB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIC50YWJsZSAucm93IC5jZWxsLmtleS12YWx1ZSB7XG4gIGNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIC50YWJsZSAucm93IC5jZWxsLmtleS12YWx1ZSB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC5rZXktdmFsdWUge1xuICBjb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXByb2dyZXNzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXByb2dyZXNzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2Y0YTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzYzYTNlOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1wcm9ncmVzcy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1wcm9ncmVzcy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDdjZjhkOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIgLnByb2dyZXNzLWJhci1mdWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjsgfVxuXG4udGhlbWUtZGFyayBhcHAtb3Blbi13YWxsZXQtbW9kYWwgLm1vZGFsIHtcbiAgYmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWRhcmsucG5nKTtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLW9wZW4td2FsbGV0LW1vZGFsIC5tb2RhbCB7XG4gIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1ncmF5LnBuZyk7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtb3Blbi13YWxsZXQtbW9kYWwgLm1vZGFsIHtcbiAgYmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLXdoaXRlLnBuZyk7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zZW5kLW1vZGFsIC5tb2RhbCB7XG4gIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1kYXJrLnBuZyk7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zZW5kLW1vZGFsIC5tb2RhbCB7XG4gIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1ncmF5LnBuZyk7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2VuZC1tb2RhbCAubW9kYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtd2hpdGUucG5nKTtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNlbmQtbW9kYWwgLm1vZGFsIC50aXRsZSB7XG4gIGJvcmRlci1ib3R0b206IDAuMnJlbSBzb2xpZCAjMmIzNjQ0OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zZW5kLW1vZGFsIC5tb2RhbCAudGl0bGUge1xuICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgIzJmMzQzODsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNlbmQtbW9kYWwgLm1vZGFsIC50aXRsZSB7XG4gIGJvcmRlci1ib3R0b206IDAuMnJlbSBzb2xpZCAjZWJlYmViOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zZW5kLW1vZGFsIC5tb2RhbCAuYWN0aW9uLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7XG4gIGNvbG9yOiAjMTExOTIxOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zZW5kLW1vZGFsIC5tb2RhbCAuYWN0aW9uLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7XG4gIGNvbG9yOiAjMWExYTFhOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2VuZC1tb2RhbCAubW9kYWwgLmFjdGlvbi1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuXG5hcHAtbWFpbiwgYXBwLWNyZWF0ZS13YWxsZXQsIGFwcC1vcGVuLXdhbGxldCwgYXBwLXJlc3RvcmUtd2FsbGV0LCBhcHAtc2VlZC1waHJhc2UsIGFwcC13YWxsZXQtZGV0YWlscywgYXBwLWFzc2lnbi1hbGlhcywgYXBwLWVkaXQtYWxpYXMsIGFwcC10cmFuc2Zlci1hbGlhcywgYXBwLXNldHRpbmdzLCBhcHAtbG9naW4ge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgcGFkZGluZzogM3JlbTtcbiAgbWluLXdpZHRoOiA4NXJlbTsgfVxuICBhcHAtbWFpbiAuY29udGVudCwgYXBwLWNyZWF0ZS13YWxsZXQgLmNvbnRlbnQsIGFwcC1vcGVuLXdhbGxldCAuY29udGVudCwgYXBwLXJlc3RvcmUtd2FsbGV0IC5jb250ZW50LCBhcHAtc2VlZC1waHJhc2UgLmNvbnRlbnQsIGFwcC13YWxsZXQtZGV0YWlscyAuY29udGVudCwgYXBwLWFzc2lnbi1hbGlhcyAuY29udGVudCwgYXBwLWVkaXQtYWxpYXMgLmNvbnRlbnQsIGFwcC10cmFuc2Zlci1hbGlhcyAuY29udGVudCwgYXBwLXNldHRpbmdzIC5jb250ZW50LCBhcHAtbG9naW4gLmNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAzcmVtO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7IH1cbiAgICAudGhlbWUtZGFyayBhcHAtbWFpbiAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLWNyZWF0ZS13YWxsZXQgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC1vcGVuLXdhbGxldCAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLXJlc3RvcmUtd2FsbGV0IC5jb250ZW50LCAudGhlbWUtZGFyayBhcHAtc2VlZC1waHJhc2UgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC13YWxsZXQtZGV0YWlscyAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLWFzc2lnbi1hbGlhcyAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLWVkaXQtYWxpYXMgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC10cmFuc2Zlci1hbGlhcyAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLXNldHRpbmdzIC5jb250ZW50LCAudGhlbWUtZGFyayBhcHAtbG9naW4gLmNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MywgNTQsIDY4LCAwLjUpO1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtZ3JheSBhcHAtbWFpbiAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLWNyZWF0ZS13YWxsZXQgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC1vcGVuLXdhbGxldCAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLXJlc3RvcmUtd2FsbGV0IC5jb250ZW50LCAudGhlbWUtZ3JheSBhcHAtc2VlZC1waHJhc2UgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC13YWxsZXQtZGV0YWlscyAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLWFzc2lnbi1hbGlhcyAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLWVkaXQtYWxpYXMgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC10cmFuc2Zlci1hbGlhcyAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLXNldHRpbmdzIC5jb250ZW50LCAudGhlbWUtZ3JheSBhcHAtbG9naW4gLmNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNywgNDAsIDQzLCAwLjUpO1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtd2hpdGUgYXBwLW1haW4gLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtY3JlYXRlLXdhbGxldCAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC1vcGVuLXdhbGxldCAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC1yZXN0b3JlLXdhbGxldCAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC1zZWVkLXBocmFzZSAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQtZGV0YWlscyAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC1hc3NpZ24tYWxpYXMgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtZWRpdC1hbGlhcyAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC10cmFuc2Zlci1hbGlhcyAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC1zZXR0aW5ncyAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC1sb2dpbiAuY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAgIGFwcC1tYWluIC5jb250ZW50IC5oZWFkLCBhcHAtY3JlYXRlLXdhbGxldCAuY29udGVudCAuaGVhZCwgYXBwLW9wZW4td2FsbGV0IC5jb250ZW50IC5oZWFkLCBhcHAtcmVzdG9yZS13YWxsZXQgLmNvbnRlbnQgLmhlYWQsIGFwcC1zZWVkLXBocmFzZSAuY29udGVudCAuaGVhZCwgYXBwLXdhbGxldC1kZXRhaWxzIC5jb250ZW50IC5oZWFkLCBhcHAtYXNzaWduLWFsaWFzIC5jb250ZW50IC5oZWFkLCBhcHAtZWRpdC1hbGlhcyAuY29udGVudCAuaGVhZCwgYXBwLXRyYW5zZmVyLWFsaWFzIC5jb250ZW50IC5oZWFkLCBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLmhlYWQsIGFwcC1sb2dpbiAuY29udGVudCAuaGVhZCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1tYWluIC5jb250ZW50IC5hZGQtd2FsbGV0IC5hZGQtd2FsbGV0LWhlbHAge1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtbWFpbiAuY29udGVudCAuYWRkLXdhbGxldCAuYWRkLXdhbGxldC1oZWxwIHtcbiAgY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1tYWluIC5jb250ZW50IC5hZGQtd2FsbGV0IC5hZGQtd2FsbGV0LWhlbHAge1xuICBjb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtbWFpbiAuY29udGVudCAuYWRkLXdhbGxldCAuYWRkLXdhbGxldC1oZWxwIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtbWFpbiAuY29udGVudCAuYWRkLXdhbGxldCAuYWRkLXdhbGxldC1oZWxwIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLW1haW4gLmNvbnRlbnQgLmFkZC13YWxsZXQgLmFkZC13YWxsZXQtaGVscCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNlZWQtcGhyYXNlIC5zZWVkLXBocmFzZS1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MWUyNztcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNlZWQtcGhyYXNlIC5zZWVkLXBocmFzZS1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI5MmQzMTtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zZWVkLXBocmFzZSAuc2VlZC1waHJhc2UtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQtZGV0YWlscyAuc2VlZC1waHJhc2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxZTI3OyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQtZGV0YWlscyAuc2VlZC1waHJhc2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0LWRldGFpbHMgLnNlZWQtcGhyYXNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsgfVxuXG5hcHAtc2V0dGluZ3MgLmNvbnRlbnQge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAudGhlbWUtZGFyayBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnRoZW1lLXNlbGVjdGlvbiB7XG4gICAgY29sb3I6ICM1NTY1NzY7IH1cbiAgLnRoZW1lLWdyYXkgYXBwLXNldHRpbmdzIC5jb250ZW50IC50aGVtZS1zZWxlY3Rpb24ge1xuICAgIGNvbG9yOiAjNTY1YzYyOyB9XG4gIC50aGVtZS13aGl0ZSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnRoZW1lLXNlbGVjdGlvbiB7XG4gICAgY29sb3I6ICNhMGE1YWI7IH1cbiAgLnRoZW1lLWRhcmsgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMywgMzEsIDM5LCAwLjUpOyB9XG4gIC50aGVtZS1ncmF5IGFwcC1zZXR0aW5ncyAuY29udGVudCAuc2NhbGUtc2VsZWN0aW9uIC5idXR0b24tYmxvY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjgsIDMwLCAzMywgMC41KTsgfVxuICAudGhlbWUtd2hpdGUgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjQsIDIyNCwgMjI0LCAwLjUpOyB9XG4gIC50aGVtZS1kYXJrIGFwcC1zZXR0aW5ncyAuY29udGVudCAuc2NhbGUtc2VsZWN0aW9uIC5idXR0b24tYmxvY2sgLmxhYmVsIHtcbiAgICBjb2xvcjogIzU1NjU3NjsgfVxuICAudGhlbWUtZ3JheSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrIC5sYWJlbCB7XG4gICAgY29sb3I6ICM1NjVjNjI7IH1cbiAgLnRoZW1lLXdoaXRlIGFwcC1zZXR0aW5ncyAuY29udGVudCAuc2NhbGUtc2VsZWN0aW9uIC5idXR0b24tYmxvY2sgLmxhYmVsIHtcbiAgICBjb2xvcjogI2EwYTVhYjsgfVxuICAudGhlbWUtZGFyayBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAudGhlbWUtZ3JheSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuICAudGhlbWUtd2hpdGUgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jay5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cbiAgLnRoZW1lLWRhcmsgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jay5hY3RpdmUgLmxhYmVsIHtcbiAgICBjb2xvcjogIzRkYjFmZjsgfVxuICAudGhlbWUtZ3JheSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrLmFjdGl2ZSAubGFiZWwge1xuICAgIGNvbG9yOiAjNDJhNWY1OyB9XG4gIC50aGVtZS13aGl0ZSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrLmFjdGl2ZSAubGFiZWwge1xuICAgIGNvbG9yOiAjMmM5NWYxOyB9XG5cbmFwcC1sb2dpbiB7XG4gIG1pbi13aWR0aDogaW5oZXJpdDsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzFmMjc7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWMxZTIxOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWhlYWRlciBoMyB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWhlYWRlciBoMyB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1oZWFkZXIgaDMge1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1oZWFkZXIgYnV0dG9uIHtcbiAgY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtaGVhZGVyIGJ1dHRvbiB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1oZWFkZXIgYnV0dG9uIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLnRleHQge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLnRleHQge1xuICBjb2xvcjogIzU2NWM2MjsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC50ZXh0IHtcbiAgY29sb3I6ICNhMGE1YWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAuaW5kaWNhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjtcbiAgY29sb3I6ICMxMTE5MjE7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1O1xuICBjb2xvcjogIzFhMWExYTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDNmNGE7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzYzYTNlOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2RjZGM7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIgLmZpbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIgLmZpbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdy5hY2NvdW50LXN5bmNocm9uaXphdGlvbiB7XG4gIGNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdy5hY2NvdW50LXN5bmNocm9uaXphdGlvbiB7XG4gIGNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cuYWNjb3VudC1zeW5jaHJvbml6YXRpb24ge1xuICBjb2xvcjogI2EwYTVhYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MywgNTQsIDY4LCAwLjUpO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNywgNDAsIDQzLCAwLjUpO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTg4ZTU7XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cgLnRleHQge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93IC50ZXh0IHtcbiAgY29sb3I6ICM1NjVjNjI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cgLnRleHQge1xuICBjb2xvcjogIzkxYmFmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93IC5pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmO1xuICBjb2xvcjogIzExMTkyMTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93IC5pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1O1xuICBjb2xvcjogIzFhMWExYTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSAuc2lkZWJhci1hY2NvdW50LXJvdyAuaW5kaWNhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSAuc2lkZWJhci1hY2NvdW50LXJvdyAuc3dpdGNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSAuc2lkZWJhci1hY2NvdW50LXJvdyAuc3dpdGNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cgLnN3aXRjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cuYWNjb3VudC1zeW5jaHJvbml6YXRpb24ge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93LmFjY291bnQtc3luY2hyb25pemF0aW9uIHtcbiAgY29sb3I6ICM1NjVjNjI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cuYWNjb3VudC1zeW5jaHJvbml6YXRpb24ge1xuICBjb2xvcjogIzkxYmFmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQ6aG92ZXI6bm90KC5hY3RpdmUpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OCwgNjksIDg1LCAwLjUpOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudDpob3Zlcjpub3QoLmFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU4LCA2MiwgNjYsIDAuNSk7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudDpob3Zlcjpub3QoLmFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MCwgMjQwLCAyNDAsIDAuNSk7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHM6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCAwJSwgIzE3MWYyNyAxMDAlKTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50czphZnRlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDAlLCAjMWMxZTIxIDEwMCUpOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50czphZnRlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDAlLCB3aGl0ZSAxMDAlKTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyB7XG4gIGJvcmRlci1ib3R0b206IDAuMnJlbSBzb2xpZCAjMWYyODMzOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIHtcbiAgYm9yZGVyLWJvdHRvbTogMC4ycmVtIHNvbGlkICMyZTMzMzc7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIHtcbiAgYm9yZGVyLWJvdHRvbTogMC4ycmVtIHNvbGlkICNlYmViZWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItc2V0dGluZ3MgLndyYXAtYnV0dG9uIGJ1dHRvbiB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbiBidXR0b24ge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItc2V0dGluZ3MgLndyYXAtYnV0dG9uIGJ1dHRvbiB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbiBidXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbiBidXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24gYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24uYWN0aXZlIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2UwZTBlMCAhaW1wb3J0YW50OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbi5hY3RpdmUgYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNywgNDAsIDQzLCAwLjUpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZTBlMGUwICFpbXBvcnRhbnQ7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbi5hY3RpdmUgYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlODhlNSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50OyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbi5hY3RpdmUgYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZiAhaW1wb3J0YW50OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbi5hY3RpdmUgYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNSAhaW1wb3J0YW50OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24uYWN0aXZlIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsgfVxuXG4uc3luY2hyb25pemF0aW9uLXN0YXR1cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgZmxleDogMCAwIDdyZW07XG4gIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIHtcbiAgICBjb2xvcjogIzU1NjU3NjsgfVxuICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyB7XG4gICAgY29sb3I6ICM1NjVjNjI7IH1cbiAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIHtcbiAgICBjb2xvcjogI2EwYTVhYjsgfVxuICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLm9mZmxpbmUsIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vbmxpbmUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMS4ycmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyLjJyZW07IH1cbiAgICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vZmZsaW5lOmJlZm9yZSwgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLm9ubGluZTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgd2lkdGg6IDEuMnJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjJyZW07IH1cbiAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAub2ZmbGluZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vZmZsaW5lOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vZmZsaW5lOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLm9ubGluZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDsgfVxuICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vbmxpbmU6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0N2NmOGQ7IH1cbiAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLm9ubGluZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjsgfVxuICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5zeW5jaW5nLCAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAubG9hZGluZyB7XG4gICAgICBsaW5lLWhlaWdodDogNXJlbTsgfVxuICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBoZWlnaHQ6IDAuN3JlbTtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAgICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcgLnByb2dyZXNzLWJhciB7XG4gICAgICAgICAgZmxleDogMSAwIGF1dG87IH1cbiAgICAgICAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZyAucHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDNmNGE7IH1cbiAgICAgICAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZyAucHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNjNhM2U7IH1cbiAgICAgICAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcgLnByb2dyZXNzLWJhciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjOyB9XG4gICAgICAgICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcgLnByb2dyZXNzLWJhciAuZmlsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgICAgICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nIC5wcm9ncmVzcy1iYXIgLmZpbGwge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkOyB9XG4gICAgICAgICAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZyAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ3Y2Y4ZDsgfVxuICAgICAgICAgICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nIC5wcm9ncmVzcy1iYXIgLmZpbGwge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDZjMTcyOyB9XG4gICAgICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nLmRvd25sb2FkaW5nIC5wcm9ncmVzcy1iYXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDNmNGE7IH1cbiAgICAgICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcuZG93bmxvYWRpbmcgLnByb2dyZXNzLWJhciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM2M2EzZTsgfVxuICAgICAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcuZG93bmxvYWRpbmcgLnByb2dyZXNzLWJhciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYzsgfVxuICAgICAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZy5kb3dubG9hZGluZyAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG4gICAgICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nLmRvd25sb2FkaW5nIC5wcm9ncmVzcy1iYXIgLmZpbGwge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cbiAgICAgICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nLmRvd25sb2FkaW5nIC5wcm9ncmVzcy1iYXIgLmZpbGwge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cbiAgICAgICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcgLnByb2dyZXNzLXBlcmNlbnQge1xuICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwLjdyZW07XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjdyZW07IH1cbiAgICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5sb2FkaW5nIHtcbiAgICAgICAgYW5pbWF0aW9uOiBtb3ZlIDVzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMTAwJSAxMDAlLCBjb2xvci1zdG9wKDAuMTI1LCByZ2JhKDAsIDAsIDAsIDAuMTUpKSwgY29sb3Itc3RvcCgwLjEyNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjI1LCByZ2JhKDAsIDAsIDAsIDAuMSkpLCBjb2xvci1zdG9wKDAuMzc1LCByZ2JhKDAsIDAsIDAsIDAuMSkpLCBjb2xvci1zdG9wKDAuMzc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCByZ2JhKDAsIDAsIDAsIDAuMTUpKSwgY29sb3Itc3RvcCgwLjYyNSwgcmdiYSgwLCAwLCAwLCAwLjE1KSksIGNvbG9yLXN0b3AoMC42MjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC43NSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjg3NSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjg3NSwgdHJhbnNwYXJlbnQpLCB0byh0cmFuc3BhcmVudCkpLCAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsIGNvbG9yLXN0b3AoMC4xMjUsIHJnYmEoMCwgMCwgMCwgMC4zKSksIGNvbG9yLXN0b3AoMC4xMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC4yNSwgcmdiYSgwLCAwLCAwLCAwLjI1KSksIGNvbG9yLXN0b3AoMC4zNzUsIHJnYmEoMCwgMCwgMCwgMC4yNSkpLCBjb2xvci1zdG9wKDAuMzc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCByZ2JhKDAsIDAsIDAsIDAuMykpLCBjb2xvci1zdG9wKDAuNjI1LCByZ2JhKDAsIDAsIDAsIDAuMykpLCBjb2xvci1zdG9wKDAuNjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC43NSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNzUsIHJnYmEoMCwgMCwgMCwgMC4yNSkpLCBjb2xvci1zdG9wKDAuODc1LCByZ2JhKDAsIDAsIDAsIDAuMjUpKSwgY29sb3Itc3RvcCgwLjg3NSwgdHJhbnNwYXJlbnQpLCB0byh0cmFuc3BhcmVudCkpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDdyZW0gN3JlbTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5sb2FkaW5nIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkOyB9XG4gICAgICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5sb2FkaW5nIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDdjZjhkOyB9XG4gICAgICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAubG9hZGluZyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjsgfVxuICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAudXBkYXRlLXRleHQge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAudXBkYXRlLXRleHQudGltZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOyB9XG4gICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24ge1xuICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICBtYXJnaW46IDAuM3JlbSAwIDAgMC42cmVtO1xuICAgICAgd2lkdGg6IDEuMnJlbTtcbiAgICAgIGhlaWdodDogMS4ycmVtOyB9XG4gICAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi51cGRhdGUge1xuICAgICAgICBtYXNrOiB1cmwoLi9hc3NldHMvaWNvbnMvdXBkYXRlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjsgfVxuICAgICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24udGltZSB7XG4gICAgICAgIG1hc2s6IHVybCguL2Fzc2V0cy9pY29ucy90aW1lLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjsgfVxuICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5zdGFuZGFyZCB7XG4gICAgICBjb2xvcjogIzRkYjFmZjsgfVxuICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5zdGFuZGFyZCB7XG4gICAgICBjb2xvcjogIzQyYTVmNTsgfVxuICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuc3RhbmRhcmQge1xuICAgICAgY29sb3I6ICMyYzk1ZjE7IH1cbiAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaW1wb3J0YW50IHtcbiAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmltcG9ydGFudCB7XG4gICAgICBjb2xvcjogI2ZmNmYwMDsgfVxuICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaW1wb3J0YW50IHtcbiAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmNyaXRpY2FsIHtcbiAgICAgIGNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmNyaXRpY2FsIHtcbiAgICAgIGNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5jcml0aWNhbCB7XG4gICAgICBjb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC50aW1lIHtcbiAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLnRpbWUge1xuICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLnRpbWUge1xuICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi5zdGFuZGFyZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG4gICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24uc3RhbmRhcmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi5zdGFuZGFyZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG4gICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24uaW1wb3J0YW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi5pbXBvcnRhbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMDsgfVxuICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi5pbXBvcnRhbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMDsgfVxuICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pY29uLmNyaXRpY2FsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cbiAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi5jcml0aWNhbCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pY29uLmNyaXRpY2FsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cbiAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi50aW1lIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi50aW1lIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24udGltZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwOyB9XG5cbkBrZXlmcmFtZXMgbW92ZSB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIC03cmVtOyB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgN3JlbTsgfSB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQge1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC5oZWFkZXIgYnV0dG9uIHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAuaGVhZGVyIGJ1dHRvbiB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC5oZWFkZXIgYnV0dG9uIHtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAuaGVhZGVyIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAuaGVhZGVyIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLmhlYWRlciBidXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbmFwcC13YWxsZXQgLmhlYWRlciBidXR0b246ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9XG4gIC50aGVtZS1kYXJrIGFwcC13YWxsZXQgLmhlYWRlciBidXR0b246ZGlzYWJsZWQgLmljb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7IH1cbiAgLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAuaGVhZGVyIGJ1dHRvbjpkaXNhYmxlZCAuaWNvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU2NWM2MjsgfVxuICAudGhlbWUtd2hpdGUgYXBwLXdhbGxldCAuaGVhZGVyIGJ1dHRvbjpkaXNhYmxlZCAuaWNvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzkxYmFmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC5oZWFkZXIgLmFsaWFzIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC5oZWFkZXIgLmFsaWFzIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAuaGVhZGVyIC5hbGlhcyAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAuYWRkcmVzcyB7XG4gIGNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLmFkZHJlc3Mge1xuICBjb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAuYWRkcmVzcyB7XG4gIGNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLmFkZHJlc3MgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLmFkZHJlc3MgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC5hZGRyZXNzIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMywgMzEsIDM5LCAwLjUpOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI4LCAzMCwgMzMsIDAuNSk7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyNCwgMjI0LCAyMjQsIDAuNSk7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIgLmluZGljYXRvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7XG4gIGNvbG9yOiAjMTExOTIxOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIgLmluZGljYXRvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7XG4gIGNvbG9yOiAjMWExYTFhOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiIC5pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYjpob3Zlcjpub3QoLmFjdGl2ZSk6bm90KC5kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU4LCA2OSwgODUsIDAuNSk7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYjpob3Zlcjpub3QoLmFjdGl2ZSk6bm90KC5kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU4LCA2MiwgNjYsIDAuNSk7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWI6aG92ZXI6bm90KC5hY3RpdmUpOm5vdCguZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1NCwgNjgsIDAuNSk7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAudGFicyAudGFicy1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNywgNDAsIDQzLCAwLjUpOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MywgNTQsIDY4LCAwLjUpOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciAucGFnaW5hdGlvbiB7XG4gIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCAjMmIzNjQ0OyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciAucGFnaW5hdGlvbiB7XG4gIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCAjMmYzNDM4OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24ge1xuICBib3JkZXItdG9wOiAwLjJyZW0gc29saWQgI2ViZWJlYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24gYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJiMzY0NDtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZjM0Mzg7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24gYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIGJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgyMDJhO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24gYnV0dG9uLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNTI5MmQ7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24gYnV0dG9uLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciAucGFnaW5hdGlvbiBidXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2E0ODVhO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24gYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4M2U0MztcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciAucGFnaW5hdGlvbiBidXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2VuZCAuZm9ybS1zZW5kIC5zZW5kLXNlbGVjdCB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zZW5kIC5mb3JtLXNlbmQgLnNlbmQtc2VsZWN0IHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zZW5kIC5mb3JtLXNlbmQgLnNlbmQtc2VsZWN0IHtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNlbmQgLmZvcm0tc2VuZCAuc2VuZC1zZWxlY3QgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zZW5kIC5mb3JtLXNlbmQgLnNlbmQtc2VsZWN0IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNlbmQgLmZvcm0tc2VuZCAuc2VuZC1zZWxlY3QgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zZW5kIC5mb3JtLXNlbmQgLmFkZGl0aW9uYWwtZGV0YWlscyB7XG4gIGJvcmRlcjogMC4ycmVtIHNvbGlkICMyYjM2NDQ7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNlbmQgLmZvcm0tc2VuZCAuYWRkaXRpb25hbC1kZXRhaWxzIHtcbiAgYm9yZGVyOiAwLjJyZW0gc29saWQgIzJmMzQzODsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNlbmQgLmZvcm0tc2VuZCAuYWRkaXRpb25hbC1kZXRhaWxzIHtcbiAgYm9yZGVyOiAwLjJyZW0gc29saWQgI2ViZWJlYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtcmVjZWl2ZSAuYnRuLWNvcHktYWRkcmVzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXJlY2VpdmUgLmJ0bi1jb3B5LWFkZHJlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcmVjZWl2ZSAuYnRuLWNvcHktYWRkcmVzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIubG9ja2VkLXRyYW5zYWN0aW9uIHtcbiAgY29sb3I6ICM1NTY1NzY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIubG9ja2VkLXRyYW5zYWN0aW9uIHtcbiAgY29sb3I6ICM1NjVjNjI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyLmxvY2tlZC10cmFuc2FjdGlvbiB7XG4gIGNvbG9yOiAjYTBhNWFiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0bisxKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODIwMmE7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDRuKzEpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI1MjkyZDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDRuKzEpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuXG4udGhlbWUtZGFyayBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rMikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgyMDJhOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0bisyKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNTI5MmQ7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0bisyKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDRuKzMpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDRuKzMpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0biszKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0bis0KSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0bis0KSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rNCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4udGhlbWUtZGFyayBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAuc3RhdHVzIC5jb25maXJtYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzZjRhOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMgLmNvbmZpcm1hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNjNhM2U7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMgLmNvbmZpcm1hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2RjZGM7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cyAuY29uZmlybWF0aW9uIC5maWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAuc3RhdHVzIC5jb25maXJtYXRpb24gLmZpbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDdjZjhkOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAuc3RhdHVzIC5jb25maXJtYXRpb24gLmZpbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDZjMTcyOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5sb2NrLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAubG9jay10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5sb2NrLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMDsgfVxuXG4udGhlbWUtZGFyayBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAudW5sb2NrLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAudW5sb2NrLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnVubG9jay10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cy5zZW5kIC5zdGF0dXMtdHJhbnNhY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMuc2VuZCAuc3RhdHVzLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cy5zZW5kIC5zdGF0dXMtdHJhbnNhY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMucmVjZWl2ZWQgLnN0YXR1cy10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1Y2RhOWQ7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cy5yZWNlaXZlZCAuc3RhdHVzLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3Y2Y4ZDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cy5yZWNlaXZlZCAuc3RhdHVzLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjsgfVxuXG4udGhlbWUtZGFyayBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5uZXcsIC50aGVtZS1kYXJrIGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLmFsZXJ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5uZXcsIC50aGVtZS1ncmF5IGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLmFsZXJ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24ubmV3LCAudGhlbWUtd2hpdGUgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24uYWxlcnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLnB1cmNoYXNlLCAudGhlbWUtZGFyayBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5zZWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5wdXJjaGFzZSwgLnRoZW1lLWdyYXkgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24uc2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLnB1cmNoYXNlLCAudGhlbWUtd2hpdGUgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24uc2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXB1cmNoYXNlIC5mb3JtLXB1cmNoYXNlIC5wdXJjaGFzZS1zZWxlY3Qge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXNlbGVjdCB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXNlbGVjdCB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAucHVyY2hhc2Utc2VsZWN0IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXNlbGVjdCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAucHVyY2hhc2Utc2VsZWN0IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXN0YXRlcyB7XG4gIGNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAucHVyY2hhc2Utc3RhdGVzIHtcbiAgY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAucHVyY2hhc2Utc3RhdGVzIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXB1cmNoYXNlIC5mb3JtLXB1cmNoYXNlIC5hZGRpdGlvbmFsLWRldGFpbHMge1xuICBib3JkZXI6IDAuMnJlbSBzb2xpZCAjMmIzNjQ0OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAuYWRkaXRpb25hbC1kZXRhaWxzIHtcbiAgYm9yZGVyOiAwLjJyZW0gc29saWQgIzJmMzQzODsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXB1cmNoYXNlIC5mb3JtLXB1cmNoYXNlIC5hZGRpdGlvbmFsLWRldGFpbHMge1xuICBib3JkZXI6IDAuMnJlbSBzb2xpZCAjZWJlYmViOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1wdXJjaGFzZSAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2Y0YTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHVyY2hhc2UgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNjNhM2U7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1wdXJjaGFzZSAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYzsgfVxuXG4udGhlbWUtZGFyayBhcHAtcHVyY2hhc2UgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1wdXJjaGFzZSAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIC5wcm9ncmVzcy1iYXItZnVsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0N2NmOGQ7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1wdXJjaGFzZSAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIC5wcm9ncmVzcy1iYXItZnVsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NmMxNzI7IH1cblxuYXBwLW1lc3NhZ2VzIHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxkIHNwYW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4udGhlbWUtZGFyayBhcHAtbWVzc2FnZXMgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGQgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1tZXNzYWdlcyB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1tZXNzYWdlcyB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXR5cGluZy1tZXNzYWdlIC5oZWFkIC5pbnRlcmxvY3V0b3Ige1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHlwaW5nLW1lc3NhZ2UgLmhlYWQgLmludGVybG9jdXRvciB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtdHlwaW5nLW1lc3NhZ2UgLmhlYWQgLmludGVybG9jdXRvciB7XG4gIGNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYuZGF0ZSB7XG4gIGNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYuZGF0ZSB7XG4gIGNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2LmRhdGUge1xuICBjb2xvcjogI2EwYTVhYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2Lm15IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhMzU0NDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2Lm15IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwMzYzYzsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5teSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5teTpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IC0xLjFyZW07XG4gIGJvcmRlcjogMS4ycmVtIHNvbGlkIHRyYW5zcGFyZW50OyB9XG4gIC50aGVtZS1kYXJrIGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYubXk6YmVmb3JlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMmEzNTQ0OyB9XG4gIC50aGVtZS1ncmF5IGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYubXk6YmVmb3JlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMzAzNjNjOyB9XG4gIC50aGVtZS13aGl0ZSBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2Lm15OmJlZm9yZSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZjsgfVxuXG4udGhlbWUtZGFyayBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2LmJ1ZGR5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MjAyYTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2LmJ1ZGR5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI1MjkyZDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5idWRkeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7IH1cblxuYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5idWRkeTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtMS4xcmVtO1xuICB0b3A6IDA7XG4gIGJvcmRlcjogMS4ycmVtIHNvbGlkIHRyYW5zcGFyZW50OyB9XG4gIC50aGVtZS1kYXJrIGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYuYnVkZHk6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMxODIwMmE7IH1cbiAgLnRoZW1lLWdyYXkgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5idWRkeTphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzI1MjkyZDsgfVxuICAudGhlbWUtd2hpdGUgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5idWRkeTphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2VkZWRlZDsgfVxuXG4udGhlbWUtZGFyayBhcHAtc3Rha2luZyAuY2hhcnQtaGVhZGVyIC5nZW5lcmFsIC5sYWJlbCB7XG4gIGNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zdGFraW5nIC5jaGFydC1oZWFkZXIgLmdlbmVyYWwgLmxhYmVsIHtcbiAgY29sb3I6ICM1NjVjNjI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zdGFraW5nIC5jaGFydC1oZWFkZXIgLmdlbmVyYWwgLmxhYmVsIHtcbiAgY29sb3I6ICNhMGE1YWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXN0YWtpbmcgLmNoYXJ0LWhlYWRlciAuZ2VuZXJhbCAub3B0aW9ucyB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zdGFraW5nIC5jaGFydC1oZWFkZXIgLmdlbmVyYWwgLm9wdGlvbnMge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXN0YWtpbmcgLmNoYXJ0LWhlYWRlciAuZ2VuZXJhbCAub3B0aW9ucyB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbmFwcC1zdGFraW5nIC5jaGFydC1oZWFkZXIgLnNlbGVjdGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZmxleC1ncm93OiAxO1xuICBmb250LXNpemU6IDEuNnJlbTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc3Rha2luZyAuY2hhcnQtb3B0aW9ucyAudGl0bGUge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc3Rha2luZyAuY2hhcnQtb3B0aW9ucyAudGl0bGUge1xuICBjb2xvcjogIzU2NWM2MjsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXN0YWtpbmcgLmNoYXJ0LW9wdGlvbnMgLnRpdGxlIHtcbiAgY29sb3I6ICNhMGE1YWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXN0YWtpbmcgLmNoYXJ0LW9wdGlvbnMgLm9wdGlvbnMgYnV0dG9uIHtcbiAgY29sb3I6ICNlMGUwZTA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYjM2NDQ7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXN0YWtpbmcgLmNoYXJ0LW9wdGlvbnMgLm9wdGlvbnMgYnV0dG9uIHtcbiAgY29sb3I6ICNlMGUwZTA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zdGFraW5nIC5jaGFydC1vcHRpb25zIC5vcHRpb25zIGJ1dHRvbiB7XG4gIGNvbG9yOiAjNDM0NTRiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zdGFraW5nIC5jaGFydC1vcHRpb25zIC5vcHRpb25zIGJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zdGFraW5nIC5jaGFydC1vcHRpb25zIC5vcHRpb25zIGJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTE1OTYwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc3Rha2luZyAuY2hhcnQtb3B0aW9ucyAub3B0aW9ucyBidXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuXG4uaW5wdXQtYmxvY2stYWxpYXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmlucHV0LWJsb2NrLWFsaWFzIC5hbGlhcy1kcm9wZG93biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNi41cmVtO1xuICAgIG1heC1oZWlnaHQ6IDEwcmVtO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnRoZW1lLWRhcmsgLmlucHV0LWJsb2NrLWFsaWFzIC5hbGlhcy1kcm9wZG93biB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxZTI3O1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2stYWxpYXMgLmFsaWFzLWRyb3Bkb3duIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS13aGl0ZSAuaW5wdXQtYmxvY2stYWxpYXMgLmFsaWFzLWRyb3Bkb3duIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAgIC5pbnB1dC1ibG9jay1hbGlhcyAuYWxpYXMtZHJvcGRvd24gZGl2IHtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgcGFkZGluZzogMXJlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLmlucHV0LWJsb2NrLWFsaWFzIC5hbGlhcy1kcm9wZG93biBkaXY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU4LCA2OSwgODUsIDAuNSk7IH1cbiAgICAgIC50aGVtZS1ncmF5IC5pbnB1dC1ibG9jay1hbGlhcyAuYWxpYXMtZHJvcGRvd24gZGl2OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OCwgNjIsIDY2LCAwLjUpOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrLWFsaWFzIC5hbGlhcy1kcm9wZG93biBkaXY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MCwgMjQwLCAyNDAsIDAuNSk7IH1cblxuYXBwLWNvbnRhY3RzLCBhcHAtYWRkLWNvbnRhY3RzLFxuYXBwLWNvbnRhY3Qtc2VuZCwgYXBwLWV4cG9ydC1pbXBvcnQge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgcGFkZGluZzogM3JlbTtcbiAgbWluLXdpZHRoOiA4NXJlbTsgfVxuICBhcHAtY29udGFjdHMgLmNvbnRlbnQsIGFwcC1hZGQtY29udGFjdHMgLmNvbnRlbnQsXG4gIGFwcC1jb250YWN0LXNlbmQgLmNvbnRlbnQsIGFwcC1leHBvcnQtaW1wb3J0IC5jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogM3JlbTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlOyB9XG4gICAgLnRoZW1lLWRhcmsgYXBwLWNvbnRhY3RzIC5jb250ZW50LCAudGhlbWUtZGFyayBhcHAtYWRkLWNvbnRhY3RzIC5jb250ZW50LCAudGhlbWUtZGFya1xuICAgIGFwcC1jb250YWN0LXNlbmQgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC1leHBvcnQtaW1wb3J0IC5jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KTtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgYXBwLWNvbnRhY3RzIC5jb250ZW50LCAudGhlbWUtZ3JheSBhcHAtYWRkLWNvbnRhY3RzIC5jb250ZW50LCAudGhlbWUtZ3JheVxuICAgIGFwcC1jb250YWN0LXNlbmQgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC1leHBvcnQtaW1wb3J0IC5jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KTtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLXdoaXRlIGFwcC1jb250YWN0cyAuY29udGVudCwgLnRoZW1lLXdoaXRlIGFwcC1hZGQtY29udGFjdHMgLmNvbnRlbnQsIC50aGVtZS13aGl0ZVxuICAgIGFwcC1jb250YWN0LXNlbmQgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtZXhwb3J0LWltcG9ydCAuY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAgIGFwcC1jb250YWN0cyAuY29udGVudCAuaGVhZCwgYXBwLWFkZC1jb250YWN0cyAuY29udGVudCAuaGVhZCxcbiAgICBhcHAtY29udGFjdC1zZW5kIC5jb250ZW50IC5oZWFkLCBhcHAtZXhwb3J0LWltcG9ydCAuY29udGVudCAuaGVhZCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1jb250YWN0cyB0YWJsZSAuYWxpYXMge1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtY29udGFjdHMgdGFibGUgLmFsaWFzIHtcbiAgY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250YWN0cyB0YWJsZSAuYWxpYXMge1xuICBjb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtY29udGFjdHMgdGFibGUgYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtY29udGFjdHMgdGFibGUgYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWNvbnRhY3RzIHRhYmxlIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWNvbnRhY3RzIHRhYmxlIGJ1dHRvbiBzcGFuIHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWNvbnRhY3RzIHRhYmxlIGJ1dHRvbiBzcGFuIHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250YWN0cyB0YWJsZSBidXR0b24gc3BhbiB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1jb250YWN0cyAuZm9vdGVyIHtcbiAgY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWNvbnRhY3RzIC5mb290ZXIge1xuICBjb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWNvbnRhY3RzIC5mb290ZXIge1xuICBjb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtY29udGFjdHMgLmZvb3RlciAuaW1wb3J0LWJ0biB7XG4gIGNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1jb250YWN0cyAuZm9vdGVyIC5pbXBvcnQtYnRuIHtcbiAgY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250YWN0cyAuZm9vdGVyIC5pbXBvcnQtYnRuIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWNvbnRhY3RzIC5mb290ZXIgLmltcG9ydC1idG4gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1jb250YWN0cyAuZm9vdGVyIC5pbXBvcnQtYnRuIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWNvbnRhY3RzIC5mb290ZXIgLmltcG9ydC1idG4gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1jb250YWN0LXNlbmQgLndhbGxldHMtc2VsZWN0aW9uIGJ1dHRvbiB7XG4gIGNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1jb250YWN0LXNlbmQgLndhbGxldHMtc2VsZWN0aW9uIGJ1dHRvbiB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtY29udGFjdC1zZW5kIC53YWxsZXRzLXNlbGVjdGlvbiBidXR0b24ge1xuICBjb2xvcjogIzJjOTVmMTsgfVxuXG4uaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgcGFkZGluZzogMCAzcmVtO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzcmVtOyB9XG4gIC50aGVtZS1kYXJrIC5oZWFkIHtcbiAgICBjb2xvcjogIzRkYjFmZjsgfVxuICAudGhlbWUtZ3JheSAuaGVhZCB7XG4gICAgY29sb3I6ICM0MmE1ZjU7IH1cbiAgLnRoZW1lLXdoaXRlIC5oZWFkIHtcbiAgICBjb2xvcjogIzJjOTVmMTsgfVxuICAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCksIC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG91dGxpbmUtc3R5bGU6IG5vbmU7IH1cbiAgICAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIsIC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwLjVyZW07XG4gICAgICByaWdodDogLTEuNXJlbTtcbiAgICAgIHdpZHRoOiAwLjlyZW07XG4gICAgICBoZWlnaHQ6IDAuOXJlbTtcbiAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1yaWdodC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgICBtYXNrLXNpemU6IGNvdmVyOyB9XG4gICAgICAudGhlbWUtZGFyayAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIsIC50aGVtZS1kYXJrIC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG4gICAgICAudGhlbWUtZ3JheSAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIsIC50aGVtZS1ncmF5IC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG4gICAgICAudGhlbWUtd2hpdGUgLmhlYWQgLmJyZWFkY3J1bWJzID4gc3Bhbjpub3QoOmxhc3QtY2hpbGQpOmFmdGVyLCAudGhlbWUtd2hpdGUgLmhlYWQgLmJyZWFkY3J1bWJzIGE6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cbiAgLmhlYWQgLmJhY2stYnRuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM0ZGIxZmY7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5oZWFkIC5iYWNrLWJ0biAuaWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuN3JlbTtcbiAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9iYWNrLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAwLjlyZW07XG4gICAgICBoZWlnaHQ6IDAuOXJlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLmhlYWQgLmJhY2stYnRuIC5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLmhlYWQgLmJhY2stYnRuIC5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC5oZWFkIC5iYWNrLWJ0biAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnNjcm9sbGVkLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgd2lkdGg6IDFyZW07XG4gIGhlaWdodDogMXJlbTsgfVxuXG4uc2Nyb2xsZWQtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4uc2Nyb2xsZWQtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTsgfVxuXG4uc2Nyb2xsZWQtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2OyB9XG5cbnRhYmxlIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIHRhYmxlIHRoZWFkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgLnRoZW1lLWRhcmsgdGFibGUgdGhlYWQge1xuICAgICAgY29sb3I6ICM1NTY1NzY7IH1cbiAgICAudGhlbWUtZ3JheSB0YWJsZSB0aGVhZCB7XG4gICAgICBjb2xvcjogIzU2NWM2MjsgfVxuICAgIC50aGVtZS13aGl0ZSB0YWJsZSB0aGVhZCB7XG4gICAgICBjb2xvcjogI2EwYTVhYjsgfVxuICAgIHRhYmxlIHRoZWFkIHRyIHtcbiAgICAgIGhlaWdodDogNHJlbTsgfVxuICAgICAgdGFibGUgdGhlYWQgdHIgdGgge1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyB9XG4gICAgICAgIHRhYmxlIHRoZWFkIHRyIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cbiAgICAgICAgdGFibGUgdGhlYWQgdHIgdGg6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTsgfVxuICB0YWJsZSB0Ym9keSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC50aGVtZS1kYXJrIHRhYmxlIHRib2R5IHtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgdGFibGUgdGJvZHkge1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtd2hpdGUgdGFibGUgdGJvZHkge1xuICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICB0YWJsZSB0Ym9keSB0ciB7XG4gICAgICBoZWlnaHQ6IDMuNXJlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgyMDJhOyB9XG4gICAgICAudGhlbWUtZ3JheSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyNTI5MmQ7IH1cbiAgICAgIC50aGVtZS13aGl0ZSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgICAgIHRhYmxlIHRib2R5IHRyIHRkIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuN3JlbTtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBtYXgtd2lkdGg6IDIwcmVtOyB9XG4gICAgICAgIHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cbiAgICAgICAgdGFibGUgdGJvZHkgdHIgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1MaWdodC50dGYpO1xuICBmb250LXdlaWdodDogMzAwOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogT3BlblNhbnM7XG4gIHNyYzogdXJsKH5zcmMvYXNzZXRzL2ZvbnRzL09wZW5TYW5zLVJlZ3VsYXIudHRmKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1TZW1pQm9sZC50dGYpO1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogT3BlblNhbnM7XG4gIHNyYzogdXJsKH5zcmMvYXNzZXRzL2ZvbnRzL09wZW5TYW5zLUJvbGQudHRmKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1FeHRyYUJvbGQudHRmKTtcbiAgZm9udC13ZWlnaHQ6IDgwMDsgfVxuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEwcHg7IH1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBPcGVuU2Fucywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDB2aDsgfVxuICBib2R5LnRoZW1lLWRhcmsge1xuICAgIGJhY2tncm91bmQ6ICMxMzE5MjEgdXJsKFwiYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWRhcmsucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICBib2R5LnRoZW1lLWdyYXkge1xuICAgIGJhY2tncm91bmQ6ICMxMDE0MTcgdXJsKFwiYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWdyYXkucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICBib2R5LnRoZW1lLXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlZWVlIHVybChcImFzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC13aGl0ZS5wbmdcIikgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4gIGJvZHkgYXBwLXJvb3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG5cbi51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuaWNvbiB7XG4gIG1hc2s6IHVybChhc3NldHMvaWNvbnMvdXBkYXRlLWFsZXJ0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjsgfVxuIiwiLm5nLXNlbGVjdC5uZy1zZWxlY3Qtb3BlbmVkPi5uZy1zZWxlY3QtY29udGFpbmVye2JhY2tncm91bmQ6I2ZmZjtib3JkZXItY29sb3I6I2IzYjNiMyAjY2NjICNkOWQ5ZDl9Lm5nLXNlbGVjdC5uZy1zZWxlY3Qtb3BlbmVkPi5uZy1zZWxlY3QtY29udGFpbmVyOmhvdmVye2JveC1zaGFkb3c6bm9uZX0ubmctc2VsZWN0Lm5nLXNlbGVjdC1vcGVuZWQ+Lm5nLXNlbGVjdC1jb250YWluZXIgLm5nLWFycm93e3RvcDotMnB4O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjOTk5O2JvcmRlci13aWR0aDowIDVweCA1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3Qtb3BlbmVkPi5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy1hcnJvdzpob3Zlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzMzM30ubmctc2VsZWN0Lm5nLXNlbGVjdC1vcGVuZWQubmctc2VsZWN0LWJvdHRvbT4ubmctc2VsZWN0LWNvbnRhaW5lcntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1vcGVuZWQubmctc2VsZWN0LXRvcD4ubmctc2VsZWN0LWNvbnRhaW5lcntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1mb2N1c2VkOm5vdCgubmctc2VsZWN0LW9wZW5lZCk+Lm5nLXNlbGVjdC1jb250YWluZXJ7Ym9yZGVyLWNvbG9yOiMwMDdlZmY7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjA3NSksMCAwIDAgM3B4IHJnYmEoMCwxMjYsMjU1LDAuMSl9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtZGlzYWJsZWQ+Lm5nLXNlbGVjdC1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5fS5uZy1zZWxlY3QgLm5nLWhhcy12YWx1ZSAubmctcGxhY2Vob2xkZXJ7ZGlzcGxheTpub25lfS5uZy1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlcjoxcHggc29saWQgI2NjYzttaW4taGVpZ2h0OjM2cHg7YWxpZ24taXRlbXM6Y2VudGVyfS5uZy1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXI6aG92ZXJ7Ym94LXNoYWRvdzowIDFweCAwIHJnYmEoMCwwLDAsMC4wNil9Lm5nLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVye2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nLWxlZnQ6MTBweH1bZGlyPVwicnRsXCJdIC5uZy1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lcntwYWRkaW5nLXJpZ2h0OjEwcHg7cGFkZGluZy1sZWZ0OjB9Lm5nLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy1wbGFjZWhvbGRlcntjb2xvcjojOTk5fS5uZy1zZWxlY3Qubmctc2VsZWN0LXNpbmdsZSAubmctc2VsZWN0LWNvbnRhaW5lcntoZWlnaHQ6MzZweH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1zaW5nbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctaW5wdXR7dG9wOjVweDtsZWZ0OjA7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDo1MHB4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3Qtc2luZ2xlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLWlucHV0e3BhZGRpbmctcmlnaHQ6MTBweDtwYWRkaW5nLWxlZnQ6NTBweH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZS5uZy1zZWxlY3QtZGlzYWJsZWQ+Lm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlcjoxcHggc29saWQgI2U2ZTZlNn0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZS5uZy1zZWxlY3QtZGlzYWJsZWQ+Lm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUgLm5nLXZhbHVlLWxhYmVse3BhZGRpbmc6MCA1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lcntwYWRkaW5nLXRvcDo1cHg7cGFkZGluZy1sZWZ0OjdweH1bZGlyPVwicnRsXCJdIC5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXJ7cGFkZGluZy1yaWdodDo3cHg7cGFkZGluZy1sZWZ0OjB9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWV7Zm9udC1zaXplOi45ZW07bWFyZ2luLWJvdHRvbTo1cHg7YmFja2dyb3VuZC1jb2xvcjojZWJmNWZmO2JvcmRlci1yYWRpdXM6MnB4O21hcmdpbi1yaWdodDo1cHh9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy12YWx1ZXttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDo1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUubmctdmFsdWUtZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5fS5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlLm5nLXZhbHVlLWRpc2FibGVkIC5uZy12YWx1ZS1sYWJlbHtwYWRkaW5nLWxlZnQ6NXB4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUubmctdmFsdWUtZGlzYWJsZWQgLm5nLXZhbHVlLWxhYmVse3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6NXB4fS5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlIC5uZy12YWx1ZS1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjFweCA1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUgLm5nLXZhbHVlLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzoxcHggNXB4fS5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlIC5uZy12YWx1ZS1pY29uOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2QxZThmZn0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy12YWx1ZSAubmctdmFsdWUtaWNvbi5sZWZ0e2JvcmRlci1yaWdodDoxcHggc29saWQgI2I4ZGJmZn1bZGlyPVwicnRsXCJdIC5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlIC5uZy12YWx1ZS1pY29uLmxlZnR7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNiOGRiZmY7Ym9yZGVyLXJpZ2h0Om5vbmV9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUgLm5nLXZhbHVlLWljb24ucmlnaHR7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNiOGRiZmZ9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy12YWx1ZSAubmctdmFsdWUtaWNvbi5yaWdodHtib3JkZXItbGVmdDowO2JvcmRlci1yaWdodDoxcHggc29saWQgI2I4ZGJmZn0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy1pbnB1dHtwYWRkaW5nOjAgMCAzcHggM3B4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctaW5wdXR7cGFkZGluZzowIDNweCAzcHggMH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy1wbGFjZWhvbGRlcnt0b3A6NXB4O3BhZGRpbmctYm90dG9tOjVweDtwYWRkaW5nLWxlZnQ6M3B4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctcGxhY2Vob2xkZXJ7cGFkZGluZy1yaWdodDozcHg7cGFkZGluZy1sZWZ0OjB9Lm5nLXNlbGVjdCAubmctY2xlYXItd3JhcHBlcntjb2xvcjojOTk5fS5uZy1zZWxlY3QgLm5nLWNsZWFyLXdyYXBwZXI6aG92ZXIgLm5nLWNsZWFye2NvbG9yOiNEMDAyMUJ9Lm5nLXNlbGVjdCAubmctc3Bpbm5lci16b25le3BhZGRpbmc6NXB4IDVweCAwIDB9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0IC5uZy1zcGlubmVyLXpvbmV7cGFkZGluZzo1cHggMCAwIDVweH0ubmctc2VsZWN0IC5uZy1hcnJvdy13cmFwcGVye3dpZHRoOjI1cHg7cGFkZGluZy1yaWdodDo1cHh9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0IC5uZy1hcnJvdy13cmFwcGVye3BhZGRpbmctbGVmdDo1cHg7cGFkZGluZy1yaWdodDowfS5uZy1zZWxlY3QgLm5nLWFycm93LXdyYXBwZXI6aG92ZXIgLm5nLWFycm93e2JvcmRlci10b3AtY29sb3I6IzY2Nn0ubmctc2VsZWN0IC5uZy1hcnJvdy13cmFwcGVyIC5uZy1hcnJvd3tib3JkZXItY29sb3I6Izk5OSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjVweCA1cHggMi41cHh9Lm5nLWRyb3Bkb3duLXBhbmVse2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym94LXNoYWRvdzowIDFweCAwIHJnYmEoMCwwLDAsMC4wNik7bGVmdDowfS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtYm90dG9te3RvcDoxMDAlO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweDtib3JkZXItdG9wLWNvbG9yOiNlNmU2ZTY7bWFyZ2luLXRvcDotMXB4fS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtYm90dG9tIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NHB4fS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtdG9we2JvdHRvbToxMDAlO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLWNvbG9yOiNlNmU2ZTY7bWFyZ2luLWJvdHRvbTotMXB4fS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtdG9wIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uOmZpcnN0LWNoaWxke2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLWhlYWRlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6NXB4IDdweH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLWZvb3Rlcntib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6NXB4IDdweH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRncm91cHt1c2VyLXNlbGVjdDpub25lO3BhZGRpbmc6OHB4IDEwcHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnJnYmEoMCwwLDAsMC41NCk7Y3Vyc29yOnBvaW50ZXJ9Lm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0Z3JvdXAubmctb3B0aW9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGdyb3VwLm5nLW9wdGlvbi1tYXJrZWR7YmFja2dyb3VuZC1jb2xvcjojZjVmYWZmfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGdyb3VwLm5nLW9wdGlvbi1zZWxlY3RlZCwubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRncm91cC5uZy1vcHRpb24tc2VsZWN0ZWQubmctb3B0aW9uLW1hcmtlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlYmY1ZmY7Zm9udC13ZWlnaHQ6NjAwfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6cmdiYSgwLDAsMCwwLjg3KTtwYWRkaW5nOjhweCAxMHB4fS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tc2VsZWN0ZWQsLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1zZWxlY3RlZC5uZy1vcHRpb24tbWFya2Vke2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZWJmNWZmfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tc2VsZWN0ZWQgLm5nLW9wdGlvbi1sYWJlbCwubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLXNlbGVjdGVkLm5nLW9wdGlvbi1tYXJrZWQgLm5nLW9wdGlvbi1sYWJlbHtmb250LXdlaWdodDo2MDB9Lm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1tYXJrZWR7YmFja2dyb3VuZC1jb2xvcjojZjVmYWZmO2NvbG9yOiMzMzN9Lm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1kaXNhYmxlZHtjb2xvcjojY2NjfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tY2hpbGR7cGFkZGluZy1sZWZ0OjIycHh9W2Rpcj1cInJ0bFwiXSAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLWNoaWxke3BhZGRpbmctcmlnaHQ6MjJweDtwYWRkaW5nLWxlZnQ6MH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24gLm5nLXRhZy1sYWJlbHtmb250LXNpemU6ODAlO2ZvbnQtd2VpZ2h0OjQwMDtwYWRkaW5nLXJpZ2h0OjVweH1bZGlyPVwicnRsXCJdIC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbiAubmctdGFnLWxhYmVse3BhZGRpbmctbGVmdDo1cHg7cGFkZGluZy1yaWdodDowfVtkaXI9XCJydGxcIl0gLm5nLWRyb3Bkb3duLXBhbmVse2RpcmVjdGlvbjpydGw7dGV4dC1hbGlnbjpyaWdodH1cbiIsIi8vKiAqKioqKioqIHJlc2V0ICYgbm9ybWFsaXplICoqKioqKiogICovL1xyXG5cclxuLy8gYm94LXNpemluZyB0aGUgc2FtZSBmb3IgYWxsIGVsZW1lbnRzXHJcbmh0bWwge1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XHJcbiAgYm94LXNpemluZzogaW5oZXJpdDtcclxuICAtd2Via2l0LWJveC1zaXppbmc6IGluaGVyaXQ7XHJcbiAgLW1vei1ib3gtc2l6aW5nOiBpbmhlcml0O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIEBpbmNsdWRlIHVuU2VsZWN0O1xyXG59XHJcblxyXG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXHJcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcclxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxyXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXHJcbnNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXHJcbmIsIHUsIGksIGNlbnRlcixcclxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcclxuZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXHJcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxyXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCxcclxuZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLFxyXG5tZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcclxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIGZvbnQtc2l6ZTogMTAwJTtcclxuICAgIGZvbnQ6IGluaGVyaXQ7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSxcclxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5ib2R5IHtcclxuICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxufVxyXG5vbCwgdWwge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG5ibG9ja3F1b3RlLCBxIHtcclxuICAgIHF1b3Rlczogbm9uZTtcclxufVxyXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlcixcclxucTpiZWZvcmUsIHE6YWZ0ZXIge1xyXG4gICAgY29udGVudDogbm9uZTtcclxufVxyXG5cclxuLy90YWJsZVxyXG50YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XHJcbn1cclxudGQsXHJcbnRoIHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4vL2Zvcm1zIGVsZW1lbnRcclxuaW5wdXQge1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgICY6LXdlYmtpdC1hdXRvZmlsbCB7XHJcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMTAwMHB4IHdoaXRlIGluc2V0O1xyXG4gICAgfVxyXG59XHJcblxyXG5idXR0b24sXHJcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcclxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5idXR0b25bZGlzYWJsZWRdLFxyXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcclxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xyXG4gIGJvcmRlcjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcbmlucHV0IHtcclxuICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG59XHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG59XHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5cclxuXHJcbi8vbGlua1xyXG5hIHtcclxuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0JjphY3RpdmUsXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzIHtcclxuXHRcdG91dGxpbmU6IDA7XHJcblx0fVxyXG59XHJcblxyXG5pIHsgZm9udC1zdHlsZTogaXRhbGljOyB9XHJcbmIsIHN0cm9uZyB7IGZvbnQtd2VpZ2h0OiA3MDA7ICAgfVxyXG5cclxuLy8gaW1hZ2VzXHJcbmltZyB7XHJcblx0d2lkdGg6IGF1dG87XHJcblx0bWF4LXdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogYXV0bztcclxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG5cdGJvcmRlcjogMDtcclxufVxyXG5cclxuLmhpZGRlbiB7XHJcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcbiIsIi5hcHAtY29udGVudCB7XHJcblxyXG4gIC5wcmVsb2FkZXIge1xyXG5cclxuICAgIC5sb2FkaW5nLWJhciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYnV0dG9uIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBwYWRkaW5nOiAwIDFyZW07XHJcbiAgaGVpZ2h0OiA0LjJyZW07XHJcblxyXG4gICY6ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pLCBcclxuICAmLmJsdWUtYnV0dG9uX3Jlc2V0e1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZGlzYWJsZWRCdXR0b25CYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChkaXNhYmxlZEJ1dHRvbkhvdmVyQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZGlzYWJsZWRCdXR0b25Gb2N1c0NvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlQnV0dG9uQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChhbHRlcm5hdGl2ZVRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZUJ1dHRvbkhvdmVyQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZUJ1dHRvbkZvY3VzQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChncmVlbkJ1dHRvbkJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQoYWx0ZXJuYXRpdmVUZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGdyZWVuQnV0dG9uSG92ZXJDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChncmVlbkJ1dHRvbkZvY3VzQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCkge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodHVycXVvaXNlQnV0dG9uQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChhbHRlcm5hdGl2ZVRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodHVycXVvaXNlQnV0dG9uSG92ZXJDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCh0dXJxdW9pc2VCdXR0b25Gb2N1c0NvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi50cmFuc3BhcmVudC1idXR0b24ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJvcmRlcjogMC4ycmVtIHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAuaWNvbiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcclxuICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2NvbXBsZXRlLXRlc3R3YWxsZXQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB3aWR0aDogMS43cmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuN3JlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4uaW5wdXQtYmxvY2sge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBtYXJnaW4tYm90dG9tOiAwLjRyZW07XHJcblxyXG4gIC53cmFwLWxhYmVsIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgbWluLWhlaWdodDogMi40cmVtO1xyXG4gIH1cclxuXHJcbiAgbGFiZWwge1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlucHV0W3R5cGU9J3RleHQnXSwgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSwgc2VsZWN0IHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiA0LjJyZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnRleHRhcmVhIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICB0ZXh0YXJlYSB7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiBPcGVuU2Fucywgc2Fucy1zZXJpZjtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICBtaW4taGVpZ2h0OiA3LjVyZW07XHJcbiAgICAgIG1heC1oZWlnaHQ6IDcuNXJlbTtcclxuICAgICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICAgIHJlc2l6ZTogbm9uZTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmVycm9yLWJsb2NrIHtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjRyZW07XHJcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKHJlZFRleHRDb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zdWNjZXNzLWJsb2NrIHtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjRyZW07XHJcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGdyZWVuVGV4dENvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5lcnJvci10ZXh0IHtcclxuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgIGNvbG9yOiB0aGVtZWQocmVkVGV4dENvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW8ge1xyXG5cclxuICAmICsgbGFiZWwge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyLjRyZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIHVuU2VsZWN0O1xyXG4gIH1cclxuXHJcbiAgJjpub3QoY2hlY2tlZCkge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgb3BhY2l0eTogMDtcclxuXHJcbiAgICAmICsgbGFiZWwge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB9XHJcblxyXG4gICAgJiArIGxhYmVsOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMC43cmVtO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICB3aWR0aDogMS40cmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuNHJlbTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkIHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYgKyBsYWJlbDphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMXJlbTtcclxuICAgICAgbGVmdDogMC4zcmVtO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIHdpZHRoOiAwLjhyZW07XHJcbiAgICAgIGhlaWdodDogMC44cmVtO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOmNoZWNrZWQge1xyXG5cclxuICAgICYgKyBsYWJlbDphZnRlciB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94IHtcclxuXHJcbiAgJiArIGxhYmVsIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIHBhZGRpbmctbGVmdDogMy42cmVtO1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSB1blNlbGVjdDtcclxuICB9XHJcblxyXG4gICY6bm90KGNoZWNrZWQpIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogMS42cmVtO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cclxuICAgICYgKyBsYWJlbCB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIH1cclxuXHJcbiAgICAmICsgbGFiZWw6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIGxlZnQ6IDEuNnJlbTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgd2lkdGg6IDEuNHJlbTtcclxuICAgICAgaGVpZ2h0OiAxLjRyZW07XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6Y2hlY2tlZCB7XHJcblxyXG4gICAgJiArIGxhYmVsOmJlZm9yZSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9jb21wbGV0ZS10ZXN0d2FsbGV0LnN2Zyk7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zd2l0Y2gge1xyXG5cclxuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChzd2l0Y2hCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gIH1cclxuXHJcbiAgLmNpcmNsZSB7XHJcblxyXG4gICAgJi5vbiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm9mZiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udGFibGUtdG9vbHRpcCB7XHJcbiAgcGFkZGluZzogMXJlbSAycmVtO1xyXG5cclxuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgIGJhY2tncm91bmQ6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKTtcclxuICAgIGJveC1zaGFkb3c6IHRoZW1lZCh0b29sdGlwU2hhZG93KTtcclxuICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgfVxyXG5cclxuICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XHJcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XHJcbiAgfVxyXG5cclxuICAmLm5nLXRvb2x0aXAtdG9wIHtcclxuICAgIG1hcmdpbi10b3A6IC0xcmVtO1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogLTFyZW07XHJcbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMC41cmVtKTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLXRvcC1sZWZ0IHtcclxuICAgIG1hcmdpbi10b3A6IC0xcmVtO1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogLTFyZW07XHJcbiAgICAgIGxlZnQ6IDAuN3JlbTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC10b3AtcmlnaHQge1xyXG4gICAgbWFyZ2luLXRvcDogLTFyZW07XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAtMXJlbTtcclxuICAgICAgcmlnaHQ6IDAuN3JlbTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAtMXJlbTtcclxuICAgICAgbGVmdDogY2FsYyg1MCUgLSAwLjVyZW0pO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRyYW5zcGFyZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLm5nLXRvb2x0aXAtYm90dG9tLWxlZnQge1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAtMXJlbTtcclxuICAgICAgbGVmdDogMC43cmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLWJvdHRvbS1yaWdodCB7XHJcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG5cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IC0xcmVtO1xyXG4gICAgICByaWdodDogMC43cmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLWxlZnQge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogY2FsYyg1MCUgLSAwLjVyZW0pO1xyXG4gICAgICByaWdodDogLTFyZW07XHJcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xyXG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1yaWdodCB7XHJcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiBjYWxjKDUwJSAtIDAuNXJlbSk7XHJcbiAgICAgIGxlZnQ6IC0xcmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udGFibGUtdG9vbHRpcC1kaW1lbnNpb25zIHtcclxuXHJcbiAgLnRvb2x0aXAtaW5uZXIge1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICBtYXgtd2lkdGg6IDIwcmVtO1xyXG4gICAgbWF4LWhlaWdodDogMTByZW07XHJcbiAgfVxyXG59XHJcblxyXG4uYmFsYW5jZS10b29sdGlwIHtcclxuICBwYWRkaW5nOiAxLjNyZW07XHJcblxyXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgYmFja2dyb3VuZDogdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgYm94LXNoYWRvdzogdGhlbWVkKHRvb2x0aXBTaGFkb3cpO1xyXG4gICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICB9XHJcblxyXG4gIC50b29sdGlwLWlubmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcblxyXG4gICAgLmF2YWlsYWJsZSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuN3JlbTtcclxuXHJcbiAgICAgIGIge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubG9ja2VkIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMC43cmVtO1xyXG5cclxuICAgICAgYiB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5saW5rIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLXRvcCB7XHJcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTtcclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1sZWZ0IHtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1yaWdodCB7XHJcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5hY2NvdW50LXRvb2x0aXAge1xyXG5cclxuICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgbWF4LXdpZHRoOiAxOHJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5jb21tZW50LXRvb2x0aXAge1xyXG5cclxuICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgICBtYXgtd2lkdGg6IDUwcmVtO1xyXG4gICAgbWF4LWhlaWdodDogMjVyZW07XHJcbiAgfVxyXG59XHJcblxyXG4udXBkYXRlLXRvb2x0aXAge1xyXG4gIHBhZGRpbmc6IDEuNXJlbTtcclxuXHJcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICBib3gtc2hhZG93OiB0aGVtZWQodG9vbHRpcFNoYWRvdyk7XHJcbiAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gIH1cclxuXHJcbiAgJi5pbXBvcnRhbnQge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0aGVtZWQodG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQoYWNjb3VudE1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgICYubmctdG9vbHRpcC1sZWZ0LWJvdHRvbSB7XHJcblxyXG4gICAgICAmOmFmdGVyIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRoZW1lZCh0b29sdGlwSW1wb3J0YW50QmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbSB7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcikgdGhlbWVkKHRvb2x0aXBJbXBvcnRhbnRCYWNrZ3JvdW5kQ29sb3IpIHRyYW5zcGFyZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5jcml0aWNhbCB7XHJcbiAgICBwYWRkaW5nOiAyLjVyZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lZCh0b29sdGlwQ3JpdGljYWxCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGFjY291bnRNYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJi5uZy10b29sdGlwLWxlZnQtYm90dG9tIHtcclxuXHJcbiAgICAgICY6YWZ0ZXIge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcikgdGhlbWVkKHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbSB7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcENyaXRpY2FsQmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcENyaXRpY2FsQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50b29sdGlwLWlubmVyIHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuOHJlbTtcclxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcclxuXHJcbiAgICAuc3RhbmRhcmQtdXBkYXRlIHtcclxuICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmltcG9ydGFudC11cGRhdGUge1xyXG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQodG9vbHRpcEltcG9ydGFudFRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY3JpdGljYWwtdXBkYXRlIHtcclxuICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAud3JvbmctdGltZSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZCh0b29sdGlwSW1wb3J0YW50VGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFyZ2luOiAxLjVyZW0gMDtcclxuICAgICAgd2lkdGg6IDVyZW07XHJcbiAgICAgIGhlaWdodDogNXJlbTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCh0b29sdGlwQ3JpdGljYWxUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLm5nLXRvb2x0aXAtbGVmdC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAwLjZyZW07XHJcbiAgICAgIHJpZ2h0OiAtMXJlbTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1yaWdodC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAwLjZyZW07XHJcbiAgICAgIGxlZnQ6IC0xcmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm5neC1jb250ZXh0bWVudSB7XHJcblxyXG4gIC5kcm9wZG93bi1tZW51IHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChjaGFydE9wdGlvbnNCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBib3gtc2hhZG93OiB0aGVtZWQodG9vbHRpcFNoYWRvdyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsaSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtZmFtaWx5OiBPcGVuU2Fucywgc2Fucy1zZXJpZjtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAwLjVlbSAxZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY2hhcnRPcHRpb25zSG92ZXJDb2xvcik7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm5nLXNlbGVjdCB7XHJcblxyXG4gICYuY3VzdG9tLXNlbGVjdCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAmLm5nLXNlbGVjdC1zaW5nbGUge1xyXG4gICAgICAubmctc2VsZWN0LWNvbnRhaW5lciB7XHJcbiAgICAgICAgLm5nLXZhbHVlLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAubmctdmFsdWUge1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS44cmVtO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uZy1zZWxlY3QtY29udGFpbmVyIHtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICBwYWRkaW5nOiAwIDFyZW07XHJcbiAgICAgIGhlaWdodDogNC4ycmVtO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGlucHV0QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubmctdmFsdWUtY29udGFpbmVyIHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICAgICAubmctaW5wdXQge1xyXG4gICAgICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uZy1kcm9wZG93bi1wYW5lbCB7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyB7XHJcblxyXG4gICAgICAgIC5uZy1vcHRpb24ge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoaW5wdXRCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYubmctb3B0aW9uLW1hcmtlZCB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoc2VsZWN0SG92ZXJDb2xvcik7XHJcbiAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYubmctb3B0aW9uLXNlbGVjdGVkIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChzZWxlY3RTZWxlY3RlZENvbG9yKTtcclxuICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgICAgICAgIHdpZHRoOiAxcmVtO1xyXG4gICAgICAgICAgaGVpZ2h0OiAxcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtbW9kYWwtY29udGFpbmVyLCBhcHAtY29uZmlybS1tb2RhbCAge1xyXG5cclxuICAubW9kYWwge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0aGVtZWQobW9kYWxCYWNrZ3JvdW5kKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAuY29udGVudCB7XHJcblxyXG4gICAgICAuaWNvbi5lcnJvciB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHJlZFRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuaWNvbi5zdWNjZXNzIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZ3JlZW5UZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmljb24uaW5mbyB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hY3Rpb24tYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jbG9zZS1idXR0b24ge1xyXG5cclxuICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChjbG9zZUJ1dHRvbkNvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIHtcclxuXHJcbiAgLnRhYmxlIHtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYm9yZGVyLXRvcDogMC4ycmVtIHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAucm93IHtcclxuXHJcbiAgICAgIC5jZWxsIHtcclxuXHJcbiAgICAgICAgJi5sYWJlbCB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi52YWx1ZSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmtleS12YWx1ZSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtcHJvZ3Jlc3MtY29udGFpbmVyIHtcclxuXHJcbiAgLnByb2dyZXNzLWJhci1jb250YWluZXIge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9ncmVzcy1iYXIge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnByb2dyZXNzLWJhci1mdWxsIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1vcGVuLXdhbGxldC1tb2RhbCB7XHJcblxyXG4gIC5tb2RhbCB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lZChtb2RhbEJhY2tncm91bmQpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXNlbmQtbW9kYWwge1xyXG4gIC5tb2RhbCB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lZChtb2RhbEJhY2tncm91bmQpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC50aXRsZSB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgdGhlbWVkKHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC5hY3Rpb24tYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufSIsIiR0aGVtZXM6IChcclxuICBkYXJrOiAoXHJcbiAgICBib2R5QmFja2dyb3VuZENvbG9yOiAjMTMxOTIxLFxyXG4gICAgc2lkZWJhckJhY2tncm91bmRDb2xvcjogcmdiYSgyMywgMzEsIDM5LCAxKSxcclxuICAgIHNpZGViYXJCb3JkZXJDb2xvcjogIzFmMjgzMyxcclxuICAgIG9ubGluZUNvbG9yOiAjNWNkYTlkLFxyXG4gICAgb2ZmbGluZUNvbG9yOiAjZmY1MjUyLFxyXG4gICAgY29udGVudEJhY2tncm91bmRDb2xvcjogcmdiYSg0MywgNTQsIDY4LCAwLjUpLFxyXG4gICAgbWFpblRleHRDb2xvcjogI2UwZTBlMCxcclxuICAgIGFsdGVybmF0aXZlVGV4dENvbG9yOiAjMTExOTIxLFxyXG4gICAgb3B0aW9uYWxUZXh0Q29sb3I6ICM1NTY1NzYsXHJcbiAgICBibHVlVGV4dENvbG9yOiAjNGRiMWZmLFxyXG4gICAgZ3JlZW5UZXh0Q29sb3I6ICM1Y2RhOWQsXHJcbiAgICBvcmFuZ2VUZXh0Q29sb3I6ICNmZjZmMDAsXHJcbiAgICByZWRUZXh0Q29sb3I6ICNmZjUyNTIsXHJcbiAgICBibHVlQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjNGRiMWZmLFxyXG4gICAgYmx1ZUJ1dHRvbkhvdmVyQ29sb3I6ICM4MmQ3ZmYsXHJcbiAgICBibHVlQnV0dG9uRm9jdXNDb2xvcjogIzU5YjVmZCxcclxuICAgIGRpc2FibGVkQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjOWNhZGI3LFxyXG4gICAgZGlzYWJsZWRCdXR0b25Ib3ZlckNvbG9yOiAjYjdkMWUwLFxyXG4gICAgZGlzYWJsZWRCdXR0b25Gb2N1c0NvbG9yOiAjYTdiOWMyLFxyXG4gICAgZ3JlZW5CdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM1Y2RhOWQsXHJcbiAgICBncmVlbkJ1dHRvbkhvdmVyQ29sb3I6ICM4ZGZjYzYsXHJcbiAgICBncmVlbkJ1dHRvbkZvY3VzQ29sb3I6ICM2MmUwYjIsXHJcbiAgICB0dXJxdW9pc2VCdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM0ZGQwZTEsXHJcbiAgICB0dXJxdW9pc2VCdXR0b25Ib3ZlckNvbG9yOiAjODdmNGY1LFxyXG4gICAgdHVycXVvaXNlQnV0dG9uRm9jdXNDb2xvcjogIzQyZDVlOCxcclxuICAgIHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3I6ICMyYjM2NDQsXHJcbiAgICBpbnB1dEJhY2tncm91bmRDb2xvcjogIzE3MWUyNyxcclxuICAgIHNlbGVjdEhvdmVyQ29sb3I6IHJnYmEoNTgsIDY5LCA4NSwgMC41KSxcclxuICAgIHNlbGVjdFNlbGVjdGVkQ29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KSxcclxuICAgIHN3aXRjaEJhY2tncm91bmRDb2xvcjogIzAwMDAwMCxcclxuICAgIGFjY291bnRCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KSxcclxuICAgIGFjY291bnRIb3ZlckJhY2tncm91bmRDb2xvcjogcmdiYSg1OCwgNjksIDg1LCAwLjUpLFxyXG4gICAgYWNjb3VudE1haW5UZXh0Q29sb3I6ICNlMGUwZTAsXHJcbiAgICBhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3I6ICM1NTY1NzYsXHJcbiAgICBhY2NvdW50SW5kaWNhdG9yVGV4dENvbG9yOiAjMTExOTIxLFxyXG4gICAgYWNjb3VudFN3aXRjaEJhY2tncm91bmRDb2xvcjogIzAwMDAwMCxcclxuICAgIGFjY291bnRJbmRpY2F0b3JCYWNrZ3JvdW5kQ29sb3I6ICM0ZGIxZmYsXHJcbiAgICB0YWJJbmFjdGl2ZUJhY2tncm91bmRDb2xvcjogcmdiYSgyMywgMzEsIDM5LCAwLjUpLFxyXG4gICAgdGFiSG92ZXJCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoNTgsIDY5LCA4NSwgMC41KSxcclxuICAgIHRhYmxlQmFja2dyb3VuZENvbG9yOiAjMTgyMDJhLFxyXG4gICAgbWVzc2FnZU15QmFja2dyb3VuZENvbG9yOiAjMmEzNTQ0LFxyXG4gICAgbWVzc2FnZUJ1ZGR5QmFja2dyb3VuZENvbG9yOiAjMTgyMDJhLFxyXG4gICAgcHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3I6ICMzNDNmNGEsXHJcbiAgICBwcm9ncmVzc0JhckZ1bGxCYWNrZ3JvdW5kQ29sb3I6ICM1Y2RhOWQsXHJcbiAgICBjaGFydE9wdGlvbnNCYWNrZ3JvdW5kQ29sb3I6ICMyYjM2NDQsXHJcbiAgICBjaGFydE9wdGlvbnNIb3ZlckNvbG9yOiAjNTU2NTc2LFxyXG4gICAgdG9vbHRpcEJhY2tncm91bmRDb2xvcjogIzQyNTA1ZixcclxuICAgIHRvb2x0aXBJbXBvcnRhbnRUZXh0Q29sb3I6ICNmZjZmMDAsXHJcbiAgICB0b29sdGlwSW1wb3J0YW50QmFja2dyb3VuZENvbG9yOiAjNWYyYjExLFxyXG4gICAgdG9vbHRpcENyaXRpY2FsVGV4dENvbG9yOiAjZmY1MjUyLFxyXG4gICAgdG9vbHRpcENyaXRpY2FsQmFja2dyb3VuZENvbG9yOiAjNWYxZDFkLFxyXG4gICAgdG9vbHRpcFNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjUpLFxyXG4gICAgbW9kYWxCYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtZGFyay5wbmcpLFxyXG4gICAgY2xvc2VCdXR0b25Db2xvcjogIzU1NjU3NixcclxuICAgIGhvdmVyUGFnZTogIzNhNDg1YVxyXG4gICksXHJcbiAgZ3JheTogKFxyXG4gICAgYm9keUJhY2tncm91bmRDb2xvcjogIzEwMTQxNyxcclxuICAgIHNpZGViYXJCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoMjgsIDMwLCAzMywgMSksXHJcbiAgICBzaWRlYmFyQm9yZGVyQ29sb3I6ICMyZTMzMzcsXHJcbiAgICBvbmxpbmVDb2xvcjogIzQ3Y2Y4ZCxcclxuICAgIG9mZmxpbmVDb2xvcjogI2ZmNTI1MixcclxuICAgIGNvbnRlbnRCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KSxcclxuICAgIG1haW5UZXh0Q29sb3I6ICNlMGUwZTAsXHJcbiAgICBhbHRlcm5hdGl2ZVRleHRDb2xvcjogIzFhMWExYSxcclxuICAgIG9wdGlvbmFsVGV4dENvbG9yOiAjNTY1YzYyLFxyXG4gICAgYmx1ZVRleHRDb2xvcjogIzQyYTVmNSxcclxuICAgIGdyZWVuVGV4dENvbG9yOiAjNDdjZjhkLFxyXG4gICAgb3JhbmdlVGV4dENvbG9yOiAjZmY2ZjAwLFxyXG4gICAgcmVkVGV4dENvbG9yOiAjZmY1MjUyLFxyXG4gICAgYmx1ZUJ1dHRvbkJhY2tncm91bmRDb2xvcjogIzQyYTVmNSxcclxuICAgIGJsdWVCdXR0b25Ib3ZlckNvbG9yOiAjODZkNmZmLFxyXG4gICAgYmx1ZUJ1dHRvbkZvY3VzQ29sb3I6ICM1ZmI2ZmMsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbkJhY2tncm91bmRDb2xvcjogIzc5ODQ4ZixcclxuICAgIGRpc2FibGVkQnV0dG9uSG92ZXJDb2xvcjogI2ExYWViYixcclxuICAgIGRpc2FibGVkQnV0dG9uRm9jdXNDb2xvcjogIzhhOTU5ZixcclxuICAgIGdyZWVuQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjNDdjZjhkLFxyXG4gICAgZ3JlZW5CdXR0b25Ib3ZlckNvbG9yOiAjN2JmNmM2LFxyXG4gICAgZ3JlZW5CdXR0b25Gb2N1c0NvbG9yOiAjNWNkYzllLFxyXG4gICAgdHVycXVvaXNlQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjM2VjNWQ3LFxyXG4gICAgdHVycXVvaXNlQnV0dG9uSG92ZXJDb2xvcjogIzcyZWRmZSxcclxuICAgIHR1cnF1b2lzZUJ1dHRvbkZvY3VzQ29sb3I6ICM1MGQwZTEsXHJcbiAgICB0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yOiAjMmYzNDM4LFxyXG4gICAgaW5wdXRCYWNrZ3JvdW5kQ29sb3I6ICMyOTJkMzEsXHJcbiAgICBzZWxlY3RIb3ZlckNvbG9yOiByZ2JhKDU4LCA2MiwgNjYsIDAuNSksXHJcbiAgICBzZWxlY3RTZWxlY3RlZENvbG9yOiByZ2JhKDM3LCA0MCwgNDMsIDAuNSksXHJcbiAgICBzd2l0Y2hCYWNrZ3JvdW5kQ29sb3I6ICMwMDAwMDAsXHJcbiAgICBhY2NvdW50QmFja2dyb3VuZENvbG9yOiByZ2JhKDM3LCA0MCwgNDMsIDAuNSksXHJcbiAgICBhY2NvdW50SG92ZXJCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoNTgsIDYyLCA2NiwgMC41KSxcclxuICAgIGFjY291bnRNYWluVGV4dENvbG9yOiAjZTBlMGUwLFxyXG4gICAgYWNjb3VudE9wdGlvbmFsVGV4dENvbG9yOiAjNTY1YzYyLFxyXG4gICAgYWNjb3VudEluZGljYXRvclRleHRDb2xvcjogIzFhMWExYSxcclxuICAgIGFjY291bnRTd2l0Y2hCYWNrZ3JvdW5kQ29sb3I6ICMwMDAwMDAsXHJcbiAgICBhY2NvdW50SW5kaWNhdG9yQmFja2dyb3VuZENvbG9yOiAjNDJhNWY1LFxyXG4gICAgdGFiSW5hY3RpdmVCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoMjgsIDMwLCAzMywgMC41KSxcclxuICAgIHRhYkhvdmVyQmFja2dyb3VuZENvbG9yOiByZ2JhKDU4LCA2MiwgNjYsIDAuNSksXHJcbiAgICB0YWJsZUJhY2tncm91bmRDb2xvcjogIzI1MjkyZCxcclxuICAgIG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcjogIzMwMzYzYyxcclxuICAgIG1lc3NhZ2VCdWRkeUJhY2tncm91bmRDb2xvcjogIzI1MjkyZCxcclxuICAgIHByb2dyZXNzQmFyQmFja2dyb3VuZENvbG9yOiAjMzYzYTNlLFxyXG4gICAgcHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yOiAjNDdjZjhkLFxyXG4gICAgY2hhcnRPcHRpb25zQmFja2dyb3VuZENvbG9yOiAjMjkyZDMxLFxyXG4gICAgY2hhcnRPcHRpb25zSG92ZXJDb2xvcjogIzUxNTk2MCxcclxuICAgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I6ICMzZTQ2NGMsXHJcbiAgICB0b29sdGlwSW1wb3J0YW50VGV4dENvbG9yOiAjZmY2ZjAwLFxyXG4gICAgdG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcjogIzU1MjQwZCxcclxuICAgIHRvb2x0aXBDcml0aWNhbFRleHRDb2xvcjogI2ZmNTI1MixcclxuICAgIHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcjogIzRjMTkxOSxcclxuICAgIHRvb2x0aXBTaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KSxcclxuICAgIG1vZGFsQmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWdyYXkucG5nKSxcclxuICAgIGNsb3NlQnV0dG9uQ29sb3I6ICM1MTU5NjAsXHJcbiAgICBob3ZlclBhZ2U6ICMzODNlNDNcclxuICApLFxyXG4gIHdoaXRlOiAoXHJcbiAgICBib2R5QmFja2dyb3VuZENvbG9yOiAjZWVlZWVlLFxyXG4gICAgc2lkZWJhckJhY2tncm91bmRDb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKSxcclxuICAgIHNpZGViYXJCb3JkZXJDb2xvcjogI2ViZWJlYixcclxuICAgIG9ubGluZUNvbG9yOiAjNDZjMTcyLFxyXG4gICAgb2ZmbGluZUNvbG9yOiAjZmY1MjUyLFxyXG4gICAgY29udGVudEJhY2tncm91bmRDb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpLFxyXG4gICAgbWFpblRleHRDb2xvcjogIzQzNDU0YixcclxuICAgIGFsdGVybmF0aXZlVGV4dENvbG9yOiAjZmVmZWZlLFxyXG4gICAgb3B0aW9uYWxUZXh0Q29sb3I6ICNhMGE1YWIsXHJcbiAgICBibHVlVGV4dENvbG9yOiAjMmM5NWYxLFxyXG4gICAgZ3JlZW5UZXh0Q29sb3I6ICM0NmMxNzIsXHJcbiAgICBvcmFuZ2VUZXh0Q29sb3I6ICNmZjZmMDAsXHJcbiAgICByZWRUZXh0Q29sb3I6ICNmZjUyNTIsXHJcbiAgICBibHVlQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjMmM5NWYxLFxyXG4gICAgYmx1ZUJ1dHRvbkhvdmVyQ29sb3I6ICM1Y2IzZmYsXHJcbiAgICBibHVlQnV0dG9uRm9jdXNDb2xvcjogIzM3OWZmYSxcclxuICAgIGRpc2FibGVkQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjOTBhNGFlLFxyXG4gICAgZGlzYWJsZWRCdXR0b25Ib3ZlckNvbG9yOiAjYWViZWM2LFxyXG4gICAgZGlzYWJsZWRCdXR0b25Gb2N1c0NvbG9yOiAjYTdiOWMyLFxyXG4gICAgZ3JlZW5CdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM0NmMxNzIsXHJcbiAgICBncmVlbkJ1dHRvbkhvdmVyQ29sb3I6ICM1YWQ1ODYsXHJcbiAgICBncmVlbkJ1dHRvbkZvY3VzQ29sb3I6ICM1M2M3N2MsXHJcbiAgICB0dXJxdW9pc2VCdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICMyNmI2YzcsXHJcbiAgICB0dXJxdW9pc2VCdXR0b25Ib3ZlckNvbG9yOiAjNTJjYmQ5LFxyXG4gICAgdHVycXVvaXNlQnV0dG9uRm9jdXNDb2xvcjogIzMxYmVjZixcclxuICAgIHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3I6ICNlYmViZWIsXHJcbiAgICBpbnB1dEJhY2tncm91bmRDb2xvcjogI2U2ZTZlNixcclxuICAgIHNlbGVjdEhvdmVyQ29sb3I6IHJnYmEoMjQwLCAyNDAsIDI0MCwgMC41KSxcclxuICAgIHNlbGVjdFNlbGVjdGVkQ29sb3I6IHJnYmEoMjI0LCAyMjQsIDIyNCwgMC41KSxcclxuICAgIHN3aXRjaEJhY2tncm91bmRDb2xvcjogI2UwZTBlMCxcclxuICAgIGFjY291bnRCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoMzAsIDEzNiwgMjI5LCAxKSxcclxuICAgIGFjY291bnRIb3ZlckJhY2tncm91bmRDb2xvcjogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjUpLFxyXG4gICAgYWNjb3VudE1haW5UZXh0Q29sb3I6ICNmZmZmZmYsXHJcbiAgICBhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3I6ICM5MWJhZjEsXHJcbiAgICBhY2NvdW50SW5kaWNhdG9yVGV4dENvbG9yOiAjNDM0NTRiLFxyXG4gICAgYWNjb3VudFN3aXRjaEJhY2tncm91bmRDb2xvcjogI2ZmZmZmZixcclxuICAgIGFjY291bnRJbmRpY2F0b3JCYWNrZ3JvdW5kQ29sb3I6ICNmZmZmZmYsXHJcbiAgICB0YWJJbmFjdGl2ZUJhY2tncm91bmRDb2xvcjogcmdiYSgyMjQsIDIyNCwgMjI0LCAwLjUpLFxyXG4gICAgdGFiSG92ZXJCYWNrZ3JvdW5kQ29sb3I6ICNmZmZmZmYsXHJcbiAgICB0YWJsZUJhY2tncm91bmRDb2xvcjogI2ZmZmZmZixcclxuICAgIG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcjogI2ZmZixcclxuICAgIG1lc3NhZ2VCdWRkeUJhY2tncm91bmRDb2xvcjogI2VkZWRlZCxcclxuICAgIHByb2dyZXNzQmFyQmFja2dyb3VuZENvbG9yOiAjZGNkY2RjLFxyXG4gICAgcHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yOiAjNDZjMTcyLFxyXG4gICAgY2hhcnRPcHRpb25zQmFja2dyb3VuZENvbG9yOiAjZTBlMGUwLFxyXG4gICAgY2hhcnRPcHRpb25zSG92ZXJDb2xvcjogI2ZmZmZmZixcclxuICAgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I6ICNmZmZmZmYsXHJcbiAgICB0b29sdGlwSW1wb3J0YW50VGV4dENvbG9yOiAjZmZmZmZmLFxyXG4gICAgdG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcjogI2VmNmMwMCxcclxuICAgIHRvb2x0aXBDcml0aWNhbFRleHRDb2xvcjogI2ZmZmZmZixcclxuICAgIHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcjogI2U1MzkzNSxcclxuICAgIHRvb2x0aXBTaGFkb3c6IDAgMCAxcmVtIHJnYmEoMTIwLCAxMjAsIDEyMCwgMC41KSxcclxuICAgIG1vZGFsQmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLXdoaXRlLnBuZyksXHJcbiAgICBjbG9zZUJ1dHRvbkNvbG9yOiAjNDM0NTRiLFxyXG4gICAgaG92ZXJQYWdlOiAjZmZmZmZmXHJcbiAgKVxyXG4pO1xyXG5cclxuXHJcblxyXG5cclxuXHJcbiIsImFwcC1tYWluLCBhcHAtY3JlYXRlLXdhbGxldCwgYXBwLW9wZW4td2FsbGV0LCBhcHAtcmVzdG9yZS13YWxsZXQsIGFwcC1zZWVkLXBocmFzZSwgYXBwLXdhbGxldC1kZXRhaWxzLCBhcHAtYXNzaWduLWFsaWFzLCBhcHAtZWRpdC1hbGlhcywgYXBwLXRyYW5zZmVyLWFsaWFzLCBhcHAtc2V0dGluZ3MsIGFwcC1sb2dpbiB7XHJcbiAgZmxleDogMSAxIGF1dG87XHJcbiAgcGFkZGluZzogM3JlbTtcclxuICBtaW4td2lkdGg6IDg1cmVtO1xyXG5cclxuICAuY29udGVudCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nOiAzcmVtO1xyXG4gICAgbWluLWhlaWdodDogMTAwJTtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGNvbnRlbnRCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC5oZWFkIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtbWFpbiB7XHJcblxyXG4gIC5jb250ZW50IHtcclxuXHJcbiAgICAuYWRkLXdhbGxldCB7XHJcblxyXG4gICAgICAuYWRkLXdhbGxldC1oZWxwIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtc2VlZC1waHJhc2Uge1xyXG5cclxuICAuc2VlZC1waHJhc2UtY29udGVudCB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcilcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC13YWxsZXQtZGV0YWlscyB7XHJcblxyXG4gIC5zZWVkLXBocmFzZSB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtc2V0dGluZ3Mge1xyXG5cclxuICAuY29udGVudCB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gICAgLnRoZW1lLXNlbGVjdGlvbiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zY2FsZS1zZWxlY3Rpb24ge1xyXG5cclxuICAgICAgLmJ1dHRvbi1ibG9jayB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYkluYWN0aXZlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5sYWJlbCB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLmxhYmVsIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1sb2dpbiB7XHJcbiAgbWluLXdpZHRoOiBpbmhlcml0O1xyXG59XHJcbiIsImFwcC1zaWRlYmFyIHtcclxuXHJcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoc2lkZWJhckJhY2tncm91bmRDb2xvcik7XHJcbiAgfVxyXG5cclxuICAuc2lkZWJhci1hY2NvdW50cyB7XHJcblxyXG4gICAgLnNpZGViYXItYWNjb3VudHMtaGVhZGVyIHtcclxuXHJcbiAgICAgIGgzIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgYnV0dG9uIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zaWRlYmFyLWFjY291bnRzLWxpc3Qge1xyXG5cclxuICAgICAgLnNpZGViYXItYWNjb3VudCB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2lkZWJhci1hY2NvdW50LXJvdyB7XHJcblxyXG4gICAgICAgICAgLnRleHQge1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuaW5kaWNhdG9yIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlQnV0dG9uQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuXHJcbiAgICAgICAgICAgIC5wcm9ncmVzcy1iYXIge1xyXG5cclxuICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChwcm9ncmVzc0JhckJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAuZmlsbCB7XHJcblxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmLmFjY291bnQtc3luY2hyb25pemF0aW9uIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjdGl2ZSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgY29sb3I6IHRoZW1lZChhY2NvdW50TWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLnNpZGViYXItYWNjb3VudC1yb3cge1xyXG5cclxuICAgICAgICAgICAgLnRleHQge1xyXG5cclxuICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYWNjb3VudE9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5pbmRpY2F0b3Ige1xyXG5cclxuICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50SW5kaWNhdG9yQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYWNjb3VudEluZGljYXRvclRleHRDb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc3dpdGNoIHtcclxuXHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYWNjb3VudFN3aXRjaEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5hY2NvdW50LXN5bmNocm9uaXphdGlvbiB7XHJcblxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3Zlcjpub3QoLmFjdGl2ZSkge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYWNjb3VudEhvdmVyQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmFmdGVyIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDAlLCB0aGVtZWQoc2lkZWJhckJhY2tncm91bmRDb2xvcikgMTAwJSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zaWRlYmFyLXNldHRpbmdzIHtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMC4ycmVtIHNvbGlkIHRoZW1lZChzaWRlYmFyQm9yZGVyQ29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC53cmFwLWJ1dHRvbiB7XHJcblxyXG4gICAgICBidXR0b24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuYWN0aXZlIHtcclxuXHJcbiAgICAgICAgYnV0dG9uIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGFjY291bnRCYWNrZ3JvdW5kQ29sb3IpIWltcG9ydGFudDtcclxuICAgICAgICAgICAgY29sb3I6IHRoZW1lZChhY2NvdW50TWFpblRleHRDb2xvcikhaW1wb3J0YW50O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5pY29uIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50SW5kaWNhdG9yQmFja2dyb3VuZENvbG9yKSFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIi5zeW5jaHJvbml6YXRpb24tc3RhdHVzIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGZsZXg6IDAgMCA3cmVtO1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgfVxyXG5cclxuICAuc3RhdHVzLWNvbnRhaW5lciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICAgIC5vZmZsaW5lLCAub25saW5lIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAyLjJyZW07XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgICAgIGhlaWdodDogMS4ycmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm9mZmxpbmU6YmVmb3JlIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChvZmZsaW5lQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm9ubGluZTpiZWZvcmUge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKG9ubGluZUNvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zeW5jaW5nLCAubG9hZGluZyB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA1cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIGhlaWdodDogMC43cmVtO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIC5zeW5jaW5nIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgICAucHJvZ3Jlc3MtYmFyIHtcclxuICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChwcm9ncmVzc0JhckJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAuZmlsbCB7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyRnVsbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi5kb3dubG9hZGluZyB7XHJcblxyXG4gICAgICAgICAgLnByb2dyZXNzLWJhciB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuZmlsbCB7XHJcblxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAucHJvZ3Jlc3MtcGVyY2VudCB7XHJcbiAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDAuN3JlbTtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmxvYWRpbmcge1xyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyRnVsbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFuaW1hdGlvbjogbW92ZSA1cyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTpcclxuICAgICAgICAgIC13ZWJraXQtZ3JhZGllbnQoXHJcbiAgICAgICAgICAgICAgbGluZWFyLCAwIDAsIDEwMCUgMTAwJSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4xMjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjEyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjI1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC4yNTAsIHJnYmEoMCwgMCwgMCwgLjEwKSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMzc1LCByZ2JhKDAsIDAsIDAsIC4xMCkpLCBjb2xvci1zdG9wKC4zNzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC41MDAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNTAwLCByZ2JhKDAsIDAsIDAsIC4xNSkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjYyNSwgcmdiYSgwLCAwLCAwLCAuMTUpKSwgY29sb3Itc3RvcCguNjI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNzUwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjc1MCwgcmdiYSgwLCAwLCAwLCAuMTApKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC44NzUsIHJnYmEoMCwgMCwgMCwgLjEwKSksIGNvbG9yLXN0b3AoLjg3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIHRvKHRyYW5zcGFyZW50KVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIC13ZWJraXQtZ3JhZGllbnQoXHJcbiAgICAgICAgICAgICAgbGluZWFyLCAwIDEwMCUsIDEwMCUgMCxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4xMjUsIHJnYmEoMCwgMCwgMCwgLjMwKSksIGNvbG9yLXN0b3AoLjEyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjI1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC4yNTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMzc1LCByZ2JhKDAsIDAsIDAsIC4yNSkpLCBjb2xvci1zdG9wKC4zNzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC41MDAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNTAwLCByZ2JhKDAsIDAsIDAsIC4zMCkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjYyNSwgcmdiYSgwLCAwLCAwLCAuMzApKSwgY29sb3Itc3RvcCguNjI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNzUwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjc1MCwgcmdiYSgwLCAwLCAwLCAuMjUpKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC44NzUsIHJnYmEoMCwgMCwgMCwgLjI1KSksIGNvbG9yLXN0b3AoLjg3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIHRvKHRyYW5zcGFyZW50KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDdyZW0gN3JlbTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC51cGRhdGUtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgIC51cGRhdGUtdGV4dCB7XHJcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuOHJlbTtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAgICYudGltZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICBtYXJnaW46IDAuM3JlbSAwIDAgMC42cmVtO1xyXG4gICAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuMnJlbTtcclxuXHJcbiAgICAgICYudXBkYXRlIHtcclxuICAgICAgICBtYXNrOiB1cmwoLi9hc3NldHMvaWNvbnMvdXBkYXRlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi50aW1lIHtcclxuICAgICAgICBtYXNrOiB1cmwoLi9hc3NldHMvaWNvbnMvdGltZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc3RhbmRhcmQge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pbXBvcnRhbnQge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChvcmFuZ2VUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNyaXRpY2FsIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQocmVkVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50aW1lIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQob3JhbmdlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pY29uIHtcclxuXHJcbiAgICAgICYuc3RhbmRhcmQge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuaW1wb3J0YW50IHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQob3JhbmdlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuY3JpdGljYWwge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChyZWRUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi50aW1lIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQob3JhbmdlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIG1vdmUge1xyXG4gIDAlIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgLTdyZW07XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA3cmVtO1xyXG4gIH1cclxufVxyXG4iLCJhcHAtd2FsbGV0IHtcclxuXHJcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gIH1cclxuXHJcbiAgLmhlYWRlciB7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5pY29uIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICY6ZGlzYWJsZWQge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hbGlhcyB7XHJcblxyXG4gICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZHJlc3Mge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC5pY29uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnRhYnMge1xyXG5cclxuICAgIC50YWJzLWhlYWRlciB7XHJcblxyXG4gICAgICAudGFiIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodGFiSW5hY3RpdmVCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaW5kaWNhdG9yIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGFjY291bnRJbmRpY2F0b3JCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKGFjY291bnRJbmRpY2F0b3JUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY29udGVudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmhvdmVyOm5vdCguYWN0aXZlKTpub3QoLmRpc2FibGVkKSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCh0YWJIb3ZlckJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYnMtY29udGVudCB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY29udGVudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucGFnaW5hdGlvbi13cmFwcGVyIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChjb250ZW50QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnBhZ2luYXRpb24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCB0aGVtZWQodHJhbnNwYXJlbnRCdXR0b25Cb3JkZXJDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3IpO1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodGFibGVCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICBcclxuICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoaG92ZXJQYWdlKTtcclxuICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXNlbmQge1xyXG5cclxuICAuZm9ybS1zZW5kIHtcclxuXHJcbiAgICAuc2VuZC1zZWxlY3Qge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYWRkaXRpb25hbC1kZXRhaWxzIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlcjogMC4ycmVtIHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXJlY2VpdmUge1xyXG5cclxuICAuYnRuLWNvcHktYWRkcmVzcyB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1oaXN0b3J5IHtcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuXHJcbiAgICAgICAgJi5sb2NrZWQtdHJhbnNhY3Rpb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKDRuKzEpIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYmxlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKDRuKzIpIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYmxlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKDRuKzMpIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOm50aC1jaGlsZCg0bis0KSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cyB7XHJcblxyXG4gICAgICAgICAgLmNvbmZpcm1hdGlvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuZmlsbCB7XHJcblxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyRnVsbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubG9jay10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChvcmFuZ2VUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnVubG9jay10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zdGF0dXMuc2VuZCB7XHJcblxyXG4gICAgICAgICAgLnN0YXR1cy10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocmVkVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cy5yZWNlaXZlZCB7XHJcblxyXG4gICAgICAgICAgLnN0YXR1cy10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZ3JlZW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtY29udHJhY3RzIHtcclxuXHJcbiAgLndyYXAtdGFibGUge1xyXG5cclxuICAgIC5jb250cmFjdCB7XHJcblxyXG4gICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgICYubmV3LCAmLmFsZXJ0IHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHJlZFRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnB1cmNoYXNlLCAmLnNlbGwge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtcHVyY2hhc2Uge1xyXG5cclxuICAuZm9ybS1wdXJjaGFzZSB7XHJcblxyXG4gICAgLnB1cmNoYXNlLXNlbGVjdCB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wdXJjaGFzZS1zdGF0ZXMge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hZGRpdGlvbmFsLWRldGFpbHMge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYm9yZGVyOiAwLjJyZW0gc29saWQgdGhlbWVkKHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XHJcblxyXG4gICAgLnByb2dyZXNzLWJhciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChwcm9ncmVzc0JhckZ1bGxCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLW1lc3NhZ2VzIHtcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuXHJcbiAgICAgICAgdGQ6Zmlyc3QtY2hpbGQge1xyXG5cclxuICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LXRydW5jYXRlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5pY29uIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChyZWRUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtdHlwaW5nLW1lc3NhZ2Uge1xyXG5cclxuICAuaGVhZCB7XHJcblxyXG4gICAgLmludGVybG9jdXRvciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWVzc2FnZXMtY29udGVudCB7XHJcblxyXG4gICAgLm1lc3NhZ2VzLWxpc3Qge1xyXG5cclxuICAgICAgZGl2IHtcclxuXHJcbiAgICAgICAgJi5kYXRlIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLm15IHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjpiZWZvcmUge1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvO1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgIGxlZnQ6IC0xLjFyZW07XHJcbiAgICAgICAgICAgIGJvcmRlcjogMS4ycmVtIHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdGhlbWVkKG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYnVkZHkge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQobWVzc2FnZUJ1ZGR5QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmOmFmdGVyIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkbztcclxuICAgICAgICAgICAgcmlnaHQ6IC0xLjFyZW07XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgYm9yZGVyOiAxLjJyZW0gc29saWQgdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0aGVtZWQobWVzc2FnZUJ1ZGR5QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXN0YWtpbmcge1xyXG5cclxuICAuY2hhcnQtaGVhZGVyIHtcclxuXHJcbiAgICAuZ2VuZXJhbCB7XHJcblxyXG4gICAgICAubGFiZWwge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLm9wdGlvbnMge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdGVkIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jaGFydC1vcHRpb25zIHtcclxuXHJcbiAgICAudGl0bGUge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAub3B0aW9ucyB7XHJcblxyXG4gICAgICBidXR0b24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY2hhcnRPcHRpb25zQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYWN0aXZlIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGNoYXJ0T3B0aW9uc0hvdmVyQ29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmlucHV0LWJsb2NrLWFsaWFzIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIC5hbGlhcy1kcm9wZG93biB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDYuNXJlbTtcclxuICAgIG1heC1oZWlnaHQ6IDEwcmVtO1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGlucHV0QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXYge1xyXG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgcGFkZGluZzogMXJlbTtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHNlbGVjdEhvdmVyQ29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJhcHAtY29udGFjdHMsIGFwcC1hZGQtY29udGFjdHMsXHJcbmFwcC1jb250YWN0LXNlbmQsIGFwcC1leHBvcnQtaW1wb3J0IHtcclxuICBmbGV4OiAxIDEgYXV0bztcclxuICBwYWRkaW5nOiAzcmVtO1xyXG4gIG1pbi13aWR0aDogODVyZW07XHJcblxyXG4gIC5jb250ZW50IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDNyZW07XHJcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY29udGVudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLmhlYWQge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1jb250YWN0cyB7XHJcbiAgXHJcbiAgdGFibGUge1xyXG5cclxuICAgIC5hbGlhcyB7XHJcbiAgXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICBcclxuICAgICAgLmljb24ge1xyXG4gIFxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gIFxyXG4gICAgICBzcGFuIHtcclxuICAgICAgICBcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcilcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mb290ZXIge1xyXG4gICAgXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgIH1cclxuICBcclxuICAgIC5pbXBvcnQtYnRuIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5pY29uIHtcclxuICBcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbn1cclxuXHJcbmFwcC1jb250YWN0LXNlbmQge1xyXG4gIFxyXG4gIC53YWxsZXRzLXNlbGVjdGlvbiB7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iLCIuaGVhZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIHBhZGRpbmc6IDAgM3JlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDNyZW07XHJcblxyXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICB9XHJcblxyXG4gIC5icmVhZGNydW1icyB7XHJcblxyXG4gICAgPiBzcGFuLCBhIHtcclxuXHJcbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgb3V0bGluZS1zdHlsZTogbm9uZTtcclxuXHJcbiAgICAgICAgJjphZnRlciB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgcHNldWRvO1xyXG4gICAgICAgICAgdG9wOiAwLjVyZW07XHJcbiAgICAgICAgICByaWdodDogLTEuNXJlbTtcclxuICAgICAgICAgIHdpZHRoOiAwLjlyZW07XHJcbiAgICAgICAgICBoZWlnaHQ6IDAuOXJlbTtcclxuICAgICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1yaWdodC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICBtYXNrLXNpemU6IGNvdmVyO1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuYmFjay1idG4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiAjNGRiMWZmO1xyXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjNyZW07XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjdyZW07XHJcbiAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9iYWNrLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDAuOXJlbTtcclxuICAgICAgaGVpZ2h0OiAwLjlyZW07XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLnNjcm9sbGVkLWNvbnRlbnQge1xyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgIHdpZHRoOiAxcmVtO1xyXG4gICAgaGVpZ2h0OiAxcmVtO1xyXG4gIH1cclxuXHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xyXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcclxuICB9XHJcblxyXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XHJcbiAgfVxyXG59XHJcbiIsInRhYmxlIHtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgdGhlYWQge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgdHIge1xyXG4gICAgICBoZWlnaHQ6IDRyZW07XHJcblxyXG4gICAgICB0aCB7XHJcbiAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogM3JlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGJvZHkge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICB0ciB7XHJcbiAgICAgIGhlaWdodDogMy41cmVtO1xyXG5cclxuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYmxlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRkIHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS43cmVtO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAyMHJlbTtcclxuXHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gQkFTRVxyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9iYXNlL21peGlucyc7XHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2Jhc2UvbnVsbCc7XHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2Jhc2UvdGhlbWUnO1xyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9iYXNlL2Jhc2UnO1xyXG5cclxuLy8gTEFZT1VUXHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2xheW91dC9tYWluJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbGF5b3V0L3NldHRpbmdzJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbGF5b3V0L3NpZGViYXInO1xyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9sYXlvdXQvc3RhdHVzJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbGF5b3V0L3dhbGxldCc7XHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2xheW91dC9jb250YWN0JztcclxuXHJcbi8vIE1PRFVMRVNcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbW9kdWxlcy9oZWFkJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbW9kdWxlcy9zY3JvbGwnO1xyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9tb2R1bGVzL3RhYmxlJztcclxuXHJcbkBpbXBvcnQgXCJ+QG5nLXNlbGVjdC9uZy1zZWxlY3QvdGhlbWVzL2RlZmF1bHQudGhlbWUuY3NzXCI7XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnM7XHJcbiAgc3JjOiB1cmwofnNyYy9hc3NldHMvZm9udHMvT3BlblNhbnMtTGlnaHQudHRmKTtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnM7XHJcbiAgc3JjOiB1cmwofnNyYy9hc3NldHMvZm9udHMvT3BlblNhbnMtUmVndWxhci50dGYpO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiBPcGVuU2FucztcclxuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1TZW1pQm9sZC50dGYpO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiBPcGVuU2FucztcclxuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1Cb2xkLnR0Zik7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xyXG4gIHNyYzogdXJsKH5zcmMvYXNzZXRzL2ZvbnRzL09wZW5TYW5zLUV4dHJhQm9sZC50dGYpO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbn1cclxuXHJcblxyXG5odG1sIHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnMsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxMHB4O1xyXG59XHJcblxyXG5ib2R5IHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnMsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgd2lkdGg6IDEwMHZ3O1xyXG4gIGhlaWdodDogMTAwdmg7XHJcblxyXG4gICYudGhlbWUtZGFyayB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMTMxOTIxIHVybChcImFzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1kYXJrLnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICB9XHJcblxyXG4gICYudGhlbWUtZ3JheSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMTAxNDE3IHVybChcImFzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1ncmF5LnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICB9XHJcblxyXG4gICYudGhlbWUtd2hpdGUge1xyXG4gICAgYmFja2dyb3VuZDogI2VlZWVlZSB1cmwoXCJhc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtd2hpdGUucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIH1cclxuXHJcbiAgYXBwLXJvb3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLnVwZGF0ZS10b29sdGlwIHtcclxuXHJcbiAgLnRvb2x0aXAtaW5uZXIge1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKGFzc2V0cy9pY29ucy91cGRhdGUtYWxlcnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */\", '', '']]","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target, parent) {\n if (parent){\n return parent.querySelector(target);\n }\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target, parent) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target, parent);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of - - diff --git a/src/gui/qt-daemon/html/alert.svg b/src/gui/qt-daemon/html/alert.svg deleted file mode 100644 index b549fd95..00000000 --- a/src/gui/qt-daemon/html/alert.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/arrow-down.svg b/src/gui/qt-daemon/html/arrow-down.svg deleted file mode 100644 index d24a3aeb..00000000 --- a/src/gui/qt-daemon/html/arrow-down.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/arrow-right.svg b/src/gui/qt-daemon/html/arrow-right.svg deleted file mode 100644 index bd4269b3..00000000 --- a/src/gui/qt-daemon/html/arrow-right.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/src/gui/qt-daemon/html/arrow-up.svg b/src/gui/qt-daemon/html/arrow-up.svg deleted file mode 100644 index f6515fdd..00000000 --- a/src/gui/qt-daemon/html/arrow-up.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/fonts/OpenSans-Bold.ttf b/src/gui/qt-daemon/html/assets/fonts/OpenSans-Bold.ttf deleted file mode 100644 index 7b529456032abf9132194ddaac62d2d163247c38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224452 zcmbTe2VhiH_6L0LYtu75lb)GO3L%7$gd~QRA%qZ;5Ym7Qgcu-HrHO!mktQ7sh$3C2 ziO6bT5s}3L2#AQR@^@J`vVdJda1jw9dHH_#%}fAy_y7OCZ<06nmHXa3_w;k_c|#~6 z#ELJ0bjqvf+vnMk$GZ@IP$?ny$NS{<&L{Ew>x8f9gkDj7O8ZynvW!_c#&z;gpNavw zK}p@;#PMQ6_!IprQqs1Le<_3zdJxxZM~ojf>9xQ7dY2H>eq3KXV%ph zkocrYkByx4fu{KpLLws2|2AQ`qoGavmvydq*x2n?qEX`nA*XU3TUh&9(np`&)wk@@ zu28Q)Uk%~dS$uGxdPU1FLbNOH>g5?)cJ+Y|zm1*YcaxqiD05<8*3?7X^+JE)nj!hd75|fOc$<)SeZ+h?6*5Tcl{& zMxIu$;HsR2zR0c#HR1s@PQnXk$PwiXFu}2{kWA%Ik_BQCNfuU-Dpdx_0jA427g@j^ zKzo367ph4PyT+B19Bwt~&K2OE5)y=Sh1h0bEAek`v~}1Dux0t%T-Kl6i{q-mhWSXU zWHL%zfSJ~kgJLL|E?y-Eg<06@aD19fm!io*K9b~eJ6p$yr8vKU98@hM2c@~#YS3Tu zw*|O1hSUgKNus1DuQ9x-4&%84F>@K)R+7r?Bn^OBk2YP%C2GE~wOMGQ#lmM~plBjn zgh*12wputus`*foh_NIwmu%rClhxeh)_UQVvcE;uM7FT=!cC?B7IqK6m2Bbfpq)Wd zaBaP?f)MF*ViUFyE!*e6BUyX`i5AAtlW5Bs4g$ExegigkZZbAW>GKsC2iP3aE>g#X zKZL9Pdw_d(P9Uv!`0;=h&*9Z11zT4(7qI}abtjV#bkmPT-h{s4Sp1+#O2(H&Faspmu{L177eFN=?`;Wmt>^#S92d_e& zl(GNVb|q5VHPD#hl+pG6R&|O@SDnNBAcIT}{Ot&TTOmL$nQZ*m7Bb7^hRN>zts=*u z-~Zc|$-5$ROx{7?fZQ|LWAcB03z^yi9z7o50mk!;?*emcgSCkq5|oXGqy38M0%0?) zq&p$kP2{YwpKQeOd0{g-Bra(EfXSVxZQUfj*1AauMcdeVLW*o%EETq%;B#9~DY6D# zC)5Mqd5}xSGk}fJo{i0D%IK%)FTb7xoaOAAcnjwtJHk8AwZIjdpL7{`hmKQmWV}=e z9Rs;kWGor@o=i#@O?hl$B54qD4m8;!EF+vEE4a=#;~cIFH=rk2%XsE0Q7iq95s6(_ zo~{eC`|^uY|i7rJB%L` zJwmb>&#Gi%QVYI5iXF%X|FgL=y%dhtk1r__ILEV~|B0AFYNR!|2b*%wEn-saf*+3o zTq!aPT#0yQ09R5D?m0)stGAGY>L0NG3Gm0xv9U@>fw}>0dFw4jH-T@(NZ{}sa9Bzr znH)>a;4OyRV>pKmb7lA?(h;=9%5k-rg?+zG5ypeJ!H?2>;0pFYoQrEYWR?p3RhO~< z8m^teeLr9eC50*h?K>EQ=?ta^Ftz|a!(@o@A7uO+Cg-Yfz#WeJ(TBmn#sDt12s^3*SHXdG$vN2mo50g-~ag`*89wMQ9gKrb!V7FalmXJYa@f;a0ohMVZ zInYV)518M;-GGmPO=y74(aO{L;batemiYnYDmP$RMRFzPKO~Ywbv9Wfg5Hc*0rM!> zqb}IGVjGOD7hvzo0lCgF5w@H{kVP0LJ<#xjt!ZBq&!wl>fV1GSMoWbV*pnoOX82%Zq z#3qcb2OVUR&iGI94gB^*YLp+tGpq2-8R{*VJ2q)OfR@q<^Z3Itm4#xIZLhfEd z`#IYbc>!N5^ap>b_d~zh;EN0geSrhjdhq=y(EU7)VJp;Hj0=8~CISb|#HPl*DlM)D z;dnBMRx#bc2JWoR~H^`%u1z2++AATFH=)+MMo9TXd{DBtt zG8}1D&_7Zo{FRAhym*$(V)D;q5bZ&+60))e{SE>)f6Md}(=$xgL8pUaA;#QKOiWiO zb{cXnUBG!J`~GLC3jy00=nAI8|KL-o{PqR3ou=rJC1ksB7C85}fw2O3L7!~MLbjsc zzyodVA8cM{V*~e%=8Jw-mAi#Hv_&=phpSjV}d+fgkO{bIh_LfE(6X^$UKmNb=|M%-mW*A=od)s#KKQ>{g|C_JW_*5M%luI2klD~5$!MXGSlgWX$Bp?d+(2St8~-`t zy^CZN|1;t{=xA&#hI3&1xA;v;1zj&g$NPOW#s6hK@O>NNs)MlSC(yo(b_=!^Y;WM0 zM|&FW1Z;a?Ghv@vH(~!^Ym09q2gx$BM^Unfe+k8&9+vM(v?s_MB9VMjK>CuW$Z2wx zCeSoGjE9h1D+DLz}Yg@poQFX3I`J>g^FtZ0p*Q8`fyqE1GA81=8HU!s1G?&s7w z?anA?j5FTZ$(io#;_T+kb53&3aL#sacfRc0;}Ts~SFp?JigCreI=X6NxELwM7-NYE zi;0R!iYbVxjTssD;ax#)ZEb07#eAHY2eb+Ki2Rkdqv>=wt;0OF(AP1KJ6wn|j}w^3 z-!Tu;Hjk&3c|3!8tmn639-yW!aT}^p+c>&SXe1Mi+LOo&I*5xB2hh}=0t6Y z`XK6b)QzZ{msNfg z)~{NRa;IC55`s3l^=NA&d6(=X!&>_?I<~Hn7syY`(^|*0j%Xd;I+ToV&1?B9akQLm z`Iu;0K5jYF`g_Y6d7ccOZCNjewX7pV*2}tv}@IuKz0N z>senJzRbOR{qnWTKVAOu^5x5yE;n8N$K`XEPhbAv^192@E+bQPIpnhLvgXSPm*h)# zFWtQK!KJuMF_*$FgU*^P8#L%5xdXY$<6gLH6N z74}!;xxLQDpOpQ6%Dxb<92juma^VgIDh92ycVqsvF-v>b0!F%5r|sqLHBy`0f$Y`l zu&cvfV>|bxy|i5qs_by>dUx5&5w(F0i<$NwR@YcsR@FN%+~x8ncj(&~ij>W7R$uj5O4(}~pe$YgQ*Cy%f+;zjMs~Y)XxOXYvd+E|ejpn4rM0Z|e z;>@o@fTNL(9o%`n8J4<0(yB&^^M{s&H|8(* zHkxY3&@KQ~nRjm+u@i49LKLj@$K6xXawu2M_qqmkH1UL=x6a)g z7+*H5an5jX*EmKPx2ZAcR=CT()M9pKrvOIubpq(Vbz_~4Vtk{-?z;a5@FcrsDZW6G zpj*D?r*I4qZ?-tI-FOUpPH%VbTL1sFF(DYy2}Bnp`52+Hs?n1NjCqFnnWXpLPARx! zSS<)PmeIAWsxieqsnO=n^>GnSFtB=$t*BCN@ty76XzSI8Y`p)j#+2T;7p&iVDdV*N zx1^i{QqEoO9n%Hly34BGBI&J{_I7rL|2ds>Cf+qjnTE?b&%0f z&Z=-%qsI$w@Vcu;dKrrXn~9eI8a_Y)_^Pt1sKQ-THn<8L;PNV0*ah}DA+Gly9^G-iwYVoN(r2$DP{^-;Js`H8vB7qnu?-p4-h?MZ-y;H^692boL&Z z=kLdkA9yGZ__$sLfu~9A5YOpV5blCHP(H~WI9zu62gdDcMt}l#ja`CD!(}yixfeU< z!+Qu55NDNpq}%Hr<81VlRxuPY^e7bZBSWE&kAg*&Rrep=hb*9pxNup)oFAEu`AKa! zWXNsoqZ|it4gPxYa^JvZ=Tf!1sA4Ijgxmi>0?7L|62|VHhs>BZv;^ZAH}tgA1o2md zf9YP2hY3Do4(C#L-@2vlimGl(Z|I)-@R@9E3n`*SmAT0spaygIy6NJwy&k%_VsO=4 zCipvxE35W#l)jiRYgKPK3GparId+zvWL=!>fIX=k2Wq8%_*))A<|tPM<%DuP z;vgl;IbSE7qh!QE&UenF^xGS+4CFyTKjNU^yW$BvLBKh+@7x^aoR@v}5{6NaR`jSn z8jqecaN&CaH6X*8L-0s7l>Avw4K#c&?gETBeUQ%CtMP>Uddxu&kJktB05txg2Mn(I zv!38K*P8SOoYw}rXoE^SMIH>NJ=U?sA`1)(UcBpq>CHlD%iKDY;dEr zxRDGPJfvzbrO$X5tXM&EBa0f-DykZtk=~-lI_#Jt_Xd+(@02M?_-CIfHB%mEt@6co zlut+vVtEIm(F6FNDjpEekOw|O4bIPk?|PM;zV|KL*go#EH$T^UMQ&)lBp=2Zi;QUb z|IdeIo$&dF+`^h)5;;fqQ4agq$WP=Vd}u-|l^(Ig_cxHtB-iOo`aL&^Tg<(|eaSod zB7O{C&u``r^Rkd6%n&Y%?ZpM+B}psQOP{OEsshzy)eEYl>L~SV>KmGJ&2yU5T1lIs zU8;Ro`?D@wH&{1A_pa`azMFoQ{u4v2;c3He!^I$T(D?7?j+rJ972Tu+@;1C^M z919#99aln<@K+u3YN!xe8~RS@S7EhbFNB-IM};2>KOcTEVtmBY5r-mfMs|#xAGtH~ zdXzgVFY2kNSEDXRXG9l8*G5l^{#*2S(YKu%XPC2tv%7PnbC>fi=ZDTF=TA=AWkl4K z=9=eP?b_~o!*#-S-t|LFXw0;jMKNn*UWxfj%t!7Z_d@p?_fGc#_X+oT_xG`LV^_p( ziv3gU+p!cKzR>i#(w>R!++^2D0#{ClCIsV!Bt?_@3KNkN#@n0wONa&wX zn=mP1Zo;aBO$o0g97^~wp()`?LUTJqyQp>@+vT(?YFE+jy>_3pyWH+ZB9~}Qj7{v6 z*e$VN;?TqiiBBaqB)*u~n0O@dOyY&aYwcTgJ9h23J0&fpS4u_7!zquXJejgQWmC$ZQr=1VIOQKH-=_T5N!7{H zDY8??PC1>P>hyW1A3NPi)uo1~c1Z1(T9W#3>g3e~^-hu6u3w zrQM(H-rPgzk=0{QkNrKGa|&{v&H1M%)HBHQPS4n$(|Uf^^Shq6bJe*axrw=5bDz)M znfqIAYcEx=&|a=y3wvG4i_go-E6AIfH!tsG-r2nKz1#Kf)cfh)U+0JCcgP=>|6=~j z`LE}{ng4G7$^5hV=li(&B=$+|Q`cuxpHB;H1w#v7E%?4~*S?$j{@nL=;o!nI3;$LW zQ`EkwzUZID*5cUWA;m8gf7vg%UsS)me#QMN`_1Y%zu%AjZj{883@uqz@@aoZ|Ka^N z_5Y!?SLv$Kt!2it=(6!;Q_Jeh8p>WM`=z{Z`HSU^tO%{>QPIDmwqkO{yo%>4 zc2>Mu@j=CfiW`-x%B0HT%10`fR=!$!X@Ge^&jAYu+!$yXSTpeVL3EI2P}ZPPgB}~y zFzEd%W7X4Dt={?G=D~voe>9}skWNDu4%swh|B%x|zO3$1J-vEk^*^hB85%ou`OqUn z&)2l8sjXR4bFSuM&6S7k59d5Q?BV$j?|k@++UVLzwQtvcJ*;@xy8r$+{OXA65#vWp zt)q2Cb??-jt-DlrweI#vVPuz)vqv_Jd~u{as&-W4Xw_)b=+MzIqf18Djh;Gs;pjD^ zcaBLM^Yoa%k8L;hnX%W#WsaLa?)oFukNoY?{*Qh?e$IqW6Ru6TH9?+OG4Yj&Hz#$Q zR5Gb{(hrj-PyYI`0Z{L^9^W>#)6~bOzA^R6w2*0q(`HTEGkwz&-Jf`MM%au;XS_SJ z{mfTqeml!G>#12yPv$+j=gEUlzF!|y@2%hW6n)D3)WO-}?84bAXP=)FGRHgT?YU8N z_ssLmE1p+1Z^gW0^G?rK%^y5}*VFXrp-*pp`l|&g3uZ1jy)bNH`NG8uc=@jazm6S?9AupB?$^>D66VZ+T99 zuI{;$&%2(V_Wap332SDq`QQb^3uQ07xz@h6-P*2e`>d^4Teo)V+C^*Et$lUv+iTCR zy}b69b>h14b)DAbuB%)(YTXm-maf~l?zMIAt>@MUua8;ZaedDE()GjEPhLNN{qyTz zUjNqm)9Wv+zrKNP2;R_sL)Q((8>%+cZJ4y-$qg$uY~Ikg;pm3{+3@X#+Z(kTBQ|#2 z*lXjUjbk=Gv2n@9bsKkY{L99VHh!`3`;9j@kxlwdk()Yh%Gp%9Y1pR8o91m=y=nWV z{hQv~^wFljZ~A)EubZXKj?D?1(>K>{es=ST7Y#2CeR1WBN4FTZRBu_i<&7=>cuDRBr_!4%NWA!hB7WSMcDiY<<3%tnj zoLVFBDng)2)6Eu|oo!Axr>AzZy3DRDY)AOM&2Nt3X0$9458NpnBYexAGqv>_dQN$c zk;Ho}yjIHzg2_x(234ikVC8s{lapj7%Ja1n}so8*p(r(15O)4}rA z!2>IXRF_v)({K1s?tET3u&TWO5HA~J0l$;a^}`zO(FrOf1=SL#;_>kGGihdu$9|NS z+KD3D>B2@gCLT}Z-o}@Bpyg-I#5VREfqasy;`qv&}B1XSw9h(SsCf}V229lqBya0e1bib+JYS!l92c9*(Em*4*IpW*NGiponG?I zTQwWEAKTGSK9`rbSf0>5Z!SIc;t}haQ(_raC*?{sGpyvzMXUZ|Tlc)S{6|la{CUxY zr$@K%68*b_d#6Ko)Dsvp6q0UTT3H@i8k0^wI+myg(Vnx6=Jyb zD3vPB;R*}Z#>S?kn8LyYlc{|_uSpPG#a_Wm!O}TNBm_chA=x1*Y?caXvlTI88o|fY zeu{(W=#kpVE?rL}`gEo}VxKB)esAu`r$);AyY!-?3$lCldw5{=#y;HIH# z5B+J?^y6On%G864k+rG!)S=bOzn1=nM;#94~N8S)5Vk z;8PTelJMyV1RJDWKFrNPe*?xm2p5AHQ})PP_T5ob}djdV)QH|fVmUYAqxVvhmN*5a$rBP@@UfxGa(98WZVM zm%QiVR~wgHy&%7qK*uLaHhJZk<`DV(44N&UnobkL?u?<6Fm@IBO2`(D6CJd^NiAtK zJa|iQ&}mS;$CDHc!Zd(yI1GuwTp2EK5A>edO`GI;I=_j|m+PCjx+c0%p4o&|5X?xv zO;3|+SnaaE3DY5pDqbWhClvG_g@%ulc(*0XMNfBr@{69aH01n;@)fGR%CJm#aRa%n zkOcD^xChk_0K!jhYlh3-oeQPA?%cs?#bVKHKpyPTN&s5JS9P*+^fB(+o4eYR<8 zz$i7e*&_;k6FyJjtq6~v0!|Lg^*qlp(YeoVQtG07Udu)K3g==L6L)Z=u=T1?fT&xC zIJ=$4riYT2NJyy0-ruWH@y7mM)LjPTugwC3FI+LiY_ho02sJ^JGR-C?M?%3}`EHBc zdWQ-vlyAuxI^ogUVULWj;hN;R@=E$7okHi+iSiuz8TpqVu2L;ET)6@a%mDl)fJRH& zd#oB1f2b+d>D6EvLC{Dv1k+&B&CHiVK*&E6aC26cq*5i&biPDB&5Qk_c0Ete%Y4bQ zwf#aC9ir3md(_DFVCIOwQ68V!O804#Jc^DkKB7`&t4D=umSVAfGwU3@ub8!pcPd-D|LpalF-f- z6&nTIhd4qUrCxmqHSi%J+E|srq&4;TY8gpj@Iqk!QXZ}ussJ8vY8aY)e+rruBgcRh zTrtehfmUo9?hIuIG*cyHy3z!}v2)Gd1M=O2MzLI(MZ%RV8JPnKF9dPu@p&cIx`sN|b4E#0^|eR;Xwt`JNb~ir1hp zng{a}yH$h{vQp71mV&jdyiq0b3Ry7$*lohJ0b_QCb|2Dxz{4pp1N9J87t`c!2`n+W zQU0`LB{!EwHp($tULDt2zDZN$PiV?{zOi}i?H*UHfkJ%(onM{z3@*VE@sC;&1G#B>OA z8HpdU&Wz43hEC?5@>!YOsQb4~wGYiPLKlrg8>tSmmXEW&F)nd-zYgZ+-rwe0>ddzPn)7 zBeQ0fP2bMAIZKhW{ZJkqJ;Bgo9Hk;Bs?<>9JXhl7p;REo3a17@WRye zdZG_6^Xfy1yUdFa;vPf6R2Q)V$77sCeQxt%l^aqjT~N5C!TtD>!jCvSH1h# z{-%%qQh&6t|Ncid9ld*aVC{&qUQ=_2b03xEb$d9iV{J}vyx4*CJm_5rdWRBJ^?96; zqE)YVyNQ*=Czzb2UXzIr4i4+@4Oa2$()+bBW6l7%F(FGfi#R~-n1l=lJd+l9KyYda zh;E5frs12EP$)kqH_Yo*S-s(dacX^+wU52~1=W4K^_O`q*J~dgURSfQp3j#{<$*!B z?L&^eT2uV%Kdw;oTKVFUr=J}6_#DQQhy|9)YEY@Hydc4cvuaJ1Uad)x zV41;TY&6r+G^R{opdE^Z=IfmgVbXOb-j1b@}HWbaEc1nfp=4k$MOC`7GG(FHjfBsoMCV$89RYkYLLt%Wa zBC#Gb+#HxXwOEQm5rn9CKAxE}l=%pL*qNI^u~qSx*(3S5Cb%h0O-$PEL6_vQa0C!R z)KC`=f0j)Rav_6IYW;@a0*k~rG0zj@ z3=4y51fDGhOMHTnPz_Ir+Z|cybz6>N{ec`^voOHRDWW}ge`S_ z3cGcacenXJ92wO*N;(NW(V65BuO~^Boo%yOGcpWat?jG^-WBRf4n=I`=^3of$`Z8Q zVMDd1_K~SVY&^6b}akL3ordP zZ>N0njC@u8JSF+PA#^3J`;D&tX1}~&-hFO%!v)<&Mpt~W4sjTKXCS>iF3!NKDT-Hh zI?xj_1!90816S-d7nyO7mz!I`8S^dm21jcd6wPTt1} zbQUMI$gAVju8p)>-Yy=#lgHK4&!3E)BO{B$qoRxmH(`&Bumw)o@Y(9Hc$O`f%2+lO;z%FW_|y+`KnGHauEulV2+ zKc!@FW#5+L^8Dc=4?yasLsNeO`3NSdo)DGQieTK}upwtr>@^E2Q7aaEwTj=)TrU0X6?wsckQwCjIRy6&4$g#? zb;4P9xy|WLajHC0eo`JzPt#F!x%`e?yJG=;4?f5X@*MGiyindj&o>uf#*AVdM$?hr zo>;sQKn#*rOQ~Mc6npg&sKitbhk0{6)fRhMuzsI2qPV63DExl35^%Ag%O!Bl2l&F4 ztMs~T=4=>Nepi+kG3|y?c^RW>NM}!&n&)-!Cn(jjLGK%nMK=l)Ff({>6eTiH2C%#6 z5As<)zvT*rj$;EXYVlD~OaK+bNUrG8j0{8evtd!-GsZ6POKb2Q=%1kYF(w za}z;S#YT@pHAI4c4%0ge1*?w(RPfZ3+SULJ6t~acBy>h>uYyyl*QAG)}s{cXL%wt6alS4 zEeN8hSM$Z*Vl`E(MXkhBu}xqR3EV>jQ^1Vsfj@DSe7far`9qq?^`aTv^p+*aHXP%+ zGmPg#O*APZrFk4!3q`&`q$t_c8#IC-@mii|q{Up>##E$#-inq-aFk_EfT2>E9b8k( z=zaURb^G=;mh=0{8ym};OHdR?TgS-d^cqGmkZ9yHI5oU*7%ku#MkVL{Hk1NpD~nT@ zr~+^k7d^J5Gd+D+Q$codch7VlY#;#m*j%vQ<=yfY zjTM=Qopi7S*M6sbk=JYFMZzq3>(rJiK(JM)xl_pPPn|<;cNh6N?G#`!l1xvi7F83H z!2r#|iwGJ_I$i~gQdNM>Sf~cX`FKFF2@3Ao0O3G6@svERciC+7i z*+!<}c4OvhINZ=Sf<|K}K|w~N%>b=#Fc?iHb+OmP!wUTuZPR97M176? zk=zb9X|-Xz3MK}C2r3{&Q~@6++7xV?touC`h8s==-t}vt2l4afURokxQYlY9IH(ER-D51-pWvkC6|5-0Hq9gzl#g(u6bH@rIN_+UqHu;7rtl7HO)+?fHR z#&;UpuyA21Rek^1*~xWN*A-UP#8+%MvzD$o@pTn-=4O`kOX}4lFX!>~qmTYGGxcAc z;>&XryJr^;KhEG!1V6I8uL?1h1$K|8REmeHGo};;zac%2R|= zZ2PfRBjZ`GLB7~K<`xp?F`Fs1>C|egMFTAZUh<2UFDL02EwfD$z&uRz`T}6HShGsL z_7_xte?T)9Z(0kJ(Ok0i<~-`U%fHq<_m#~r?&j+;67w+AF_MmD@OVz65n-?mU}pBp zfX44pw(%>YJfk}EAzc*s%go~MAfIcLUz1HVn_3;IlFs8xQ8usdccxwSx4tn{hcQMZ z%Pwg(Mw?ZnBqT&M^7@E~$jE5DP8Stn6?J@w(MXk*FyIHO^WF^oTGQv~Go8i9a|zIJ z%$cG}X;GNdt$53vaRiv#7&@*e!{r{Bn3=s?;P0bYrm!6mkw=WcNC zx7^@@T9SM)V5O01Ip}vJRz-Mic&$qmHCniE0FWZF%~YH(S>iYGNGUMJP$U#%f-9(t zn@v+OM7aEs98OF5YHo1z{Fakk3a@x>5J4pes3BcFk!peRDiuc8>Qop?U>+(*;kNi4 zMP)(9=fd5Kx_nb)DL(|iE@ATB_qexP1`1&Tv?Ps(khTQ z4>(fbQw86gOTN-_(VsV`Bpu^Bl<~1XgCv9oQ&kgHEF?7mfG_iu+R2e_#(JvRm45Le z{aTKgELNWToq4oG&8da%;ycJOBztT~D~OVS41*fiKpU0FNq7=VkfQoWA%mhV!2(to zdpD*`53Houufu)+o>TJ&nhUx4EqF15wl>R$`I6QG#7tOgLhgc7kfMkmle!ESU();< zj}@ln=#5`n_?%xMxxgC{9vxA6;5%uw;v6iyhh6ZwdSM^3)KYvre7s$#YikdW9&wc4!@E%NI1qRnQ^_uAmo ziP8C9F__pDo9YXel*PS!?ki(G7R|X3Zc9oQ3sE#%&Ge@cu%M4Lf)ai6qq?g5ZJYnn zTfg5u`r5)bMjp9x`Dgi)X$$5(H*WUYVMPab?|VffrS2~Kc;x#Zv^Y56xN7j+nIi%7 z7Qnn8>s1!4zvp^fkv#9xm~=r7hfe3z6P;aSl86-6$14RBYacIu6y#oTlO5t;gi{iU zei=!#z+r{8aI2UfU_-jqfrPLU1+Wm54?1z_yOYN!+0%cZse1h*lO~Vh9(lZG;v`{; zd|LiRz9Rp%VHOs+*7RPx^X9TGuKgSTv}4B(@JV&+RsI4pUv_9$J4<{y5U>P`x;|dK z>}3RG!2!tpOv^AQ!ZBj0U&TzBO|YNHzgMM!MMU?KYlzOmnPT*hdL;TAxmhQYYKi$3Vzz4V8-+w zet;ndgC~Z=f)S$L^mt}p+#qZMU}B3AiWTL!UeQt{iw;0 z+3;?ek%H&9*AJ(oe!seE$1jVw1(4&1a=4Ng42NZK^A;6XbRzZsM>BYPyGeEK|NA z|CNT`{)wtvQpA<>M(!V8dVpU)Yx3k-&E@b`%t)@K%Qvn)H}Bc@9j~@aU=k1O&QHbL zs&>-N6J_H#71T|z1Fp71q&5oJY(|}_j~72WqsRtaUnTDJSx)9F`SWVfCeSHB9&&1+ zFvB3~H?;C?`RuM;htF=FRZ?BjvkO)8GnyCiGgg*_$u6GU|k>8R({_(e` zW~Ss9=2wlrb|Gc1MNXJ8e*2*bQ#Mylo>(zpVCl|XLd}NcqM`dw@nUR;+|BFW|NFMp zBNs>7hNOE2B*yQ0?9C6%!d)S!U~oxJr~Z7uA>+mk`4F_*0G}# z)f!E(QLtEqK3FSwbsiv<+%o^kQ7gd1>z0= z#9^}c^_qyr$U=0e7e-xWxe<**Nsv#8)0Kq=#aop4z<~KvEA#vI>qApNo}>&b+d_Y~ z4y+V*-%Z?iMD++8ok;@2<}J)9i1hWi1=vnxt|d`41!)ZiwOXq+>Igfl4hlk9lbtuV z`6gf*-#npoeW+zD>YBAjC}yib@Fpcxu{&?}Sh!H;o#+7Qy6?nuvM!mWG< zGp6xf5|+qk%LYvyC!hTx(VV<{!d-88^6L}cIVOKxHfYjBZpDlldyco<5NaCw4ccBZ z@Ywm51a@xAYXO|^0^By1zXS&dE8yAodW?mr+BUCypzm1dlfVBszct=ReE0m-4F>V^7Or>>0iQ>0||8PUe*a^N~CjVnSmyNRWqxJB(4m zdW%KH^o^eM@#@=<_it9$w?-WoFtP~g9DW-d>_}$?l;+NCjgXu8_@m;)S?3=SPF(ut zB-<8Ml9<{MxRa*WvY>fX>dPl?}fipr3Vrq^!~>3H)@xYGM&4 zXHodc%+!)W6q&ySAKWiRJ`Sg84qmZV0S@O)JrW&p8P9H$&wiI|?7UZ)qLIJUu36M_ zQm8pxGlg+2^M3YV47NHNErlYOCkfFuTRhR*qV>_*NJnJ8*J0wd`Ck43Tqv{(aFnuc zfm#T*fRn*&Is6V^Ebp_R01AGZBZ}kqT)#GRPtkzS%64{mbnx66S>OH7hwoNbK3lwK z(CYa!yU^l2`(4iFcA2%Y$=UIl)zb$(zpd(v*p7V@yLHW|euBZ90(i6Vs~~oQniIX+ zXtY|jYR;@S2RpPDqb1*K&>M{+NCyvCQQPT9l=Np{;hxz>=7hwh!QEi4FSGPn>2{XW zwgq$3OD8?H^Uar^-BooAA@j+;7u{c_zx5UuK6ljBYu~hd)3XPIVLfCHIX*~wnkR%a zn{BpW#Qt`R#>k05VvsVn;$iq=uzMl$13ov1*%>2PbQ|kUH$3LK{OyX&3L&<=1 zC%DgBrZ9o$g6?i*cn!DG{*UJ9uI7%C1+1{#VO{iXej@HXNu3VLOa$PyMyph(mTxdB?XUlUL zm7rl5m4dMX5~s7-OvqmeSWVDqLQKrD!6}OnY&T)u7dkPVEj58`J{Q1ewG=Nvfk?3r zKH)aAB#MuSEN1hSA!KFIl5^o&N#{IE`^X7B|MgP;;;f!!Gh!^D>$37mqla))?^<7f z&3wZ!q7FqQN+k)u8_;Q({O~G)6^ZIl5vEm=2nZaF9FElaUS^_wxkXsq$91`L*L`1j*-fA^~ zn_>-me>ksjsxpFaFFl>%9yU1xD-{{6m;teY-HdQA*luU4)(**~(evw{ns@Z(h$89h z9}DYl9;HEps;^g-t7(sQ^_ThlJo&T3F?#o2jr>_&KL2Gsetd}1lX42TRSJSHVnfX# zk4ipBRZfa86vvpzCeV{jO;XTp7v_K{o>yZIF>DUeaM$t6UFujYtGc73f`V+K&5oS1 zKPU1Z=YYa2$(?~kdNW(BXVuWCddXn*ZDtm^+TpQs>hiZ=9#J%H%2!fh-OKNk&00`D zKY7w)8DDaFeQ1(y;3H;z%wd|8pT}R$m@+{=s;#WNUOtS`vWiO(vXLRQlPph&M9ey( zs#W_hx|8y^<;5NzpGxdAmJHNfS4Zv!AM_Pq^Y zYjNRzK(S}7XYbu(SwNoxYdB3w;#su&k26hR&enwI^ZPB3?;IUHI}8xa|5?eA3w_4g7{9g06GJXAtulCNkT6U0K|eN{;qoE4PDB1jGtp~EOi zb|rGRvr2U?U9SG*+`gR)Sm-|E@t?|{uA9AdUt?E#2XAafMDN_J>3JnG_T^XQx1y8f z?wZ4lJD_vM0lG+1<>_Fw=s1nR5EdNFg_uGt7E@HTJ|r}x%&Q3vC03XwBMKrzhzNim zD4_Bc!TDa9U@BCh4Z!v5pL+o)Oq5Lpzk+d71}Y4}P~72T$A)g2Qc_8$%S&G1KEC_? z=zjb5eIuSO|JLKJIMURxyF_lj-QlsiRZYiEeGZCECbHlXb_1UYh>>GVdaFisgmG#t z%EUzAr(oM9I;^HJPOlNwD!V;e6$kD)fm{)^xsnrSl|M?p!P+@1Ag zRfH#~60+j6d}dAYs1Ik(T|IlqxUoZKubG>XQUC1hheuAStY0-d^X&N2vWb)XmrUf& zje2e(4ta~tM*Cp=PJzp6exeb%b_p=0_@oKR9aVG`qXB<%!b$Dvavdmak1*erGf zcv~alJr*s?um+=Af(wCea7Y%br5ptflt&d!kTIy-t1=q()Gp~CsE7?kIHrrX_iwz(9<1NlhR79d5KEzdo6>((v#@^8QW_Kv)Wc4H~q7W=-X z`z~C-7k35qO!qX7inu*SPLdGjvv+Tlw{M_(l=n&QEjch1gy9u6#1v8UC-Us(PnhpI z4!+N9DG}8+50L?$_FA*UEQ%dtNJ2zJx&tp~bm22It)Z!@?XB&D;-cevjNwDx}KXv-qvJ?47;|7<$x%A?^$4f>oh|A#P`p<7y`TYFN zmG3yyJ9bJfO!mAoes4v)v4zjQ-v4Z3_SA$<=`n?ymh~FbG25G0lN!_?ICKcN`QwrR z&&Pp^eS<~MI3gs}$n$m$tL*Yk2bF2ci$RKJ@x5&nci%pB6nS!sihFvB=<2d=J^Ph- zx|NCbJ@X5@ck7#xx;tCR=1w!0k3F-UMr_?q z!?$ghzuvlC{$?A0sdPZ1nYL+ZH%*0 zxSzR$sFHLL7ph{TLR8e@h%%|L=A(*=aT^VWXr0bV!;y;?tkI|_$WB4hoEbd!Ud(-J zmYu?M!4STAW@Y)3%FM*r&B}WrP+lsDON~x?vT$nsj<-h4E?bZG{nHqDMS%rAhvQI-2AaFbR)+!S=t9pFwi>B-WYb?bGS;uzS1AI+NS5&N--G z2=lPTC>0hPQO^Y+kiPRRI=~_!m!07fvYVRk@Rx7XN1F(KGt2*W16C+Z%;j(6N4=jT zM|o25TSItVf|$()yt1TH^XiWA0p^5)F&G59ptft&`1>zB3PRl@T^p-{Wqow@WeHU5 zl{IK1WCq$6k^e8Q6&5u7B=1Z4hN|CqMV=jx#jYW z?A)H2^2Ps?b7|`x$tFnB1xRgRH3sgSkDy>ghFj_GO+hc&PASnpAIdX-A_(w^z;l7CbP3! ztB1Zc_~a_j;OZVZHPztLDv&N){%je!<8ES?qcW zr;wT*A)26Q4ppH}V8)US?6j$V-xyi&D44arS466EaqqOuxHKxeQ@gSevsS;oWOL2j zv9y*e+|^X)O^a_=wRY};sRPzbeHdeQ<+8a0s1J=JJv@;%9S3)ZI3=gfBDuP2!R1e6BjJSKrktYw3HuVkxz(G7#i|0V@9MSzZxgOzddz|E|G-)t zFL+Rjh1Wsnu(h}|3?OrQ*eSLamx0&V5O1iEj>w?{JKyaid>;P6NPFiqY0MX4xh^ER zS;f64T8FhsO_&9%Z2&z~_qmO=h*4BEQ?u8-(MObXLvIirRe>HL(g2OqEHu8Cr%ajYE}`M2 zom+cU{{8enzUQjtW~ub|Mn2tg=Pngk9(O92NY5eO&=I>w0|Tt*HI-hx{^iSCE8YXs z^NM?~yh_E2&AD>{cOGk}O~{BNm4P+E&K`%!!17oyEH;zLU^7@XLF~mcq{G1v024ft z{iGjU#xdYkR zsv#4svPOCTNkB>G{qH|TF`-}*!MIRi0Sx6sjPL!YxOA@I8ZU--Dj83c-{lJFJCh!c zZQp%1JUjfF^UvI6SWV`YM0*T@x4VpRN?;`Ky*}zwrV5f3cSO9;LFO*M`Qo~_{=9AN zA=%xtpdcrwprEHv{pyk9FTZm1_|CeKBkSr$jQE4q8|-PXL*@q+^C-f@60{mCB|-O$ zo}d^zD&p;C7(b?8*xdfB(L0ic>o9ou21B4y8uh!PuMyVEE1GDq{9_Ypy`+2l$a!>~ zPOEA4bU8ch-Y&CU9g#nJ7TAs_vpz*Ck#lfRyi~_OiC`)fxH|83kCcZW4RoI%^&i*5^tKhv+IDkrjyMVphQeGxSXIrYb$Sr~pNjn%et%Or!b#dk;w7F<%d#&@i52 zb-4;0$|$(%?-BOkC=A;^IL0YGnB*n-=nktkm+A$RupYK2(t|Q=qS2t5oTaxzQ_}9e zi_H{z7WD-%Q0aT*&(_jpnz|0&MDp|US^3-=?i@{CFMmdp*5L3HTtyca15a<=DSn5D z+X_7zL$W;)j_3%RO&b9->W&SLa)lZ~S>Y^?pAq;&ou@w>WGa*yQWJY;j-`cs1v4yN zL~RbrJUX#+0!4|jue$j7vcX#ipJ4UHC!Vd`Qg!t1XAjXkm19w0{B63dFCIgu_$rNi zE_!tFQM|T+V&nY!G4qeg3*UX5yP5p^uluLAm=l0sr7lyU(L;VJCMgu4ZMyG|J*Ls1 z|GfvOxZc;p8K9Bx8H`50QN}4fm_)Sm(Fl;>BghIQ-4sZsfoe>XQ?t?qGQ+e4tB+=p zU8X0(jO77?29;`3uwdxt)!6%a1r2H!RXnRx_oX(G*Hm)2idAP8J5U&HM=qf)N)vXY zV)o8DR$#wRruvq=x>e82Ui>7_eREsJs|ep*le>+b`N$Z6#p<-gF{ql!AeEjZWEfou zD5mKc78I1#F(oB4D9oiI2??q&KBRqm`##=ul43W96nf46^}ov%@NoShB(t6j zz976Y#1{X2j$y!k!vdkN0>vMED5V>n*=t?G<@TOJPy3AAXUC@h@YRTw-7=8)y2s~%ed8#1lg105dxjNv>C`?rymPxD!)KQ4c`Y*LMr_)w#Pn|M3#ONO z#-(PJcI;L*w)QU8$WMK>m+5Y$mQHeka(S4(M0#z5OZaCl$?UhTf4n|z{C~Rc4BStP zersj-cY5&tptkGf$Xeif!h_d^z;!YXo-~u~hm;P?s`?<<7wADtQP{+K#QS+QFE$B4Io_-ab-pPslt z$^S#ymjFglWoy^1s;*ws`;yMy>8ykhl8^*sYxWRG*dh`{R7Cbw1Vlt|5D^s>5kx=- z5fK?=5D^h^0Z~Lm29@D4=r}$_MFBTNgmmTq&aLWB2lc)GC4_XUt8d-q+;h+RooF#) zzxMAMuq)ba`W<&XaPw_q_=JmX6(@La9zV0;wPz^$u)bIK+V^f=80n^-J&ka%VQ2CS z#1vV+=32xdvLDV&yMtC8et(Mc!<_ckPI9)8pX3xjF^W?|wMGrk@zu(St=5(A&w|$+ ztNCZ|vwkN2eqqbc(`sw&PoP5(Ygrmw?WQ$&?kBtlKjRfn9Tg!wcm}h@+E|9u_rruc zW;OL{c}LSdxZ}I#J6J#UeeDjH-bT|GxMLa24S9n0lnML};#WbfC*VdrmP842$$3_! zBPyc=0%-=5WR*nGm6m3;7G}F#1wkQM#6`F>lSRKDu>uG;g>Ws}b9*<~{gT+P0pK9b z2Ip7|pr&DgRES(O4n~q1*Sol#R68#6@~iyZr{G4yXENn~E=Kk(9bB&VM&wg-ibljxBEP3RC2R9IXtOFzEPMZEaod9{>dE*>xWQ_M82T4Kt143V1u>yGg>}@R#5A~1iVj_ zRHCmRaG-=wkpq1I{K0`WY!z|)ElAv!5qq63qy-V$3T{t^F6jPz0ci3yDGRnGLxQC| zF?$^O(b0u9-Mja#>DH}ZP4^zv^cyfPC%^CCudZ+J!F7_{uXa$M-h=A!+!0MX5RJ5q zOAXzBkZy3YxvL7yX4T zS{rGJy~s@HMSrb@)L1Vd!y0DtnSk7gXY?1w@fJj1LJLYR??oSc)+n}@FcnxekUwdR z@N+zZ>-_vNz)}z1RUq6DDYZ+PmO#*Hv-v!MK&w1SDm14cWgv{mMmTnB8axgK->zgI z#OAbwph6rZ1kgtjHQeUeeB5xw5^s~WITkUGpqjjj3OEYD14*^~UFbZ!_~s|?{Abd0 z6_$YdHgbT<)~vZ0v5o6LWxRazqNzhhds!9}Sqe+4AGq-5@&ivjb>MP6qUh(YOxt$X zeb22}Nh2jWA2BjmhXOuFwN1Zjv+PKiBY703a4sjX+RL=oqPFv6EpQ6gTBvLK_K#ZN z6t1;U$Jgn~7W&5fFo2b?3gRxF7JcCBL@f}tbk*93Q`|1>2IOLCZSdUyBM*8vLM@Py zC4lSrB){HO@Z$R4G44bgNB@|OBfc-`)Ju@RSbvy|Fz!%{xYnyF_b&c!SnL-GB2IdbVtV_LYm^#t>Ua`;7?i$0# zU!;$Jo%Zawm1rGFF2>Dhxu1SV1zRFmcd&5S0$K2HM2) z1m@3BkE~q_H%mwLZMz%E0`G|ffBO4AwM5=RyV^Zu=Y|gtV9lC-%R^KvG|Ah8 zb+s6BDqUX=E(0t=T&JfSg<2823iA$>1If(yLa|2as?GyrmL1Bt5Wgl~AX2a+xP|(z zHfPPJ74{+0f*++;Uc;_J!tq`%$do!D&3eoj!^Kf+= zB3@5EHJIjvPLQsA>^L<^-e`J5n|phV2d%^EoHvq;G(f*&EW4lhfXxP;%J~4bgK+{? z0e7Jt8fOi)ev{gfGBmW$(yTNY_^j}!8eZ1!h8L$jo7wa3U;Fmh!P7k zi)Q3=3W(OUHUmIl+jA9C$D<{khHrW@9GAObbHrY+3K;PJu3po3vdV{Ms*U0xcBXLu zRPoJd4Wj1gpW^AzcO5)PBfu1B59+8ZcadTM(0kMb4IF0+^u@-v$d0dX9nP zQU^F}B3GqIxur}2-S!D%Cmzl_!cO;|`Ko%P&-7hb<@H5xPm7LYpW>HPtgkL?({z49 zW#H0ePi=LR6IK`cDOs%sX?F;l(P^CCaqR;uYXHiG)&{5Si*d?EUW)cfjj}a*N_--u zwsYDO<5Jr?&W~eHR9Js(3_LF-#(fl=OzW{?`RLIl^aZnamgaI7b~T}0q`(UhcAJu& zQWEh0lGBiSWKVTl?0$!o41c9tM<~hHtWLa63#;q^DNwh!`&)589D5I5zHl+Ip z;wL`06!4QlvlP_YXl2AWCGZybxuCUBC%nzqR&3b+*8$+Nl(H**8haHW67zYA>!;f69nF;l834*he55ZR67k1C3bo7a^vZJN>xh z59dDjxmUUJ@{9u;AIp2N7>H2Y*bvsG^W9--blefRYvYzJ8@k<|7hYtxvisnTn8+5| z%^G-;bm;QW=YK=e>-`=-w{@H`&IJW!3PqTuX_2c++S(Cilb2^|+cw?nZI@*-m8bcF zCBB-5k`lq`Yz?`^DcXT8UWgo2rx1kU6@lb^8ssYtuZR}WgEjasPHiN{Xy!87BBZ}$ zQNV31af?E6DUlXYC|V%5(wxtktpJ{o8(KH2KdxAMY5m1T3`t1S-tF`7_ve{2>Nl=f zG;#OnL9bmN6Hos7cH|vqwojbtU9;u^W_p47Sn+_`wUlpbn!gkYw=l8x((}Rg&6qQF zp3YIKIS+%tNjywgrcqtoX9A8QE$0+-HST~$3>E^861TAt2ScO=s17Y~4z`1HFq}@5 z2ZihST+7qRknlwCuyXB*=`pT31W(-6{6yCOasEVqjE8YN6W-@az0Y;L1=cp!0%_1& zcnhd~Lw$x!jXt;elNR7R)n$^3#1{57x4`;we*+FH-QO@0oCugI7#;dRK4vzGkD4sj z$jriZJegmI)Ps4xqR*^~?klHQ5EF-fD zSFh2oen3~@dXVSv8PX)G{!L$LGn5p28f9edR|>SxaT&pm%qYkRL70Jw6ym5W4xT}7 z2S5h{m<<9~5Ts-^nxJ?9B@h088|BGpFf0_VqABnR#RRYgw1XA0Jk$&vt@I7mgV0$n zUexeee*IOfSAq5gkQTsq;OW#q${5QKu8Wko%wBJDTAJCK;_y3?%%b1y&&;w1yn)^g zsa&;4wjqqi<#i}XA>$qq$`apuWp_yK;M+0&LeD7UK|XqrxSm#qO$kMVr%810ENG3RTwc@MVy?7W= zCL0XVA#peH7Wg@$wNM-LVaDS~cnka-(ORg5NQf4aW0a}&fi!2Wg}Og(fuAE<3w2r_ zTDE{NrC1B7dW}(#^-t>rdAqc6khe=~V<6-Vxp5_h_!Nz z(>%3eWJ82KpkiuAbG-3(VB-T~kJb*iQove4J-`k`KA+YDe*Gf9PTOt|r~RvVoBh~y zZ4ERxJU+>@<@i&fw&SV&xG0G^jPEtHk>~@4{lcrY5nqKXY`(hvg2g>dS_?zbyH4~B z#NoL0(Q5__8X2Ztp3Zv;gE8m5IvGhBjh8rYm~^&h(?!MogzAexvha-isJNcJN-1REGDv!WV55 zvLjB59oU&kR;1rIQan5AP$_b9@%sF$=mvjFcdGjJVM^a zK^f5I+gRNa17+#-jpQJPAq856&0w)0KPNo}*{$}J6yR6{kn#(37}(4;v;`+n^Af^R zG#OtvDKrNnlF-)zDZ)oKMDg^VZ4ml8&fB!<@B3Cxs~+5S@|R!Ed0`(?^*2k?ffw=G zcHl)U>3xc99^iwEjGGbZO|kdI!t6*#mq89FUSnE%aws|3DhSyH5oPgCa$;*VMV2ByHGFoOX9paOA;h)9zh7eagd6(gc>aZB_X{;OrPm_yi`8 z@2S2$>FxznCf#-Sc$&!KcI}9>;merI`NF*#Ul29xp%}OB^GE{D7dB~ku%q}8ERfw| zoPkFI@itcLca-v7EycMY_xkZRcH<847H9%!K~n_K3pj=nBpk>am#J?fAa69wH@NyP zJ}m5(Pss2#zzzWaCE@i!P=M+$+8v^K0gMtQWhtluq;E$$g?ZE}kt)(Gs{kYu@JaPg z)Yd(A=(Qf~=FG>dYt!1j*gG}x33hq{65njdp*F}!8*!S21w3B%kDfsB z;D}YouP7%#H950>X{Nd+ebVeh%Lmu5R6?os&z6-eoSS;xkZT$ce4Pr^r@e+P&=Nd5 zaU{qFywU>vod>bkAQ7-sabtA2VarDt^B1`Lf>MMr=S5tAgpQ!{f!(1@#aj!2B3x3Q za`-xZ%(QpW0FSfCFV8@!gevKR?URjLkC-;gC0Aelfm113y=&*%lFDR4j$1CD){#v- zJHczr7Faf#`w@pRS?$ zF%B;CaPM&oVy{W0yS{1mr2j-9MF{`%wWLn)L@^NH)*uhQPMS@6PkAPn$ z2W=j~=)w0?=X|H=T!4I!l=rXG+(e)tK9UsYyEL=Vl)~f_rK#o53um_x*}=>XNh_=m z%_EM3xbA((K8yr<1s3YGa19|xVys2QtKvfmoHX+QlGs0 zMI5-;a~GvAlpR=aKeXAhh#$CIX_*Pq)SybE50wHNFF9@$?YZ{%R0MphsFvFR}(>1EMX21FG@7oiBA4e*hfVm`7G=3?Y7 zOn-NL@(Jv?Wrkm1nJN$-(m(qS|15KqIUJ%G`z+mQ_=VqD^hb9pO5&Z;aeilOq4D=^ zCfxZBVzWBnPS{QcYyJLS>vym$7&M#XE#3>&E1kF4iDl|7zM%EeRtAhuQ~b_%aOWgy zk8skv5zc&x*M+96_1a+eshq5@hEpl)8=`5E=FG_oU2XTAk zjoq*9+4JhFZ%SiSb;*?|w?AFJ{L@d3{3PoRx+5QoLVgi#M!Amx)jIf$;y;exX+wTa zzzCxU5T;-OMc8|i0vudLGHW2yvAHFd1o4c5Cn*aFaqIZb%M(}I%9DU&cYyuC2D2a4 z1M2sdPV)9H|1NA?PRNPU)bt;;rxWrqdeb)E8?p;4H1n8MSnIf@ohl_*fz}gNVCPOU zqLv>}8Zo;9W*3^1Y=NcS;+CPE6X;?>RAAir#!p|`{y5JhI@3TAhsBFg(_m?B<7jDr zqeq&pN}bil>L$RgKQ`>+J#%pm=lwNUMMl(?dCbr{6|D|hR*OJ zex<%AFOqj$?ypfDQ86NE(J}-`v+^Vxh;kF5qc2*#uwp+qR-ImurjbUDT|<~m>~5QQB@t3 zX2~u>%|eGPr==C=I~=WrB5P4?L&$2%@#NGt1Uy!Jn|(4Bw2FBoINVKhFumS)%|c2f zg>#K(*0BmoI!3a0PC0pO5j_mHjZEaQkC7Q02XDF5Xn*SE&C3hb)BfG+H%~pp>@Qca zK*dgGfA}f&o85l(bm8*NJ2u$ap68a|`^@D7pD$#}x;4Ko-LYfoZ)?`6mll35ci6Dx zVT!)T7vZ#GtR3-^2{^2kl~}q|Ari^-84M_JVnyO$x*eq#Ws}QP+u(D#loSsVdx`B( z6*J8ulpv~;35G_5ZB5>1GW_BfbsWEFn68krQvIj;QMvkUIl|jdvh0=HGnqeg>uMI3 zj;mj*7u5c22gGlY3;p(3H*`|ljRp=2!u!MlGwSp%vuh1t+*}?Sm)+45W z-FSJN`tB^t4;E+b@Mkd=%ot`o6E>zo!WYTT$gn8+`4W<&EJevqr_0sKm8xWi!`Xcr z!eQ_);Ho7d4;6t>@b)&3MbGo}c^=y#}{8~${{lh$#h6j8iieXV_K;9GUx;OhTHYinwYHA|T8Ikmw$BLag`{S{xN0-hSv1M4_n)~kC^*rFhe?70B z+$;9De*E0Uw~e2AyR`DLHy(bvxcl+qs>(K%<9m<1uuhGt-(UQ2=MU<`*R8xN{L-B_ z&x5$BRmIDN&nizC6)6+ayy39l?@XuA?gE3;neWXLQH86)kq30~yu74fx+TjP%rtfr@Y=)evIc{`%uJIhaXfKW&^*&aU1=7=0t;9C6AvoX^NS>V;V2n)QRd$wg#nI9%J{a;~OhZpZo5Nyy)14 zuTIen(dhuLktBp*k3btXn?1>4MnITZCrYg|oa{KPUJTuj9qrp`(6q^`U*8TyG@)A; zj^`(l^tBGs7h-!LkzC>ui3umz=g`};X>UNmFfx{rk)4u)$ZDfk@aAL-LO4mvWVpak z2h8hEc2_qf`z?m*2Eco8>oj*zquk<^`B2ysL}z?!(0^2y57|#ZT&SSs@&};eG@l_N z9V4hm$4-QEMqFRkZooA&o}N+8g1P;xLOFq3@~1pdcuP@|(k9~rIW%H;O;V$)_wolD z8^?{ZoUyql&1O9owOid^P32?6vIDCCW5jWbc_iIq2A@Y%5&-%d>W)wZ6N;Q7NW+LQ zCm_*j0T?lEg}wr=4|L^rg`5zXLkjEguU@7ZV_3UkZ>&?#VOAgg@^RE~DMHnlrRq!T z682*oc>T+A^YRJ{!?J?Hlr|+90lO%2);0}RkWf)ki4+8CLJjCFDGy*&<|H# z)!*d2hHp`w*mO?HSq#5U9punzV4PJ703(1$uZyqx3mw5o-^Y1*BOY0Da`EGbd-$cC zey@CY*Yb^9^-dvD@hxk;aWxMb$_gFl=*x6joTsiApe zVjDW|U!Wl#0|6hcLRu9@9)y%c$dCb{dn62lk-dX-SoW&6yZ+-Ja%^ z_A^IY=P<0!c$LGrU?8vj!X8j!m^%2`IXKC zzv;gJt(uV?(!+n5u8)4UOE3^BqG6htf*b~Xpe0#(YJ7GHi=ZB#!OXN#THFLyMan?38+ z+dB3vTYnEb`N$WyBRAJ1cKz)2^=mgg{_xb7hHRj@Dg<8=KvQnaRSFoN(GJ8>r`_%m z>`r^{24@R4$d$jut%Clv;D@Lt74nHQ`gR&PZQ`2Op)qWe@})V1Y^o!j&L4A%p30?d zJk=)@M|=o{ve`TyRC@%rpzII;E-dJLH%_?v${4Z$h#EsS#d6>jfLtRkQ=?6+Z2T?r zZb>U*z#I=&mBPKiZNh?^FG_^w{VeBlf|^fNF-=tyPS0NEHYPRC3EE< zz06H`4nC)W=R66d0UKTNv5~_&M3!ud?oiLFUro8~)8RGD{?FZ?Ghv1L<94xb?Xv@J zj9#+6-*_YYPX-HLSi>?OdHD7tbJTC!iSjGQ)lV+}O})IvrDkC!n~q=)9+W3TI)N0A zKsb}Zkf8t#DBBN=t&EV*WJpHo`Bb~jWvgz0Nbkr15?{4e5Fv&OPE{QE2ok58{8rkS zJamQxU?hS(95a{aOZZ#T51Ai^-!ibU1}@!lwZmI!y*rn-yL!sJzqT8P8Gn^sxF^`V zefy5L$dk*b&;690jVfwxq$25D=He$=@8}9?CcB|`7ti@jq6*ck^oBwnMATdsVz!d) zb`%6Kn^S#mH_BNm9tTTyV4v6=etY6_T%mnv3xOr5XeWiRh62TC=IGjcz$N{#ZRtQ* zsnw6vo@pClx$|ziVMu=#>|Z}}^gNau zDLv;MKYq$+)`l5YGx;fW{pf}*x8B3@)f02R)ZB3W1 zhq(;8c04zU&mq^wSK{-qy(3eE-x1GpCVQL6Z3eLFQd9!>^;17}Yzoe~&M7i%JQ>2^ zNGo3;Eg(9~Q1skpb6Q%KJ2L=Ok3hib@k1!@-vD3`w_relE8UdKk41<~34$iA3$Bod zmKH}VWCsWq$iH+z>faE5k!dbZzV(`$`c{?&hg^@6T!++U@^H0=jrj7{!|psL6lM0T zn%~eTI#TA!=6~A6 zInhN)2lxE#=Lv^zM`f-@x3k*+{>!J6re5=)eDICU>h^u8VObESB9>pUYj#z&ZOrY2 zG3ZsgAeA7Z41Z(sTiB=nKWsv=ih^jP7%MLd&ZcjT6z!V=o;(QHlR>1D19jDvnJLS; z*t=nvPX$vjh&q))$$`L5hsTuKzkv*5SHy0{XCWr)(3x3IWyxg3b%l(gsO0PL#%?#t zeaGyT@}(KTX~Zi^w*Y8|YAGxZ$qD$4aS<{QF&BtG!l6Tyr zGWDiSqF?pih>)~vnDuh?&0}u5mPUdVHg3X5+^{`@E&(8pxHD5A0O7+*(r}s;>u3eM zHOAnOlgyIIEyKkStNh7X1%^ZcA_)pm^ZB9;BSwvYDrrV#FmBR&A65a(z&>Rad`MAr z{_e%=s@cIWPc>JLj2`($z47KTH^ZMymSet?sP=orvb+75~5kqOu#9gNGchhC#Q#7beLc83M>NmtQ1p_Tr`xy2XMK+yaWBjSF@i> zTX*?&th*H!HSAoAfYfL|Y=B0iPXN7wDoiH0JWP@iP&G7#Eo^AbOU-pmqE`rbe3fGa z%Ff-6JmmJ#4eC&UU9BGX#3PUH7(fK6R*`?K5fq5U)Ml{RqcJ zAc=Y?R|~b}CrzKH zT-#O}g))Tghg_EF%Qh8C^>3-i8Yij8#DiHYt`j>Vt1%lXTLUilkJb}zyfX5XDjb%! z>phP9^st`zGTx6KyO6t8UaSzFXR0YTWUF1Jx;a4J#d zO>QtEF-Ge#+0VFC!@JC{gFWDkM|bgm?1gAjeXxh0z~3iW1X({O6lD&mpW$bRcoE=* zolu{Re!53Z;;CpV{h*)38IOZ^BTp}q>z7kg$)eyk8Vf@CQUGcMTq*%ePEJN`Lk^(t zYqf&IT+)ZBD28O9k%G>>u$Lh4YrutaC<|v25N#6ercmw+ecJMe#=zONW z{?^Fo6gK_rH%sPz^YNlZAH2DE9!vh)_bgq$Vd<`*;@$bkd*2RVa&h_b8^`@LY)rp~ z*++)dzDxTCH2o>&*+CTm>fb z!4yTBQC(6Ip9ZSi8Mi4qT*cZ&yS#Q>9*Vl9uPv@myd@t(H z4d{;r(H6--xCbTJEU3LMTaEC!$tFX~s(YYGEHBoV|3^ESmX$B8;RbbG^c=B8(Z*_` z-_e4hQ+x^Wa5{fD$MB%KN>FmUQ70M5VHU3&&O*0jg7?nkVc4|#u8pfeF@|yFu|hsX zb@dg8$eKSmI5cYiokun9vBvu?yqenm)K~21Dg68;nIi6+)b8h~VhZSx=DCGmkaiRC zPt2-^a-l?UC?rQXaZVYb1NngM?gjX@!Gruv9JcXFlYEEAhpj0;6&_ zS~&pzI;fqlUh)1T^Ck^jIAlz=sz5UyXK}MOV4oM>+B_tKS#oNxms1*#mWfg7qwbr; zm}c-k6L(GY=YgXuRI$%WaW~-RC`Ks8IJ#gWp02a>n1U8#s2WetjYV^V91NZRr5?Nd zzQ)ooL~n@kbj%FAh6a!YW~Mme2VcZ|pz?;7m)tZk6yM||K*D_D;mnT=DCJb`Lsw0a z8fHjU-&=k7x}#sPicvEMKRp}I!@fPZQydX(oG>v|C{pMMmlnR}{R;bNPW;LPzC`14;ZLdAwQh0YAguQ5IuXELigZ zX`Qf8TYX+{kP-xCl%V6`A4b`a_!OMpF)59c02p`t6pT-e-lxPK5o46ssYju0PGgm$ zk+@J1tsC_CgG;vbkRMkMq3S1k24-~Rv^whMF=J2}7adBFC@9hkmV4|@FCcy;$)iA@ zQGoS~%tfdKx+w8GqGXx?k=PUYb&?*aC^iWaZ8Z^s9V7uFVOE$>t)F8-#5Cu@{U7im zN+8uP%PD@WlFg404j}I-HlXa;JUqq(Ams`2Ogw~xQ>rEsk~WfGS+1GzW84DX4g{VQ z-t@+GqrPckz1U6aa&^<$w|@TH8wbtNd&Jw6H|2xv^Dm86r>jq>E7f`Zm|VMix4QWa zK0i%oOhNe2-SDpsiWGSO3206hgiK!8EyD=`+bP=+fnl?uzc$2SN@lkNc)%E-984bE z!^98Z7{AaKlBf&rvMfQ;_m-Rf&?;7QcZeyd{#|_=XYGy@;QruPVHw%1FH2^fSY2b$ zrl(l{XP(~h93bUZp(t}L>!Q_bC+4W$rmi~w8#{ac(j`G`x&Yq28p};J+#riVej!Xl z2x8#NsLG780|5j9_yoi&_;4JfthQOQiMjy(JE1{m3;HkO%oNyzlE++>bj1wU;s$lI zx{0m3<8EX+SlK7)dyn6C_kz2ZiKWpa;=;0{4<0;$gSu2)JaqJp(}+8Bd=#LRD1?s! z$|U{&NhKHY(_sNPF{z5jlWPlw1R=+k?sOvP-Rblj{ILD{Q4YPj0RX{?)S(&OndM({CtqInisy==F~PCR^2GtabP=>PvUt(b?#z*gE>iSL&xt z0z3nsi=`*_S59p3{Y89|-NhcNNGVV+I7+<(ADugRSoDnggZdGhdK)WZ;j%%6hmKP; z%sR~cA=q&o7)2IpV&_YQEbVi`a+dD%!LKK!d(*u&4e9Bqh@Dmgo0Ao(c2+oI5(xdu zp%8!M0(@L%BP|H<<{%otN+L$PU6^8FD&;NjMjMOYHpBDfR0yV}81LE17+b*09@v z0|8cP8nb>H;6-fVV)`{d5^`M#O+YLeKa1eaA;nr6aVmICEn>9JMV;!okvIG$Me=X> zOkBNN-Tp}QVYW=2Do$I0qbjHIE=>a97#|A9_+X$jL1{!kUC^TQ6@-sDfaOe8givkC z;{v3!9p|y4*bsANmzmRHHQCY6---M@Q$at#(9@X2kA7lr;9u;8_ya1dJ_u}v(d;dC zH;#`l@v|GRN3)J%S1~jCIexy0?iQ<}2l-ELF&S$?aVcSV8VXR2DKFpRq4)`B8r)GqGPc)*UA#oA@B&93#_76eEq_@NR zM|MFi!$<3jd>%Jjs2&oIHv|hZn*|jIj8=;Q-a)|xOoUj6NGNF*_;ryWwx*!_d2FEC zi~YB{QLQ5E19%ek<-@DbX&*rjmX~k}tB9mZi2o#k&tq{r;Q(+tEH)zy=0Fq0^Emla z)~rtZnixb(71pF!u`JL$)pu0C&KmLf9TR$%mUgJ^?3e1KISB52=$WkZ-VJO%vYPme zDh=@52~Qkvr}wIK@lN$NdddV$dYt&*7g}6DKU0l`HYL4M#YG_XLxo`?2^^5bvE$Ee1D31g&<%k|-$(->o)u@o>}*5ynzR3Ud(AHk58aYic5Ifao3cp56P;b|k#I^rGRy~szLhzl#5 z3C~hNI&i^#4wDIJGN|w7w%M|rLYm*BP6CLf|PV0nB0;+h2(ZQ@q z>x6S-H0JIPG%yG0DL8<9QaHX>S{jJpZBEb^5qS|Y>=JFkBE zT~OlKM+&mo7a+zx?c2QiJX@zxpON;Wl|02zyFl_V70SeR6wzUl83>U$fUZ_Hk4o3S zhzG>JjiKM>V@$KPA8kl{SU7btdq%2zsB2%)yhzD&krs=1VLL+9Y`>etKheGtXObT6 zF@`p%XMa1_{OENFb4ndR1w&2u8pB8GA>9kJib}nx>u!LRgE?y&P?gVWMIBD7!{n-I zFwvM3EmH}cPuuV1S&-3a_!TkXMqGKEiNC6z=y&Q`xnk_Ne|!x2N*%aiqq-IwCMtHj zO1-E{UP>`~V!>k}L`WbXHw9VYZF)|Wp}x?)-|bq0w- z=uNCM26}yTITJ2i_(d(n+zcBxcFEF1l1yiTxOKzE7hc3U!23is=CDGbJc_NLkXvY5 z2o&^Sml|QI1r{7xZyiSTicTMzm){d$d_H15U`H_>7gcxk44%Gj+}NYX4$*TlH~MpF zSJi++?ScHjpOz@1v__zeO6^>*Q8Q`!Yln?|) zkxs?Ug1WZF)_-`<*2kyZW>JT;ji!mCXD=Pv@3oO|+X?EA-d^VhE?97A?j2o^hKs>D zzEnR^kI`(v%SrepZg|(A1CnlKf_R+8b*oG#@bH{Y8-n&ot#Tl1i_jqT{_(l_Q=JMy z;rSYtS2>w2TO>*-o78VFe5(GMc90h7a5{7S^DGNSb4N{|I_jorQ%3=6^Q`*8#nW_@ zsDuA`Rz0Zx^6YcZJ^So48%Zm{mz;?eBwY%%os&e-?Y0{XRt6(6WHlBLVc1FnwzLaE z4kUY%!%AD5Tp53+Nm2bNoH`**jiOL|1jVB&^V6Lv2%JL^ll*jRR+hC-Lkb+4H3-hn!ne~WIDZc#1CgNxL?J&CA?!`BCxlhXtXNURNXQgwg z&mPOlrc?R{z6ZdUlASIXol_BnB1tKBa3Z@M_|aCJlup6>zia~91)6<9FKZZce^w$~ zPh6^gtDb_3FND~g%@fDZaIk08Ywc6U4*2Vs2fZu|h{aYctL8+v+vgoxI4`I5w|#YK zg=di}gpz@ET#gZ-mODYf!9=%RGK2wYLu<+Ph#B)&9 z1v-B#(cwx@$H4%=V<4=Uvs_R%VG~0lS#Nj<6>BvCMWllV#aQwmvSn>qiB?_VmO?4i zPU6&*Urj2gRD7<5fEs@A;`eIiwoy0Uwdjp2WL1rKvl}?$<{Xmu+XZelC{l>By&zGm z8xb0*c9fp7rr6Cmr4e7s`K8n5Fb1G7b9tRurp~^dZ#TLO&Dt)LU=MV?rWG?z3@X(bl^+rn?rr#g8bW}YerZJBy$|G56^jq4I_)0|45PAr@7b!1>WO4v}%gs$pEc1SpfsAkmi6A7!$fJzyZ`b@$we|#?gbch{l zcgH8)a#-^5_tfv0-xJOg^Q&0b+{np}HzL$x=Pymdd}h7c zk8=X!muB=Ukip%H#Xg(wtKo#g+`M8XaMw^UKuKt^y(PjlE>de?H z>9{^Y@ri1F64ks!4O!IwvWcktWw2W$8!!>OQjuPI(7rPLIohxd`sg?Cxr1NhbL~a4 zVVyRMvB?x^E~O{=TqX(G5qrxgfGDnbfIhFW2gIhA{ddcG4(QX(^+stUM_8oaKGp}|VK(G#CAFVe+sH7j11Ao+md zDH{+G;s6bKVAMxgh#&Nzkom!A1a7O{YqeXGJT{v<$%Jo%L!hKxbWy{`ZSG}4@A#UK zI2Y?Qw+-QMp4*%2)4QHurT5>L8xW@gwDhGa^>ljxtMo4^q5s>nKowmr5sNc_%0!vr zIrw$z7!B$+^ ztDoNR_^OSN&Lv@H(wwP(;5C4)F#`xIv@3E_9g!JwmLe%4l@$A*z2i;M#^kSNsOo6uLH@ z1LWo*=zU(;ZL$%MR)vVR9>VBIX`3$X%iFi_h1gev!QzB++7l95FjyGQ2#0%AWMxH) zO4HIh<^>U7n~XZCZX>$CzpN|l6Ig@&WO?SkQ|Fspji7~U`4ZGck)9PKNbuT&sFDb0 zK`w+*&mXNRRb;3f7z{3PHSymmHWe)bYe z|6M`c#3Hy?wyoDFM9~+tjX!{^3OE$)lu2m2W&J^M-5(blq>+G5Wr_jFM*u2xHH-iU zn7~wIxQNSeT@q3vV7?+;bFfg8D^8Q9cuil1r4yGm9{V2XHAtDq?db0qu~D+1j-y*Z zRtzc7g4^u&cm*>8109)`49%dW6^P|xJlD)(Dj8&Uq{ozJ`CMYpP926a38~OT%J|16b6r2NwenBK1*S+PQz8r>%b zqhGUK+to`<*)9PgZyO=x!OqL;*yjp!BAvaifQ@h}EiPAfMye#HioUG0v_Qa@m!Fgs z${O5Y38lNz($fYv*r63A13J%J*APe+ls_wMPo>sLtRZ(Ucnu-Cx;Y^?e?ejYRQuA#d3qx%`QwMaett$;ZW@39 zix9}}C_>3QM2K@H*1z=o`F621|@Y^rN;DvtP~ATW%|4bT`h ziyS|vG}AC29ma_D;iH88hX;ol5Qf05EC`G!i{+{z!>6j829H2++@Wk@Ahtvo4dy zes}h$dbm>$qVMkTqbxM+#g2I(QjNnkH#aRaC+JT#+gz?3E5yE>oWekQx+yiaz!nIY zla=(0^uY~Mh9hHshG>eg~*f9UR8U-(7cU$|tJEZ({(m-YO4&xTRGZj%o#y=PmvB((kK4oyNwX8CS=AirYU zPb@h2o6In{L|3eSI_5z`7HKOCkFF{2x_FPRc2;sZhn4to7Sz< zvZY`W(gk!z!jBIy0&Q6OI`iRZXFLY1>1)Ji5|NSOX+UI^LL3qum>3(;yOup}$mB-? zJNMEPD_-8dZskt3xJ#d&ojdpJ(m}SXEg#QeSlKo0mDSWR24{HtcukN5{*8uN7J|~ zE5*Ay)hb7Y~<@VjrruYBm3u$AV zY1-*mq`mj|@2c*~--LC7_GdhYT}m}W30-$&q}b_6@iG($hV{ajmEz6wdW#VO-8vj7 zOb_52=}=a%PYG^k#-pDx0us&mFlcw;JGNRl;`MAy9i|(`!?2s61QGl}5n`l(c@j{q z64y>XqV7^fd$M|-)v!zMWM;WvobTK9MW;uzXSNH*6;N|H@Zhtnl_ZMGyR?vj!On>#X5 zgDF(V$&R33lrENoF1uZ(7)z4-bxP!da`T#znCaXXvn1*cNvidXk%gHQ4xr|9xyMtE zUsYj=&D-?0*zSPX^%Es{glMvo zvJy!4ocEWz(7o8nplu?actgM>-hwS-bcu7G_;JyF=U1%yd2!?0 zr5gt?e0fmys1wV}o*wr6?cwFj@WkJm9(YiVKBKO!=so_f!Zmk@_cLEb_nGQx^!=)) zZrL6!sa{o--s;(f;Dr2yH#j4iaX-&qu4=oH=HB}wM{w~`kb_A&haEOG+l{zT zA=?OqzZ`1@{6bdQ=X3OF@EPUg#2m$#>0Cd3!F%~hgtR5v!|mL}iHH#yU3leYW$r3| z4udhtqn=kk*>m8d6~Fy;e0^Yh<>Ny)Z~XSh==`ypvg~ygy=U~5Rw0=&^3BIbwzA4K zg=Z=|FvoE9-;I^b`;T_*CjHm6RYV&d5WfICC`7~93I9lhl5at@fECCO4kr&`bt{Z$ znM9oCPJ)#}v0xzv5ymb;yUWk(z+Pn|*{;ha;&{+}S2K@xt7ocs;S)s{m*q+VQ zt#MW2p&lJR2=OhxLa}S~sQh5m#?D25ld9FK%~E&q?8e6E)Tj-{CngLNN6Q_gt~j;+ z*j9uBZB&j8cjh+zBsVIbLb|DpBqP~dF&Gh)AyHBbLhCRI%mkm3#^dAsP?x~?bQ{79 zEW*Re#Z@n>=eMz5huOC$?c(Rhq6ZC=NPe2m<{GNxFf_4D$WL{st{nhwL^>QF`Iw_t zMNYRt3S?(z<>W{{AY8S|LRuhJor?j)qezAZZz2-BVy(%*OguMVJ6ibpNc$hsktP;G zB+51tBY^y5sM@)B+uV-J2Q1z3(gWLO%-i(93yq70)#VK=Yu~GvIN_Q>1BbWo*;_pP z;Qnp3*X>&U@S9sVzoLG%xMz>rPM!KP)1oB5<%n`lEvk@#Z*QVK#45f7JSfmQ|W3i%*>szGR6xg|Lz zM(8AR;ZH=TUweM$KcvO?sI^aP9$J0XjSrSlIqe9Hz7RBsUFg$GBRRksdcPqFpt z+4?t5Za%?+L*F{F`6TuPyL2?$gqUxfwu7oJkLTb z)eJAatPqBb{BAq^Tq1q6XHf7e3*o^=6;wK5E^K# zmAzzgCe0I)ZMnD+9Z|ok8@63h(28&K5~7bnu|oU|=dcwP#4I2rx)5e<^9RhHOvxV7 zm`02a(3X}d%tMk5&JYe(ya76^7dwcD za0;g26wHBz%^L_vo*=-`Om@JvN~viOQ-O&DqEwQ788*zY7LiEIh_-!fU(jpqZ>=|Q zd+O{Ie4W(dY-2uQ2^uTe(ue;3`pZv_E?ZQ!<(ffV+fT;ftFCpnm*=louxwqsH?vwT z>>6gF&ZLGMh3zQghGHkJu_{ ztdZ6Vyd4Xa3rSNCa%Os%C*k*>`1_hC_lw~kf8Uv6&1|T-^=@@j$1a^Z+|^T>{P3nX zo?z=YtgpEHnxc{i)boA1R`#6Gy`J`HN37s+%pK4#BS_E^kW>eW!U%ChlrjWbGMW;- zD>OM|Ujt9}vDK_ztrgd*Z=i)8yH-RC!F*_(C%FtrSmC`RA&=sde7RClZV|L}XNJXT zX;Xq=@2sqXg4Co?HjZhY5Eh&FX8uIWLaW0~FSHKESb=WBQ6UADTR3sr<|}~l!33a= zGuDVLTDqx6|9;)WZ#?$Y%YCkyztwwHhmM^V-8{3XxLsaeSu4Y#Ipe#IE^5`eZ|j*W z9=NUBgflmbKoWF?a38WZYh@gOV zESzIaPX}=YyqTsyUNn%nzG8Y*O_(npH$p(Iw^Vd*-?6H9Pq|!ebnNj@TR7^`g-bRc3-{?()vaq$k0Iz!y?U2%ui+d{0W10w zfCiljxjP@)XbBJ|tAJwI6*lNTh-17~m?+#T+#xJs*2v;Wr?v)%qg&@v!B$s))3j+f z+%RdE-2C0n3ZVXnpN?OBjxMzy{B?*GfYc@sy^oH=RI ztXUI>_Ukus;t1RDL4y|EI%0&;?Y0%C2T|hH=1MY_aE z25;js{TFM9-sYPdI)g?_+6~(OAY#}a!@k@KvPCk~=zxF$3m&YJAZmwNfTxI zYx+$h0bQ@4>-f>l?tEPhFqM#XJ(nU8VgdY0IP8g8)quWF8#au3Q5D2e(7acvXC-eM zK45Jp|0Ya*(_nvVabODsxubji+#Rj^0YRsJGPxX^2proZE{+bbgU`O9nMC!ODhTvoi|>7owc31 zckfj7AA5fjS;@Z1llQ4d=?RKDb?T)}P-H~rxYTj-WVR8{uA#>?mN4fW=0G_xXWwOO z*DiZx&FbZEzrFv)9z#ldn&hOO?FTimQQ2A9>0hia%B@i^S;m-#vPaZguD=QVpkCc; z+>Db|LKIjl;ENQxbCHmrk>LsitS+krh?Sz&X^J(V1b|mrP>}6LxLP*85#v%)634&B zn!)U&a|Bv%T~@>uyoG&cmJGxdI0GO}F#ySzuK*Gfd=zb^vq?o#r7ey1jYFmHT6Y`U z_tj?x?Cvvo-SDnmN~`NTruOOGy>E4o>RyVsacJW;(sP$f%DR;fzH`{()$LntA9z(s zMZe0P(`q`ZXS-JS?Gou*twrXDrz!G6ujkjF0AgB1Ug$n(pbZ=G4q3d;7@kxLNe2>U zMLMHAd3K7cow?LnDz$=$tSD{T6u1g1F*{Z5(@^vwEv=osonUSyv_b%eU@t92AVw+E zYMEaVVF?p9kvz`{&~^pi0A#?R>oi-q16(Pluoway(vO&_e!A)NrgNu?{Jb2^6exJg zebQ(C`)}^p`v|)rs&A5P*|B6+^$2x8tv23~cANAe!pTGShOKbgz^x1QJ z+IP5R!PiB_0D)Tj%*KlGMXl1(cMcsntm{2}`VIK%*UXT3>(K|EdP6;_o+Jb{d>ItO zTaa0LN3xO4BLEtcK&AsQ%lMrh5AvG4NUJqj43^pk17(ZxNE8SZ7+edvovzR*yGUI9 zA$q{%LyKl1abB0(#?8F`>h7(B1r;ehc2=tIt3ftUs=xP_ZQWB(*^2USP}e>fJtme& zi?LSas1HUNK3-&JOo~)klAVF%K#DKLB!$CSStbDdnA`wjXqAMLS)q_2DcNaFLZDd^ z1k${81G1O|Lkz+N%ffrCEl^DBX{KYHUGc&2P)s^5U}J*%13aVOeR`^^dTFcjt*UlCRUTdz$ zST5WVub?1AH*qWjj)jg2Sl2Qw3wLOAliabnIyJ82gH289EwFTVK;|9CAjkb9qQBt{ z=uy#4VjZMt^6?__1MXb{_jjQDE64Tc(j(Uz-jAKG8h!c`k^RNG-y!>}t0rAhd;-{G z@;Erz4&d}mLC&_{=MSdXWLT?=sc8rlksT>AyzU6~DEoN7W{>3$-q+zDWh8_XrWSM5~1_!VDfWTE$!PYw>Y~Z}mU+ByAC+JrS@(nco%0x)3n%>p?{s4L(ycPM~%5iX652VWss%mI; zBhypKbR;EFN?L{+DIow#L_T9u#4JlFVHe9_O!jsFMDhv1`yRgiI#z7Yd2nv$%g1)Vg3SGgUfCnBM*`yt^>%g- zn@pAJ4s|}}f8k)+U;p{bMRt~*`>nAJdXMN$!(oHMWvnpu9(gMPs=kL52LyVCeMx@Q z-Lqu%X>dd=PAR21Q22lCeRgyCIrJZ?fz5DdU<(X6Ape0G{KDPHW|dHGZUrlLq+avj z_;!t#y4$`uCll2ZegW;>M+Au zlU{ys-9xoQKYB+z5uHJppQ3%HfBCKcwVTHH8jmzJHTvZf>NU{P5Sexf=P9oILq5^u z;#X!}zMHOG{*QdTDIM+>R35twi@m@aPsnen>y!=H1>TnpsLNz^iO`%6zK_Y}24%0& z7)COjcGAIZ3lTwGx8AZf(66#pcDI_0@r4iEZ#c5Hu+MT^d2UvAV3Q?jDsNXEtmZb& z!-;Kr!6>3dEL6MlGQR5@Pi)*+KX{}1^~#lf>NH*o)G4Y2R=_!BkEYwT*gJ15mJr+) zm=%QIL`hQ^p-`{g5wE05xv>cq$Auox5w8{F^|sbgz8!I6o&~1}J#3s8YdF+6Nx=1i;lI@6@0qJjc{+qM=Fsrt~7?ho!;yh0t*aOa4 zEt81OD?N~=<&i~yVM4h~K_rXQl`;%9J^?&3m`AnOsBft|%)M^HkAj;7qBv&Xpym(n zIVrNOAB={D@K*iv*6p>mTW>{j`^&75*=qjYeNxYB^Ar#_EdxSOi`^{ZxU*=^uDv#%;YUL5-Qzb~u5_F@mHxAtP@%b%aeEI^f2C|@R7 zxH?jpjIb>fhY6r`sxJwYVX?TF3#MO~C4&L8CCTr@1&4uX9`GdbY(*|vXalAbfL@X8 z$;FEhfjc9vq6$iT9DdXo0%GYh;KWAug={8gr^)l#uw7kDW3OZF-u;JqZUfTeqVq@J zHRKUk`6dCEbPZe1vek#9|9+p%Qx}4d;0xJnlmV6^3;?o@+ix(WIT%zd3u4+~+k^0f zq=OWI>LBmhlq8st$sfb8Lhnjo-G`T-q8Z4DLh>H|=^MZo2L*zS1ww@n5z~A-gvAOC z=m5F>O_)1aJm;v3#}hu#Kza0M1P~;T{_4H=zG_^}A%e7i%7%ROGYEc?=L)zDhExX& z1gM`W)K6qRA&eW*y^bU#1R;()mW1;TaXuc5@W)+@B?W0+j0K&Ga_dpDbAD}WI?!G;pB||4aqWd zc##etg4@q6x!hJ6ld9vPaWj=BU^csAG!fbb^cs-8ZmQH!(Ih<|1v&n)C=uY$j)|^L z`p4!Q_uew@;A~|2KN0+Z()^FNW_PfhuTG90zT=vw|KSx!i?d()xFDCqq}8#`dYXSS zyJ~D>{#9GoV>Kv~CLP%gg!Eq=aAx=cVuq+hVE@9Pttg=+UQgR&W!W&lrBj1FWy zrZs0e{MleQX@F)(+{{T#siBQaQZvb&*s~CGVXPPwqE^LIE$QyEI zGN3{Oal#m$m94m7AJ6o_`-3t*!*LSG?t&A@$PUIl*!hqsNu2K8qxgroaGvmh0v;4l z>O(fmwnJ0(@20<{ACl|EGC6W$k?4M%HVq6Nyj7}qf= zvb#G&bNB@`IlD)*D0z8MO_8q(In@eXaI-iI@-zjTBezXtxZ&BuajGns{gH!(k~`oZ z;hkuhEhUiVsZ9rq1G1cuAfrz?>V-#;o>-i|=N~UkFpb1^7&H9+49xKN$V)`&D(-wg zHPf*PYI>^E>EQ;@l&|?V6vwzWVgHc8jC&!CFHiRLqtcW$*M_5ccFnEGxw&4O*MnJC z$r(rIK=LsxNMnZ!XF^@B%v`t2>GHz8M7a}qWajxzb8H<0qs=eLJ9B8vu^5<9K+wca zr=d|iMaX8I*Iz%@e~bR-m-IIfu7%2Eqk` z-8@#AL9m|YL-V^f*&k!cFG7_7$ybo+c4rql9NsK%hNYlDLU2S0RPkbXgKR~%B8VEq zu;u3ZJbsIRcv}J0eo=hcun+f*BEvPzU4%IvhMBG(qauk;KgQ^Ikf{&~ppq`(Me-sZ zjqO#)xauuOepNc$4b5E<-tzGJ9$T-~*I51f%GF!Duh;i43y&V4zcF}B^)l3lL5`(; zPdrm8-dVd=udRCV5xu8adBs$B`_1wK_q1jD3T2t-PGiOy1k2~Z=KpleILgy8<{`$I zT^KVhy8mB|IZ^IgRK0w>{(&W~zu&f`=2BgsRB%Q_Ki1qUcaoU7Q{N!QE&pwqm@{jZ zzOL-I%k(WGG`xSN-dF5Z2e#_($&Y@79SZT~9ALQ=>q$WReR2$Rr-IUo%uK1EpbXI; z`Mz>^JQ25~mX*Pv<1IxNfGQTwm4PZ0jB!>tD~7en#l?8mSBM0(!`m{j+GJ$d%Wyu+ ziJ*QI{iHH7#I-E0Q%hu53J^%@XpjJ`UVPD+6zCd1{EGnOq!(LKgOPuYB!oQj&bk;< zcY>wm0s59-rH%G|V&96GxjgOo7bJ3g7-kF{Z$s{SbH=tN&&7<KSuBg!E`nX;a< zoH1@f*`X)`_`aY#r;OSb7yw}VfO3$a4}$?Dy&+4CX@W&?q-k-b%|XJbO4&zN_73S* z&}ZWLTX#Qo-|mCRfArrIri9nE&D?N9iF;i0li%%l_yQ_oGJafQ+voODBInL^@B-Jvtrkkd<_Dv>p zYifq~?KPkma{V{Oo8m*-nwq?W2M>_Q%{;VCN}gpO;4Y~g)K*g94HXP(D=!a)ybY+@ zVIE(OVb#UN@|?#CUZ-itZ0AL|+%0`TH&{Doe*GWMJ6rw|*uL__SESuahAN+)dES>L zLR=6OQ@^YwR?$3q$d%V!G;`%VoYDT_;tPhhojann+iyy=G4X*?`WqgAD!$~7m2g+Gp)Vlf#<#LdA_H%-}_9V z{9*o6ovc-J#7g~&6A%6I`JD%p_aA-q_fHs>Dho1?AfCYoe;abN=2Pl96#7Mm&Z0aV zsm{xTp$Zj_V5Wi*C3T+tmpui0fvwQfw1En7ZJqnt#WDp0Rr|*m%+J>QxaLlsGT$X$ z%AV8JDs=;rc1xGypS*Fw{P_!r;_=VAh3)D6C`Lq8?b&edAVrqm2v^73MA@>!{+(z4z@s5}bNv-WRD*1!VzD0JHHqP*6xHE&ByxO~i| zgJPCFgD*RN0>?lWZd!ZQ!?NSyjYC66k-wOGWjSP-4qG3ps-X;wB}1U@Ms_x$!6ZZ| zcs0~`bE1NQ(}mz#bjdjNd)iJ>#v0y#oBg333p&~NjVQcQb<1MIW}iE(r8ZO+^TWu0 z02}X{9vCt23NiMkS&cj)E3>mdF|-Uq#j!OAEk_VKJV zp0OOn*XS9uuouy=?o)4sJ)8W*4btpnA`^-^#cCr_Kt@KlFw%$%sav49I8s(OtgXya z0Aovm7Y}(bV7DjBGrTRU&_QF4nvMt-}-j&R$aCY5$YH3wf)a)1MT>kVtQU z7QPNx|`wXpxYGt$Wo zNQE{#SkJOi41c>I)0S28mT2KQ89t(WlIG-i&$J!b+R0Q5hNKx8y7-hC37aP2hdNt~ z!JDKtFFtvVt-Gxe+HN&6`_y;?rTL*O)T_X@r@UN}Y7jvk4urBoNHp)pk=N3EJBo)| z6-2%FjUC{nyKljP4$BS`0rtLSr!tvfWA zzXlduR;+)7-F$*{%M}T#>7P6Pi9ftRI0ud{Mu;df~!K zq@EfCqF5H}6|L(Z)UVZ_d*x_VO-V`35ZJJ88a{L=QWH>KzjaoRWhX{ii%iRPN{QE% zmtm`{tf}Gbe)Ty{XI-eW#sz1lS4+BFC52qJ1a%5&Ysce6(i(H1okUT`NKt^0=sXzW znuNRz=6I}b1b@&#*}RM0Dm`GcdcONCqouj~;EWHB{_QjG+*$q)+fS^#*W0~&ZJ&a3 zMvOd5>(je=p!W{B@reFmu&GDS=8&lR_!|)@A2q5%fB!4}XrEARd93vDE3baAIC4f~ zb3bFXa`blGh+3tCr8a3(a^$cPy?c!wk&Lypj2Mxl78kk0u(*bclt3h+s^ej89fuEw zoi}Xg(ERhx>peIg@7}w2_wN0>nqTX}!DJ@`tb{V!5C9z}Sl-ss(FaHZ;}^|Hhp6t* z+xR|A^#A=D;vNjq{qNXkn-gT}A@i()szf375Tjx_$GD@^G^LP+$-F7vKymMwX*S}H z?REFalo5CKj?u#(OB->|-q33-8*v}qH2Ik!L!UYS{_Qs}aPR!hjA(vCZRW1Nb1&*K zfAOkTU4P>0c(SUls&#PdXg2aj`lO7!gGUW*O&NLnMA*oCO#goVh12E=&rcuysPucO zIh+;i**N9W=3sqLe`4Yd_A%K#O1vI-K~Yl=9FJ$ul5MYj6n5!JoFUts95t||DL%ZV zwqL)N7A273sP-1)aEU|7&dUn~Mx%!GImtSFbmqu22M)B2tiw-ZQ&VGOPg}A$BclN6 zN(Z%-+1%BVAG9lJgW7_SZhfP*zra>Oo}0W56tjS{9gH;tEx(Si6uzuvJcqs9u$>!~ zae$cSCdy(7Wg0jFi>@1{MFYPWC@{XDEKSl>+AfP5&-mJoDJdv7)(cJe(V=MkS(mHJ;IU zS2Qv5|I7n$bPN%z^=n46qeGt8wtWWvZReR~pNDlbY*97R>SVvdi~=eoFKI&;czfeiX&ygV2xiDF0G)z@P=SkV3nX5#5}Q$ zsS^#82*UrQCz^f{)=bRl#8w9a2$oRR)0)XoQlg{^wXvt9%gl*Q`gHhBs+@57Ke$%( zJz)2FJ=Tm_lSTa15A=^$t(QZi5{(-g`Tvnvf3KN$Sz$9I#G>}wa{Kh{>AzE4FCzL4 z?I*v4>b}CddF=M-__uv5>7CHexF$+2M`O4*MXSxObBjKennTB>>S(O1*PKRs^myW-v+PqgX>eW{8kWW?8h z{#wuVYV9)m0j-EL75S+juyQ)G9l4M@IsQT$@-iVq5p-V?Dtu1!m;DIR`p!NENCRUZ zhzyeBPQWK(q$Q$~Vk;Lfzeaz{?ZujIr;J3XC-(c_Z`@wh4nHAcvQPeuy3>@c+Ox~9 z`TW_Gks3k@0Yg|VtoAA;dD&($Zu9cZqWf9;%lL!dwbQap*$1uIEg_a81GU7FdBOwVGa{=a z2V(C1^j2m~yqVYRrg*FzB92_EVy&&Y+ZnMr;-ETZPIGt5d$qB_XDphuuzL%&{G;Vv zixYk_zl6wgH4};sCKCseGo{Gu;B&HWi|!m*9wo^L%Y{E+tZ4|xYZ7wns>SnrTr{`u zuFTqolCy?f_mtbZv8q1Uyy$|)p7Fer#9m2=H!ORREn_V9NtH>LQ-L+w;qd~%?1w_> zuN%x@j9@>_9YvgFBNzmIp_IwZ^1Q*V2m=||c;!>)+Q#;1Dl9-A!m=LDF}5|6QAP-F zIEXjMsW&K2iaqh*lp|tKaCR;dd!3leoFjh2sf(~8?^@A~LQQD-w6d(t>{;g3w1UDW zlC=)lmG&S?bR9Ze0KKzW8i;l9eC)_KB!`TQ*R|Buv$OaDANeF9yyT_kd+Ppq#EHIBO|^;>yA zb(Q+9=gk~fS6AKbrRfv+(U}H@SJ;P$(-3M0{Qon&)lmsd9T z@b;+8w$(*#B{?NIuv`SX#qvtrIfh85+_P4GZt(tohgTjS*Z;*4hgVv@KJ)R*r^o|dIIi%;-RlP|8#YB7 zWqEf%>D9q0T4-FO@!S@C>(5u~<wk&cME5cXR8I>AbvP=rP$VMD zqDfv)W~jWNB-bcs@|Wlv$k>4uFlI)`AdiEo?eW4$*G8tHbdeLRgl3@=L+nuzLg;u2 z(NXtAwC>QiK9{O~Vp-hjM9hWLGUa8+x6k!Zj*o61CbpS1QS9qd2W5^Sas^g+eV(lq z=WjHr45P#O-7*vdL%~>=1;GO-8=GmPf!VR4DlbD-%cPQ>Y0+G6e?%bpz6 z#==VOLBv63p#?D#N>(;jcPZO~pG>!siA5ffalE)1syXkc4G%xbDJE^+HBod#Dq4av zJ0Kak87hGqowfQq=|W0t)`(`K3WBv%-^h^?<@%je%nPNIWSr(iPEd~L$j7cfY|BLs z-$I8aHy7b1t^&IzQKnSHNjPvqO_E%)3xN_YKYY}w*eeLsUyYXVQY<=tP`$zknh2y5 z-fcvL1VT7c`9n7W$KN!&x?02U6FOVRG(xPNf#c%Q9^t9It z8x}IxSRmtzQJpX|vj_*wGNfF;$LIDT>2#sniIBn!H?p_kz+0vh6O4XC=D!w2dumENv(%hsBxPRmeFJOF%{#7H!M6^Cym7zi`YYtKg)1Td2a{ zK5$)bj}4>3i&xyJe7o{MpXKv6`#HUY-XxEjx2S2{oSB&WO-3$fNX2StWwKvRxxd0& z=|e&KqF_*ix_|=pMT!a;W)GKFmZDC5ju#akgB8Kjylfm$#woRIc>i(EvUG48GRi_L z!?>W6F|+^5_%Il#%DisV=uD>yjS$&Y16-<>lCc=uI3BTr9S3Q0=>aRYee>OJ{jFoQ z?&kY1eC5M+lkUAZe&>Rj^6X1B&-8~z7$?Ip-jU_4oRrP0KD@>sD@E zyQzHVMtQ}usjU}3_#kOX#33Vr*DRdJF0&&3+y!$JMd)PH31{#}W~L)63+IjzI6$Z~ z4b>f1CW9j|5MT&&Mzm(+Zn2DPznAjw>#wa@W8J0e8}#<=@@QS2inoH0l^5XqJN;Wx zrrUTc?0YVX3Hm?1l_}hKtMUS}!3;wot+&=7?fS9zj_8xb{YS(h8tZOdvQpWT5=8ve z=HNWPJ;UWH!!b;YrPPJPtGVzu!nRh#1<7!>n=Ae(r2M8jz&f|-bx-O4ghcuu@11@79?^K$+T(Z4T{~pusocQ z>4&%8bV>b^#!Hv$`)V5Wx0FU*8Zz|WC`rjcnhm|u>B#@DH$gkPxox4-RLRKmKUqpXB}7p;_? zOG_YSH~bruAOlfP4zZ$-!)IYvRtV&A!2MR-N7V`32lMd#M*PM~fXaRdCq^a&7vlOV zB^2|bnv)1E!l4E@ja-?w>}-b<=WXCTvbr2*6-1*9B9E){P}yo=tfv@ZfQD(H3>Npn z`a8S3)KhB|Y6=-pZp_kn)F)^$)+XSD`h={^ic3cFCpFWJe30;bBfu~ldHS#?LwObK z&Tu@&;kPjsKt_<(1{Qv$TR8dLsb^-zhcJrwt}$vpC@5^v{zb>^;;)a|_prQye~o0T zSGph>$+SCd*qLV|sa=*UQ`52?cmyTUTz(tUr1-!ENFAAB!y#*n;-<`j2+lGhXqj7S z$)KMUVbCA6dg5*T59+JD0Q zUASEqQ=Son+n1a;BsL;%2xm;?dNm%3h{bHVZHir{h%#06*_=+r<<3A19Hfq0&ah-; zV>S2Frh+13sjn%qLe?^~!`x@1qo88wwA4X_NC=dc4`>KH+9ZlDT(=wfy{L@FGw-gu zK>vhhaGB_}@=GeFA=Jmj)Ftf)j8(&0h57VJlamoAqP`p!w-14@R8R)NQ#rWh&O~x| z8FeP@2(W_E0pjp@GF2IeG>m9BW8pI9ktdTSp)t1*F6cJKfsT^i6hjXwdk6lb*$r5r z$gNqkRNRo7Onv1wSlz6V)vI;=i|yhEnn`))r1qaIU=<@j@K4a}a-^Bb7?MqAd29}( z#mNHF^D=x63xuG6z{V#Y)DzBf`~1k)2u+WAo#kQ;k9Nm~0B0Iyt${>0$qM66O70P1 znEj?T*p32uoqA5nUQd0W+p-Fd*s=OR#By!YUw{p0qjll$e)p=rL*Is@x`pkl#lDO5 z&6e#Xxk0^Dr;&K-Y*fd|u%aBI)9KP^VYEXpB{_|wRDLH(HrO-t89hU35m+p;=p-1njR=ji zxuk3>s#hW3oXa62je}kFBYG6}cp^|%%D7K4VRi#ON&Pf-GldQ>80gGOu^rPjNPMI} z3nu?q-}o}oWJhrxss>`pLL24lqlybu)s{TDS{7aoL5PwIMq#iFWH@D6h{|9c1z~|% zb2FIg1^tGgCjr>$$7`KVy9xbZ`}0NsmS}p~6oUv|#SEdg6QAE88A$n=sV{?*m8fiv z@})o-A=@o>lQ@o?O z4deJnt^|R2INNs2Ocv;;f3jS1vlfj&SjWgalMj+dE4>yq#6hg)8p9!-lCxB_!p&k$3)Z z?Z78aN~=v3^!AN9%8^jD9=+6Zqux$@y7=UF>(8(x5Q)*Z#-zZGDHo`r@KN*+-><8Q5ZGI32;-g zrGnO#!4HgugV<1v2rbn{g~t_@6%arVIQZKNiQ4|gJ~ zN3-SdnAW12p2?Qcx2~9S-8b+*X#cEP(rv)lGv>{lcX7V6rg+PP>v#N6S3hpp3~}PJ zXX1A4?c6aHB7v|JpNQvpKgr*+d;M0+h?T=1di?1JySH3(<#|cchv6UMinl?Wv1EN% z?#_BL`D+f7o-7SA?u$+MP4Svz;6?F2zf^l z%!EXY&~cDW2_6wwwnO#{>_SQX>OeMYUa3K{_m9K0u%G!9>q@H_`B*_|mb0>AhiKJ@ zBb(3HU}nczH}~2(SsXKDD_&0hz*;vc*^p^-$r-5Oft3WSu0SSC4|FWep6Nt6RVmvA z5=D_El#vn00!`a_67vR`p(jM99sA+bj4&;lyU0#cgR>-5f2mb36n*tQ2pijj--S3I zJ^?CM%RTy3^%>MRa8*x%3(i@>Q9_^JL+VgI!26hb}0KJEZ! zkn{!2p@bRBfR2yj=}@7NM$Bz@Q0XWuPF6tCb7ZNC8;T9Kbg3Pk*-JyXr8ZB{pTXCp z=Nb3$%Ur#YLW&hqf|kvqN`GgYz8yb1#ix1?F-G*nk+N2tqxja;Zo=*F%12TC{HUDW zUfW&@)l!9qgQ5)FV@;ZojM)+XX_ZiTm6I}CtitL>;#-f3)HyiAFdR~_ud!d^xHlM z4}SaPk+1bFmK#*LryS5XimB~~_04RSUZJlvB!QiB`MIQ_$Qv(N9Z4L~$&|5W(PVda z2+l&qCM&S9!4xGyHqa3d5(&m$h2nx!&Sp@8MrUi82vV!N`CF_<;kcgqMREa7-aunC z#KVbJtmEteAbNzPu+b?SmxPL{s0WDrW=?xH$WY5hx?~s1Kq2#sU2#HO(0sAsi+0FH zPYjz8_W_wXX+7&;40IyUq^#246L)|;AUjStbd<4czZgp~o9H1vXtkMx8ryUlCKu;? zlBk62bmse0`f^?dtnVmK4ZF!H!jaXoU)2f?zc6~h;d^kpd##0rxa?XRd$&nhu*G#Q zkAvOSu@Vmq0PE+5OW>1!s!HMB|?xg^Ya~Us$y1%Lqdo)%FdJ_;qr4O zS+@B+8kL>kGhJ9ci912Z9d9e4^nrn&AS=DxjXx3j_ zId_#fEE|(GcbbgQ$Ct8V^35pR+f<*YKZhQsYU%x}9u7+N(63>a_V4tN?55m9S_%E> z9>SzCC_nZT&Wf-0E^kG37X7V@1}qojEL3O@vnZq=++m~mUbFWodWT(zbvmfcE7d0b zByC|0fX~9HwXS+Sv|sIuYKrQQ#~g9iGbqx#Mf0uyYy6v^=?AAQ8u8F& z`fJ#E9gKxu-QB)fw#=GcR?|*rG_dkp=tQw5p|T)61zz6uc(Oo0Sy`y=CK-iAX}i@4 zGZ5%h=f_aj%{MEzuKw-AbeMA1&hs$f&8u7VVo=IJDk`W?CQhOXPe-BCmcw^(VKRoK zIk~XX1d%zXMx#K7a9O2PQGi25RqmW*CiWSnnHiaRiXAyCC@)_dg^d~_9CjvH84#kj zA5_CWnGUKU8Zy+8s%Ry$TT{vbg|HK+49Ym(5#y@W8l3}0jxBq6JZPD6y%;ukx&HBX zq&~d5xbFiGHhtyrP7YUzsVJ{JL5x5CPS$_ke&0T){OPW5Cl1uV8romr6!-N@FKyFW zO2(o@?ius1huy{zn(NG*o@>)s?D+&=eQUTQR z5K%+$RNQt1E}2U-sT5f8fM&z=g`oCdLvV~q09kg+O;jt-{iMHNaC!_sM^rH9e_g4+ zyTZV=qZ-A_vrmI&qJdE^y7FwiqiXh zVF!#G*6OlAA&ws91oFyD@&>i}l`LgQTcte-zb<^M?h*uI4Z*=zV?{kJ_D`J=o{&?f zB-nv?qoiObx=2k2ip(E=@{r3wymks%tk|J{vnoXk)yMW3*zZIWeVqtMt0ii{UZX!4 z{C(E4>v)d=ZP&imz7Dqd$FPjsS>8>zqkY#5tzy zN~uajIUpbC1Evfk%id`{U|Wa69VnXDi8W$u`-_(SB63^G3wG0ef0gs|(Z^lw$+uwh z8@W;cWKSnY*j};#lOOCDDP!n@>t7flz~@*8*eMZ3Zqt+v;?gVcy(_x3lti@H0mEeo8_f2_8+#&P~hTy#1kVhHT=20AoNN{)s?AOB7 z1bKs)GE2o$(IX_9v38(ycC7y)Gm|M+INZSzb8Bx{cs98EoWJYt(a9dMrap=BWy;+g zH6j*Sc3!6o{lcwsj_$hv6m_1+G}T0sMf0pXG0WuPLezvEtBEx`7bU)6yc5{eE+hx*Zt#nFRmJT?Wikn>af6$dtCqeb|k$k@bB3!eomQTNy8=zg*6Z}cP4t} z_aiNpOQ13t$}zb;PESjlvykV@D%;_uBHuRgR@wkyEWGJ6ykMzxS9}tkSYT&zLKBCW z@Tdg#u`h;QmYjdd#q%s3H42YE{SW=CyfR_yaodgL&SS5gZ6{`nc6+EI-(jgvA@$!h zR(BwjxSx35#AvFYWUn>?lhXFte`T?L7js2@8lDVwSga9Ag@B`f-)Q~IP8q#1XbsmX zyLF1lsA%}vc8WWHK~g+1#Fv<& zUu;gSg)kDl^N+4u6Mc-lQ`C0dmw=kEE3s^1YC>ONy{0WmMjkdN=9Waomc$uQv&fup ztZ=9A3*xRQc+A96tSPl2NmZ{tp?~w)sRgX{dGh?jW({kmA4fT6B@bu%M<;9Yqzt63 zR;(Tb_!W4vP_qJVV5AarhjQc$*@gwh10m)yPptE1mQ@VHu-+M8SdyV&LX343upk$R z5h2#>4S>D^`lbvoYTj)T<7~*0vBjjX50I`Krru$eW%~V#+Q*_!#r?>YVFbJFY`jYN zjFbg)IX~UP?M-TCvTQ>#`Pl;F>*EpmA0Ybdr4nr|Y^Y z)F`ojKnaFIG|gUwGxU)m+HB=!EZfKK=Gs@@J5bx`)jtuN|5y^sD6gt}Tx>EW+=4!D zU#vUDvAM4fJOSsH9vHrV@EzC86+0m8POlMISCK{ljgd71$v;~u z6E?XSi71dGs&hR`v_Q2axdqgT9K+`t6*-VT*GO&j+Z^-O(1KpGfG2ewuYAWoa{7 z^guJF^R(as#Js3#aX!?RA`Q_x@T%Ig{FIi8_cWCBk=G!o_NnsKET|0i#DW45m1ZI; zoT8y3)(Rb}_2nqB+w?v2*NWT+#5i${ej6f)w(9p=YO~(H{eiui?FBn62geT<&U4Px z=j!+3XOUPfR=51|z=^=FyZ>-MNmv@kV(6?kqo1_8tHpV!k5!~usMs$0DdD(yjvX!% zyQz^z5-O?7M8y+~vxn@E3lkf2qGNGQY=;BN+X-ZWb2W3&PZ*&R>Jf?T55$!c4EzM$09*;sZ9 zvkPpvI~*mjoQe~NXPsWF!d5mI*-Sq~hdUyz({|bj!CncMpUAPGib#1`Dlm%NQmA1y zv;A}BMSbKCsBiu((vr3RapIAg4?XxFZ!J^CVT&uhqEA)-{PKT%J3`p&nl8Fz`uP~5 z)E&0+F_1(B(kR4v78IbbRvGD-iV&_+DA@{N1THAZQnI{suGNaA2gRA$F-aR$)5AnW zo$f5DE~I=jaT^)8IROKzqMXv*+uL_2uj+%o`T1u3+daqsIN{@I_ilOZmCM9WV#SxQ z=u-;x5AXco@{z(;A6vcR`fGq?vYZ^Y>6m%WK_`Yw?;CvUP4Vp}JQ1*N#}ofalp==X z=stEN2#=I%=}a`Y!1(1BKy8Oj{8pv$%WW`zxeaL++8`a3qrD>w^gP|03y zMUiXMtq{$wXDKy`dLqq2g(afdh)E^?fBpbE5tQ?PH-7*yoW_lOrHPw;j2nv*`6X`T z6$Wl_!bsg|Q5w@2Zb{35SIt%eCY^M&G6dDzpJO`t+-T)agHB8glT-qobZ2^fo>~FD zHlh{KV{VFG$rp1Y(W^uijX|$}W_mU1Tc=uJdgT^CuhhaR=lrP+rZjFtnuRv#2_wlZ zX9A#paPCHySTQ?new}w6meK7S z3|qQ&*GcIFYgcHJcRKTw&5&llXdO9te(7-R(t6r$plsIb4P!X@3fRqPnPkWg+iD*F zK4bjw4G}IZN`0ELAUkaJJpND3Il>`&ex?H(5#3GE%~;Lure~C^q_6Re^C^Kis~o$% zPpwAyu;^}zM#fVc`KguCbEkPq(%se_7-wQ4L4Y`uj71O*#DEcU;_d1ziNKyJ-d zY0ukQ5z^llq}v!?xf}IQl$mlX``>ox?RUuJkeh`8Q8iY}9T=a6_}3;CXVGlrbIn2l z9b_*1^`1lRp`QD#a@q;-f9N@{Zibb^8-uSCLqJR(b_B3)1g5{Me`tE)-hc0qXwV-d zFPx}-OWrDWkrz%M@+m6Szy&AvvVMkMPhoEGNbzI=qVMc>q!yFB3S1~~nOhy0Tf{1p zOQ4HhmQu^S@yc=v1uZWV0pn<8Y=SsLlq?fX`WUzY4vpM->n-=p6bJt63%L<4lGSa~ zrcWb!p!I2i4dKcA(Nn~(|Ne*Ec>L-9{iZJvH|q6!-)!yOcgPX( z=tUP#p56~^z*?{E0Ad`=q&mtyS&~tS2s1>A!he?6P@^dIS>Uw764V>BRnzI!LYP1b zC8^vz!%AlOl)jEwnGR2BPgJ9hxLY)D4&GcNrXRm(=%DEf z{;BVI`HkMg5~KdM=Kk_s8}vtw^AY*jeQZLO&}!1z3gBEp5*nMW61b|V3@bPWhD2J~ z**FXq43-aX3tGG|Hc^J$^r#S|4opFTGZDocNhC$CWyAyFcr{0|G^Y_oBf)_pcp5Mw zoaZl(T9hBR-0}FXbIxrW0X%*A)sK6h-nLDQoxNb=U3c#nrJtb=!@MRJRwFM(m&}a&pvy;^G=L?5z$}hlaFe z*s2Sw3(K;~a$DNUadSh0o>T zOkR4mGxvx1#X=^{M21G)89C-+l}1VmCzfKuiLo{w+P`a;SoG~f58i!9)chdw(&*Sk z@#h94e|*s<-mvz89uJ96CO53fIT;?T-@ycoZG z*Y7qPXb6_SQy*e9AfeX`4rv(Fde+;(f&1iF_B$ZM$`MIWF1fTaSD7szaUy~I3RImh zD}yX8Qxx+e8ymY1@13JW#F8QCEkw?~ z*Z1#}B?L0w{9xISzRk#>GlD3bauaXE?B-MTyj+|sLC`3+v^nIxF36x*XDLs~^W~5> zkYmsB`atkbD0EI!^3YjRBhRz3Ds&+b;}%IDGQX$A4x6o*Hp;EN&pP+qvqa;OPd+;$ zw|~ZQ#|2QqmXn~Qh2Z5k_U{pL7rQrlY{A@ekF7Gi8HmZxE=0QLyu1SBxAZ~zbSU{E z2T`|9;mpf-<@q&7OPhvyCRzFK^_aV7kV;CVgm3`^?;&x!h{~;Jqucdg{`K>(WPLVl zyd0a{o=>EK$$sVFftSWmwnfY^?Oncy3@JvmM|p8kQMMoDlTq)n#04uoLU6F^LN{|- ztjNf3HD{F;-_E;lI`>74R!${SV63714`r$R4=LhMn&fAZ#_(Ch3a|Ww82+*FeKPx! z7iT{I?t5=G)`pMZpcdyZpeRV{C=uSI&Nt(k^$clXGWqw|s z(+f+1*KRM!LYOd?(0nTRVo}`|B$Tt5Gx;xiNu8vvpwUMg=cs5Zm+wGrjpuYK7I3Dh z`|HaShCbQyz}>>X@>c!N^7@JGk3&z;;Fa$-=Bq&Hp(pfbF1?Uwl&aK_J_W-ws^wxE zfQUPy(p(K^7(GOpcBcoSL>*L_QeI41#e$c^!@3e8Q6zrkuZNBqJ4`fw^VyMa&9KKb z{q1}G;0sD$4u3>XBIwB=V3m6!@Jf%zmyzLg=0Y3r`F${st1ds1g0{4|I?YihGfGEK zARSYPGqnp;d$RP_Zy7mu%rGbtpM3ePj4-Q7pXwGRCZtrmTqDzsw3*i`Ec1)dWvFy+kOzRFS_N3I&qH5`geT61$ zCitMZjPkNd%B|TH46eHV=ldQL%4Mtn_~xor?|iXz%~waZY`aQiT(Adux<1f%z5djF zPgy2k^w9VLBR*Yx_R#5LkIuYc#s!TL{hJYAy>`n}UR(at7z8M9b zb_m&%vO^d)_04#KZ0dG-I_C<+6NYINZ5wSIO0}UZwwCkmSCNep5wvHeR&?8nR4dA2 z3wFxb{VH-eZACb>oy)DIW;=zcUG&Mf(N51!?Oaad;C8xoZO1Vr-Jd1t{&ZM;sXtq7 z$I|^-VmV;8)9aLWrli|hYArVVQJjduQ8| z?%guW8|Ek*I(m0XJ6D+bA{DvpSKGP5%onN1O{cUoHr=1)>2^9SpG-?AU1idevOL|N z|8PP@X=u(4x56EM0$#urXq$6 zW6?yq_=zPktNq9a{I23ub1akAwphB*-2u^Zfp zn%8&^UMJL!nqhgLxpM;UPvKa7_?r0sVZIMrHEOaD*BV}`=@znN!g}atl%YjhiKp0z zYspJRT#FWougiF%>7Crh{wZdb0Aqt({l|PTu+&P8B2K5asp4<#84+oAj5HG%#`h2YEdTF zA63lDKeZ*`^$luCo=h!Bmo4WO(lwkgwk|CUkfs_f7>h36L9(E83j-eH7Sa{>j20l( zj6Q&Jwiqo`q({RoK&o*cNUD8~@ngJcUBqYuQq5=s-#>WTHXzlEafneU{?MfbeH2xm zGg@GJ-;ttss_ABYkLg|K`;US@Cb8^31AQU>Sk3o0VCE6vftep`-Y+$t#~3Ctf8crM zk4fCa4$luNn<2vv$!>g;`QsRmQsk%jgKM)fwk|NSmCJ3&hSLUf&DGHuTT_fDq;1?r zhx|XajRBJHU$%j&To2Gpo!SE7i+cfl85oz#Q}{A^LHOcc0AH9hY9mcGMlT3o+y;8E z!RW;)Z4kbw4Xi>jZXr#%n18BMXSBfc55lAw03J~v&iEeRN4jp@hhD%Z!h%vS125Dk zz7Jm+<70c7<%cxNjus~9&smWj5TBDKXva$M9)8QmSD>!k=cpo=finZ{UD+<2DT2Er z5`AMLrLUr_W!MVk`Vlx{Ug?AS{Ha3Jmro71A3Ez$DPLLMYdo0nw>)x2VfXz}{w>KT z>Mid{-EAwNJ)w3XsuZH?tPAmW0IC#n>T>)?E^?y9{P^?B`{!SH z$p!b%pCNiStuAUix9Nugo7P+28#;bkzrw5UXnnZ!rSWt9ZHv%*Cu-p3oA1a^W}@IS z<%W@k>_CzEiBXsQ zFxvQGWT%wY!)~wZV9S@=R;Y>oRkeYtoI#To?C&yW+vH2~dtWM-7W+%o6}A>V+%b0a zrV*nqL`Y38P6vdOK24Hvh^QP6Gk>A097SZyQC24sJ3KM^I#LkA`b7!sFbfq8GIr2N zPltUqX|0r@&gSic0X~Ss z8$aK1d&bk7f44W&didO>{>c}`hMs@kIS)Pj#C@rE*lmn=oN&o^m5H)qB)PEy`z|-M zWou4OG2Vy7#;;E_aql)*2d)mYwjvDZP2?ZIv*x68CmN&8w%KYd)U&BLXV93b`i3r@ zv8{;r^MvPSH#ot7L<9JJ4xvM>AgjNK1DuqRWtF*(#$gB+$zNRvb6Oq<+u z(8^oxyzlx(5JF|c)Fn&^bLK5mRj5RD! zl*o&{)hiLG|2RIUf3Kkl@|Nt%eUcRaBh(F$boe+q2g)5qe5@=YQ|r22bhe$6ulz z8!g$4mQ?wF-qIL-xzSQR28n$b&J)yN>=2|GLO8P!-U~N3BwrrfF{g|jjDWz|L;{6a zLn5Zg`ayWZ>noqV0~t${*0t*$wdL!d5sRV6Psggh#IhP~BYRtt($nN4tyG>rV?>)j z=u$?sx$;wPxRi4QC^xKo`Kjg9ijh2X_bAbo)~>zus3 zcZj3HA**ZGy9R2jX>@{iCYHV!T><5;fS=kYB&i6|ZH17dvZ|@AZCX&q-}$X=^eV&X zX8h_f_OpA1CbUWPK~i=ablNwEKKRQmeNQN2{ypRBMvfl6Y3%RT99jMD(WOs3C!_L% zJZJRCZn5O>mRA;!du-F?Pb^!3Z4G&^wp#k5UqN^g>vM4+2L?_Uq^q436(QtG&dVLy z=FGbyPtHOyI<>O0WJFtKP<4-JQ>#+QU}p*{40U!Rrc9kA22(y!)DP+$#AXz&F-8E7 zs3n)YZ^&);$+x@DeSPX(w`|=#Z^5>E{-fpg@i*@m{*Phyt2JGsZy!MvUTyQtg)_!{ z({}NeZav@m?QYOdE=IBh_)`&CiYziX_DVUT;A*D>4pyt*<`Y(*b!1zH&!@QTZUqD2 z;A-{?fnPgWu_5m;)d<|=)Pzll8;q5cH5M6D?TTf|WBSYO*UPty;>YxW!{W#vQ~YJ2 zexq3Ux^lybJKvAKU(xNlDjl0GAx%Y}nk<)qYZ1+uhcIs+j;pHP!LB?-=o)lSHBZe$!Re%Mwa{`%i^|-tv@h-}<|LY=p?HY5L-@-`QXO5;ob7?Ag%q zD0XY4^;JYRaTCJ46&@j8>=YiPO;VNbOr)Y*McEu zncH195*Bv&gbPNrIS3Zn65OxwBw}h^`T8BvG)S!8VzX>M zwrSgUTP?Onl^s(T)c&?P6etXOntHXyCtea?UWkl?rFE6DiTc;FHcy`8G3|Mk< zoEar0@RL@Ds$4iOSXgc!+*a-`lm@pI=D6S{^0=^C8u2LUm=qiiG-isX4mtzHX0s%P zpU8^1U~@rj0Telqk;h+6~9HV<~d=LlsGlf^gHs6f#a{p<^sjLHQ!NLIfi=AFP zwFfdjhb`3nycNqUJ~s*urN56I4u5VJBg9C|3!X4c)#)cvZ?MZfBx9c?*YZ2S&%5#F zZ?S$WlD11ieg!0M1Oro=5|ojIlMbh%t-F36a`NQKS1{#v+CeLK;5&9{04ln(CC!=I z)jfnKzUcJCWhcjXed6RMtf?$8J7x5;j%&FZSi>Ct6Q^LYk}lWD8LvwISKW z*;9!|w`1(b?9GRZf^-?K~gN-Ac7 zf92$zl6{AOrr4L`3QcUtHu^5U^KZ;X3WNV|zH@3D(pvO&6z$-tAGAMLb{O-Qp5g7V zeI85C4s19I?XvN(B<+ey;w;-$NEg>!DOsh;lM4V7kc(ESJHs9fdtp_!N&`R1(@DYYP89vEy7sIC*?q>K5!)Li~&oO+S;R_63 z;{NRAx4g{P`}q15zJ8Uj4{!?y8NR{rEry2}zRmC*hVL?bkKy|a4>SCL-}Mp0j~RZ- z@MnU;#?Zkqi=m6YB{YU!hJJ>*{AoVJVus}mD+!w-$gr00)H94QY-AW?*u=1zpFD%G zAbKzyK;som31Se9S}+X=rU5aAKRut}6owZuT*6N-J^3!4U&ioCzO$0way8$%hT*jg zS2JA0@CJVJCVui}zWy!4TN&QPa5Im38^7yOzGf_o*SLi@`99-9yu;W3&Cl@6i@)&o zR}8;l_$|NdC_ni#&%gEj7^2HsZ1rDD$^OxWH^iA#SG^%oJUllEMT~h z;mx2Hl_jdm5>;i1s!AkLRai=WfW${COH`F5stWyj748r>sVq@di6p8jQO{M0B&sS= z|5b@3stON1L6WGdL=sh%NTR9|NmNxLiK=H*qN)-}R8=C0s!AkLRf#03Dv?B0C6cJBL=sh%NTR9|NmNxLiK%{o6(mtrK@wFJBvDmC5>*u>QB{_xsvwD~3X-U* zAc?99lBlX6iK+^csHz}|stS^*svwD~3X-U*Ac?99lBlX6iK+^csHz}|stS^*s$eX$ zL{$YzR29XP={`wRRggqg1%{oWr?b? zL{(X$sw`1emZ+*ci`tP%qN*}UR8=O4sOcGUr7TfZ znIx(zlSEZzlBg<6R8=O4s>&o$RhcBJDw9N2Ws<0>OcGU;i1swyN=RfQy~s*prg6_Ti`LK0O~NTRANQB{Q`s;ZDgRTYw`szMS~ zRY;<$3Q1H|A&IIgBvDm`B&w>AL{$}%sH#E|RaHo$stQR|RUwJ0DkM==g(Rw~kVI7# zlBlXe5>-`5qN)l>R8=8~swyN=RfQy~s*prg6_Ti`LK0O~NTR9=NmNx~xx^AxWr?aP zBvDm`B&w>AL{$}%sH#E|Rb`2)vP4x`qN)l>R8=8~swyN=RfQy~s*prgS)!^6NmNxK ziJB?ZLj!h6!IK*RYZyiu#u+9sE|+u$@a2-ag~h95HgE5lC+ifo2%h8~7KhLzM?5oB0H z?Tb2w4Gg<6j53TfBuu#kVag?VTw*Y{GaYzzi8%}xaBG+FGYk3CMSOiZ!&ThQJ^ajl z{OK0H-p$v~GJKBjyuhvPIXM9>lYDlGKl7&_aXZGie&*{F40VFC#E@1fmwY}wFJC}! zlrQG%E2uU3O1{2|pShahwS4C~hQDEWJ;NIq{+`}0Z{zF789u@ANxr{}uW8+J$xkzU zp6|cF_g~~U{*mwVSmc-ZdLP4A8U7bPL+gl3{*J%(1H->DZ0ApTbV?RIqcAoVS}9x# z<5cm}lS(eVSIOh+vltF#IGo`KhG#Q8hvB&l&turea6H3_40-kxo;~G4nnPt8!x;=O zVmO=O9ES6_KMNQxWOy_BgQxn9SnjqfP1o5UOh&MGsyr~J|O-&GQ zYJzxE1E%N>@unt-o;Bu8jd@cO#G4v$M^6%OYJzxE6GXil^QI;fZ)(h&8uO;cys62= zn;P?`CKGRJGV!J+6K`rV@unsdZ)!5}rX~|_YM>DGhj~+zi8nQwcvAzl(0$@fO(x#d zm^U?h)z@unsdZ)!5}rY7^~ zm^U@%O^ta|W8T!5H#O!>jd@d3h&MHbcvDk|H#LQLQ&WgHHHCOnQ;0V;g?Lj_h&MHb zcvDk|H#LQLQ)AxLm^U@%O-&)*)D+@PO(EXY6yi-yA>Py!;!RB<-qgS;3t)b?GE^A` z@nj{qhG4zG&H=nb*F;^F%sZ9fnn!WngCVVGmEaos^frdKGrWW0oebAA+`y2yqY~Uf z&%eg-b%t*;B%P-c+(D3Zo=R{BAh?5|o1urHk0EhKC38n5C?CCI%CBU~uLR}Ow|?gP zCm8AknF1?iJAGFseW?<3h$n#&fUk$ zL`)xF6Ey~z>ViylLC9*lLsS=ptR_fQ7lf=PNc0wDdJ94t(>2js5Ym_+(OZz|Ey(m1 zWO@rSy#*nS@hPM+L82%`y%A(;2{N?=!M}8es3i#gB}mi~1pg8wY6*gW2@Z76E7aG3gfC=3L3fBMLfA(TB&rBu??8~KB82?{L86Kf_6P)tDngK2cnecS zh^Zn3ZrY2e;dK zX2LwuFvfz`FcyL|mN1Vc%wq}jSi(G(Fpnk7V+r$E!aSBRk0s1w3G-OOJeCHg=r&xn9V_1U- zk~D}w7ef1tkqBcX!WfA#Mk0)n2xBC|7>O`OB8-s;V>8QzTkL|HmTSvp0Tv!X1WqAZ=FES;h(ouVwAqAZ=F%zaVjz9@5F zl({d;+!tl;i?VczG7mjWH{u63vXbdZ%r^R@dVmv=F%n#kUh9POTG0YD^(r;s!AA&D2 ze3{`Z1bOT+9(#<(9>dsiAI0nNF4@U&EZxEA2$nJ|XBc2u#W2J$%&?YWJ;MmYMusuK zIAcG~*pD;zL((b}u=&#+ z(k&CP{L?k7@zb z=j&YlRzAaGq5*gZ2$FXo!QO!cyaV(u;`f9geoqME_kvTe?=IbzD*YGu2 zrxQvYUz2q@0qZoi5aH`?eBH>`QNAYYbOP3CdZwAL&tTYtVK0XNo20i7kMpYUymimr zXX#UDR#oYy>Tq4OC7IlSF{UqyJ(ky8s39(C1&Ntti2{lJ@c1EYO)7`5>Ov`%G!kM{ zV1wSGSeh*8#mF9Aj#oCWJdzxF7)^zuD8gRF?|~TE1-09iNUIlwp6~aQf4)8I4=MHykHQP3QIeZwKz8pS+?b*cLTHp3Fjw0^XD!1)7Is7zC9soZBeirmv z=-pc7HvT2Q^2+vhY1h2)H^4g-8*G=J8ymnzFby_=&EN!>2Mb0ivryWrx5?v1{V#mU zcKOu!PVo1@cY$|;cY!)bK+n7vd>^R)=U2)Hz&{l3P&vDVzX4iZcSv1_gbDuYXl;ko z)#%u4hjevb_+ilPc1Ot`Q0K_W{up>a_yFm9u|JNT!q$J*>PgpPhd6Ow4PYaf2AjZU zu!SdE!8WiR>;OB#F7Vsr@*S`j>;wD30q_X;U2qUQ3LXQq;4pX+^cv|7DW~x?I0Bv_ z#~e5cj)4=D`5e!94R(jVg!;Dy>`Ck*PyPe;6!s6Wr?Fqcp22<@`xWqq;016Vya-+f zuY%Y3mHq=&Ilcz|2>dblI(P&83Fvv~4r!+GSHWKgZv)+icStk+SGVLHit26uCidI0 ze+&C|Y@O(&zq)1akY*a)_I5}ojc$88q?1P4o^;Z7m6?$q`u(&k>7mnUSJFe-YX54b zYX8QENcm6xl@w3ElH&Q9$FTR?R`1YXrFi_8E`_Hkfu|JAU|B~YQJ@hXro^AS<6wfv+N%3rdf?qj$*`e8ub8+;t zBm5-xr?BBris$qXAe} zlBh>gQQ5rG?d7EQNcb76M^aIl(X~q|Dzoj{B^8y~wt6H{k0k1mL_Ly1N;x41rBdL89Myp3s`zVZ7kEHfd7_A;j z#a%|LM^gJJj8>1N_E8wE9!bm4r&~Reinwe~VOu?tinyF^^++n>vTgN9D&jI)J(AjAVYGTA6>%A@9!W)9Myp3s z5tq^GkyONGw0a~JaT%>1N$tBZT0N4eM-uf&23C)x)&Y!Gk0k1mL_LzIM-uf&23C)x zA}&8;^+*O*k0k1mL_LzIM-uf&q8>@qBZ+z>QI90*kwiU`s7Dg@NTMD|)FX*{BvFqf z>XFnKDsEAaBiFzb8 z>#=S1NTMD|)FY`GkkhRmNySUHtsY6#BZ+z>QI90*kyO0ozgj(#s7Dg@NTMD|ea&~e z)gy^|BvFr~;w9I@>XB5uWZUYI)ar+A`WNbvL_LzIM-uf&q8>@qBZ+z>QIDkJCBMPy zkwiU`s7F%qlGCjoNz@~WdL%=uM>4c}B(*ERX!S^HSAfy#u~RBBFEmR#r4mMK=1%5H zJDDr(WUjQ6xzbMNN;{b=?PRXBlXbkE%sX~6|uYf-UFM#vlMes6s z74)36QVMB&4g3-KWAJtG2KW=uJJTwqkVfxJtCT_-Z}VTJkg6%Iu~G_Y+ikK^3TfLd zvr-Ca+dI}OrI1F)HkDFHqj#xQN+FHjrB*40GCA-urH3Ri~{v+t9qf(kF4yBoX zGwqG`Un$LW%18WWX{Mf$W*Q&z+oYMc{r$9(o>D2zwC#PBmC{W8Rhp?3X{PPp#rE8} zQkv=XcVXWNCP=vpJHmc9_It43i@gQ=eb`&E-;ccw`vchClTazmbS{5{T>)+flVBzI zLGVK$b*HCSN;Cb2`^=0q)ApZZS7Uz^`+ksqhXPcF^gDE*Qkv;sd5&2r&9v>fv{IUB z+saTW&9qIglxEuY9J5lIY5PqMy*IT|nrZY-s!D05(L1RsrJ3jSpOK!I?UH&J9a-&? zdKew&>>|$DMVzyXIA<4e&MxAdUBo%Nh#z(lIqV{4*hRFki_w1<xVl>&sII@co z>`(LsWKk!0{hBfM7VxdYdq}^B^m|y5yN4CIdrHjkJ*>#xBi-|pUcb60xEri= zirT;NgWx*p8%ExLPmK37fB&%l`{CUsAJ(o?VeBoS{y|J<0=ZOs$bApF?;-a+ubJFF_2k`y_c>e*s{{Y^90PjD5 z_aDIf58(X=@csjM{{g)J0N#Iq_doFF`|a@k8Rd&y-lx$GsEz2vf&T=tU7UUJz> zE_=ykFS+a`m%Ze&mt6Le%U*Ixsf|5Ql2RKpI(kgeic%$RMJZZQiWymowv?hRrD#hj z=0_>!M=9n!M=9D{iuRVGy`^YxDcW0#_Lic(rD$&{+FOeDmZH6-m;t4j z`=prlq-cRDT40J6n4$%yXn`qOV2T!)q6MaCfhk&GiWZn+UXx-*lVUEDViuF4Wu|DE zDOzTVmYHHskz!7fqLrr9AH|sZqtObVqTQyLDWsSqq?jF~m=UDH$j>kfND=?1i2PH; z{3)XSl*TMS<2XM>%TLkrQ?&dPEk8xePto#IwEPq;KSj$=(ehKY{1h!eMaxgo@>8_@ z6fHkR%YO)cdkB4d2z`4S2EMFu$syz17g(YG`jYw6q#pS`96&hE`NVE2^Ot z)zFG+Xhk)&q8eIJ4Xvn#R#ZbPs-YFt&}M3AGc~lC8rn<^ZKj4cQ$w4nq0Q9LW@>0N zHME%;+C~j+qlUIoL))mKJ=Ea+8hlrS?`rT}4Zf?vcQyE~2H(}-yBd5~gYRnaT@Ajg z!FM(It_I)L;JX@pSA*{!f$c|NTYGQCzjn-l_R%A-{RnJ70^5(k_NN$C>!mHVCH2x4 zqvs&?iXx2OpH^S;2iR_n^(EfhSzqG)Y4s)EpH^Su{b}{g6zZ8N)H744XQoikOrf5c zLOnBudVQDl^Nz#onVr=$JF91QR?qCLp7^<**;zfavwB4udY*W=K5!&luSmn_?|t?9 znrZa@wEDoirt9@J(`ePI*H=rYdw*Je;QeX!u@e7P>Ze~x{fv&d>WTX5iTCP>^y(F> zINdQ`yw8{oMCo*Uq~ zp~O5lz;gpUH^6fPJU75|13Wjta|1j#z;gpUH^6fPJU75|13Wjta|1j#z;gpUH^6fP zJU75|13Wjta|1j#z;gpUH^6fPJU75|13Wjta|1j#z;gpUH^6fPJU75|13Wjta|1j# zz;gpUH^6fPJU0+IH^6fPJU75|13Wjta|1j#gyy*co*Uu05uO|2xe=Zl;kgl>8{xST zo*Uu05uO|2xe=Zl;kgl>8{xSTo*Uu05uO|2xe=Zl;kgl>8{xSTo*Uu05uO|2xe=Zl z;kgl>8{xSTo*Uu05uO|2xe=Zl;kgl>8{xSTo*Uu05uO|2xe=Zl;kgl>8{xSTo*Uu0 z5uO|2xe=Zl;kgl>8{xSTo*Uu05uO|2xe=cAzlQ2N`fm@=x{-$GG(4x_IStSHCdo6_ zjWj%KP9}e);W-V@X?RYz=QKR0;W-V@X?RYzQCT=~ev7yOEz!n=$?Z{H0NC z#^`AO8Dhw1V*Zl&j8^%K?*zRY`5CS08Sez|0^be37knT1e((d}AA(Q#{c1DDCqeH< zZiTm2cx#2XR(NZLw^n#-EirGc>WPa&^VX_WZl{>HR(8s@vQw^AtK3d8Z>{Qye$u?P zvQw^=opP=4)(UT}@YV`%t?{jw3U94iJJlQ5Dc1^bt?<^WzNYuXTPwV^!dol6 zwZdB~ytT4Zt`*)|;jJ|^Z>{W{QU$_3t9;jLAD?OaJ4 zytTnw8@#o_TN}K!!CM==wZU5(ytTnw8@#o_TN}K!!CM==wZU5(ytTnw8@#o_TN}K! z!CM==wZU5(ytTnw8@#o_TN}K!!CM==wZU5(ytTnw8@#o_TN}K!!CM==wZU5(ytTnw z8@#o_TN}K!!CM==wZU5(ytTnw8@#o_TRXh9!&^JNwZmIGytTtyJG`~STRXh9!&^JN zwZmIGytTtyJG`~STRXh9!&^JNwZmIGytTtyJG`~STRXh9!&^JNwZmIGytTtyJG`~S zTRXh9!&^JNwZmIGytTtyJG`~STRXh9!&^JNwZmIGytTtyJG`~STRXh9!&^JNwZmHn zymi1^2fTH_TL-*#z*`5rb--H(ymi1^2fTH_TL-*#z*`5rb--H(ymi1^2fTH_TL-*# zz*`5rb--H(ymi1^2fTH_TL-*#z*`5rb--H(ymi1^2fTH_TL-*#z*`5rb--H(ymi1^ z2fTH_TL-*#z*`5rb--H(ymi1^2fTH_TPM7A!doZ2b;4UGymi7`C%kpSTPM7A!doZ2 zb;4UGymi7`C%kpSTPM7A!doZ2b;4UGymi7`C%kpSTPM7A!doZ2b;4UGymi7`C%kpS zTPM7A!doZ2b;4UGymi7`C%kpSTPM7A!doZ2b;4UGymi7`C%kpSTPM7A!doZ2b;6te zA6Fxh{!0(^c&goY(mm}4k{))!TNk|PTM8*27rNlB3*Nfmtqb0|;H?YZy5Ow~-n!te z3*Nfmtqb0|;H?YZy5Ow~-n!te3*Nfmtqb0|;H?YZy5Ow~-n!te3*Nfmtqb0|;H?YZ zy5Ow~-n!te3*Nfmtqb0|;H?YZy5Ow~-n!te3*Nfm?K$x_U-F!IGu|Oio)ag=2CxxK zgH2#FI05Ftf>E^-s{DG7%5U`kz2{VZ<2ym`_avm1XMwjz2~Swn_dLxw#P8Lb|x z-eI+q^k3>daNsQhjkEVUI+H*;z*4T%7V_@OAJ8=sgk{PVdPC-XoD=k3=T$9*GR| zxJ=+Z5*cQ5nZSD_GR)~Rf%iycnAv3l?~%v^-XoC-yhkDvc#lMeJrWuANMzU}kqNv< zA`^IzL?-Yai41!rGVGDa=nI<4qc3Pi?~%x`Mi460{40|Lp?2*W*U+5Y23#0c) zWYjxsdyhmW=GEqmz7g2=_x+4|jsD6WiH!P=ZSRrDs0Z2h9*Kd&&9?VQWYptqdyhm$-z<#YBazWJ z3#0c)Wc1C#=sgmd(0e2@%#<^s_ef-zFK5^zkzv-H3B5-m!`wN;+&L4{@0dYnLi!!^ z=nQ)#GND)0GwhMbg#Ln-3B5-m6Z#8&CiEVOOh~U}k3@!9c7{C?8TLqILhq5tgx({O zVUI*6^d5-}dn7XKk$9f}8hf7q8hc)P(pB<2vBC31Q_rivJEZ|^1k+#>*bGj9d9Yw) z#DAU<|9M9I=YuMz^Iv1n^Iv1n%lk@^myQ0fvFGJk<2S^_zeUS7)zD*DEZF-Pz(}R4Q9^~8fAm643`8GYsx9LH?O%L*IdXR6^ zgM6DFjvOoFJDIE+@$41i1{8%P_eNlglu<43o<+xeSxbFu4qq z%P_eNlglu<43o<+xeSxbFu4qq%Sm!MNiHYJk)u zoFtc%aydmVr^w|Lxtt=GQ{-}rTuzb8DRMbQE~m)l6uF!tms8|&id;^S z%PDd>MJ}h6%e+pv`Zc5eYJ973gxp8SeT3Xc$bE#|N63AI+(*cLgxp8SeT3Xc$bE#| zN63AI+(*cLgxtsZQasL=;&DY;LnY&ivW$+h#`#h_uJKDLd?_B+C^l4bma?6tY-cIk zS;}^nvYn-DXDQoR%668rouzDNDcf1fc9yc8rEF&@+gZwXma@G_**mY6GSW% z#3~a+DHFse6Pin^Jeo@y{r!3(@b~Kp%_WWZIv33uo$l|~6Phy$HD}ac#h!j8_Kc1w zCK!g$ug(nz)Cm4Sx76jW#bY`0o-<`vEdHB!6e;)qx@SlhOJpAY3KM((T_|L1^6$( ze*yjr@Lz!c0{j=?zX1OQ_%FbJ0saf{Ux5Dt{1@QA0RIK}FTj5R{tNJ5fd2yg7vR4D z{{{Fjz<&Y$3-Din{{s9M;J*O>1^6$(e*yjr@Lz!c0{j=?zX1OQ_%FbJ0saf{KMDVn z@IMLvlki`J^CFxVVY>+1MOZDuY7th8uv&!GBCHl+wFsX@_$6k($X8%5YC!bTA`im*|HjUsFmVWS8eMcA04c2m@DirP(4 zyD4fnMeU}j-4wN(qIOf%Zi?DXQM)N>H%0BHsNEE`o1%78)NYE}O;NikYBxpgrl{Q% zwVR@LQ`ByX+D%crDQY)G?WU;R6t$b8c2m@DirP(4yD4fnP3@+s-88kErgqcRZkpOn zQ@d$uH%;xPsogZSo2GWt)NY#EO;fvRYBx>orm5XDwVS4P)6{O7+D%itX=*o3?WU>S zG_{+icGJ{un%YfMyJ>1SP3@+s-88kErgqcRZid>;P`epwH$&}asND>;o1u0y)NY2_ z%}~1;YBxjeW~ki^wVR=KGt_Q|+RaeA8EQ8}?PjRm47Hn~b~Ds&hT6?gyBTUXL+xg$ z-3+yxp>{LWZid>;P`epwH$&}asNF0P!YmQOtY&lbC9@@7`<*TE+V8CN&FF7}vr;+R zUi+QZEYB(aCOE5A9izXc&T3W1=x>6vto_bvwZwKFEEuI%dcX9_=x?dB(kml*F%z6+ zCO8}TTk5Q4g8r4irOvYUJImVdY~XK#v(ho6W35>tnc0}XrOs-eX!N(#S)obNFHoU(9K>YQAI+U(Df)IeamPFXr&Y9KM*t z7jyVx4qwdSi#dEThcD*v#T>qv!xwY-Vh&%-;fpzZF^4ba@Wq_gVN?cuF^4ba@WmXy zn8O!y_+k!U%;AeUd@+YF=J3UNb_HBuWVyh|a)Idj0@3vaqU#Gp*B6McFA!Z{AiBOl zbbW#7`U27Q1)}Qp)N2&T_C#tU*x6J<<$~&&N1kfmU;4;C$D+(nkTP$@|q{F zdGeYkuX*yCC$D+(nkTP$@|q{FSIO%ld0iy0i`45Pd0iy0i{y2Yye^X0Me@2xUKh#h zB6(dTuZ!e$k-RRF*G2NWL|&K4>oR#=Ca=rnb(y>_lhneF&C9j+0a+6$c^4FXEbp=&lLDg4K^%Yco1yx@`)mKpU6;yo%RbN5XS5Wm8RDA_i zUqRJZQ1um5eFartLDg4K^%Yco1yx@`)mKpU6;yo%RbN5XS5Wm8RDA_iUqRJZQ1um5 zeFartLDg4K^%Yco1yx_w8vcCAYKiAQt0j9t{|Cn^JHS`j0lvx(@Kttzud)Mtl^x)# z>;PY72ly&Gz*pG;zRC{pRd#@{vIBgT9pJ0%0AFPX_$oWVSJ?r+$`0^Vc7U(41ALVo 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 NJ^r4-t1mN*{|BJyceVfk diff --git a/src/gui/qt-daemon/html/assets/fonts/OpenSans-ExtraBold.ttf b/src/gui/qt-daemon/html/assets/fonts/OpenSans-ExtraBold.ttf deleted file mode 100644 index 3660681d398100fd0e2dcffa089570eea893629d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222424 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

-5d!dcM^@c6Oo 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 F{{!U$tp@-A diff --git a/src/gui/qt-daemon/html/assets/fonts/OpenSans-Light.ttf b/src/gui/qt-daemon/html/assets/fonts/OpenSans-Light.ttf deleted file mode 100644 index 563872c7680aed4d9f8f7a4bc4f3c1506c2cbbc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222236 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

    1^%;kbEy)x%1!e{>m|$h5Iw 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

    9J%&UTP`LM`y4=#imtiCKi100?RTe1+z~8* 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

    YE=h9c6s`zZi@B7|3|JKJY7qo+jyw@ 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 new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/ar.json b/src/gui/qt-daemon/html/assets/i18n/ar.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/ar.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/ca.json b/src/gui/qt-daemon/html/assets/i18n/ca.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/ca.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/cs.json b/src/gui/qt-daemon/html/assets/i18n/cs.json deleted file mode 100644 index 5e6066d0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/cs.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Nastavit hlavní heslo", - "SETUP_CONFIRM_PASS": "Potvrdit heslo", - "MASTER_PASS": "Hlavní heslo", - "BUTTON_NEXT": "Další", - "BUTTON_SKIP": "Přeskočit", - "BUTTON_RESET": "Resetovat", - "INCORRECT_PASSWORD": "Neplatné heslo", - "FORM_ERRORS": { - "PASS_REQUIRED": "Je vyžadováno heslo", - "CONFIRM_REQUIRED": "Je požadováno potvrzení", - "MISMATCH": "Neodpovídající" - } - }, - "COMMON": { - "BACK": "Jít zpět" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Přidat peněženku", - "CREATE_WALLET": "Vytvořit novou peněženku", - "SAVE_PHRASE": "Uložit svoji seed frázi", - "OPEN_WALLET": "Otevřít existující peněženku", - "RESTORE_WALLET": "Obnovení z zálohy", - "WALLET_DETAILS": "Podrobnosti o peněžence", - "ASSIGN_ALIAS": "Přidělit přezdívku", - "EDIT_ALIAS": "Upravit přezdívku", - "TRANSFER_ALIAS": "Převést přezdívku", - "CONTRACTS": "Kontrakty", - "NEW_PURCHASE": "Nový nákup", - "OLD_PURCHASE": "Nákup" - }, - "SIDEBAR": { - "TITLE": "Peněženky", - "ADD_NEW": "+ Přidat", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "Nové nabídky/zprávy", - "SYNCING": "Synchronizace pěněženky" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Nastavení", - "LOG_OUT": "Odhlásit se", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "Chyba systému", - "COMPLETE": "Dokončení", - "SYNCING": "Sychronizace blockchainu", - "LOADING": "Nahrávání blockchainových dat" - }, - "UPDATE": { - "STANDARD": "Aktualizace k dispozici", - "STANDARD_TOOLTIP": "Získejte novou aktualizaci.
    Doporučená aktualizace!", - "IMPORTANT": "Aktualizace k dispozici", - "IMPORTANT_HINT": "Důležitá aktualizace!", - "IMPORTANT_TOOLTIP": "Získejte novou aktualizaci.
    Důležitá aktualizace!", - "CRITICAL": "Aktualizace k dispozici", - "CRITICAL_HINT": "Kritická aktualizace!", - "CRITICAL_TOOLTIP": "Kritická aktualizace k dispozici.Aktualizaci důrazně doporučujeme!", - "TIME": "Systémový čas se liší od sítového", - "TIME_TOOLTIP": "Špatný systémový čas!
    Zkontrolujte a nastavte systémový čas." - } - }, - "MAIN": { - "TITLE": "Chcete-li začít používat Zano, vytvořte nebo otevřete peněženku", - "BUTTON_NEW_WALLET": "Vytvořit novou peněženku", - "BUTTON_OPEN_WALLET": "Otevřít existující peněženku", - "BUTTON_RESTORE_BACKUP": "Obnovení ze zálohy", - "HELP": "Jak vytvořit peněženku?", - "CHOOSE_PATH": "Zvolte prosím cestu" - }, - "CREATE_WALLET": { - "NAME": "Název peněženky", - "PASS": "Nastavit heslo peněženky", - "CONFIRM": "Potvrdit heslo k peněžence", - "BUTTON_SELECT": "Vyberte cestu k pěněžence", - "BUTTON_CREATE": "Vytvořit peněženku", - "TITLE_SAVE": "Uložte soubor peněženky.", - "ERROR_CANNOT_SAVE_TOP": "Stávající soubory peněženky nelze nahradit nebo přepsat", - "ERROR_CANNOT_SAVE_SYSTEM": "Soubory peněženky nelze uložit na diskový oddíl s operačním systémem", - "FORM_ERRORS": { - "NAME_REQUIRED": "Název je povinný", - "NAME_DUPLICATE": "Název je duplicitní", - "MAX_LENGTH": "Dosáhli jste maximální délky názvu", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/da.json b/src/gui/qt-daemon/html/assets/i18n/da.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/da.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/de.json b/src/gui/qt-daemon/html/assets/i18n/de.json deleted file mode 100644 index b93cd965..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/de.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Master-Passwort einrichten", - "SETUP_CONFIRM_PASS": "Passwort bestätigen", - "MASTER_PASS": "Master-Passwort", - "BUTTON_NEXT": "Weiter", - "BUTTON_SKIP": "Überspringen", - "BUTTON_RESET": "Zurücksetzen", - "INCORRECT_PASSWORD": "Ungültiges Passwort", - "FORM_ERRORS": { - "PASS_REQUIRED": "Passwort ist erforderlich", - "CONFIRM_REQUIRED": "Bestätigung ist erforderlich", - "MISMATCH": "Fehlanpassung" - } - }, - "COMMON": { - "BACK": "Zurück" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Wallet hinzufügen", - "CREATE_WALLET": "Neue Wallet erstellen", - "SAVE_PHRASE": "Speichere deinen Seed-Satz", - "OPEN_WALLET": "Vorhandene Wallet öffnen", - "RESTORE_WALLET": "Aus Backup wiederherstellen", - "WALLET_DETAILS": "Wallet-Details", - "ASSIGN_ALIAS": "Alias zuweisen", - "EDIT_ALIAS": "Alias bearbeiten", - "TRANSFER_ALIAS": "Alias übertragen", - "CONTRACTS": "Verträge", - "NEW_PURCHASE": "Neuer Kauf", - "OLD_PURCHASE": "Kauf" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Hinzufügen", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "Neue Angebote/Nachrichten", - "SYNCING": "Wallet synchronisieren" - }, - "CONTACTS": "Kontakte", - "SETTINGS": "Einstellungen", - "LOG_OUT": "Abmelden", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "Systemfehler", - "COMPLETE": "Abschluss", - "SYNCING": "Syncing block", - "LOADING": "Lade Blockchain-Daten" - }, - "UPDATE": { - "STANDARD": "Update verfügbar", - "STANDARD_TOOLTIP": "Neues Update ausführen.
    Update wird empfohlen!", - "IMPORTANT": "Update verfügbar", - "IMPORTANT_HINT": "Wichtiges Update!", - "IMPORTANT_TOOLTIP": "Neues Update ausführen.
    Wichtiges Update!", - "CRITICAL": "Update verfügbar", - "CRITICAL_HINT": "Kritisches Update!", - "CRITICAL_TOOLTIP": "Kritisches Update verfügbar.Update dringend empfohlen!", - "TIME": "Systemzeit unterscheidet sich vom Netzwerk", - "TIME_TOOLTIP": "Falsche Systemzeit!
    Prüfen und korrigieren Sie Ihre Systemzeit." - } - }, - "MAIN": { - "TITLE": "Erstellen oder öffnen Sie die Wallet, um Zano zu verwenden", - "BUTTON_NEW_WALLET": "Neue Wallet erstellen", - "BUTTON_OPEN_WALLET": "Vorhandene Wallet öffnen", - "BUTTON_RESTORE_BACKUP": "Aus Backup wiederherstellen", - "HELP": "Wie Wallet erstellen?", - "CHOOSE_PATH": "Bitte wählen Sie einen Pfad" - }, - "CREATE_WALLET": { - "NAME": "Wallet-Name", - "PASS": "Wallet-Passwort festlegen", - "CONFIRM": "Wallet-Passwort bestätigen", - "BUTTON_SELECT": "Wallet-Verzeichnis auswählen", - "BUTTON_CREATE": "Wallet erstellen", - "TITLE_SAVE": "Wallet-Datei speichern.", - "ERROR_CANNOT_SAVE_TOP": "Bestehende Wallet-Dateien können nicht ersetzt oder überschrieben werden", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet-Dateien können nicht auf der OS-Partition gespeichert werden", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name ist erforderlich", - "NAME_DUPLICATE": "Name existiert bereits", - "MAX_LENGTH": "Maximale Namenslänge erreicht", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet-Name", - "PASS": "Wallet-Passwort", - "BUTTON": "Wallet öffnen", - "WITH_ADDRESS_ALREADY_OPEN": "Eine Wallet mit dieser Adresse ist bereits geöffnet", - "FILE_NOT_FOUND1": "Wallet-Datei nicht gefunden", - "FILE_NOT_FOUND2": "

    Es wurde umbenannt oder verschoben.
    Um es zu öffnen, verwenden Sie den \"Wallet öffnen\"-Knopf.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name ist erforderlich", - "NAME_DUPLICATE": "Name existiert bereits", - "MAX_LENGTH": "Maximale Namenslänge erreicht" - }, - "MODAL": { - "TITLE": "Wallet-Passwort eingeben", - "LABEL": "Passwort für diese Wallet", - "OPEN": "Wallet öffnen", - "SKIP": "Überspringen", - "NOT_FOUND": "Nicht gefunden" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet-Name", - "LABEL_PHRASE_KEY": "Seed-Satz / Private-Key", - "PASS": "Wallet-Passwort", - "CONFIRM": "Wallet-Passwort bestätigen", - "BUTTON_SELECT": "Wallet-Verzeichnis auswählen", - "BUTTON_CREATE": "Wallet erstellen", - "NOT_CORRECT_FILE_OR_PASSWORD": "Ungültige Wallet-Datei oder Passwort stimmt nicht überein", - "CHOOSE_PATH": "Bitte wählen Sie einen Pfad", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name ist erforderlich", - "NAME_DUPLICATE": "Name existiert bereits", - "MAX_LENGTH": "Maximale Namenslänge erreicht", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Schlüssel ist erforderlich", - "KEY_NOT_VALID": "Schlüssel ungültig" - } - }, - "SEED_PHRASE": { - "TITLE": "Stellen Sie sicher, dass Ihr Seed-Satz an einem sicheren Ort bleibt. Wenn Sie Ihren Seed-Satz vergessen, können Sie Ihre Wallet nicht wiederherstellen.", - "BUTTON_CREATE_ACCOUNT": "Wallet erstellen", - "BUTTON_COPY": "Kopieren" - }, - "PROGRESS": { - "ADD_WALLET": "Wallet hinzufügen", - "SELECT_LOCATION": "Wallet-Verzeichnis auswählen", - "CREATE_WALLET": "Neue Wallet erstellen", - "RESTORE_WALLET": "Aus Backup wiederherstellen" - }, - "SETTINGS": { - "TITLE": "Einstellungen", - "DARK_THEME": "Nachtmodus", - "WHITE_THEME": "Tagmodus", - "GRAY_THEME": "Graumodus", - "APP_LOCK": { - "TITLE": "Programm sperren nach:", - "TIME1": "5 Minuten", - "TIME2": "15 Minuten", - "TIME3": "1 Stunde", - "TIME4": "Nie" - }, - "SCALE": { - "75": "75% Rahmen", - "100": "100% Rahmen", - "125": "125% Rahmen", - "150": "150% Rahmen" - }, - "MASTER_PASSWORD": { - "TITLE": "Master-Passwort aktualisieren", - "OLD": "Altes Passwort", - "NEW": "Neues Passwort", - "CONFIRM": "New password confirmation", - "BUTTON": "Speichern" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Passwort ist erforderlich", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Aktueller Build: {{value}}", - "APP_LOG_TITLE": "Log-Level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Alias registrieren", - "DETAILS": "Details", - "LOCK": "Verschlüsseln", - "AVAILABLE_BALANCE": "Verfügbar {{available}} {{currency}}", - "LOCKED_BALANCE": "Gesperrt {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "Was bedeutet das?", - "TABS": { - "SEND": "Senden", - "RECEIVE": "Empfangen", - "HISTORY": "Verlauf", - "CONTRACTS": "Verträge", - "MESSAGES": "Nachrichten", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet-Name", - "LABEL_FILE_LOCATION": "Wallet-Datei-Verzeichnis", - "LABEL_SEED_PHRASE": "Seed-Satz", - "SEED_PHRASE_HINT": "Klicken, um den Seed-Satz anzuzeigen", - "BUTTON_SAVE": "Speichern", - "BUTTON_REMOVE": "Wallet schließen", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name ist erforderlich", - "NAME_DUPLICATE": "Name existiert bereits", - "MAX_LENGTH": "Maximale Namenslänge erreicht" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Alias eingeben", - "TOOLTIP": "Ein Alias ist eine verkürzte Form Ihres Kontos. Ein Alias kann nur lateinische Buchstaben, Zahlen und die Zeichen „.“ und “-” enthalten. Es muss mit “@” beginnen." - }, - "COMMENT": { - "LABEL": "Kommentar", - "PLACEHOLDER": "", - "TOOLTIP": "Der Kommentar wird für jeden sichtbar sein, der eine Zahlung an Ihren Alias vornehmen möchte. Sie können Details über Ihre Geschäfte, Kontakte oder Text angeben. Kommentare können später bearbeitet werden." - }, - "COST": "Alias-Gebühr {{value}} {{currency}}", - "BUTTON_ASSIGN": "Zuweisen", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name ist erforderlich", - "NAME_WRONG": "Ungültiger Name: zulässige Symbole \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "Der Alias muss 6-25 Zeichen lang sein", - "NAME_EXISTS": "Alias-Name existiert bereits", - "NO_MONEY": "Du hast nicht genug Geldmittel, um diesen Alias zuzuweisen", - "MAX_LENGTH": "Maximale Kommentarlänge erreicht" - }, - "ONE_ALIAS": "Sie können nur einen Alias pro Wallet erstellen", - "REQUEST_ADD_REG": "Der Alias wird innerhalb von 10 Minuten zugewiesen" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Alias eingeben" - }, - "COMMENT": { - "LABEL": "Kommentar", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "Sie haben nicht genügend Geldmittel, um den Kommentar zu diesem Alias zu ändern", - "MAX_LENGTH": "Maximale Kommentarlänge erreicht" - }, - "COST": "Gebühr {{value}} {{currency}}", - "BUTTON_EDIT": "Bearbeiten" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Alias eingeben" - }, - "COMMENT": { - "LABEL": "Kommentar", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "transferieren zu", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "Keine Wallet mit diesem Konto existiert", - "ALIAS_EXISTS": "Dieses Konto hat bereits einen Alias", - "NO_MONEY": "Du hast nicht genug Geldmittel, um diesen Alias zu transferieren" - }, - "COST": "Überweisungsgebühr {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Abbrechen", - "REQUEST_SEND_REG": "Der Alias wird innerhalb von 10 Minuten übertragen" - }, - "SEND": { - "ADDRESS": "Adresse", - "AMOUNT": "Betrag", - "COMMENT": "Kommentar", - "DETAILS": "Zusätzliche Informationen", - "MIXIN": "Mixin", - "FEE": "Gebühr", - "HIDE": "Verstecke deine Wallet-Adresse vom Empfänger", - "BUTTON": "Senden", - "SUCCESS_SENT": "Transaktion gesendet", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Adresse benötigt", - "ADDRESS_NOT_VALID": "Adresse ungültig", - "ALIAS_NOT_VALID": "Alias ungültig", - "AMOUNT_REQUIRED": "Betrag ist erforderlich", - "AMOUNT_ZERO": "Betrag ist Null", - "FEE_REQUIRED": "Gebühr ist erforderlich", - "FEE_MINIMUM": "Mindestgebühr: {{fee}}", - "MAX_LENGTH": "Maximale Kommentarlänge erreicht" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Bestätigungen {{current}}/{{total}}", - "LOCK_TOOLTIP": "Gesperrt bis {{date}}", - "SEND": "Gesendet", - "RECEIVED": "Empfangen", - "DATE": "Datum", - "AMOUNT": "Betrag", - "FEE": "Gebühr", - "ADDRESS": "Adresse", - "DETAILS": { - "PAYMENT_ID": "Zahlungs-ID", - "ID": "Transaktions-ID", - "SIZE": "Transaktionsgröße", - "SIZE_VALUE": "{{value}} Bytes", - "HEIGHT": "Höhe", - "CONFIRMATION": "Bestätigung", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Kommentar" - }, - "TYPE_MESSAGES": { - "HIDDEN": "versteckt", - "UNDEFINED": "Unbedefiniert", - "COMPLETE_BUYER": "Vertrag abgeschlossen", - "COMPLETE_SELLER": "Vertrag abgeschlossen", - "CREATE_ALIAS": "Gebühr für die Zuordnung eines Alias", - "UPDATE_ALIAS": "Gebühr für die Bearbeitung eines Alias", - "POW_REWARD": "POW-Belohnung", - "POS_REWARD": "POS-Belohnung", - "CREATE_CONTRACT": "Vertragsvorschlag", - "PLEDGE_CONTRACT": "Vertrag-Einzahlung", - "NULLIFY_CONTRACT": "Einzahlungen verbrennen", - "PROPOSAL_CANCEL_CONTRACT": "Stornierungsanfrage", - "CANCEL_CONTRACT": "Abbrechen und Einzahlungen zurückzahlen" - } - }, - "CONTRACTS": { - "EMPTY": "Keine aktiven Verträge", - "CONTRACTS": "Verträge", - "PURCHASE": "Kauf", - "SELL": "Verkaufen", - "DATE": "Datum", - "AMOUNT": "Betrag", - "STATUS": "Status", - "COMMENTS": "Kommentare", - "PURCHASE_BUTTON": "Neuer Kauf", - "LISTING_BUTTON": "Auflistung erstellen", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Weniger als eine Stunde, um zu antworten", - "REMAINING_ONE": "{{time}} verbleibende Stunde", - "REMAINING_MANY": "{{time}} verbleibende Stunden", - "REMAINING_MANY_ALT": "{{time}} verbleibende Stunden", - "REMAINING_ONE_RESPONSE": "{{time}} verbleibende Stunde", - "REMAINING_MANY_RESPONSE": "{{time}} verbleibende Stunde", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} verbleibende Stunden", - "REMAINING_ONE_WAITING": "Warte für {{time}} Stunde", - "REMAINING_MANY_WAITING": "Warte für {{time}} Stunden", - "REMAINING_MANY_ALT_WAITING": "Warte für {{Zeit}} Stunden" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "Neuer Vertragsvorschlag", - "IGNORED": "Sie haben den Vertragsvorschlag ignoriert", - "ACCEPTED": "Vertrag gestartet", - "WAIT": "Warten auf Bestätitung des Vertrages", - "WAITING_BUYER": "Warte auf Sendung", - "COMPLETED": "Vertrag abgeschlossen", - "NOT_RECEIVED": "Senden fehlgeschlagen", - "NULLIFIED": "Alle Einzahlungen verbrannt", - "PROPOSAL_CANCEL": "Neuer Vorschlag, Vertrag zu kündigen und Einzahlungen zurückzugeben", - "BEING_CANCELLED": "Abbruch wird durchgeführt", - "CANCELLED": "Vertrag abgebrochen", - "IGNORED_CANCEL": "Sie haben den Stornierungsvorschlag ignoriert", - "EXPIRED": "Vertragsvorschlag ist abgelaufen" - }, - "BUYER": { - "WAITING": "Warte auf Antwort", - "IGNORED": "Verkäufer ignorierte Ihren Vertragsvorschlag", - "ACCEPTED": "Verkäufer hat Ihren Vertragsvorschlag akzeptiert", - "WAIT": "Warten auf die Bestätigung der Einzahlungen", - "WAITING_SELLER": "Warte auf Sendung", - "COMPLETED": "Vertrag abgeschlossen", - "NOT_RECEIVED": "Senden fehlgeschlagen", - "NULLIFIED": "Alle Einzahlungen verbrannt", - "WAITING_CANCEL": "Warten auf Stornierung des Vertrages", - "BEING_CANCELLED": "Abbruch wird durchgeführt", - "CANCELLED": "Vertrag abgebrochen", - "IGNORED_CANCEL": "Der Verkäufer hat Ihren Vorschlag zur Stornierung des Vertrages ignoriert", - "EXPIRED": "Der Vertragsvorschlag ist abgelaufen" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Beschreibung", - "SELLER": "Verkäufer", - "AMOUNT": "Betrag", - "YOUR_DEPOSIT": "Ihre Einzahlung", - "SELLER_DEPOSIT": "Einzahlung Verkäufer", - "BUYER_DEPOSIT": "Einzahlung Käufer", - "SAME_AMOUNT": "Gleicher Betrag", - "COMMENT": "Kommentar", - "DETAILS": "Zusätzliche Informationen", - "SEND_BUTTON": "Senden", - "FORM_ERRORS": { - "DESC_REQUIRED": "Beschreibung erforderlich", - "DESC_MAXIMUM": "Maximale Feldlänge erreicht", - "SELLER_REQUIRED": "Adresse benötigt", - "SELLER_NOT_VALID": "Ungültige Adresse", - "ALIAS_NOT_VALID": "Ungültiger Alias", - "AMOUNT_REQUIRED": "Betrag ist erforderlich", - "AMOUNT_ZERO": "Betrag darf nicht Null sein", - "YOUR_DEPOSIT_REQUIRED": "Einzahlung erforderlich", - "SELLER_DEPOSIT_REQUIRED": "Verkäufer-Einzahlung erforderlich", - "SELLER_SAME": "Anderes Konto verwenden", - "COMMENT_MAXIMUM": "Maximale Feldlänge erreicht" - }, - "PROGRESS_NEW": "Neuer Kauf", - "PROGRESS_WAIT": "Warte auf Antwort", - "PROGRESS_RECEIVE": "Antwort erhalten", - "PROGRESS_COMPLETE": "Abgeschlossen", - "FEE": "Gebühr", - "PAYMENT": "Zahlungs-ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "Neuer Kauf", - "WAITING_SELLER": "Warte auf Antwort", - "WAITING_BUYER": "Vertragsvorschlag erhalten", - "WAITING_CONFIRMATION": "Warten auf die Bestätigung der Einzahlungen", - "WAITING_DELIVERY": "Warte auf Sendung", - "COMPLETED": "Vertrag abgeschlossen", - "IGNORED_BUYER": "Vertragsvorschlag ignoriert", - "IGNORED_SELLER": "Der Verkäufer ignorierte Ihren Vertragsvorschlag", - "PROPOSAL_CANCEL_SELLER": "Stornierungsanfrage gesendet", - "PROPOSAL_CANCEL_BUYER": "Stornierungsanfrage erhalten", - "BEING_CANCELLED": "Abbruch wird durchgeführt", - "IGNORED_CANCEL_SELLER": "Der Verkäufer hat Ihren Vorschlag zur Stornierung des Vertrages ignoriert", - "IGNORED_CANCEL_BUYER": "Vertragsstornierungsanfrage ignoriert", - "CANCELLED": "Vertrag abgebrochen", - "EXPIRED": "Vertragsvorschlag abgelaufen", - "NOT_RECEIVED": "Senden fehlgeschlagen", - "NULLIFIED": "Alle Einzahlungen verbrannt" - }, - "ACCEPT_STATE_WAIT_BIG": "Vertrag gestartet", - "IGNORED_ACCEPT": "Vertragsvorschlag ignoriert", - "BURN_PROPOSAL": "Einzahlungen verbrannt", - "SUCCESS_FINISH_PROPOSAL": "Vertrag abgeschlossen", - "SEND_CANCEL_PROPOSAL": "Stornierungsanfrage gesendet", - "IGNORED_CANCEL": "Vertragsstornierungsanfrage ignoriert", - "DEALS_CANCELED_WAIT": "Abbruch wird durchgeführt", - "WAITING_TIME": "Antwortzeit", - "NEED_MONEY": "Unzureichendes Guthaben", - "BUTTON_MAKE_PLEDGE": "Akzeptieren und Einzahlung tätigen", - "BUTTON_IGNORE": "Angebot ignorieren und ausblenden", - "BUTTON_NULLIFY": "Beenden und Einzahlungen verbrennen", - "BUTTON_RECEIVED": "Einzahlungen abschließen und freigeben", - "BUTTON_CANCEL_BUYER": "Einzahlungen abbrechen und zurückzahlen", - "BUTTON_NOT_CANCEL": "Anfrage ignorieren", - "BUTTON_CANCEL_SELLER": "Einzahlungen bestätigen und zurückzahlen", - "HOUR": "Stunde", - "HOURS": "Stunden", - "CANCEL": "Abbrechen", - "NULLIFY_QUESTION": "Sind Sie sicher, dass Sie beide Einzahlungen verbrennen möchten?", - "BUTTON_NULLIFY_SHORT": "Verbrennen", - "WAITING_TIME_QUESTION": "Sind Sie sicher, dass Sie den Vertrag kündigen möchten?" - }, - "MESSAGES": { - "ADDRESS": "Adresse", - "MESSAGE": "Nachricht", - "SEND_PLACEHOLDER": "Nachricht eingeben...", - "SEND_BUTTON": "Senden" - }, - "MODALS": { - "ERROR": "Fehler", - "SUCCESS": "Erfolg", - "INFO": "Informationen", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Senden", - "BUTTON_CANCEL": "Abbrechen", - "TITLE": "Transaktion bestätigen", - "MESSAGE": { - "SEND": "Senden", - "FROM": "Von", - "TO": "Zu", - "COMMENT": "Kommentar" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Ausstehend", - "TITLE_TOTAL": "Gesamt", - "TITLE_PERIOD": "Zeitspanne:", - "PERIOD": { - "WEEK1": "1 Woche", - "WEEK2": "2 Wochen", - "MONTH1": "1 Monat", - "MONTH3": "3 Monate", - "MONTH6": "6 Monate", - "YEAR": "1 Jahr", - "ALL": "Alle" - }, - "TITLE_GROUP": "Gruppe:", - "GROUP": { - "DAY": "Tag", - "WEEK": "Woche", - "MONTH": "Monat" - }, - "SWITCH": { - "ON": "AN", - "OFF": "AUS" - } - }, - "CONTACTS": { - "TITLE": "Kontaktliste", - "IMPORT_EXPORT": "Kontakte importieren oder exportieren", - "IMPORT": "Importieren", - "EXPORT": "Exportieren", - "ADD": "Kontakt hinzufügen/bearbeiten", - "SEND": "Senden", - "SEND_FROM": "Senden von", - "SEND_TO": "Zu", - "OPEN_ADD_WALLET": "Wallet öffnen/hinzufügen", - "COPY": "- Kopieren", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Adresse", - "NOTES": "Notizen", - "EMPTY": "Kontaktliste ist leer" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Adresse", - "NOTES": "Notizen" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name ist erforderlich", - "NAME_DUBLICATED": "Name existiert bereits", - "ADDRESS_REQUIRED": "Adresse benötigt", - "ADDRESS_NOT_VALID": "Adresse ungültig", - "SET_MASTER_PASSWORD": "Master-Passwort festlegen", - "ADDRESS_DUBLICATED": "Adresse existiert bereits", - "MAX_LENGTH": "Maximale Länge der Notiz erreicht", - "NAME_LENGTH": "Der Name muss 4-25 Zeichen lang sein" - }, - "BUTTON": { - "SEND": "Senden", - "EDIT": "Bearbeiten", - "DELETE": "Löschen", - "ADD": "Kontakt hinzufügen", - "ADD_EDIT": "Hinzufügen/Speichern", - "GO_TO_WALLET": "Zu Wallet gehen", - "IMPORT_EXPORT": "importieren/exportieren" - }, - "SUCCESS_SENT": "Kontakt hinzugefügt", - "SUCCESS_SAVE": "Kontakt wurde bearbeitet", - "SUCCESS_IMPORT": "Kontakte wurden importiert", - "SUCCESS_EXPORT": "Kontakte wurden exportiert", - "ERROR_IMPORT": "Fehler beim Lesen der Datei!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Ungültiger Dateityp. Datei als .csv speichern", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Nicht genügend Geld", - "NOT_ENOUGH_MONEY": "Unzureichendes Guthaben im Konto", - "CORE_BUSY": "Interner Fehler: Kern ist beschäftigt", - "DAEMON_BUSY": "Interner Fehler: Daemon ist beschäftigt", - "NO_MONEY_REMOVE_OFFER": "Es gibt keine Gebühr für das Löschen eines Angebots, aber um das Netzwerk vor Spam-Transaktionen zu schützen, müssen Sie mindestens {{fee}} {{currency}} in Ihrer Wallet haben", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in-Nummer ist zu groß für den aktuellen Blockchain-Status. Nicht genügend unverbrauchte outputs zum Mischen", - "TRANSACTION_IS_TO_BIG": "Transaktion überschreitet das Netzwerk-Limit. Sendet benötigten Betrag mit mehreren Transaktionen.", - "TRANSFER_ATTEMPT": "Keine Verbindung zum Zano-Netzwerk", - "ACCESS_DENIED": "Zugriff verweigert", - "TRANSACTION_ERROR": "Fehler. Transaktion nicht abgeschlossen.", - "BAD_ARG": "Ungültiges Argument", - "WALLET_WRONG_ID": "Ungültige Wallet-ID", - "WRONG_PASSWORD": "Ungültiges Passwort", - "FILE_RESTORED": "Die Wallet-Datei wurde beschädigt. Wir haben die Schlüssel und die Wallet von der Blockchain wiederhergestellt", - "FILE_NOT_FOUND": "Datei nicht gefunden", - "FILE_EXIST": "Eine Datei mit diesem Namen existiert bereits. Geben Sie einen anderen Namen ein, um die Datei zu speichern", - "FILE_NOT_SAVED": "Sie können keine Wallet-Datei in diesem Ordner speichern. Bitte wählen Sie einen anderen Ordner.", - "TX_TYPE_NORMAL": "Fehler. Die Zahlung von der Wallet", - "TX_TYPE_NORMAL_TO": "zu", - "TX_TYPE_NORMAL_END": "wurde nicht abgeschlossen.", - "TX_TYPE_NEW_ALIAS": "Fehler. Fehler beim Registrieren des Alias zum Speichern", - "TX_TYPE_NEW_ALIAS_END": "Bitte nochmals versuchen.", - "TX_TYPE_UPDATE_ALIAS": "Fehler. Fehlgeschlagen Kommentar von gespeichertem Alias zu ändern", - "TX_TYPE_COIN_BASE": "Fehler. Die Zahlung wurde nicht abgeschlossen." - }, - "CONTEXT_MENU": { - "COPY": "kopieren", - "PASTE": "einfügen", - "SELECT": "alle auswählen" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Beenden", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Eingehende Zahlung (nicht bestätigt)", - "INCOME_TRANSFER_CONFIRMED": "Zahlung erhalten", - "MINED": "Mined", - "LOCKED": "Blockiert", - "IS_MINIMIZE": "Zano-Anwendung wird auf die Systemleiste minimiert", - "RESTORE": "Sie können es wiederherstellen, indem Sie auf das Kontextmenü benutzen oder anklicken ", - "TRAY_MENU_SHOW": "Größe ändern", - "TRAY_MENU_MINIMIZE": "Minimieren" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/el.json b/src/gui/qt-daemon/html/assets/i18n/el.json deleted file mode 100644 index e8110d82..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/el.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Alias has wrong name", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/en.json b/src/gui/qt-daemon/html/assets/i18n/en.json deleted file mode 100644 index 394f046c..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/en.json +++ /dev/null @@ -1,633 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "CONTACTS_TOOLTIP": "Contacts option available only with Master Password enabled", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "LOG_OUT_TOOLTIP": "Logout option available only with Master Password enabled", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing block", - "LOADING": "Loading blockchain data", - "DOWNLOADING": "Downloading", - "SLASH": "/", - "MB": "MB" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "SEED_PASSWORD": "Seed password", - "OK": "OK", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid", - "INCORRECT_PASSWORD": "Incorrect password" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "LANGUAGE": { - "TITLE": "Language", - "EN": "English", - "FR": "French", - "DE": "Deutsch", - "ID": "Indonesian", - "IT": "Italian", - "PT": "Portuguese" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Current password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Incorrect password", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "CONFIRM": { - "TITLE": "Remove wallet from the list?", - "MESSAGE": "To access it you’ll have to add it again" - }, - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - }, - "TOOLTIPS": { - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "SETTINGS": "Settings", - "CLOSE": "Close wallet" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "CREATE_PASSWORD_SECURE": "Create a password to secure your seed", - "INFO": "info", - "SEED_IS_UNSECURED": "Seed is unsecured", - "SEED_IS_SECURED": "Seed is secured", - "REMEMBER_YOU_WILL_REQUIRE": "Remember, you will require the password to restore it.", - "FORM": { - "CONFIRM_PASSWORD": "Confirm password", - "GENERATE_SECURE_SEED": "Generate Secure Seed", - "SECURED_SEED_WILL_REQUIRE": "Secured seed will require this password to restore." - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "PASSWORDS_DONT_MATCH": "Passwords don't match" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK", - "CANCEL": "Cancel" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy" -, "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WALLET_WATCH_ONLY_NOT_SUPPORTED": "Watch-only wallets can only be opened by simplewallet", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/es.json b/src/gui/qt-daemon/html/assets/i18n/es.json deleted file mode 100644 index e7ba8cc6..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/es.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Nombre no válido: símbolos permitidos \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/fi.json b/src/gui/qt-daemon/html/assets/i18n/fi.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/fi.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/fr.json b/src/gui/qt-daemon/html/assets/i18n/fr.json deleted file mode 100644 index 6ecf4c04..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/fr.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Configurer le mot de passe principal", - "SETUP_CONFIRM_PASS": "Confirmer le mot de passe", - "MASTER_PASS": "Mot de passe principal", - "BUTTON_NEXT": "Suivant", - "BUTTON_SKIP": "Sauter", - "BUTTON_RESET": "Réinitialiser", - "INCORRECT_PASSWORD": "Mot de passe invalide", - "FORM_ERRORS": { - "PASS_REQUIRED": "Mot de passe requis", - "CONFIRM_REQUIRED": "Confirmation requise", - "MISMATCH": "Non-concordant" - } - }, - "COMMON": { - "BACK": "Retour" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Ajouter un portefeuille", - "CREATE_WALLET": "Créer un nouveau portefeuille", - "SAVE_PHRASE": "Enregistrer votre phrase de sécurité", - "OPEN_WALLET": "Ouvrir un portefeuille existant", - "RESTORE_WALLET": "Restaurer depuis une sauvegarde", - "WALLET_DETAILS": "Détails du portefeuille", - "ASSIGN_ALIAS": "Assigner un alias", - "EDIT_ALIAS": "Modifier l'alias", - "TRANSFER_ALIAS": "Transférer l'alias", - "CONTRACTS": "Contrats", - "NEW_PURCHASE": "Nouvel achat", - "OLD_PURCHASE": "Achat" - }, - "SIDEBAR": { - "TITLE": "Portefeuilles", - "ADD_NEW": "+ Ajouter", - "ACCOUNT": { - "STAKING": "Mise", - "MESSAGES": "Nouvelles offres/Messages", - "SYNCING": "Synchronisation du portefeuille" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Paramètres", - "LOG_OUT": "Déconnexion", - "SYNCHRONIZATION": { - "OFFLINE": "Hors ligne", - "ONLINE": "En ligne", - "ERROR": "Erreur de système", - "COMPLETE": "Fermeture", - "SYNCING": "Syncing block", - "LOADING": "Chargement des données de la blockchain" - }, - "UPDATE": { - "STANDARD": "Mise à jour disponible", - "STANDARD_TOOLTIP": "Mise à jour.
    La mise à jour est recommandée.", - "IMPORTANT": "Mise à jour disponible", - "IMPORTANT_HINT": "Mise à jour importante !", - "IMPORTANT_TOOLTIP": "Mise à jour.
    La mise à jour est recommandée.", - "CRITICAL": "Mise à jour disponible", - "CRITICAL_HINT": "Mise à jour critique !", - "CRITICAL_TOOLTIP": "Mise à jour critique disponible.Mise à jour fortement recommandée.", - "TIME": "Le temps du système diffère de celui du réseau", - "TIME_TOOLTIP": "Mauvais temps de système
    Vérifier et corriger votre temps de système." - } - }, - "MAIN": { - "TITLE": "Créer ou ouvrir le portefeuille pour commencer à utiliser Zano", - "BUTTON_NEW_WALLET": "Créer un nouveau portefeuille", - "BUTTON_OPEN_WALLET": "Ouvrir un portefeuille existant", - "BUTTON_RESTORE_BACKUP": "Restaurer depuis une sauvegarde", - "HELP": "Comment créer un portefeuille ?", - "CHOOSE_PATH": "Veuillez choisir un chemin" - }, - "CREATE_WALLET": { - "NAME": "Nom du portefeuille", - "PASS": "Définir le mot de passe du portefeuille", - "CONFIRM": "Confirmer le mot de passe du portefeuille", - "BUTTON_SELECT": "Sélectionner l'emplacement du portefeuille", - "BUTTON_CREATE": "Créer un portefeuille", - "TITLE_SAVE": "Enregistrer le fichier du portefeuille.", - "ERROR_CANNOT_SAVE_TOP": "Les fichiers de portefeuille existants ne peuvent pas être remplacés ou écrasés", - "ERROR_CANNOT_SAVE_SYSTEM": "Les fichiers de portefeuille ne peuvent pas être sauvegardés sur la partition du OS", - "FORM_ERRORS": { - "NAME_REQUIRED": "Le nom est requis", - "NAME_DUPLICATE": "Nom déjà utilisé", - "MAX_LENGTH": "Longueur maximale du nom atteinte", - "CONFIRM_NOT_MATCH": "La confirmation du mot de passe ne correspond pas" - } - }, - "OPEN_WALLET": { - "NAME": "Nom du portefeuille", - "PASS": "Mot de passe du portefeuille", - "BUTTON": "Ouvrir un portefeuille", - "WITH_ADDRESS_ALREADY_OPEN": "Un portefeuille avec cette adresse est déjà ouvert", - "FILE_NOT_FOUND1": "Fichier de portefeuille introuvable", - "FILE_NOT_FOUND2": "

    Il aurait peut-être été renommé ou déplacé.
    Pour l'ouvrir, utilisez le bouton \"Ouvrir le portefeuille\".", - "FORM_ERRORS": { - "NAME_REQUIRED": "Le nom est requis", - "NAME_DUPLICATE": "Nom déjà utilisé", - "MAX_LENGTH": "Longueur maximale du nom atteinte" - }, - "MODAL": { - "TITLE": "Entrer le mot de passe du portefeuille", - "LABEL": "Mot de passe de ce portefeuille", - "OPEN": "Ouvrir un portefeuille", - "SKIP": "Sauter", - "NOT_FOUND": "Introuvable" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Nom du portefeuille", - "LABEL_PHRASE_KEY": "Phrase de sécurité / clé privée", - "PASS": "Mot de passe du portefeuille", - "CONFIRM": "Confirmer le mot de passe du portefeuille", - "BUTTON_SELECT": "Sélectionner l'emplacement du portefeuille", - "BUTTON_CREATE": "Créer un portefeuille", - "NOT_CORRECT_FILE_OR_PASSWORD": "Le fichier est invalide ou mot de passe du portefeuille ne correspond pas", - "CHOOSE_PATH": "Veuillez choisir un chemin", - "FORM_ERRORS": { - "NAME_REQUIRED": "Le nom est requis", - "NAME_DUPLICATE": "Nom déjà utilisé", - "MAX_LENGTH": "Longueur maximale atteinte", - "CONFIRM_NOT_MATCH": "La confirmation du mot de passe ne correspond pas", - "KEY_REQUIRED": "Clé requise", - "KEY_NOT_VALID": "Clé invalide" - } - }, - "SEED_PHRASE": { - "TITLE": "Assurez-vous de garder votre phrase de sécurité dans un endroit sûr. Si vous oubliez votre phrase de sécurité, vous ne pourrez pas récupérer votre portefeuille.", - "BUTTON_CREATE_ACCOUNT": "Créer un portefeuille", - "BUTTON_COPY": "Copier" - }, - "PROGRESS": { - "ADD_WALLET": "Ajouter un portefeuille", - "SELECT_LOCATION": "Sélectionner l'emplacement du portefeuille", - "CREATE_WALLET": "Créer un nouveau portefeuille", - "RESTORE_WALLET": "Restaurer depuis une sauvegarde" - }, - "SETTINGS": { - "TITLE": "Paramètres", - "DARK_THEME": "Thème sombre", - "WHITE_THEME": "Thème blanc", - "GRAY_THEME": "Thème gris", - "APP_LOCK": { - "TITLE": "Verrouiller l'application après :", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 heure", - "TIME4": "Jamais" - }, - "SCALE": { - "75": "75% échelle", - "100": "100% échelle", - "125": "125% échelle", - "150": "150% échelle" - }, - "MASTER_PASSWORD": { - "TITLE": "Mettre à jour le mot de passe principal", - "OLD": "Ancien mot de passe", - "NEW": "Nouveau mot de passe", - "CONFIRM": "Confirmer le mot de passe", - "BUTTON": "Enregistrer" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Mot de passe requis", - "PASS_NOT_MATCH": "Ancien mot de passe non correspondant", - "CONFIRM_NOT_MATCH": "La confirmation du mot de passe ne correspond pas" - }, - "LAST_BUILD": "Version actuelle : {{value}}", - "APP_LOG_TITLE": "Niveau de log :" - }, - "WALLET": { - "REGISTER_ALIAS": "Enregistrer un alias", - "DETAILS": "Détails", - "LOCK": "Verrouillage", - "AVAILABLE_BALANCE": "Disponible {{available}} {{currency}}", - "LOCKED_BALANCE": "Vérouillé{{locked}}{{currency}}", - "LOCKED_BALANCE_LINK": "Que signifie cela?", - "TABS": { - "SEND": "Envoyer", - "RECEIVE": "Recevoir", - "HISTORY": "Historique", - "CONTRACTS": "Contrats", - "MESSAGES": "Messages", - "STAKING": "Mise" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Nom du portefeuille", - "LABEL_FILE_LOCATION": "Emplacement du fichier de portefeuille", - "LABEL_SEED_PHRASE": "Phrase de sécurité", - "SEED_PHRASE_HINT": "Cliquez pour révéler la phrase de sécurité", - "BUTTON_SAVE": "Enregistrer", - "BUTTON_REMOVE": "Fermer le portefeuille", - "FORM_ERRORS": { - "NAME_REQUIRED": "Le nom est requis", - "NAME_DUPLICATE": "Nom déjà utilisé", - "MAX_LENGTH": "Longueur maximale atteinte" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Entrer l'alias", - "TOOLTIP": "Un alias est une forme abréviée pour votre compte. Un alias ne peut inclure que des lettres, des chiffres et des caractères latins « » et « - ». Il doit commencer par « @ »." - }, - "COMMENT": { - "LABEL": "Commentaire", - "PLACEHOLDER": "", - "TOOLTIP": "Le commentaire sera visible à quiconque souhaite effectuer un paiement à votre alias. Vous pouvez fournir des détails sur votre entreprise, vos informations de contact ou inclure tout texte. Les commentaires peuvent être modifiés plus tard." - }, - "COST": "Frais d'alias {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assigner", - "FORM_ERRORS": { - "NAME_REQUIRED": "Le nom est requis", - "NAME_WRONG": "Nom invalide: symboles autorisés \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "L'alias doit contenir 6-25 caractères", - "NAME_EXISTS": "Alias déjà existant", - "NO_MONEY": "Vous n'avez pas assez de fonds pour assigner cet alias", - "MAX_LENGTH": "Longueur maximale du commentaire atteinte" - }, - "ONE_ALIAS": "Vous pouvez créer un seul alias par portefeuille", - "REQUEST_ADD_REG": "L'alias sera assigné dans les 10 prochaines minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Entrer l'alias" - }, - "COMMENT": { - "LABEL": "Commentaire", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "Vous n'avez pas assez de fonds pour changer le commentaire de cet alias", - "MAX_LENGTH": "Longueur maximale du commentaire atteinte" - }, - "COST": "Frais {{value}} {{currency}}", - "BUTTON_EDIT": "Modifier" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Entrer l'alias" - }, - "COMMENT": { - "LABEL": "Commentaire", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transférer à", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "Aucun portefeuille avec ce compte n'existe", - "ALIAS_EXISTS": "Ce compte a déjà un alias", - "NO_MONEY": "Vous n'avez pas assez de fonds pour transférer cet alias" - }, - "COST": "Frais de transfert {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transférer", - "BUTTON_CANCEL": "Annuler", - "REQUEST_SEND_REG": "L'alias sera transféré dans les 10 prochaines minutes" - }, - "SEND": { - "ADDRESS": "Adresse", - "AMOUNT": "Montant", - "COMMENT": "Commentaire", - "DETAILS": "Détails supplémentaires", - "MIXIN": "Mélange", - "FEE": "Frais", - "HIDE": "Masquer votre adresse de portefeuille au destinataire", - "BUTTON": "Envoyer", - "SUCCESS_SENT": "Transaction envoyée", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Adresse requise", - "ADDRESS_NOT_VALID": "Addresse invalide", - "ALIAS_NOT_VALID": "Alias non valide", - "AMOUNT_REQUIRED": "Le Montant est requis", - "AMOUNT_ZERO": "Le montant est zéro", - "FEE_REQUIRED": "Les frais sont requis", - "FEE_MINIMUM": "Frais minimum : {{fee}}", - "MAX_LENGTH": "Longueur maximale du commentaire atteinte" - } - }, - "HISTORY": { - "STATUS": "Statut", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Verrouillé jusqu'à {{date}}", - "SEND": "Envoyé", - "RECEIVED": "Reçu", - "DATE": "Date", - "AMOUNT": "Montant", - "FEE": "Frais", - "ADDRESS": "Adresse", - "DETAILS": { - "PAYMENT_ID": "ID de paiement", - "ID": "ID de transaction", - "SIZE": "Taille de la transaction", - "SIZE_VALUE": "{{value}} octets", - "HEIGHT": "Hauteur", - "CONFIRMATION": "Confirmation", - "INPUTS": "Entrées", - "OUTPUTS": "Sorties", - "COMMENT": "Commentaire" - }, - "TYPE_MESSAGES": { - "HIDDEN": "caché", - "UNDEFINED": "Non défini", - "COMPLETE_BUYER": "Contrat complété", - "COMPLETE_SELLER": "Contrat complété", - "CREATE_ALIAS": "Frais pour assigner l'alias", - "UPDATE_ALIAS": "Frais pour modifier l'alias", - "POW_REWARD": "Récompense POW", - "POS_REWARD": "Récompense POS", - "CREATE_CONTRACT": "Proposition de contrat", - "PLEDGE_CONTRACT": "Dépôt de contrat", - "NULLIFY_CONTRACT": "Brûler les dépôts", - "PROPOSAL_CANCEL_CONTRACT": "Demande d'annulation", - "CANCEL_CONTRACT": "Annuler et retourner les dépôts" - } - }, - "CONTRACTS": { - "EMPTY": "Aucun contrat actif", - "CONTRACTS": "Contrats", - "PURCHASE": "Achat", - "SELL": "Vendre", - "DATE": "Date", - "AMOUNT": "Montant", - "STATUS": "Statut", - "COMMENTS": "Commentaires", - "PURCHASE_BUTTON": "Nouvel achat", - "LISTING_BUTTON": "Créer une offre", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Moins d'une heure pour répondre", - "REMAINING_ONE": "{{time}} heure restante", - "REMAINING_MANY": "{{time}} heures restantes", - "REMAINING_MANY_ALT": "{{time}} heures restantes", - "REMAINING_ONE_RESPONSE": "{{time}} heure restante", - "REMAINING_MANY_RESPONSE": "{{time}} heures restantes", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} heures restantes", - "REMAINING_ONE_WAITING": "En attente de {{time}}  heure", - "REMAINING_MANY_WAITING": "En attente de {{time}} heures", - "REMAINING_MANY_ALT_WAITING": "En attente de {{time}} heures" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "Nouvelle proposition de contrat", - "IGNORED": "Vous avez ignoré la proposition de contrat", - "ACCEPTED": "Contrat démarré", - "WAIT": "En attente de confirmation du contrat", - "WAITING_BUYER": "En attente de livraison", - "COMPLETED": "Contrat terminé", - "NOT_RECEIVED": "Échec de la livraison", - "NULLIFIED": "Tous les dépôts ont été brûlés", - "PROPOSAL_CANCEL": "Nouvelle proposition d'annulation de contrat et retour des dépôts", - "BEING_CANCELLED": "Annulation en cours", - "CANCELLED": "Contrat annulé", - "IGNORED_CANCEL": "Vous avez ignoré la proposition d'annulation", - "EXPIRED": "La proposition de contrat a expiré" - }, - "BUYER": { - "WAITING": "En attente d'une réponse", - "IGNORED": "Le vendeur a ignoré votre proposition de contrat", - "ACCEPTED": "Le vendeur a accepté votre proposition de contrat", - "WAIT": "En attente de confirmation des dépôts", - "WAITING_SELLER": "En attente de livraison", - "COMPLETED": "Contrat complété", - "NOT_RECEIVED": "Échec de la livraison", - "NULLIFIED": "Tous les dépôts ont été brûlés", - "WAITING_CANCEL": "En attente d'annulation du contrat", - "BEING_CANCELLED": "Annulation en cours", - "CANCELLED": "Contrat annulé", - "IGNORED_CANCEL": "Le vendeur a ignoré votre proposition d'annuler le contrat", - "EXPIRED": "La proposition de contrat a expiré" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Vendeur", - "AMOUNT": "Montant", - "YOUR_DEPOSIT": "Votre dépôt", - "SELLER_DEPOSIT": "Dépôt du vendeur", - "BUYER_DEPOSIT": "Dépôt d'acheteur", - "SAME_AMOUNT": "Montant identique", - "COMMENT": "Commentaire", - "DETAILS": "Détails supplémentaires", - "SEND_BUTTON": "Envoyer", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description requise", - "DESC_MAXIMUM": "Longueur maximale du champ atteinte", - "SELLER_REQUIRED": "Adresse requise", - "SELLER_NOT_VALID": "Adresse invalide", - "ALIAS_NOT_VALID": "Alias invalide", - "AMOUNT_REQUIRED": "Montant requis", - "AMOUNT_ZERO": "Le montant ne peut pas être nul", - "YOUR_DEPOSIT_REQUIRED": "Dépôt requis", - "SELLER_DEPOSIT_REQUIRED": "Dépôt de vendeur requis", - "SELLER_SAME": "Utiliser un compte séparé", - "COMMENT_MAXIMUM": "Longueur maximale du champ atteinte" - }, - "PROGRESS_NEW": "Nouvel achat", - "PROGRESS_WAIT": "En attente d'une réponse", - "PROGRESS_RECEIVE": "Réponse reçue", - "PROGRESS_COMPLETE": "Complété", - "FEE": "Frais", - "PAYMENT": "ID de paiement", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "Nouvel achat", - "WAITING_SELLER": "En attente d'une réponse", - "WAITING_BUYER": "Proposition de contrat reçue", - "WAITING_CONFIRMATION": "En attente de confirmation des dépôts", - "WAITING_DELIVERY": "En attente de livraison", - "COMPLETED": "Contrat complété", - "IGNORED_BUYER": "Proposition de contrat ignorée", - "IGNORED_SELLER": "Le vendeur a ignoré votre proposition de contrat", - "PROPOSAL_CANCEL_SELLER": "Demande d'annulation envoyée", - "PROPOSAL_CANCEL_BUYER": "Demande d'annulation reçue", - "BEING_CANCELLED": "Annulation en cours", - "IGNORED_CANCEL_SELLER": "Le vendeur a ignoré votre proposition d'annuler le contrat", - "IGNORED_CANCEL_BUYER": "Proposition d'annulation du contrat ignorée", - "CANCELLED": "Contrat annulé", - "EXPIRED": "Proposition de contrat expirée", - "NOT_RECEIVED": "Échec de la livraison", - "NULLIFIED": "Tous les dépôts ont été brûlés" - }, - "ACCEPT_STATE_WAIT_BIG": "Contrat débuté", - "IGNORED_ACCEPT": "Proposition de contrat ignorée", - "BURN_PROPOSAL": "Dépositions brûlées", - "SUCCESS_FINISH_PROPOSAL": "Contrat complété", - "SEND_CANCEL_PROPOSAL": "Demande d'annulation envoyée", - "IGNORED_CANCEL": "Proposition d'annulation du contrat ignorée", - "DEALS_CANCELED_WAIT": "Annulation en cours", - "WAITING_TIME": "Heure de réponse", - "NEED_MONEY": "Fonds insuffisants", - "BUTTON_MAKE_PLEDGE": "Accepter et effectuer un dépôt", - "BUTTON_IGNORE": "Ignorer et cacher l'offre", - "BUTTON_NULLIFY": "Terminer et brûler les dépôts", - "BUTTON_RECEIVED": "Compléter et libérer les dépôts", - "BUTTON_CANCEL_BUYER": "Annuler et retourner les dépôts", - "BUTTON_NOT_CANCEL": "Ignorer la requête", - "BUTTON_CANCEL_SELLER": "Confirmer et retourner les dépôts", - "HOUR": "heure", - "HOURS": "heures", - "CANCEL": "Annuler", - "NULLIFY_QUESTION": "Êtes-vous sûr de vouloir brûler les deux dépôts ?", - "BUTTON_NULLIFY_SHORT": "Brûler", - "WAITING_TIME_QUESTION": "Êtes-vous sûr de vouloir annuler le contrat ?" - }, - "MESSAGES": { - "ADDRESS": "Adresse", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Tapez un message...", - "SEND_BUTTON": "Envoyer" - }, - "MODALS": { - "ERROR": "Erreur", - "SUCCESS": "Succès", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Envoyer", - "BUTTON_CANCEL": "Annuler", - "TITLE": "Confirmer la transaction", - "MESSAGE": { - "SEND": "Envoyer", - "FROM": "De", - "TO": "À", - "COMMENT": "Commentaire" - } - }, - "STAKING": { - "TITLE": "Mise", - "TITLE_PENDING": "En attente", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Période de temps:", - "PERIOD": { - "WEEK1": "1 semaine", - "WEEK2": "2 semaines", - "MONTH1": "1 mois", - "MONTH3": "3 mois", - "MONTH6": "6 mois", - "YEAR": "1 an", - "ALL": "Tout" - }, - "TITLE_GROUP": "Groupe :", - "GROUP": { - "DAY": "jour", - "WEEK": "semaine", - "MONTH": "mois" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Liste de contacts", - "IMPORT_EXPORT": "Importer ou exporter des contacts", - "IMPORT": "Importer", - "EXPORT": "Exporter", - "ADD": "Ajouter/modifier un contact", - "SEND": "Envoyer", - "SEND_FROM": "Envoyer de", - "SEND_TO": "À", - "OPEN_ADD_WALLET": "Ouvrir/Ajouter un portefeuille", - "COPY": "- Copier", - "TABLE": { - "NAME": "Nom", - "ALIAS": "Alias", - "ADDRESS": "Adresse", - "NOTES": "Notes", - "EMPTY": "La liste de contacts est vide" - }, - "FORM": { - "NAME": "Nom", - "ADDRESS": "Adresse", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Le nom est requis", - "NAME_DUBLICATED": "Nom déjà utilisé", - "ADDRESS_REQUIRED": "Adresse requise", - "ADDRESS_NOT_VALID": "Addresse invalide", - "SET_MASTER_PASSWORD": "Définir le mot de passe maître", - "ADDRESS_DUBLICATED": "L'addresse est dupliquée", - "MAX_LENGTH": "Longueur maximale des notes atteinte", - "NAME_LENGTH": "Le nom doit contenir 4-25 caractères" - }, - "BUTTON": { - "SEND": "Envoyer", - "EDIT": "Modifier", - "DELETE": "Supprimer", - "ADD": "Ajouter un contact", - "ADD_EDIT": "Ajouter/Enregistrer", - "GO_TO_WALLET": "Aller au portefeuille", - "IMPORT_EXPORT": "Importer/exporter" - }, - "SUCCESS_SENT": "Contact ajouté", - "SUCCESS_SAVE": "Contact modifié", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Erreur lors de la lecture du fichier !", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Pas assez de fonds", - "NOT_ENOUGH_MONEY": "Fonds insuffisants dans le compte", - "CORE_BUSY": "Erreur interne : le noyau est occupé", - "DAEMON_BUSY": "Erreur interne : le daemon est occupé", - "NO_MONEY_REMOVE_OFFER": "Il n'y a pas de frais pour supprimer une offre, mais pour protéger le réseau contre les transactions de spam, vous devez avoir au moins {{fee}} {{currency}} dans votre portefeuille", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Le nombre de mixage est trop grand pour l'état actuel de la blockchain. Il n'y a pas assez de sorties non utilisées pour mélanger avec", - "TRANSACTION_IS_TO_BIG": "La transaction dépasse la limite réseau, envoyez le montant requis avec plusieurs transactions", - "TRANSFER_ATTEMPT": "Il n'y a pas de connexion au réseau Zano", - "ACCESS_DENIED": "Accès refusé", - "TRANSACTION_ERROR": "Erreur. Transaction non complétée.", - "BAD_ARG": "Argument invalide", - "WALLET_WRONG_ID": "ID de portefeuille invalide", - "WRONG_PASSWORD": "Mot de passe invalide", - "FILE_RESTORED": "Le fichier de portefeuille a été corrompu. Nous avons récupéré les clés et le portefeuille de la blockchain", - "FILE_NOT_FOUND": "Fichier introuvable", - "FILE_EXIST": "Un fichier avec ce nom existe déjà. Entrez un autre nom pour enregistrer le fichier sous", - "FILE_NOT_SAVED": "Vous ne pouvez pas enregistrer un fichier de portefeuille dans ce dossier. Veuillez choisir un autre dossier.", - "TX_TYPE_NORMAL": "Erreur. paiement du portefeuille", - "TX_TYPE_NORMAL_TO": "à", - "TX_TYPE_NORMAL_END": "n'a pas été complété.", - "TX_TYPE_NEW_ALIAS": "Erreur. Impossible d'enregistrer l'alias dans la blockchain", - "TX_TYPE_NEW_ALIAS_END": "Veuillez réessayer.", - "TX_TYPE_UPDATE_ALIAS": "Erreur. Impossible de changer le commentaire de l'alias actuel", - "TX_TYPE_COIN_BASE": "Erreur. Le paiement n'a pas été complété." - }, - "CONTEXT_MENU": { - "COPY": "copier", - "PASTE": "coller", - "SELECT": "tout sélectionner" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quitter", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Paiement entrant (non confirmé)", - "INCOME_TRANSFER_CONFIRMED": "Paiement reçu", - "MINED": "Miné", - "LOCKED": "Bloqué", - "IS_MINIMIZE": "L'application Zano est minimisée dans la barre d'état", - "RESTORE": "Vous pouvez le récupérer en cliquant ou en utilisant le menu contextuel", - "TRAY_MENU_SHOW": "Redimensionner", - "TRAY_MENU_MINIMIZE": "Réduire" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/he.json b/src/gui/qt-daemon/html/assets/i18n/he.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/he.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/hu.json b/src/gui/qt-daemon/html/assets/i18n/hu.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/hu.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/id.json b/src/gui/qt-daemon/html/assets/i18n/id.json deleted file mode 100644 index 4b4c95a5..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/id.json +++ /dev/null @@ -1,587 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Atur Kata Sandi Utama", - "SETUP_CONFIRM_PASS": "Konfirmasi kata sandi", - "MASTER_PASS": "Kata Sandi Utama", - "BUTTON_NEXT": "Selanjutnya", - "BUTTON_SKIP": "Lewati", - "BUTTON_RESET": "Atur Ulang", - "INCORRECT_PASSWORD": "Kata sandi salah", - "FORM_ERRORS": { - "PASS_REQUIRED": "Kata sandi dibutuhkan\n", - "CONFIRM_REQUIRED": "Diperlukan konfirmasi", - "MISMATCH": "Tidak cocok" - } - }, - "COMMON": { - "BACK": "Kembali" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Tambahkan dompet", - "CREATE_WALLET": "Buat dompet baru", - "SAVE_PHRASE": "Simpan kalimat/kata kata anda", - "OPEN_WALLET": "Buka dompet yang telah ada", - "RESTORE_WALLET": "Mengembalikan dari cadangan", - "WALLET_DETAILS": "Detail Dompet", - "ASSIGN_ALIAS": "Tetapkan nama alias", - "EDIT_ALIAS": "Edit nama alias", - "TRANSFER_ALIAS": "Pindahkan nama alias", - "CONTRACTS": "Kontrak", - "NEW_PURCHASE": "Pembelian Baru", - "OLD_PURCHASE": "Pembelian" - }, - "SIDEBAR": { - "TITLE": "Dompet", - "ADD_NEW": "+ Tambahkan", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "Pesan baru/tawaran", - "SYNCING": "Sinkronisasi dompet" - }, - "CONTACTS": "Kontak", - "SETTINGS": "Pengaturan", - "LOG_OUT": "Keluar", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "Sistem error", - "COMPLETE": "Penyelesaian", - "SYNCING": "Sinkronisasi blockchain", - "LOADING": "Memuat data blockchain" - }, - "UPDATE": { - "STANDARD": "Pembaruan tersedia", - "STANDARD_TOOLTIP": "Dapatkan pembaruan baru.
    Pembaruan direkomendasikan!", - "IMPORTANT": "Pembaruan tersedia", - "IMPORTANT_HINT": "Pembaruang penting!", - "IMPORTANT_TOOLTIP": "Dapatkan pembaruan terbaru.
    Pembaruan penting!", - "CRITICAL": "Pembaruan tersedia", - "CRITICAL_HINT": "Pembaruan penting!", - "CRITICAL_TOOLTIP": "Tersedia pembaruan penting.Direkomendasikan untuk segera di update!", - "TIME": "Waktu sistem berbeda dengan jaringan", - "TIME_TOOLTIP": "Waktu sistem salah!
    Mohon dicek dan perbaiki sistem waktunya." - } - }, - "MAIN": { - "TITLE": "Buat atau buka dompet untuk mulai menggunakan Zano", - "BUTTON_NEW_WALLET": "Buat dompet baru", - "BUTTON_OPEN_WALLET": "Buka dompet yang telah dibuat", - "BUTTON_RESTORE_BACKUP": "Pulihkan dari cadangan", - "HELP": "Bagaimana cara membuat dompet?", - "CHOOSE_PATH": "Pilih path untuk menyimpan" - }, - "CREATE_WALLET": { - "NAME": "Nama Dompet", - "PASS": "Buat kata sandi dompet", - "CONFIRM": "Konfirmasi kata sandi dompet", - "BUTTON_SELECT": "Pilih lokasi dompet", - "BUTTON_CREATE": "Buat Dompet\n", - "TITLE_SAVE": "Simpan file dompet", - "ERROR_CANNOT_SAVE_TOP": "Dompet yang telah ada tidak bisa di tulis ulang atau di ganti", - "ERROR_CANNOT_SAVE_SYSTEM": "File dompet tidak dapat di simpan di partisi OS", - "FORM_ERRORS": { - "NAME_REQUIRED": "Nama di butuhkan", - "NAME_DUPLICATE": "Nama sama/duplikat", - "MAX_LENGTH": "Maksimum panjang nama tecapai", - "CONFIRM_NOT_MATCH": "Konfirmasi katasandi tidak sama" - } - }, - "OPEN_WALLET": { - "NAME": "Nama dompet", - "PASS": "Katasandi dompet", - "BUTTON": "Buka dompet", - "WITH_ADDRESS_ALREADY_OPEN": "Dompet dengan alamat ini sudah terbuka", - "FILE_NOT_FOUND1": "File Dompet tidak ditemukan", - "FILE_NOT_FOUND2": "

    Kemungkinan sudah di ganti atau dipindahkan
    Untuk Membuka, gunakan tombol \"Buka Dompet\".\n", - "FORM_ERRORS": { - "NAME_REQUIRED": "Nama diperlukan", - "NAME_DUPLICATE": "Nama sama/duplikat", - "MAX_LENGTH": "Maksimum panjang nama tecapai" - }, - "MODAL": { - "TITLE": "Tulis kata sandi dompet", - "LABEL": "Katasandi untuk dompet ini", - "OPEN": "Buka dompet", - "SKIP": "Lewati", - "NOT_FOUND": "Tidak ditemukan" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Nama dompet", - "LABEL_PHRASE_KEY": "Seed phrase/ kunci pribadi", - "PASS": "Katasandi dompet", - "CONFIRM": "Konfirmasi kata sandi dompet", - "BUTTON_SELECT": "Pilih lokasi dompet", - "BUTTON_CREATE": "Buat Dompet\n", - "NOT_CORRECT_FILE_OR_PASSWORD": "File dompet tidak valid atau kata sandi tidak sama", - "CHOOSE_PATH": "Pilih path untuk menyimpan", - "FORM_ERRORS": { - "NAME_REQUIRED": "Nama diperlukan", - "NAME_DUPLICATE": "Nama sama/duplikat", - "MAX_LENGTH": "Maksimum panjang nama tecapai", - "CONFIRM_NOT_MATCH": "Konfirmasi katasandi tidak sama", - "KEY_REQUIRED": "Kunci di butuhkan", - "KEY_NOT_VALID": "Kunci tidak valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Pastikan untuk menyimpan seed phrase di tempat yang aman. Jika kamu lupa seed phrasenya, kamu tidak bisa menggunakanya untuk memulihkan/recover dompetmu.", - "BUTTON_CREATE_ACCOUNT": "Buat Dompet\n", - "BUTTON_COPY": "Salin" - }, - "PROGRESS": { - "ADD_WALLET": "Tambahkan dompet", - "SELECT_LOCATION": "Pilih lokasi dompet", - "CREATE_WALLET": "Buat dompet baru", - "RESTORE_WALLET": "Pulihkan dari cadangan" - }, - "SETTINGS": { - "TITLE": "Pengaturan", - "DARK_THEME": "Tema Gelap", - "WHITE_THEME": "Tema Biasa/Putih", - "GRAY_THEME": "Tema Abu-abu", - "APP_LOCK": { - "TITLE": "Kunci aplikasi setelah:", - "TIME1": "5 Menit", - "TIME2": "15 Menit", - "TIME3": "1 Jam", - "TIME4": "Tidak pernah" - }, - "MASTER_PASSWORD": { - "TITLE": "Atur Kata Sandi Utama", - "OLD": "Katasandi lama", - "NEW": "Katasandi baru", - "CONFIRM": "Konfirmasi katasandi baru", - "BUTTON": "Simpan" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Kata sandi dibutuhkan\n", - "PASS_NOT_MATCH": "Katasandi lama tidak sama", - "CONFIRM_NOT_MATCH": "Konfirmasi katasandi tidak sama" - }, - "LAST_BUILD": "Versi sekarang: {{value}}", - "APP_LOG_TITLE": "Tingkat log:" - }, - "WALLET": { - "REGISTER_ALIAS": "Daftarkan alias", - "DETAILS": "Detail", - "LOCK": "Kunci", - "AVAILABLE_BALANCE": "Tersedia {{available}} {{currency}}", - "LOCKED_BALANCE": "Terkunci {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "Apa yang dimaksudkan?\n", - "TABS": { - "SEND": "Kirim", - "RECEIVE": "Terima", - "HISTORY": "Riwayat", - "CONTRACTS": "Kontrak", - "MESSAGES": "Pesan", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Nama dompet", - "LABEL_FILE_LOCATION": "Lokasi file dompet", - "LABEL_SEED_PHRASE": "Seed Phrase", - "SEED_PHRASE_HINT": "Klik untuk membuka frasa kunci", - "BUTTON_SAVE": "Simpan", - "BUTTON_REMOVE": "Tutup dompet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Nama diperlukan", - "NAME_DUPLICATE": "Nama sama/duplikat", - "MAX_LENGTH": "Maksimum panjang nama tecapai" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Masukan alias", - "TOOLTIP": "Alias adalah formulir singkat atau akun Anda. Alias hanya dapat menyertakan huruf Latin, angka, dan karakter “.” dan \"-\". Itu harus dimulai dengan \"@\"." - }, - "COMMENT": { - "LABEL": "Komentar", - "PLACEHOLDER": "", - "TOOLTIP": "Komentar akan terlihat oleh siapa saja yang ingin melakukan pembayaran ke alias Anda. Anda dapat memberikan detail tentang bisnis Anda, kontak, atau memasukkan teks apa pun. Komentar dapat diedit nanti." - }, - "COST": "Biaya Alias {{value}} {{currency}}", - "BUTTON_ASSIGN": "Menetapkan", - "FORM_ERRORS": { - "NAME_REQUIRED": "Nama di butuhkan", - "NAME_WRONG": "Alias memiliki nama yang salah", - "NAME_LENGTH": "Alias harus 6-25 karakter", - "NAME_EXISTS": "Nama alias sudah ada", - "NO_MONEY": "Anda tidak memiliki cukup dana untuk menetapkan alias ini", - "MAX_LENGTH": "Maksimum panjang komentar tecapai" - }, - "ONE_ALIAS": "Anda hanya dapat membuat satu alias per dompet", - "REQUEST_ADD_REG": "Alias akan di pindahkan dalam 10 menit" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Masukan alias" - }, - "COMMENT": { - "LABEL": "Komentar", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "Anda tidak memiliki cukup dana untuk mengganti alias ini", - "MAX_LENGTH": "Maksimum panjang komentar tecapai" - }, - "COST": "Biaya Alias {{value}} {{currency}}", - "BUTTON_EDIT": "Edit/ubah" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Masukan alias" - }, - "COMMENT": { - "LABEL": "Komentar", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Pindahkan ke", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "Tidak ada domet di akun ini", - "ALIAS_EXISTS": "Akun ini sudah memiliki alias", - "NO_MONEY": "Anda tidak memiliki cukup dana untuk memindahkan alias ini" - }, - "COST": "Biaya Alias {{value}} {{currency}}", - "BUTTON_TRANSFER": "Pindahkan", - "BUTTON_CANCEL": "Batal", - "REQUEST_SEND_REG": "Alias akan di pindahkan dalam 10 menit" - }, - "SEND": { - "ADDRESS": "Alamat", - "AMOUNT": "Jumlah", - "COMMENT": "Komentar", - "DETAILS": "Detail tambahan\n", - "MIXIN": "Mixin", - "FEE": "Biaya", - "HIDE": "Sembunyikan alamat dompet kamu dari penerima", - "BUTTON": "Kirim", - "SUCCESS_SENT": "Transaksi dikirim", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Alamat di perlukan", - "ADDRESS_NOT_VALID": "Alamat tidak valid", - "ALIAS_NOT_VALID": "Alias tidak valid", - "AMOUNT_REQUIRED": "Jumlah di perlukan", - "AMOUNT_ZERO": "Jumlah 0", - "FEE_REQUIRED": "Biaya dibutuhkan", - "FEE_MINIMUM": "Biaya minimal : {{fee}}", - "MAX_LENGTH": "Maksimum panjang komentar tecapai" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Konfirmasi {{current}}/{{total}}", - "LOCK_TOOLTIP": "Dikunci sampai {{date}}", - "SEND": "Dikirim", - "RECEIVED": "Diterima", - "DATE": "Tanggal", - "AMOUNT": "Jumlah", - "FEE": "Biaya", - "ADDRESS": "Alamat", - "DETAILS": { - "PAYMENT_ID": "ID Pembayaran", - "ID": "ID Transaksi", - "SIZE": "Ukuran transaksi", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Tinggi", - "CONFIRMATION": "Konfirmasi", - "INPUTS": "Input", - "OUTPUTS": "Output/Keluaran", - "COMMENT": "Komentar" - }, - "TYPE_MESSAGES": { - "HIDDEN": "tersembunyi", - "UNDEFINED": "Tidak terdefinisi", - "COMPLETE_BUYER": "Kontrak selesai", - "COMPLETE_SELLER": "Kontrak selesai", - "CREATE_ALIAS": "Biaya untuk menetapkan alias", - "UPDATE_ALIAS": "Biaya untuk mengubah alias", - "POW_REWARD": "Hadiah POW", - "POS_REWARD": "Hadiah POS", - "CREATE_CONTRACT": "Proposal Kontrak", - "PLEDGE_CONTRACT": "Kontrak Deposit", - "NULLIFY_CONTRACT": "Setoran yang dibakar/hangus", - "PROPOSAL_CANCEL_CONTRACT": "Permintaan pembatalan", - "CANCEL_CONTRACT": "Batalkan dan kembalikan setoran/deposit" - } - }, - "CONTRACTS": { - "EMPTY": "Tidak ada kontrak yang aktif", - "CONTRACTS": "Kontrak", - "PURCHASE": "Pembelian", - "SELL": "Jual", - "DATE": "Tanggal", - "AMOUNT": "Jumlah", - "STATUS": "Status", - "COMMENTS": "Komentar", - "PURCHASE_BUTTON": "Pembelian Baru", - "LISTING_BUTTON": "Buat daftar", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Kurang dari satu jam untuk merespon", - "REMAINING_ONE": "kurang {{time}} jam", - "REMAINING_MANY": "kurang {{time}} jam", - "REMAINING_MANY_ALT": "kurang {{time}} jam", - "REMAINING_ONE_RESPONSE": "kurang {{time}} jam", - "REMAINING_MANY_RESPONSE": "kurang {{time}} jam", - "REMAINING_MANY_ALT_RESPONSE": "kurang {{time}} jam", - "REMAINING_ONE_WAITING": "Menunggu dari {{time}} jam", - "REMAINING_MANY_WAITING": "Menunggu dari {{time}} jam", - "REMAINING_MANY_ALT_WAITING": "Menunggu dari {{time}} jam" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "Proposal kontrak baru", - "IGNORED": "Kamu mengabaikan kontrak proposal", - "ACCEPTED": "Kontrak dimulai", - "WAIT": "Menunggu konfirmasi kontrak\n", - "WAITING_BUYER": "menunggu untuk dikirim", - "COMPLETED": "Kontrak selesai", - "NOT_RECEIVED": "Pengiriman gagal", - "NULLIFIED": "Semua deposit/setoran hangus", - "PROPOSAL_CANCEL": "Proposal baru untuk membatalkan kontrak dan mengembalikan deposit", - "BEING_CANCELLED": "Pembatalan dalam proses", - "CANCELLED": "Kontrak dibatalkan", - "IGNORED_CANCEL": "Kamu mengabaikan kontrak proposal", - "EXPIRED": "Kontrak proposal telah kadaluarsa" - }, - "BUYER": { - "WAITING": "Menunggu untuk respon", - "IGNORED": "Penjual mengabaikan kontrak proposal", - "ACCEPTED": "Penjual menerima kontrak proposal kamu", - "WAIT": "Menunggu konfirmasi deposit", - "WAITING_SELLER": "menunggu untuk dikirim", - "COMPLETED": "Kontrak selesai", - "NOT_RECEIVED": "Pengiriman gagal", - "NULLIFIED": "Semua deposit/setoran hangus", - "WAITING_CANCEL": "Menunggu pembatalan kontrak", - "BEING_CANCELLED": "Pembatalan dalam proses", - "CANCELLED": "Kontrak dibatalkan", - "IGNORED_CANCEL": "Penjual mengabaikan proposal anda untuk pembatalan kontrak", - "EXPIRED": "Kontrak proposal telah kadaluwarsa" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Deskripsi", - "SELLER": "Penjual", - "AMOUNT": "Jumlah", - "YOUR_DEPOSIT": "Setoran/deposit kamu", - "SELLER_DEPOSIT": "Setoran/Depost Penjual", - "BUYER_DEPOSIT": "Setoran pembeli", - "SAME_AMOUNT": "Jumlah yang sama", - "COMMENT": "Komentar", - "DETAILS": "Detail tambahan\n", - "SEND_BUTTON": "Kirim", - "FORM_ERRORS": { - "DESC_REQUIRED": "Deskripsi dibutuhkan", - "DESC_MAXIMUM": "Maksimum panjang bidang tecapai", - "SELLER_REQUIRED": "Alamat di perlukan", - "SELLER_NOT_VALID": "alamat tidak valid", - "ALIAS_NOT_VALID": "alias tidak valid", - "AMOUNT_REQUIRED": "Jumlah di perlukan", - "AMOUNT_ZERO": "Jumlah tidak bisa 0", - "YOUR_DEPOSIT_REQUIRED": "Deposit/setoran dibutuhkan", - "SELLER_DEPOSIT_REQUIRED": "Setoran penjual dibuthkan", - "SELLER_SAME": "Gunakan akun terpisah", - "COMMENT_MAXIMUM": "Maksimum panjang bidang tecapai" - }, - "PROGRESS_NEW": "Pembelian Baru", - "PROGRESS_WAIT": "Menunggu balasan", - "PROGRESS_RECEIVE": "Balasan diterima", - "PROGRESS_COMPLETE": "Selesai", - "FEE": "Biaya", - "PAYMENT": "ID Pembayaran", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "Pembelian Baru", - "WAITING_SELLER": "Menunggu untuk respon", - "WAITING_BUYER": "Kontrak proposal telah diterima", - "WAITING_CONFIRMATION": "Menunggu konfirmasi deposit", - "WAITING_DELIVERY": "menunggu untuk dikirim", - "COMPLETED": "Kontrak selesai", - "IGNORED_BUYER": "Kontrak proposal diabaikan", - "IGNORED_SELLER": "Penjual mengabaikan kontrak proposal", - "PROPOSAL_CANCEL_SELLER": "Permintaan pembatalan dikirimkan", - "PROPOSAL_CANCEL_BUYER": "Permintaan pembatalan diterima", - "BEING_CANCELLED": "Pembatalan dalam proses", - "IGNORED_CANCEL_SELLER": "Penjual mengabaikan proposal anda untuk pembatalan kontrak", - "IGNORED_CANCEL_BUYER": "Proposal pembatalan kontrak diabaikan", - "CANCELLED": "Kontrak dibatalkan", - "EXPIRED": "Kontrak proposal telah kadaluarsa", - "NOT_RECEIVED": "Pengiriman gagal", - "NULLIFIED": "Semua deposit/setoran hangus" - }, - "ACCEPT_STATE_WAIT_BIG": "Kontrak dimulai", - "IGNORED_ACCEPT": "Kontrak proposal diabaikan", - "BURN_PROPOSAL": "Semua deposit/setoran hangus", - "SUCCESS_FINISH_PROPOSAL": "Kontrak selesai", - "SEND_CANCEL_PROPOSAL": "Permintaan pembatalan dikirimkan", - "IGNORED_CANCEL": "Proposal pembatalan kontrak diabaikan", - "DEALS_CANCELED_WAIT": "Pembatalan dalam proses", - "WAITING_TIME": "Waktu Respon", - "NEED_MONEY": "Dana tidak cukup", - "BUTTON_MAKE_PLEDGE": "Terima dan buat deposit", - "BUTTON_IGNORE": "Abaikan dan sembunyikan penawaran", - "BUTTON_NULLIFY": "Matikan dan bakar setoran ", - "BUTTON_RECEIVED": "Selesai dan lepaskan setoran/deposit", - "BUTTON_CANCEL_BUYER": "Batalkan dan kembalikan setoran/deposit", - "BUTTON_NOT_CANCEL": "Abaikan permintaan ", - "BUTTON_CANCEL_SELLER": "Konfirmasi dan kembalikan deposit", - "HOUR": "Jam", - "HOURS": "Jam", - "CANCEL": "Batal", - "NULLIFY_QUESTION": "Apakah kamu yakin untuk membakar/menghanguskan kedua deposit/setoran?", - "BUTTON_NULLIFY_SHORT": "Hangus", - "WAITING_TIME_QUESTION": "Apakah kamu yakin untuk membatalkan kontrak?" - }, - "MESSAGES": { - "ADDRESS": "Alamat", - "MESSAGE": "Pesan", - "SEND_PLACEHOLDER": "Ketik sebuah pesan...", - "SEND_BUTTON": "Kirim" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Berhasil", - "INFO": "Informasi", - "OK": "Ok" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Kirim", - "BUTTON_CANCEL": "Batal", - "TITLE": "Konfirmasi transaksi", - "MESSAGE": { - "SEND": "Kirim", - "FROM": "Dari\n", - "TO": "Untuk", - "COMMENT": "Komentar" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Tertunda", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Periode waktu:", - "PERIOD": { - "WEEK1": "1 minggu", - "WEEK2": "2 minggu", - "MONTH1": "1 bulan", - "MONTH3": "3 bulan", - "MONTH6": "6 bulan", - "YEAR": "1 tahun", - "ALL": "Semua" - }, - "TITLE_GROUP": "Kelompok:", - "GROUP": { - "DAY": "hari", - "WEEK": "minggu", - "MONTH": "bulan" - }, - "SWITCH": { - "ON": "On", - "OFF": "Off" - } - }, - "CONTACTS": { - "TITLE": "Daftar kontak", - "IMPORT_EXPORT": "Import atau ekspor kontak", - "IMPORT": "Import", - "EXPORT": "Ekspor", - "ADD": "Tambahkan/edit kontak", - "SEND": "Kirim", - "SEND_FROM": "Kirim dari", - "SEND_TO": "Untuk", - "OPEN_ADD_WALLET": "Buka/tambahkan dompet", - "COPY": "- Salin", - "TABLE": { - "NAME": "Nama", - "ALIAS": "Alias", - "ADDRESS": "Alamat", - "NOTES": "Catatan", - "EMPTY": "Daftar kontrak masih kosong" - }, - "FORM": { - "NAME": "Nama", - "ADDRESS": "Alamat", - "NOTES": "Catatan" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Nama diperlukan", - "NAME_DUBLICATED": "Nama sama/duplikat", - "ADDRESS_REQUIRED": "Alamat di perlukan", - "ADDRESS_NOT_VALID": "Alamat tidak valid", - "SET_MASTER_PASSWORD": "Atur Kata Sandi Utama", - "ADDRESS_DUBLICATED": "Alamat sama/duplikat", - "MAX_LENGTH": "Maksimum panjang catatan tecapai", - "NAME_LENGTH": "Nama harus 4-25 karakter" - }, - "BUTTON": { - "SEND": "Kirim", - "EDIT": "Edit/ubah", - "DELETE": "Hapus", - "ADD": "Tambahkan kontak", - "ADD_EDIT": "Tambahkan/Simpan", - "GO_TO_WALLET": "Pergi ke dompet", - "IMPORT_EXPORT": "Impor/Ekspor" - }, - "SUCCESS_SENT": "Kontak ditambahkan", - "SUCCESS_SAVE": "Kontak telah di ubah", - "SUCCESS_IMPORT": "Kontak telah di impor", - "SUCCESS_EXPORT": "Kontak telah di ekspor", - "ERROR_IMPORT": "Kesalahan terjadi ketika membaca file!", - "ERROR_TYPE_FILE": "Tolong mengimpor file .csv yang valid", - "ERROR_EXPORT": "Tipe file tidak valid. Simpan file dalam .csv", - "ERROR_EMPTY_LIST": "Daftar kontak masih kosong", - "ERROR_IMPORT_EMPTY": "File masih kosong " - }, - "ERRORS": { - "NO_MONEY": "Tidak cukup uang", - "NOT_ENOUGH_MONEY": "Dana di akun tidak cukup", - "CORE_BUSY": "Kesalahan intenal: inti sedang sibuk", - "DAEMON_BUSY": "Kesalahan intenal: daemon sedang sibuk", - "NO_MONEY_REMOVE_OFFER": "Tidak ada biaya untuk menghapus penawaran, tetapi untuk melindungi jaringan terhadap transaksi banjir/banyak, Anda harus memiliki setidaknya {{fee}} {{currency}} di dompet Anda", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mixin terlalu besar untuk keadaan blockchain saat ini. Tidak ada cukup keluaran yang tidak terpakai untuk digabungkan", - "TRANSACTION_IS_TO_BIG": "Transaksi melebihi batas jaringan, mengirim jumlah yang diperlukan dengan banyak transaksi", - "TRANSFER_ATTEMPT": "Tidak ada koneksi ke jaringan Zano", - "ACCESS_DENIED": "Akses ditolak", - "TRANSACTION_ERROR": "Kesalahan. Transaksi tidak selesai.", - "BAD_ARG": "Argumen tidak valid", - "WALLET_WRONG_ID": "ID dompet tidak valid", - "WRONG_PASSWORD": "Katasandi tidak valid", - "FILE_RESTORED": "File dompet rusak. Kami telah memulihkan kunci dan dompet dari blockchain", - "FILE_NOT_FOUND": "File tidak ditemukan", - "FILE_EXIST": "Sebuah file dengan nama tersebut sudah ada. Coba menggunakan nama lain untuk menyimpannya", - "FILE_NOT_SAVED": "Anda tidak dapat menyimpan file dompet di folder ini. Tolong pilih folder yang lain.", - "TX_TYPE_NORMAL": "Error. Pembayaran dari dompet", - "TX_TYPE_NORMAL_TO": "untuk", - "TX_TYPE_NORMAL_END": "tidak selesai", - "TX_TYPE_NEW_ALIAS": "Error. Gagal untuk mendaftarkan alias ", - "TX_TYPE_NEW_ALIAS_END": "Silakan coba lagi", - "TX_TYPE_UPDATE_ALIAS": "Error. Gagal mengubah komentar menjadi alias dengan aman", - "TX_TYPE_COIN_BASE": "Error. Pembayaran tidak selesai." - }, - "CONTEXT_MENU": { - "COPY": "Salin", - "PASTE": "tempel/paste", - "SELECT": "pilih semua" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Keluar", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Pembayaran masuk (belum terkonfirmasi)", - "INCOME_TRANSFER_CONFIRMED": "Pembayaran diterima", - "MINED": "Ditambang", - "LOCKED": "Diblokir", - "IS_MINIMIZE": "Aplikasi Zano di minimalkan ke dalam sistem tray.", - "RESTORE": "Kamu dapat mengembalikannya dengan cara mengklik ke dalam menu konteks.", - "TRAY_MENU_SHOW": "Ubah ukuran", - "TRAY_MENU_MINIMIZE": "Minimalkan" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/it.json b/src/gui/qt-daemon/html/assets/i18n/it.json deleted file mode 100644 index 9e6282aa..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/it.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Imposta password principale", - "SETUP_CONFIRM_PASS": "Conferma la password", - "MASTER_PASS": "Password principale", - "BUTTON_NEXT": "Prossimo", - "BUTTON_SKIP": "Salta", - "BUTTON_RESET": "Azzera", - "INCORRECT_PASSWORD": "Password non valida", - "FORM_ERRORS": { - "PASS_REQUIRED": "La password è necessaria", - "CONFIRM_REQUIRED": "La conferma è necessaria", - "MISMATCH": "Non corrisponde" - } - }, - "COMMON": { - "BACK": "Torna indietro" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Aggiungi portafoglio", - "CREATE_WALLET": "Crea un nuovo portafoglio", - "SAVE_PHRASE": "Salva la tua frase segreta", - "OPEN_WALLET": "Apri portafoglio esistente", - "RESTORE_WALLET": "Ripristina da backup", - "WALLET_DETAILS": "Dettagli portafoglio", - "ASSIGN_ALIAS": "Assegna alias", - "EDIT_ALIAS": "Modifica alias", - "TRANSFER_ALIAS": "Trasferisci alias", - "CONTRACTS": "Contratti", - "NEW_PURCHASE": "Nuovo acquisto", - "OLD_PURCHASE": "Acquisto" - }, - "SIDEBAR": { - "TITLE": "Portafogli", - "ADD_NEW": "+ Aggiungi", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "Nuove offerte/messaggi", - "SYNCING": "Sincronizzazione portafoglio" - }, - "CONTACTS": "Contatti", - "SETTINGS": "Impostazioni", - "LOG_OUT": "Esci", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "Errore di sistema", - "COMPLETE": "Completata", - "SYNCING": "Syncing block", - "LOADING": "Caricamento dati blockchain" - }, - "UPDATE": { - "STANDARD": "Aggiornamento disponibile", - "STANDARD_TOOLTIP": "Ottieni un nuovo aggiornamento.
    L'aggiornamento è consigliato!", - "IMPORTANT": "Aggiornamento disponibile", - "IMPORTANT_HINT": "Aggiornamento importante!", - "IMPORTANT_TOOLTIP": "Ottieni un nuovo aggiornamento.
    Aggiornamento importante!", - "CRITICAL": "Aggiornamento disponibile", - "CRITICAL_HINT": "Aggiornamento critico!", - "CRITICAL_TOOLTIP": "Aggiornamento critico disponibile.Aggiornamento fortemente consigliato!", - "TIME": "L'orario di sistema differisce dalla rete", - "TIME_TOOLTIP": "L'orario di sistema è sbagliato!
    Controlla e sistema l'orario di sistema." - } - }, - "MAIN": { - "TITLE": "Crea o apri il portafoglio per iniziare a usare Zano", - "BUTTON_NEW_WALLET": "Crea un nuovo portafoglio", - "BUTTON_OPEN_WALLET": "Apri portafoglio esistente", - "BUTTON_RESTORE_BACKUP": "Ripristina da backup", - "HELP": "Come creare il portafoglio?", - "CHOOSE_PATH": "Scegli un percorso" - }, - "CREATE_WALLET": { - "NAME": "Nome del portafoglio", - "PASS": "Imposta password portafoglio", - "CONFIRM": "Conferma password portafoglio", - "BUTTON_SELECT": "Seleziona posizione portafoglio", - "BUTTON_CREATE": "Crea portafoglio", - "TITLE_SAVE": "Salva il file del portafoglio.", - "ERROR_CANNOT_SAVE_TOP": "I file del portafoglio esistenti non possono essere sostituiti o sovrascritti", - "ERROR_CANNOT_SAVE_SYSTEM": "I file del portafoglio non possono essere salvati nella partizione di sistema", - "FORM_ERRORS": { - "NAME_REQUIRED": "Il nome è richiesto", - "NAME_DUPLICATE": "Il nome è duplicato", - "MAX_LENGTH": "Lunghezza massima del nome raggiunta", - "CONFIRM_NOT_MATCH": "La password di conferma non corrisponde" - } - }, - "OPEN_WALLET": { - "NAME": "Nome del portafoglio", - "PASS": "Password portafoglio", - "BUTTON": "Apri portafoglio", - "WITH_ADDRESS_ALREADY_OPEN": "Un portafoglio con questo indirizzo è già aperto", - "FILE_NOT_FOUND1": "File del portafoglio non trovato", - "FILE_NOT_FOUND2": "

    Potrebbe essere stato rinominato o spostato.
    Per aprirlo, usa il pulsante \"Apri portafoglio\".", - "FORM_ERRORS": { - "NAME_REQUIRED": "Il nome è richiesto", - "NAME_DUPLICATE": "Il nome è un duplicato", - "MAX_LENGTH": "Lunghezza massima del nome raggiunta" - }, - "MODAL": { - "TITLE": "Imposta password portafoglio", - "LABEL": "Password per questo portafoglio", - "OPEN": "Apri portafoglio", - "SKIP": "Salta", - "NOT_FOUND": "Non trovato" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Nome del portafoglio", - "LABEL_PHRASE_KEY": "Frase segreta / chiave privata", - "PASS": "Password portafoglio", - "CONFIRM": "Conferma password portafoglio", - "BUTTON_SELECT": "Seleziona posizione portafoglio", - "BUTTON_CREATE": "Crea portafoglio", - "NOT_CORRECT_FILE_OR_PASSWORD": "File del portafoglio non valido o password non corrispondente", - "CHOOSE_PATH": "Scegli un percorso", - "FORM_ERRORS": { - "NAME_REQUIRED": "Il nome è richiesto", - "NAME_DUPLICATE": "Il nome è un duplicato", - "MAX_LENGTH": "Lunghezza massima del nome raggiunta", - "CONFIRM_NOT_MATCH": "La password di conferma non corrisponde", - "KEY_REQUIRED": "Chiave richiesta", - "KEY_NOT_VALID": "Chiave non valida" - } - }, - "SEED_PHRASE": { - "TITLE": "Assicurati di mantenere la tua frase segreta in un posto sicuro. Se dimentichi la tua frase segreta non sarai in grado di recuperare il tuo portafoglio.", - "BUTTON_CREATE_ACCOUNT": "Crea portafoglio", - "BUTTON_COPY": "Copia" - }, - "PROGRESS": { - "ADD_WALLET": "Aggiungi portafoglio", - "SELECT_LOCATION": "Seleziona posizione portafoglio", - "CREATE_WALLET": "Crea un nuovo portafoglio", - "RESTORE_WALLET": "Ripristina da backup" - }, - "SETTINGS": { - "TITLE": "Impostazioni", - "DARK_THEME": "Tema scuro", - "WHITE_THEME": "Tema bianco", - "GRAY_THEME": "Tema grigio", - "APP_LOCK": { - "TITLE": "Blocca app dopo:", - "TIME1": "5 minuti", - "TIME2": "15 minuti", - "TIME3": "1 ora", - "TIME4": "Mai" - }, - "SCALE": { - "75": "75% scala", - "100": "100% scala", - "125": "125% scala", - "150": "150% scala" - }, - "MASTER_PASSWORD": { - "TITLE": "Aggiorna password principale", - "OLD": "Vecchia password", - "NEW": "Nuova password", - "CONFIRM": "Conferma nuova password", - "BUTTON": "Salva" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "La password è necessaria", - "PASS_NOT_MATCH": "La vecchia password non corrisponde", - "CONFIRM_NOT_MATCH": "La password di conferma non corrisponde" - }, - "LAST_BUILD": "Build attuale: {{value}}", - "APP_LOG_TITLE": "Livello di log:" - }, - "WALLET": { - "REGISTER_ALIAS": "Registra un alias", - "DETAILS": "Dettagli", - "LOCK": "Blocca", - "AVAILABLE_BALANCE": "Disponibile {{available}} {{currency}}", - "LOCKED_BALANCE": "Bloccato {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "Che cosa significa?", - "TABS": { - "SEND": "Invia", - "RECEIVE": "Ricevi", - "HISTORY": "Storico", - "CONTRACTS": "Contratti", - "MESSAGES": "Messaggi", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Nome portafoglio", - "LABEL_FILE_LOCATION": "Posizione file portafoglio", - "LABEL_SEED_PHRASE": "Frase segreta", - "SEED_PHRASE_HINT": "Clicca per rivelare la frase segreta", - "BUTTON_SAVE": "Salva", - "BUTTON_REMOVE": "Chiudi portafoglio", - "FORM_ERRORS": { - "NAME_REQUIRED": "Il nome è richiesto", - "NAME_DUPLICATE": "Il nome è un duplicato", - "MAX_LENGTH": "Lunghezza massima del nome raggiunta" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Inserisci alias", - "TOOLTIP": "Un alias è un modulo abbreviato o il tuo account. Un alias può solo includere lettere latine, numeri e caratteri “.” e “-”. Deve iniziare con “@”." - }, - "COMMENT": { - "LABEL": "Commento", - "PLACEHOLDER": "", - "TOOLTIP": "Il commento sarà visibile a chiunque desideri effettuare un pagamento al tuo alias. Puoi fornire dettagli sul tuo business, contatti o includere qualsiasi testo. I commenti possono essere modificati più tardi." - }, - "COST": "Quota alias {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assegna", - "FORM_ERRORS": { - "NAME_REQUIRED": "Il nome è richiesto", - "NAME_WRONG": "Nome Ungültiger: zulässige Symbole \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "L'alias deve essere lungo 6-25 caratteri", - "NAME_EXISTS": "Il nome dell'alias esiste già", - "NO_MONEY": "Non hai fondi sufficienti per assegnare questo alias", - "MAX_LENGTH": "Lunghezza massima del nome raggiunta" - }, - "ONE_ALIAS": "Puoi creare solo un alias per portafoglio", - "REQUEST_ADD_REG": "L'alias sarà assegnato entro 10 minuti" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Inserisci alias" - }, - "COMMENT": { - "LABEL": "Commento", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "Non hai fondi sufficienti per modificare il commento a questo alias", - "MAX_LENGTH": "Lunghezza massima del commento raggiunta" - }, - "COST": "Tassa {{value}} {{currency}}", - "BUTTON_EDIT": "Modifica" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Inserisci alias" - }, - "COMMENT": { - "LABEL": "Commento", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Trasferisci a", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "Non esiste alcun portafoglio con questo account", - "ALIAS_EXISTS": "Questo account ha già un alias", - "NO_MONEY": "Non hai fondi sufficienti per trasferire questo alias" - }, - "COST": "Trasferimento commissione {{value}} {{currency}}", - "BUTTON_TRANSFER": "Trasferisci", - "BUTTON_CANCEL": "Cancella", - "REQUEST_SEND_REG": "L'alias verrà trasferito entro 10 minuti" - }, - "SEND": { - "ADDRESS": "Indirizzo", - "AMOUNT": "Importo", - "COMMENT": "Commento", - "DETAILS": "Dettagli aggiuntivi", - "MIXIN": "Mixin", - "FEE": "Commissione", - "HIDE": "Nascondi l'indirizzo del tuo portafoglio dal destinatario", - "BUTTON": "Invia", - "SUCCESS_SENT": "Transazione inviata", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Indirizzo richiesto", - "ADDRESS_NOT_VALID": "Indirizzo non valido", - "ALIAS_NOT_VALID": "Alias non valido", - "AMOUNT_REQUIRED": "Importo richiesto", - "AMOUNT_ZERO": "Importo è zero", - "FEE_REQUIRED": "La commissione è richiesta", - "FEE_MINIMUM": "Costo minimo: {{fee}}", - "MAX_LENGTH": "Lunghezza massima del commento raggiunta" - } - }, - "HISTORY": { - "STATUS": "Stato", - "STATUS_TOOLTIP": "Conferme {{current}}/{{total}}", - "LOCK_TOOLTIP": "Bloccato fino a {{date}}", - "SEND": "Inviato", - "RECEIVED": "Ricevuto", - "DATE": "Data", - "AMOUNT": "Importo", - "FEE": "Commissione", - "ADDRESS": "Indirizzo", - "DETAILS": { - "PAYMENT_ID": "ID pagamento", - "ID": "ID transazione", - "SIZE": "Dimensione transazione", - "SIZE_VALUE": "{{value}} byte", - "HEIGHT": "Altezza", - "CONFIRMATION": "Conferme", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Commenti" - }, - "TYPE_MESSAGES": { - "HIDDEN": "nascosto", - "UNDEFINED": "Non definito", - "COMPLETE_BUYER": "Contratto completato", - "COMPLETE_SELLER": "Contratto completato", - "CREATE_ALIAS": "Tassa per l'assegnazione dell'alias", - "UPDATE_ALIAS": "Tassa per modificare alias", - "POW_REWARD": "Ricompensa POW", - "POS_REWARD": "Ricompensa POS", - "CREATE_CONTRACT": "Proposta contratto", - "PLEDGE_CONTRACT": "Deposito contratto", - "NULLIFY_CONTRACT": "Burn deposit", - "PROPOSAL_CANCEL_CONTRACT": "Richiesta di cancellazione", - "CANCEL_CONTRACT": "Annulla e restituisce depositi" - } - }, - "CONTRACTS": { - "EMPTY": "Nessun contratto attivo", - "CONTRACTS": "Contratti", - "PURCHASE": "Acquisti", - "SELL": "Vendite", - "DATE": "Data", - "AMOUNT": "Importo", - "STATUS": "Stato", - "COMMENTS": "Commenti", - "PURCHASE_BUTTON": "Nuovo acquisto", - "LISTING_BUTTON": "Crea elenco", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Meno di un'ora per rispondere", - "REMAINING_ONE": "{{time}} ora rimasta", - "REMAINING_MANY": "{{time}} ore rimaste", - "REMAINING_MANY_ALT": "{{time}} ore rimaste", - "REMAINING_ONE_RESPONSE": "{{time}} ora rimasta", - "REMAINING_MANY_RESPONSE": "{{time}} ore rimaste", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} ore rimaste", - "REMAINING_ONE_WAITING": "Attendi {{time}} ora", - "REMAINING_MANY_WAITING": "Attendi {{time}} ore", - "REMAINING_MANY_ALT_WAITING": "Attendi {{time}} ore" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "Nuova proposta di contratto", - "IGNORED": "Hai ignorato la proposta di contratto", - "ACCEPTED": "Contratto iniziato", - "WAIT": "In attesa di conferma del contratto", - "WAITING_BUYER": "In attesa di consegna", - "COMPLETED": "Contratto completato", - "NOT_RECEIVED": "Consegna fallita", - "NULLIFIED": "Tutti i depositi bruciati", - "PROPOSAL_CANCEL": "Nuova proposta di cancellare il contratto e restituire i depositi", - "BEING_CANCELLED": "Cancellazione in corso", - "CANCELLED": "Contratto cancellato", - "IGNORED_CANCEL": "Hai ignorato la proposta di cancellazione", - "EXPIRED": "La proposta del contratto è scaduta" - }, - "BUYER": { - "WAITING": "In attesa di risposta", - "IGNORED": "Il venditore ha ignorato la tua proposta di contratto", - "ACCEPTED": "Il venditore ha accettato la tua proposta di contratto", - "WAIT": "In attesa della conferma dei depositi", - "WAITING_SELLER": "In attesa di consegna", - "COMPLETED": "Contratto completato", - "NOT_RECEIVED": "Consegna fallita", - "NULLIFIED": "Tutti i depositi bruciati", - "WAITING_CANCEL": "In attesa della cancellazione del contratto", - "BEING_CANCELLED": "Cancellazione in corso", - "CANCELLED": "Contratto cancellato", - "IGNORED_CANCEL": "Il venditore ha ignorato la tua proposta di annullare il contratto", - "EXPIRED": "La proposta di contratto è scaduta" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Descrizione", - "SELLER": "Venditore", - "AMOUNT": "Importo", - "YOUR_DEPOSIT": "Il tuo deposito", - "SELLER_DEPOSIT": "Deposito venditore", - "BUYER_DEPOSIT": "Deposito acquirente", - "SAME_AMOUNT": "Stesso importo", - "COMMENT": "Commento", - "DETAILS": "Dettagli aggiuntivi", - "SEND_BUTTON": "Invia", - "FORM_ERRORS": { - "DESC_REQUIRED": "Descrizione richiesta", - "DESC_MAXIMUM": "Lunghezza massima del campo raggiunta", - "SELLER_REQUIRED": "Indirizzo richiesto", - "SELLER_NOT_VALID": "Indirizzo non valido", - "ALIAS_NOT_VALID": "Alias non valido", - "AMOUNT_REQUIRED": "Importo richiesto", - "AMOUNT_ZERO": "L'importo non può essere zero", - "YOUR_DEPOSIT_REQUIRED": "Deposito richiesto", - "SELLER_DEPOSIT_REQUIRED": "Deposito venditore richiesto", - "SELLER_SAME": "Usa account separato", - "COMMENT_MAXIMUM": "Lunghezza massima del campo raggiunta" - }, - "PROGRESS_NEW": "Nuovo acquisto", - "PROGRESS_WAIT": "In attesa di risposta", - "PROGRESS_RECEIVE": "Risposta ricevuta", - "PROGRESS_COMPLETE": "Completato", - "FEE": "Commissione", - "PAYMENT": "ID pagamento", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "Nuovo acquisto", - "WAITING_SELLER": "In attesa di risposta", - "WAITING_BUYER": "Proposta contratto ricevuta", - "WAITING_CONFIRMATION": "In attesa della conferma dei depositi", - "WAITING_DELIVERY": "In attesa di consegna", - "COMPLETED": "Contratto completato", - "IGNORED_BUYER": "Proposta del contratto ignorata", - "IGNORED_SELLER": "Il venditore ha ignorato la tua proposta di contratto", - "PROPOSAL_CANCEL_SELLER": "Richiesta di cancellazione inviata", - "PROPOSAL_CANCEL_BUYER": "Richiesta di cancellazione ricevuta", - "BEING_CANCELLED": "Cancellazione in corso", - "IGNORED_CANCEL_SELLER": "Il venditore ha ignorato la tua proposta di cancellare il contratto", - "IGNORED_CANCEL_BUYER": "Proposta di cancellazione del contratto ignorata", - "CANCELLED": "Contratto cancellato", - "EXPIRED": "Proposta contratto scaduta", - "NOT_RECEIVED": "Consegna fallita", - "NULLIFIED": "Tutti i depositi bruciati" - }, - "ACCEPT_STATE_WAIT_BIG": "Contratto iniziato", - "IGNORED_ACCEPT": "Proposta del contratto ignorata", - "BURN_PROPOSAL": "Depositi bruciati", - "SUCCESS_FINISH_PROPOSAL": "Contratto completato", - "SEND_CANCEL_PROPOSAL": "Richiesta di cancellazione inviata", - "IGNORED_CANCEL": "Proposta di cancellazione del contratto ignorata", - "DEALS_CANCELED_WAIT": "Cancellazione in corso", - "WAITING_TIME": "Tempo di risposta", - "NEED_MONEY": "Fondi insufficienti", - "BUTTON_MAKE_PLEDGE": "Accetta e effettua il deposito", - "BUTTON_IGNORE": "Ignora e nascondi l'offerta", - "BUTTON_NULLIFY": "Termina e brucia i depositi", - "BUTTON_RECEIVED": "Completa e rilascia i depositi", - "BUTTON_CANCEL_BUYER": "Cancella e restituisce i depositi", - "BUTTON_NOT_CANCEL": "Ignora richiesta", - "BUTTON_CANCEL_SELLER": "Conferma e restituisce depositi", - "HOUR": "ora", - "HOURS": "ore", - "CANCEL": "Cancella", - "NULLIFY_QUESTION": "Sei sicuro di voler bruciare entrambi i depositi?", - "BUTTON_NULLIFY_SHORT": "Bruciare", - "WAITING_TIME_QUESTION": "Sei sicuro di voler cancellare il contratto?" - }, - "MESSAGES": { - "ADDRESS": "Indirizzo", - "MESSAGE": "Messaggio", - "SEND_PLACEHOLDER": "Digita un messaggio...", - "SEND_BUTTON": "Invia" - }, - "MODALS": { - "ERROR": "Errore", - "SUCCESS": "Successo", - "INFO": "Informazioni", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Invia", - "BUTTON_CANCEL": "Cancella", - "TITLE": "Conferma la transazione", - "MESSAGE": { - "SEND": "Invia", - "FROM": "Da", - "TO": "A", - "COMMENT": "Commento" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "In sospeso", - "TITLE_TOTAL": "Totale", - "TITLE_PERIOD": "Periodo di tempo:", - "PERIOD": { - "WEEK1": "1 settimana", - "WEEK2": "2 settimane", - "MONTH1": "1 mese", - "MONTH3": "3 mesi", - "MONTH6": "6 mesi", - "YEAR": "1 anno", - "ALL": "Tutti" - }, - "TITLE_GROUP": "Gruppo:", - "GROUP": { - "DAY": "giorno", - "WEEK": "settimana", - "MONTH": "mese" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Lista contatti", - "IMPORT_EXPORT": "Importa o esporta contatti", - "IMPORT": "Importa", - "EXPORT": "Esporta", - "ADD": "Aggiungi/modifica contatto", - "SEND": "Invia", - "SEND_FROM": "Invia da", - "SEND_TO": "A", - "OPEN_ADD_WALLET": "Apri/Aggiungi portafoglio", - "COPY": "- Copia", - "TABLE": { - "NAME": "Nome", - "ALIAS": "Alias", - "ADDRESS": "Indirizzo", - "NOTES": "Note", - "EMPTY": "La lista dei contatti è vuota" - }, - "FORM": { - "NAME": "Nome", - "ADDRESS": "Indirizzo", - "NOTES": "Note" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Il nome è richiesto", - "NAME_DUBLICATED": "Il nome è un duplicato", - "ADDRESS_REQUIRED": "Indirizzo è richiesto", - "ADDRESS_NOT_VALID": "Indirizzo non valido", - "SET_MASTER_PASSWORD": "Imposta password principale", - "ADDRESS_DUBLICATED": "Indirizzo è un duplicato", - "MAX_LENGTH": "Lunghezza massima delle note raggiunta", - "NAME_LENGTH": "Il nome deve essere lungo da 4 a 25 caratteri" - }, - "BUTTON": { - "SEND": "Invia", - "EDIT": "Modifica", - "DELETE": "Elimina", - "ADD": "Aggiungi contatto", - "ADD_EDIT": "Aggiungi/Salva", - "GO_TO_WALLET": "Vai al portafoglio", - "IMPORT_EXPORT": "Importa/esporta" - }, - "SUCCESS_SENT": "Contatto aggiunto", - "SUCCESS_SAVE": "Contatto modificato", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Si è verificato un errore durante la lettura del file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Non abbastanza denaro", - "NOT_ENOUGH_MONEY": "Fondi insufficienti nell'account", - "CORE_BUSY": "Errore interno: il core è occupato", - "DAEMON_BUSY": "Errore interno: daemon è occupato", - "NO_MONEY_REMOVE_OFFER": "Non c'è alcun costo per eliminare un'offerta ma, per proteggere la rete dalle molte transazioni, devi avere almeno {{fee}} {{currency}} nel tuo portafoglio", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Il numero di Mix-in è troppo grande per lo stato corrente della blockchain. Non ci sono abbastanza output non spesi per mescolare con", - "TRANSACTION_IS_TO_BIG": "La transazione supera il limite di rete, invia l'importo richiesto con transazioni multiple", - "TRANSFER_ATTEMPT": "Non c'è connessione alla rete Zano", - "ACCESS_DENIED": "Accesso negato", - "TRANSACTION_ERROR": "Errore. Transazione non completata.", - "BAD_ARG": "Argomento non valido", - "WALLET_WRONG_ID": "ID portafoglio non valido", - "WRONG_PASSWORD": "Password non valida", - "FILE_RESTORED": "Il file del portafoglio è stato danneggiato. Abbiamo recuperato le chiavi e il portafoglio dalla blockchain", - "FILE_NOT_FOUND": "File non trovato", - "FILE_EXIST": "Esiste già un file con questo nome. Inserisci un altro nome per salvare il file", - "FILE_NOT_SAVED": "Non puoi salvare un file di portafoglio in questa cartella. Scegli un'altra cartella.", - "TX_TYPE_NORMAL": "Errore. Il pagamento dal portafoglio", - "TX_TYPE_NORMAL_TO": "a", - "TX_TYPE_NORMAL_END": "non è stato completato.", - "TX_TYPE_NEW_ALIAS": "Errore. Impossibile registrare l'alias in sicurezza", - "TX_TYPE_NEW_ALIAS_END": "Per favore riprova.", - "TX_TYPE_UPDATE_ALIAS": "Errore. Impossibile cambiare il commento all'alias in sicurezza", - "TX_TYPE_COIN_BASE": "Errore. Il pagamento non è stato completato." - }, - "CONTEXT_MENU": { - "COPY": "copia", - "PASTE": "incolla", - "SELECT": "seleziona tutto" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Esci", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Pagamento in arrivo (non confermato)", - "INCOME_TRANSFER_CONFIRMED": "Pagamento ricevuto", - "MINED": "Minato", - "LOCKED": "Bloccato", - "IS_MINIMIZE": "L'applicazione Zano è minimizzata nella barra di sistema", - "RESTORE": "Puoi recuperarlo cliccando o utilizzando il menu contestuale", - "TRAY_MENU_SHOW": "Ridimensiona", - "TRAY_MENU_MINIMIZE": "Minimizza" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/ja.json b/src/gui/qt-daemon/html/assets/i18n/ja.json deleted file mode 100644 index 22a0de0e..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/ja.json +++ /dev/null @@ -1,588 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/ko.json b/src/gui/qt-daemon/html/assets/i18n/ko.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/ko.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/nl.json b/src/gui/qt-daemon/html/assets/i18n/nl.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/nl.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/no.json b/src/gui/qt-daemon/html/assets/i18n/no.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/no.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/pl.json b/src/gui/qt-daemon/html/assets/i18n/pl.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/pl.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/pt.json b/src/gui/qt-daemon/html/assets/i18n/pt.json deleted file mode 100644 index d01a7b63..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/pt.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Configurar password mestra", - "SETUP_CONFIRM_PASS": "Confirmar a password", - "MASTER_PASS": "Password mestra", - "BUTTON_NEXT": "Próximo", - "BUTTON_SKIP": "Saltar", - "BUTTON_RESET": "Redefinir", - "INCORRECT_PASSWORD": "Password inválida", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password é obrigatória", - "CONFIRM_REQUIRED": "Confirmação é obrigatória", - "MISMATCH": "Não correspondem" - } - }, - "COMMON": { - "BACK": "Voltar" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Adicionar carteira", - "CREATE_WALLET": "Criar nova carteira", - "SAVE_PHRASE": "Guardar a sua frase semente", - "OPEN_WALLET": "Abrir carteira existente", - "RESTORE_WALLET": "Restaurar de cópia", - "WALLET_DETAILS": "Detalhes da carteira", - "ASSIGN_ALIAS": "Atribuir alias", - "EDIT_ALIAS": "Editar alias", - "TRANSFER_ALIAS": "Transferir alias", - "CONTRACTS": "Contratos", - "NEW_PURCHASE": "Nova compra", - "OLD_PURCHASE": "Compra" - }, - "SIDEBAR": { - "TITLE": "Carteiras", - "ADD_NEW": "+ Adicionar", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "Novas ofertas/Mensagens", - "SYNCING": "A sincronizar carteira" - }, - "CONTACTS": "Contactos", - "SETTINGS": "Definições", - "LOG_OUT": "Terminar sessão", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "Erro de sistema", - "COMPLETE": "Conclusão", - "SYNCING": "Syncing block", - "LOADING": "A carregar informação da blockchain" - }, - "UPDATE": { - "STANDARD": "Atualização disponível", - "STANDARD_TOOLTIP": "Obter nova atualização. É recomendado atualizar!", - "IMPORTANT": "Atualização disponível", - "IMPORTANT_HINT": "Atualização importante!", - "IMPORTANT_TOOLTIP": "Obter nova atualização. É recomendado atualizar!", - "CRITICAL": "Atualização disponível", - "CRITICAL_HINT": "Atualização crítica!", - "CRITICAL_TOOLTIP": "Atualização crítica disponível. É fortemente recomendado atualizar!", - "TIME": "Tempo de sistema difere da rede", - "TIME_TOOLTIP": "Tempo de sistema errado! Verifique e repare o seu tempo de sistema." - } - }, - "MAIN": { - "TITLE": "Crie ou abra a carteira para começar a usar Zano", - "BUTTON_NEW_WALLET": "Criar nova carteira", - "BUTTON_OPEN_WALLET": "Abrir carteira existente", - "BUTTON_RESTORE_BACKUP": "Restaurar de cópia", - "HELP": "Como criar carteira?", - "CHOOSE_PATH": "Por favor escolha um caminho" - }, - "CREATE_WALLET": { - "NAME": "Nome da carteira", - "PASS": "Definir password da carteira", - "CONFIRM": "Confirmar password da carteira", - "BUTTON_SELECT": "Escolher localização da carteira", - "BUTTON_CREATE": "Criar carteira", - "TITLE_SAVE": "Gravar o ficheiro de carteira.", - "ERROR_CANNOT_SAVE_TOP": "Ficheiros de carteira existentes não podem ser substituídos ou sobrescritos", - "ERROR_CANNOT_SAVE_SYSTEM": "Ficheiros da carteira não podem ser guardados na partição do sistema operativo", - "FORM_ERRORS": { - "NAME_REQUIRED": "Nome é necessário", - "NAME_DUPLICATE": "Nome é duplicado", - "MAX_LENGTH": "Atingido comprimento máximo do nome", - "CONFIRM_NOT_MATCH": "Password de confirmação não corresponde" - } - }, - "OPEN_WALLET": { - "NAME": "Nome da carteira", - "PASS": "Password da carteira", - "BUTTON": "Abrir carteira", - "WITH_ADDRESS_ALREADY_OPEN": "Uma carteira com este endereço já está aberta", - "FILE_NOT_FOUND1": "Ficheiro de carteira não encontrado", - "FILE_NOT_FOUND2": "

    Pode ter sido renomeado ou movido.
    Para abri-lo, use o botão \"Abrir carteira\".", - "FORM_ERRORS": { - "NAME_REQUIRED": "Nome é necessário", - "NAME_DUPLICATE": "Nome é duplicado", - "MAX_LENGTH": "Atingido comprimento máximo do nome" - }, - "MODAL": { - "TITLE": "Escrever password da carteira", - "LABEL": "Password para esta carteira", - "OPEN": "Abrir carteira", - "SKIP": "Saltar", - "NOT_FOUND": "Não encontrado" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Nome da carteira", - "LABEL_PHRASE_KEY": "Frase semente / chave privada", - "PASS": "Password da carteira", - "CONFIRM": "Confirmar password da carteira", - "BUTTON_SELECT": "Escolher localização da carteira", - "BUTTON_CREATE": "Criar carteira", - "NOT_CORRECT_FILE_OR_PASSWORD": "Ficheiro de carteira inválido ou senha não corresponde", - "CHOOSE_PATH": "Por favor escolha um caminho", - "FORM_ERRORS": { - "NAME_REQUIRED": "Nome é necessário", - "NAME_DUPLICATE": "Nome é duplicado", - "MAX_LENGTH": "Atingido comprimento máximo do nome", - "CONFIRM_NOT_MATCH": "Password de confirmação não corresponde", - "KEY_REQUIRED": "Chave é necessária", - "KEY_NOT_VALID": "Chave inválida" - } - }, - "SEED_PHRASE": { - "TITLE": "Certifique-se de manter sua frase-semente num lugar seguro. Se see esquecer da sua frase-semente, não poderá recuperar a sua carteira.", - "BUTTON_CREATE_ACCOUNT": "Criar carteira", - "BUTTON_COPY": "Copiar" - }, - "PROGRESS": { - "ADD_WALLET": "Adicionar carteira", - "SELECT_LOCATION": "Escolher localização da carteira", - "CREATE_WALLET": "Criar nova carteira", - "RESTORE_WALLET": "Restaurar de cópia" - }, - "SETTINGS": { - "TITLE": "Definições", - "DARK_THEME": "Tema escuro", - "WHITE_THEME": "Tema branco", - "GRAY_THEME": "Tema cinzento", - "APP_LOCK": { - "TITLE": "Bloquear aplicação após:", - "TIME1": "5 minutos", - "TIME2": "15 minutos", - "TIME3": "1 hora", - "TIME4": "Nunca" - }, - "SCALE": { - "75": "75% escala", - "100": "100% escala", - "125": "125% escala", - "150": "150% escala" - }, - "MASTER_PASSWORD": { - "TITLE": "Atualizar password mestra", - "OLD": "Antiga password", - "NEW": "Nova password", - "CONFIRM": "Confirmação de nova password", - "BUTTON": "Guardar" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password é necessária", - "PASS_NOT_MATCH": "Antiga password não corresponde", - "CONFIRM_NOT_MATCH": "Password de confirmação não corresponde" - }, - "LAST_BUILD": "Versão atual: {{value}}", - "APP_LOG_TITLE": "Nível de registro:" - }, - "WALLET": { - "REGISTER_ALIAS": "Registar um alias", - "DETAILS": "Detalhes", - "LOCK": "Bloquear", - "AVAILABLE_BALANCE": "Disponível {{available}} {{currency}}", - "LOCKED_BALANCE": "Bloqueado {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "O que isso quer dizer?", - "TABS": { - "SEND": "Enviar", - "RECEIVE": "Receber", - "HISTORY": "Histórico", - "CONTRACTS": "Contratos", - "MESSAGES": "Mensagens", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Nome da carteira", - "LABEL_FILE_LOCATION": "Localização do ficheiro de carteira", - "LABEL_SEED_PHRASE": "Frase semente", - "SEED_PHRASE_HINT": "Clique para revelar a frase semente", - "BUTTON_SAVE": "Guardar", - "BUTTON_REMOVE": "Fechar carteira", - "FORM_ERRORS": { - "NAME_REQUIRED": "Nome é necessário", - "NAME_DUPLICATE": "Nome é duplicado", - "MAX_LENGTH": "Atingido comprimento máximo do nome" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Introduzir alias", - "TOOLTIP": "Um alias é uma forma abreviada da sua conta. Um alias só pode incluir letras, números e caracteres latinos “.” e “-”. Deve começar com “@”." - }, - "COMMENT": { - "LABEL": "Comentar", - "PLACEHOLDER": "", - "TOOLTIP": "O comentário ficará visível para quem quiser efetuar um pagamento para o seu alias. Pode fornecer detalhes sobre sua empresa, contatos ou incluir qualquer texto. Os comentários podem ser editados posteriormente." - }, - "COST": "Taxa de Alias {{value}} {{currency}}", - "BUTTON_ASSIGN": "Atribuir", - "FORM_ERRORS": { - "NAME_REQUIRED": "Nome é necessário", - "NAME_WRONG": "Nome inválido: símbolos permitidos \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "O alias deve ter entre 6 e 25 caracteres", - "NAME_EXISTS": "Nome de alias já existe", - "NO_MONEY": "Não tem fundos suficientes para atribuir esse alias", - "MAX_LENGTH": "Atingido comprimento máximo do comentário" - }, - "ONE_ALIAS": "Pode criar apenas um alias por carteira", - "REQUEST_ADD_REG": "O alias será atribuído em 10 minutos" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Introduzir alias" - }, - "COMMENT": { - "LABEL": "Comentário", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "Não tem fundos suficientes para comentar esse alias", - "MAX_LENGTH": "Atingido comprimento máximo do comentário" - }, - "COST": "Taxa {{value}} {{currency}}", - "BUTTON_EDIT": "Editar" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Introduzir alias" - }, - "COMMENT": { - "LABEL": "Comentar", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transferir para", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "Não existe nenhuma carteira com esta conta", - "ALIAS_EXISTS": "Esta conta já tem um alias", - "NO_MONEY": "Não tem fundos suficientes para transferir esse alias" - }, - "COST": "Taxa de Transferência {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transferir", - "BUTTON_CANCEL": "Cancelar", - "REQUEST_SEND_REG": "O alias será transferido em 10 minutos" - }, - "SEND": { - "ADDRESS": "Endereço", - "AMOUNT": "Montante", - "COMMENT": "Comentar", - "DETAILS": "Detalhes adicionais", - "MIXIN": "Mixagem", - "FEE": "Taxa", - "HIDE": "Ocultar o seu endereço de carteira do recipiente", - "BUTTON": "Enviar", - "SUCCESS_SENT": "Transação enviada", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Endereço é necessário", - "ADDRESS_NOT_VALID": "Endereço inválido", - "ALIAS_NOT_VALID": "Alias inválido", - "AMOUNT_REQUIRED": "Montante é necessário", - "AMOUNT_ZERO": "Montante é zero", - "FEE_REQUIRED": "Taxa é necessária", - "FEE_MINIMUM": "Taxa mínima: {{fee}}", - "MAX_LENGTH": "Atingido comprimento máximo do comentário" - } - }, - "HISTORY": { - "STATUS": "Estado", - "STATUS_TOOLTIP": "Confirmações {{current}}/{{total}}", - "LOCK_TOOLTIP": "Bloqueado até {{date}}", - "SEND": "Enviado", - "RECEIVED": "Recebido", - "DATE": "Data", - "AMOUNT": "Montante", - "FEE": "Taxa", - "ADDRESS": "Endereço", - "DETAILS": { - "PAYMENT_ID": "ID de Pagamento", - "ID": "ID da transação", - "SIZE": "Tamanho da transação", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Altura", - "CONFIRMATION": "Confirmação", - "INPUTS": "Entradas", - "OUTPUTS": "Saídas", - "COMMENT": "Comentário" - }, - "TYPE_MESSAGES": { - "HIDDEN": "escondido", - "UNDEFINED": "Indefinido", - "COMPLETE_BUYER": "Contrato completado", - "COMPLETE_SELLER": "Contrato completado", - "CREATE_ALIAS": "Taxa para atribuição de alias", - "UPDATE_ALIAS": "Taxa para edição de alias", - "POW_REWARD": "Recompensa de POW", - "POS_REWARD": "Recompensa de POS", - "CREATE_CONTRACT": "Proposta de contrato", - "PLEDGE_CONTRACT": "Depósito de contrato", - "NULLIFY_CONTRACT": "Queimar depósitos", - "PROPOSAL_CANCEL_CONTRACT": "Cancelar pedido", - "CANCEL_CONTRACT": "Cancelar e retornar depósitos" - } - }, - "CONTRACTS": { - "EMPTY": "Sem contratos ativos", - "CONTRACTS": "Contratos", - "PURCHASE": "Compra", - "SELL": "Venda", - "DATE": "Data", - "AMOUNT": "Montante", - "STATUS": "Estado", - "COMMENTS": "Comentários", - "PURCHASE_BUTTON": "Nova Compra", - "LISTING_BUTTON": "Criar lista", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Menos de uma hora para responder", - "REMAINING_ONE": "Falta {{time}} hora\n", - "REMAINING_MANY": "Falta {{time}} horas\n", - "REMAINING_MANY_ALT": "Faltam {{time}} horas", - "REMAINING_ONE_RESPONSE": "Falta {{time}} hora", - "REMAINING_MANY_RESPONSE": "Faltam {{time}} horas\n", - "REMAINING_MANY_ALT_RESPONSE": "Faltam {{time}} horas\n", - "REMAINING_ONE_WAITING": "À espera à {{time}} hora", - "REMAINING_MANY_WAITING": "À espera à {{time}} horas", - "REMAINING_MANY_ALT_WAITING": "À espera à {{time}} horas" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "Nova proposta de contrato", - "IGNORED": "Ignorou uma proposta de contrato", - "ACCEPTED": "Contrato iniciado", - "WAIT": "À espera de confirmação de contrato", - "WAITING_BUYER": "À espera de entrega", - "COMPLETED": "Contrato completado", - "NOT_RECEIVED": "Entrega falhada", - "NULLIFIED": "Todos os depósitos queimados", - "PROPOSAL_CANCEL": "Nova proposta para cancelar contrato e retornar depósitos", - "BEING_CANCELLED": "Cancelamento em progresso", - "CANCELLED": "Contrato cancelado", - "IGNORED_CANCEL": "Ignorou uma proposta de cancelamento", - "EXPIRED": "Proposta de contrato expirou" - }, - "BUYER": { - "WAITING": "À espera de resposta", - "IGNORED": "O Vendedor ignorou a sua proposta de contrato", - "ACCEPTED": "O Vendedor aceitou a sua proposta de contrato", - "WAIT": "À espera de confirmação de depósitos", - "WAITING_SELLER": "À espera de entrega", - "COMPLETED": "Contrato completado", - "NOT_RECEIVED": "Entrega falhada", - "NULLIFIED": "Todos os depósitos queimados", - "WAITING_CANCEL": "À espera de cancelamento de contrato", - "BEING_CANCELLED": "Cancelamento em progresso", - "CANCELLED": "Contrato cancelado", - "IGNORED_CANCEL": "O vendedor ignorou a sua proposta para cancelar o contrato", - "EXPIRED": "A proposta de contrato expirou" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Descrição", - "SELLER": "Vendedor", - "AMOUNT": "Montante", - "YOUR_DEPOSIT": "O seu depósito", - "SELLER_DEPOSIT": "Depósito do vendedor", - "BUYER_DEPOSIT": "Depósito do comprador", - "SAME_AMOUNT": "Mesmo montante", - "COMMENT": "Comentário", - "DETAILS": "Detalhes adicionais", - "SEND_BUTTON": "Enviar", - "FORM_ERRORS": { - "DESC_REQUIRED": "Descrição necessária", - "DESC_MAXIMUM": "Atingido comprimento máximo do campo", - "SELLER_REQUIRED": "Endereço necessário", - "SELLER_NOT_VALID": "Endereço inválido", - "ALIAS_NOT_VALID": "Alias inválido", - "AMOUNT_REQUIRED": "Montante necessário", - "AMOUNT_ZERO": "Montante não pode ser zero", - "YOUR_DEPOSIT_REQUIRED": "Depósito necessário", - "SELLER_DEPOSIT_REQUIRED": "Necessário depósito de vendedor", - "SELLER_SAME": "Usar conta separada", - "COMMENT_MAXIMUM": "Atingido comprimento máximo do campo" - }, - "PROGRESS_NEW": "Nova compra", - "PROGRESS_WAIT": "À espera de resposta", - "PROGRESS_RECEIVE": "Resposta recebida", - "PROGRESS_COMPLETE": "Completado", - "FEE": "Taxa", - "PAYMENT": "ID de Pagamento", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "Nova compra", - "WAITING_SELLER": "À espera de resposta", - "WAITING_BUYER": "Proposta de contrato recebida", - "WAITING_CONFIRMATION": "À espera de confirmação de depósitos", - "WAITING_DELIVERY": "À espera de entrega", - "COMPLETED": "Contrato completado", - "IGNORED_BUYER": "Proposta de contrato ignorada", - "IGNORED_SELLER": "O vendedor ignorou a sua proposta de contrato", - "PROPOSAL_CANCEL_SELLER": "Pedido de cancelamento enviado", - "PROPOSAL_CANCEL_BUYER": "Pedido de cancelamento recebido", - "BEING_CANCELLED": "Cancelamento em progresso", - "IGNORED_CANCEL_SELLER": "O vendedor ignorou a sua proposta para cancelar o contrato", - "IGNORED_CANCEL_BUYER": "Proposta de cancelamento de contrato ignorada", - "CANCELLED": "Contrato cancelado", - "EXPIRED": "Proposta de contrato expirada", - "NOT_RECEIVED": "Entrega falhada", - "NULLIFIED": "Todos os depósitos queimados" - }, - "ACCEPT_STATE_WAIT_BIG": "Contrato iniciado", - "IGNORED_ACCEPT": "Proposta de contrato ignorada", - "BURN_PROPOSAL": "Depósitos queimados", - "SUCCESS_FINISH_PROPOSAL": "Contrato completado", - "SEND_CANCEL_PROPOSAL": "Pedido de cancelamento enviado", - "IGNORED_CANCEL": "Proposta de cancelamento de contrato ignorada", - "DEALS_CANCELED_WAIT": "Cancelamento em progresso", - "WAITING_TIME": "Tempo de resposta", - "NEED_MONEY": "Fundos insuficientes", - "BUTTON_MAKE_PLEDGE": "Aceitar e fazer depósito", - "BUTTON_IGNORE": "Ignorar e ocultar oferta", - "BUTTON_NULLIFY": "Terminar e queimar depósitos", - "BUTTON_RECEIVED": "Completar e libertar depósitos", - "BUTTON_CANCEL_BUYER": "Cancelar e retornar depósitos", - "BUTTON_NOT_CANCEL": "Ignorar pedido", - "BUTTON_CANCEL_SELLER": "Confirmar e retornar depósitos", - "HOUR": "hora", - "HOURS": "horas", - "CANCEL": "Cancelar", - "NULLIFY_QUESTION": "Tem a certeza que quer queimar ambos os depósitos?", - "BUTTON_NULLIFY_SHORT": "Queimar", - "WAITING_TIME_QUESTION": "Tem a certeza que quer cancelar o contrato?" - }, - "MESSAGES": { - "ADDRESS": "Endereço", - "MESSAGE": "Mensagem", - "SEND_PLACEHOLDER": "Escreva uma mensagem...", - "SEND_BUTTON": "Enviar" - }, - "MODALS": { - "ERROR": "Erro", - "SUCCESS": "Sucesso", - "INFO": "Informação", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Enviar", - "BUTTON_CANCEL": "Cancelar", - "TITLE": "Confirmar transação", - "MESSAGE": { - "SEND": "Enviar", - "FROM": "De", - "TO": "Para", - "COMMENT": "Comentário" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pendente", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Período de tempo:", - "PERIOD": { - "WEEK1": "1 semana", - "WEEK2": "2 semanas", - "MONTH1": "1 mês", - "MONTH3": "3 meses", - "MONTH6": "6 meses", - "YEAR": "1 ano", - "ALL": "Todo" - }, - "TITLE_GROUP": "Grupo:", - "GROUP": { - "DAY": "dia", - "WEEK": "semana", - "MONTH": "mês" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Lista de Contactos", - "IMPORT_EXPORT": "Importar ou exportar contactos", - "IMPORT": "Importar", - "EXPORT": "Exportar", - "ADD": "Adicionar/editar contacto", - "SEND": "Enviar", - "SEND_FROM": "Enviar de", - "SEND_TO": "Para", - "OPEN_ADD_WALLET": "Abrir/Adicionar carteira", - "COPY": "- Copiar", - "TABLE": { - "NAME": "Nome", - "ALIAS": "Alias", - "ADDRESS": "Endereço", - "NOTES": "Notas", - "EMPTY": "Lista de contactos está vazia" - }, - "FORM": { - "NAME": "Nome", - "ADDRESS": "Endereço", - "NOTES": "Notas" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Nome é necessário", - "NAME_DUBLICATED": "Nome está duplicado", - "ADDRESS_REQUIRED": "Endereço é necessário", - "ADDRESS_NOT_VALID": "Endereço inválido", - "SET_MASTER_PASSWORD": "Definir password mestra", - "ADDRESS_DUBLICATED": "Endereço está duplicado", - "MAX_LENGTH": "Atingido comprimento máximo das Notas", - "NAME_LENGTH": "O alias deve ter entre 4 e 25 caracteres" - }, - "BUTTON": { - "SEND": "Enviar", - "EDIT": "Editar", - "DELETE": "Eliminar", - "ADD": "Adicionar contacto", - "ADD_EDIT": "Adicionar/Guardar", - "GO_TO_WALLET": "Ir para carteira", - "IMPORT_EXPORT": "Importar/exportar" - }, - "SUCCESS_SENT": "Contacto adicionado", - "SUCCESS_SAVE": "Contacto editado", - "SUCCESS_IMPORT": "Contactos importados", - "SUCCESS_EXPORT": "Contactos exportados", - "ERROR_IMPORT": "Erro ocorrido na leitura de ficheiro!", - "ERROR_TYPE_FILE": "Por favor importe um ficheiro .csv válido", - "ERROR_EXPORT": "Tipo de ficheiro inválido. Guarde ficheiro como .csv", - "ERROR_EMPTY_LIST": "Lista de contactos está vazia", - "ERROR_IMPORT_EMPTY": "Ficheiro está vazio" - }, - "ERRORS": { - "NO_MONEY": "Sem dinheiro suficiente", - "NOT_ENOUGH_MONEY": "Fundos insuficientes na conta", - "CORE_BUSY": "Erro interno: core está ocupado", - "DAEMON_BUSY": "Erro interno: daemon está ocupado", - "NO_MONEY_REMOVE_OFFER": "Não há taxa para excluir uma oferta, mas para proteger a rede contra transações de inundação, é preciso ter pelo menos {{fee}} {{currency}} na sua carteira", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "O número de mixagem é muito grande para o estado atual da blockchain. Não há saídas não gastas suficientes para misturar", - "TRANSACTION_IS_TO_BIG": "Transação excede o limite de rede, envie quantidade necessária com várias transações", - "TRANSFER_ATTEMPT": "Sem conexão à rede Zano", - "ACCESS_DENIED": "Acesso negado", - "TRANSACTION_ERROR": "Erro. Transação não completada.", - "BAD_ARG": "Argumento inválido", - "WALLET_WRONG_ID": "ID de carteira inválido", - "WRONG_PASSWORD": "Password inválida", - "FILE_RESTORED": "O ficheiro de carteira estava corrompido. Recuperámos as chaves e a carteira a partir da blockchain", - "FILE_NOT_FOUND": "Ficheiro não encontrado", - "FILE_EXIST": "Já existe um ficheiro com esse nome. Insira outro nome para gravar o ficheiro sob", - "FILE_NOT_SAVED": "Não pode gravar um ficheiro de carteira nesta pasta. Por favor escolha outra pasta.", - "TX_TYPE_NORMAL": "Erro. O pagamento da carteira", - "TX_TYPE_NORMAL_TO": "para", - "TX_TYPE_NORMAL_END": "não foi completado.", - "TX_TYPE_NEW_ALIAS": "Erro. Falha ao registar alias para seguro", - "TX_TYPE_NEW_ALIAS_END": "Por favor tente novamente.", - "TX_TYPE_UPDATE_ALIAS": "Erro. Falha ao mudar comentário a um alias seguro", - "TX_TYPE_COIN_BASE": "Erro. Pagamento não foi completado." - }, - "CONTEXT_MENU": { - "COPY": "copiar", - "PASTE": "colar", - "SELECT": "selecionar tudo" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Sair", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Pagamento recebido (não confirmado)", - "INCOME_TRANSFER_CONFIRMED": "Pagamento recebido", - "MINED": "Minerado", - "LOCKED": "Bloqueado", - "IS_MINIMIZE": "Aplicação Zano foi minimizada na bandeja do sistema", - "RESTORE": "Pode recuperá-lo ao clicar ou usar o menu de contexto", - "TRAY_MENU_SHOW": "Redimensionar", - "TRAY_MENU_MINIMIZE": "Minimizar" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/ro.json b/src/gui/qt-daemon/html/assets/i18n/ro.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/ro.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/ru.json b/src/gui/qt-daemon/html/assets/i18n/ru.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/ru.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/sr.json b/src/gui/qt-daemon/html/assets/i18n/sr.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/sr.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/sv.json b/src/gui/qt-daemon/html/assets/i18n/sv.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/sv.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/tr.json b/src/gui/qt-daemon/html/assets/i18n/tr.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/tr.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/uk.json b/src/gui/qt-daemon/html/assets/i18n/uk.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/uk.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/vi.json b/src/gui/qt-daemon/html/assets/i18n/vi.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/vi.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/i18n/zh.json b/src/gui/qt-daemon/html/assets/i18n/zh.json deleted file mode 100644 index 59e88fa0..00000000 --- a/src/gui/qt-daemon/html/assets/i18n/zh.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "LOGIN": { - "SETUP_MASTER_PASS": "Setup master password", - "SETUP_CONFIRM_PASS": "Confirm the password", - "MASTER_PASS": "Master password", - "BUTTON_NEXT": "Next", - "BUTTON_SKIP": "Skip", - "BUTTON_RESET": "Reset", - "INCORRECT_PASSWORD": "Invalid password", - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "CONFIRM_REQUIRED": "Confirmation is required", - "MISMATCH": "Mismatch" - } - }, - "COMMON": { - "BACK": "Go back" - }, - "BREADCRUMBS": { - "ADD_WALLET": "Add wallet", - "CREATE_WALLET": "Create new wallet", - "SAVE_PHRASE": "Save your seed phrase", - "OPEN_WALLET": "Open existing wallet", - "RESTORE_WALLET": "Restore from backup", - "WALLET_DETAILS": "Wallet details", - "ASSIGN_ALIAS": "Assign alias", - "EDIT_ALIAS": "Edit alias", - "TRANSFER_ALIAS": "Transfer alias", - "CONTRACTS": "Contracts", - "NEW_PURCHASE": "New purchase", - "OLD_PURCHASE": "Purchase" - }, - "SIDEBAR": { - "TITLE": "Wallets", - "ADD_NEW": "+ Add", - "ACCOUNT": { - "STAKING": "Staking", - "MESSAGES": "New offers/Messages", - "SYNCING": "Syncing wallet" - }, - "CONTACTS": "Contacts", - "SETTINGS": "Settings", - "LOG_OUT": "Log out", - "SYNCHRONIZATION": { - "OFFLINE": "Offline", - "ONLINE": "Online", - "ERROR": "System error", - "COMPLETE": "Completion", - "SYNCING": "Syncing blockchain", - "LOADING": "Loading blockchain data" - }, - "UPDATE": { - "STANDARD": "Update available", - "STANDARD_TOOLTIP": "Get new update.
    Update is recommended!", - "IMPORTANT": "Update available", - "IMPORTANT_HINT": "Important update!", - "IMPORTANT_TOOLTIP": "Get new update.
    Important update!", - "CRITICAL": "Update available", - "CRITICAL_HINT": "Critical update!", - "CRITICAL_TOOLTIP": "Critical update available.Update strongly recommended!", - "TIME": "System time differs from network", - "TIME_TOOLTIP": "Wrong system time!
    Check and repair your system time." - } - }, - "MAIN": { - "TITLE": "Create or open the wallet to start using Zano", - "BUTTON_NEW_WALLET": "Create new wallet", - "BUTTON_OPEN_WALLET": "Open existing wallet", - "BUTTON_RESTORE_BACKUP": "Restore from backup", - "HELP": "How to create wallet?", - "CHOOSE_PATH": "Please choose a path" - }, - "CREATE_WALLET": { - "NAME": "Wallet name", - "PASS": "Set wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "TITLE_SAVE": "Save the wallet file.", - "ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten", - "ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match" - } - }, - "OPEN_WALLET": { - "NAME": "Wallet name", - "PASS": "Wallet password", - "BUTTON": "Open wallet", - "WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open", - "FILE_NOT_FOUND1": "Wallet file not found", - "FILE_NOT_FOUND2": "

    It might have been renamed or moved.
    To open it, use the \"Open wallet\" button.", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - }, - "MODAL": { - "TITLE": "Type wallet password", - "LABEL": "Password to this wallet", - "OPEN": "Open wallet", - "SKIP": "Skip", - "NOT_FOUND": "Not found" - } - }, - "RESTORE_WALLET": { - "LABEL_NAME": "Wallet name", - "LABEL_PHRASE_KEY": "Seed phrase / tracking seed", - "PASS": "Wallet password", - "CONFIRM": "Confirm wallet password", - "BUTTON_SELECT": "Select wallet location", - "BUTTON_CREATE": "Create wallet", - "NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match", - "CHOOSE_PATH": "Please choose a path", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached", - "CONFIRM_NOT_MATCH": "Confirm password not match", - "KEY_REQUIRED": "Key is required", - "KEY_NOT_VALID": "Key not valid" - } - }, - "SEED_PHRASE": { - "TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.", - "BUTTON_CREATE_ACCOUNT": "Create wallet", - "BUTTON_COPY": "Copy" - }, - "PROGRESS": { - "ADD_WALLET": "Add wallet", - "SELECT_LOCATION": "Select wallet location", - "CREATE_WALLET": "Create new wallet", - "RESTORE_WALLET": "Restore from backup" - }, - "SETTINGS": { - "TITLE": "Settings", - "DARK_THEME": "Dark theme", - "WHITE_THEME": "White theme", - "GRAY_THEME": "Grey theme", - "APP_LOCK": { - "TITLE": "Lock app after:", - "TIME1": "5 min", - "TIME2": "15 min", - "TIME3": "1 hour", - "TIME4": "Never" - }, - "SCALE": { - "75": "75% scale", - "100": "100% scale", - "125": "125% scale", - "150": "150% scale" - }, - "MASTER_PASSWORD": { - "TITLE": "Update master password", - "OLD": "Old password", - "NEW": "New password", - "CONFIRM": "New password confirmation", - "BUTTON": "Save" - }, - "FORM_ERRORS": { - "PASS_REQUIRED": "Password is required", - "PASS_NOT_MATCH": "Old password not match", - "CONFIRM_NOT_MATCH": "Confirm password not match" - }, - "LAST_BUILD": "Current build: {{value}}", - "APP_LOG_TITLE": "Log level:" - }, - "WALLET": { - "REGISTER_ALIAS": "Register an alias", - "DETAILS": "Details", - "LOCK": "Lock", - "AVAILABLE_BALANCE": "Available {{available}} {{currency}}", - "LOCKED_BALANCE": "Locked {{locked}} {{currency}}", - "LOCKED_BALANCE_LINK": "What does that mean?", - "TABS": { - "SEND": "Send", - "RECEIVE": "Receive", - "HISTORY": "History", - "CONTRACTS": "Contracts", - "MESSAGES": "Messages", - "STAKING": "Staking" - } - }, - "WALLET_DETAILS": { - "LABEL_NAME": "Wallet name", - "LABEL_FILE_LOCATION": "Wallet file location", - "LABEL_SEED_PHRASE": "Seed phrase", - "SEED_PHRASE_HINT": "Click to reveal the seed phrase", - "BUTTON_SAVE": "Save", - "BUTTON_REMOVE": "Close wallet", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUPLICATE": "Name is duplicate", - "MAX_LENGTH": "Maximum name length reached" - } - }, - "ASSIGN_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": " Enter alias", - "TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”." - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "", - "TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later." - }, - "COST": "Alias fee {{value}} {{currency}}", - "BUTTON_ASSIGN": "Assign", - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_WRONG": "Invalid name: allowed symbols \"0-9\", \"a-z\", \"-\", \".\"", - "NAME_LENGTH": "The alias must be 6-25 characters long", - "NAME_EXISTS": "Alias name already exists", - "NO_MONEY": "You do not have enough funds to assign this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "ONE_ALIAS": "You can create only one alias per wallet", - "REQUEST_ADD_REG": "The alias will be assigned within 10 minutes" - }, - "EDIT_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "NO_MONEY": "You do not have enough funds to change the comment to this alias", - "MAX_LENGTH": "Maximum comment length reached" - }, - "COST": "Fee {{value}} {{currency}}", - "BUTTON_EDIT": "Edit" - }, - "TRANSFER_ALIAS": { - "NAME": { - "LABEL": "Alias", - "PLACEHOLDER": "@ Enter alias" - }, - "COMMENT": { - "LABEL": "Comment", - "PLACEHOLDER": "" - }, - "ADDRESS": { - "LABEL": "Transfer to", - "PLACEHOLDER": "" - }, - "FORM_ERRORS": { - "WRONG_ADDRESS": "No wallet with this account exists", - "ALIAS_EXISTS": "This account already has an alias", - "NO_MONEY": "You do not have enough funds to transfer this alias" - }, - "COST": "Transfer fee {{value}} {{currency}}", - "BUTTON_TRANSFER": "Transfer", - "BUTTON_CANCEL": "Cancel", - "REQUEST_SEND_REG": "The alias will be transferred within 10 minutes" - }, - "SEND": { - "ADDRESS": "Address", - "AMOUNT": "Amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "MIXIN": "Mixin", - "FEE": "Fee", - "HIDE": "Hide your wallet address from recipient", - "BUTTON": "Send", - "SUCCESS_SENT": "Transaction sent", - "FORM_ERRORS": { - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "ALIAS_NOT_VALID": "Alias not valid", - "AMOUNT_REQUIRED": "Amount is required", - "AMOUNT_ZERO": "Amount is zero", - "FEE_REQUIRED": "Fee is required", - "FEE_MINIMUM": "Minimum fee: {{fee}}", - "MAX_LENGTH": "Maximum comment length reached" - } - }, - "HISTORY": { - "STATUS": "Status", - "STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}", - "LOCK_TOOLTIP": "Locked till {{date}}", - "SEND": "Sent", - "RECEIVED": "Received", - "DATE": "Date", - "AMOUNT": "Amount", - "FEE": "Fee", - "ADDRESS": "Address", - "DETAILS": { - "PAYMENT_ID": "Payment ID", - "ID": "Transaction ID", - "SIZE": "Transaction size", - "SIZE_VALUE": "{{value}} bytes", - "HEIGHT": "Height", - "CONFIRMATION": "Confirmation", - "INPUTS": "Inputs", - "OUTPUTS": "Outputs", - "COMMENT": "Comment" - }, - "TYPE_MESSAGES": { - "HIDDEN": "hidden", - "UNDEFINED": "Undefined", - "COMPLETE_BUYER": "Contract completed", - "COMPLETE_SELLER": "Contract completed", - "CREATE_ALIAS": "Fee for assigning alias", - "UPDATE_ALIAS": "Fee for editing alias", - "POW_REWARD": "POW reward", - "POS_REWARD": "POS reward", - "CREATE_CONTRACT": "Contract proposal", - "PLEDGE_CONTRACT": "Contract deposit", - "NULLIFY_CONTRACT": "Burn deposits", - "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", - "CANCEL_CONTRACT": "Cancel and return deposits" - } - }, - "CONTRACTS": { - "EMPTY": "No active contracts", - "CONTRACTS": "Contracts", - "PURCHASE": "Purchase", - "SELL": "Sell", - "DATE": "Date", - "AMOUNT": "Amount", - "STATUS": "Status", - "COMMENTS": "Comments", - "PURCHASE_BUTTON": "New Purchase", - "LISTING_BUTTON": "Create listing", - "TIME_LEFT": { - "REMAINING_LESS_ONE": "Less than an hour to respond", - "REMAINING_ONE": "{{time}} hour remains", - "REMAINING_MANY": "{{time}} hours remain", - "REMAINING_MANY_ALT": "{{time}} hours remain", - "REMAINING_ONE_RESPONSE": "{{time}} hour remains", - "REMAINING_MANY_RESPONSE": "{{time}} hours remain", - "REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain", - "REMAINING_ONE_WAITING": "Waiting for {{time}} hour", - "REMAINING_MANY_WAITING": "Waiting for {{time}} hours", - "REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours" - }, - "STATUS_MESSAGES": { - "SELLER": { - "NEW_CONTRACT": "New contract proposal", - "IGNORED": "You ignored contract proposal", - "ACCEPTED": "Contract started", - "WAIT": "Waiting for contract confirmation", - "WAITING_BUYER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "You ignored cancellation proposal", - "EXPIRED": "Contract proposal has expired" - }, - "BUYER": { - "WAITING": "Waiting for response", - "IGNORED": "Seller ignored your contract proposal", - "ACCEPTED": "Seller accepted your contract proposal", - "WAIT": "Waiting for deposits confirmation", - "WAITING_SELLER": "Waiting for delivery", - "COMPLETED": "Contract completed", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned", - "WAITING_CANCEL": "Waiting for contract cancellation", - "BEING_CANCELLED": "Cancellation in progress", - "CANCELLED": "Contract canceled", - "IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract", - "EXPIRED": "The contract proposal has expired" - } - } - }, - "PURCHASE": { - "DESCRIPTION": "Description", - "SELLER": "Seller", - "AMOUNT": "Amount", - "YOUR_DEPOSIT": "Your deposit", - "SELLER_DEPOSIT": "Seller deposit", - "BUYER_DEPOSIT": "Buyer deposit", - "SAME_AMOUNT": "Same amount", - "COMMENT": "Comment", - "DETAILS": "Additional details", - "SEND_BUTTON": "Send", - "FORM_ERRORS": { - "DESC_REQUIRED": "Description required", - "DESC_MAXIMUM": "Maximum field length reached", - "SELLER_REQUIRED": "Address required", - "SELLER_NOT_VALID": "Invalid address", - "ALIAS_NOT_VALID": "Invalid alias", - "AMOUNT_REQUIRED": "Amount required", - "AMOUNT_ZERO": "Amount cannot be zero", - "YOUR_DEPOSIT_REQUIRED": "Deposit required", - "SELLER_DEPOSIT_REQUIRED": "Seller deposit required", - "SELLER_SAME": "Use separate account", - "COMMENT_MAXIMUM": "Maximum field length reached" - }, - "PROGRESS_NEW": "New purchase", - "PROGRESS_WAIT": "Awaiting reply", - "PROGRESS_RECEIVE": "Reply received", - "PROGRESS_COMPLETE": "Completed", - "FEE": "Fee", - "PAYMENT": "Payment ID", - "STATUS_MESSAGES": { - "NEW_PURCHASE": "New purchase", - "WAITING_SELLER": "Waiting for response", - "WAITING_BUYER": "Contract proposal received", - "WAITING_CONFIRMATION": "Waiting for deposits confirmation", - "WAITING_DELIVERY": "Waiting for delivery", - "COMPLETED": "Contract completed", - "IGNORED_BUYER": "Contract proposal ignored", - "IGNORED_SELLER": "The seller ignored your contract proposal", - "PROPOSAL_CANCEL_SELLER": "Cancellation request sent", - "PROPOSAL_CANCEL_BUYER": "Cancellation request received", - "BEING_CANCELLED": "Cancellation in progress", - "IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract", - "IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored", - "CANCELLED": "Contract canceled", - "EXPIRED": "Contract proposal expired", - "NOT_RECEIVED": "Delivery failed", - "NULLIFIED": "All deposits burned" - }, - "ACCEPT_STATE_WAIT_BIG": "Contract started", - "IGNORED_ACCEPT": "Contract proposal ignored", - "BURN_PROPOSAL": "Deposits burned", - "SUCCESS_FINISH_PROPOSAL": "Contract completed", - "SEND_CANCEL_PROPOSAL": "Cancellation request sent", - "IGNORED_CANCEL": "Contract cancellation proposal ignored", - "DEALS_CANCELED_WAIT": "Cancellation in progress", - "WAITING_TIME": "Response time", - "NEED_MONEY": "Insufficient funds", - "BUTTON_MAKE_PLEDGE": "Accept and make deposit", - "BUTTON_IGNORE": "Ignore and hide offer", - "BUTTON_NULLIFY": "Terminate and burn deposits", - "BUTTON_RECEIVED": "Complete and release deposits", - "BUTTON_CANCEL_BUYER": "Cancel and return deposits", - "BUTTON_NOT_CANCEL": "Ignore request", - "BUTTON_CANCEL_SELLER": "Confirm and return deposits", - "HOUR": "hour", - "HOURS": "hours", - "CANCEL": "Cancel", - "NULLIFY_QUESTION": "Are you sure you want to burn both deposits?", - "BUTTON_NULLIFY_SHORT": "Burn", - "WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?" - }, - "MESSAGES": { - "ADDRESS": "Address", - "MESSAGE": "Message", - "SEND_PLACEHOLDER": "Type a message...", - "SEND_BUTTON": "Send" - }, - "MODALS": { - "ERROR": "Error", - "SUCCESS": "Success", - "INFO": "Information", - "OK": "OK" - }, - "CONFIRM": { - "BUTTON_CONFIRM": "Send", - "BUTTON_CANCEL": "Cancel", - "TITLE": "Confirm transaction", - "MESSAGE": { - "SEND": "Send", - "FROM": "From", - "TO": "To", - "COMMENT": "Comment" - } - }, - "STAKING": { - "TITLE": "Staking", - "TITLE_PENDING": "Pending", - "TITLE_TOTAL": "Total", - "TITLE_PERIOD": "Time period:", - "PERIOD": { - "WEEK1": "1 week", - "WEEK2": "2 week", - "MONTH1": "1 month", - "MONTH3": "3 month", - "MONTH6": "6 month", - "YEAR": "1 year", - "ALL": "All" - }, - "TITLE_GROUP": "Group:", - "GROUP": { - "DAY": "day", - "WEEK": "week", - "MONTH": "month" - }, - "SWITCH": { - "ON": "ON", - "OFF": "OFF" - } - }, - "CONTACTS": { - "TITLE": "Contact list", - "IMPORT_EXPORT": "Import or export contacts", - "IMPORT": "Import", - "EXPORT": "Export", - "ADD": "Add/edit contact", - "SEND": "Send", - "SEND_FROM": "Send from", - "SEND_TO": "To", - "OPEN_ADD_WALLET": "Open/Add wallet", - "COPY": "- Copy", - "TABLE": { - "NAME": "Name", - "ALIAS": "Alias", - "ADDRESS": "Address", - "NOTES": "Notes", - "EMPTY": "Contact list is empty" - }, - "FORM": { - "NAME": "Name", - "ADDRESS": "Address", - "NOTES": "Notes" - }, - "FORM_ERRORS": { - "NAME_REQUIRED": "Name is required", - "NAME_DUBLICATED": "Name is dublicated", - "ADDRESS_REQUIRED": "Address is required", - "ADDRESS_NOT_VALID": "Address not valid", - "SET_MASTER_PASSWORD": "Set master password", - "ADDRESS_DUBLICATED": "Address is dublicated", - "MAX_LENGTH": "Maximum notes length reached", - "NAME_LENGTH": "The name must be 4-25 characters long" - }, - "BUTTON": { - "SEND": "Send", - "EDIT": "Edit", - "DELETE": "Delete", - "ADD": "Add contact", - "ADD_EDIT": "Add/Save", - "GO_TO_WALLET": "Go to wallet", - "IMPORT_EXPORT": "Import/export" - }, - "SUCCESS_SENT": "Contact added", - "SUCCESS_SAVE": "Contact is edited", - "SUCCESS_IMPORT": "Contacts are imported", - "SUCCESS_EXPORT": "Contacts are exported", - "ERROR_IMPORT": "Error is occured while reading file!", - "ERROR_TYPE_FILE": "Please import valid .csv file", - "ERROR_EXPORT": "Invalid file type. Save file as .csv", - "ERROR_EMPTY_LIST": "Contact list is empty", - "ERROR_IMPORT_EMPTY": "File is empty" - }, - "ERRORS": { - "NO_MONEY": "Not enough money", - "NOT_ENOUGH_MONEY": "Insufficient funds in account", - "CORE_BUSY": "Internal error: core is busy", - "DAEMON_BUSY": "Internal error: daemon is busy", - "NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet", - "NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with", - "TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions", - "TRANSFER_ATTEMPT": "There is no connection to Zano network", - "ACCESS_DENIED": "Access denied", - "TRANSACTION_ERROR": "Error. Transaction not completed.", - "BAD_ARG": "Invalid argument", - "WALLET_WRONG_ID": "Invalid wallet ID", - "WRONG_PASSWORD": "Invalid password", - "FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain", - "FILE_NOT_FOUND": "File not found", - "FILE_EXIST": "A file with that name already exists. Enter another name to save the file under", - "FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.", - "TX_TYPE_NORMAL": "Error. The payment from the wallet", - "TX_TYPE_NORMAL_TO": "to", - "TX_TYPE_NORMAL_END": "was not completed.", - "TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe", - "TX_TYPE_NEW_ALIAS_END": "Please try again.", - "TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe", - "TX_TYPE_COIN_BASE": "Error. The payment was not completed." - }, - "CONTEXT_MENU": { - "COPY": "copy", - "PASTE": "paste", - "SELECT": "select all" - }, - "BACKEND_LOCALIZATION": { - "QUIT": "Quit", - "IS_RECEIVED": "", - "IS_CONFIRMED": "", - "INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)", - "INCOME_TRANSFER_CONFIRMED": "Payment received", - "MINED": "Mined", - "LOCKED": "Blocked", - "IS_MINIMIZE": "Zano application is minimized to the system tray", - "RESTORE": "You can recover it by clicking or using the context menu", - "TRAY_MENU_SHOW": "Resize", - "TRAY_MENU_MINIMIZE": "Minimize" - } -} diff --git a/src/gui/qt-daemon/html/assets/icons/account.svg b/src/gui/qt-daemon/html/assets/icons/account.svg deleted file mode 100644 index b7b746fa..00000000 --- a/src/gui/qt-daemon/html/assets/icons/account.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/addnew.svg b/src/gui/qt-daemon/html/assets/icons/addnew.svg deleted file mode 100644 index 89bc1ca5..00000000 --- a/src/gui/qt-daemon/html/assets/icons/addnew.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/alert.svg b/src/gui/qt-daemon/html/assets/icons/alert.svg deleted file mode 100644 index b549fd95..00000000 --- a/src/gui/qt-daemon/html/assets/icons/alert.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/arrow-down.svg b/src/gui/qt-daemon/html/assets/icons/arrow-down.svg deleted file mode 100644 index d24a3aeb..00000000 --- a/src/gui/qt-daemon/html/assets/icons/arrow-down.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/arrow-right.svg b/src/gui/qt-daemon/html/assets/icons/arrow-right.svg deleted file mode 100644 index bd4269b3..00000000 --- a/src/gui/qt-daemon/html/assets/icons/arrow-right.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/arrow-up.svg b/src/gui/qt-daemon/html/assets/icons/arrow-up.svg deleted file mode 100644 index f6515fdd..00000000 --- a/src/gui/qt-daemon/html/assets/icons/arrow-up.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/back.svg b/src/gui/qt-daemon/html/assets/icons/back.svg deleted file mode 100644 index 0b00a610..00000000 --- a/src/gui/qt-daemon/html/assets/icons/back.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/close-wallet-blue.svg b/src/gui/qt-daemon/html/assets/icons/close-wallet-blue.svg deleted file mode 100644 index 080f7521..00000000 --- a/src/gui/qt-daemon/html/assets/icons/close-wallet-blue.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/close-wallet.svg b/src/gui/qt-daemon/html/assets/icons/close-wallet.svg deleted file mode 100644 index 8a9ba99e..00000000 --- a/src/gui/qt-daemon/html/assets/icons/close-wallet.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/close.svg b/src/gui/qt-daemon/html/assets/icons/close.svg deleted file mode 100644 index d39bed6d..00000000 --- a/src/gui/qt-daemon/html/assets/icons/close.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/complete-testwallet.svg b/src/gui/qt-daemon/html/assets/icons/complete-testwallet.svg deleted file mode 100644 index b5d04868..00000000 --- a/src/gui/qt-daemon/html/assets/icons/complete-testwallet.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/contacts.svg b/src/gui/qt-daemon/html/assets/icons/contacts.svg deleted file mode 100644 index e05516ae..00000000 --- a/src/gui/qt-daemon/html/assets/icons/contacts.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/contracts.svg b/src/gui/qt-daemon/html/assets/icons/contracts.svg deleted file mode 100644 index aa985ac7..00000000 --- a/src/gui/qt-daemon/html/assets/icons/contracts.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/copy.svg b/src/gui/qt-daemon/html/assets/icons/copy.svg deleted file mode 100644 index 4ec2ff7d..00000000 --- a/src/gui/qt-daemon/html/assets/icons/copy.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/delete.svg b/src/gui/qt-daemon/html/assets/icons/delete.svg deleted file mode 100644 index a057a1dc..00000000 --- a/src/gui/qt-daemon/html/assets/icons/delete.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/details-settings.svg b/src/gui/qt-daemon/html/assets/icons/details-settings.svg deleted file mode 100644 index 11803ccf..00000000 --- a/src/gui/qt-daemon/html/assets/icons/details-settings.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/details.svg b/src/gui/qt-daemon/html/assets/icons/details.svg deleted file mode 100644 index eb12cde2..00000000 --- a/src/gui/qt-daemon/html/assets/icons/details.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/edit.svg b/src/gui/qt-daemon/html/assets/icons/edit.svg deleted file mode 100644 index eb12cde2..00000000 --- a/src/gui/qt-daemon/html/assets/icons/edit.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/history.svg b/src/gui/qt-daemon/html/assets/icons/history.svg deleted file mode 100644 index c9945561..00000000 --- a/src/gui/qt-daemon/html/assets/icons/history.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/howto.svg b/src/gui/qt-daemon/html/assets/icons/howto.svg deleted file mode 100644 index 92362f78..00000000 --- a/src/gui/qt-daemon/html/assets/icons/howto.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/icons.json b/src/gui/qt-daemon/html/assets/icons/icons.json deleted file mode 100644 index 1ec5de9c..00000000 --- a/src/gui/qt-daemon/html/assets/icons/icons.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "logo": "", - "contacts": "", - "settings": "", - "exit": "", - "history": "", - "send": "", - "receive": "", - "contracts": "", - "messages": "", - "staking": "" -} diff --git a/src/gui/qt-daemon/html/assets/icons/import-export.svg b/src/gui/qt-daemon/html/assets/icons/import-export.svg deleted file mode 100644 index 48fd7073..00000000 --- a/src/gui/qt-daemon/html/assets/icons/import-export.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/info.svg b/src/gui/qt-daemon/html/assets/icons/info.svg deleted file mode 100644 index 083cdf38..00000000 --- a/src/gui/qt-daemon/html/assets/icons/info.svg +++ /dev/null @@ -1 +0,0 @@ -info \ No newline at end of file diff --git a/src/gui/qt-daemon/html/assets/icons/lock-transaction.svg b/src/gui/qt-daemon/html/assets/icons/lock-transaction.svg deleted file mode 100644 index 49a2e523..00000000 --- a/src/gui/qt-daemon/html/assets/icons/lock-transaction.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/lock.svg b/src/gui/qt-daemon/html/assets/icons/lock.svg deleted file mode 100644 index 021aae19..00000000 --- a/src/gui/qt-daemon/html/assets/icons/lock.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/logo.svg b/src/gui/qt-daemon/html/assets/icons/logo.svg deleted file mode 100644 index f99a43f5..00000000 --- a/src/gui/qt-daemon/html/assets/icons/logo.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/logout.svg b/src/gui/qt-daemon/html/assets/icons/logout.svg deleted file mode 100644 index b2f23e62..00000000 --- a/src/gui/qt-daemon/html/assets/icons/logout.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - exit - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/message.svg b/src/gui/qt-daemon/html/assets/icons/message.svg deleted file mode 100644 index 544888cc..00000000 --- a/src/gui/qt-daemon/html/assets/icons/message.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/modal-alert.svg b/src/gui/qt-daemon/html/assets/icons/modal-alert.svg deleted file mode 100644 index bb5c7d02..00000000 --- a/src/gui/qt-daemon/html/assets/icons/modal-alert.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/modal-info.svg b/src/gui/qt-daemon/html/assets/icons/modal-info.svg deleted file mode 100644 index 0119fcc7..00000000 --- a/src/gui/qt-daemon/html/assets/icons/modal-info.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/modal-success.svg b/src/gui/qt-daemon/html/assets/icons/modal-success.svg deleted file mode 100644 index 60ad5a5d..00000000 --- a/src/gui/qt-daemon/html/assets/icons/modal-success.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/new.svg b/src/gui/qt-daemon/html/assets/icons/new.svg deleted file mode 100644 index 89622385..00000000 --- a/src/gui/qt-daemon/html/assets/icons/new.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/not-allowed.svg b/src/gui/qt-daemon/html/assets/icons/not-allowed.svg deleted file mode 100644 index 4fdfa78e..00000000 --- a/src/gui/qt-daemon/html/assets/icons/not-allowed.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/purchase.svg b/src/gui/qt-daemon/html/assets/icons/purchase.svg deleted file mode 100644 index 46e904fc..00000000 --- a/src/gui/qt-daemon/html/assets/icons/purchase.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/receive-green.svg b/src/gui/qt-daemon/html/assets/icons/receive-green.svg deleted file mode 100644 index 1db438b2..00000000 --- a/src/gui/qt-daemon/html/assets/icons/receive-green.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/receive.svg b/src/gui/qt-daemon/html/assets/icons/receive.svg deleted file mode 100644 index fd7e85a9..00000000 --- a/src/gui/qt-daemon/html/assets/icons/receive.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/safety.svg b/src/gui/qt-daemon/html/assets/icons/safety.svg deleted file mode 100644 index f313f3af..00000000 --- a/src/gui/qt-daemon/html/assets/icons/safety.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/secured.svg b/src/gui/qt-daemon/html/assets/icons/secured.svg deleted file mode 100644 index dc1d801c..00000000 --- a/src/gui/qt-daemon/html/assets/icons/secured.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/sell.svg b/src/gui/qt-daemon/html/assets/icons/sell.svg deleted file mode 100644 index f28f0a20..00000000 --- a/src/gui/qt-daemon/html/assets/icons/sell.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/send-red.svg b/src/gui/qt-daemon/html/assets/icons/send-red.svg deleted file mode 100644 index d96d08f4..00000000 --- a/src/gui/qt-daemon/html/assets/icons/send-red.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/send.svg b/src/gui/qt-daemon/html/assets/icons/send.svg deleted file mode 100644 index 0c7e6136..00000000 --- a/src/gui/qt-daemon/html/assets/icons/send.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/settings.svg b/src/gui/qt-daemon/html/assets/icons/settings.svg deleted file mode 100644 index ce87d8bc..00000000 --- a/src/gui/qt-daemon/html/assets/icons/settings.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - settings - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/staking.svg b/src/gui/qt-daemon/html/assets/icons/staking.svg deleted file mode 100644 index 2f4337f6..00000000 --- a/src/gui/qt-daemon/html/assets/icons/staking.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/time.svg b/src/gui/qt-daemon/html/assets/icons/time.svg deleted file mode 100644 index 1e3108eb..00000000 --- a/src/gui/qt-daemon/html/assets/icons/time.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/unlock-transaction.svg b/src/gui/qt-daemon/html/assets/icons/unlock-transaction.svg deleted file mode 100644 index bbbc27ad..00000000 --- a/src/gui/qt-daemon/html/assets/icons/unlock-transaction.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/unsecured.svg b/src/gui/qt-daemon/html/assets/icons/unsecured.svg deleted file mode 100644 index 1b9b18d7..00000000 --- a/src/gui/qt-daemon/html/assets/icons/unsecured.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/update-alert.svg b/src/gui/qt-daemon/html/assets/icons/update-alert.svg deleted file mode 100644 index 22fa01c7..00000000 --- a/src/gui/qt-daemon/html/assets/icons/update-alert.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/assets/icons/update.svg b/src/gui/qt-daemon/html/assets/icons/update.svg deleted file mode 100644 index c612c84e..00000000 --- a/src/gui/qt-daemon/html/assets/icons/update.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/src/gui/qt-daemon/html/assets/images/Loading.png b/src/gui/qt-daemon/html/assets/images/Loading.png deleted file mode 100644 index 694d23306fbcf5cb6b3ebe2ddcaf4f4f09adf8ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3245 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 diff --git a/src/gui/qt-daemon/html/assets/images/background-dark.png b/src/gui/qt-daemon/html/assets/images/background-dark.png deleted file mode 100644 index 83290ff91cdaa0ef468e11343ebf631083cd4e0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34583 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

    Iz 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�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 Y0ctXS;%ku-I{*Lx07*qoM6N<$g8B^n5&!@I diff --git a/src/gui/qt-daemon/html/assets/images/qr-code.png b/src/gui/qt-daemon/html/assets/images/qr-code.png deleted file mode 100644 index 4827e3296ee47da0a24422f31987051796c7eaf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5337 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 airTyM9P6$Z!3!)|lIds|Krw2zk^cj>LtSV9 diff --git a/src/gui/qt-daemon/html/assets/scss/base/_base.scss b/src/gui/qt-daemon/html/assets/scss/base/_base.scss deleted file mode 100644 index 7bbd92aa..00000000 --- a/src/gui/qt-daemon/html/assets/scss/base/_base.scss +++ /dev/null @@ -1,1045 +0,0 @@ -.app-content { - - .preloader { - - .loading-bar { - - @include themify($themes) { - background-color: themed(progressBarFullBackgroundColor); - } - } - } -} - -button { - border: none; - font-family: OpenSans, sans-serif; - font-size: 1.5rem; - font-weight: 600; - outline: none; - padding: 0 1rem; - height: 4.2rem; - - &:disabled:not(.transparent-button), - &.blue-button_reset{ - - @include themify($themes) { - background-color: themed(disabledButtonBackgroundColor); - color: themed(alternativeTextColor); - } - - &:hover { - - @include themify($themes) { - background-color: themed(disabledButtonHoverColor); - } - } - - &:focus { - - @include themify($themes) { - background-color: themed(disabledButtonFocusColor); - } - } - } - - &.blue-button:not(:disabled) { - - @include themify($themes) { - background-color: themed(blueButtonBackgroundColor); - color: themed(alternativeTextColor); - } - - &:hover { - - @include themify($themes) { - background-color: themed(blueButtonHoverColor); - } - } - - &:focus { - - @include themify($themes) { - background-color: themed(blueButtonFocusColor); - } - } - } - - &.green-button:not(:disabled) { - - @include themify($themes) { - background-color: themed(greenButtonBackgroundColor); - color: themed(alternativeTextColor); - } - - &:hover { - - @include themify($themes) { - background-color: themed(greenButtonHoverColor); - } - } - - &:focus { - - @include themify($themes) { - background-color: themed(greenButtonFocusColor); - } - } - } - - &.turquoise-button:not(:disabled) { - - @include themify($themes) { - background-color: themed(turquoiseButtonBackgroundColor); - color: themed(alternativeTextColor); - } - - &:hover { - - @include themify($themes) { - background-color: themed(turquoiseButtonHoverColor); - } - } - - &:focus { - - @include themify($themes) { - background-color: themed(turquoiseButtonFocusColor); - } - } - } - - &.transparent-button { - display: flex; - align-items: center; - justify-content: center; - - @include themify($themes) { - background-color: transparent; - border: 0.2rem solid themed(transparentButtonBorderColor); - color: themed(mainTextColor); - } - - .icon { - - @include themify($themes) { - background-color: themed(mainTextColor); - } - - margin-right: 1rem; - mask: url(~src/assets/icons/complete-testwallet.svg) no-repeat center; - width: 1.7rem; - height: 1.7rem; - } - } - -} - -.input-block { - display: flex; - flex-direction: column; - align-items: flex-start; - margin-bottom: 0.4rem; - - .wrap-label { - display: flex; - align-items: center; - justify-content: flex-start; - min-height: 2.4rem; - } - - label { - font-size: 1.3rem; - line-height: 2.4rem; - - @include themify($themes) { - color: themed(optionalTextColor); - } - } - - input[type='text'], input[type='password'], select { - border: none; - font-size: 1.4rem; - outline: none; - padding: 0 1rem; - width: 100%; - height: 4.2rem; - - @include themify($themes) { - background-color: themed(inputBackgroundColor); - color: themed(mainTextColor); - } - } - - &.textarea { - height: auto; - - textarea { - font-family: OpenSans, sans-serif; - border: none; - font-size: 1.4rem; - outline: none; - padding: 1rem; - width: 100%; - min-width: 100%; - height: 100%; - min-height: 7.5rem; - max-height: 7.5rem; - overflow: auto; - resize: none; - - @include themify($themes) { - background-color: themed(inputBackgroundColor); - color: themed(mainTextColor); - } - } - } - - .error-block { - font-size: 1rem; - line-height: 1.4rem; - align-self: flex-end; - text-align: right; - - @include themify($themes) { - color: themed(redTextColor); - } - } - .success-block { - font-size: 1rem; - line-height: 1.4rem; - align-self: flex-end; - text-align: right; - - @include themify($themes) { - color: themed(greenTextColor); - } - } -} - -.error-text { - @include themify($themes) { - color: themed(redTextColor); - } -} - -input[type='radio'].style-radio { - - & + label { - display: flex; - align-items: center; - cursor: pointer; - font-weight: 400; - padding-left: 2.4rem; - - @include themify($themes) { - color: themed(optionalTextColor); - } - - @include unSelect; - } - - &:not(checked) { - position: absolute; - opacity: 0; - - & + label { - position: relative; - } - - & + label:before { - content: ''; - position: absolute; - top: 0.7rem; - left: 0; - background: transparent; - border-radius: 50%; - width: 1.4rem; - height: 1.4rem; - - @include themify($themes) { - border: 0.1rem solid themed(blueTextColor); - } - } - - & + label:after { - content: ''; - position: absolute; - top: 1rem; - left: 0.3rem; - border-radius: 50%; - opacity: 0; - width: 0.8rem; - height: 0.8rem; - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } - - &:checked { - - & + label:after { - opacity: 1; - } - } -} - -input[type='checkbox'].style-checkbox { - - & + label { - display: flex; - align-items: center; - cursor: pointer; - font-weight: 400; - padding-left: 3.6rem; - - @include themify($themes) { - color: themed(optionalTextColor); - } - - @include unSelect; - } - - &:not(checked) { - position: absolute; - top: 50%; - left: 1.6rem; - transform: translateY(-50%); - visibility: hidden; - - & + label { - position: relative; - } - - & + label:before { - content: ''; - position: absolute; - top: 50%; - left: 1.6rem; - transform: translateY(-50%); - background: transparent; - width: 1.4rem; - height: 1.4rem; - - @include themify($themes) { - border: 0.1rem solid themed(blueTextColor); - } - } - } - - &:checked { - - & + label:before { - background: url(~src/assets/icons/complete-testwallet.svg); - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } -} - -.switch { - - @include themify($themes) { - background-color: themed(switchBackgroundColor); - } - - .circle { - - &.on { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - - &.off { - - @include themify($themes) { - background-color: themed(optionalTextColor); - } - } - } -} - -.table-tooltip { - padding: 1rem 2rem; - - @include themify($themes) { - background: themed(tooltipBackgroundColor); - box-shadow: themed(tooltipShadow); - color: themed(mainTextColor); - } - - .tooltip-inner { - font-size: 1.3rem; - line-height: 1.8rem; - white-space: pre-wrap; - } - - &.ng-tooltip-top { - margin-top: -1rem; - - &:after { - content: ""; - position: absolute; - bottom: -1rem; - left: calc(50% - 0.5rem); - border-width: 0.5rem; - border-style: solid; - - @include themify($themes) { - border-color: themed(tooltipBackgroundColor) transparent transparent transparent; - } - } - } - - &.ng-tooltip-top-left { - margin-top: -1rem; - - &:after { - content: ""; - position: absolute; - bottom: -1rem; - left: 0.7rem; - border-width: 0.5rem; - border-style: solid; - - @include themify($themes) { - border-color: themed(tooltipBackgroundColor) transparent transparent themed(tooltipBackgroundColor); - } - } - } - - &.ng-tooltip-top-right { - margin-top: -1rem; - - &:after { - content: ""; - position: absolute; - bottom: -1rem; - right: 0.7rem; - border-width: 0.5rem; - border-style: solid; - - @include themify($themes) { - border-color: themed(tooltipBackgroundColor) themed(tooltipBackgroundColor) transparent transparent; - } - } - } - - &.ng-tooltip-bottom { - margin-top: 1rem; - - &:before { - content: ""; - position: absolute; - top: -1rem; - left: calc(50% - 0.5rem); - border-width: 0.5rem; - border-style: solid; - - @include themify($themes) { - border-color: transparent transparent themed(tooltipBackgroundColor) transparent; - } - } - } - - &.ng-tooltip-bottom-left { - margin-top: 1rem; - - &:before { - content: ""; - position: absolute; - top: -1rem; - left: 0.7rem; - border-width: 0.5rem; - border-style: solid; - - @include themify($themes) { - border-color: transparent transparent themed(tooltipBackgroundColor) themed(tooltipBackgroundColor); - } - } - } - - &.ng-tooltip-bottom-right { - margin-top: 1rem; - - &:before { - content: ""; - position: absolute; - top: -1rem; - right: 0.7rem; - border-width: 0.5rem; - border-style: solid; - - @include themify($themes) { - border-color: transparent themed(tooltipBackgroundColor) themed(tooltipBackgroundColor) transparent; - } - } - } - - &.ng-tooltip-left { - margin-left: -1rem; - - &:after { - content: ""; - position: absolute; - top: calc(50% - 0.5rem); - right: -1rem; - border-width: 0.5rem; - border-style: solid; - - @include themify($themes) { - border-color: transparent transparent transparent themed(tooltipBackgroundColor); - } - } - } - - &.ng-tooltip-right { - margin-left: 1rem; - - &:before { - content: ""; - position: absolute; - top: calc(50% - 0.5rem); - left: -1rem; - border-width: 0.5rem; - border-style: solid; - - @include themify($themes) { - border-color: transparent themed(tooltipBackgroundColor) transparent transparent; - } - } - } -} - -.table-tooltip-dimensions { - - .tooltip-inner { - overflow: auto; - max-width: 20rem; - max-height: 10rem; - } -} - -.balance-tooltip { - padding: 1.3rem; - - @include themify($themes) { - background: themed(tooltipBackgroundColor); - box-shadow: themed(tooltipShadow); - color: themed(mainTextColor); - } - - .tooltip-inner { - display: flex; - flex-direction: column; - font-size: 1.3rem; - - .available { - margin-bottom: 1.7rem; - - b { - font-weight: 600; - } - } - - .locked { - margin-bottom: 0.7rem; - - b { - font-weight: 600; - } - } - - .link { - cursor: pointer; - - @include themify($themes) { - color: themed(blueTextColor); - } - } - } - - &.ng-tooltip-top { - margin-top: -1rem; - } - - &.ng-tooltip-bottom { - margin-top: 1rem; - } - - &.ng-tooltip-left { - margin-left: -1rem; - } - - &.ng-tooltip-right { - margin-left: 1rem; - } -} - -.account-tooltip { - - .tooltip-inner { - word-break: break-word; - max-width: 18rem; - } -} - -.comment-tooltip { - - .tooltip-inner { - overflow: auto; - word-break: break-word; - max-width: 50rem; - max-height: 25rem; - } -} - -.update-tooltip { - padding: 1.5rem; - - @include themify($themes) { - background: themed(tooltipBackgroundColor); - box-shadow: themed(tooltipShadow); - color: themed(mainTextColor); - } - - &.important { - - @include themify($themes) { - background: themed(tooltipImportantBackgroundColor); - color: themed(accountMainTextColor); - } - - &.ng-tooltip-left-bottom { - - &:after { - - @include themify($themes) { - border-color: transparent transparent themed(tooltipImportantBackgroundColor) themed(tooltipImportantBackgroundColor); - } - } - } - - &.ng-tooltip-right-bottom { - - &:before { - - @include themify($themes) { - border-color: transparent themed(tooltipImportantBackgroundColor) themed(tooltipImportantBackgroundColor) transparent; - } - } - } - } - - &.critical { - padding: 2.5rem; - - @include themify($themes) { - background: themed(tooltipCriticalBackgroundColor); - color: themed(accountMainTextColor); - } - - .tooltip-inner { - display: flex; - flex-direction: column; - align-items: center; - } - - &.ng-tooltip-left-bottom { - - &:after { - - @include themify($themes) { - border-color: transparent transparent themed(tooltipCriticalBackgroundColor) themed(tooltipCriticalBackgroundColor); - } - } - } - - &.ng-tooltip-right-bottom { - - &:before { - - @include themify($themes) { - border-color: transparent themed(tooltipCriticalBackgroundColor) themed(tooltipCriticalBackgroundColor) transparent; - } - } - } - } - - .tooltip-inner { - font-size: 1.3rem; - line-height: 1.8rem; - white-space: pre-wrap; - - .standard-update { - font-size: 1.5rem; - line-height: 2.7rem; - - @include themify($themes) { - color: themed(blueTextColor); - } - } - - .important-update { - font-size: 1.5rem; - line-height: 2.7rem; - - @include themify($themes) { - color: themed(tooltipImportantTextColor); - } - } - - .critical-update { - font-size: 1.5rem; - line-height: 2.7rem; - text-align: center; - } - - .wrong-time { - font-size: 1.5rem; - line-height: 2.7rem; - - @include themify($themes) { - color: themed(tooltipImportantTextColor); - } - } - - .icon { - margin: 1.5rem 0; - width: 5rem; - height: 5rem; - - @include themify($themes) { - background-color: themed(tooltipCriticalTextColor); - } - } - } - - &.ng-tooltip-left-bottom { - margin-left: -1.5rem; - - &:after { - content: ""; - position: absolute; - bottom: 0.6rem; - right: -1rem; - border-width: 0.5rem; - border-style: solid; - - @include themify($themes) { - border-color: transparent transparent themed(tooltipBackgroundColor) themed(tooltipBackgroundColor); - } - } - } - - &.ng-tooltip-right-bottom { - margin-left: 1.5rem; - - &:before { - content: ""; - position: absolute; - bottom: 0.6rem; - left: -1rem; - border-width: 0.5rem; - border-style: solid; - - @include themify($themes) { - border-color: transparent themed(tooltipBackgroundColor) themed(tooltipBackgroundColor) transparent; - } - } - } -} - -.ngx-contextmenu { - - .dropdown-menu { - border: none; - padding: 0; - - @include themify($themes) { - background-color: themed(chartOptionsBackgroundColor); - box-shadow: themed(tooltipShadow); - } - } - - li { - display: block; - font-family: OpenSans, sans-serif; - font-size: 1.3rem; - text-transform: uppercase; - text-align: center; - } - - a { - display: block; - padding: 0.5em 1em; - - @include themify($themes) { - color: themed(mainTextColor); - } - - &:hover { - - @include themify($themes) { - background-color: themed(chartOptionsHoverColor); - color: themed(mainTextColor); - } - } - } -} - -.ng-select { - - &.custom-select { - width: 100%; - - &.ng-select-single { - .ng-select-container { - .ng-value-container { - .ng-value { - line-height: 1.8rem; - } - } - } - } - - .ng-select-container { - border: none; - border-radius: 0; - cursor: pointer; - font-size: 1.4rem; - outline: none; - padding: 0 1rem; - height: 4.2rem; - - @include themify($themes) { - background-color: themed(inputBackgroundColor); - color: themed(mainTextColor); - } - - .ng-value-container { - padding: 0; - - .ng-input { - top: auto; - } - } - } - - .ng-dropdown-panel { - border: none; - - @include themify($themes) { - background-color: themed(inputBackgroundColor); - } - - .ng-dropdown-panel-items { - - .ng-option { - font-size: 1.4rem; - padding: 1rem; - - @include themify($themes) { - background-color: themed(inputBackgroundColor); - color: themed(mainTextColor); - } - - &.ng-option-marked { - - @include themify($themes) { - background-color: themed(selectHoverColor); - color: themed(mainTextColor); - } - } - - &.ng-option-selected { - - @include themify($themes) { - background-color: themed(selectSelectedColor); - color: themed(mainTextColor); - } - } - } - - &::-webkit-scrollbar { - background-color: transparent; - cursor: default; - width: 1rem; - height: 1rem; - } - - &::-webkit-scrollbar-track { - background: transparent; - } - - &::-webkit-scrollbar-thumb { - background-color: #556576; - background-clip: padding-box; - border: 0.25rem solid transparent; - border-radius: 0.5rem; - } - - &::-webkit-scrollbar-thumb:hover { - background-color: #556576; - } - } - } - } -} - -app-modal-container, app-confirm-modal { - - .modal { - - @include themify($themes) { - background: themed(modalBackground); - color: themed(mainTextColor); - } - - .content { - - .icon.error { - - @include themify($themes) { - background-color: themed(redTextColor); - } - } - - .icon.success { - - @include themify($themes) { - background-color: themed(greenTextColor); - } - } - - .icon.info { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } - - .action-button { - - @include themify($themes) { - background-color: themed(blueTextColor); - color: themed(alternativeTextColor); - } - } - - .close-button { - - .icon { - - @include themify($themes) { - background-color: themed(closeButtonColor); - } - } - } - } -} - -app-transaction-details { - - .table { - - @include themify($themes) { - border-top: 0.2rem solid themed(transparentButtonBorderColor); - } - - .row { - - .cell { - - &.label { - - @include themify($themes) { - color: themed(optionalTextColor); - } - } - - &.value { - - @include themify($themes) { - color: themed(mainTextColor); - } - } - - &.key-value { - - @include themify($themes) { - color: themed(blueTextColor); - } - } - } - } - } -} - -app-progress-container { - - .progress-bar-container { - - @include themify($themes) { - color: themed(mainTextColor); - } - - .progress-bar { - - @include themify($themes) { - background-color: themed(progressBarBackgroundColor); - } - - .progress-bar-full { - - @include themify($themes) { - background-color: themed(progressBarFullBackgroundColor); - } - } - } - } -} - -app-open-wallet-modal { - - .modal { - - @include themify($themes) { - background: themed(modalBackground); - color: themed(mainTextColor); - } - } -} - -app-send-modal { - .modal { - - @include themify($themes) { - background: themed(modalBackground); - color: themed(mainTextColor); - } - - .title { - - @include themify($themes) { - border-bottom: 0.2rem solid themed(transparentButtonBorderColor); - } - - } - - .action-button { - - @include themify($themes) { - background-color: themed(blueTextColor); - color: themed(alternativeTextColor); - } - } - } -} \ No newline at end of file diff --git a/src/gui/qt-daemon/html/assets/scss/base/_mixins.scss b/src/gui/qt-daemon/html/assets/scss/base/_mixins.scss deleted file mode 100644 index 9b355f0f..00000000 --- a/src/gui/qt-daemon/html/assets/scss/base/_mixins.scss +++ /dev/null @@ -1,98 +0,0 @@ -@mixin text-truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -@mixin textWrap { - white-space: normal; - overflow-wrap: break-word; - word-wrap: break-word; - word-break: break-all; - line-break: strict; - -webkit-hyphens: auto; - -ms-hyphens: auto; - hyphens: auto; -} -@mixin coverBox { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -@mixin abs ($top: auto, $right: auto, $bottom: auto, $left: auto) { - top: $top; - right: $right; - bottom: $bottom; - left: $left; - position: absolute; -} -@mixin coverImg { - background-repeat: no-repeat; - -webkit-background-size: cover; - -o-background-size: cover; - background-size: cover; - background-position: 50% 50%; -} -@mixin valingBox { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); -} -@mixin unSelect { - -webkit-touch-collout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -@mixin max1199 { // maket 1171 - @media (max-width: 1199px) { @content; } -} -@mixin max1170 { // makets 992 - @media (max-width: 1170px) { @content; } -} -@mixin max991 { // makets 762 - @media (max-width: 991px) { @content; } -} -@mixin max761 { // makets 576 - @media (max-width: 761px) { @content; } -} -@mixin max575 { // makets 400 - @media (max-width: 575px) { @content; } -} -@mixin mobile { - @media (max-width: 399px) { @content; } -} -@mixin icoCenter { - background-repeat: no-repeat; - background-position: center center; -} -@mixin pseudo ($display: block, $pos: absolute, $content: ''){ - content: $content; - display: $display; - position: $pos; -} - -/* -* Implementation of themes -*/ -@mixin themify($themes: $themes) { - @each $theme, $map in $themes { - .theme-#{$theme} & { - $theme-map: () !global; - @each $key, $submap in $map { - $value: map-get(map-get($themes, $theme), '#{$key}'); - $theme-map: map-merge($theme-map, ($key: $value)) !global; - } - @content; - $theme-map: null !global; - } - } -} - -@function themed($key) { - @return map-get($theme-map, $key); -} diff --git a/src/gui/qt-daemon/html/assets/scss/base/_null.scss b/src/gui/qt-daemon/html/assets/scss/base/_null.scss deleted file mode 100644 index 9c476f5d..00000000 --- a/src/gui/qt-daemon/html/assets/scss/base/_null.scss +++ /dev/null @@ -1,128 +0,0 @@ -//* ******* reset & normalize ******* *// - -// box-sizing the same for all elements -html { - box-sizing: border-box; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; -} -*, *:before, *:after { - box-sizing: inherit; - -webkit-box-sizing: inherit; - -moz-box-sizing: inherit; - margin: 0; - padding: 0; - @include unSelect; -} - -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, canvas, details, embed, -figure, figcaption, footer, header, hgroup, -menu, nav, output, ruby, section, summary, -time, mark, audio, video { - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; -} -article, aside, details, figcaption, figure, -footer, header, hgroup, menu, nav, section { - display: block; -} - -body { - line-height: 1; - font-style: normal; -} -ol, ul { - list-style: none; -} -blockquote, q { - quotes: none; -} -blockquote:before, blockquote:after, -q:before, q:after { - content: none; -} - -//table -table { - border-collapse: collapse; - border-spacing: 0; -} -td, -th { - padding: 0; -} - -//forms element -input { - outline: none; - &:-webkit-autofill { - -webkit-box-shadow: 0 0 0 1000px white inset; - } -} - -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; - outline: none; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} -input { - line-height: normal; -} -input[type="search"] { - -webkit-appearance: textfield; - box-sizing: content-box; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - - -//link -a { - text-decoration: none; - &:active, - &:hover, - &:focus { - outline: 0; - } -} - -i { font-style: italic; } -b, strong { font-weight: 700; } - -// images -img { - width: auto; - max-width: 100%; - height: auto; - vertical-align: top; - border: 0; -} - -.hidden { - display: none !important; -} diff --git a/src/gui/qt-daemon/html/assets/scss/base/_theme.scss b/src/gui/qt-daemon/html/assets/scss/base/_theme.scss deleted file mode 100644 index e12eca73..00000000 --- a/src/gui/qt-daemon/html/assets/scss/base/_theme.scss +++ /dev/null @@ -1,187 +0,0 @@ -$themes: ( - dark: ( - bodyBackgroundColor: #131921, - sidebarBackgroundColor: rgba(23, 31, 39, 1), - sidebarBorderColor: #1f2833, - onlineColor: #5cda9d, - offlineColor: #ff5252, - contentBackgroundColor: rgba(43, 54, 68, 0.5), - mainTextColor: #e0e0e0, - alternativeTextColor: #111921, - optionalTextColor: #556576, - blueTextColor: #4db1ff, - greenTextColor: #5cda9d, - orangeTextColor: #ff6f00, - redTextColor: #ff5252, - blueButtonBackgroundColor: #4db1ff, - blueButtonHoverColor: #82d7ff, - blueButtonFocusColor: #59b5fd, - disabledButtonBackgroundColor: #9cadb7, - disabledButtonHoverColor: #b7d1e0, - disabledButtonFocusColor: #a7b9c2, - greenButtonBackgroundColor: #5cda9d, - greenButtonHoverColor: #8dfcc6, - greenButtonFocusColor: #62e0b2, - turquoiseButtonBackgroundColor: #4dd0e1, - turquoiseButtonHoverColor: #87f4f5, - turquoiseButtonFocusColor: #42d5e8, - transparentButtonBorderColor: #2b3644, - inputBackgroundColor: #171e27, - selectHoverColor: rgba(58, 69, 85, 0.5), - selectSelectedColor: rgba(43, 54, 68, 0.5), - switchBackgroundColor: #000000, - accountBackgroundColor: rgba(43, 54, 68, 0.5), - accountHoverBackgroundColor: rgba(58, 69, 85, 0.5), - accountMainTextColor: #e0e0e0, - securedSeed: #e0e0e0, - seedItemText: #e0e0e0, - seedItemBackgroundColor: #18202a, - accountOptionalTextColor: #556576, - accountIndicatorTextColor: #111921, - accountSwitchBackgroundColor: #000000, - accountIndicatorBackgroundColor: #4db1ff, - tabInactiveBackgroundColor: rgba(23, 31, 39, 0.5), - tabHoverBackgroundColor: rgba(58, 69, 85, 0.5), - tableBackgroundColor: #18202a, - messageMyBackgroundColor: #2a3544, - messageBuddyBackgroundColor: #18202a, - progressBarBackgroundColor: #343f4a, - progressBarFullBackgroundColor: #5cda9d, - chartOptionsBackgroundColor: #2b3644, - chartOptionsHoverColor: #556576, - tooltipBackgroundColor: #42505f, - tooltipImportantTextColor: #ff6f00, - tooltipImportantBackgroundColor: #5f2b11, - tooltipCriticalTextColor: #ff5252, - tooltipCriticalBackgroundColor: #5f1d1d, - tooltipShadow: 0 0 1rem rgba(0, 0, 0, 0.5), - modalBackground: url(~src/assets/images/background-dark.png), - closeButtonColor: #556576, - hoverPage: #3a485a - ), - gray: ( - bodyBackgroundColor: #101417, - sidebarBackgroundColor: rgba(28, 30, 33, 1), - sidebarBorderColor: #2e3337, - onlineColor: #47cf8d, - offlineColor: #ff5252, - contentBackgroundColor: rgba(37, 40, 43, 0.5), - mainTextColor: #e0e0e0, - alternativeTextColor: #1a1a1a, - optionalTextColor: #565c62, - blueTextColor: #42a5f5, - greenTextColor: #47cf8d, - orangeTextColor: #ff6f00, - redTextColor: #ff5252, - blueButtonBackgroundColor: #42a5f5, - blueButtonHoverColor: #86d6ff, - blueButtonFocusColor: #5fb6fc, - disabledButtonBackgroundColor: #79848f, - disabledButtonHoverColor: #a1aebb, - disabledButtonFocusColor: #8a959f, - greenButtonBackgroundColor: #47cf8d, - greenButtonHoverColor: #7bf6c6, - greenButtonFocusColor: #5cdc9e, - turquoiseButtonBackgroundColor: #3ec5d7, - turquoiseButtonHoverColor: #72edfe, - turquoiseButtonFocusColor: #50d0e1, - transparentButtonBorderColor: #2f3438, - inputBackgroundColor: #292d31, - selectHoverColor: rgba(58, 62, 66, 0.5), - selectSelectedColor: rgba(37, 40, 43, 0.5), - switchBackgroundColor: #000000, - accountBackgroundColor: rgba(37, 40, 43, 0.5), - accountHoverBackgroundColor: rgba(58, 62, 66, 0.5), - accountMainTextColor: #e0e0e0, - securedSeed: #e0e0e0, - seedItemText: #e0e0e0, - seedItemBackgroundColor: #292d31, - accountOptionalTextColor: #565c62, - accountIndicatorTextColor: #1a1a1a, - accountSwitchBackgroundColor: #000000, - accountIndicatorBackgroundColor: #42a5f5, - tabInactiveBackgroundColor: rgba(28, 30, 33, 0.5), - tabHoverBackgroundColor: rgba(58, 62, 66, 0.5), - tableBackgroundColor: #25292d, - messageMyBackgroundColor: #30363c, - messageBuddyBackgroundColor: #25292d, - progressBarBackgroundColor: #363a3e, - progressBarFullBackgroundColor: #47cf8d, - chartOptionsBackgroundColor: #292d31, - chartOptionsHoverColor: #515960, - tooltipBackgroundColor: #3e464c, - tooltipImportantTextColor: #ff6f00, - tooltipImportantBackgroundColor: #55240d, - tooltipCriticalTextColor: #ff5252, - tooltipCriticalBackgroundColor: #4c1919, - tooltipShadow: 0 0 1rem rgba(0, 0, 0, 0.5), - modalBackground: url(~src/assets/images/background-gray.png), - closeButtonColor: #515960, - hoverPage: #383e43 - ), - white: ( - bodyBackgroundColor: #eeeeee, - sidebarBackgroundColor: rgba(255, 255, 255, 1), - sidebarBorderColor: #ebebeb, - onlineColor: #46c172, - offlineColor: #ff5252, - contentBackgroundColor: rgba(255, 255, 255, 0.5), - mainTextColor: #43454b, - alternativeTextColor: #fefefe, - optionalTextColor: #a0a5ab, - blueTextColor: #2c95f1, - greenTextColor: #46c172, - orangeTextColor: #ff6f00, - redTextColor: #ff5252, - blueButtonBackgroundColor: #2c95f1, - blueButtonHoverColor: #5cb3ff, - blueButtonFocusColor: #379ffa, - disabledButtonBackgroundColor: #90a4ae, - disabledButtonHoverColor: #aebec6, - disabledButtonFocusColor: #a7b9c2, - greenButtonBackgroundColor: #46c172, - greenButtonHoverColor: #5ad586, - greenButtonFocusColor: #53c77c, - turquoiseButtonBackgroundColor: #26b6c7, - turquoiseButtonHoverColor: #52cbd9, - turquoiseButtonFocusColor: #31becf, - transparentButtonBorderColor: #ebebeb, - inputBackgroundColor: #e6e6e6, - selectHoverColor: rgba(240, 240, 240, 0.5), - selectSelectedColor: rgba(224, 224, 224, 0.5), - switchBackgroundColor: #e0e0e0, - accountBackgroundColor: rgba(30, 136, 229, 1), - accountHoverBackgroundColor: rgba(240, 240, 240, 0.5), - accountMainTextColor: #ffffff, - securedSeed: #a0a5ab, - seedItemText: #43454b, - seedItemBackgroundColor: #e6e6e6, - accountOptionalTextColor: #91baf1, - accountIndicatorTextColor: #43454b, - accountSwitchBackgroundColor: #ffffff, - accountIndicatorBackgroundColor: #ffffff, - tabInactiveBackgroundColor: rgba(224, 224, 224, 0.5), - tabHoverBackgroundColor: #ffffff, - tableBackgroundColor: #ffffff, - messageMyBackgroundColor: #fff, - messageBuddyBackgroundColor: #ededed, - progressBarBackgroundColor: #dcdcdc, - progressBarFullBackgroundColor: #46c172, - chartOptionsBackgroundColor: #e0e0e0, - chartOptionsHoverColor: #ffffff, - tooltipBackgroundColor: #ffffff, - tooltipImportantTextColor: #ffffff, - tooltipImportantBackgroundColor: #ef6c00, - tooltipCriticalTextColor: #ffffff, - tooltipCriticalBackgroundColor: #e53935, - tooltipShadow: 0 0 1rem rgba(120, 120, 120, 0.5), - modalBackground: url(~src/assets/images/background-white.png), - closeButtonColor: #43454b, - hoverPage: #ffffff - ) -); - - - - - diff --git a/src/gui/qt-daemon/html/assets/scss/layout/_contact.scss b/src/gui/qt-daemon/html/assets/scss/layout/_contact.scss deleted file mode 100644 index 1d9f4747..00000000 --- a/src/gui/qt-daemon/html/assets/scss/layout/_contact.scss +++ /dev/null @@ -1,88 +0,0 @@ -app-contacts, app-add-contacts, -app-contact-send, app-export-import { - flex: 1 1 auto; - padding: 3rem; - min-width: 85rem; - - .content { - position: relative; - padding: 3rem; - min-height: 100%; - - @include themify($themes) { - background-color: themed(contentBackgroundColor); - color: themed(mainTextColor); - } - - .head { - position: absolute; - top: 0; - left: 0; - } - } -} - -app-contacts { - - table { - - .alias { - - @include themify($themes) { - color: themed(blueTextColor); - } - } - - button { - - .icon { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - - span { - - @include themify($themes) { - color: themed(mainTextColor) - } - } - } - } - - .footer { - - @include themify($themes) { - color: themed(blueTextColor); - } - - .import-btn { - - @include themify($themes) { - color: themed(blueTextColor); - } - - .icon { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } - } - -} - -app-contact-send { - - .wallets-selection { - - button { - - @include themify($themes) { - color: themed(blueTextColor); - } - } - } -} \ No newline at end of file diff --git a/src/gui/qt-daemon/html/assets/scss/layout/_main.scss b/src/gui/qt-daemon/html/assets/scss/layout/_main.scss deleted file mode 100644 index 527258cb..00000000 --- a/src/gui/qt-daemon/html/assets/scss/layout/_main.scss +++ /dev/null @@ -1,119 +0,0 @@ -app-main, app-create-wallet, app-open-wallet, app-restore-wallet, app-seed-phrase, app-wallet-details, app-assign-alias, app-edit-alias, app-transfer-alias, app-settings, app-login { - flex: 1 1 auto; - padding: 3rem; - min-width: 85rem; - - .content { - position: relative; - padding: 3rem; - min-height: 100%; - - @include themify($themes) { - background-color: themed(contentBackgroundColor); - color: themed(mainTextColor); - } - - .head { - position: absolute; - top: 0; - left: 0; - } - } -} - -app-main { - - .content { - - .add-wallet { - - .add-wallet-help { - - @include themify($themes) { - color: themed(blueTextColor); - } - - .icon { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } - } - } -} - -app-seed-phrase { - - .seed-phrase-content { - - @include themify($themes) { - background-color: themed(inputBackgroundColor); - color: themed(mainTextColor) - } - } -} - -app-wallet-details { - - .seed-phrase { - - @include themify($themes) { - background-color: themed(inputBackgroundColor); - } - } -} - -app-settings { - - .content { - height: 100%; - overflow-y: auto; - display: flex; - justify-content: space-between; - flex-direction: column; - - .theme-selection { - - @include themify($themes) { - color: themed(optionalTextColor); - } - } - - .scale-selection { - - .button-block { - - @include themify($themes) { - background-color: themed(tabInactiveBackgroundColor); - } - - .label { - - @include themify($themes) { - color: themed(optionalTextColor); - } - } - - &.active { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - - .label { - - @include themify($themes) { - color: themed(blueTextColor); - } - } - } - } - } - } -} - -app-login { - min-width: inherit; -} diff --git a/src/gui/qt-daemon/html/assets/scss/layout/_seed-phrase.scss b/src/gui/qt-daemon/html/assets/scss/layout/_seed-phrase.scss deleted file mode 100644 index 8a2b1e90..00000000 --- a/src/gui/qt-daemon/html/assets/scss/layout/_seed-phrase.scss +++ /dev/null @@ -1,258 +0,0 @@ -.form-details { - margin-top: 1.8rem; - - .input-block { - - &:first-child { - width: 50%; - } - } - - .wallet-buttons { - display: flex; - align-items: center; - justify-content: space-between; - - button { - margin: 2.9rem 0; - width: 100%; - max-width: 15rem; - } - } -} - -.form-seed { - - label { - @include themify($themes) { - color: themed(optionalTextColor); - } - - font-size: 1.3rem; - line-height: 2.4rem; - } - - .form-content { - @include themify($themes) { - border: 2px solid themed(transparentButtonBorderColor); - } - - display: flex; - justify-content: center; - padding: 3rem; - width: 100%; - } - - .text-coral { - @include themify($themes) { - color: themed(blueTextColor); - } - text-decoration: none; - } - - .seed-phrase-form { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - max-width: 38rem; - width: 100%; - - .input-block, - button { - width: 100%; - } - - .error-message { - margin-top: 1rem; - @include themify($themes) { - color: themed(orangeTextColor); - } - } - - .secured-seed { - @include themify($themes) { - color: themed(securedSeed); - } - font-size: 1.2rem; - line-height: 2.4rem; - text-decoration: none; - display: flex; - align-items: center; - cursor: pointer; - - .icon { - margin-right: 1.2rem; - } - } - - button { - display: flex; - justify-content: center; - align-items: center; - margin-top: 3rem; - margin-bottom: 2rem; - - .icon { - margin-right: 1.2rem; - } - } - - } -} - -.seed-phrase { - display: flex; - flex-direction: column; - width: 100%; - background-color: transparent !important; - - &-title { - display: flex; - align-items: center; - justify-content: space-between; - width: 100%; - @include themify($themes) { - color: themed(optionalTextColor); - } - .right-part { - display: inline-flex; - align-items: center; - - .icon { - cursor: pointer; - width: 1.7rem; - height: 1.7rem; - - &.copy { - @include themify($themes) { - background-color: themed(blueTextColor); - } - margin-right: 1.2rem; - mask: url(~src/assets/icons/copy.svg) no-repeat center; - - &:hover { - opacity: 0.75; - } - } - - &.copied { - @include themify($themes) { - background-color: themed(blueTextColor); - } - margin-right: 1.2rem; - mask: url(~src/assets/icons/complete-testwallet.svg) no-repeat center; - } - - &.secured, - &.unsecured { - margin-left: 1.2rem; - } - } - - span { - font-size: 1.3rem; - line-height: 2.4rem; - display: inline-flex; - align-items: center; - - .icon { - margin-left: 1.2rem; - } - } - } - } - - &-content { - @include themify($themes) { - border-top: 2px solid themed(transparentButtonBorderColor); - border-bottom: 2px solid themed(transparentButtonBorderColor); - } - padding: 1rem 0 1rem; - display: flex; - align-items: center; - justify-content: center; - flex-wrap: wrap; - margin-bottom: 1rem; - - .item { - @include themify($themes) { - color: themed(seedItemText); - } - display: flex; - align-items: center; - padding: 0 2rem; - width: calc(100% / 7); - min-height: 35px; - font-size: 1.3rem; - - &.dark { - @include themify($themes) { - background-color: themed(seedItemBackgroundColor); - } - } - } - } - - &-footer { - text-align: center; - - .title { - @include themify($themes) { - color: themed(seedItemText); - } - font-size: 1.3rem; - line-height: 2.4rem; - } - } -} - -.icon { - display: inline-flex; - width: 1.6rem; - height: 1.6rem; - - &.secured { - @include themify($themes) { - background-color: themed(greenTextColor); - } - mask: url(~src/assets/icons/secured.svg) no-repeat center; - } - - &.info { - @include themify($themes) { - background-color: themed(blueTextColor); - } - mask: url(~src/assets/icons/info.svg) no-repeat center; - } - - &.unsecured { - @include themify($themes) { - background-color: themed(orangeTextColor); - } - mask: url(~src/assets/icons/unsecured.svg) no-repeat center; - } - - &.safety { - @include themify($themes) { - background-color: themed(alternativeTextColor); - } - mask: url(~src/assets/icons/safety.svg) no-repeat center; - } -} - -.wrap-buttons { - display: flex; - - .seed-phrase-button { - margin: 2.8rem 0; - width: 25%; - min-width: 1.5rem; - } - - .copy-button { - margin: 2.8rem 1rem; - width: 25%; - min-width: 1.5rem; - } -} \ No newline at end of file diff --git a/src/gui/qt-daemon/html/assets/scss/layout/_settings.scss b/src/gui/qt-daemon/html/assets/scss/layout/_settings.scss deleted file mode 100644 index e69de29b..00000000 diff --git a/src/gui/qt-daemon/html/assets/scss/layout/_sidebar.scss b/src/gui/qt-daemon/html/assets/scss/layout/_sidebar.scss deleted file mode 100644 index cfc382fb..00000000 --- a/src/gui/qt-daemon/html/assets/scss/layout/_sidebar.scss +++ /dev/null @@ -1,191 +0,0 @@ -app-sidebar { - - @include themify($themes) { - background-color: themed(sidebarBackgroundColor); - } - - .sidebar-accounts { - - .sidebar-accounts-header { - - h3 { - - @include themify($themes) { - color: themed(mainTextColor); - } - } - - button { - - @include themify($themes) { - color: themed(blueTextColor); - } - } - } - - .sidebar-accounts-list { - - .sidebar-account { - - @include themify($themes) { - background-color: transparent; - color: themed(mainTextColor); - } - - .icon { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - - .sidebar-account-row { - - .text { - - @include themify($themes) { - color: themed(optionalTextColor); - } - } - - .icon { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - - .indicator { - - @include themify($themes) { - background-color: themed(blueButtonBackgroundColor); - color: themed(alternativeTextColor); - } - } - - .progress-bar-container { - - .progress-bar { - - @include themify($themes) { - background-color: themed(progressBarBackgroundColor); - } - - .fill { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } - } - - &.account-synchronization { - - @include themify($themes) { - color: themed(optionalTextColor); - } - } - } - - &.active { - - @include themify($themes) { - background-color: themed(accountBackgroundColor); - color: themed(accountMainTextColor); - } - - .sidebar-account-row { - - .text { - - @include themify($themes) { - color: themed(accountOptionalTextColor); - } - } - - .indicator { - - @include themify($themes) { - background-color: themed(accountIndicatorBackgroundColor); - color: themed(accountIndicatorTextColor); - } - } - - .switch { - - @include themify($themes) { - background-color: themed(accountSwitchBackgroundColor); - color: themed(mainTextColor); - } - } - - &.account-synchronization { - - @include themify($themes) { - color: themed(accountOptionalTextColor); - } - } - } - } - - &:hover:not(.active) { - - @include themify($themes) { - background-color: themed(accountHoverBackgroundColor); - } - } - } - } - - &:after { - - @include themify($themes) { - background: linear-gradient(to bottom, transparent 0%, themed(sidebarBackgroundColor) 100%); - } - } - } - - .sidebar-settings { - - @include themify($themes) { - border-bottom: 0.2rem solid themed(sidebarBorderColor); - } - - .wrap-button { - - button { - - @include themify($themes) { - color: themed(mainTextColor); - } - - .icon { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } - - &.active { - - button { - - @include themify($themes) { - background-color: themed(accountBackgroundColor)!important; - color: themed(accountMainTextColor)!important; - } - - .icon { - - @include themify($themes) { - background-color: themed(accountIndicatorBackgroundColor)!important; - } - } - } - } - } - } - -} diff --git a/src/gui/qt-daemon/html/assets/scss/layout/_status.scss b/src/gui/qt-daemon/html/assets/scss/layout/_status.scss deleted file mode 100644 index b109e1d5..00000000 --- a/src/gui/qt-daemon/html/assets/scss/layout/_status.scss +++ /dev/null @@ -1,232 +0,0 @@ -.synchronization-status { - display: flex; - align-items: center; - justify-content: flex-start; - flex: 0 0 7rem; - font-size: 1.3rem; - @include themify($themes) { - color: themed(optionalTextColor); - } - - .status-container { - position: relative; - flex-grow: 1; - text-align: left; - - .offline, .online { - position: relative; - display: block; - line-height: 1.2rem; - padding-left: 2.2rem; - - &:before { - content: ''; - position: absolute; - top: 0; - left: 0; - border-radius: 50%; - width: 1.2rem; - height: 1.2rem; - } - } - - .offline:before { - - @include themify($themes) { - background-color: themed(offlineColor); - } - } - - .online:before { - - @include themify($themes) { - background-color: themed(onlineColor); - } - } - - .syncing, .loading { - line-height: 5rem; - } - - .progress-bar-container { - position: absolute; - bottom: 0; - left: 0; - height: 0.7rem; - width: 100%; - - .syncing { - display: flex; - - .progress-bar { - flex: 1 0 auto; - @include themify($themes) { - background-color: themed(progressBarBackgroundColor); - } - .fill { - height: 100%; - @include themify($themes) { - background-color: themed(progressBarFullBackgroundColor); - } - } - } - &.downloading { - - .progress-bar { - - @include themify($themes) { - background-color: themed(progressBarBackgroundColor); - } - - .fill { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } - } - .progress-percent { - flex: 0 0 auto; - font-size: 1.3rem; - line-height: 0.7rem; - padding-left: 0.7rem; - } - } - - .loading { - @include themify($themes) { - background-color: themed(progressBarFullBackgroundColor); - } - animation: move 5s linear infinite; - background-image: - -webkit-gradient( - linear, 0 0, 100% 100%, - color-stop(.125, rgba(0, 0, 0, .15)), color-stop(.125, transparent), - color-stop(.250, transparent), color-stop(.250, rgba(0, 0, 0, .10)), - color-stop(.375, rgba(0, 0, 0, .10)), color-stop(.375, transparent), - color-stop(.500, transparent), color-stop(.500, rgba(0, 0, 0, .15)), - color-stop(.625, rgba(0, 0, 0, .15)), color-stop(.625, transparent), - color-stop(.750, transparent), color-stop(.750, rgba(0, 0, 0, .10)), - color-stop(.875, rgba(0, 0, 0, .10)), color-stop(.875, transparent), - to(transparent) - ), - -webkit-gradient( - linear, 0 100%, 100% 0, - color-stop(.125, rgba(0, 0, 0, .30)), color-stop(.125, transparent), - color-stop(.250, transparent), color-stop(.250, rgba(0, 0, 0, .25)), - color-stop(.375, rgba(0, 0, 0, .25)), color-stop(.375, transparent), - color-stop(.500, transparent), color-stop(.500, rgba(0, 0, 0, .30)), - color-stop(.625, rgba(0, 0, 0, .30)), color-stop(.625, transparent), - color-stop(.750, transparent), color-stop(.750, rgba(0, 0, 0, .25)), - color-stop(.875, rgba(0, 0, 0, .25)), color-stop(.875, transparent), - to(transparent) - ); - background-size: 7rem 7rem; - height: 100%; - } - } - } - - .update-container { - display: flex; - flex-grow: 1; - margin-left: 1rem; - text-align: right; - - .update-text { - flex: 1 1 auto; - font-size: 1.2rem; - line-height: 1.8rem; - text-align: left; - - &.time { - font-size: 1.1rem; - } - } - - .icon { - flex: 1 0 auto; - margin: 0.3rem 0 0 0.6rem; - width: 1.2rem; - height: 1.2rem; - - &.update { - mask: url(./assets/icons/update.svg) no-repeat center; - } - - &.time { - mask: url(./assets/icons/time.svg) no-repeat center; - } - } - - .standard { - - @include themify($themes) { - color: themed(blueTextColor); - } - } - - .important { - - @include themify($themes) { - color: themed(orangeTextColor); - } - } - - .critical { - - @include themify($themes) { - color: themed(redTextColor); - } - } - - .time { - - @include themify($themes) { - color: themed(orangeTextColor); - } - } - - .icon { - - &.standard { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - - &.important { - - @include themify($themes) { - background-color: themed(orangeTextColor); - } - } - - &.critical { - - @include themify($themes) { - background-color: themed(redTextColor); - } - } - - &.time { - - @include themify($themes) { - background-color: themed(orangeTextColor); - } - } - } - - } -} - -@keyframes move { - 0% { - background-position: 100% -7rem; - } - 100% { - background-position: 100% 7rem; - } -} diff --git a/src/gui/qt-daemon/html/assets/scss/layout/_wallet.scss b/src/gui/qt-daemon/html/assets/scss/layout/_wallet.scss deleted file mode 100644 index 201c02c4..00000000 --- a/src/gui/qt-daemon/html/assets/scss/layout/_wallet.scss +++ /dev/null @@ -1,531 +0,0 @@ -app-wallet { - - @include themify($themes) { - color: themed(mainTextColor); - } - - .header { - - button { - - @include themify($themes) { - color: themed(mainTextColor); - } - - .icon { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - &:disabled { - background-color: transparent !important; - .icon { - @include themify($themes) { - background-color: themed(accountOptionalTextColor); - } - } - } - } - - .alias { - - .icon { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } - } - - .address { - - @include themify($themes) { - color: themed(blueTextColor); - } - - .icon { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } - - .tabs { - - .tabs-header { - - .tab { - - @include themify($themes) { - background-color: themed(tabInactiveBackgroundColor); - } - - .icon { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - - .indicator { - - @include themify($themes) { - background-color: themed(accountIndicatorBackgroundColor); - color: themed(accountIndicatorTextColor); - } - } - - &.active { - - @include themify($themes) { - background-color: themed(contentBackgroundColor); - } - } - - &:hover:not(.active):not(.disabled) { - - @include themify($themes) { - background-color: themed(tabHoverBackgroundColor); - } - } - } - } - - .tabs-content { - - @include themify($themes) { - background-color: themed(contentBackgroundColor); - } - } - - .pagination-wrapper { - - @include themify($themes) { - background-color: themed(contentBackgroundColor); - } - - .pagination { - - @include themify($themes) { - border-top: 0.2rem solid themed(transparentButtonBorderColor); - } - - button { - @include themify($themes) { - background-color: themed(transparentButtonBorderColor); - color: themed(mainTextColor); - } - - &.active { - @include themify($themes) { - background-color: themed(tableBackgroundColor); - color: themed(mainTextColor); - } - } - - &:hover { - @include themify($themes) { - background-color: themed(hoverPage); - color: themed(mainTextColor); - } - } - } - } - } - } -} - -app-send { - - .form-send { - - .send-select { - - @include themify($themes) { - color: themed(mainTextColor); - } - - .icon { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } - - .additional-details { - - @include themify($themes) { - border: 0.2rem solid themed(transparentButtonBorderColor); - } - } - } -} - -app-receive { - - .btn-copy-address { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } -} - -app-history { - - table { - - tbody { - - tr { - - &.locked-transaction { - - @include themify($themes) { - color: themed(optionalTextColor); - } - } - - &:nth-child(4n+1) { - - @include themify($themes) { - background-color: themed(tableBackgroundColor); - } - } - - &:nth-child(4n+2) { - - @include themify($themes) { - background-color: themed(tableBackgroundColor); - } - } - - &:nth-child(4n+3) { - - @include themify($themes) { - background-color: transparent; - } - } - - &:nth-child(4n+4) { - - @include themify($themes) { - background-color: transparent; - } - } - - .status { - - .confirmation { - - @include themify($themes) { - background-color: themed(progressBarBackgroundColor); - } - - .fill { - - @include themify($themes) { - background-color: themed(progressBarFullBackgroundColor); - } - } - } - } - - .lock-transaction { - - @include themify($themes) { - background-color: themed(orangeTextColor); - } - } - - .unlock-transaction { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - - .status.send { - - .status-transaction { - - @include themify($themes) { - background-color: themed(redTextColor); - } - } - } - - .status.received { - - .status-transaction { - - @include themify($themes) { - background-color: themed(greenTextColor); - } - } - } - } - } - } -} - -app-contracts { - - .wrap-table { - - .contract { - - .icon { - - &.new, &.alert { - - @include themify($themes) { - background-color: themed(redTextColor); - } - } - - &.purchase, &.sell { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } - } - } -} - -app-purchase { - - .form-purchase { - - .purchase-select { - - @include themify($themes) { - color: themed(mainTextColor); - } - - .icon { - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } - - .purchase-states { - - @include themify($themes) { - color: themed(blueTextColor); - } - } - - .additional-details { - - @include themify($themes) { - border: 0.2rem solid themed(transparentButtonBorderColor); - } - } - } - - .progress-bar-container { - - .progress-bar { - - @include themify($themes) { - background-color: themed(progressBarBackgroundColor); - } - - .progress-bar-full { - - @include themify($themes) { - background-color: themed(progressBarFullBackgroundColor); - } - } - } - } -} - -app-messages { - - table { - - tbody { - - tr { - - td:first-child { - - span { - @include text-truncate; - } - - .icon { - - @include themify($themes) { - background-color: themed(redTextColor); - } - } - } - } - } - } -} - -app-typing-message { - - .head { - - .interlocutor { - - @include themify($themes) { - color: themed(blueTextColor); - } - } - } - - .messages-content { - - .messages-list { - - div { - - &.date { - - @include themify($themes) { - color: themed(optionalTextColor); - } - } - - &.my { - - @include themify($themes) { - background-color: themed(messageMyBackgroundColor); - } - - &:before { - - @include pseudo; - top: 0; - left: -1.1rem; - border: 1.2rem solid transparent; - - @include themify($themes) { - border-top-color: themed(messageMyBackgroundColor); - } - } - } - - &.buddy { - - @include themify($themes) { - background-color: themed(messageBuddyBackgroundColor); - } - - &:after { - - @include pseudo; - right: -1.1rem; - top: 0; - border: 1.2rem solid transparent; - - @include themify($themes) { - border-top-color: themed(messageBuddyBackgroundColor); - } - } - } - } - } - } -} - -app-staking { - - .chart-header { - - .general { - - .label { - - @include themify($themes) { - color: themed(optionalTextColor); - } - } - - .options { - - @include themify($themes) { - color: themed(mainTextColor); - } - } - } - - .selected { - display: flex; - align-items: center; - justify-content: flex-end; - flex-grow: 1; - font-size: 1.6rem; - } - } - - .chart-options { - - .title { - - @include themify($themes) { - color: themed(optionalTextColor); - } - } - - .options { - - button { - - @include themify($themes) { - color: themed(mainTextColor); - background-color: themed(chartOptionsBackgroundColor); - } - - &.active { - - @include themify($themes) { - background-color: themed(chartOptionsHoverColor); - } - } - } - } - } -} - -.input-block-alias { - position: relative; - - .alias-dropdown { - position: absolute; - top: 6.5rem; - max-height: 10rem; - overflow: auto; - width: 100%; - - @include themify($themes) { - background-color: themed(inputBackgroundColor); - color: themed(mainTextColor); - } - - div { - font-size: 1.4rem; - padding: 1rem; - - &:hover { - @include themify($themes) { - background-color: themed(selectHoverColor); - } - } - } - } -} diff --git a/src/gui/qt-daemon/html/assets/scss/modules/_head.scss b/src/gui/qt-daemon/html/assets/scss/modules/_head.scss deleted file mode 100644 index a03e41b0..00000000 --- a/src/gui/qt-daemon/html/assets/scss/modules/_head.scss +++ /dev/null @@ -1,64 +0,0 @@ -.head { - display: flex; - align-items: flex-end; - justify-content: space-between; - font-size: 1.3rem; - padding: 0 3rem; - width: 100%; - height: 3rem; - - @include themify($themes) { - color: themed(blueTextColor); - } - - .breadcrumbs { - - > span, a { - - &:not(:last-child) { - position: relative; - cursor: pointer; - margin-right: 20px; - outline-style: none; - - &:after { - - @include pseudo; - top: 0.5rem; - right: -1.5rem; - width: 0.9rem; - height: 0.9rem; - mask: url(~src/assets/icons/arrow-right.svg) no-repeat center; - mask-size: cover; - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } - } - } - - .back-btn { - display: flex; - align-items: center; - background-color: transparent; - color: #4db1ff; - font-size: inherit; - font-weight: 400; - line-height: 1.3rem; - padding: 0; - height: auto; - - .icon { - margin-right: 0.7rem; - mask: url(~src/assets/icons/back.svg) no-repeat center; - width: 0.9rem; - height: 0.9rem; - - @include themify($themes) { - background-color: themed(blueTextColor); - } - } - } -} diff --git a/src/gui/qt-daemon/html/assets/scss/modules/_scroll.scss b/src/gui/qt-daemon/html/assets/scss/modules/_scroll.scss deleted file mode 100644 index bbd97645..00000000 --- a/src/gui/qt-daemon/html/assets/scss/modules/_scroll.scss +++ /dev/null @@ -1,24 +0,0 @@ -.scrolled-content { - - &::-webkit-scrollbar { - background-color: transparent; - cursor: default; - width: 1rem; - height: 1rem; - } - - &::-webkit-scrollbar-track { - background: transparent; - } - - &::-webkit-scrollbar-thumb { - background-color: #556576; - background-clip: padding-box; - border: 0.25rem solid transparent; - border-radius: 0.5rem; - } - - &::-webkit-scrollbar-thumb:hover { - background-color: #556576; - } -} diff --git a/src/gui/qt-daemon/html/assets/scss/modules/_table.scss b/src/gui/qt-daemon/html/assets/scss/modules/_table.scss deleted file mode 100644 index 589637b6..00000000 --- a/src/gui/qt-daemon/html/assets/scss/modules/_table.scss +++ /dev/null @@ -1,64 +0,0 @@ -table { - font-size: 1.3rem; - width: 100%; - - thead { - text-align: left; - - @include themify($themes) { - color: themed(optionalTextColor); - } - - tr { - height: 4rem; - - th { - padding: 1rem; - vertical-align: bottom; - - &:first-child { - padding-left: 3rem; - } - - &:last-child { - padding-right: 3rem; - } - } - } - } - - tbody { - text-align: left; - - @include themify($themes) { - color: themed(mainTextColor); - } - - tr { - height: 3.5rem; - - &:nth-child(odd) { - - @include themify($themes) { - background-color: themed(tableBackgroundColor); - } - } - - td { - line-height: 1.7rem; - padding: 0 1rem; - vertical-align: middle; - white-space: nowrap; - max-width: 20rem; - - &:first-child { - padding-left: 3rem; - } - - &:last-child { - padding-right: 3rem; - } - } - } - } -} diff --git a/src/gui/qt-daemon/html/back.svg b/src/gui/qt-daemon/html/back.svg deleted file mode 100644 index 0b00a610..00000000 --- a/src/gui/qt-daemon/html/back.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/src/gui/qt-daemon/html/background-dark.png b/src/gui/qt-daemon/html/background-dark.png deleted file mode 100644 index 83290ff91cdaa0ef468e11343ebf631083cd4e0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34583 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

    Iz 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�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 - - - - - diff --git a/src/gui/qt-daemon/html/close-wallet.svg b/src/gui/qt-daemon/html/close-wallet.svg deleted file mode 100644 index 8a9ba99e..00000000 --- a/src/gui/qt-daemon/html/close-wallet.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/close.svg b/src/gui/qt-daemon/html/close.svg deleted file mode 100644 index d39bed6d..00000000 --- a/src/gui/qt-daemon/html/close.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/complete-testwallet.svg b/src/gui/qt-daemon/html/complete-testwallet.svg deleted file mode 100644 index b5d04868..00000000 --- a/src/gui/qt-daemon/html/complete-testwallet.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/src/gui/qt-daemon/html/contacts.svg b/src/gui/qt-daemon/html/contacts.svg deleted file mode 100644 index e05516ae..00000000 --- a/src/gui/qt-daemon/html/contacts.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - diff --git a/src/gui/qt-daemon/html/contracts.svg b/src/gui/qt-daemon/html/contracts.svg deleted file mode 100644 index aa985ac7..00000000 --- a/src/gui/qt-daemon/html/contracts.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/copy.svg b/src/gui/qt-daemon/html/copy.svg deleted file mode 100644 index 4ec2ff7d..00000000 --- a/src/gui/qt-daemon/html/copy.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/delete.svg b/src/gui/qt-daemon/html/delete.svg deleted file mode 100644 index a057a1dc..00000000 --- a/src/gui/qt-daemon/html/delete.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/src/gui/qt-daemon/html/details-settings.svg b/src/gui/qt-daemon/html/details-settings.svg deleted file mode 100644 index 11803ccf..00000000 --- a/src/gui/qt-daemon/html/details-settings.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/details.svg b/src/gui/qt-daemon/html/details.svg deleted file mode 100644 index eb12cde2..00000000 --- a/src/gui/qt-daemon/html/details.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/edit.svg b/src/gui/qt-daemon/html/edit.svg deleted file mode 100644 index eb12cde2..00000000 --- a/src/gui/qt-daemon/html/edit.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/favicon.ico b/src/gui/qt-daemon/html/favicon.ico deleted file mode 100644 index 366c5f9be407961d6828a15913dd0870388572f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145619 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 diff --git a/src/gui/qt-daemon/html/files/Zano.desktop b/src/gui/qt-daemon/html/files/Zano.desktop deleted file mode 100644 index 8f26e0b9..00000000 --- a/src/gui/qt-daemon/html/files/Zano.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Version=1.0 -Name=Zano -Exec=Zano -Icon=/usr/share/pixmaps/desktop_linux_icon.png -MimeType=application/x-desktop -Terminal=true -Type=Application \ No newline at end of file diff --git a/src/gui/qt-daemon/html/files/app22macos.png b/src/gui/qt-daemon/html/files/app22macos.png deleted file mode 100644 index 450317e765b820ec8008017168be214f4824b59b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 992 zcmV<610Vc}P)AIv^c59dJ_tw*w~?I2|~6#-6$3u@)hnT?;rnvwu8(9!aZjcLmNe8jTia zIVI4wVf2n>jz}kNF^9O;?x5sE8Yd(m3_akM&ZEP2ZA1F_}9R-1}p`xHf z;Z_Rb-hE&^4!7Pz;0w_$9?N{ZqGa>1>?Fip*W(No5mhSS_pUf|S{7dTjlY z&}|p_Lw$k&>*#O5u;l7K|G9Z8_D=(yEM`|V^YdTjL213Tqql~ML6^9=!Ht3`EUSzX z1E~v=g4deWvd#$IibTcjLpQn3F*0wrjqGuDJuC9OkNyQH@-YMtw1IsRW@*r- zKDSy{B!X_alEALd?9gx61||k2I38ObU@6f98dEK^N(?Lyu$-*0%!dkc!`Wrg1!=6Y zEOvIGYr2{TSfo&-ie<5h0UF)3lAR7+)Iv5fr)s*$c&u@Nr9g+DxmXtaCDG`H?t=8_ zRnaR6VO7&bc0nriWQ)PFlxn&qXvHLjWwDzl8r@=(od!J_5LmVpbej?>M`PI@h-E3E zTj+{O8p~2cx4A2(L}1zO0ij$Y^KKsVl$-vHe-4>A(n zh-EhD#ye{ppc}DF5#9I~5{l?XEK^1|Vwobk5zCZA1^>x_Mhmk40t^5iYN9WZS=mGY O0000D}$Q zyX{@8A+1CLQKFI<6vPB$f+UEdMnj0Gi70;%0vZt1nD`3?2}&d=#zbfD=XQFX)PV7y z+2ro_&71FgyPtV)ZvWZMZLO>3mfv0u0GQj-9BN0u4(l^}7Wy_uM=ztFvP5%_0l=IE z)~5t)f3Xq({(H5v+w2an7Gy2vmK3cIx>KS8`G$ltW7L6N1s?M2?E1+|0m~lGN zQ_R6SXM>f{(H(AcG-^6@_}qS%%y|QjTHek1_<*Noxx>S9eum{4uExc30?P|5=g1z; zU^zMybtNLShgN3OA*;?gV44YmVUo$DJLz?6dOySQJkPKm#^Z6J87^ZaZb~Uv+^EU~ z$;AmlL)O)VscLbD6<6xhhRiyr(@K;-viB8BEIUMzNl6KYbF)k_ks{|ci6K3j zzBENKjXr^WiXj7!jyQfTy)+8Lx=Pr7^u~^a6hS@ZX5M+@SRT`Zm z3COfVLmSd%*ffl8rK;H7n`)%6I1?gSo++;#rqn59mM0@imqKQRM0Br0qYfog(>paS z8q8E#TMnV4vC*okT1RzQlGV7y^ zENcsrnTf>+Yl<2fDHa1&wZ|UAHWQD5I!KXBXdwqT$M$!<&VY_@%=#VB4S^bg?t)S3c4JUIlit1;*ysO6RQ(O`! zv#vlO;P>!6M0uoKXq$Xe=m&Kb?R8SrHpja9f19F6m`SOcRRdM%h^=x_{ib)b4*1B# z(VQcyrgx=;q#MxcxjJXA>GIoHewVT|>E0D2+1k&7vegn$5t#|2h0Dq-vodw^0#1)| zCcaHRb&li!jFTEF6DmDx>L7*|F_V%G8~RaAOt0HBaVHA#1R`Vo14PyTU?~h~_}Ug? zdYyEQ3t``t{?COdRI)rE#rvTWWO7BE8<^hOWma@zcjY#P$=xVge@X)CWK>mBx`Q~8 znKV|&oSENkb!2oXJ-^n&qJ!bA@2u4B#-%-EsojlB3(BszY6d;oY}l|(W&LwzHuVnl zkOzZ)pU>+P8GIO5w5cf=?GCAE_cg3N#fvhfHMpawuxBcv&5;#mmdf@xmhQsLD0lqb`MU!Aa$R@=_=7V`DE({3Sq`1g@FfYZ00U?_d7nu*{ zrMNI4WRv0|^TE6n7Y2lEQe0#{n3v+hfRIg!i_8b}Qd}4ivPp4~`Cwj(3j;znDK0V} z%u8`$K*%P=MdpKfDJ~2M*`&D0d@wJ?g#jU(6c?Ef=B2nWAY_x`BJ;t#6c+}BY*Jig zKA4x{!hn!Xii^w#^HN+G5VA>ek@;X=iVFimHYqMLAIwW}VL-?x#YN_Wc_}Uo2-&2# z$b2v_#f1SOn-mwB59Xz~Fd$@;h^xHt>L!e%_cfE~#mu31UALi^IvsLzdl-PxB>;?V z0O0E1==U4|Lo5L2djSxh2jEt1>$<}$0Vuh-CDhQF`r^Wx59e-RZxpL$9jSimctz!S zMP-S9*B$#?-fH;s)jg|2dpdUSS$25qlF)^(&K#OIZ^hWDk^rb0TXg@X$A0i_d%M3h zb@K;zf=@1%T<$3YmCk3LD0}$yqwAN-8<)>a8E4L3y!)LeKmKgT>|c+*2a*r$+}pSK z*oxkTC(W|abD^&X?s}u^%~z^-7`5TOx0Igmc}e|o`M&XE;-}%~8joH{J^Ry%jq|D( z?cB6@?8}3HyV`EH{*A+} zp@pY+Km9vDf7i+xm&6WTxv*}qcm1V@A~O$s`!g5aa&_%*pPzVnd~tns*NoS$oLY8r g`~Wz6(|18Izx(J%o$9)3>*d&%rq z4TN623%CrYs2iY3{cpEzh&40k&fd?e^BY|83yFgXxsXc#!GRk6@Ej z!J8c|RY_%(J{-LFxf>nu2*&1ooHuFK%-6*zF=n4k(1VGA?|*d}#G-!GPiLE!3nIPs!!+y5C|greMKx21vg( zeg!>gN8b6@d-kx<3|zJS$Y7(kq7B|=8R8l#I(voIUEFt@t%vjFZt!03}Qn>!AF};_^*&aK)yo?}JjDI$_x=2c0TIvT2AJair?| zK!;;}*-NB#Uzs!i^jypruIWZA2il}xW>}I4rBqqgRr8gpJy|*Ek{PgxP-JZ6hWBH` z3|zeBP0B1AE_!dPJR64PK<}RXC~*ju3y0gCioZ0!1Q-CqqWJ_Biu7Rs0000& z4@~tH^{G)^Hu&znpv#9$frTjozBOih&`A ztV^*J=#(Q;LQX~Fdq7l_l7c7;Qamh5P?Vu4frXD})?A|m3yQj6i|x{UnNkM|LZwoP zRALe0jtG)0%YqmcqR}uT!rr7!ksr3bwweY7d%9~n)Fd_tG@@ZLPSZT|bp8sKQ&($y z3t?gb6MW)^q-k~hpK2|uPJ6U~7w`5@ z+AB^vSSVnRjJrBZa;YtF%Yj)JBTC#NA!D_O_m>GJUYR%`n++n|33h5oH|^kX*AgkL zAd1sGBT`{WVhJcpaVSP%taCRTMR6Y0h+&o{|3(=Rhf?$plof!1DEcpK=&(dw3$ZMi zLCp$|JyNx%X)tel6xlk?D`}oxFk+epR25Z?CsajAsFEb*Qkje@rs8ren(IkqbFoBC zRw4R$kc*nEu_&8sC>vCDkS(ZS*POtH>Jkf7GXl-VzGNEeTaYyx`;u)aD==q-phlO} zZ0(3OLa?lNAluY?7~8CIUDlz8pHBqO#dKcjDf+LUTsX644y;wQ9nOujA9~Nd*s%3! z=;f;purYfkv#xpjwaYh8O+PLl8Xio}ypgZWs@})e{Vgrv(roJP!K)AaFWmi!WOAVQ z8wXd0xT8Nqp!H;V*}jYSxVP8W_lU-Oa)Jhp6Wcl){6+=flFYhV3X e_2|UA_Bn3gdGp!L&F80sCnullQ|@Groc;}6Hix+Y diff --git a/src/gui/qt-daemon/html/files/desktop_linux_icon.png b/src/gui/qt-daemon/html/files/desktop_linux_icon.png deleted file mode 100644 index c48284bf61612d98b8def242332b20bc1f2dbe61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1293 zcmV+o1@iidP)*+eW^m(oKZF&8zDg1R*@1KW2mOMvVS0lfkaZouWqxEzWk5v;YY2W#0Q1oEyl;;M zr%VP~z8MN!jQ;K(!{|rJWZrM> zlX}S(RxAUp2Tuh#Kp$B#lXUF8_lC_CA+YS@Q~mVOtN~YxB7xAd=l<(sWhJouqu*Ld z$gf2Wms)hO*48Z-`G$+-e#QL<23 z2!Md46l;^7as-$u*f=QAL|RfM=UcV@!#}@B8{+K}`7dl8S$*J->&W#-FNuB*qiKPv zSLID0Sr5qAizLIrv?)%PpaA}|C7_t_xQ+AKG!O~Ix>}XrC^_vlDuW)w#HGdfPJuYL zYuUBwJOXR>o|!}1pEDr=LPp>x^nw+d!ga~nZw7@$E~G_|bntcGbSm6>a(=|E z1BS^)QVe%f7S_q`G-^NzngSC7+1UaDddqepqr$CsqWg(3J|^B&HJC@5zDw><0=kbW zi;{-<=_Dm{bmzJmC-VrjMbBH&7sU{;kV@k-x&mKO5~j;_B|cL_ywwo+Q(oMG{X-w` z+m55?^J1OPEpWmEtwi9U>?<@>0z#OyPO@{C_563YZH5@2~A_tJ_!9k<#@R z(SQ)m+?PF4N))x?5zO>cc#mw`G;Lo=FSeXu%O+n84c0-%WQ`e|QxGk5L}bBGBDN=PX|+UO|h#g+^@clZ({hb6+W>cW+Eckb}UD^9?| z^HJ{+BGH8z%7`15L1(k_l3O)0Uk;*M7~ewRX_=@hL&T zLU*rrX=_cmX`5ArwfAKP$ii%@;;BWM0K3}puK)u8lO{;~qDb@g00000NkvXXu0mjf D-w0`U diff --git a/src/gui/qt-daemon/html/history.svg b/src/gui/qt-daemon/html/history.svg deleted file mode 100644 index c9945561..00000000 --- a/src/gui/qt-daemon/html/history.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/howto.svg b/src/gui/qt-daemon/html/howto.svg deleted file mode 100644 index 92362f78..00000000 --- a/src/gui/qt-daemon/html/howto.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/import-export.svg b/src/gui/qt-daemon/html/import-export.svg deleted file mode 100644 index 48fd7073..00000000 --- a/src/gui/qt-daemon/html/import-export.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/src/gui/qt-daemon/html/index.html b/src/gui/qt-daemon/html/index.html deleted file mode 100644 index 9e31e8c1..00000000 --- a/src/gui/qt-daemon/html/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - Zano - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/info.svg b/src/gui/qt-daemon/html/info.svg deleted file mode 100644 index 083cdf38..00000000 --- a/src/gui/qt-daemon/html/info.svg +++ /dev/null @@ -1 +0,0 @@ -info \ No newline at end of file diff --git a/src/gui/qt-daemon/html/lock-transaction.svg b/src/gui/qt-daemon/html/lock-transaction.svg deleted file mode 100644 index 49a2e523..00000000 --- a/src/gui/qt-daemon/html/lock-transaction.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/lock.svg b/src/gui/qt-daemon/html/lock.svg deleted file mode 100644 index 021aae19..00000000 --- a/src/gui/qt-daemon/html/lock.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/logout.svg b/src/gui/qt-daemon/html/logout.svg deleted file mode 100644 index b2f23e62..00000000 --- a/src/gui/qt-daemon/html/logout.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - exit - - - - - diff --git a/src/gui/qt-daemon/html/main.js b/src/gui/qt-daemon/html/main.js deleted file mode 100644 index 2defe0dd..00000000 --- a/src/gui/qt-daemon/html/main.js +++ /dev/null @@ -1,9788 +0,0 @@ -(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["main"],{ - -/***/ "./src/$$_lazy_route_resource lazy recursive": -/*!**********************************************************!*\ - !*** ./src/$$_lazy_route_resource lazy namespace object ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -function webpackEmptyAsyncContext(req) { - // Here Promise.resolve().then() is used instead of new Promise() to prevent - // uncaught exception popping up in devtools - return Promise.resolve().then(function() { - var e = new Error("Cannot find module '" + req + "'"); - e.code = 'MODULE_NOT_FOUND'; - throw e; - }); -} -webpackEmptyAsyncContext.keys = function() { return []; }; -webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext; -module.exports = webpackEmptyAsyncContext; -webpackEmptyAsyncContext.id = "./src/$$_lazy_route_resource lazy recursive"; - -/***/ }), - -/***/ "./src/app/_helpers/directives/confirm-modal/confirm-modal.component.html": -/*!********************************************************************************!*\ - !*** ./src/app/_helpers/directives/confirm-modal/confirm-modal.component.html ***! - \********************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "

    \r\n
    \r\n \r\n
    \r\n {{title}}\r\n {{message}}\r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    " - -/***/ }), - -/***/ "./src/app/_helpers/directives/confirm-modal/confirm-modal.component.scss": -/*!********************************************************************************!*\ - !*** ./src/app/_helpers/directives/confirm-modal/confirm-modal.component.scss ***! - \********************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.25);\n z-index: 5; }\n\n.modal {\n position: relative;\n display: flex;\n flex-direction: column;\n background-position: center;\n background-size: 200%;\n padding: 3rem;\n min-width: 34rem;\n max-width: 60rem; }\n\n.modal .content {\n display: flex; }\n\n.modal .content .icon {\n flex: 0 0 auto;\n width: 4.4rem;\n height: 4.4rem; }\n\n.modal .content .icon.info {\n -webkit-mask: url('modal-info.svg') no-repeat center;\n mask: url('modal-info.svg') no-repeat center; }\n\n.modal .content .message-container {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n margin-left: 2rem; }\n\n.modal .content .message-container .title {\n font-size: 1.8rem;\n font-weight: 600;\n line-height: 2.2rem; }\n\n.modal .content .message-container .message {\n font-size: 1.3rem;\n line-height: 1.8rem;\n margin-top: 0.4rem; }\n\n.modal .wrap-btn {\n display: flex;\n justify-content: space-between;\n width: 100%;\n margin-top: 3.5rem; }\n\n.modal .action-button {\n width: 10rem;\n height: 2.4rem; }\n\n.modal .close-button {\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n margin: 0;\n padding: 0;\n width: 2.4rem;\n height: 2.4rem; }\n\n.modal .close-button .icon {\n -webkit-mask: url('close.svg') no-repeat center;\n mask: url('close.svg') no-repeat center;\n width: 2.4rem;\n height: 2.4rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9jb25maXJtLW1vZGFsL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXF9oZWxwZXJzXFxkaXJlY3RpdmVzXFxjb25maXJtLW1vZGFsXFxjb25maXJtLW1vZGFsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUM7RUFDckMsVUFBVSxFQUFBOztBQUVaO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsMkJBQTJCO0VBQzNCLHFCQUFxQjtFQUNyQixhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLGdCQUFnQixFQUFBOztBQVJsQjtJQVdJLGFBQWEsRUFBQTs7QUFYakI7TUFjTSxjQUFjO01BQ2QsYUFBYTtNQUNiLGNBQWMsRUFBQTs7QUFoQnBCO1FBbUJRLG9EQUE0RDtnQkFBNUQsNENBQTRELEVBQUE7O0FBbkJwRTtNQXdCTSxhQUFhO01BQ2Isc0JBQXNCO01BQ3RCLHVCQUF1QjtNQUN2Qix1QkFBdUI7TUFDdkIsaUJBQWlCLEVBQUE7O0FBNUJ2QjtRQStCUSxpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLG1CQUFtQixFQUFBOztBQWpDM0I7UUFxQ1EsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixrQkFBa0IsRUFBQTs7QUF2QzFCO0lBNkNJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsV0FBVztJQUNYLGtCQUFrQixFQUFBOztBQWhEdEI7SUFvREksWUFBWTtJQUNaLGNBQWMsRUFBQTs7QUFyRGxCO0lBeURJLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sUUFBUTtJQUNSLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixTQUFTO0lBQ1QsVUFBVTtJQUNWLGFBQWE7SUFDYixjQUFjLEVBQUE7O0FBbkVsQjtNQXNFTSwrQ0FBdUQ7Y0FBdkQsdUNBQXVEO01BQ3ZELGFBQWE7TUFDYixjQUFjLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9faGVscGVycy9kaXJlY3RpdmVzL2NvbmZpcm0tbW9kYWwvY29uZmlybS1tb2RhbC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xyXG4gIHotaW5kZXg6IDU7XHJcbn1cclxuLm1vZGFsIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCU7XHJcbiAgcGFkZGluZzogM3JlbTtcclxuICBtaW4td2lkdGg6IDM0cmVtO1xyXG4gIG1heC13aWR0aDogNjByZW07XHJcblxyXG4gIC5jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgd2lkdGg6IDQuNHJlbTtcclxuICAgICAgaGVpZ2h0OiA0LjRyZW07XHJcblxyXG4gICAgICAmLmluZm8ge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9tb2RhbC1pbmZvLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5tZXNzYWdlLWNvbnRhaW5lciB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XHJcblxyXG4gICAgICAudGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuMnJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm1lc3NhZ2Uge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMC40cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud3JhcC1idG4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLXRvcDogMy41cmVtO1xyXG4gIH1cclxuICBcclxuICAuYWN0aW9uLWJ1dHRvbiB7XHJcbiAgICB3aWR0aDogMTByZW07XHJcbiAgICBoZWlnaHQ6IDIuNHJlbTtcclxuICB9XHJcblxyXG4gIC5jbG9zZS1idXR0b24ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDIuNHJlbTtcclxuICAgIGhlaWdodDogMi40cmVtO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Nsb3NlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDIuNHJlbTtcclxuICAgICAgaGVpZ2h0OiAyLjRyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */" - -/***/ }), - -/***/ "./src/app/_helpers/directives/confirm-modal/confirm-modal.component.ts": -/*!******************************************************************************!*\ - !*** ./src/app/_helpers/directives/confirm-modal/confirm-modal.component.ts ***! - \******************************************************************************/ -/*! exports provided: ConfirmModalComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConfirmModalComponent", function() { return ConfirmModalComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - -var ConfirmModalComponent = /** @class */ (function () { - function ConfirmModalComponent() { - this.confirmed = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); - } - ConfirmModalComponent.prototype.ngOnInit = function () { - this.button.nativeElement.focus(); - }; - ConfirmModalComponent.prototype.onSubmit = function () { - this.confirmed.emit(true); - }; - ConfirmModalComponent.prototype.onClose = function () { - this.confirmed.emit(false); - }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", String) - ], ConfirmModalComponent.prototype, "title", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", String) - ], ConfirmModalComponent.prototype, "message", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"])(), - __metadata("design:type", _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"]) - ], ConfirmModalComponent.prototype, "confirmed", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"])('btn'), - __metadata("design:type", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]) - ], ConfirmModalComponent.prototype, "button", void 0); - ConfirmModalComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-confirm-modal', - template: __webpack_require__(/*! ./confirm-modal.component.html */ "./src/app/_helpers/directives/confirm-modal/confirm-modal.component.html"), - styles: [__webpack_require__(/*! ./confirm-modal.component.scss */ "./src/app/_helpers/directives/confirm-modal/confirm-modal.component.scss")] - }), - __metadata("design:paramtypes", []) - ], ConfirmModalComponent); - return ConfirmModalComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/directives/input-disable-selection/input-disable-selection.directive.ts": -/*!**************************************************************************************************!*\ - !*** ./src/app/_helpers/directives/input-disable-selection/input-disable-selection.directive.ts ***! - \**************************************************************************************************/ -/*! exports provided: InputDisableSelectionDirective */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputDisableSelectionDirective", function() { return InputDisableSelectionDirective; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - -var InputDisableSelectionDirective = /** @class */ (function () { - function InputDisableSelectionDirective() { - } - InputDisableSelectionDirective.prototype.handleInput = function (event) { - if (event.target.readOnly) { - event.preventDefault(); - } - }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["HostListener"])('mousedown', ['$event']), - __metadata("design:type", Function), - __metadata("design:paramtypes", [Event]), - __metadata("design:returntype", void 0) - ], InputDisableSelectionDirective.prototype, "handleInput", null); - InputDisableSelectionDirective = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"])({ - selector: 'input' - }), - __metadata("design:paramtypes", []) - ], InputDisableSelectionDirective); - return InputDisableSelectionDirective; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/directives/input-validate/input-validate.directive.ts": -/*!********************************************************************************!*\ - !*** ./src/app/_helpers/directives/input-validate/input-validate.directive.ts ***! - \********************************************************************************/ -/*! exports provided: InputValidateDirective */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputValidateDirective", function() { return InputValidateDirective; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _services_variables_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - -var InputValidateDirective = /** @class */ (function () { - function InputValidateDirective(el, variablesService) { - this.el = el; - this.variablesService = variablesService; - } - Object.defineProperty(InputValidateDirective.prototype, "defineInputType", { - set: function (type) { - this.type = type; - }, - enumerable: true, - configurable: true - }); - InputValidateDirective.prototype.handleInput = function (event) { - if (this.type === 'money') { - this.moneyValidation(event); - } - else if (this.type === 'integer') { - this.integerValidation(event); - } - }; - InputValidateDirective.prototype.moneyValidation = function (event) { - var currentValue = event.target.value; - var originalValue = currentValue; - var OnlyD = /[^\d\.]/g; - var _has_error = currentValue.match(OnlyD); - if (_has_error && _has_error.length) { - currentValue = currentValue.replace(',', '.').replace(OnlyD, ''); - } - var _double_separator = currentValue.match(/\./g); - if (_double_separator && _double_separator.length > 1) { - currentValue = currentValue.substr(0, currentValue.lastIndexOf('.')); - } - if (currentValue.indexOf('.') === 0) { - currentValue = '0' + currentValue; - } - var _zero_fill = currentValue.split('.'); - if (_zero_fill[0].length > 7) { - _zero_fill[0] = _zero_fill[0].substr(0, 7); - } - if (1 in _zero_fill && _zero_fill[1].length) { - _zero_fill[1] = _zero_fill[1].substr(0, this.variablesService.digits); - } - currentValue = _zero_fill.join('.'); - if (currentValue !== originalValue) { - event.target.value = currentValue; - var cursorPosition = event.target.selectionEnd; - event.target.setSelectionRange(cursorPosition, cursorPosition); - event.target.dispatchEvent(new Event('input')); - } - }; - InputValidateDirective.prototype.integerValidation = function (event) { - var currentValue = event.target.value; - var originalValue = currentValue; - var OnlyD = /[^\d]/g; - var _has_error = currentValue.match(OnlyD); - if (_has_error && _has_error.length) { - currentValue = currentValue.replace(OnlyD, ''); - } - if (currentValue !== originalValue) { - var cursorPosition = event.target.selectionEnd; - event.target.value = currentValue; - event.target.setSelectionRange(cursorPosition, cursorPosition); - } - }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])('appInputValidate'), - __metadata("design:type", String), - __metadata("design:paramtypes", [String]) - ], InputValidateDirective.prototype, "defineInputType", null); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["HostListener"])('input', ['$event']), - __metadata("design:type", Function), - __metadata("design:paramtypes", [Event]), - __metadata("design:returntype", void 0) - ], InputValidateDirective.prototype, "handleInput", null); - InputValidateDirective = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"])({ - selector: '[appInputValidate]' - }), - __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"], _services_variables_service__WEBPACK_IMPORTED_MODULE_1__["VariablesService"]]) - ], InputValidateDirective); - return InputValidateDirective; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/directives/modal-container/modal-container.component.html": -/*!************************************************************************************!*\ - !*** ./src/app/_helpers/directives/modal-container/modal-container.component.html ***! - \************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n
    \r\n \r\n
    \r\n {{title}}\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/_helpers/directives/modal-container/modal-container.component.scss": -/*!************************************************************************************!*\ - !*** ./src/app/_helpers/directives/modal-container/modal-container.component.scss ***! - \************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.25); }\n\n.modal {\n position: relative;\n display: flex;\n flex-direction: column;\n background-position: center;\n background-size: 200%;\n padding: 2rem;\n min-width: 34rem;\n max-width: 60rem; }\n\n.modal .content {\n display: flex;\n margin: 1.2rem 0; }\n\n.modal .content .icon {\n flex: 0 0 auto;\n width: 4.4rem;\n height: 4.4rem; }\n\n.modal .content .icon.error {\n -webkit-mask: url('modal-alert.svg') no-repeat center;\n mask: url('modal-alert.svg') no-repeat center; }\n\n.modal .content .icon.success {\n -webkit-mask: url('modal-success.svg') no-repeat center;\n mask: url('modal-success.svg') no-repeat center; }\n\n.modal .content .icon.info {\n -webkit-mask: url('modal-info.svg') no-repeat center;\n mask: url('modal-info.svg') no-repeat center; }\n\n.modal .content .message-container {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n margin-left: 2rem; }\n\n.modal .content .message-container .title {\n font-size: 1.8rem;\n font-weight: 600;\n line-height: 2.2rem; }\n\n.modal .content .message-container .message {\n font-size: 1.3rem;\n line-height: 1.8rem;\n margin-top: 0.4rem; }\n\n.modal .action-button {\n margin: 1.2rem auto 0.6rem;\n width: 10rem;\n height: 2.4rem; }\n\n.modal .close-button {\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n margin: 0;\n padding: 0;\n width: 2.4rem;\n height: 2.4rem; }\n\n.modal .close-button .icon {\n -webkit-mask: url('close.svg') no-repeat center;\n mask: url('close.svg') no-repeat center;\n width: 2.4rem;\n height: 2.4rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9tb2RhbC1jb250YWluZXIvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcX2hlbHBlcnNcXGRpcmVjdGl2ZXNcXG1vZGFsLWNvbnRhaW5lclxcbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUMsRUFBQTs7QUFFdkM7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QiwyQkFBMkI7RUFDM0IscUJBQXFCO0VBQ3JCLGFBQWE7RUFDYixnQkFBZ0I7RUFDaEIsZ0JBQWdCLEVBQUE7O0FBUmxCO0lBV0ksYUFBYTtJQUNiLGdCQUFnQixFQUFBOztBQVpwQjtNQWVNLGNBQWM7TUFDZCxhQUFhO01BQ2IsY0FBYyxFQUFBOztBQWpCcEI7UUFvQlEscURBQTZEO2dCQUE3RCw2Q0FBNkQsRUFBQTs7QUFwQnJFO1FBd0JRLHVEQUErRDtnQkFBL0QsK0NBQStELEVBQUE7O0FBeEJ2RTtRQTRCUSxvREFBNEQ7Z0JBQTVELDRDQUE0RCxFQUFBOztBQTVCcEU7TUFpQ00sYUFBYTtNQUNiLHNCQUFzQjtNQUN0Qix1QkFBdUI7TUFDdkIsdUJBQXVCO01BQ3ZCLGlCQUFpQixFQUFBOztBQXJDdkI7UUF3Q1EsaUJBQWlCO1FBQ2pCLGdCQUFnQjtRQUNoQixtQkFBbUIsRUFBQTs7QUExQzNCO1FBOENRLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsa0JBQWtCLEVBQUE7O0FBaEQxQjtJQXNESSwwQkFBMEI7SUFDMUIsWUFBWTtJQUNaLGNBQWMsRUFBQTs7QUF4RGxCO0lBNERJLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sUUFBUTtJQUNSLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixTQUFTO0lBQ1QsVUFBVTtJQUNWLGFBQWE7SUFDYixjQUFjLEVBQUE7O0FBdEVsQjtNQXlFTSwrQ0FBdUQ7Y0FBdkQsdUNBQXVEO01BQ3ZELGFBQWE7TUFDYixjQUFjLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9faGVscGVycy9kaXJlY3RpdmVzL21vZGFsLWNvbnRhaW5lci9tb2RhbC1jb250YWluZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcclxufVxyXG4ubW9kYWwge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJTtcclxuICBwYWRkaW5nOiAycmVtO1xyXG4gIG1pbi13aWR0aDogMzRyZW07XHJcbiAgbWF4LXdpZHRoOiA2MHJlbTtcclxuXHJcbiAgLmNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbjogMS4ycmVtIDA7XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgd2lkdGg6IDQuNHJlbTtcclxuICAgICAgaGVpZ2h0OiA0LjRyZW07XHJcblxyXG4gICAgICAmLmVycm9yIHtcclxuICAgICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvbW9kYWwtYWxlcnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnN1Y2Nlc3Mge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9tb2RhbC1zdWNjZXNzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5pbmZvIHtcclxuICAgICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvbW9kYWwtaW5mby5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubWVzc2FnZS1jb250YWluZXIge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xyXG5cclxuICAgICAgLnRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjJyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5tZXNzYWdlIHtcclxuICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS44cmVtO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDAuNHJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFjdGlvbi1idXR0b24ge1xyXG4gICAgbWFyZ2luOiAxLjJyZW0gYXV0byAwLjZyZW07XHJcbiAgICB3aWR0aDogMTByZW07XHJcbiAgICBoZWlnaHQ6IDIuNHJlbTtcclxuICB9XHJcblxyXG4gIC5jbG9zZS1idXR0b24ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDIuNHJlbTtcclxuICAgIGhlaWdodDogMi40cmVtO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Nsb3NlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDIuNHJlbTtcclxuICAgICAgaGVpZ2h0OiAyLjRyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */" - -/***/ }), - -/***/ "./src/app/_helpers/directives/modal-container/modal-container.component.ts": -/*!**********************************************************************************!*\ - !*** ./src/app/_helpers/directives/modal-container/modal-container.component.ts ***! - \**********************************************************************************/ -/*! exports provided: ModalContainerComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModalContainerComponent", function() { return ModalContainerComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - -var ModalContainerComponent = /** @class */ (function () { - function ModalContainerComponent(translate) { - this.translate = translate; - this.close = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); - } - ModalContainerComponent.prototype.ngOnInit = function () { - this.button.nativeElement.focus(); - switch (this.type) { - case 'error': - this.title = this.translate.instant('MODALS.ERROR'); - break; - case 'success': - this.title = this.translate.instant('MODALS.SUCCESS'); - break; - case 'info': - this.title = this.translate.instant('MODALS.INFO'); - break; - } - }; - ModalContainerComponent.prototype.onClose = function () { - this.close.emit(); - }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", String) - ], ModalContainerComponent.prototype, "type", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", String) - ], ModalContainerComponent.prototype, "message", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"])(), - __metadata("design:type", Object) - ], ModalContainerComponent.prototype, "close", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"])('btn'), - __metadata("design:type", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]) - ], ModalContainerComponent.prototype, "button", void 0); - ModalContainerComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-modal-container', - template: __webpack_require__(/*! ./modal-container.component.html */ "./src/app/_helpers/directives/modal-container/modal-container.component.html"), - styles: [__webpack_require__(/*! ./modal-container.component.scss */ "./src/app/_helpers/directives/modal-container/modal-container.component.scss")] - }), - __metadata("design:paramtypes", [_ngx_translate_core__WEBPACK_IMPORTED_MODULE_1__["TranslateService"]]) - ], ModalContainerComponent); - return ModalContainerComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/directives/progress-container/progress-container.component.html": -/*!******************************************************************************************!*\ - !*** ./src/app/_helpers/directives/progress-container/progress-container.component.html ***! - \******************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {{ label | translate }}\r\n \r\n
    \r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/_helpers/directives/progress-container/progress-container.component.scss": -/*!******************************************************************************************!*\ - !*** ./src/app/_helpers/directives/progress-container/progress-container.component.scss ***! - \******************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ".progress-bar-container {\n position: absolute;\n bottom: 0;\n left: 0;\n padding: 0 3rem;\n width: 100%;\n height: 3rem; }\n .progress-bar-container .progress-bar {\n position: absolute;\n top: -0.7rem;\n left: 0;\n margin: 0 3rem;\n width: calc(100% - 6rem);\n height: 0.7rem; }\n .progress-bar-container .progress-bar .progress-bar-full {\n height: 0.7rem; }\n .progress-bar-container .progress-labels {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 1.2rem;\n height: 100%; }\n .progress-bar-container .progress-labels span {\n flex: 1 0 0;\n text-align: center; }\n .progress-bar-container .progress-labels span:first-child {\n text-align: left; }\n .progress-bar-container .progress-labels span:last-child {\n text-align: right; }\n .progress-bar-container .progress-time {\n position: absolute;\n top: -3rem;\n left: 50%;\n transform: translateX(-50%);\n font-size: 1.2rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9wcm9ncmVzcy1jb250YWluZXIvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcX2hlbHBlcnNcXGRpcmVjdGl2ZXNcXHByb2dyZXNzLWNvbnRhaW5lclxccHJvZ3Jlc3MtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxPQUFPO0VBQ1AsZUFBZTtFQUNmLFdBQVc7RUFDWCxZQUFZLEVBQUE7RUFOZDtJQVNJLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osT0FBTztJQUNQLGNBQWM7SUFDZCx3QkFBd0I7SUFDeEIsY0FBYyxFQUFBO0VBZGxCO01BaUJNLGNBQWMsRUFBQTtFQWpCcEI7SUFzQkksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsaUJBQWlCO0lBQ2pCLFlBQVksRUFBQTtFQTFCaEI7TUE2Qk0sV0FBVztNQUNYLGtCQUFrQixFQUFBO0VBOUJ4QjtRQWlDUSxnQkFBZ0IsRUFBQTtFQWpDeEI7UUFxQ1EsaUJBQWlCLEVBQUE7RUFyQ3pCO0lBMkNJLGtCQUFrQjtJQUNsQixVQUFVO0lBQ1YsU0FBUztJQUNULDJCQUEyQjtJQUMzQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL19oZWxwZXJzL2RpcmVjdGl2ZXMvcHJvZ3Jlc3MtY29udGFpbmVyL3Byb2dyZXNzLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcGFkZGluZzogMCAzcmVtO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogM3JlbTtcclxuXHJcbiAgLnByb2dyZXNzLWJhciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC0wLjdyZW07XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgbWFyZ2luOiAwIDNyZW07XHJcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNnJlbSk7XHJcbiAgICBoZWlnaHQ6IDAuN3JlbTtcclxuXHJcbiAgICAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xyXG4gICAgICBoZWlnaHQ6IDAuN3JlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wcm9ncmVzcy1sYWJlbHMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgZmxleDogMSAwIDA7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wcm9ncmVzcy10aW1lIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogLTNyZW07XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICB9XHJcbn1cclxuIl19 */" - -/***/ }), - -/***/ "./src/app/_helpers/directives/progress-container/progress-container.component.ts": -/*!****************************************************************************************!*\ - !*** ./src/app/_helpers/directives/progress-container/progress-container.component.ts ***! - \****************************************************************************************/ -/*! exports provided: ProgressContainerComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProgressContainerComponent", function() { return ProgressContainerComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - -var ProgressContainerComponent = /** @class */ (function () { - function ProgressContainerComponent() { - } - ProgressContainerComponent.prototype.ngOnInit = function () { }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", String) - ], ProgressContainerComponent.prototype, "width", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", Array) - ], ProgressContainerComponent.prototype, "labels", void 0); - ProgressContainerComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-progress-container', - template: __webpack_require__(/*! ./progress-container.component.html */ "./src/app/_helpers/directives/progress-container/progress-container.component.html"), - styles: [__webpack_require__(/*! ./progress-container.component.scss */ "./src/app/_helpers/directives/progress-container/progress-container.component.scss")] - }), - __metadata("design:paramtypes", []) - ], ProgressContainerComponent); - return ProgressContainerComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/directives/staking-switch/staking-switch.component.html": -/*!**********************************************************************************!*\ - !*** ./src/app/_helpers/directives/staking-switch/staking-switch.component.html ***! - \**********************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n {{ 'STAKING.SWITCH.ON' | translate }}\r\n \r\n {{ 'STAKING.SWITCH.OFF' | translate }}\r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/_helpers/directives/staking-switch/staking-switch.component.scss": -/*!**********************************************************************************!*\ - !*** ./src/app/_helpers/directives/staking-switch/staking-switch.component.scss ***! - \**********************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ".switch {\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 1rem;\n cursor: pointer;\n font-size: 1rem;\n padding: 0.5rem;\n width: 5rem;\n height: 2rem; }\n .switch .circle {\n border-radius: 1rem;\n width: 1.2rem;\n height: 1.2rem; }\n .switch .option {\n margin: 0 0.2rem;\n line-height: 1.2rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9zdGFraW5nLXN3aXRjaC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxfaGVscGVyc1xcZGlyZWN0aXZlc1xcc3Rha2luZy1zd2l0Y2hcXHN0YWtpbmctc3dpdGNoLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixlQUFlO0VBQ2YsZUFBZTtFQUNmLFdBQVc7RUFDWCxZQUFZLEVBQUE7RUFUZDtJQVlJLG1CQUFtQjtJQUNuQixhQUFhO0lBQ2IsY0FBYyxFQUFBO0VBZGxCO0lBa0JJLGdCQUFnQjtJQUNoQixtQkFBbUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL19oZWxwZXJzL2RpcmVjdGl2ZXMvc3Rha2luZy1zd2l0Y2gvc3Rha2luZy1zd2l0Y2guY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc3dpdGNoIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxuICBwYWRkaW5nOiAwLjVyZW07XHJcbiAgd2lkdGg6IDVyZW07XHJcbiAgaGVpZ2h0OiAycmVtO1xyXG5cclxuICAuY2lyY2xlIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgfVxyXG5cclxuICAub3B0aW9uIHtcclxuICAgIG1hcmdpbjogMCAwLjJyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS4ycmVtO1xyXG4gIH1cclxufVxyXG4iXX0= */" - -/***/ }), - -/***/ "./src/app/_helpers/directives/staking-switch/staking-switch.component.ts": -/*!********************************************************************************!*\ - !*** ./src/app/_helpers/directives/staking-switch/staking-switch.component.ts ***! - \********************************************************************************/ -/*! exports provided: StakingSwitchComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StakingSwitchComponent", function() { return StakingSwitchComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _services_backend_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _services_variables_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - -var StakingSwitchComponent = /** @class */ (function () { - function StakingSwitchComponent(backend, variablesService) { - this.backend = backend; - this.variablesService = variablesService; - this.stakingChange = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); - } - StakingSwitchComponent.prototype.ngOnInit = function () { }; - StakingSwitchComponent.prototype.toggleStaking = function () { - var wallet = this.variablesService.getWallet(this.wallet_id); - if (wallet && wallet.loaded) { - this.stakingChange.emit(!this.staking); - if (!this.staking) { - this.backend.startPosMining(this.wallet_id); - } - else { - this.backend.stopPosMining(this.wallet_id); - } - } - }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", Boolean) - ], StakingSwitchComponent.prototype, "wallet_id", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", Boolean) - ], StakingSwitchComponent.prototype, "staking", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"])(), - __metadata("design:type", Object) - ], StakingSwitchComponent.prototype, "stakingChange", void 0); - StakingSwitchComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-staking-switch', - template: __webpack_require__(/*! ./staking-switch.component.html */ "./src/app/_helpers/directives/staking-switch/staking-switch.component.html"), - styles: [__webpack_require__(/*! ./staking-switch.component.scss */ "./src/app/_helpers/directives/staking-switch/staking-switch.component.scss")] - }), - __metadata("design:paramtypes", [_services_backend_service__WEBPACK_IMPORTED_MODULE_1__["BackendService"], _services_variables_service__WEBPACK_IMPORTED_MODULE_2__["VariablesService"]]) - ], StakingSwitchComponent); - return StakingSwitchComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/directives/tooltip.directive.ts": -/*!**********************************************************!*\ - !*** ./src/app/_helpers/directives/tooltip.directive.ts ***! - \**********************************************************/ -/*! exports provided: TooltipDirective */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipDirective", function() { return TooltipDirective; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - -var TooltipDirective = /** @class */ (function () { - function TooltipDirective(el, renderer, route) { - this.el = el; - this.renderer = renderer; - this.route = route; - this.timeout = 0; - this.timeDelay = 0; - this.delay = 0; - this.showWhenNoOverflow = true; - this.onHide = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); - } - TooltipDirective.prototype.onMouseEnter = function () { - var _this = this; - if (this.showWhenNoOverflow || (!this.showWhenNoOverflow && this.el.nativeElement.offsetWidth < this.el.nativeElement.scrollWidth)) { - this.cursor = 'pointer'; - if (!this.tooltip) { - if (this.timeDelay !== 0) { - this.removeTooltipTimeDelay = setTimeout(function () { - _this.show(); - }, this.timeDelay); - } - else { - this.show(); - } - } - else { - this.cancelHide(); - } - } - }; - TooltipDirective.prototype.onMouseLeave = function () { - clearTimeout(this.removeTooltipTimeDelay); - if (this.tooltip) { - this.hide(); - } - }; - TooltipDirective.prototype.show = function () { - this.create(); - this.placement = this.placement === null ? 'top' : this.placement; - this.setPosition(this.placement); - }; - TooltipDirective.prototype.hide = function () { - var _this = this; - this.removeTooltipTimeout = setTimeout(function () { - _this.renderer.setStyle(_this.tooltip, 'opacity', '0'); - _this.removeTooltipTimeoutInner = setTimeout(function () { - _this.renderer.removeChild(document.body, _this.tooltip); - _this.tooltip.removeEventListener('mouseenter', _this.enter); - _this.tooltip.removeEventListener('mouseleave', _this.leave); - _this.tooltip = null; - _this.onHide.emit(true); - }, _this.delay); - }, this.timeout); - }; - TooltipDirective.prototype.cancelHide = function () { - clearTimeout(this.removeTooltipTimeout); - clearTimeout(this.removeTooltipTimeoutInner); - this.renderer.setStyle(this.tooltip, 'opacity', '1'); - }; - TooltipDirective.prototype.create = function () { - var _this = this; - this.tooltip = this.renderer.createElement('div'); - var innerBlock = this.renderer.createElement('div'); - if (typeof this.tooltipInner === 'string') { - innerBlock.innerHTML = this.tooltipInner; - } - else { - innerBlock = this.tooltipInner; - } - this.renderer.addClass(innerBlock, 'tooltip-inner'); - this.renderer.addClass(innerBlock, 'scrolled-content'); - this.renderer.appendChild(this.tooltip, innerBlock); - this.renderer.appendChild(document.body, this.tooltip); - this.enter = function () { - _this.cancelHide(); - }; - this.tooltip.addEventListener('mouseenter', this.enter); - this.leave = function () { - if (_this.tooltip) { - _this.hide(); - } - }; - this.tooltip.addEventListener('mouseleave', this.leave); - this.renderer.setStyle(document.body, 'position', 'relative'); - this.renderer.setStyle(this.tooltip, 'position', 'absolute'); - if (this.tooltipClass !== null) { - var classes = this.tooltipClass.split(' '); - for (var i = 0; i < classes.length; i++) { - this.renderer.addClass(this.tooltip, classes[i]); - } - } - this.renderer.setStyle(this.tooltip, 'opacity', '0'); - this.renderer.setStyle(this.tooltip, '-webkit-transition', "opacity " + this.delay + "ms"); - this.renderer.setStyle(this.tooltip, '-moz-transition', "opacity " + this.delay + "ms"); - this.renderer.setStyle(this.tooltip, '-o-transition', "opacity " + this.delay + "ms"); - this.renderer.setStyle(this.tooltip, 'transition', "opacity " + this.delay + "ms"); - window.setTimeout(function () { - _this.renderer.setStyle(_this.tooltip, 'opacity', '1'); - }, 0); - }; - TooltipDirective.prototype.setPosition = function (placement) { - var hostPos = this.el.nativeElement.getBoundingClientRect(); - this.renderer.addClass(this.tooltip, 'ng-tooltip-' + placement); - var topExit = hostPos.top - this.tooltip.getBoundingClientRect().height - parseInt(getComputedStyle(this.tooltip).marginTop, 10) < 0; - var bottomExit = window.innerHeight < hostPos.bottom + this.tooltip.getBoundingClientRect().height + parseInt(getComputedStyle(this.tooltip).marginTop, 10); - switch (placement) { - case 'top': - if (topExit) { - this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement); - this.setPosition('bottom'); - return; - } - else { - this.renderer.setStyle(this.tooltip, 'left', hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px'); - this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px'); - this.checkSides(); - } - break; - case 'top-left': - if (topExit) { - this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement); - this.setPosition('bottom-left'); - return; - } - else { - this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px'); - this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px'); - this.checkSides(); - } - break; - case 'top-right': - if (topExit) { - this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement); - this.setPosition('bottom-right'); - return; - } - else { - this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px'); - this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px'); - this.checkSides(); - } - break; - case 'bottom': - if (bottomExit) { - this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement); - this.setPosition('top'); - return; - } - else { - this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px'); - this.renderer.setStyle(this.tooltip, 'left', hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px'); - this.checkSides(); - } - break; - case 'bottom-left': - if (bottomExit) { - this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement); - this.setPosition('top-left'); - return; - } - else { - this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px'); - this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px'); - this.checkSides(); - } - break; - case 'bottom-right': - if (bottomExit) { - this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement); - this.setPosition('top-right'); - return; - } - else { - this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px'); - this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px'); - this.checkSides(); - } - break; - case 'left': - this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px'); - this.renderer.setStyle(this.tooltip, 'top', hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px'); - break; - case 'left-top': - this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px'); - this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px'); - break; - case 'left-bottom': - this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px'); - this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px'); - break; - case 'right': - this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px'); - this.renderer.setStyle(this.tooltip, 'top', hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px'); - break; - case 'right-top': - this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px'); - this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px'); - break; - case 'right-bottom': - this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px'); - this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px'); - break; - } - }; - TooltipDirective.prototype.checkSides = function () { - if (this.tooltip.getBoundingClientRect().left < 0) { - this.renderer.setStyle(this.tooltip, 'left', 0); - } - if (this.tooltip.getBoundingClientRect().right > window.innerWidth) { - this.renderer.setStyle(this.tooltip, 'left', window.innerWidth - this.tooltip.getBoundingClientRect().width + 'px'); - } - }; - TooltipDirective.prototype.ngOnDestroy = function () { - clearTimeout(this.removeTooltipTimeout); - clearTimeout(this.removeTooltipTimeoutInner); - clearTimeout(this.removeTooltipTimeDelay); - if (this.tooltip) { - this.renderer.removeChild(document.body, this.tooltip); - this.tooltip = null; - } - }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"])('style.cursor'), - __metadata("design:type", Object) - ], TooltipDirective.prototype, "cursor", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])('tooltip'), - __metadata("design:type", Object) - ], TooltipDirective.prototype, "tooltipInner", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", String) - ], TooltipDirective.prototype, "placement", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", String) - ], TooltipDirective.prototype, "tooltipClass", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", Object) - ], TooltipDirective.prototype, "timeout", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", Object) - ], TooltipDirective.prototype, "timeDelay", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", Object) - ], TooltipDirective.prototype, "delay", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", Object) - ], TooltipDirective.prototype, "showWhenNoOverflow", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"])(), - __metadata("design:type", Object) - ], TooltipDirective.prototype, "onHide", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["HostListener"])('mouseenter'), - __metadata("design:type", Function), - __metadata("design:paramtypes", []), - __metadata("design:returntype", void 0) - ], TooltipDirective.prototype, "onMouseEnter", null); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["HostListener"])('mouseleave'), - __metadata("design:type", Function), - __metadata("design:paramtypes", []), - __metadata("design:returntype", void 0) - ], TooltipDirective.prototype, "onMouseLeave", null); - TooltipDirective = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"])({ - selector: '[tooltip]' - }), - __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"], _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"], _angular_router__WEBPACK_IMPORTED_MODULE_1__["ActivatedRoute"]]) - ], TooltipDirective); - return TooltipDirective; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/directives/transaction-details/transaction-details.component.html": -/*!********************************************************************************************!*\ - !*** ./src/app/_helpers/directives/transaction-details/transaction-details.component.html ***! - \********************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n
    \r\n {{ 'HISTORY.DETAILS.ID' | translate }}\r\n {{transaction.tx_hash}}\r\n {{ 'HISTORY.DETAILS.SIZE' | translate }}\r\n {{ 'HISTORY.DETAILS.SIZE_VALUE' | translate : {value: transaction.tx_blob_size} }}\r\n
    \r\n
    \r\n {{ 'HISTORY.DETAILS.HEIGHT' | translate }}\r\n {{transaction.height}}\r\n {{ 'HISTORY.DETAILS.CONFIRMATION' | translate }}\r\n {{transaction.height === 0 ? 0 : variablesService.height_app - transaction.height}}\r\n
    \r\n
    \r\n {{ 'HISTORY.DETAILS.INPUTS' | translate }}\r\n {{inputs.join(', ')}}\r\n {{ 'HISTORY.DETAILS.OUTPUTS' | translate }}\r\n {{outputs.join(', ')}}\r\n
    \r\n
    \r\n {{ 'HISTORY.DETAILS.PAYMENT_ID' | translate }}\r\n \r\n {{transaction.payment_id}}\r\n \r\n
    \r\n
    \r\n {{ 'HISTORY.DETAILS.COMMENT' | translate }}\r\n \r\n {{transaction.comment}}\r\n \r\n
    \r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/_helpers/directives/transaction-details/transaction-details.component.scss": -/*!********************************************************************************************!*\ - !*** ./src/app/_helpers/directives/transaction-details/transaction-details.component.scss ***! - \********************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%; }\n\n.table {\n border-top: 0.2rem solid #ebebeb;\n margin: 0 3rem;\n padding: 0.5rem 0; }\n\n.table .row {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n border-top: none;\n line-height: 3rem;\n margin: 0 -3rem;\n width: 100%;\n height: 3rem; }\n\n.table .row .cell {\n flex-shrink: 0;\n flex-grow: 0;\n padding: 0 1rem;\n overflow: hidden;\n text-overflow: ellipsis; }\n\n.table .row .cell:first-child {\n padding-left: 3rem; }\n\n.table .row .cell:last-child {\n padding-right: 3rem; }\n\n.table .row .cell.key-value {\n cursor: pointer; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy90cmFuc2FjdGlvbi1kZXRhaWxzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXF9oZWxwZXJzXFxkaXJlY3RpdmVzXFx0cmFuc2FjdGlvbi1kZXRhaWxzXFx0cmFuc2FjdGlvbi1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVyxFQUFBOztBQUdiO0VBQ0UsZ0NBQWdDO0VBQ2hDLGNBQWM7RUFDZCxpQkFBaUIsRUFBQTs7QUFIbkI7SUFNSSxhQUFhO0lBQ2IsMkJBQTJCO0lBQzNCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixXQUFXO0lBQ1gsWUFBWSxFQUFBOztBQWJoQjtNQWdCTSxjQUFjO01BQ2QsWUFBWTtNQUNaLGVBQWU7TUFDZixnQkFBZ0I7TUFDaEIsdUJBQXVCLEVBQUE7O0FBcEI3QjtRQXVCUSxrQkFBa0IsRUFBQTs7QUF2QjFCO1FBMkJRLG1CQUFtQixFQUFBOztBQTNCM0I7UUErQlEsZUFBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy90cmFuc2FjdGlvbi1kZXRhaWxzL3RyYW5zYWN0aW9uLWRldGFpbHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4udGFibGUge1xyXG4gIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCAjZWJlYmViO1xyXG4gIG1hcmdpbjogMCAzcmVtO1xyXG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xyXG5cclxuICAucm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgYm9yZGVyLXRvcDogbm9uZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xyXG4gICAgbWFyZ2luOiAwIC0zcmVtO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDNyZW07XHJcblxyXG4gICAgLmNlbGwge1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgZmxleC1ncm93OiAwO1xyXG4gICAgICBwYWRkaW5nOiAwIDFyZW07XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG5cclxuICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzcmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDNyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYua2V5LXZhbHVlIHtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */" - -/***/ }), - -/***/ "./src/app/_helpers/directives/transaction-details/transaction-details.component.ts": -/*!******************************************************************************************!*\ - !*** ./src/app/_helpers/directives/transaction-details/transaction-details.component.ts ***! - \******************************************************************************************/ -/*! exports provided: TransactionDetailsComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TransactionDetailsComponent", function() { return TransactionDetailsComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _models_transaction_model__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../models/transaction.model */ "./src/app/_helpers/models/transaction.model.ts"); -/* harmony import */ var _services_variables_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _services_backend_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../pipes/int-to-money.pipe */ "./src/app/_helpers/pipes/int-to-money.pipe.ts"); -/* harmony import */ var _shared_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../_shared/constants */ "./src/app/_shared/constants.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - -var TransactionDetailsComponent = /** @class */ (function () { - function TransactionDetailsComponent(variablesService, backendService, intToMoneyPipe) { - this.variablesService = variablesService; - this.backendService = backendService; - this.intToMoneyPipe = intToMoneyPipe; - this.inputs = []; - this.outputs = []; - } - TransactionDetailsComponent.prototype.ngOnInit = function () { - for (var input in this.transaction.td['spn']) { - if (this.transaction.td['spn'].hasOwnProperty(input)) { - this.inputs.push(this.intToMoneyPipe.transform(this.transaction.td['spn'][input])); - } - } - for (var output in this.transaction.td['rcv']) { - if (this.transaction.td['rcv'].hasOwnProperty(output)) { - this.outputs.push(this.intToMoneyPipe.transform(this.transaction.td['rcv'][output])); - } - } - }; - TransactionDetailsComponent.prototype.openInBrowser = function (tr) { - this.backendService.openUrlInBrowser((this.variablesService.testnet ? _shared_constants__WEBPACK_IMPORTED_MODULE_5__["BLOCK_EXPLORER_TN_TX_URL_PREFIX"] : _shared_constants__WEBPACK_IMPORTED_MODULE_5__["BLOCK_EXPLORER_TX_URL_PREFIX"]) + tr); - }; - TransactionDetailsComponent.prototype.ngOnDestroy = function () { }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", _models_transaction_model__WEBPACK_IMPORTED_MODULE_1__["Transaction"]) - ], TransactionDetailsComponent.prototype, "transaction", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", Array) - ], TransactionDetailsComponent.prototype, "sizes", void 0); - TransactionDetailsComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-transaction-details', - template: __webpack_require__(/*! ./transaction-details.component.html */ "./src/app/_helpers/directives/transaction-details/transaction-details.component.html"), - styles: [__webpack_require__(/*! ./transaction-details.component.scss */ "./src/app/_helpers/directives/transaction-details/transaction-details.component.scss")] - }), - __metadata("design:paramtypes", [_services_variables_service__WEBPACK_IMPORTED_MODULE_2__["VariablesService"], _services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"], _pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_4__["IntToMoneyPipe"]]) - ], TransactionDetailsComponent); - return TransactionDetailsComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/models/transaction.model.ts": -/*!******************************************************!*\ - !*** ./src/app/_helpers/models/transaction.model.ts ***! - \******************************************************/ -/*! exports provided: Transaction */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Transaction", function() { return Transaction; }); -var Transaction = /** @class */ (function () { - function Transaction() { - } - return Transaction; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/models/wallet.model.ts": -/*!*************************************************!*\ - !*** ./src/app/_helpers/models/wallet.model.ts ***! - \*************************************************/ -/*! exports provided: Wallet */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Wallet", function() { return Wallet; }); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! bignumber.js */ "./node_modules/bignumber.js/bignumber.js"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_0__); - -var Wallet = /** @class */ (function () { - function Wallet(id, name, pass, path, address, balance, unlocked_balance, mined, tracking) { - if (mined === void 0) { mined = 0; } - if (tracking === void 0) { tracking = ''; } - this.updated = false; - this.history = []; - this.pages = []; - this.excluded_history = []; - this.contracts = []; - this.send_data = { - address: null, - amount: null, - comment: null, - mixin: null, - fee: null, - hide: null - }; - this.wallet_id = id; - this.name = name; - this.pass = pass; - this.path = path; - this.address = address; - this.balance = balance; - this.unlocked_balance = unlocked_balance; - this.mined_total = mined; - this.tracking_hey = tracking; - this.alias = {}; - this.staking = false; - this.new_messages = 0; - this.new_contracts = 0; - this.history = []; - this.excluded_history = []; - this.progress = 0; - this.loaded = false; - } - Wallet.prototype.getMoneyEquivalent = function (equivalent) { - return this.balance.multipliedBy(equivalent).toFixed(0); - }; - Wallet.prototype.havePass = function () { - return (this.pass !== '' && this.pass !== null); - }; - Wallet.prototype.isActive = function (id) { - return this.wallet_id === id; - }; - Wallet.prototype.prepareHistoryItem = function (item) { - if (item.tx_type === 4) { - item.sortFee = item.amount.plus(item.fee).negated(); - item.sortAmount = new bignumber_js__WEBPACK_IMPORTED_MODULE_0__["BigNumber"](0); - } - else if (item.tx_type === 3) { - item.sortFee = new bignumber_js__WEBPACK_IMPORTED_MODULE_0__["BigNumber"](0); - } - else if ((item.hasOwnProperty('contract') && (item.contract[0].state === 3 || item.contract[0].state === 6 || item.contract[0].state === 601) && !item.contract[0].is_a)) { - item.sortFee = item.fee.negated(); - item.sortAmount = item.amount; - } - else { - if (!item.is_income) { - item.sortFee = item.fee.negated(); - item.sortAmount = item.amount.negated(); - } - else { - item.sortAmount = item.amount; - } - } - return item; - }; - Wallet.prototype.prepareHistory = function (items) { - for (var i = 0; i < items.length; i++) { - if ((items[i].tx_type === 7 && items[i].is_income) || (items[i].tx_type === 11 && items[i].is_income) || (items[i].amount.eq(0) && items[i].fee.eq(0) && !items[i].is_mining)) { - var exists = false; - for (var j = 0; j < this.excluded_history.length; j++) { - if (this.excluded_history[j].tx_hash === items[i].tx_hash) { - exists = true; - if (this.excluded_history[j].height !== items[i].height) { - this.excluded_history[j] = items[i]; - } - break; - } - } - if (!exists) { - this.excluded_history.push(items[i]); - } - } - else { - var exists = false; - for (var j = 0; j < this.history.length; j++) { - if (this.history[j].tx_hash === items[i].tx_hash) { - exists = true; - if (this.history[j].height !== items[i].height) { - this.history[j] = this.prepareHistoryItem(items[i]); - } - break; - } - } - if (!exists) { - if (this.history.length && items[i].timestamp >= this.history[0].timestamp) { - this.history.unshift(this.prepareHistoryItem(items[i])); - } - else { - this.history.push(this.prepareHistoryItem(items[i])); - } - } - } - } - }; - Wallet.prototype.removeFromHistory = function (hash) { - for (var i = 0; i < this.history.length; i++) { - if (this.history[i].tx_hash === hash) { - this.history.splice(i, 1); - break; - } - } - }; - Wallet.prototype.prepareContractsAfterOpen = function (items, exp_med_ts, height_app, viewedContracts, notViewedContracts) { - var wallet = this; - var _loop_1 = function (i) { - var contract = items[i]; - var contractTransactionExist = false; - if (wallet && wallet.history) { - contractTransactionExist = wallet.history.some(function (elem) { return elem.contract && elem.contract.length && elem.contract[0].contract_id === contract.contract_id; }); - } - if (!contractTransactionExist && wallet && wallet.excluded_history) { - contractTransactionExist = wallet.excluded_history.some(function (elem) { return elem.contract && elem.contract.length && elem.contract[0].contract_id === contract.contract_id; }); - } - if (!contractTransactionExist) { - contract.state = 140; - } - else if (contract.state === 1 && contract.expiration_time < exp_med_ts) { - contract.state = 110; - } - else if (contract.state === 2 && contract.cancel_expiration_time !== 0 && contract.cancel_expiration_time < exp_med_ts && contract.height === 0) { - var searchResult1 = viewedContracts.some(function (elem) { return elem.state === 2 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id; }); - if (!searchResult1) { - contract.state = 130; - contract.is_new = true; - } - } - else if (contract.state === 1) { - var searchResult2 = notViewedContracts.find(function (elem) { return elem.state === 110 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id; }); - if (searchResult2) { - if (searchResult2.time === contract.expiration_time) { - contract.state = 110; - } - else { - for (var j = 0; j < notViewedContracts.length; j++) { - if (notViewedContracts[j].contract_id === contract.contract_id && notViewedContracts[j].is_a === contract.is_a) { - notViewedContracts.splice(j, 1); - break; - } - } - for (var j = 0; j < viewedContracts.length; j++) { - if (viewedContracts[j].contract_id === contract.contract_id && viewedContracts[j].is_a === contract.is_a) { - viewedContracts.splice(j, 1); - break; - } - } - } - } - } - else if (contract.state === 2 && (contract.height === 0 || (height_app - contract.height) < 10)) { - contract.state = 201; - } - else if (contract.state === 2) { - var searchResult3 = viewedContracts.some(function (elem) { return elem.state === 120 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id; }); - if (searchResult3) { - contract.state = 120; - } - } - else if (contract.state === 5) { - var searchResult4 = notViewedContracts.find(function (elem) { return elem.state === 130 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id; }); - if (searchResult4) { - if (searchResult4.time === contract.cancel_expiration_time) { - contract.state = 130; - } - else { - for (var j = 0; j < notViewedContracts.length; j++) { - if (notViewedContracts[j].contract_id === contract.contract_id && notViewedContracts[j].is_a === contract.is_a) { - notViewedContracts.splice(j, 1); - break; - } - } - for (var j = 0; j < viewedContracts.length; j++) { - if (viewedContracts[j].contract_id === contract.contract_id && viewedContracts[j].is_a === contract.is_a) { - viewedContracts.splice(j, 1); - break; - } - } - } - } - } - else if (contract.state === 6 && (contract.height === 0 || (height_app - contract.height) < 10)) { - contract.state = 601; - } - var searchResult = viewedContracts.some(function (elem) { return elem.state === contract.state && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id; }); - contract.is_new = !searchResult; - wallet.contracts.push(contract); - }; - for (var i = 0; i < items.length; i++) { - _loop_1(i); - } - this.recountNewContracts(); - }; - Wallet.prototype.recountNewContracts = function () { - this.new_contracts = (this.contracts.filter(function (item) { return item.is_new === true; })).length; - }; - Wallet.prototype.getContract = function (id) { - for (var i = 0; i < this.contracts.length; i++) { - if (this.contracts[i].contract_id === id) { - return this.contracts[i]; - } - } - return null; - }; - return Wallet; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/pipes/contract-status-messages.pipe.ts": -/*!*****************************************************************!*\ - !*** ./src/app/_helpers/pipes/contract-status-messages.pipe.ts ***! - \*****************************************************************/ -/*! exports provided: ContractStatusMessagesPipe */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContractStatusMessagesPipe", function() { return ContractStatusMessagesPipe; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - -var ContractStatusMessagesPipe = /** @class */ (function () { - function ContractStatusMessagesPipe(translate) { - this.translate = translate; - } - ContractStatusMessagesPipe.prototype.getStateSeller = function (stateNum) { - var state = { part1: '', part2: '' }; - switch (stateNum) { - case 1: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NEW_CONTRACT'); - break; - case 110: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED'); - break; - case 201: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.ACCEPTED'); - state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAIT'); - break; - case 2: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAITING_BUYER'); - break; - case 3: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.COMPLETED'); - break; - case 4: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NOT_RECEIVED'); - state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NULLIFIED'); - break; - case 5: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.PROPOSAL_CANCEL'); - break; - case 601: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.BEING_CANCELLED'); - break; - case 6: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.CANCELLED'); - break; - case 130: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED_CANCEL'); - break; - case 140: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.EXPIRED'); - break; - } - return state.part1 + (state.part2.length ? '. ' + state.part2 : ''); - }; - ContractStatusMessagesPipe.prototype.getStateBuyer = function (stateNum) { - var state = { part1: '', part2: '' }; - switch (stateNum) { - case 1: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING'); - break; - case 110: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED'); - break; - case 201: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED'); - state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAIT'); - break; - case 2: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED'); - break; - case 120: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_SELLER'); - break; - case 3: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.COMPLETED'); - break; - case 4: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NOT_RECEIVED'); - state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NULLIFIED'); - break; - case 5: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_CANCEL'); - break; - case 601: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.BEING_CANCELLED'); - break; - case 6: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.CANCELLED'); - break; - case 130: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED_CANCEL'); - break; - case 140: - state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.EXPIRED'); - break; - } - return state.part1 + (state.part2.length ? '. ' + state.part2 : ''); - }; - ContractStatusMessagesPipe.prototype.transform = function (state, is_a) { - if (is_a) { - return this.getStateBuyer(state); - } - else { - return this.getStateSeller(state); - } - }; - ContractStatusMessagesPipe = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Pipe"])({ - name: 'contractStatusMessages' - }), - __metadata("design:paramtypes", [_ngx_translate_core__WEBPACK_IMPORTED_MODULE_1__["TranslateService"]]) - ], ContractStatusMessagesPipe); - return ContractStatusMessagesPipe; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/pipes/contract-time-left.pipe.ts": -/*!***********************************************************!*\ - !*** ./src/app/_helpers/pipes/contract-time-left.pipe.ts ***! - \***********************************************************/ -/*! exports provided: ContractTimeLeftPipe */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContractTimeLeftPipe", function() { return ContractTimeLeftPipe; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _services_variables_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - -var ContractTimeLeftPipe = /** @class */ (function () { - function ContractTimeLeftPipe(service, translate) { - this.service = service; - this.translate = translate; - } - ContractTimeLeftPipe.prototype.transform = function (value, arg) { - var time = parseInt(((parseInt(value, 10) - this.service.exp_med_ts) / 3600).toFixed(0), 10); - var type = arg || 0; - if (time === 0) { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_LESS_ONE'); - } - if (this.service.settings.language === 'en') { - if (type === 0) { - if (time === 1) { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', { time: time }); - } - else { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', { time: time }); - } - } - else if (type === 1) { - if (time === 1) { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', { time: time }); - } - else { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', { time: time }); - } - } - else if (type === 2) { - if (time === 1) { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', { time: time }); - } - else { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', { time: time }); - } - } - } - else { - var rest = time % 10; - if (type === 0) { - if (((time > 20) && (rest === 1)) || time === 1) { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', { time: time }); - } - else if ((time > 1) && (time < 5) || ((time > 20) && (rest === 2 || rest === 3 || rest === 4))) { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', { time: time }); - } - else { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT', { time: time }); - } - } - else if (type === 1) { - if (((time > 20) && (rest === 1)) || time === 1) { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', { time: time }); - } - else if ((time > 1) && (time < 5) || ((time > 20) && (rest === 2 || rest === 3 || rest === 4))) { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', { time: time }); - } - else { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_RESPONSE', { time: time }); - } - } - else if (type === 2) { - if (((time > 20) && (rest === 1)) || time === 1) { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', { time: time }); - } - else if ((time > 1) && (time < 5) || ((time > 20) && (rest === 2 || rest === 3 || rest === 4))) { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', { time: time }); - } - else { - return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_WAITING', { time: time }); - } - } - } - return null; - }; - ContractTimeLeftPipe = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Pipe"])({ - name: 'contractTimeLeft' - }), - __metadata("design:paramtypes", [_services_variables_service__WEBPACK_IMPORTED_MODULE_1__["VariablesService"], _ngx_translate_core__WEBPACK_IMPORTED_MODULE_2__["TranslateService"]]) - ], ContractTimeLeftPipe); - return ContractTimeLeftPipe; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/pipes/history-type-messages.pipe.ts": -/*!**************************************************************!*\ - !*** ./src/app/_helpers/pipes/history-type-messages.pipe.ts ***! - \**************************************************************/ -/*! exports provided: HistoryTypeMessagesPipe */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HistoryTypeMessagesPipe", function() { return HistoryTypeMessagesPipe; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - -var HistoryTypeMessagesPipe = /** @class */ (function () { - function HistoryTypeMessagesPipe(translate) { - this.translate = translate; - } - HistoryTypeMessagesPipe.prototype.transform = function (item, args) { - if (item.tx_type === 0) { - if (item.remote_addresses && item.remote_addresses[0]) { - return item.remote_addresses[0]; - } - else { - if (item.is_income) { - return this.translate.instant('HISTORY.TYPE_MESSAGES.HIDDEN'); - } - else { - return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED'); - } - } - } - else if (item.tx_type === 6 && item.height === 0) { - return 'unknown'; - } - else if (item.tx_type === 9) { - if (item.hasOwnProperty('contract') && item.contract[0].is_a) { - return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_BUYER'); - } - else { - return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_SELLER'); - } - } - else { - switch (item.tx_type) { - // case 0: - // return ''; - // case 1: - // return ''; - // case 2: - // return ''; - // case 3: - // return ''; - case 4: - return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_ALIAS'); - case 5: - return this.translate.instant('HISTORY.TYPE_MESSAGES.UPDATE_ALIAS'); - case 6: - return (item.td['spn'] && item.td['spn'].length) ? this.translate.instant('HISTORY.TYPE_MESSAGES.POS_REWARD') : this.translate.instant('HISTORY.TYPE_MESSAGES.POW_REWARD'); - case 7: - return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_CONTRACT'); - case 8: - return this.translate.instant('HISTORY.TYPE_MESSAGES.PLEDGE_CONTRACT'); - // case 9: - // return ''; - case 10: - return this.translate.instant('HISTORY.TYPE_MESSAGES.NULLIFY_CONTRACT'); - case 11: - return this.translate.instant('HISTORY.TYPE_MESSAGES.PROPOSAL_CANCEL_CONTRACT'); - case 12: - return this.translate.instant('HISTORY.TYPE_MESSAGES.CANCEL_CONTRACT'); - } - } - return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED'); - }; - HistoryTypeMessagesPipe = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Pipe"])({ - name: 'historyTypeMessages' - }), - __metadata("design:paramtypes", [_ngx_translate_core__WEBPACK_IMPORTED_MODULE_1__["TranslateService"]]) - ], HistoryTypeMessagesPipe); - return HistoryTypeMessagesPipe; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/pipes/int-to-money.pipe.ts": -/*!*****************************************************!*\ - !*** ./src/app/_helpers/pipes/int-to-money.pipe.ts ***! - \*****************************************************/ -/*! exports provided: IntToMoneyPipe */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IntToMoneyPipe", function() { return IntToMoneyPipe; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _services_variables_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! bignumber.js */ "./node_modules/bignumber.js/bignumber.js"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_2__); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - -var IntToMoneyPipe = /** @class */ (function () { - function IntToMoneyPipe(variablesService) { - this.variablesService = variablesService; - } - IntToMoneyPipe.prototype.transform = function (value, args) { - if (value === 0 || value === undefined) { - return '0'; - } - var maxFraction = this.variablesService.digits; - if (args) { - maxFraction = parseInt(args, 10); - } - var power = Math.pow(10, this.variablesService.digits); - var str = (new bignumber_js__WEBPACK_IMPORTED_MODULE_2__["BigNumber"](value)).div(power).toFixed(maxFraction); - for (var i = str.length - 1; i >= 0; i--) { - if (str[i] !== '0') { - str = str.substr(0, i + 1); - break; - } - } - if (str[str.length - 1] === '.') { - str = str.substr(0, str.length - 1); - } - return str; - }; - IntToMoneyPipe = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Pipe"])({ - name: 'intToMoney' - }), - __metadata("design:paramtypes", [_services_variables_service__WEBPACK_IMPORTED_MODULE_1__["VariablesService"]]) - ], IntToMoneyPipe); - return IntToMoneyPipe; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/pipes/money-to-int.pipe.ts": -/*!*****************************************************!*\ - !*** ./src/app/_helpers/pipes/money-to-int.pipe.ts ***! - \*****************************************************/ -/*! exports provided: MoneyToIntPipe */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MoneyToIntPipe", function() { return MoneyToIntPipe; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _services_variables_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! bignumber.js */ "./node_modules/bignumber.js/bignumber.js"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_2__); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - -var MoneyToIntPipe = /** @class */ (function () { - function MoneyToIntPipe(variablesService) { - this.variablesService = variablesService; - } - MoneyToIntPipe.prototype.transform = function (value, args) { - var CURRENCY_DISPLAY_DECIMAL_POINT = this.variablesService.digits; - var result; - if (value) { - var am_str = value.toString().trim(); - var point_index = am_str.indexOf('.'); - var fraction_size = 0; - if (-1 !== point_index) { - fraction_size = am_str.length - point_index - 1; - while (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size && '0' === am_str[am_str.length - 1]) { - am_str = am_str.slice(0, am_str.length - 1); - --fraction_size; - } - if (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size) { - return undefined; - } - am_str = am_str.slice(0, point_index) + am_str.slice(point_index + 1, am_str.length); - } - else { - fraction_size = 0; - } - if (!am_str.length) { - return undefined; - } - if (fraction_size < CURRENCY_DISPLAY_DECIMAL_POINT) { - for (var i = 0; i !== CURRENCY_DISPLAY_DECIMAL_POINT - fraction_size; i++) { - am_str = am_str + '0'; - } - } - result = (new bignumber_js__WEBPACK_IMPORTED_MODULE_2__["BigNumber"](am_str)).integerValue(); - } - return result; - }; - MoneyToIntPipe = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Pipe"])({ - name: 'moneyToInt' - }), - __metadata("design:paramtypes", [_services_variables_service__WEBPACK_IMPORTED_MODULE_1__["VariablesService"]]) - ], MoneyToIntPipe); - return MoneyToIntPipe; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/pipes/safe-html.pipe.ts": -/*!**************************************************!*\ - !*** ./src/app/_helpers/pipes/safe-html.pipe.ts ***! - \**************************************************/ -/*! exports provided: SafeHTMLPipe */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SafeHTMLPipe", function() { return SafeHTMLPipe; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/fesm5/platform-browser.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - -var SafeHTMLPipe = /** @class */ (function () { - function SafeHTMLPipe(sanitizer) { - this.sanitizer = sanitizer; - } - SafeHTMLPipe.prototype.transform = function (html) { - return this.sanitizer.bypassSecurityTrustHtml(html); - }; - SafeHTMLPipe = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Pipe"])({ - name: 'safeHTML' - }), - __metadata("design:paramtypes", [_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__["DomSanitizer"]]) - ], SafeHTMLPipe); - return SafeHTMLPipe; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/services/backend.service.ts": -/*!******************************************************!*\ - !*** ./src/app/_helpers/services/backend.service.ts ***! - \******************************************************/ -/*! exports provided: BackendService */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BackendService", function() { return BackendService; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -/* harmony import */ var _variables_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _modal_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modal.service */ "./src/app/_helpers/services/modal.service.ts"); -/* harmony import */ var _pipes_money_to_int_pipe__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../pipes/money-to-int.pipe */ "./src/app/_helpers/pipes/money-to-int.pipe.ts"); -/* harmony import */ var json_bignumber__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! json-bignumber */ "./node_modules/json-bignumber/src/JSONBigNumber.js"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! bignumber.js */ "./node_modules/bignumber.js/bignumber.js"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_7__); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - - -var BackendService = /** @class */ (function () { - function BackendService(translate, variablesService, modalService, moneyToIntPipe) { - this.translate = translate; - this.variablesService = variablesService; - this.modalService = modalService; - this.moneyToIntPipe = moneyToIntPipe; - this.backendLoaded = false; - } - BackendService_1 = BackendService; - BackendService.bigNumberParser = function (key, val) { - if (val.constructor.name === 'BigNumber' && ['balance', 'unlocked_balance', 'amount', 'fee', 'b_fee', 'to_pay', 'a_pledge', 'b_pledge', 'coast', 'a'].indexOf(key) === -1) { - return val.toNumber(); - } - if (key === 'rcv' || key === 'spn') { - for (var i = 0; i < val.length; i++) { - val[i] = new bignumber_js__WEBPACK_IMPORTED_MODULE_7__["BigNumber"](val[i]); - } - } - return val; - }; - BackendService.Debug = function (type, message) { - switch (type) { - case 0: - console.error(message); - break; - case 1: - console.warn(message); - break; - case 2: - console.log(message); - break; - default: - console.log(message); - break; - } - }; - BackendService.prototype.informerRun = function (error, params, command) { - var error_translate = ''; - switch (error) { - case 'NOT_ENOUGH_MONEY': - error_translate = 'ERRORS.NOT_ENOUGH_MONEY'; - // error_translate = 'ERRORS.NO_MONEY'; maybe that one? - if (command === 'cancel_offer') { - error_translate = this.translate.instant('ERRORS.NO_MONEY_REMOVE_OFFER', { - 'fee': this.variablesService.default_fee, - 'currency': this.variablesService.defaultCurrency - }); - } - break; - case 'CORE_BUSY': - error_translate = 'ERRORS.CORE_BUSY'; - break; - case 'BUSY': - error_translate = 'ERRORS.DAEMON_BUSY'; - break; - case 'OVERFLOW': - if (command !== 'get_all_aliases') { - error_translate = ''; - } - break; - case 'NOT_ENOUGH_OUTPUTS_FOR_MIXING': - error_translate = 'ERRORS.NOT_ENOUGH_OUTPUTS_TO_MIX'; - break; - case 'TX_IS_TOO_BIG': - error_translate = 'ERRORS.TRANSACTION_IS_TO_BIG'; - break; - case 'DISCONNECTED': - error_translate = 'ERRORS.TRANSFER_ATTEMPT'; - break; - case 'ACCESS_DENIED': - error_translate = 'ERRORS.ACCESS_DENIED'; - break; - case 'TX_REJECTED': - // if (command === 'request_alias_registration') { - // error_translate = 'INFORMER.ALIAS_IN_REGISTER'; - // } else { - error_translate = 'ERRORS.TRANSACTION_ERROR'; - // } - break; - case 'INTERNAL_ERROR': - error_translate = 'ERRORS.TRANSACTION_ERROR'; - break; - case 'BAD_ARG': - error_translate = 'ERRORS.BAD_ARG'; - break; - case 'WALLET_WRONG_ID': - error_translate = 'ERRORS.WALLET_WRONG_ID'; - break; - case 'WALLET_WATCH_ONLY_NOT_SUPPORTED': - error_translate = 'ERRORS.WALLET_WATCH_ONLY_NOT_SUPPORTED'; - break; - case 'WRONG_PASSWORD': - params = JSON.parse(params); - if (!params.testEmpty) { - error_translate = 'ERRORS.WRONG_PASSWORD'; - } - break; - case 'FILE_RESTORED': - if (command === 'open_wallet') { - error_translate = 'ERRORS.FILE_RESTORED'; - } - break; - case 'FILE_NOT_FOUND': - if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') { - error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND'); - params = JSON.parse(params); - if (params.path) { - error_translate += ': ' + params.path; - } - } - break; - case 'NOT_FOUND': - if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') { - error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND'); - params = JSON.parse(params); - if (params.path) { - error_translate += ': ' + params.path; - } - } - break; - case 'CANCELED': - case '': - break; - case 'FAIL': - if (command === 'create_proposal' || command === 'accept_proposal' || command === 'release_contract' || command === 'request_cancel_contract' || command === 'accept_cancel_contract') { - error_translate = ' '; - } - break; - case 'ALREADY_EXISTS': - error_translate = 'ERRORS.FILE_EXIST'; - break; - case 'FAILED': - BackendService_1.Debug(0, "Error: (" + error + ") was triggered by command: " + command); - break; - default: - error_translate = error; - } - if (error.indexOf('FAIL:failed to save file') > -1) { - error_translate = 'ERRORS.FILE_NOT_SAVED'; - } - if (error.indexOf('FAILED:failed to open binary wallet file for saving') > -1 && command === 'generate_wallet') { - error_translate = ''; - } - if (error_translate !== '') { - this.modalService.prepareModal('error', error_translate); - } - }; - BackendService.prototype.commandDebug = function (command, params, result) { - BackendService_1.Debug(2, '----------------- ' + command + ' -----------------'); - var debug = { - _send_params: params, - _result: result - }; - BackendService_1.Debug(2, debug); - try { - BackendService_1.Debug(2, json_bignumber__WEBPACK_IMPORTED_MODULE_6__["default"].parse(result, BackendService_1.bigNumberParser)); - } - catch (e) { - BackendService_1.Debug(2, { response_data: result, error_code: 'OK' }); - } - }; - BackendService.prototype.backendCallback = function (resultStr, params, callback, command) { - var _this = this; - var Result = resultStr; - if (command !== 'get_clipboard') { - if (!resultStr || resultStr === '') { - Result = {}; - } - else { - try { - Result = json_bignumber__WEBPACK_IMPORTED_MODULE_6__["default"].parse(resultStr, BackendService_1.bigNumberParser); - } - catch (e) { - Result = { response_data: resultStr, error_code: 'OK' }; - } - } - } - else { - Result = { - error_code: 'OK', - response_data: Result - }; - } - var core_busy = Result.error_code === 'CORE_BUSY'; - var Status = (Result.error_code === 'OK' || Result.error_code === 'TRUE'); - if (!Status && Status !== undefined && Result.error_code !== undefined) { - BackendService_1.Debug(1, 'API error for command: "' + command + '". Error code: ' + Result.error_code); - } - var data = ((typeof Result === 'object') && 'response_data' in Result) ? Result.response_data : Result; - var res_error_code = false; - if (typeof Result === 'object' && 'error_code' in Result && Result.error_code !== 'OK' && Result.error_code !== 'TRUE' && Result.error_code !== 'FALSE') { - if (core_busy) { - setTimeout(function () { - // this is will avoid update data when user - // on other wallet after CORE_BUSY (blink of data) - if (command !== 'get_recent_transfers') { - _this.runCommand(command, params, callback); - } - else { - var current_wallet_id = _this.variablesService.currentWallet.wallet_id; - if (current_wallet_id === params.wallet_id) { - _this.runCommand(command, params, callback); - } - } - }, 50); - } - else { - this.informerRun(Result.error_code, params, command); - res_error_code = Result.error_code; - } - } - // if ( command === 'get_offers_ex' ){ - // Service.printLog( "get_offers_ex offers count "+((data.offers)?data.offers.length:0) ); - // } - if (!core_busy) { - if (typeof callback === 'function') { - callback(Status, data, res_error_code); - } - else { - return data; - } - } - }; - BackendService.prototype.runCommand = function (command, params, callback) { - if (this.backendObject) { - if (command === 'get_recent_transfers') { - this.variablesService.get_recent_transfers = true; - } - var Action = this.backendObject[command]; - if (!Action) { - BackendService_1.Debug(0, 'Run Command Error! Command "' + command + '" don\'t found in backendObject'); - } - else { - var that_1 = this; - params = (typeof params === 'string') ? params : json_bignumber__WEBPACK_IMPORTED_MODULE_6__["default"].stringify(params); - if (params === undefined || params === '{}') { - if (command === 'get_recent_transfers') { - this.variablesService.get_recent_transfers = false; - } - Action(function (resultStr) { - that_1.commandDebug(command, params, resultStr); - return that_1.backendCallback(resultStr, params, callback, command); - }); - } - else { - Action(params, function (resultStr) { - that_1.commandDebug(command, params, resultStr); - return that_1.backendCallback(resultStr, params, callback, command); - }); - } - } - } - }; - BackendService.prototype.eventSubscribe = function (command, callback) { - if (command === 'on_core_event') { - this.backendObject[command].connect(callback); - } - else { - this.backendObject[command].connect(function (str) { - callback(json_bignumber__WEBPACK_IMPORTED_MODULE_6__["default"].parse(str, BackendService_1.bigNumberParser)); - }); - } - }; - BackendService.prototype.initService = function () { - var _this = this; - return new rxjs__WEBPACK_IMPORTED_MODULE_1__["Observable"](function (observer) { - if (!_this.backendLoaded) { - _this.backendLoaded = true; - var that_2 = _this; - window.QWebChannel(window.qt.webChannelTransport, function (channel) { - that_2.backendObject = channel.objects.mediator_object; - observer.next('ok'); - }); - } - else { - if (!_this.backendObject) { - observer.error('error'); - observer.error('error'); - } - } - }); - }; - BackendService.prototype.webkitLaunchedScript = function () { - return this.runCommand('webkit_launched_script'); - }; - BackendService.prototype.quitRequest = function () { - return this.runCommand('on_request_quit'); - }; - BackendService.prototype.getAppData = function (callback) { - this.runCommand('get_app_data', {}, callback); - }; - BackendService.prototype.storeAppData = function (callback) { - var _this = this; - if (this.variablesService.wallets.length) { - this.variablesService.settings.wallets = []; - this.variablesService.wallets.forEach(function (wallet) { - _this.variablesService.settings.wallets.push({ name: wallet.name, path: wallet.path }); - }); - } - this.runCommand('store_app_data', this.variablesService.settings, callback); - }; - BackendService.prototype.getSecureAppData = function (pass, callback) { - this.runCommand('get_secure_app_data', pass, callback); - }; - BackendService.prototype.setMasterPassword = function (pass, callback) { - this.runCommand('set_master_password', pass, callback); - }; - BackendService.prototype.checkMasterPassword = function (pass, callback) { - this.runCommand('check_master_password', pass, callback); - }; - BackendService.prototype.storeSecureAppData = function (callback) { - var _this = this; - var data; - var wallets = []; - var contacts = []; - this.variablesService.wallets.forEach(function (wallet) { - wallets.push({ name: wallet.name, pass: wallet.pass, path: wallet.path, staking: wallet.staking }); - }); - this.variablesService.contacts.forEach(function (contact) { - contacts.push({ name: contact.name, address: contact.address, notes: contact.notes }); - }); - data = { wallets: wallets, contacts: contacts }; - this.backendObject['store_secure_app_data'](JSON.stringify(data), this.variablesService.appPass, function (dataStore) { - _this.backendCallback(dataStore, {}, callback, 'store_secure_app_data'); - }); - }; - BackendService.prototype.dropSecureAppData = function (callback) { - var _this = this; - this.backendObject['drop_secure_app_data'](function (dataStore) { - _this.backendCallback(dataStore, {}, callback, 'drop_secure_app_data'); - }); - }; - BackendService.prototype.haveSecureAppData = function (callback) { - this.runCommand('have_secure_app_data', {}, callback); - }; - BackendService.prototype.saveFileDialog = function (caption, fileMask, default_path, callback) { - var dir = default_path ? default_path : '/'; - var params = { - caption: caption, - filemask: fileMask, - default_dir: dir - }; - this.runCommand('show_savefile_dialog', params, callback); - }; - BackendService.prototype.openFileDialog = function (caption, fileMask, default_path, callback) { - var dir = default_path ? default_path : '/'; - var params = { - caption: caption, - filemask: fileMask, - default_dir: dir - }; - this.runCommand('show_openfile_dialog', params, callback); - }; - BackendService.prototype.storeFile = function (path, buff) { - this.backendObject['store_to_file'](path, buff); - }; - BackendService.prototype.loadFile = function (path, callback) { - this.runCommand('load_from_file', path, callback); - }; - BackendService.prototype.generateWallet = function (path, pass, callback) { - var params = { - path: path, - pass: pass - }; - this.runCommand('generate_wallet', params, callback); - }; - BackendService.prototype.openWallet = function (path, pass, txs_to_return, testEmpty, callback) { - var params = { - path: path, - pass: pass, - txs_to_return: txs_to_return - }; - params['testEmpty'] = !!(testEmpty); - this.runCommand('open_wallet', params, callback); - }; - BackendService.prototype.closeWallet = function (wallet_id, callback) { - this.runCommand('close_wallet', { wallet_id: +wallet_id }, callback); - }; - BackendService.prototype.getSmartWalletInfo = function (_a, callback) { - var wallet_id = _a.wallet_id, seed_password = _a.seed_password; - this.runCommand('get_smart_wallet_info', { wallet_id: +wallet_id, seed_password: seed_password }, callback); - }; - BackendService.prototype.getSeedPhraseInfo = function (param, callback) { - this.runCommand('get_seed_phrase_info', param, callback); - }; - BackendService.prototype.runWallet = function (wallet_id, callback) { - this.runCommand('run_wallet', { wallet_id: +wallet_id }, callback); - }; - BackendService.prototype.isValidRestoreWalletText = function (param, callback) { - this.runCommand('is_valid_restore_wallet_text', param, callback); - }; - BackendService.prototype.restoreWallet = function (path, pass, seed_phrase, seed_pass, callback) { - var params = { - seed_phrase: seed_phrase, - path: path, - pass: pass, - seed_pass: seed_pass - }; - this.runCommand('restore_wallet', params, callback); - }; - BackendService.prototype.sendMoney = function (from_wallet_id, to_address, amount, fee, mixin, comment, hide, callback) { - var params = { - wallet_id: parseInt(from_wallet_id, 10), - destinations: [ - { - address: to_address, - amount: amount - } - ], - mixin_count: (mixin) ? parseInt(mixin, 10) : 0, - lock_time: 0, - fee: this.moneyToIntPipe.transform(fee), - comment: comment, - push_payer: !hide - }; - this.runCommand('transfer', params, callback); - }; - BackendService.prototype.validateAddress = function (address, callback) { - this.runCommand('validate_address', address, callback); - }; - BackendService.prototype.setClipboard = function (str, callback) { - return this.runCommand('set_clipboard', str, callback); - }; - BackendService.prototype.getClipboard = function (callback) { - return this.runCommand('get_clipboard', {}, callback); - }; - BackendService.prototype.createProposal = function (wallet_id, title, comment, a_addr, b_addr, to_pay, a_pledge, b_pledge, time, payment_id, callback) { - var params = { - wallet_id: parseInt(wallet_id, 10), - details: { - t: title, - c: comment, - a_addr: a_addr, - b_addr: b_addr, - to_pay: this.moneyToIntPipe.transform(to_pay), - a_pledge: this.moneyToIntPipe.transform(a_pledge), - b_pledge: this.moneyToIntPipe.transform(b_pledge) - }, - payment_id: payment_id, - expiration_period: parseInt(time, 10) * 60 * 60, - fee: this.variablesService.default_fee_big, - b_fee: this.variablesService.default_fee_big - }; - BackendService_1.Debug(1, params); - this.runCommand('create_proposal', params, callback); - }; - BackendService.prototype.getContracts = function (wallet_id, callback) { - var params = { - wallet_id: parseInt(wallet_id, 10) - }; - BackendService_1.Debug(1, params); - this.runCommand('get_contracts', params, callback); - }; - BackendService.prototype.acceptProposal = function (wallet_id, contract_id, callback) { - var params = { - wallet_id: parseInt(wallet_id, 10), - contract_id: contract_id - }; - BackendService_1.Debug(1, params); - this.runCommand('accept_proposal', params, callback); - }; - BackendService.prototype.releaseProposal = function (wallet_id, contract_id, release_type, callback) { - var params = { - wallet_id: parseInt(wallet_id, 10), - contract_id: contract_id, - release_type: release_type // "normal" or "burn" - }; - BackendService_1.Debug(1, params); - this.runCommand('release_contract', params, callback); - }; - BackendService.prototype.requestCancelContract = function (wallet_id, contract_id, time, callback) { - var params = { - wallet_id: parseInt(wallet_id, 10), - contract_id: contract_id, - fee: this.variablesService.default_fee_big, - expiration_period: parseInt(time, 10) * 60 * 60 - }; - BackendService_1.Debug(1, params); - this.runCommand('request_cancel_contract', params, callback); - }; - BackendService.prototype.acceptCancelContract = function (wallet_id, contract_id, callback) { - var params = { - wallet_id: parseInt(wallet_id, 10), - contract_id: contract_id - }; - BackendService_1.Debug(1, params); - this.runCommand('accept_cancel_contract', params, callback); - }; - BackendService.prototype.getMiningHistory = function (wallet_id, callback) { - this.runCommand('get_mining_history', { wallet_id: parseInt(wallet_id, 10) }, callback); - }; - BackendService.prototype.startPosMining = function (wallet_id, callback) { - this.runCommand('start_pos_mining', { wallet_id: parseInt(wallet_id, 10) }, callback); - }; - BackendService.prototype.stopPosMining = function (wallet_id, callback) { - this.runCommand('stop_pos_mining', { wallet_id: parseInt(wallet_id, 10) }, callback); - }; - BackendService.prototype.openUrlInBrowser = function (url, callback) { - this.runCommand('open_url_in_browser', url, callback); - }; - BackendService.prototype.start_backend = function (node, host, port, callback) { - var params = { - configure_for_remote_node: node, - remote_node_host: host, - remote_node_port: parseInt(port, 10) - }; - this.runCommand('start_backend', params, callback); - }; - BackendService.prototype.getDefaultFee = function (callback) { - this.runCommand('get_default_fee', {}, callback); - }; - BackendService.prototype.setBackendLocalization = function (stringsArray, title, callback) { - var params = { - strings: stringsArray, - language_title: title - }; - this.runCommand('set_localization_strings', params, callback); - }; - BackendService.prototype.registerAlias = function (wallet_id, alias, address, fee, comment, reward, callback) { - var params = { - wallet_id: wallet_id, - alias: { - alias: alias, - address: address, - tracking_key: '', - comment: comment - }, - fee: this.moneyToIntPipe.transform(fee), - reward: this.moneyToIntPipe.transform(reward) - }; - this.runCommand('request_alias_registration', params, callback); - }; - BackendService.prototype.updateAlias = function (wallet_id, alias, fee, callback) { - var params = { - wallet_id: wallet_id, - alias: { - alias: alias.name.replace('@', ''), - address: alias.address, - tracking_key: '', - comment: alias.comment - }, - fee: this.moneyToIntPipe.transform(fee) - }; - this.runCommand('request_alias_update', params, callback); - }; - BackendService.prototype.getAllAliases = function (callback) { - this.runCommand('get_all_aliases', {}, callback); - }; - BackendService.prototype.getAliasByName = function (value, callback) { - return this.runCommand('get_alias_info_by_name', value, callback); - }; - BackendService.prototype.getAliasByAddress = function (value, callback) { - return this.runCommand('get_alias_info_by_address', value, callback); - }; - BackendService.prototype.getAliasCoast = function (alias, callback) { - this.runCommand('get_alias_coast', { v: alias }, callback); - }; - BackendService.prototype.getWalletAlias = function (address) { - var _this = this; - if (address !== null && this.variablesService.daemon_state === 2) { - if (this.variablesService.aliasesChecked[address] == null) { - this.variablesService.aliasesChecked[address] = {}; - if (this.variablesService.aliases.length) { - for (var i = 0, length_1 = this.variablesService.aliases.length; i < length_1; i++) { - if (i in this.variablesService.aliases && this.variablesService.aliases[i]['address'] === address) { - this.variablesService.aliasesChecked[address]['name'] = this.variablesService.aliases[i].name; - this.variablesService.aliasesChecked[address]['address'] = this.variablesService.aliases[i].address; - this.variablesService.aliasesChecked[address]['comment'] = this.variablesService.aliases[i].comment; - return this.variablesService.aliasesChecked[address]; - } - } - } - this.getAliasByAddress(address, function (status, data) { - if (status) { - _this.variablesService.aliasesChecked[data.address]['name'] = '@' + data.alias; - _this.variablesService.aliasesChecked[data.address]['address'] = data.address; - _this.variablesService.aliasesChecked[data.address]['comment'] = data.comment; - } - }); - } - return this.variablesService.aliasesChecked[address]; - } - return {}; - }; - BackendService.prototype.getContactAlias = function () { - var _this = this; - if (this.variablesService.contacts.length && this.variablesService.daemon_state === 2) { - this.variablesService.contacts.map(function (contact) { - _this.getAliasByAddress(contact.address, function (status, data) { - if (status) { - if (data.alias) { - contact.alias = '@' + data.alias; - } - } - else { - contact.alias = null; - } - }); - }); - } - }; - BackendService.prototype.getRecentTransfers = function (id, offset, count, exclude_mining_txs, callback) { - var params = { - wallet_id: id, - offset: offset, - count: count, - exclude_mining_txs: exclude_mining_txs - }; - this.runCommand('get_recent_transfers', params, callback); - }; - BackendService.prototype.getPoolInfo = function (callback) { - this.runCommand('get_tx_pool_info', {}, callback); - }; - BackendService.prototype.getVersion = function (callback) { - var _this = this; - this.runCommand('get_version', {}, function (status, version) { - _this.runCommand('get_network_type', {}, function (status, type) { - callback(version, type); - }); - }); - }; - BackendService.prototype.setLogLevel = function (level) { - return this.runCommand('set_log_level', { v: level }); - }; - var BackendService_1; - BackendService = BackendService_1 = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"])(), - __metadata("design:paramtypes", [_ngx_translate_core__WEBPACK_IMPORTED_MODULE_2__["TranslateService"], - _variables_service__WEBPACK_IMPORTED_MODULE_3__["VariablesService"], - _modal_service__WEBPACK_IMPORTED_MODULE_4__["ModalService"], - _pipes_money_to_int_pipe__WEBPACK_IMPORTED_MODULE_5__["MoneyToIntPipe"]]) - ], BackendService); - return BackendService; -}()); - -/* - - toggleAutoStart: function (value) { - return this.runCommand('toggle_autostart', asVal(value)); - }, - - getOptions: function (callback) { - return this.runCommand('get_options', {}, callback); - }, - - isFileExist: function (path, callback) { - return this.runCommand('is_file_exist', path, callback); - }, - - isAutoStartEnabled: function (callback) { - this.runCommand('is_autostart_enabled', {}, function (status, data) { - if (angular.isFunction(callback)) { - callback('error_code' in data && data.error_code !== 'FALSE') - } - }); - }, - - resetWalletPass: function (wallet_id, pass, callback) { - this.runCommand('reset_wallet_password', {wallet_id: wallet_id, pass: pass}, callback); - }, - - - - getOsVersion: function (callback) { - this.runCommand('get_os_version', {}, function (status, version) { - callback(version) - }) - }, - - getLogFile: function (callback) { - this.runCommand('get_log_file', {}, function (status, version) { - callback(version) - }) - }, - - resync_wallet: function (wallet_id, callback) { - this.runCommand('resync_wallet', {wallet_id: wallet_id}, callback); - }, - - storeFile: function (path, buff, callback) { - this.backendObject['store_to_file'](path, (typeof buff === 'string' ? buff : JSON.stringify(buff)), function (data) { - backendCallback(data, {}, callback, 'store_to_file'); - }); - }, - - getMiningEstimate: function (amount_coins, time, callback) { - var params = { - "amount_coins": $filter('money_to_int')(amount_coins), - "time": parseInt(time) - }; - this.runCommand('get_mining_estimate', params, callback); - }, - - backupWalletKeys: function (wallet_id, path, callback) { - var params = { - "wallet_id": wallet_id, - "path": path - }; - this.runCommand('backup_wallet_keys', params, callback); - }, - - setBlockedIcon: function (enabled, callback) { - var mode = (enabled) ? "blocked" : "normal"; - Service.runCommand('bool_toggle_icon', mode, callback); - }, - - getWalletInfo: function (wallet_id, callback) { - this.runCommand('get_wallet_info', {wallet_id: wallet_id}, callback); - }, - - printText: function (content) { - return this.runCommand('print_text', {html_text: content}); - }, - - printLog: function (msg, log_level) { - return this.runCommand('print_log', {msg: msg, log_level: log_level}); - }, - -*/ - - -/***/ }), - -/***/ "./src/app/_helpers/services/modal.service.ts": -/*!****************************************************!*\ - !*** ./src/app/_helpers/services/modal.service.ts ***! - \****************************************************/ -/*! exports provided: ModalService */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModalService", function() { return ModalService; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -/* harmony import */ var _directives_modal_container_modal_container_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../directives/modal-container/modal-container.component */ "./src/app/_helpers/directives/modal-container/modal-container.component.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - -var ModalService = /** @class */ (function () { - function ModalService(componentFactoryResolver, appRef, injector, ngZone, translate) { - this.componentFactoryResolver = componentFactoryResolver; - this.appRef = appRef; - this.injector = injector; - this.ngZone = ngZone; - this.translate = translate; - this.components = []; - } - ModalService.prototype.prepareModal = function (type, message) { - var _this = this; - var length = this.components.push(this.componentFactoryResolver.resolveComponentFactory(_directives_modal_container_modal_container_component__WEBPACK_IMPORTED_MODULE_2__["ModalContainerComponent"]).create(this.injector)); - this.components[length - 1].instance['type'] = type; - this.components[length - 1].instance['message'] = message.length ? this.translate.instant(message) : ''; - this.components[length - 1].instance['close'].subscribe(function () { - _this.removeModal(length - 1); - }); - this.ngZone.run(function () { - _this.appendModal(length - 1); - }); - }; - ModalService.prototype.appendModal = function (index) { - this.appRef.attachView(this.components[index].hostView); - var domElem = this.components[index].hostView.rootNodes[0]; - document.body.appendChild(domElem); - }; - ModalService.prototype.removeModal = function (index) { - if (this.components[index]) { - this.appRef.detachView(this.components[index].hostView); - this.components[index].destroy(); - this.components.splice(index, 1); - } - else { - var last = this.components.length - 1; - this.appRef.detachView(this.components[last].hostView); - this.components[last].destroy(); - this.components.splice(last, 1); - } - }; - ModalService = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"])(), - __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], - _ngx_translate_core__WEBPACK_IMPORTED_MODULE_1__["TranslateService"]]) - ], ModalService); - return ModalService; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/services/pagination.service.ts": -/*!*********************************************************!*\ - !*** ./src/app/_helpers/services/pagination.service.ts ***! - \*********************************************************/ -/*! exports provided: PaginationService */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationService", function() { return PaginationService; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _variables_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _pagination_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pagination.store */ "./src/app/_helpers/services/pagination.store.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - -var PaginationService = /** @class */ (function () { - function PaginationService(variables, ngZone, paginationStore) { - this.variables = variables; - this.ngZone = ngZone; - this.paginationStore = paginationStore; - } - PaginationService.prototype.paginate = function (currentPage) { - var _this = this; - if (currentPage === void 0) { currentPage = 1; } - if (currentPage < 1) { - currentPage = 1; - } - else if (currentPage > this.variables.currentWallet.totalPages) { - currentPage = this.variables.currentWallet.totalPages; - } - var startPage, endPage; - if (this.variables.currentWallet.totalPages <= this.variables.maxPages) { - startPage = 1; - endPage = this.variables.currentWallet.totalPages; - } - else { - var maxPagesBeforeCurrentPage = Math.floor(this.variables.maxPages / 2); - var maxPagesAfterCurrentPage = Math.ceil(this.variables.maxPages / 2) - 1; - if (currentPage <= maxPagesBeforeCurrentPage) { - startPage = 1; - this.variables.currentWallet.totalPages > this.variables.maxPages - ? endPage = this.variables.maxPages - : endPage = this.variables.currentWallet.totalPages; - } - else if (currentPage + maxPagesAfterCurrentPage >= this.variables.currentWallet.totalPages) { - startPage = this.variables.currentWallet.totalPages - this.variables.maxPages + 1; - endPage = this.variables.currentWallet.totalPages; - } - else { - startPage = currentPage - maxPagesBeforeCurrentPage; - endPage = currentPage + maxPagesAfterCurrentPage; - } - } - this.ngZone.run(function () { - _this.variables.currentWallet.pages = Array.from(Array((endPage + 1) - startPage).keys()).map(function (i) { return startPage + i; }); - }); - }; - PaginationService.prototype.getOffset = function (walletID) { - var mining = this.variables.currentWallet.exclude_mining_txs; - var currentPage = (this.variables.currentWallet.currentPage); - var offset = ((currentPage - 1) * this.variables.count); - if (!mining) { - return offset; - } - var value = this.paginationStore.value; - var pages = value.filter(function (item) { return item.walletID === walletID; }); - if (pages && pages.length) { - var max = lodash__WEBPACK_IMPORTED_MODULE_3__["maxBy"](pages, 'page'); - var isForward = this.paginationStore.isForward(pages, currentPage); - if (isForward) { - offset = max.offset; - } - else { - var index = pages.findIndex(function (item) { return item.page === (currentPage); }); - offset = pages[index].offset; - } - } - return offset; - }; - PaginationService.prototype.calcPages = function (data) { - if (data.total_history_items && (data && data.history)) { - this.variables.currentWallet.totalPages = Math.ceil(data.total_history_items / this.variables.count); - this.variables.currentWallet.totalPages > this.variables.maxPages - ? this.variables.currentWallet.pages = new Array(5).fill(1).map(function (value, index) { return value + index; }) - : this.variables.currentWallet.pages = - new Array(this.variables.currentWallet.totalPages).fill(1).map(function (value, index) { return value + index; }); - } - else if (this.variables.currentWallet.restore) { - this.variables.currentWallet.totalPages = Math.ceil(data.history.length / this.variables.count); - this.variables.currentWallet.totalPages > this.variables.maxPages - ? this.variables.currentWallet.pages = new Array(5).fill(1).map(function (value, index) { return value + index; }) - : this.variables.currentWallet.pages = - new Array(this.variables.currentWallet.totalPages).fill(1).map(function (value, index) { return value + index; }); - } - }; - PaginationService.prototype.prepareHistory = function (data, status) { - var _this = this; - if (status && (data && data.total_history_items)) { - this.variables.currentWallet.history.splice(0, this.variables.currentWallet.history.length); - this.ngZone.run(function () { - _this.paginate(_this.variables.currentWallet.currentPage); - if (data.history.length !== 0) { - _this.variables.currentWallet.restore = false; - _this.variables.currentWallet.total_history_item = data.total_history_items; - _this.variables.currentWallet.prepareHistory(data.history); - if (_this.variables.currentWallet.currentPage === 1 && data.unconfirmed) { - _this.variables.currentWallet.prepareHistory(data.unconfirmed); - } - } - }); - } - }; - PaginationService = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"])({ - providedIn: 'root', - }), - __metadata("design:paramtypes", [_variables_service__WEBPACK_IMPORTED_MODULE_1__["VariablesService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], - _pagination_store__WEBPACK_IMPORTED_MODULE_2__["PaginationStore"]]) - ], PaginationService); - return PaginationService; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/services/pagination.store.ts": -/*!*******************************************************!*\ - !*** ./src/app/_helpers/services/pagination.store.ts ***! - \*******************************************************/ -/*! exports provided: PaginationStore */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationStore", function() { return PaginationStore; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - -var PaginationStore = /** @class */ (function () { - function PaginationStore() { - this.subject = new rxjs__WEBPACK_IMPORTED_MODULE_1__["BehaviorSubject"](null); - this.pages$ = this.subject.asObservable(); - } - PaginationStore.prototype.isForward = function (pages, currentPage) { - var max = lodash__WEBPACK_IMPORTED_MODULE_2__["maxBy"](pages, 'page'); - return !max || max.page < currentPage || max.page === currentPage; - }; - PaginationStore.prototype.setPage = function (pageNumber, offset, walletID) { - var newPages = []; - var pages = this.subject.getValue(); - if (pages && pages.length) { - newPages = pages.slice(0); - } - newPages.push({ page: pageNumber, offset: offset, walletID: walletID }); - this.subject.next(newPages); - }; - Object.defineProperty(PaginationStore.prototype, "value", { - get: function () { - return this.subject.value; - }, - enumerable: true, - configurable: true - }); - PaginationStore = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"])({ - providedIn: 'root' - }), - __metadata("design:paramtypes", []) - ], PaginationStore); - return PaginationStore; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/services/utils.service.ts": -/*!****************************************************!*\ - !*** ./src/app/_helpers/services/utils.service.ts ***! - \****************************************************/ -/*! exports provided: UtilsService */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UtilsService", function() { return UtilsService; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; - -var UtilsService = /** @class */ (function () { - function UtilsService() { - } - UtilsService.prototype.getMinWidthByScale = function (scale) { - switch (scale) { - case 7.5: return 900; - case 10: return 1200; - case 12.5: return 1500; - case 15: return 1800; - default: return 1200; - } - }; - UtilsService = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"])() - ], UtilsService); - return UtilsService; -}()); - - - -/***/ }), - -/***/ "./src/app/_helpers/services/variables.service.ts": -/*!********************************************************!*\ - !*** ./src/app/_helpers/services/variables.service.ts ***! - \********************************************************/ -/*! exports provided: VariablesService */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VariablesService", function() { return VariablesService; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js"); -/* harmony import */ var idlejs_dist__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! idlejs/dist */ "./node_modules/idlejs/dist/index.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var ngx_contextmenu__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ngx-contextmenu */ "./node_modules/ngx-contextmenu/fesm5/ngx-contextmenu.js"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! bignumber.js */ "./node_modules/bignumber.js/bignumber.js"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_5__); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - -var VariablesService = /** @class */ (function () { - function VariablesService(router, ngZone, contextMenuService) { - var _this = this; - this.router = router; - this.ngZone = ngZone; - this.contextMenuService = contextMenuService; - this.request_on_in = {}; - this.stop_paginate = {}; - this.sync_started = false; - this.digits = 12; - this.appPass = ''; - this.appLogin = false; - this.moneyEquivalent = 0; - this.defaultTheme = 'dark'; - this.defaultCurrency = 'ZANO'; - this.exp_med_ts = 0; - this.net_time_delta_median = 0; - this.height_app = 0; - this.height_max = 0; - this.downloaded = 0; - this.total = 0; - this.last_build_available = ''; - this.last_build_displaymode = 0; - this.daemon_state = 3; - this.sync = { - progress_value: 0, - progress_value_text: '0' - }; - this.download = { - progress_value: 0, - progress_value_text: '0' - }; - this.get_recent_transfers = false; // avoid of execute function before collback complete - this.default_fee = '0.010000000000'; - this.default_fee_big = new bignumber_js__WEBPACK_IMPORTED_MODULE_5__["BigNumber"]('10000000000'); - this.settings = { - appLockTime: 15, - appLog: 0, - theme: '', - scale: 10, - language: 'en', - default_path: '/', - viewedContracts: [], - notViewedContracts: [], - wallets: [] - }; - this.count = 40; - this.maxPages = 5; - this.testnet = false; - this.networkType = ''; // testnet of mainnet - this.wallets = []; - this.aliases = []; - this.aliasesChecked = {}; - this.enableAliasSearch = false; - this.maxWalletNameLength = 25; - this.maxCommentLength = 255; - this.dataIsLoaded = false; - this.contacts = []; - this.newContact = { name: null, address: null, notes: null }; - this.pattern = '^[a-zA-Z0-9_.\\\]\*\|\~\!\?\@\#\$\%\^\&\+\{\}\(\)\<\>\:\;\"\'\-\=\/\,\[\\\\]*$'; - this.after_sync_request = {}; - this.getExpMedTsEvent = new rxjs__WEBPACK_IMPORTED_MODULE_1__["BehaviorSubject"](null); - this.getHeightAppEvent = new rxjs__WEBPACK_IMPORTED_MODULE_1__["BehaviorSubject"](null); - this.getHeightMaxEvent = new rxjs__WEBPACK_IMPORTED_MODULE_1__["BehaviorSubject"](null); - this.getDownloadedAppEvent = new rxjs__WEBPACK_IMPORTED_MODULE_1__["BehaviorSubject"](null); - this.getTotalEvent = new rxjs__WEBPACK_IMPORTED_MODULE_1__["BehaviorSubject"](null); - this.getRefreshStackingEvent = new rxjs__WEBPACK_IMPORTED_MODULE_1__["BehaviorSubject"](null); - this.getAliasChangedEvent = new rxjs__WEBPACK_IMPORTED_MODULE_1__["BehaviorSubject"](null); - this.idle = new idlejs_dist__WEBPACK_IMPORTED_MODULE_2__["Idle"]() - .whenNotInteractive() - .do(function () { - if (_this.appPass == '') { - _this.restartCountdown(); - } - else { - _this.ngZone.run(function () { - _this.idle.stop(); - _this.appPass = ''; - _this.appLogin = false; - _this.router.navigate(['/login'], { queryParams: { type: 'auth' } }); - }); - } - }); - } - VariablesService.prototype.setExpMedTs = function (timestamp) { - if (timestamp !== this.exp_med_ts) { - this.exp_med_ts = timestamp; - this.getExpMedTsEvent.next(timestamp); - } - }; - VariablesService.prototype.setHeightApp = function (height) { - if (height !== this.height_app) { - this.height_app = height; - this.getHeightAppEvent.next(height); - } - }; - VariablesService.prototype.setHeightMax = function (height) { - if (height !== this.height_max) { - this.height_max = height; - this.getHeightMaxEvent.next(height); - } - }; - VariablesService.prototype.setDownloadedBytes = function (bytes) { - if (bytes !== this.downloaded) { - this.downloaded = this.bytesToMb(bytes); - this.getDownloadedAppEvent.next(bytes); - } - }; - VariablesService.prototype.setTotalBytes = function (bytes) { - if (bytes !== this.total) { - this.total = this.bytesToMb(bytes); - this.getTotalEvent.next(bytes); - } - }; - VariablesService.prototype.setRefreshStacking = function (wallet_id) { - this.getHeightAppEvent.next(wallet_id); - }; - VariablesService.prototype.changeAliases = function () { - this.getAliasChangedEvent.next(true); - }; - VariablesService.prototype.setCurrentWallet = function (id) { - var _this = this; - this.wallets.forEach(function (wallet) { - if (wallet.wallet_id === id) { - _this.currentWallet = wallet; - } - }); - }; - VariablesService.prototype.getWallet = function (id) { - for (var i = 0; i < this.wallets.length; i++) { - if (this.wallets[i].wallet_id === id) { - return this.wallets[i]; - } - } - return null; - }; - VariablesService.prototype.getNotLoadedWallet = function () { - for (var i = 0; i < this.wallets.length; i++) { - if (!this.wallets[i].loaded) { - return this.wallets[i]; - } - } - return null; - }; - VariablesService.prototype.startCountdown = function () { - this.idle.within(this.settings.appLockTime).start(); - }; - VariablesService.prototype.stopCountdown = function () { - this.idle.stop(); - }; - VariablesService.prototype.restartCountdown = function () { - this.idle.within(this.settings.appLockTime).restart(); - }; - VariablesService.prototype.bytesToMb = function (bytes) { - return Number((bytes / Math.pow(1024, 2)).toFixed(1)); - }; - VariablesService.prototype.onContextMenu = function ($event) { - $event.target['contextSelectionStart'] = $event.target['selectionStart']; - $event.target['contextSelectionEnd'] = $event.target['selectionEnd']; - if ($event.target && ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') && !$event.target['readOnly']) { - this.contextMenuService.show.next({ - contextMenu: this.allContextMenu, - event: $event, - item: $event.target, - }); - $event.preventDefault(); - $event.stopPropagation(); - } - }; - VariablesService.prototype.onContextMenuOnlyCopy = function ($event, copyText) { - this.contextMenuService.show.next({ - contextMenu: this.onlyCopyContextMenu, - event: $event, - item: copyText - }); - $event.preventDefault(); - $event.stopPropagation(); - }; - VariablesService.prototype.onContextMenuPasteSelect = function ($event) { - $event.target['contextSelectionStart'] = $event.target['selectionStart']; - $event.target['contextSelectionEnd'] = $event.target['selectionEnd']; - console.warn($event.target); - console.warn($event.target['disabled']); - if ($event.target && ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') && !$event.target['readOnly']) { - this.contextMenuService.show.next({ - contextMenu: this.pasteSelectContextMenu, - event: $event, - item: $event.target, - }); - $event.preventDefault(); - $event.stopPropagation(); - } - }; - VariablesService = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"])({ - providedIn: 'root' - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_3__["Router"], _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], ngx_contextmenu__WEBPACK_IMPORTED_MODULE_4__["ContextMenuService"]]) - ], VariablesService); - return VariablesService; -}()); - - - -/***/ }), - -/***/ "./src/app/_shared/constants.ts": -/*!**************************************!*\ - !*** ./src/app/_shared/constants.ts ***! - \**************************************/ -/*! exports provided: MIXIN, RCV_ADDR_QR_SCALE, AUDITABLE_WALLET_HELP_PAGE, CREATE_NEW_WALLET_HELP_PAGE, LOCKED_BALANCE_HELP_PAGE, DOWNLOADS_PAGE_URL, BLOCK_EXPLORER_TX_URL_PREFIX, BLOCK_EXPLORER_TN_TX_URL_PREFIX */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MIXIN", function() { return MIXIN; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RCV_ADDR_QR_SCALE", function() { return RCV_ADDR_QR_SCALE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AUDITABLE_WALLET_HELP_PAGE", function() { return AUDITABLE_WALLET_HELP_PAGE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CREATE_NEW_WALLET_HELP_PAGE", function() { return CREATE_NEW_WALLET_HELP_PAGE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LOCKED_BALANCE_HELP_PAGE", function() { return LOCKED_BALANCE_HELP_PAGE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DOWNLOADS_PAGE_URL", function() { return DOWNLOADS_PAGE_URL; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BLOCK_EXPLORER_TX_URL_PREFIX", function() { return BLOCK_EXPLORER_TX_URL_PREFIX; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BLOCK_EXPLORER_TN_TX_URL_PREFIX", function() { return BLOCK_EXPLORER_TN_TX_URL_PREFIX; }); -var MIXIN = 10; // default mixin value -var RCV_ADDR_QR_SCALE = 2; // scale factor for QR code -var AUDITABLE_WALLET_HELP_PAGE = 'docs.zano.org/docs/auditable-wallets'; -var CREATE_NEW_WALLET_HELP_PAGE = 'docs.zano.org/docs/getting-started-1#section-create-new-wallet'; -var LOCKED_BALANCE_HELP_PAGE = 'docs.zano.org/docs/locked-balance'; -var DOWNLOADS_PAGE_URL = 'zano.org/downloads.html'; -var BLOCK_EXPLORER_TX_URL_PREFIX = 'explorer.zano.org/transaction/'; -var BLOCK_EXPLORER_TN_TX_URL_PREFIX = 'testnet-explorer.zano.org/transaction/'; - - -/***/ }), - -/***/ "./src/app/add-contacts/add-contacts.component.html": -/*!**********************************************************!*\ - !*** ./src/app/add-contacts/add-contacts.component.html ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n
    \r\n
    \r\n {{ 'CONTACTS.TITLE' | translate }}\r\n {{ 'CONTACTS.ADD' | translate }}\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'CONTACTS.FORM_ERRORS.NAME_LENGTH' | translate }}\r\n
    \r\n
    \r\n {{ 'CONTACTS.FORM_ERRORS.NAME_REQUIRED' | translate }}\r\n
    \r\n
    \r\n {{ 'CONTACTS.FORM_ERRORS.NAME_DUBLICATED' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {{ 'CONTACTS.FORM_ERRORS.ADDRESS_REQUIRED' | translate }}\r\n
    \r\n
    \r\n {{ 'CONTACTS.FORM_ERRORS.ADDRESS_NOT_VALID' | translate }}\r\n
    \r\n
    \r\n {{ 'CONTACTS.FORM_ERRORS.ADDRESS_DUBLICATED' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {{ 'CONTACTS.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/add-contacts/add-contacts.component.scss": -/*!**********************************************************!*\ - !*** ./src/app/add-contacts/add-contacts.component.scss ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ".form-add {\n margin-top: 3rem; }\n .form-add .input-block-name {\n width: 50%; }\n .form-add button {\n margin-top: 3rem;\n width: 100%;\n max-width: 18rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWRkLWNvbnRhY3RzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGFkZC1jb250YWN0c1xcYWRkLWNvbnRhY3RzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gsZ0JBQWdCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9hZGQtY29udGFjdHMvYWRkLWNvbnRhY3RzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tYWRkIHtcclxuICBtYXJnaW4tdG9wOiAzcmVtO1xyXG5cclxuICAuaW5wdXQtYmxvY2stbmFtZSB7XHJcbiAgICB3aWR0aDogNTAlO1xyXG4gIH1cclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIG1hcmdpbi10b3A6IDNyZW07XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMThyZW07XHJcbiAgfVxyXG59Il19 */" - -/***/ }), - -/***/ "./src/app/add-contacts/add-contacts.component.ts": -/*!********************************************************!*\ - !*** ./src/app/add-contacts/add-contacts.component.ts ***! - \********************************************************/ -/*! exports provided: AddContactsComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AddContactsComponent", function() { return AddContactsComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm5/common.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - -var AddContactsComponent = /** @class */ (function () { - function AddContactsComponent(route, backend, variablesService, modalService, ngZone, location) { - var _this = this; - this.route = route; - this.backend = backend; - this.variablesService = variablesService; - this.modalService = modalService; - this.ngZone = ngZone; - this.location = location; - this.addContactForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]({ - address: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', [ - _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required, - function (g) { - if (g.value) { - _this.backend.validateAddress(g.value, function (valid_status) { - _this.ngZone.run(function () { - if (valid_status === false) { - g.setErrors(Object.assign({ address_not_valid: true }, g.errors)); - } - else { - if (g.hasError('address_not_valid')) { - delete g.errors['address_not_valid']; - if (Object.keys(g.errors).length === 0) { - g.setErrors(null); - } - } - } - }); - }); - return g.hasError('address_not_valid') - ? { address_not_valid: true } - : null; - } - return null; - }, - function (g) { - var isDublicated = _this.variablesService.contacts.findIndex(function (contact) { return contact.address === g.value; }); - if (isDublicated !== -1 && !(_this.id === isDublicated)) { - return { dublicated: true }; - } - return null; - } - ]), - notes: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', [ - function (g) { - if (g.value) { - if (g.value.length > _this.variablesService.maxCommentLength) { - return { maxLength: true }; - } - else { - return null; - } - } - else { - return null; - } - } - ]), - name: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', [ - _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required, - _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].minLength(4), - _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].maxLength(25), - function (g) { - if (g.value) { - var isDublicated = _this.variablesService.contacts.findIndex(function (contact) { return contact.name === g.value.trim(); }); - if (isDublicated !== -1 && !(_this.id === isDublicated)) { - return { dublicated: true }; - } - return null; - } - } - ]) - }); - } - AddContactsComponent.prototype.ngOnInit = function () { - var _this = this; - this.queryRouting = this.route.queryParams.subscribe(function (params) { - if (params.id) { - _this.id = parseInt(params.id, 10); - _this.addContactForm.reset({ - name: _this.variablesService.contacts[params.id]['name'], - address: _this.variablesService.contacts[params.id]['address'], - notes: _this.variablesService.contacts[params.id]['notes'] - }); - } - else { - _this.addContactForm.reset({ - name: _this.variablesService.newContact['name'], - address: _this.variablesService.newContact['address'], - notes: _this.variablesService.newContact['notes'] - }); - } - }); - }; - AddContactsComponent.prototype.add = function () { - var _this = this; - if (!this.variablesService.appPass) { - this.modalService.prepareModal('error', 'CONTACTS.FORM_ERRORS.SET_MASTER_PASSWORD'); - } - else { - if (this.addContactForm.valid) { - this.backend.validateAddress(this.addContactForm.get('address').value, function (valid_status) { - if (valid_status === false) { - _this.ngZone.run(function () { - _this.addContactForm - .get('address') - .setErrors({ address_not_valid: true }); - }); - } - else { - if (_this.id || _this.id === 0) { - _this.variablesService.contacts.forEach(function (contact, index) { - if (index === _this.id) { - contact.name = _this.addContactForm.get('name').value.trim(); - contact.address = _this.addContactForm.get('address').value; - contact.notes = - _this.addContactForm.get('notes').value || ''; - } - }); - _this.backend.storeSecureAppData(); - _this.backend.getContactAlias(); - _this.modalService.prepareModal('success', 'CONTACTS.SUCCESS_SAVE'); - } - else { - _this.variablesService.contacts.push({ - name: _this.addContactForm.get('name').value.trim(), - address: _this.addContactForm.get('address').value, - notes: _this.addContactForm.get('notes').value || '' - }); - _this.backend.storeSecureAppData(); - _this.backend.getContactAlias(); - _this.modalService.prepareModal('success', 'CONTACTS.SUCCESS_SENT'); - _this.variablesService.newContact = { - name: null, - address: null, - notes: null - }; - _this.addContactForm.reset({ - name: null, - address: null, - notes: null - }); - } - } - }); - } - } - }; - AddContactsComponent.prototype.back = function () { - this.location.back(); - }; - AddContactsComponent.prototype.ngOnDestroy = function () { - if (!(this.id || this.id === 0)) { - this.variablesService.newContact = { - name: this.addContactForm.get('name').value, - address: this.addContactForm.get('address').value, - notes: this.addContactForm.get('notes').value - }; - } - this.queryRouting.unsubscribe(); - }; - AddContactsComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-add-contacts', - template: __webpack_require__(/*! ./add-contacts.component.html */ "./src/app/add-contacts/add-contacts.component.html"), - styles: [__webpack_require__(/*! ./add-contacts.component.scss */ "./src/app/add-contacts/add-contacts.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_6__["ActivatedRoute"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_3__["VariablesService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_4__["ModalService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], - _angular_common__WEBPACK_IMPORTED_MODULE_5__["Location"]]) - ], AddContactsComponent); - return AddContactsComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/app-routing.module.ts": -/*!***************************************!*\ - !*** ./src/app/app-routing.module.ts ***! - \***************************************/ -/*! exports provided: AppRoutingModule */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppRoutingModule", function() { return AppRoutingModule; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _main_main_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./main/main.component */ "./src/app/main/main.component.ts"); -/* harmony import */ var _login_login_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./login/login.component */ "./src/app/login/login.component.ts"); -/* harmony import */ var _wallet_wallet_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./wallet/wallet.component */ "./src/app/wallet/wallet.component.ts"); -/* harmony import */ var _send_send_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./send/send.component */ "./src/app/send/send.component.ts"); -/* harmony import */ var _receive_receive_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./receive/receive.component */ "./src/app/receive/receive.component.ts"); -/* harmony import */ var _history_history_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./history/history.component */ "./src/app/history/history.component.ts"); -/* harmony import */ var _contracts_contracts_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./contracts/contracts.component */ "./src/app/contracts/contracts.component.ts"); -/* harmony import */ var _purchase_purchase_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./purchase/purchase.component */ "./src/app/purchase/purchase.component.ts"); -/* harmony import */ var _messages_messages_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./messages/messages.component */ "./src/app/messages/messages.component.ts"); -/* harmony import */ var _typing_message_typing_message_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./typing-message/typing-message.component */ "./src/app/typing-message/typing-message.component.ts"); -/* harmony import */ var _staking_staking_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./staking/staking.component */ "./src/app/staking/staking.component.ts"); -/* harmony import */ var _settings_settings_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./settings/settings.component */ "./src/app/settings/settings.component.ts"); -/* harmony import */ var _create_wallet_create_wallet_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./create-wallet/create-wallet.component */ "./src/app/create-wallet/create-wallet.component.ts"); -/* harmony import */ var _open_wallet_open_wallet_component__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./open-wallet/open-wallet.component */ "./src/app/open-wallet/open-wallet.component.ts"); -/* harmony import */ var _restore_wallet_restore_wallet_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./restore-wallet/restore-wallet.component */ "./src/app/restore-wallet/restore-wallet.component.ts"); -/* harmony import */ var _seed_phrase_seed_phrase_component__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./seed-phrase/seed-phrase.component */ "./src/app/seed-phrase/seed-phrase.component.ts"); -/* harmony import */ var _wallet_details_wallet_details_component__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./wallet-details/wallet-details.component */ "./src/app/wallet-details/wallet-details.component.ts"); -/* harmony import */ var _assign_alias_assign_alias_component__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./assign-alias/assign-alias.component */ "./src/app/assign-alias/assign-alias.component.ts"); -/* harmony import */ var _edit_alias_edit_alias_component__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./edit-alias/edit-alias.component */ "./src/app/edit-alias/edit-alias.component.ts"); -/* harmony import */ var _transfer_alias_transfer_alias_component__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./transfer-alias/transfer-alias.component */ "./src/app/transfer-alias/transfer-alias.component.ts"); -/* harmony import */ var _contacts_contacts_component__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./contacts/contacts.component */ "./src/app/contacts/contacts.component.ts"); -/* harmony import */ var _add_contacts_add_contacts_component__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./add-contacts/add-contacts.component */ "./src/app/add-contacts/add-contacts.component.ts"); -/* harmony import */ var _contact_send_contact_send_component__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./contact-send/contact-send.component */ "./src/app/contact-send/contact-send.component.ts"); -/* harmony import */ var _export_import_export_import_component__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./export-import/export-import.component */ "./src/app/export-import/export-import.component.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; - - -// Components - - - - - - - - - - - - - - - - - - - - - - - - -var routes = [ - { - path: '', - component: _main_main_component__WEBPACK_IMPORTED_MODULE_2__["MainComponent"] - }, - { - path: 'main', - component: _main_main_component__WEBPACK_IMPORTED_MODULE_2__["MainComponent"] - }, - { - path: 'login', - component: _login_login_component__WEBPACK_IMPORTED_MODULE_3__["LoginComponent"] - }, - { - path: 'wallet/:id', - component: _wallet_wallet_component__WEBPACK_IMPORTED_MODULE_4__["WalletComponent"], - children: [ - { - path: 'send', - component: _send_send_component__WEBPACK_IMPORTED_MODULE_5__["SendComponent"] - }, - { - path: 'receive', - component: _receive_receive_component__WEBPACK_IMPORTED_MODULE_6__["ReceiveComponent"] - }, - { - path: 'history', - component: _history_history_component__WEBPACK_IMPORTED_MODULE_7__["HistoryComponent"] - }, - { - path: 'contracts', - component: _contracts_contracts_component__WEBPACK_IMPORTED_MODULE_8__["ContractsComponent"], - }, - { - path: 'purchase', - component: _purchase_purchase_component__WEBPACK_IMPORTED_MODULE_9__["PurchaseComponent"] - }, - { - path: 'purchase/:id', - component: _purchase_purchase_component__WEBPACK_IMPORTED_MODULE_9__["PurchaseComponent"] - }, - { - path: 'messages', - component: _messages_messages_component__WEBPACK_IMPORTED_MODULE_10__["MessagesComponent"], - }, - { - path: 'messages/:id', - component: _typing_message_typing_message_component__WEBPACK_IMPORTED_MODULE_11__["TypingMessageComponent"], - }, - { - path: 'staking', - component: _staking_staking_component__WEBPACK_IMPORTED_MODULE_12__["StakingComponent"] - }, - { - path: '', - redirectTo: 'history', - pathMatch: 'full' - } - ] - }, - { - path: 'create', - component: _create_wallet_create_wallet_component__WEBPACK_IMPORTED_MODULE_14__["CreateWalletComponent"] - }, - { - path: 'open', - component: _open_wallet_open_wallet_component__WEBPACK_IMPORTED_MODULE_15__["OpenWalletComponent"] - }, - { - path: 'restore', - component: _restore_wallet_restore_wallet_component__WEBPACK_IMPORTED_MODULE_16__["RestoreWalletComponent"] - }, - { - path: 'seed-phrase', - component: _seed_phrase_seed_phrase_component__WEBPACK_IMPORTED_MODULE_17__["SeedPhraseComponent"] - }, - { - path: 'details', - component: _wallet_details_wallet_details_component__WEBPACK_IMPORTED_MODULE_18__["WalletDetailsComponent"] - }, - { - path: 'assign-alias', - component: _assign_alias_assign_alias_component__WEBPACK_IMPORTED_MODULE_19__["AssignAliasComponent"] - }, - { - path: 'edit-alias', - component: _edit_alias_edit_alias_component__WEBPACK_IMPORTED_MODULE_20__["EditAliasComponent"] - }, - { - path: 'transfer-alias', - component: _transfer_alias_transfer_alias_component__WEBPACK_IMPORTED_MODULE_21__["TransferAliasComponent"] - }, - { - path: 'settings', - component: _settings_settings_component__WEBPACK_IMPORTED_MODULE_13__["SettingsComponent"] - }, - { - path: 'contacts', - component: _contacts_contacts_component__WEBPACK_IMPORTED_MODULE_22__["ContactsComponent"] - }, - { - path: 'add-contacts', - component: _add_contacts_add_contacts_component__WEBPACK_IMPORTED_MODULE_23__["AddContactsComponent"] - }, - { - path: 'edit-contacts/:id', - component: _add_contacts_add_contacts_component__WEBPACK_IMPORTED_MODULE_23__["AddContactsComponent"] - }, - { - path: 'contact-send/:id', - component: _contact_send_contact_send_component__WEBPACK_IMPORTED_MODULE_24__["ContactSendComponent"] - }, - { - path: 'import', - component: _export_import_export_import_component__WEBPACK_IMPORTED_MODULE_25__["ExportImportComponent"] - }, - { - path: '', - redirectTo: '/', - pathMatch: 'full' - } -]; -var AppRoutingModule = /** @class */ (function () { - function AppRoutingModule() { - } - AppRoutingModule = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"])({ - imports: [_angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"].forRoot(routes)], - exports: [_angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"]] - }) - ], AppRoutingModule); - return AppRoutingModule; -}()); - - - -/***/ }), - -/***/ "./src/app/app.component.html": -/*!************************************!*\ - !*** ./src/app/app.component.html ***! - \************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "\r\n\r\n
    \r\n \r\n
    \r\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\r\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\r\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\r\n \r\n
    \r\n
    \r\n\r\n {{ 'CONTEXT_MENU.COPY' | translate }}\r\n {{ 'CONTEXT_MENU.PASTE' | translate }}\r\n {{ 'CONTEXT_MENU.SELECT' | translate }}\r\n\r\n\r\n\r\n {{ 'CONTEXT_MENU.COPY' | translate }}\r\n\r\n\r\n\r\n {{ 'CONTEXT_MENU.PASTE' | translate }}\r\n {{ 'CONTEXT_MENU.SELECT' | translate }}\r\n\r\n\r\n\r\n\r\n" - -/***/ }), - -/***/ "./src/app/app.component.scss": -/*!************************************!*\ - !*** ./src/app/app.component.scss ***! - \************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "/*\r\n* Implementation of themes\r\n*/\n.app-content {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n width: 100%; }\n.app-content .preloader {\n align-self: center;\n color: #fff;\n font-size: 2rem;\n margin: 0 auto;\n text-align: center;\n width: 50%; }\n.app-content .preloader .loading-bar {\n display: block;\n -webkit-animation: move 5s linear infinite;\n animation: move 5s linear infinite;\n background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.125, rgba(0, 0, 0, 0.15)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.1)), color-stop(0.375, rgba(0, 0, 0, 0.1)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.15)), color-stop(0.625, rgba(0, 0, 0, 0.15)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.1)), color-stop(0.875, rgba(0, 0, 0, 0.1)), color-stop(0.875, transparent), to(transparent)), -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\n background-size: 10rem 10rem;\n margin-top: 2rem;\n width: 100%;\n height: 1rem; }\n@-webkit-keyframes move {\n 0% {\n background-position: 100% -10rem; }\n 100% {\n background-position: 100% 10rem; } }\n@keyframes move {\n 0% {\n background-position: 100% -10rem; }\n 100% {\n background-position: 100% 10rem; } }\n\r\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFzc2V0c1xcc2Nzc1xcYmFzZVxcX21peGlucy5zY3NzIiwic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGFwcC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4RUE7O0NDNUVDO0FDQUQ7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUNsQixXQUFXLEVBQUE7QUFKYjtJQU9JLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsZUFBZTtJQUNmLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsVUFBVSxFQUFBO0FBWmQ7TUFlTSxjQUFjO01BQ2QsMENBQWtDO2NBQWxDLGtDQUFrQztNQUNsQywrbENBc0JHO01BQ0gsNEJBQTRCO01BQzVCLGdCQUFnQjtNQUNoQixXQUFXO01BQ1gsWUFBWSxFQUFBO0FBSWhCO0VBQ0U7SUFDRSxnQ0FBZ0MsRUFBQTtFQUVsQztJQUNFLCtCQUErQixFQUFBLEVBQUE7QUFMbkM7RUFDRTtJQUNFLGdDQUFnQyxFQUFBO0VBRWxDO0lBQ0UsK0JBQStCLEVBQUEsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBtaXhpbiB0ZXh0LXRydW5jYXRlIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuQG1peGluIHRleHRXcmFwIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICBsaW5lLWJyZWFrOiBzdHJpY3Q7XHJcbiAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xyXG4gIC1tcy1oeXBoZW5zOiBhdXRvO1xyXG4gIGh5cGhlbnM6IGF1dG87XHJcbn1cclxuQG1peGluIGNvdmVyQm94IHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG59XHJcbkBtaXhpbiBhYnMgKCR0b3A6IGF1dG8sICRyaWdodDogYXV0bywgJGJvdHRvbTogYXV0bywgJGxlZnQ6IGF1dG8pIHtcclxuICB0b3A6ICR0b3A7XHJcbiAgcmlnaHQ6ICRyaWdodDtcclxuICBib3R0b206ICRib3R0b207XHJcbiAgbGVmdDogJGxlZnQ7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcbkBtaXhpbiBjb3ZlckltZyB7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHQtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0LW8tYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbn1cclxuQG1peGluIHZhbGluZ0JveCB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogIDUwJTtcclxuXHRsZWZ0OiA1MCU7XHJcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbn1cclxuQG1peGluIHVuU2VsZWN0IHtcclxuXHQtd2Via2l0LXRvdWNoLWNvbGxvdXQ6IG5vbmU7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbn1cclxuQG1peGluIG1heDExOTkgeyAvLyBtYWtldCAxMTcxXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkgeyBAY29udGVudDsgfVxyXG59XHJcbkBtaXhpbiBtYXgxMTcwIHsgLy8gbWFrZXRzIDk5MlxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMTcwcHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbWF4OTkxIHsgLy8gbWFrZXRzIDc2MlxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkgeyBAY29udGVudDsgfVxyXG59XHJcbkBtaXhpbiBtYXg3NjEgeyAvLyBtYWtldHMgNTc2XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2MXB4KSB7IEBjb250ZW50OyB9XHJcbn1cclxuQG1peGluIG1heDU3NSB7IC8vIG1ha2V0cyA0MDBcclxuICBAbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbW9iaWxlIHtcclxuICBAbWVkaWEgKG1heC13aWR0aDogMzk5cHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gaWNvQ2VudGVyIHtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xyXG59XHJcbkBtaXhpbiBwc2V1ZG8gKCRkaXNwbGF5OiBibG9jaywgJHBvczogYWJzb2x1dGUsICRjb250ZW50OiAnJyl7XHJcbiAgY29udGVudDogJGNvbnRlbnQ7XHJcbiAgZGlzcGxheTogJGRpc3BsYXk7XHJcbiAgcG9zaXRpb246ICRwb3M7XHJcbn1cclxuXHJcbi8qXHJcbiogSW1wbGVtZW50YXRpb24gb2YgdGhlbWVzXHJcbiovXHJcbkBtaXhpbiB0aGVtaWZ5KCR0aGVtZXM6ICR0aGVtZXMpIHtcclxuICBAZWFjaCAkdGhlbWUsICRtYXAgaW4gJHRoZW1lcyB7XHJcbiAgICAudGhlbWUtI3skdGhlbWV9ICYge1xyXG4gICAgICAkdGhlbWUtbWFwOiAoKSAhZ2xvYmFsO1xyXG4gICAgICBAZWFjaCAka2V5LCAkc3VibWFwIGluICRtYXAge1xyXG4gICAgICAgICR2YWx1ZTogbWFwLWdldChtYXAtZ2V0KCR0aGVtZXMsICR0aGVtZSksICcjeyRrZXl9Jyk7XHJcbiAgICAgICAgJHRoZW1lLW1hcDogbWFwLW1lcmdlKCR0aGVtZS1tYXAsICgka2V5OiAkdmFsdWUpKSAhZ2xvYmFsO1xyXG4gICAgICB9XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgICAkdGhlbWUtbWFwOiBudWxsICFnbG9iYWw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AZnVuY3Rpb24gdGhlbWVkKCRrZXkpIHtcclxuICBAcmV0dXJuIG1hcC1nZXQoJHRoZW1lLW1hcCwgJGtleSk7XHJcbn1cclxuIiwiLypcclxuKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGVtZXNcclxuKi9cbi5hcHAtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93LXg6IG92ZXJsYXk7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmFwcC1jb250ZW50IC5wcmVsb2FkZXIge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAuYXBwLWNvbnRlbnQgLnByZWxvYWRlciAubG9hZGluZy1iYXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBhbmltYXRpb246IG1vdmUgNXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMTAwJSAxMDAlLCBjb2xvci1zdG9wKDAuMTI1LCByZ2JhKDAsIDAsIDAsIDAuMTUpKSwgY29sb3Itc3RvcCgwLjEyNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjI1LCByZ2JhKDAsIDAsIDAsIDAuMSkpLCBjb2xvci1zdG9wKDAuMzc1LCByZ2JhKDAsIDAsIDAsIDAuMSkpLCBjb2xvci1zdG9wKDAuMzc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCByZ2JhKDAsIDAsIDAsIDAuMTUpKSwgY29sb3Itc3RvcCgwLjYyNSwgcmdiYSgwLCAwLCAwLCAwLjE1KSksIGNvbG9yLXN0b3AoMC42MjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC43NSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjg3NSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjg3NSwgdHJhbnNwYXJlbnQpLCB0byh0cmFuc3BhcmVudCkpLCAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsIGNvbG9yLXN0b3AoMC4xMjUsIHJnYmEoMCwgMCwgMCwgMC4zKSksIGNvbG9yLXN0b3AoMC4xMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC4yNSwgcmdiYSgwLCAwLCAwLCAwLjI1KSksIGNvbG9yLXN0b3AoMC4zNzUsIHJnYmEoMCwgMCwgMCwgMC4yNSkpLCBjb2xvci1zdG9wKDAuMzc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCByZ2JhKDAsIDAsIDAsIDAuMykpLCBjb2xvci1zdG9wKDAuNjI1LCByZ2JhKDAsIDAsIDAsIDAuMykpLCBjb2xvci1zdG9wKDAuNjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC43NSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNzUsIHJnYmEoMCwgMCwgMCwgMC4yNSkpLCBjb2xvci1zdG9wKDAuODc1LCByZ2JhKDAsIDAsIDAsIDAuMjUpKSwgY29sb3Itc3RvcCgwLjg3NSwgdHJhbnNwYXJlbnQpLCB0byh0cmFuc3BhcmVudCkpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMHJlbSAxMHJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMXJlbTsgfVxuXG5Aa2V5ZnJhbWVzIG1vdmUge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtMTByZW07IH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAxMHJlbTsgfSB9XG4iLCJAaW1wb3J0ICd+c3JjL2Fzc2V0cy9zY3NzL2Jhc2UvbWl4aW5zJztcclxuXHJcbi5hcHAtY29udGVudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBvdmVyZmxvdy14OiBvdmVybGF5O1xyXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgLnByZWxvYWRlciB7XHJcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd2lkdGg6IDUwJTtcclxuXHJcbiAgICAubG9hZGluZy1iYXIge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgYW5pbWF0aW9uOiBtb3ZlIDVzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTpcclxuICAgICAgICAtd2Via2l0LWdyYWRpZW50KFxyXG4gICAgICAgICAgICBsaW5lYXIsIDAgMCwgMTAwJSAxMDAlLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC4xMjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjEyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC4yNTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguMjUwLCByZ2JhKDAsIDAsIDAsIC4xMCkpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC4zNzUsIHJnYmEoMCwgMCwgMCwgLjEwKSksIGNvbG9yLXN0b3AoLjM3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC41MDAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNTAwLCByZ2JhKDAsIDAsIDAsIC4xNSkpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC42MjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjYyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC43NTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNzUwLCByZ2JhKDAsIDAsIDAsIC4xMCkpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC44NzUsIHJnYmEoMCwgMCwgMCwgLjEwKSksIGNvbG9yLXN0b3AoLjg3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICB0byh0cmFuc3BhcmVudClcclxuICAgICAgICApLFxyXG4gICAgICAgIC13ZWJraXQtZ3JhZGllbnQoXHJcbiAgICAgICAgICAgIGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjEyNSwgcmdiYSgwLCAwLCAwLCAuMzApKSwgY29sb3Itc3RvcCguMTI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjI1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC4yNTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjM3NSwgcmdiYSgwLCAwLCAwLCAuMjUpKSwgY29sb3Itc3RvcCguMzc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjUwMCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC41MDAsIHJnYmEoMCwgMCwgMCwgLjMwKSksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjYyNSwgcmdiYSgwLCAwLCAwLCAuMzApKSwgY29sb3Itc3RvcCguNjI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjc1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC43NTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjg3NSwgcmdiYSgwLCAwLCAwLCAuMjUpKSwgY29sb3Itc3RvcCguODc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIHRvKHRyYW5zcGFyZW50KVxyXG4gICAgICAgICk7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTByZW0gMTByZW07XHJcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDFyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAa2V5ZnJhbWVzIG1vdmUge1xyXG4gICAgMCUge1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIC0xMHJlbTtcclxuICAgIH1cclxuICAgIDEwMCUge1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDEwcmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */" - -/***/ }), - -/***/ "./src/app/app.component.ts": -/*!**********************************!*\ - !*** ./src/app/app.component.ts ***! - \**********************************/ -/*! exports provided: AppComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppComponent", function() { return AppComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/fesm5/http.js"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var ngx_contextmenu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ngx-contextmenu */ "./node_modules/ngx-contextmenu/fesm5/ngx-contextmenu.js"); -/* harmony import */ var _helpers_pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./_helpers/pipes/int-to-money.pipe */ "./src/app/_helpers/pipes/int-to-money.pipe.ts"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! bignumber.js */ "./node_modules/bignumber.js/bignumber.js"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -/* harmony import */ var _helpers_services_utils_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./_helpers/services/utils.service */ "./src/app/_helpers/services/utils.service.ts"); -/* harmony import */ var store__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! store */ "./src/store.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - - - - - - -var AppComponent = /** @class */ (function () { - function AppComponent(http, renderer, translate, backend, router, variablesService, ngZone, intToMoneyPipe, modalService, utilsService, store) { - var _this = this; - this.http = http; - this.renderer = renderer; - this.translate = translate; - this.backend = backend; - this.router = router; - this.variablesService = variablesService; - this.ngZone = ngZone; - this.intToMoneyPipe = intToMoneyPipe; - this.modalService = modalService; - this.utilsService = utilsService; - this.store = store; - this.onQuitRequest = false; - this.firstOnlineState = false; - this.translateUsed = false; - this.needOpenWallets = []; - translate.addLangs(['en', 'fr', 'de', 'it', 'pt']); - translate.setDefaultLang('en'); - // const browserLang = translate.getBrowserLang(); - // translate.use(browserLang.match(/en|fr/) ? browserLang : 'en'); - translate.use('en').subscribe(function () { - _this.translateUsed = true; - }); - } - AppComponent.prototype.setBackendLocalization = function () { - var _this = this; - if (this.translateUsed) { - var stringsArray = [ - this.translate.instant('BACKEND_LOCALIZATION.QUIT'), - this.translate.instant('BACKEND_LOCALIZATION.IS_RECEIVED'), - this.translate.instant('BACKEND_LOCALIZATION.IS_CONFIRMED'), - this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_UNCONFIRMED'), - this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_CONFIRMED'), - this.translate.instant('BACKEND_LOCALIZATION.MINED'), - this.translate.instant('BACKEND_LOCALIZATION.LOCKED'), - this.translate.instant('BACKEND_LOCALIZATION.IS_MINIMIZE'), - this.translate.instant('BACKEND_LOCALIZATION.RESTORE'), - this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_SHOW'), - this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_MINIMIZE') - ]; - this.backend.setBackendLocalization(stringsArray, this.variablesService.settings.language); - } - else { - console.warn('wait translate use'); - setTimeout(function () { - _this.setBackendLocalization(); - }, 10000); - } - }; - AppComponent.prototype.ngOnInit = function () { - var _this = this; - this.variablesService.allContextMenu = this.allContextMenu; - this.variablesService.onlyCopyContextMenu = this.onlyCopyContextMenu; - this.backend.initService().subscribe(function (initMessage) { - console.log('Init message: ', initMessage); - _this.backend.webkitLaunchedScript(); - _this.backend.start_backend(false, '127.0.0.1', 11512, function (st2, dd2) { - console.log(st2, dd2); - }); - _this.backend.eventSubscribe('quit_requested', function () { - if (!_this.onQuitRequest) { - _this.ngZone.run(function () { - _this.router.navigate(['/']); - }); - _this.needOpenWallets = []; - _this.variablesService.daemon_state = 5; - var saveFunction_1 = function () { - _this.backend.storeAppData(function () { - var recursionCloseWallets = function () { - if (_this.variablesService.wallets.length) { - var lastIndex_1 = _this.variablesService.wallets.length - 1; - _this.backend.closeWallet(_this.variablesService.wallets[lastIndex_1].wallet_id, function () { - _this.variablesService.wallets.splice(lastIndex_1, 1); - recursionCloseWallets(); - }); - } - else { - _this.backend.quitRequest(); - } - }; - recursionCloseWallets(); - }); - }; - if (_this.variablesService.appPass) { - _this.backend.storeSecureAppData(function () { - saveFunction_1(); - }); - } - else { - saveFunction_1(); - } - } - _this.onQuitRequest = true; - }); - _this.backend.eventSubscribe('update_wallet_status', function (data) { - console.log('----------------- update_wallet_status -----------------'); - console.log(data); - var wallet_state = data.wallet_state; - var is_mining = data.is_mining; - var wallet = _this.variablesService.getWallet(data.wallet_id); - // 1-synch, 2-ready, 3 - error - if (wallet) { - _this.ngZone.run(function () { - wallet.loaded = false; - wallet.staking = is_mining; - if (wallet_state === 2) { // ready - wallet.loaded = true; - } - if (wallet_state === 3) { // error - // wallet.error = true; - } - wallet.balance = data.balance; - wallet.unlocked_balance = data.unlocked_balance; - wallet.mined_total = data.minied_total; - wallet.alias_available = data.is_alias_operations_available; - }); - } - }); - _this.backend.eventSubscribe('wallet_sync_progress', function (data) { - console.log('----------------- wallet_sync_progress -----------------'); - console.log(data); - var wallet = _this.variablesService.getWallet(data.wallet_id); - if (wallet) { - _this.ngZone.run(function () { - wallet.progress = (data.progress < 0) ? 0 : ((data.progress > 100) ? 100 : data.progress); - if (!_this.variablesService.sync_started) { - _this.variablesService.sync_started = true; - } - _this.addToStore(wallet, true); // subscribe on data - if (wallet.progress === 0) { - wallet.loaded = false; - } - else if (wallet.progress === 100) { - wallet.loaded = true; - _this.addToStore(wallet, false); - } - }); - } - }); - _this.backend.eventSubscribe('update_daemon_state', function (data) { - console.log('----------------- update_daemon_state -----------------'); - console.log('DAEMON:' + data.daemon_network_state); - console.log(data); - // this.variablesService.exp_med_ts = data['expiration_median_timestamp'] + 600 + 1; - _this.variablesService.setExpMedTs(data['expiration_median_timestamp'] + 600 + 1); - _this.variablesService.net_time_delta_median = data.net_time_delta_median; - _this.variablesService.last_build_available = data.last_build_available; - _this.variablesService.last_build_displaymode = data.last_build_displaymode; - _this.variablesService.setHeightApp(data.height); - _this.variablesService.setHeightMax(data.max_net_seen_height); - _this.variablesService.setDownloadedBytes(data.downloaded_bytes); - _this.variablesService.setTotalBytes(data.download_total_data_size); - _this.backend.getContactAlias(); - _this.ngZone.run(function () { - _this.variablesService.daemon_state = data['daemon_network_state']; - if (data['daemon_network_state'] === 1) { - var max = data['max_net_seen_height'] - data['synchronization_start_height']; - var current = data.height - data['synchronization_start_height']; - var return_val = Math.floor((current * 100 / max) * 100) / 100; - if (max === 0 || return_val < 0) { - _this.variablesService.sync.progress_value = 0; - _this.variablesService.sync.progress_value_text = '0.00'; - } - else if (return_val >= 100) { - _this.variablesService.sync.progress_value = 100; - _this.variablesService.sync.progress_value_text = '99.99'; - } - else { - _this.variablesService.sync.progress_value = return_val; - _this.variablesService.sync.progress_value_text = return_val.toFixed(2); - } - } - if (data['daemon_network_state'] === 6) { - var max = data['download_total_data_size']; - var current = data['downloaded_bytes']; - var return_val = Math.floor((current / max) * 100); - if (max === 0 || return_val < 0) { - _this.variablesService.download.progress_value = 0; - _this.variablesService.download.progress_value_text = '0.00'; - } - else if (return_val >= 100) { - _this.variablesService.download.progress_value = 100; - _this.variablesService.download.progress_value_text = '99.99'; - } - else { - _this.variablesService.download.progress_value = return_val; - _this.variablesService.download.progress_value_text = return_val.toFixed(2); - } - } - }); - if (!_this.firstOnlineState && data['daemon_network_state'] === 2) { - _this.getAliases(); - _this.backend.getContactAlias(); - _this.backend.getDefaultFee(function (status_fee, data_fee) { - _this.variablesService.default_fee_big = new bignumber_js__WEBPACK_IMPORTED_MODULE_8__["BigNumber"](data_fee); - _this.variablesService.default_fee = _this.intToMoneyPipe.transform(data_fee); - }); - _this.firstOnlineState = true; - } - }); - _this.backend.eventSubscribe('money_transfer', function (data) { - console.log('----------------- money_transfer -----------------'); - console.log(data); - if (!data.ti) { - return; - } - var wallet_id = data.wallet_id; - var tr_info = data.ti; - var wallet = _this.variablesService.getWallet(wallet_id); - if (wallet) { - if (wallet.history.length > 40) { - wallet.history.splice(40, 1); - } - _this.ngZone.run(function () { - if (!wallet.loaded) { - wallet.balance = data.balance; - wallet.unlocked_balance = data.unlocked_balance; - } - else { - wallet.balance = data.balance; - wallet.unlocked_balance = data.unlocked_balance; - } - if (tr_info.tx_type === 6) { - _this.variablesService.setRefreshStacking(wallet_id); - } - var tr_exists = wallet.excluded_history.some(function (elem) { return elem.tx_hash === tr_info.tx_hash; }); - tr_exists = (!tr_exists) ? wallet.history.some(function (elem) { return elem.tx_hash === tr_info.tx_hash; }) : tr_exists; - if (wallet.currentPage === 1) { - wallet.prepareHistory([tr_info]); - if (wallet.restore) { - wallet.total_history_item = wallet.history.length; - wallet.totalPages = Math.ceil(wallet.total_history_item / _this.variablesService.count); - wallet.totalPages > _this.variablesService.maxPages - ? wallet.pages = new Array(5).fill(1).map(function (value, index) { return value + index; }) - : wallet.pages = new Array(wallet.totalPages).fill(1).map(function (value, index) { return value + index; }); - } - } - if (tr_info.hasOwnProperty('contract')) { - var exp_med_ts = _this.variablesService.exp_med_ts; - var height_app = _this.variablesService.height_app; - var contract_1 = tr_info.contract[0]; - if (tr_exists) { - for (var i = 0; i < wallet.contracts.length; i++) { - if (wallet.contracts[i].contract_id === contract_1.contract_id && wallet.contracts[i].is_a === contract_1.is_a) { - wallet.contracts[i].cancel_expiration_time = contract_1.cancel_expiration_time; - wallet.contracts[i].expiration_time = contract_1.expiration_time; - wallet.contracts[i].height = contract_1.height; - wallet.contracts[i].timestamp = contract_1.timestamp; - break; - } - } - // $rootScope.getContractsRecount(); - return; - } - if (contract_1.state === 1 && contract_1.expiration_time < exp_med_ts) { - contract_1.state = 110; - } - else if (contract_1.state === 5 && contract_1.cancel_expiration_time < exp_med_ts) { - contract_1.state = 130; - } - else if (contract_1.state === 1) { - var searchResult2 = _this.variablesService.settings.notViewedContracts.find(function (elem) { return elem.state === 110 && elem.is_a === contract_1.is_a && elem.contract_id === contract_1.contract_id; }); - if (searchResult2) { - if (searchResult2.time === contract_1.expiration_time) { - contract_1.state = 110; - } - else { - for (var j = 0; j < _this.variablesService.settings.notViewedContracts.length; j++) { - if (_this.variablesService.settings.notViewedContracts[j].contract_id === contract_1.contract_id && _this.variablesService.settings.notViewedContracts[j].is_a === contract_1.is_a) { - _this.variablesService.settings.notViewedContracts.splice(j, 1); - break; - } - } - for (var j = 0; j < _this.variablesService.settings.viewedContracts.length; j++) { - if (_this.variablesService.settings.viewedContracts[j].contract_id === contract_1.contract_id && _this.variablesService.settings.viewedContracts[j].is_a === contract_1.is_a) { - _this.variablesService.settings.viewedContracts.splice(j, 1); - break; - } - } - } - } - } - else if (contract_1.state === 2 && (contract_1.height === 0 || (height_app - contract_1.height) < 10)) { - contract_1.state = 201; - } - else if (contract_1.state === 2) { - var searchResult3 = _this.variablesService.settings.viewedContracts.some(function (elem) { return elem.state === 120 && elem.is_a === contract_1.is_a && elem.contract_id === contract_1.contract_id; }); - if (searchResult3) { - contract_1.state = 120; - } - } - else if (contract_1.state === 5) { - var searchResult4 = _this.variablesService.settings.notViewedContracts.find(function (elem) { return elem.state === 130 && elem.is_a === contract_1.is_a && elem.contract_id === contract_1.contract_id; }); - if (searchResult4) { - if (searchResult4.time === contract_1.cancel_expiration_time) { - contract_1.state = 130; - } - else { - for (var j = 0; j < _this.variablesService.settings.notViewedContracts.length; j++) { - if (_this.variablesService.settings.notViewedContracts[j].contract_id === contract_1.contract_id && _this.variablesService.settings.notViewedContracts[j].is_a === contract_1.is_a) { - _this.variablesService.settings.notViewedContracts.splice(j, 1); - break; - } - } - for (var j = 0; j < _this.variablesService.settings.viewedContracts.length; j++) { - if (_this.variablesService.settings.viewedContracts[j].contract_id === contract_1.contract_id && _this.variablesService.settings.viewedContracts[j].is_a === contract_1.is_a) { - _this.variablesService.settings.viewedContracts.splice(j, 1); - break; - } - } - } - } - } - else if (contract_1.state === 6 && (contract_1.height === 0 || (height_app - contract_1.height) < 10)) { - contract_1.state = 601; - } - var searchResult = _this.variablesService.settings.viewedContracts.some(function (elem) { return elem.state === contract_1.state && elem.is_a === contract_1.is_a && elem.contract_id === contract_1.contract_id; }); - contract_1.is_new = !searchResult; - var findContract = false; - for (var i = 0; i < wallet.contracts.length; i++) { - if (wallet.contracts[i].contract_id === contract_1.contract_id && wallet.contracts[i].is_a === contract_1.is_a) { - for (var prop in contract_1) { - if (contract_1.hasOwnProperty(prop)) { - wallet.contracts[i][prop] = contract_1[prop]; - } - } - findContract = true; - break; - } - } - if (findContract === false) { - wallet.contracts.push(contract_1); - } - wallet.recountNewContracts(); - } - }); - } - }); - _this.backend.eventSubscribe('money_transfer_cancel', function (data) { - console.log('----------------- money_transfer_cancel -----------------'); - console.log(data); - if (!data.ti) { - return; - } - var wallet_id = data.wallet_id; - var tr_info = data.ti; - var wallet = _this.variablesService.getWallet(wallet_id); - if (wallet) { - if (tr_info.hasOwnProperty('contract')) { - for (var i = 0; i < wallet.contracts.length; i++) { - if (wallet.contracts[i].contract_id === tr_info.contract[0].contract_id && wallet.contracts[i].is_a === tr_info.contract[0].is_a) { - if (wallet.contracts[i].state === 1 || wallet.contracts[i].state === 110) { - wallet.contracts[i].is_new = true; - wallet.contracts[i].state = 140; - wallet.recountNewContracts(); - } - break; - } - } - } - wallet.removeFromHistory(tr_info.tx_hash); - var error_tr = ''; - switch (tr_info.tx_type) { - case 0: - error_tr = _this.translate.instant('ERRORS.TX_TYPE_NORMAL') + '
    ' + - tr_info.tx_hash + '
    ' + wallet.name + '
    ' + wallet.address + '
    ' + - _this.translate.instant('ERRORS.TX_TYPE_NORMAL_TO') + ' ' + _this.intToMoneyPipe.transform(tr_info.amount) + ' ' + - _this.translate.instant('ERRORS.TX_TYPE_NORMAL_END'); - break; - case 1: - // this.translate.instant('ERRORS.TX_TYPE_PUSH_OFFER'); - break; - case 2: - // this.translate.instant('ERRORS.TX_TYPE_UPDATE_OFFER'); - break; - case 3: - // this.translate.instant('ERRORS.TX_TYPE_CANCEL_OFFER'); - break; - case 4: - error_tr = _this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS') + '
    ' + - tr_info.tx_hash + '
    ' + wallet.name + '
    ' + wallet.address + '
    ' + - _this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END'); - break; - case 5: - error_tr = _this.translate.instant('ERRORS.TX_TYPE_UPDATE_ALIAS') + '
    ' + - tr_info.tx_hash + '
    ' + wallet.name + '
    ' + wallet.address + '
    ' + - _this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END'); - break; - case 6: - error_tr = _this.translate.instant('ERRORS.TX_TYPE_COIN_BASE'); - break; - } - if (error_tr) { - _this.modalService.prepareModal('error', error_tr); - } - } - }); - _this.backend.eventSubscribe('on_core_event', function (data) { - console.log('----------------- on_core_event -----------------'); - console.log(data); - data = JSON.parse(data); - if (data.events != null) { - var _loop_1 = function (i, length_1) { - switch (data.events[i].method) { - case 'CORE_EVENT_BLOCK_ADDED': - break; - case 'CORE_EVENT_ADD_ALIAS': - if (_this.variablesService.aliasesChecked[data.events[i].details.address] != null) { - _this.variablesService.aliasesChecked[data.events[i].details.address]['name'] = '@' + data.events[i].details.alias; - _this.variablesService.aliasesChecked[data.events[i].details.address]['address'] = data.events[i].details.address; - _this.variablesService.aliasesChecked[data.events[i].details.address]['comment'] = data.events[i].details.comment; - } - if (_this.variablesService.enableAliasSearch) { - var newAlias = { - name: '@' + data.events[i].details.alias, - address: data.events[i].details.address, - comment: data.events[i].details.comment - }; - _this.variablesService.aliases = _this.variablesService.aliases.concat(newAlias); - _this.variablesService.changeAliases(); - } - break; - case 'CORE_EVENT_UPDATE_ALIAS': - for (var address in _this.variablesService.aliasesChecked) { - if (_this.variablesService.aliasesChecked.hasOwnProperty(address)) { - if (_this.variablesService.aliasesChecked[address].name === '@' + data.events[i].details.alias) { - if (_this.variablesService.aliasesChecked[address].address !== data.events[i].details.details.address) { - delete _this.variablesService.aliasesChecked[address]['name']; - delete _this.variablesService.aliasesChecked[address]['address']; - delete _this.variablesService.aliasesChecked[address]['comment']; - } - else { - _this.variablesService.aliasesChecked[address].comment = data.events[i].details.details.comment; - } - break; - } - } - } - if (_this.variablesService.aliasesChecked[data.events[i].details.details.address] != null) { - _this.variablesService.aliasesChecked[data.events[i].details.details.address]['name'] = '@' + data.events[i].details.alias; - _this.variablesService.aliasesChecked[data.events[i].details.details.address]['address'] = data.events[i].details.details.address; - _this.variablesService.aliasesChecked[data.events[i].details.details.address]['comment'] = data.events[i].details.details.comment; - } - if (_this.variablesService.enableAliasSearch) { - var CurrentAlias = _this.variablesService.aliases.find(function (element) { return element.name === '@' + data.events[i].details.alias; }); - if (CurrentAlias) { - CurrentAlias.address = data.events[i].details.details.address; - CurrentAlias.comment = data.events[i].details.details.comment; - } - } - _this.variablesService.changeAliases(); - break; - default: - break; - } - }; - for (var i = 0, length_1 = data.events.length; i < length_1; i++) { - _loop_1(i, length_1); - } - } - }); - _this.intervalUpdateContractsState = setInterval(function () { - _this.variablesService.wallets.forEach(function (wallet) { - wallet.contracts.forEach(function (contract) { - if (contract.state === 201 && contract.height !== 0 && (_this.variablesService.height_app - contract.height) >= 10) { - contract.state = 2; - contract.is_new = true; - console.warn('need check state in contracts'); - } - else if (contract.state === 601 && contract.height !== 0 && (_this.variablesService.height_app - contract.height) >= 10) { - contract.state = 6; - contract.is_new = true; - } - }); - }); - }, 30000); - _this.expMedTsEvent = _this.variablesService.getExpMedTsEvent.subscribe(function (newTimestamp) { - _this.variablesService.wallets.forEach(function (wallet) { - wallet.contracts.forEach(function (contract) { - if (contract.state === 1 && contract.expiration_time <= newTimestamp) { - contract.state = 110; - contract.is_new = true; - wallet.recountNewContracts(); - } - else if (contract.state === 5 && contract.cancel_expiration_time <= newTimestamp) { - contract.state = 130; - contract.is_new = true; - wallet.recountNewContracts(); - } - }); - }); - }); - _this.backend.getAppData(function (status, data) { - if (data && Object.keys(data).length > 0) { - for (var key in data) { - if (data.hasOwnProperty(key) && _this.variablesService.settings.hasOwnProperty(key)) { - _this.variablesService.settings[key] = data[key]; - } - } - if (_this.variablesService.settings.hasOwnProperty('theme') && ['dark', 'white', 'gray'].indexOf(_this.variablesService.settings.theme) !== -1) { - _this.renderer.addClass(document.body, 'theme-' + _this.variablesService.settings.theme); - } - else { - _this.renderer.addClass(document.body, 'theme-' + _this.variablesService.defaultTheme); - } - if (_this.variablesService.settings.hasOwnProperty('scale') && [7.5, 10, 12.5, 15].indexOf(_this.variablesService.settings.scale) !== -1) { - var width = _this.utilsService.getMinWidthByScale(_this.variablesService.settings.scale); - var app = document.documentElement.querySelector('app-root'); - _this.renderer.setStyle(app, 'min-width', width + 'px'); - _this.renderer.setStyle(document.documentElement, 'font-size', _this.variablesService.settings.scale + 'px'); - } - } - else { - _this.variablesService.settings.theme = _this.variablesService.defaultTheme; - _this.renderer.addClass(document.body, 'theme-' + _this.variablesService.settings.theme); - } - _this.translate.use(_this.variablesService.settings.language); - _this.setBackendLocalization(); - _this.backend.setLogLevel(_this.variablesService.settings.appLog); - if (_this.router.url !== '/login') { - _this.backend.haveSecureAppData(function (statusPass) { - if (statusPass) { - _this.ngZone.run(function () { - _this.router.navigate(['/login'], { queryParams: { type: 'auth' } }); - }); - } - else { - if (Object.keys(data).length !== 0) { - _this.needOpenWallets = JSON.parse(JSON.stringify(_this.variablesService.settings.wallets)); - _this.ngZone.run(function () { - _this.variablesService.appLogin = true; - _this.router.navigate(['/']); - }); - } - else { - _this.ngZone.run(function () { - _this.router.navigate(['/login'], { queryParams: { type: 'reg' } }); - }); - } - } - }); - } - }); - }, function (error) { - console.log(error); - }); - this.getMoneyEquivalent(); - this.intervalUpdatePriceState = setInterval(function () { - _this.getMoneyEquivalent(); - }, 30000); - }; - AppComponent.prototype.getMoneyEquivalent = function () { - var _this = this; - this.http.get('https://api.coingecko.com/api/v3/ping').subscribe(function () { - _this.http.get('https://api.coingecko.com/api/v3/simple/price?ids=zano&vs_currencies=usd').subscribe(function (data) { - _this.variablesService.moneyEquivalent = data['zano']['usd']; - }, function (error) { - console.warn('api.coingecko.com price error: ', error); - }); - }, function (error) { - console.warn('api.coingecko.com error: ', error); - setTimeout(function () { - _this.getMoneyEquivalent(); - }, 30000); - }); - }; - AppComponent.prototype.getAliases = function () { - var _this = this; - this.backend.getAllAliases(function (status, data, error) { - console.warn(error); - if (error === 'CORE_BUSY') { - window.setTimeout(function () { - _this.getAliases(); - }, 10000); - } - else if (error === 'OVERFLOW') { - _this.variablesService.aliases = []; - _this.variablesService.enableAliasSearch = false; - _this.variablesService.wallets.forEach(function (wallet) { - wallet.alias = _this.backend.getWalletAlias(wallet.address); - }); - } - else { - _this.variablesService.enableAliasSearch = true; - if (data.aliases && data.aliases.length) { - _this.variablesService.aliases = []; - data.aliases.forEach(function (alias) { - var newAlias = { - name: '@' + alias.alias, - address: alias.address, - comment: alias.comment - }; - _this.variablesService.aliases.push(newAlias); - }); - _this.variablesService.wallets.forEach(function (wallet) { - wallet.alias = _this.backend.getWalletAlias(wallet.address); - }); - _this.variablesService.aliases = _this.variablesService.aliases.sort(function (a, b) { - if (a.name.length > b.name.length) { - return 1; - } - if (a.name.length < b.name.length) { - return -1; - } - if (a.name > b.name) { - return 1; - } - if (a.name < b.name) { - return -1; - } - return 0; - }); - _this.variablesService.changeAliases(); - } - } - }); - }; - AppComponent.prototype.contextMenuCopy = function (target) { - if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) { - var start = (target['contextSelectionStart']) ? 'contextSelectionStart' : 'selectionStart'; - var end = (target['contextSelectionEnd']) ? 'contextSelectionEnd' : 'selectionEnd'; - var canUseSelection = ((target[start]) || (target[start] === '0')); - var SelectedText = (canUseSelection) ? target['value'].substring(target[start], target[end]) : target['value']; - this.backend.setClipboard(String(SelectedText)); - } - }; - AppComponent.prototype.contextMenuOnlyCopy = function (text) { - if (text) { - this.backend.setClipboard(String(text)); - } - }; - AppComponent.prototype.contextMenuPaste = function (target) { - if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) { - this.backend.getClipboard(function (status, clipboard) { - clipboard = String(clipboard); - if (typeof clipboard !== 'string' || clipboard.length) { - var start = (target['contextSelectionStart']) ? 'contextSelectionStart' : 'selectionStart'; - var end = (target['contextSelectionEnd']) ? 'contextSelectionEnd' : 'selectionEnd'; - var _pre = target['value'].substring(0, target[start]); - var _aft = target['value'].substring(target[end], target['value'].length); - var text = _pre + clipboard + _aft; - var cursorPosition = (_pre + clipboard).length; - if (target['maxLength'] && parseInt(target['maxLength'], 10) > 0) { - text = text.substr(0, parseInt(target['maxLength'], 10)); - } - target['value'] = text; - target.setSelectionRange(cursorPosition, cursorPosition); - target.dispatchEvent(new Event('input')); - target['focus'](); - } - }); - } - }; - AppComponent.prototype.contextMenuSelect = function (target) { - if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) { - target['focus'](); - setTimeout(function () { - target['select'](); - }); - } - }; - AppComponent.prototype.addToStore = function (wallet, boolean) { - var value = this.store.value.sync; - if (value && value.length) { - var sync = value.filter(function (item) { return item.wallet_id === wallet.wallet_id; }); - if (sync && sync.length) { - var result = value.map(function (item) { - if (item.wallet_id === wallet.wallet_id) { - return { sync: boolean, wallet_id: wallet.wallet_id }; - } - else { - return item; - } - }); - this.store.set('sync', result); - } - else { - value.push({ sync: boolean, wallet_id: wallet.wallet_id }); - this.store.set('sync', value); - } - } - else { - this.store.set('sync', [{ sync: boolean, wallet_id: wallet.wallet_id }]); - } - }; - AppComponent.prototype.ngOnDestroy = function () { - if (this.intervalUpdateContractsState) { - clearInterval(this.intervalUpdateContractsState); - } - if (this.intervalUpdatePriceState) { - clearInterval(this.intervalUpdatePriceState); - } - this.expMedTsEvent.unsubscribe(); - }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"])('allContextMenu'), - __metadata("design:type", ngx_contextmenu__WEBPACK_IMPORTED_MODULE_6__["ContextMenuComponent"]) - ], AppComponent.prototype, "allContextMenu", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"])('onlyCopyContextMenu'), - __metadata("design:type", ngx_contextmenu__WEBPACK_IMPORTED_MODULE_6__["ContextMenuComponent"]) - ], AppComponent.prototype, "onlyCopyContextMenu", void 0); - AppComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-root', - template: __webpack_require__(/*! ./app.component.html */ "./src/app/app.component.html"), - providers: [_helpers_services_utils_service__WEBPACK_IMPORTED_MODULE_10__["UtilsService"]], - styles: [__webpack_require__(/*! ./app.component.scss */ "./src/app/app.component.scss")] - }), - __metadata("design:paramtypes", [_angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"], - _ngx_translate_core__WEBPACK_IMPORTED_MODULE_2__["TranslateService"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"], - _angular_router__WEBPACK_IMPORTED_MODULE_4__["Router"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_5__["VariablesService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], - _helpers_pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_7__["IntToMoneyPipe"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_9__["ModalService"], - _helpers_services_utils_service__WEBPACK_IMPORTED_MODULE_10__["UtilsService"], - store__WEBPACK_IMPORTED_MODULE_11__["Store"]]) - ], AppComponent); - return AppComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/app.module.ts": -/*!*******************************!*\ - !*** ./src/app/app.module.ts ***! - \*******************************/ -/*! exports provided: HttpLoaderFactory, highchartsFactory, AppModule */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HttpLoaderFactory", function() { return HttpLoaderFactory; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "highchartsFactory", function() { return highchartsFactory; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppModule", function() { return AppModule; }); -/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/fesm5/platform-browser.js"); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _app_routing_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./app-routing.module */ "./src/app/app-routing.module.ts"); -/* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./app.component */ "./src/app/app.component.ts"); -/* harmony import */ var _login_login_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./login/login.component */ "./src/app/login/login.component.ts"); -/* harmony import */ var _settings_settings_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settings/settings.component */ "./src/app/settings/settings.component.ts"); -/* harmony import */ var _sidebar_sidebar_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./sidebar/sidebar.component */ "./src/app/sidebar/sidebar.component.ts"); -/* harmony import */ var _main_main_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./main/main.component */ "./src/app/main/main.component.ts"); -/* harmony import */ var _create_wallet_create_wallet_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./create-wallet/create-wallet.component */ "./src/app/create-wallet/create-wallet.component.ts"); -/* harmony import */ var _open_wallet_open_wallet_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./open-wallet/open-wallet.component */ "./src/app/open-wallet/open-wallet.component.ts"); -/* harmony import */ var _open_wallet_modal_open_wallet_modal_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./open-wallet-modal/open-wallet-modal.component */ "./src/app/open-wallet-modal/open-wallet-modal.component.ts"); -/* harmony import */ var _restore_wallet_restore_wallet_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./restore-wallet/restore-wallet.component */ "./src/app/restore-wallet/restore-wallet.component.ts"); -/* harmony import */ var _seed_phrase_seed_phrase_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./seed-phrase/seed-phrase.component */ "./src/app/seed-phrase/seed-phrase.component.ts"); -/* harmony import */ var _wallet_details_wallet_details_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./wallet-details/wallet-details.component */ "./src/app/wallet-details/wallet-details.component.ts"); -/* harmony import */ var _assign_alias_assign_alias_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./assign-alias/assign-alias.component */ "./src/app/assign-alias/assign-alias.component.ts"); -/* harmony import */ var _edit_alias_edit_alias_component__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./edit-alias/edit-alias.component */ "./src/app/edit-alias/edit-alias.component.ts"); -/* harmony import */ var _transfer_alias_transfer_alias_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./transfer-alias/transfer-alias.component */ "./src/app/transfer-alias/transfer-alias.component.ts"); -/* harmony import */ var _wallet_wallet_component__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./wallet/wallet.component */ "./src/app/wallet/wallet.component.ts"); -/* harmony import */ var _send_send_component__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./send/send.component */ "./src/app/send/send.component.ts"); -/* harmony import */ var _receive_receive_component__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./receive/receive.component */ "./src/app/receive/receive.component.ts"); -/* harmony import */ var _history_history_component__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./history/history.component */ "./src/app/history/history.component.ts"); -/* harmony import */ var _contracts_contracts_component__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./contracts/contracts.component */ "./src/app/contracts/contracts.component.ts"); -/* harmony import */ var _purchase_purchase_component__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./purchase/purchase.component */ "./src/app/purchase/purchase.component.ts"); -/* harmony import */ var _messages_messages_component__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./messages/messages.component */ "./src/app/messages/messages.component.ts"); -/* harmony import */ var _typing_message_typing_message_component__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./typing-message/typing-message.component */ "./src/app/typing-message/typing-message.component.ts"); -/* harmony import */ var _staking_staking_component__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./staking/staking.component */ "./src/app/staking/staking.component.ts"); -/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/fesm5/http.js"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -/* harmony import */ var _ngx_translate_http_loader__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! @ngx-translate/http-loader */ "./node_modules/@ngx-translate/http-loader/fesm5/ngx-translate-http-loader.js"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); -/* harmony import */ var _ng_select_ng_select__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! @ng-select/ng-select */ "./node_modules/@ng-select/ng-select/fesm5/ng-select.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -/* harmony import */ var _helpers_services_pagination_store__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./_helpers/services/pagination.store */ "./src/app/_helpers/services/pagination.store.ts"); -/* harmony import */ var store__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! store */ "./src/store.ts"); -/* harmony import */ var _helpers_pipes_money_to_int_pipe__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./_helpers/pipes/money-to-int.pipe */ "./src/app/_helpers/pipes/money-to-int.pipe.ts"); -/* harmony import */ var _helpers_pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./_helpers/pipes/int-to-money.pipe */ "./src/app/_helpers/pipes/int-to-money.pipe.ts"); -/* harmony import */ var _helpers_pipes_history_type_messages_pipe__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./_helpers/pipes/history-type-messages.pipe */ "./src/app/_helpers/pipes/history-type-messages.pipe.ts"); -/* harmony import */ var _helpers_pipes_contract_status_messages_pipe__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./_helpers/pipes/contract-status-messages.pipe */ "./src/app/_helpers/pipes/contract-status-messages.pipe.ts"); -/* harmony import */ var _helpers_pipes_contract_time_left_pipe__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./_helpers/pipes/contract-time-left.pipe */ "./src/app/_helpers/pipes/contract-time-left.pipe.ts"); -/* harmony import */ var _helpers_pipes_safe_html_pipe__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./_helpers/pipes/safe-html.pipe */ "./src/app/_helpers/pipes/safe-html.pipe.ts"); -/* harmony import */ var _helpers_directives_tooltip_directive__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./_helpers/directives/tooltip.directive */ "./src/app/_helpers/directives/tooltip.directive.ts"); -/* harmony import */ var _helpers_directives_input_validate_input_validate_directive__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./_helpers/directives/input-validate/input-validate.directive */ "./src/app/_helpers/directives/input-validate/input-validate.directive.ts"); -/* harmony import */ var _helpers_directives_staking_switch_staking_switch_component__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./_helpers/directives/staking-switch/staking-switch.component */ "./src/app/_helpers/directives/staking-switch/staking-switch.component.ts"); -/* harmony import */ var _helpers_directives_modal_container_modal_container_component__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./_helpers/directives/modal-container/modal-container.component */ "./src/app/_helpers/directives/modal-container/modal-container.component.ts"); -/* harmony import */ var _helpers_directives_transaction_details_transaction_details_component__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./_helpers/directives/transaction-details/transaction-details.component */ "./src/app/_helpers/directives/transaction-details/transaction-details.component.ts"); -/* harmony import */ var ngx_contextmenu__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ngx-contextmenu */ "./node_modules/ngx-contextmenu/fesm5/ngx-contextmenu.js"); -/* harmony import */ var angular_highcharts__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! angular-highcharts */ "./node_modules/angular-highcharts/fesm5/angular-highcharts.js"); -/* harmony import */ var highcharts__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! highcharts */ "./node_modules/highcharts/highcharts.js"); -/* harmony import */ var highcharts__WEBPACK_IMPORTED_MODULE_48___default = /*#__PURE__*/__webpack_require__.n(highcharts__WEBPACK_IMPORTED_MODULE_48__); -/* harmony import */ var highcharts_modules_exporting_src__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! highcharts/modules/exporting.src */ "./node_modules/highcharts/modules/exporting.src.js"); -/* harmony import */ var highcharts_modules_exporting_src__WEBPACK_IMPORTED_MODULE_49___default = /*#__PURE__*/__webpack_require__.n(highcharts_modules_exporting_src__WEBPACK_IMPORTED_MODULE_49__); -/* harmony import */ var _helpers_directives_progress_container_progress_container_component__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./_helpers/directives/progress-container/progress-container.component */ "./src/app/_helpers/directives/progress-container/progress-container.component.ts"); -/* harmony import */ var _helpers_directives_input_disable_selection_input_disable_selection_directive__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./_helpers/directives/input-disable-selection/input-disable-selection.directive */ "./src/app/_helpers/directives/input-disable-selection/input-disable-selection.directive.ts"); -/* harmony import */ var _send_modal_send_modal_component__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./send-modal/send-modal.component */ "./src/app/send-modal/send-modal.component.ts"); -/* harmony import */ var _contacts_contacts_component__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./contacts/contacts.component */ "./src/app/contacts/contacts.component.ts"); -/* harmony import */ var _add_contacts_add_contacts_component__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./add-contacts/add-contacts.component */ "./src/app/add-contacts/add-contacts.component.ts"); -/* harmony import */ var _contact_send_contact_send_component__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./contact-send/contact-send.component */ "./src/app/contact-send/contact-send.component.ts"); -/* harmony import */ var _export_import_export_import_component__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./export-import/export-import.component */ "./src/app/export-import/export-import.component.ts"); -/* harmony import */ var _helpers_directives_confirm_modal_confirm_modal_component__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./_helpers/directives/confirm-modal/confirm-modal.component */ "./src/app/_helpers/directives/confirm-modal/confirm-modal.component.ts"); -/* harmony import */ var ngx_papaparse__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ngx-papaparse */ "./node_modules/ngx-papaparse/fesm5/ngx-papaparse.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// SERVICES - - - -// SERVICES -// Feature module - -// Feature module - - - - - - - - - - - - - - - - - - - - - - - -function HttpLoaderFactory(httpClient) { - return new _ngx_translate_http_loader__WEBPACK_IMPORTED_MODULE_28__["TranslateHttpLoader"](httpClient, './assets/i18n/', '.json'); -} - -// import * as more from 'highcharts/highcharts-more.src'; -// import * as exporting from 'highcharts/modules/exporting.src'; -// import * as highstock from 'highcharts/modules/stock.src'; -function highchartsFactory() { - // Default options. - highcharts__WEBPACK_IMPORTED_MODULE_48__["setOptions"]({ - time: { - useUTC: false - } - }); - return [highcharts_modules_exporting_src__WEBPACK_IMPORTED_MODULE_49___default.a]; -} -var AppModule = /** @class */ (function () { - function AppModule() { - } - AppModule = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ - declarations: [ - _app_component__WEBPACK_IMPORTED_MODULE_3__["AppComponent"], - _login_login_component__WEBPACK_IMPORTED_MODULE_4__["LoginComponent"], - _settings_settings_component__WEBPACK_IMPORTED_MODULE_5__["SettingsComponent"], - _sidebar_sidebar_component__WEBPACK_IMPORTED_MODULE_6__["SidebarComponent"], - _main_main_component__WEBPACK_IMPORTED_MODULE_7__["MainComponent"], - _create_wallet_create_wallet_component__WEBPACK_IMPORTED_MODULE_8__["CreateWalletComponent"], - _open_wallet_open_wallet_component__WEBPACK_IMPORTED_MODULE_9__["OpenWalletComponent"], - _open_wallet_modal_open_wallet_modal_component__WEBPACK_IMPORTED_MODULE_10__["OpenWalletModalComponent"], - _restore_wallet_restore_wallet_component__WEBPACK_IMPORTED_MODULE_11__["RestoreWalletComponent"], - _seed_phrase_seed_phrase_component__WEBPACK_IMPORTED_MODULE_12__["SeedPhraseComponent"], - _wallet_details_wallet_details_component__WEBPACK_IMPORTED_MODULE_13__["WalletDetailsComponent"], - _assign_alias_assign_alias_component__WEBPACK_IMPORTED_MODULE_14__["AssignAliasComponent"], - _edit_alias_edit_alias_component__WEBPACK_IMPORTED_MODULE_15__["EditAliasComponent"], - _transfer_alias_transfer_alias_component__WEBPACK_IMPORTED_MODULE_16__["TransferAliasComponent"], - _wallet_wallet_component__WEBPACK_IMPORTED_MODULE_17__["WalletComponent"], - _send_send_component__WEBPACK_IMPORTED_MODULE_18__["SendComponent"], - _receive_receive_component__WEBPACK_IMPORTED_MODULE_19__["ReceiveComponent"], - _history_history_component__WEBPACK_IMPORTED_MODULE_20__["HistoryComponent"], - _contracts_contracts_component__WEBPACK_IMPORTED_MODULE_21__["ContractsComponent"], - _purchase_purchase_component__WEBPACK_IMPORTED_MODULE_22__["PurchaseComponent"], - _messages_messages_component__WEBPACK_IMPORTED_MODULE_23__["MessagesComponent"], - _staking_staking_component__WEBPACK_IMPORTED_MODULE_25__["StakingComponent"], - _typing_message_typing_message_component__WEBPACK_IMPORTED_MODULE_24__["TypingMessageComponent"], - _helpers_pipes_money_to_int_pipe__WEBPACK_IMPORTED_MODULE_35__["MoneyToIntPipe"], - _helpers_pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_36__["IntToMoneyPipe"], - _helpers_directives_staking_switch_staking_switch_component__WEBPACK_IMPORTED_MODULE_43__["StakingSwitchComponent"], - _helpers_pipes_history_type_messages_pipe__WEBPACK_IMPORTED_MODULE_37__["HistoryTypeMessagesPipe"], - _helpers_pipes_contract_status_messages_pipe__WEBPACK_IMPORTED_MODULE_38__["ContractStatusMessagesPipe"], - _helpers_pipes_contract_time_left_pipe__WEBPACK_IMPORTED_MODULE_39__["ContractTimeLeftPipe"], - _helpers_directives_tooltip_directive__WEBPACK_IMPORTED_MODULE_41__["TooltipDirective"], - _helpers_directives_input_validate_input_validate_directive__WEBPACK_IMPORTED_MODULE_42__["InputValidateDirective"], - _helpers_directives_modal_container_modal_container_component__WEBPACK_IMPORTED_MODULE_44__["ModalContainerComponent"], - _helpers_directives_transaction_details_transaction_details_component__WEBPACK_IMPORTED_MODULE_45__["TransactionDetailsComponent"], - _helpers_directives_progress_container_progress_container_component__WEBPACK_IMPORTED_MODULE_50__["ProgressContainerComponent"], - _helpers_directives_input_disable_selection_input_disable_selection_directive__WEBPACK_IMPORTED_MODULE_51__["InputDisableSelectionDirective"], - _send_modal_send_modal_component__WEBPACK_IMPORTED_MODULE_52__["SendModalComponent"], - _contacts_contacts_component__WEBPACK_IMPORTED_MODULE_53__["ContactsComponent"], - _add_contacts_add_contacts_component__WEBPACK_IMPORTED_MODULE_54__["AddContactsComponent"], - _contact_send_contact_send_component__WEBPACK_IMPORTED_MODULE_55__["ContactSendComponent"], - _export_import_export_import_component__WEBPACK_IMPORTED_MODULE_56__["ExportImportComponent"], - _helpers_pipes_safe_html_pipe__WEBPACK_IMPORTED_MODULE_40__["SafeHTMLPipe"], - _helpers_directives_confirm_modal_confirm_modal_component__WEBPACK_IMPORTED_MODULE_57__["ConfirmModalComponent"] - ], - imports: [ - _angular_platform_browser__WEBPACK_IMPORTED_MODULE_0__["BrowserModule"], - _app_routing_module__WEBPACK_IMPORTED_MODULE_2__["AppRoutingModule"], - _angular_common_http__WEBPACK_IMPORTED_MODULE_26__["HttpClientModule"], - _ngx_translate_core__WEBPACK_IMPORTED_MODULE_27__["TranslateModule"].forRoot({ - loader: { - provide: _ngx_translate_core__WEBPACK_IMPORTED_MODULE_27__["TranslateLoader"], - useFactory: HttpLoaderFactory, - deps: [_angular_common_http__WEBPACK_IMPORTED_MODULE_26__["HttpClient"]] - } - }), - _angular_forms__WEBPACK_IMPORTED_MODULE_29__["FormsModule"], - _angular_forms__WEBPACK_IMPORTED_MODULE_29__["ReactiveFormsModule"], - _ng_select_ng_select__WEBPACK_IMPORTED_MODULE_30__["NgSelectModule"], - angular_highcharts__WEBPACK_IMPORTED_MODULE_47__["ChartModule"], - ngx_papaparse__WEBPACK_IMPORTED_MODULE_58__["PapaParseModule"], - ngx_contextmenu__WEBPACK_IMPORTED_MODULE_46__["ContextMenuModule"].forRoot() - ], - providers: [ - store__WEBPACK_IMPORTED_MODULE_34__["Store"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_31__["BackendService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_32__["ModalService"], - _helpers_services_pagination_store__WEBPACK_IMPORTED_MODULE_33__["PaginationStore"], - _helpers_pipes_money_to_int_pipe__WEBPACK_IMPORTED_MODULE_35__["MoneyToIntPipe"], - _helpers_pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_36__["IntToMoneyPipe"], - { provide: angular_highcharts__WEBPACK_IMPORTED_MODULE_47__["HIGHCHARTS_MODULES"], useFactory: highchartsFactory } - // {provide: HIGHCHARTS_MODULES, useFactory: () => [ highstock, more, exporting ] } - ], - entryComponents: [ - _helpers_directives_modal_container_modal_container_component__WEBPACK_IMPORTED_MODULE_44__["ModalContainerComponent"], - _send_modal_send_modal_component__WEBPACK_IMPORTED_MODULE_52__["SendModalComponent"], - _helpers_directives_confirm_modal_confirm_modal_component__WEBPACK_IMPORTED_MODULE_57__["ConfirmModalComponent"] - ], - bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_3__["AppComponent"]] - }) - ], AppModule); - return AppModule; -}()); - - - -/***/ }), - -/***/ "./src/app/assign-alias/assign-alias.component.html": -/*!**********************************************************!*\ - !*** ./src/app/assign-alias/assign-alias.component.html ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n\r\n
    \r\n
    \r\n {{ wallet.name }}\r\n {{ 'BREADCRUMBS.ASSIGN_ALIAS' | translate }}\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_REQUIRED' | translate }}\r\n
    \r\n
    6 && assignForm.get('name').value.length <= 25\">\r\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_WRONG' | translate }}\r\n
    \r\n
    25\">\r\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_LENGTH' | translate }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_EXISTS' | translate }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    = variablesService.maxCommentLength\">\r\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n
    \r\n
    \r\n\r\n
    {{ \"ASSIGN_ALIAS.COST\" | translate : {value: alias.price | intToMoney, currency: variablesService.defaultCurrency} }}
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n" - -/***/ }), - -/***/ "./src/app/assign-alias/assign-alias.component.scss": -/*!**********************************************************!*\ - !*** ./src/app/assign-alias/assign-alias.component.scss ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ".form-assign {\n margin: 2.4rem 0; }\n .form-assign .alias-name {\n width: 50%; }\n .form-assign .alias-cost {\n font-size: 1.3rem;\n margin-top: 2rem; }\n .form-assign .wrap-buttons {\n display: flex;\n justify-content: space-between;\n margin: 2.5rem -0.7rem; }\n .form-assign .wrap-buttons button {\n margin: 0 0.7rem;\n width: 15rem; }\n .assign-alias-tooltip {\n font-size: 1.3rem;\n line-height: 2rem;\n padding: 1rem 1.5rem;\n max-width: 46rem; }\n .has-no-edit-symbol {\n position: relative;\n width: 100%; }\n .has-no-edit-symbol input {\n padding-left: 2.35rem; }\n .has-no-edit-symbol:after {\n content: '@';\n position: absolute;\n display: inline-block;\n top: 50%;\n left: 1rem;\n transform: translateY(-50%); }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXNzaWduLWFsaWFzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGFzc2lnbi1hbGlhc1xcYXNzaWduLWFsaWFzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFBQTtFQVRwQjtJQWFJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsc0JBQXNCLEVBQUE7RUFmMUI7TUFrQk0sZ0JBQWdCO01BQ2hCLFlBQVksRUFBQTtFQUtsQjtFQUNFLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsb0JBQW9CO0VBQ3BCLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVcsRUFBQTtFQUZiO0lBSUkscUJBQXFCLEVBQUE7RUFKekI7SUFPSSxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixRQUFRO0lBQ1IsVUFBVTtJQUNWLDJCQUEyQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvYXNzaWduLWFsaWFzL2Fzc2lnbi1hbGlhcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLWFzc2lnbiB7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuXHJcbiAgLmFsaWFzLW5hbWUge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICB9XHJcblxyXG4gIC5hbGlhcy1jb3N0IHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbWFyZ2luLXRvcDogMnJlbTtcclxuICB9XHJcblxyXG4gIC53cmFwLWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIG1hcmdpbjogMi41cmVtIC0wLjdyZW07XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgbWFyZ2luOiAwIDAuN3JlbTtcclxuICAgICAgd2lkdGg6IDE1cmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmFzc2lnbi1hbGlhcy10b29sdGlwIHtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuICBsaW5lLWhlaWdodDogMnJlbTtcclxuICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcclxuICBtYXgtd2lkdGg6IDQ2cmVtO1xyXG59XHJcblxyXG4uaGFzLW5vLWVkaXQtc3ltYm9sIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaW5wdXQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyLjM1cmVtO1xyXG4gIH1cclxuICAmOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICdAJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogMXJlbTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICB9XHJcbn1cclxuIl19 */" - -/***/ }), - -/***/ "./src/app/assign-alias/assign-alias.component.ts": -/*!********************************************************!*\ - !*** ./src/app/assign-alias/assign-alias.component.ts ***! - \********************************************************/ -/*! exports provided: AssignAliasComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AssignAliasComponent", function() { return AssignAliasComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm5/common.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -/* harmony import */ var _helpers_pipes_money_to_int_pipe__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../_helpers/pipes/money-to-int.pipe */ "./src/app/_helpers/pipes/money-to-int.pipe.ts"); -/* harmony import */ var _helpers_pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../_helpers/pipes/int-to-money.pipe */ "./src/app/_helpers/pipes/int-to-money.pipe.ts"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! bignumber.js */ "./node_modules/bignumber.js/bignumber.js"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_9__); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - - - - -var AssignAliasComponent = /** @class */ (function () { - function AssignAliasComponent(ngZone, location, router, backend, variablesService, modalService, moneyToInt, intToMoney) { - var _this = this; - this.ngZone = ngZone; - this.location = location; - this.router = router; - this.backend = backend; - this.variablesService = variablesService; - this.modalService = modalService; - this.moneyToInt = moneyToInt; - this.intToMoney = intToMoney; - this.assignForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]({ - name: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', [_angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required, _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].pattern(/^@?[a-z0-9\.\-]{6,25}$/)]), - comment: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', [function (g) { - if (g.value > _this.variablesService.maxCommentLength) { - return { 'maxLength': true }; - } - else { - return null; - } - }]) - }); - this.alias = { - name: '', - fee: this.variablesService.default_fee, - price: new bignumber_js__WEBPACK_IMPORTED_MODULE_9___default.a(0), - reward: '0', - rewardOriginal: '0', - comment: '', - exists: false - }; - this.canRegister = false; - this.notEnoughMoney = false; - } - AssignAliasComponent.prototype.ngOnInit = function () { - var _this = this; - this.wallet = this.variablesService.currentWallet; - this.assignFormSubscription = this.assignForm.get('name').valueChanges.subscribe(function (value) { - _this.canRegister = false; - _this.alias.exists = false; - var newName = value.toLowerCase().replace('@', ''); - if (!(_this.assignForm.controls['name'].errors && _this.assignForm.controls['name'].errors.hasOwnProperty('pattern')) && newName.length >= 6 && newName.length <= 25) { - _this.backend.getAliasByName(newName, function (status) { - _this.ngZone.run(function () { - _this.alias.exists = status; - }); - if (!status) { - _this.alias.price = new bignumber_js__WEBPACK_IMPORTED_MODULE_9___default.a(0); - _this.backend.getAliasCoast(newName, function (statusPrice, dataPrice) { - _this.ngZone.run(function () { - if (statusPrice) { - _this.alias.price = bignumber_js__WEBPACK_IMPORTED_MODULE_9___default.a.sum(dataPrice['coast'], _this.variablesService.default_fee_big); - } - _this.notEnoughMoney = _this.alias.price.isGreaterThan(_this.wallet.unlocked_balance); - _this.alias.reward = _this.intToMoney.transform(_this.alias.price, false); - _this.alias.rewardOriginal = _this.intToMoney.transform(dataPrice['coast'], false); - _this.canRegister = !_this.notEnoughMoney; - }); - }); - } - else { - _this.notEnoughMoney = false; - _this.alias.reward = '0'; - _this.alias.rewardOriginal = '0'; - } - }); - } - else { - _this.notEnoughMoney = false; - _this.alias.reward = '0'; - _this.alias.rewardOriginal = '0'; - } - _this.alias.name = newName; - }); - }; - AssignAliasComponent.prototype.assignAlias = function () { - var _this = this; - var alias = this.backend.getWalletAlias(this.wallet.address); - if (alias.hasOwnProperty('name')) { - this.modalService.prepareModal('info', 'ASSIGN_ALIAS.ONE_ALIAS'); - } - else { - this.alias.comment = this.assignForm.get('comment').value; - this.backend.registerAlias(this.wallet.wallet_id, this.alias.name, this.wallet.address, this.alias.fee, this.alias.comment, this.alias.rewardOriginal, function (status, data) { - if (status) { - _this.wallet.wakeAlias = true; - _this.modalService.prepareModal('info', 'ASSIGN_ALIAS.REQUEST_ADD_REG'); - _this.ngZone.run(function () { - _this.router.navigate(['/wallet/' + _this.wallet.wallet_id]); - }); - } - }); - } - }; - AssignAliasComponent.prototype.back = function () { - this.location.back(); - }; - AssignAliasComponent.prototype.ngOnDestroy = function () { - this.assignFormSubscription.unsubscribe(); - }; - AssignAliasComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-assign-alias', - template: __webpack_require__(/*! ./assign-alias.component.html */ "./src/app/assign-alias/assign-alias.component.html"), - styles: [__webpack_require__(/*! ./assign-alias.component.scss */ "./src/app/assign-alias/assign-alias.component.scss")] - }), - __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], - _angular_common__WEBPACK_IMPORTED_MODULE_2__["Location"], - _angular_router__WEBPACK_IMPORTED_MODULE_3__["Router"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_4__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_5__["VariablesService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_6__["ModalService"], - _helpers_pipes_money_to_int_pipe__WEBPACK_IMPORTED_MODULE_7__["MoneyToIntPipe"], - _helpers_pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_8__["IntToMoneyPipe"]]) - ], AssignAliasComponent); - return AssignAliasComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/contact-send/contact-send.component.html": -/*!**********************************************************!*\ - !*** ./src/app/contact-send/contact-send.component.html ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n
    \r\n
    \r\n {{\r\n 'CONTACTS.TITLE' | translate\r\n }}\r\n {{ 'CONTACTS.SEND' | translate }}\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/contact-send/contact-send.component.scss": -/*!**********************************************************!*\ - !*** ./src/app/contact-send/contact-send.component.scss ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ".wallets-selection {\n display: flex;\n align-items: center;\n margin-top: 2rem; }\n .wallets-selection .input-block {\n width: 18rem; }\n .wallets-selection button {\n padding: 2rem;\n background: transparent;\n border: none;\n outline: none; }\n .input-block {\n width: 44rem; }\n .input-block input {\n overflow: hidden;\n text-overflow: ellipsis; }\n .blue-button {\n margin-top: 2.5rem;\n width: 100%;\n max-width: 18rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udGFjdC1zZW5kL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGNvbnRhY3Qtc2VuZFxcY29udGFjdC1zZW5kLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTtFQUhsQjtJQU1JLFlBQVksRUFBQTtFQU5oQjtJQVVJLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLGFBQWEsRUFBQTtFQUlqQjtFQUNFLFlBQVksRUFBQTtFQURkO0lBSUksZ0JBQWdCO0lBQ2hCLHVCQUF1QixFQUFBO0VBSTNCO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbnRhY3Qtc2VuZC9jb250YWN0LXNlbmQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIud2FsbGV0cy1zZWxlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtYXJnaW4tdG9wOiAycmVtO1xyXG4gIFxyXG4gIC5pbnB1dC1ibG9jayB7XHJcbiAgICB3aWR0aDogMThyZW07XHJcbiAgfVxyXG5cclxuICBidXR0b24ge1xyXG4gICAgcGFkZGluZzogMnJlbTtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi5pbnB1dC1ibG9jayB7XHJcbiAgd2lkdGg6IDQ0cmVtO1xyXG5cclxuICBpbnB1dCB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgfVxyXG59XHJcblxyXG4uYmx1ZS1idXR0b24ge1xyXG4gIG1hcmdpbi10b3A6IDIuNXJlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDE4cmVtO1xyXG59XHJcblxyXG5cclxuIl19 */" - -/***/ }), - -/***/ "./src/app/contact-send/contact-send.component.ts": -/*!********************************************************!*\ - !*** ./src/app/contact-send/contact-send.component.ts ***! - \********************************************************/ -/*! exports provided: ContactSendComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContactSendComponent", function() { return ContactSendComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm5/common.js"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - -var ContactSendComponent = /** @class */ (function () { - function ContactSendComponent(location, variablesService, route) { - this.location = location; - this.variablesService = variablesService; - this.route = route; - } - ContactSendComponent.prototype.ngOnInit = function () { - var _this = this; - this.queryRouting = this.route.queryParams.subscribe(function (params) { - if (params.address) { - _this.address = params.address; - } - }); - }; - ContactSendComponent.prototype.goToWallet = function (id) { - this.variablesService.setCurrentWallet(id); - this.variablesService.currentWallet.send_data['address'] = this.address; - }; - ContactSendComponent.prototype.back = function () { - this.location.back(); - }; - ContactSendComponent.prototype.ngOnDestroy = function () { - this.queryRouting.unsubscribe(); - }; - ContactSendComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-contact-send', - template: __webpack_require__(/*! ./contact-send.component.html */ "./src/app/contact-send/contact-send.component.html"), - styles: [__webpack_require__(/*! ./contact-send.component.scss */ "./src/app/contact-send/contact-send.component.scss")] - }), - __metadata("design:paramtypes", [_angular_common__WEBPACK_IMPORTED_MODULE_1__["Location"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_2__["VariablesService"], - _angular_router__WEBPACK_IMPORTED_MODULE_3__["ActivatedRoute"]]) - ], ContactSendComponent); - return ContactSendComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/contacts/contacts.component.html": -/*!**************************************************!*\ - !*** ./src/app/contacts/contacts.component.html ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n

    {{ 'CONTACTS.TITLE' | translate }}

    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n {{ 'CONTACTS.TABLE.NAME' | translate }}\r\n {{ 'CONTACTS.TABLE.ALIAS' | translate }}\r\n {{ 'CONTACTS.TABLE.ADDRESS' | translate }}\r\n {{ 'CONTACTS.TABLE.NOTES' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ contact.name }}\r\n \r\n \r\n \r\n {{ contact.alias }}\r\n \r\n \r\n \r\n {{ contact.address }}\r\n \r\n \r\n {{ contact.notes }}\r\n \r\n \r\n
    \r\n \r\n \r\n {{ 'CONTACTS.BUTTON.SEND' | translate }}\r\n \r\n \r\n \r\n {{ 'CONTACTS.BUTTON.EDIT' | translate }}\r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n {{ 'CONTACTS.TABLE.EMPTY' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/contacts/contacts.component.scss": -/*!**************************************************!*\ - !*** ./src/app/contacts/contacts.component.scss ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n min-width: 95rem;\n width: 100%;\n height: 100%; }\n\n.head {\n justify-content: flex-end; }\n\n.contacts-title {\n font-size: 1.7rem; }\n\n.wrap-table {\n margin: 1rem -3rem; }\n\n.wrap-table table tbody tr td {\n padding: 0 3rem 0 1rem;\n overflow: hidden;\n text-overflow: ellipsis; }\n\n.wrap-table table tbody tr td:first-child {\n max-width: 10rem;\n padding: 0 3rem 0 3rem; }\n\n.wrap-table table tbody tr td:nth-child(2) {\n max-width: 10rem; }\n\n.wrap-table table tbody tr td .alias {\n cursor: pointer; }\n\n.wrap-table table tbody tr td .button-wrapper {\n display: flex; }\n\n.wrap-table table tbody tr td .button-wrapper button {\n display: flex;\n align-items: center;\n background: transparent;\n border: none;\n font-size: 1.3rem;\n font-weight: 400;\n line-height: 3rem;\n outline: none;\n padding: 0;\n height: auto;\n margin-right: 1.8rem; }\n\n.wrap-table table tbody tr td .button-wrapper button .icon {\n cursor: pointer;\n margin-right: 0.8rem;\n width: 1.7rem;\n height: 1.7rem; }\n\n.wrap-table table tbody tr td .button-wrapper button .icon.edit {\n -webkit-mask: url('edit.svg') no-repeat center;\n mask: url('edit.svg') no-repeat center; }\n\n.wrap-table table tbody tr td .button-wrapper button .icon.transfer {\n -webkit-mask: url('send.svg') no-repeat center;\n mask: url('send.svg') no-repeat center; }\n\n.wrap-table table tbody tr td .button-wrapper button .icon.delete {\n -webkit-mask: url('delete.svg') no-repeat center;\n mask: url('delete.svg') no-repeat center; }\n\n.wrap-table .empty-list {\n margin: 2.5rem 3rem; }\n\n.blue-button {\n width: 100%;\n max-width: 18rem;\n margin-top: 3rem; }\n\n.footer {\n position: absolute;\n bottom: 3rem;\n font-size: 1.3rem; }\n\n.footer .import-btn {\n display: flex;\n align-items: center;\n background-color: transparent;\n font-size: inherit;\n font-weight: 400;\n line-height: 1.3rem;\n padding: 0;\n height: auto; }\n\n.footer .import-btn .icon {\n margin-right: 0.7rem;\n -webkit-mask: url('import-export.svg') no-repeat center;\n mask: url('import-export.svg') no-repeat center;\n width: 0.9rem;\n height: 0.9rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udGFjdHMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcY29udGFjdHNcXGNvbnRhY3RzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxZQUFZLEVBQUE7O0FBR2Q7RUFDRSx5QkFBeUIsRUFBQTs7QUFHM0I7RUFDRSxpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSxrQkFBa0IsRUFBQTs7QUFEcEI7SUFVVSxzQkFBc0I7SUFDdEIsZ0JBQWdCO0lBQ2hCLHVCQUF1QixFQUFBOztBQVpqQztNQWVZLGdCQUFnQjtNQUNoQixzQkFBc0IsRUFBQTs7QUFoQmxDO01Bb0JZLGdCQUFnQixFQUFBOztBQXBCNUI7TUF3QlksZUFBZSxFQUFBOztBQXhCM0I7TUE0QlksYUFBYSxFQUFBOztBQTVCekI7UUErQmMsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIsWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixVQUFVO1FBQ1YsWUFBWTtRQUNaLG9CQUFvQixFQUFBOztBQXpDbEM7VUE0Q2dCLGVBQWU7VUFDZixvQkFBb0I7VUFDcEIsYUFBYTtVQUNiLGNBQWMsRUFBQTs7QUEvQzlCO1lBa0RrQiw4Q0FBdUQ7b0JBQXZELHNDQUF1RCxFQUFBOztBQWxEekU7WUFzRGtCLDhDQUF1RDtvQkFBdkQsc0NBQXVELEVBQUE7O0FBdER6RTtZQTBEa0IsZ0RBQXlEO29CQUF6RCx3Q0FBeUQsRUFBQTs7QUExRDNFO0lBcUVJLG1CQUFtQixFQUFBOztBQUl2QjtFQUNFLFdBQVc7RUFDWCxnQkFBZ0I7RUFDaEIsZ0JBQWdCLEVBQUE7O0FBSWxCO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixpQkFBaUIsRUFBQTs7QUFIbkI7SUFNSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDZCQUE2QjtJQUM3QixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsWUFBWSxFQUFBOztBQWJoQjtNQWdCTSxvQkFBb0I7TUFDcEIsdURBQWdFO2NBQWhFLCtDQUFnRTtNQUNoRSxhQUFhO01BQ2IsY0FBYyxFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29udGFjdHMvY29udGFjdHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgbWluLXdpZHRoOiA5NXJlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5oZWFkIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4uY29udGFjdHMtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS43cmVtO1xyXG59XHJcblxyXG4ud3JhcC10YWJsZSB7XHJcbiAgbWFyZ2luOiAxcmVtIC0zcmVtO1xyXG5cclxuICB0YWJsZSB7XHJcblxyXG4gICAgdGJvZHl7XHJcblxyXG4gICAgICB0ciB7XHJcblxyXG4gICAgICAgIHRkIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDAgM3JlbSAwIDFyZW07XHJcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcblxyXG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTByZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgM3JlbSAwIDNyZW07XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjpudGgtY2hpbGQoMikge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwcmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5hbGlhcyB7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuYnV0dG9uLXdyYXBwZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAgXHJcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogM3JlbTtcclxuICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS44cmVtO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjhyZW07XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMS43cmVtO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLjdyZW07XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgJi5lZGl0IHtcclxuICAgICAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9lZGl0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAmLnRyYW5zZmVyIHtcclxuICAgICAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9zZW5kLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICYuZGVsZXRlIHtcclxuICAgICAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9kZWxldGUuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAuZW1wdHktbGlzdCB7XHJcbiAgICBtYXJnaW46IDIuNXJlbSAzcmVtO1xyXG4gIH0gIFxyXG59XHJcblxyXG4uYmx1ZS1idXR0b24ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogMThyZW07XHJcbiAgbWFyZ2luLXRvcDogM3JlbTtcclxufVxyXG5cclxuXHJcbi5mb290ZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDNyZW07XHJcbiAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgXHJcbiAgLmltcG9ydC1idG4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zcmVtO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMC43cmVtO1xyXG4gICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2ltcG9ydC1leHBvcnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB3aWR0aDogMC45cmVtO1xyXG4gICAgICBoZWlnaHQ6IDAuOXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */" - -/***/ }), - -/***/ "./src/app/contacts/contacts.component.ts": -/*!************************************************!*\ - !*** ./src/app/contacts/contacts.component.ts ***! - \************************************************/ -/*! exports provided: ContactsComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContactsComponent", function() { return ContactsComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm5/common.js"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - -var ContactsComponent = /** @class */ (function () { - function ContactsComponent(location, variablesService, backend) { - this.location = location; - this.variablesService = variablesService; - this.backend = backend; - this.calculatedWidth = []; - } - ContactsComponent.prototype.ngOnInit = function () { - this.backend.getContactAlias(); - }; - ContactsComponent.prototype.delete = function (index) { - if (this.variablesService.appPass) { - this.variablesService.contacts.splice(index, 1); - this.backend.storeSecureAppData(); - } - }; - ContactsComponent.prototype.calculateWidth = function () { - this.calculatedWidth = []; - this.calculatedWidth.push(this.head.nativeElement.childNodes[0].clientWidth); - this.calculatedWidth.push(this.head.nativeElement.childNodes[1].clientWidth + - this.head.nativeElement.childNodes[2].clientWidth); - this.calculatedWidth.push(this.head.nativeElement.childNodes[3].clientWidth); - this.calculatedWidth.push(this.head.nativeElement.childNodes[4].clientWidth); - }; - // openInBrowser(alias: string) { - // if (alias !== null) { - // this.backend.openUrlInBrowser( - // `explorer.zano.org/aliases/${alias.slice(1)}#modalOpen` - // ); - // } - // } - ContactsComponent.prototype.back = function () { - this.location.back(); - }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"])('head'), - __metadata("design:type", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]) - ], ContactsComponent.prototype, "head", void 0); - ContactsComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-contacts', - template: __webpack_require__(/*! ./contacts.component.html */ "./src/app/contacts/contacts.component.html"), - styles: [__webpack_require__(/*! ./contacts.component.scss */ "./src/app/contacts/contacts.component.scss")] - }), - __metadata("design:paramtypes", [_angular_common__WEBPACK_IMPORTED_MODULE_1__["Location"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_2__["VariablesService"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"]]) - ], ContactsComponent); - return ContactsComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/contracts/contracts.component.html": -/*!****************************************************!*\ - !*** ./src/app/contracts/contracts.component.html ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n {{ 'CONTRACTS.EMPTY' | translate }}\r\n
    \r\n\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    {{ 'CONTRACTS.CONTRACTS' | translate }}{{ 'CONTRACTS.DATE' | translate }}{{ 'CONTRACTS.AMOUNT' | translate }}{{ 'CONTRACTS.STATUS' | translate }}{{ 'CONTRACTS.COMMENTS' | translate }}
    \r\n
    \r\n \r\n \r\n \r\n {{item.private_detailes.t}}\r\n
    \r\n
    \r\n
    {{item.timestamp * 1000 | date : 'dd-MM-yyyy HH:mm'}}
    \r\n
    \r\n
    {{item.private_detailes.to_pay | intToMoney}} {{variablesService.defaultCurrency}}
    \r\n
    \r\n
    \r\n {{item.state | contractStatusMessages : item.is_a}}\r\n
    \r\n
    \r\n
    \r\n {{item.private_detailes.c}}\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/contracts/contracts.component.scss": -/*!****************************************************!*\ - !*** ./src/app/contracts/contracts.component.scss ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n width: 100%; }\n\n.empty-contracts {\n font-size: 1.5rem; }\n\n.wrap-table {\n margin: -3rem -3rem 0 -3rem;\n overflow-x: auto; }\n\n.wrap-table table tbody tr {\n cursor: pointer;\n outline: none !important; }\n\n.wrap-table table tbody tr .contract {\n position: relative;\n display: flex;\n align-items: center; }\n\n.wrap-table table tbody tr .contract .icon {\n flex-shrink: 0; }\n\n.wrap-table table tbody tr .contract .icon.new, .wrap-table table tbody tr .contract .icon.alert {\n position: absolute;\n top: 0; }\n\n.wrap-table table tbody tr .contract .icon.new {\n left: -2.3rem;\n -webkit-mask: url('new.svg') no-repeat center;\n mask: url('new.svg') no-repeat center;\n width: 1.7rem;\n height: 1.7rem; }\n\n.wrap-table table tbody tr .contract .icon.alert {\n top: 0.2rem;\n left: -2.1rem;\n -webkit-mask: url('alert.svg') no-repeat center;\n mask: url('alert.svg') no-repeat center;\n width: 1.2rem;\n height: 1.2rem; }\n\n.wrap-table table tbody tr .contract .icon.purchase, .wrap-table table tbody tr .contract .icon.sell {\n margin-right: 1rem;\n width: 1.5rem;\n height: 1.5rem; }\n\n.wrap-table table tbody tr .contract .icon.purchase {\n -webkit-mask: url('purchase.svg') no-repeat center;\n mask: url('purchase.svg') no-repeat center; }\n\n.wrap-table table tbody tr .contract .icon.sell {\n -webkit-mask: url('sell.svg') no-repeat center;\n mask: url('sell.svg') no-repeat center; }\n\n.wrap-table table tbody tr .contract span {\n text-overflow: ellipsis;\n overflow: hidden; }\n\n.wrap-table table tbody tr .status, .wrap-table table tbody tr .comment {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n max-width: 100%; }\n\n.contracts-buttons {\n display: flex;\n margin: 3rem 0;\n width: 50%; }\n\n.contracts-buttons button {\n flex: 0 1 50%;\n margin-right: 1.5rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJhY3RzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGNvbnRyYWN0c1xcY29udHJhY3RzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsMkJBQTJCO0VBQzNCLGdCQUFnQixFQUFBOztBQUZsQjtJQVNRLGVBQWU7SUFDZix3QkFBd0IsRUFBQTs7QUFWaEM7TUFhVSxrQkFBa0I7TUFDbEIsYUFBYTtNQUNiLG1CQUFtQixFQUFBOztBQWY3QjtRQWtCWSxjQUFjLEVBQUE7O0FBbEIxQjtVQXFCYyxrQkFBa0I7VUFDbEIsTUFBTSxFQUFBOztBQXRCcEI7VUEwQmMsYUFBYTtVQUNiLDZDQUFzRDtrQkFBdEQscUNBQXNEO1VBQ3RELGFBQWE7VUFDYixjQUFjLEVBQUE7O0FBN0I1QjtVQWlDYyxXQUFXO1VBQ1gsYUFBYTtVQUNiLCtDQUF3RDtrQkFBeEQsdUNBQXdEO1VBQ3hELGFBQWE7VUFDYixjQUFjLEVBQUE7O0FBckM1QjtVQXlDYyxrQkFBa0I7VUFDbEIsYUFBYTtVQUNiLGNBQWMsRUFBQTs7QUEzQzVCO1VBK0NjLGtEQUEyRDtrQkFBM0QsMENBQTJELEVBQUE7O0FBL0N6RTtVQW1EYyw4Q0FBdUQ7a0JBQXZELHNDQUF1RCxFQUFBOztBQW5EckU7UUF3RFksdUJBQXVCO1FBQ3ZCLGdCQUFnQixFQUFBOztBQXpENUI7TUE4RFUscUJBQXFCO01BQ3JCLHVCQUF1QjtNQUN2QixnQkFBZ0I7TUFDaEIsZUFBZSxFQUFBOztBQU96QjtFQUNFLGFBQWE7RUFDYixjQUFjO0VBQ2QsVUFBVSxFQUFBOztBQUhaO0lBTUksYUFBYTtJQUNiLG9CQUFvQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29udHJhY3RzL2NvbnRyYWN0cy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmVtcHR5LWNvbnRyYWN0cyB7XHJcbiAgZm9udC1zaXplOiAxLjVyZW07XHJcbn1cclxuXHJcbi53cmFwLXRhYmxlIHtcclxuICBtYXJnaW46IC0zcmVtIC0zcmVtIDAgLTNyZW07XHJcbiAgb3ZlcmZsb3cteDogYXV0bztcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICAuY29udHJhY3Qge1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcclxuXHJcbiAgICAgICAgICAgICYubmV3LCAmLmFsZXJ0IHtcclxuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLm5ldyB7XHJcbiAgICAgICAgICAgICAgbGVmdDogLTIuM3JlbTtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL25ldy5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEuN3JlbTtcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDEuN3JlbTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5hbGVydCB7XHJcbiAgICAgICAgICAgICAgdG9wOiAwLjJyZW07XHJcbiAgICAgICAgICAgICAgbGVmdDogLTIuMXJlbTtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2FsZXJ0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLnB1cmNoYXNlLCAmLnNlbGwge1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcclxuICAgICAgICAgICAgICB3aWR0aDogMS41cmVtO1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMS41cmVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLnB1cmNoYXNlIHtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3B1cmNoYXNlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5zZWxsIHtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3NlbGwuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cywgLmNvbW1lbnQge1xyXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNvbnRyYWN0cy1idXR0b25zIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIG1hcmdpbjogM3JlbSAwO1xyXG4gIHdpZHRoOiA1MCU7XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBmbGV4OiAwIDEgNTAlO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XHJcbiAgfVxyXG59XHJcbiJdfQ== */" - -/***/ }), - -/***/ "./src/app/contracts/contracts.component.ts": -/*!**************************************************!*\ - !*** ./src/app/contracts/contracts.component.ts ***! - \**************************************************/ -/*! exports provided: ContractsComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContractsComponent", function() { return ContractsComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - -var ContractsComponent = /** @class */ (function () { - function ContractsComponent(route, variablesService) { - this.route = route; - this.variablesService = variablesService; - } - Object.defineProperty(ContractsComponent.prototype, "sortedArrayContracts", { - get: function () { - return this.variablesService.currentWallet.contracts.sort(function (a, b) { - if (a.is_new < b.is_new) { - return 1; - } - if (a.is_new > b.is_new) { - return -1; - } - if (a.timestamp < b.timestamp) { - return 1; - } - if (a.timestamp > b.timestamp) { - return -1; - } - if (a.contract_id < b.contract_id) { - return 1; - } - if (a.contract_id > b.contract_id) { - return -1; - } - return 0; - }); - }, - enumerable: true, - configurable: true - }); - ContractsComponent.prototype.ngOnInit = function () { - var _this = this; - this.parentRouting = this.route.parent.params.subscribe(function (params) { - if (params.hasOwnProperty('id')) { - _this.walletId = params['id']; - } - }); - }; - ContractsComponent.prototype.ngOnDestroy = function () { - this.parentRouting.unsubscribe(); - }; - ContractsComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-contracts', - template: __webpack_require__(/*! ./contracts.component.html */ "./src/app/contracts/contracts.component.html"), - styles: [__webpack_require__(/*! ./contracts.component.scss */ "./src/app/contracts/contracts.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_1__["ActivatedRoute"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_2__["VariablesService"]]) - ], ContractsComponent); - return ContractsComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/create-wallet/create-wallet.component.html": -/*!************************************************************!*\ - !*** ./src/app/create-wallet/create-wallet.component.html ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n\r\n
    \r\n
    \r\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\r\n {{ 'BREADCRUMBS.CREATE_WALLET' | translate }}\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\r\n
    \r\n
    \r\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\r\n
    \r\n
    \r\n
    = variablesService.maxWalletNameLength\">\r\n {{ 'CREATE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'CREATE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n\r\n" - -/***/ }), - -/***/ "./src/app/create-wallet/create-wallet.component.scss": -/*!************************************************************!*\ - !*** ./src/app/create-wallet/create-wallet.component.scss ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n position: relative; }\n\n.form-create {\n margin: 2.4rem 0;\n width: 50%; }\n\n.form-create .wrap-buttons {\n display: flex;\n margin: 2.5rem -0.7rem; }\n\n.form-create .wrap-buttons button {\n margin: 0 0.7rem; }\n\n.form-create .wrap-buttons button.transparent-button {\n flex-basis: 50%; }\n\n.form-create .wrap-buttons button.select-button {\n flex-basis: 60%; }\n\n.form-create .wrap-buttons button.create-button {\n flex: 1 1 50%; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY3JlYXRlLXdhbGxldC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxjcmVhdGUtd2FsbGV0XFxjcmVhdGUtd2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTs7QUFGWjtJQUtJLGFBQWE7SUFDYixzQkFBc0IsRUFBQTs7QUFOMUI7TUFTTSxnQkFBZ0IsRUFBQTs7QUFUdEI7UUFZUSxlQUFlLEVBQUE7O0FBWnZCO1FBZ0JRLGVBQWUsRUFBQTs7QUFoQnZCO1FBb0JRLGFBQWEsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NyZWF0ZS13YWxsZXQvY3JlYXRlLXdhbGxldC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5mb3JtLWNyZWF0ZSB7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICB3aWR0aDogNTAlO1xyXG5cclxuICAud3JhcC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBtYXJnaW46IDIuNXJlbSAtMC43cmVtO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjdyZW07XHJcblxyXG4gICAgICAmLnRyYW5zcGFyZW50LWJ1dHRvbiB7XHJcbiAgICAgICAgZmxleC1iYXNpczogNTAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnNlbGVjdC1idXR0b24ge1xyXG4gICAgICAgIGZsZXgtYmFzaXM6IDYwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5jcmVhdGUtYnV0dG9uIHtcclxuICAgICAgICBmbGV4OiAxIDEgNTAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */" - -/***/ }), - -/***/ "./src/app/create-wallet/create-wallet.component.ts": -/*!**********************************************************!*\ - !*** ./src/app/create-wallet/create-wallet.component.ts ***! - \**********************************************************/ -/*! exports provided: CreateWalletComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CreateWalletComponent", function() { return CreateWalletComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _helpers_models_wallet_model__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_helpers/models/wallet.model */ "./src/app/_helpers/models/wallet.model.ts"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - - -var CreateWalletComponent = /** @class */ (function () { - function CreateWalletComponent(router, backend, variablesService, modalService, ngZone, translate) { - var _this = this; - this.router = router; - this.backend = backend; - this.variablesService = variablesService; - this.modalService = modalService; - this.ngZone = ngZone; - this.translate = translate; - this.createForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]({ - name: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', [_angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required, function (g) { - for (var i = 0; i < _this.variablesService.wallets.length; i++) { - if (g.value === _this.variablesService.wallets[i].name) { - return { 'duplicate': true }; - } - } - return null; - }]), - password: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].pattern(this.variablesService.pattern)), - confirm: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('') - }, function (g) { - return g.get('password').value === g.get('confirm').value ? null : { 'confirm_mismatch': true }; - }); - this.wallet = { - id: '' - }; - this.walletSaved = false; - this.walletSavedName = ''; - this.progressWidth = '9rem'; - } - CreateWalletComponent.prototype.ngOnInit = function () { - }; - CreateWalletComponent.prototype.createWallet = function () { - var _this = this; - this.ngZone.run(function () { - _this.progressWidth = '100%'; - _this.router.navigate(['/seed-phrase'], { queryParams: { wallet_id: _this.wallet.id } }); - }); - }; - CreateWalletComponent.prototype.saveWallet = function () { - var _this = this; - if (this.createForm.valid && this.createForm.get('name').value.length <= this.variablesService.maxWalletNameLength) { - this.backend.saveFileDialog(this.translate.instant('CREATE_WALLET.TITLE_SAVE'), '*', this.variablesService.settings.default_path, function (file_status, file_data) { - if (file_status) { - _this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/')); - _this.walletSavedName = file_data.path.substr(file_data.path.lastIndexOf('/') + 1, file_data.path.length - 1); - _this.backend.generateWallet(file_data.path, _this.createForm.get('password').value, function (generate_status, generate_data, errorCode) { - if (generate_status) { - _this.wallet.id = generate_data.wallet_id; - _this.variablesService.opening_wallet = new _helpers_models_wallet_model__WEBPACK_IMPORTED_MODULE_6__["Wallet"](generate_data.wallet_id, _this.createForm.get('name').value, _this.createForm.get('password').value, generate_data['wi'].path, generate_data['wi'].address, generate_data['wi'].balance, generate_data['wi'].unlocked_balance, generate_data['wi'].mined_total, generate_data['wi'].tracking_hey); - _this.variablesService.opening_wallet.alias = _this.backend.getWalletAlias(generate_data['wi'].address); - _this.variablesService.opening_wallet.total_history_item = 0; - _this.variablesService.opening_wallet.pages = new Array(1).fill(1); - _this.variablesService.opening_wallet.totalPages = 1; - _this.variablesService.opening_wallet.currentPage = 1; - _this.ngZone.run(function () { - _this.walletSaved = true; - _this.progressWidth = '33%'; - }); - } - else { - if (errorCode && errorCode === 'ALREADY_EXISTS') { - _this.modalService.prepareModal('error', 'CREATE_WALLET.ERROR_CANNOT_SAVE_TOP'); - } - else { - _this.modalService.prepareModal('error', 'CREATE_WALLET.ERROR_CANNOT_SAVE_SYSTEM'); - } - } - }); - } - }); - } - }; - CreateWalletComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-create-wallet', - template: __webpack_require__(/*! ./create-wallet.component.html */ "./src/app/create-wallet/create-wallet.component.html"), - styles: [__webpack_require__(/*! ./create-wallet.component.scss */ "./src/app/create-wallet/create-wallet.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_5__["Router"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_3__["VariablesService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_4__["ModalService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], - _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__["TranslateService"]]) - ], CreateWalletComponent); - return CreateWalletComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/edit-alias/edit-alias.component.html": -/*!******************************************************!*\ - !*** ./src/app/edit-alias/edit-alias.component.html ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n\r\n
    \r\n
    \r\n {{ wallet.name }}\r\n {{ 'BREADCRUMBS.EDIT_ALIAS' | translate }}\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    0 && notEnoughMoney\">\r\n {{ 'EDIT_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\r\n
    \r\n
    = variablesService.maxCommentLength\">\r\n {{ 'EDIT_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n
    \r\n
    \r\n\r\n
    {{ \"EDIT_ALIAS.COST\" | translate : {value: variablesService.default_fee, currency: variablesService.defaultCurrency} }}
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n\r\n" - -/***/ }), - -/***/ "./src/app/edit-alias/edit-alias.component.scss": -/*!******************************************************!*\ - !*** ./src/app/edit-alias/edit-alias.component.scss ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ".form-edit {\n margin: 2.4rem 0; }\n .form-edit .alias-name {\n width: 50%; }\n .form-edit .alias-cost {\n font-size: 1.3rem;\n margin-top: 2rem; }\n .form-edit .wrap-buttons {\n display: flex;\n justify-content: space-between;\n margin: 2.5rem -0.7rem; }\n .form-edit .wrap-buttons button {\n margin: 0 0.7rem;\n width: 15rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZWRpdC1hbGlhcy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxlZGl0LWFsaWFzXFxlZGl0LWFsaWFzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFBQTtFQVRwQjtJQWFJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsc0JBQXNCLEVBQUE7RUFmMUI7TUFrQk0sZ0JBQWdCO01BQ2hCLFlBQVksRUFBQSIsImZpbGUiOiJzcmMvYXBwL2VkaXQtYWxpYXMvZWRpdC1hbGlhcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLWVkaXQge1xyXG4gIG1hcmdpbjogMi40cmVtIDA7XHJcblxyXG4gIC5hbGlhcy1uYW1lIHtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgfVxyXG5cclxuICAuYWxpYXMtY29zdCB7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIG1hcmdpbi10b3A6IDJyZW07XHJcbiAgfVxyXG5cclxuICAud3JhcC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW46IDIuNXJlbSAtMC43cmVtO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjdyZW07XHJcbiAgICAgIHdpZHRoOiAxNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */" - -/***/ }), - -/***/ "./src/app/edit-alias/edit-alias.component.ts": -/*!****************************************************!*\ - !*** ./src/app/edit-alias/edit-alias.component.ts ***! - \****************************************************/ -/*! exports provided: EditAliasComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EditAliasComponent", function() { return EditAliasComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm5/common.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - -var EditAliasComponent = /** @class */ (function () { - function EditAliasComponent(location, router, backend, variablesService, modalService, ngZone) { - this.location = location; - this.router = router; - this.backend = backend; - this.variablesService = variablesService; - this.modalService = modalService; - this.ngZone = ngZone; - this.requestProcessing = false; - } - EditAliasComponent.prototype.ngOnInit = function () { - this.wallet = this.variablesService.currentWallet; - var alias = this.backend.getWalletAlias(this.wallet.address); - this.alias = { - name: alias.name, - address: alias.address, - comment: alias.comment - }; - this.oldAliasComment = alias.comment; - this.notEnoughMoney = this.wallet.unlocked_balance.isLessThan(this.variablesService.default_fee_big); - }; - EditAliasComponent.prototype.updateAlias = function () { - var _this = this; - if (this.requestProcessing || this.notEnoughMoney || this.oldAliasComment === this.alias.comment || this.alias.comment.length > this.variablesService.maxCommentLength) { - return; - } - this.requestProcessing = true; - this.backend.updateAlias(this.wallet.wallet_id, this.alias, this.variablesService.default_fee, function (status) { - if (status) { - _this.modalService.prepareModal('success', ''); - _this.wallet.alias['comment'] = _this.alias.comment; - _this.ngZone.run(function () { - _this.router.navigate(['/wallet/' + _this.wallet.wallet_id]); - }); - } - _this.requestProcessing = false; - }); - }; - EditAliasComponent.prototype.back = function () { - this.location.back(); - }; - EditAliasComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-edit-alias', - template: __webpack_require__(/*! ./edit-alias.component.html */ "./src/app/edit-alias/edit-alias.component.html"), - styles: [__webpack_require__(/*! ./edit-alias.component.scss */ "./src/app/edit-alias/edit-alias.component.scss")] - }), - __metadata("design:paramtypes", [_angular_common__WEBPACK_IMPORTED_MODULE_1__["Location"], - _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__["VariablesService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__["ModalService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]]) - ], EditAliasComponent); - return EditAliasComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/export-import/export-import.component.html": -/*!************************************************************!*\ - !*** ./src/app/export-import/export-import.component.html ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n

    {{ 'CONTACTS.IMPORT_EXPORT' | translate }}

    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/export-import/export-import.component.scss": -/*!************************************************************!*\ - !*** ./src/app/export-import/export-import.component.scss ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n width: 100%; }\n\n.head {\n justify-content: flex-end; }\n\n.contacts-title {\n font-size: 1.7rem;\n margin-bottom: 1rem; }\n\n.btn-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0 -0.5rem;\n padding: 1.5rem 0; }\n\n.btn-wrapper button {\n flex: 1 0 auto;\n margin: 0 0.5rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZXhwb3J0LWltcG9ydC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxleHBvcnQtaW1wb3J0XFxleHBvcnQtaW1wb3J0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsaUJBQWlCO0VBQ2pCLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsOEJBQThCO0VBQzlCLGlCQUFpQjtFQUNqQixpQkFBaUIsRUFBQTs7QUFMbkI7SUFRSSxjQUFjO0lBQ2QsZ0JBQWdCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9leHBvcnQtaW1wb3J0L2V4cG9ydC1pbXBvcnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5oZWFkIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4uY29udGFjdHMtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbn1cclxuXHJcbi5idG4td3JhcHBlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBtYXJnaW46IDAgLTAuNXJlbTtcclxuICBwYWRkaW5nOiAxLjVyZW0gMDtcclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgbWFyZ2luOiAwIDAuNXJlbTtcclxuICB9XHJcbn0iXX0= */" - -/***/ }), - -/***/ "./src/app/export-import/export-import.component.ts": -/*!**********************************************************!*\ - !*** ./src/app/export-import/export-import.component.ts ***! - \**********************************************************/ -/*! exports provided: ExportImportComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExportImportComponent", function() { return ExportImportComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm5/common.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -/* harmony import */ var ngx_papaparse__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ngx-papaparse */ "./node_modules/ngx-papaparse/fesm5/ngx-papaparse.js"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - - -var ExportImportComponent = /** @class */ (function () { - function ExportImportComponent(location, variablesService, backend, modalService, papa, translate, router, ngZone) { - this.location = location; - this.variablesService = variablesService; - this.backend = backend; - this.modalService = modalService; - this.papa = papa; - this.translate = translate; - this.router = router; - this.ngZone = ngZone; - } - ExportImportComponent.prototype.ngOnInit = function () { }; - ExportImportComponent.prototype.import = function () { - var _this = this; - this.backend.openFileDialog('', '*', this.variablesService.settings.default_path, function (file_status, file_data) { - if (file_status) { - _this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/')); - if (_this.isValid(file_data.path)) { - _this.backend.loadFile(file_data.path, function (status, data) { - if (!status) { - _this.modalService.prepareModal('error', 'CONTACTS.ERROR_IMPORT_EMPTY'); - } - else { - var options = { - header: true - }; - var elements = _this.papa.parse(data, options); - var isArray = Array.isArray(elements.data); - if (isArray && elements.data.length !== 0 && !elements.errors.length) { - if (!_this.variablesService.contacts.length) { - elements.data.forEach(function (element) { - _this.variablesService.contacts.push(element); - }); - } - else { - elements.data.forEach(function (element) { - var indexName = _this.variablesService.contacts.findIndex(function (contact) { return contact.name === element.name; }); - var indexAddress = _this.variablesService.contacts.findIndex(function (contact) { return contact.address === element.address; }); - if (indexAddress === -1 && indexName === -1) { - _this.variablesService.contacts.push(element); - } - if (indexName !== -1 && indexAddress === -1) { - _this.variablesService.contacts.push({ - name: element.name + " " + _this.translate.instant('CONTACTS.COPY'), - address: element.address, - notes: element.notes - }); - } - }); - } - _this.backend.getContactAlias(); - _this.ngZone.run(function () { - _this.router.navigate(['/contacts']); - }); - } - if (elements.errors.length) { - _this.modalService.prepareModal('error', 'CONTACTS.ERROR_IMPORT'); - console.log(elements.errors); - } - } - }); - } - else { - _this.modalService.prepareModal('error', 'CONTACTS.ERROR_TYPE_FILE'); - } - } - }); - }; - ExportImportComponent.prototype.export = function () { - var _this = this; - var contacts = []; - this.variablesService.contacts.forEach(function (contact) { - delete contact.alias; - contacts.push(contact); - }); - this.backend.saveFileDialog('', '*', this.variablesService.settings.default_path, function (file_status, file_data) { - if (!_this.variablesService.contacts.length && !(file_data.error_code === 'CANCELED')) { - _this.modalService.prepareModal('error', 'CONTACTS.ERROR_EMPTY_LIST'); - } - var path = _this.isValid(file_data.path) ? file_data.path : file_data.path + ".csv"; - if (file_status && _this.isValid(path) && _this.variablesService.contacts.length) { - _this.backend.storeFile(path, _this.papa.unparse(contacts)); - } - if (!(file_data.error_code === 'CANCELED') && !_this.isValid(path)) { - _this.modalService.prepareModal('error', 'CONTACTS.ERROR_EXPORT'); - } - }); - }; - ExportImportComponent.prototype.isValid = function (file) { - return file.endsWith('.csv'); - }; - ExportImportComponent.prototype.back = function () { - this.location.back(); - }; - ExportImportComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-export-import', - template: __webpack_require__(/*! ./export-import.component.html */ "./src/app/export-import/export-import.component.html"), - styles: [__webpack_require__(/*! ./export-import.component.scss */ "./src/app/export-import/export-import.component.scss")] - }), - __metadata("design:paramtypes", [_angular_common__WEBPACK_IMPORTED_MODULE_1__["Location"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_3__["VariablesService"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__["BackendService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_4__["ModalService"], - ngx_papaparse__WEBPACK_IMPORTED_MODULE_5__["Papa"], - _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__["TranslateService"], - _angular_router__WEBPACK_IMPORTED_MODULE_7__["Router"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]]) - ], ExportImportComponent); - return ExportImportComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/history/history.component.html": -/*!************************************************!*\ - !*** ./src/app/history/history.component.html ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    {{ 'HISTORY.STATUS' | translate }}{{ 'HISTORY.DATE' | translate }}{{ 'HISTORY.AMOUNT' | translate }}{{ 'HISTORY.FEE' | translate }}{{ 'HISTORY.ADDRESS' | translate }}
    \r\n
    \r\n 0\">\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n 0\">\r\n \r\n 500000000\">\r\n 0\">\r\n \r\n \r\n \r\n 0\">\r\n \r\n \r\n\r\n \r\n \r\n {{ (item.is_income ? 'HISTORY.RECEIVED' : 'HISTORY.SEND') | translate }}\r\n
    \r\n
    {{item.timestamp * 1000 | date : 'dd-MM-yyyy HH:mm'}}\r\n {{item.sortAmount | intToMoney}} {{variablesService.defaultCurrency}}\r\n \r\n {{item.sortFee | intToMoney}} {{variablesService.defaultCurrency}}\r\n \r\n {{item | historyTypeMessages}}\r\n {{item.remote_addresses[0]}}\r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/history/history.component.scss": -/*!************************************************!*\ - !*** ./src/app/history/history.component.scss ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n width: 100%; }\n\n.wrap-table {\n margin: -3rem; }\n\n.wrap-table table tbody tr td {\n min-width: 10rem; }\n\n.wrap-table table tbody tr .status {\n position: relative;\n display: flex;\n align-items: center; }\n\n.wrap-table table tbody tr .status .confirmation {\n position: absolute;\n top: 50%;\n left: -2rem;\n transform: translateY(-50%);\n display: flex;\n align-items: flex-end;\n width: 0.7rem;\n height: 1.5rem; }\n\n.wrap-table table tbody tr .status .confirmation .fill {\n width: 100%; }\n\n.wrap-table table tbody tr .status .lock-transaction {\n position: absolute;\n left: -2rem;\n -webkit-mask: url('lock-transaction.svg') no-repeat center;\n mask: url('lock-transaction.svg') no-repeat center;\n width: 1.2rem;\n height: 1.2rem;\n margin-right: 1.1rem; }\n\n.wrap-table table tbody tr .status .unlock-transaction {\n position: absolute;\n left: -2rem;\n -webkit-mask: url('unlock-transaction.svg') no-repeat center;\n mask: url('unlock-transaction.svg') no-repeat center;\n width: 1.2rem;\n height: 1.2rem;\n margin-right: 1.1rem; }\n\n.wrap-table table tbody tr .status .position {\n position: static; }\n\n.wrap-table table tbody tr .status .status-transaction {\n margin-right: 1rem;\n width: 1.7rem;\n height: 1.7rem; }\n\n.wrap-table table tbody tr .status.send .status-transaction {\n background-color: transparent; }\n\n.wrap-table table tbody tr .status.send .status-transaction::after {\n display: block;\n content: '';\n background: url('send-red.svg') no-repeat center;\n width: 13px;\n height: 13px; }\n\n.wrap-table table tbody tr .status.received .status-transaction {\n background-color: transparent; }\n\n.wrap-table table tbody tr .status.received .status-transaction::after {\n display: block;\n content: '';\n background: url('receive-green.svg') no-repeat center;\n width: 13px;\n height: 13px; }\n\n.wrap-table table tbody tr .remote-address {\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 25vw; }\n\n.wrap-table table tbody tr:not(.transaction-details) {\n cursor: pointer; }\n\n.wrap-table table tbody tr.transaction-details {\n transition: 0.5s height linear, 0s font-size;\n transition-delay: 0s, 0.5s;\n height: 0; }\n\n.wrap-table table tbody tr.transaction-details.open {\n height: 16.2rem; }\n\n.wrap-table table tbody tr.transaction-details td {\n position: relative;\n overflow: hidden;\n line-height: inherit;\n padding-top: 0;\n padding-bottom: 0; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaGlzdG9yeS9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxoaXN0b3J5XFxoaXN0b3J5LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsYUFBYSxFQUFBOztBQURmO0lBVVUsZ0JBQWdCLEVBQUE7O0FBVjFCO0lBY1Usa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixtQkFBbUIsRUFBQTs7QUFoQjdCO01BbUJZLGtCQUFrQjtNQUNsQixRQUFRO01BQ1IsV0FBVztNQUNYLDJCQUEyQjtNQUMzQixhQUFhO01BQ2IscUJBQXFCO01BQ3JCLGFBQWE7TUFDYixjQUFjLEVBQUE7O0FBMUIxQjtRQTZCYyxXQUFXLEVBQUE7O0FBN0J6QjtNQWtDWSxrQkFBa0I7TUFDbEIsV0FBVztNQUNYLDBEQUFtRTtjQUFuRSxrREFBbUU7TUFDbkUsYUFBYTtNQUNiLGNBQWM7TUFDZCxvQkFBb0IsRUFBQTs7QUF2Q2hDO01BMkNZLGtCQUFrQjtNQUNsQixXQUFXO01BQ1gsNERBQXFFO2NBQXJFLG9EQUFxRTtNQUNyRSxhQUFhO01BQ2IsY0FBYztNQUNkLG9CQUFvQixFQUFBOztBQWhEaEM7TUFvRFksZ0JBQWdCLEVBQUE7O0FBcEQ1QjtNQXdEWSxrQkFBa0I7TUFDbEIsYUFBYTtNQUNiLGNBQWMsRUFBQTs7QUExRDFCO01BK0RjLDZCQUE2QixFQUFBOztBQS9EM0M7TUFtRWMsY0FBYztNQUNkLFdBQVU7TUFDVixnREFBa0U7TUFDbEUsV0FBVztNQUNYLFlBQVksRUFBQTs7QUF2RTFCO01BNkVjLDZCQUE2QixFQUFBOztBQTdFM0M7TUFpRmMsY0FBYztNQUNkLFdBQVU7TUFDVixxREFBdUU7TUFDdkUsV0FBVztNQUNYLFlBQVksRUFBQTs7QUFyRjFCO0lBMkZVLGdCQUFnQjtJQUNoQix1QkFBdUI7SUFDdkIsZUFBZSxFQUFBOztBQTdGekI7SUFpR1UsZUFBZSxFQUFBOztBQWpHekI7SUFzR1UsNENBQTRDO0lBQzVDLDBCQUEwQjtJQUMxQixTQUFTLEVBQUE7O0FBeEduQjtNQTJHWSxlQUFlLEVBQUE7O0FBM0czQjtNQStHWSxrQkFBa0I7TUFDbEIsZ0JBQWdCO01BQ2hCLG9CQUFvQjtNQUNwQixjQUFjO01BQ2QsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9oaXN0b3J5L2hpc3RvcnkuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi53cmFwLXRhYmxlIHtcclxuICBtYXJnaW46IC0zcmVtO1xyXG5cclxuICB0YWJsZSB7XHJcblxyXG4gICAgdGJvZHkge1xyXG5cclxuICAgICAgdHIge1xyXG5cclxuICAgICAgICB0ZCB7XHJcbiAgICAgICAgICBtaW4td2lkdGg6IDEwcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cyB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAuY29uZmlybWF0aW9uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgbGVmdDogLTJyZW07XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gICAgICAgICAgICB3aWR0aDogMC43cmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcclxuXHJcbiAgICAgICAgICAgIC5maWxsIHtcclxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5sb2NrLXRyYW5zYWN0aW9uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBsZWZ0OiAtMnJlbTtcclxuICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9sb2NrLXRyYW5zYWN0aW9uLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4xcmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC51bmxvY2stdHJhbnNhY3Rpb24ge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IC0ycmVtO1xyXG4gICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3VubG9jay10cmFuc2FjdGlvbi5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxLjJyZW07XHJcbiAgICAgICAgICAgIGhlaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMXJlbTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAucG9zaXRpb24ge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5zdGF0dXMtdHJhbnNhY3Rpb24ge1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XHJcbiAgICAgICAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgICAgICAgIGhlaWdodDogMS43cmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYuc2VuZCAge1xyXG4gICAgICAgICAgICAuc3RhdHVzLXRyYW5zYWN0aW9uIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnN0YXR1cy10cmFuc2FjdGlvbjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDp1cmwoXCIuLi8uLi9hc3NldHMvaWNvbnMvc2VuZC1yZWQuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEzcHg7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxM3B4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJi5yZWNlaXZlZCB7XHJcbiAgICAgICAgICAgIC5zdGF0dXMtdHJhbnNhY3Rpb24ge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc3RhdHVzLXRyYW5zYWN0aW9uOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgY29udGVudDonJztcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOnVybChcIi4uLy4uL2Fzc2V0cy9pY29ucy9yZWNlaXZlLWdyZWVuLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxM3B4O1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMTNweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnJlbW90ZS1hZGRyZXNzIHtcclxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgICAgIG1heC13aWR0aDogMjV2dztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bm90KC50cmFuc2FjdGlvbi1kZXRhaWxzKSB7XHJcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnRyYW5zYWN0aW9uLWRldGFpbHMge1xyXG4gICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjVzIGhlaWdodCBsaW5lYXIsIDBzIGZvbnQtc2l6ZTtcclxuICAgICAgICAgIHRyYW5zaXRpb246IDAuNXMgaGVpZ2h0IGxpbmVhciwgMHMgZm9udC1zaXplO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHMsIDAuNXM7XHJcbiAgICAgICAgICBoZWlnaHQ6IDA7XHJcblxyXG4gICAgICAgICAgJi5vcGVuIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxNi4ycmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */" - -/***/ }), - -/***/ "./src/app/history/history.component.ts": -/*!**********************************************!*\ - !*** ./src/app/history/history.component.ts ***! - \**********************************************/ -/*! exports provided: HistoryComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HistoryComponent", function() { return HistoryComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - -var HistoryComponent = /** @class */ (function () { - function HistoryComponent(route, variablesService) { - this.route = route; - this.variablesService = variablesService; - this.openedDetails = false; - this.calculatedWidth = []; - } - HistoryComponent.prototype.ngOnInit = function () { - var _this = this; - this.parentRouting = this.route.parent.params.subscribe(function () { - _this.openedDetails = false; - }); - }; - HistoryComponent.prototype.ngAfterViewChecked = function () { - this.calculateWidth(); - }; - HistoryComponent.prototype.getHeight = function (item) { - if ((this.variablesService.height_app - item.height >= 10 && item.height !== 0) || (item.is_mining === true && item.height === 0)) { - return 100; - } - else { - if (item.height === 0 || this.variablesService.height_app - item.height < 0) { - return 0; - } - else { - return (this.variablesService.height_app - item.height) * 10; - } - } - }; - HistoryComponent.prototype.openDetails = function (tx_hash) { - if (tx_hash === this.openedDetails) { - this.openedDetails = false; - } - else { - this.openedDetails = tx_hash; - } - }; - HistoryComponent.prototype.calculateWidth = function () { - this.calculatedWidth = []; - this.calculatedWidth.push(this.head.nativeElement.childNodes[0].clientWidth); - this.calculatedWidth.push(this.head.nativeElement.childNodes[1].clientWidth + this.head.nativeElement.childNodes[2].clientWidth); - this.calculatedWidth.push(this.head.nativeElement.childNodes[3].clientWidth); - this.calculatedWidth.push(this.head.nativeElement.childNodes[4].clientWidth); - }; - HistoryComponent.prototype.time = function (item) { - var now = new Date().getTime(); - var unlockTime = now + ((item.unlock_time - this.variablesService.height_max) * 60 * 1000); - return unlockTime; - }; - HistoryComponent.prototype.isLocked = function (item) { - if ((item.unlock_time > 500000000) && (item.unlock_time > new Date().getTime() / 1000)) { - return true; - } - if ((item.unlock_time < 500000000) && (item.unlock_time > this.variablesService.height_max)) { - return true; - } - return false; - }; - HistoryComponent.prototype.ngOnDestroy = function () { - this.parentRouting.unsubscribe(); - }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"])('head'), - __metadata("design:type", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]) - ], HistoryComponent.prototype, "head", void 0); - HistoryComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-history', - template: __webpack_require__(/*! ./history.component.html */ "./src/app/history/history.component.html"), - styles: [__webpack_require__(/*! ./history.component.scss */ "./src/app/history/history.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_1__["VariablesService"]]) - ], HistoryComponent); - return HistoryComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/login/login.component.html": -/*!********************************************!*\ - !*** ./src/app/login/login.component.html ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'LOGIN.FORM_ERRORS.MISMATCH' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n {{ 'SIDEBAR.SYNCHRONIZATION.OFFLINE' | translate }}\r\n \r\n \r\n {{ 'SIDEBAR.SYNCHRONIZATION.SYNCING' | translate }} {{ variablesService.height_app }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.height_max }}\r\n \r\n \r\n {{ 'SIDEBAR.SYNCHRONIZATION.ONLINE' | translate }}\r\n \r\n \r\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\r\n \r\n \r\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\r\n \r\n \r\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\r\n \r\n \r\n {{ 'SIDEBAR.SYNCHRONIZATION.DOWNLOADING' | translate }} {{ variablesService.downloaded }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.total }}{{ 'SIDEBAR.SYNCHRONIZATION.MB' | translate }}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {{ variablesService.sync.progress_value_text }}%
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {{ variablesService.download.progress_value_text }}%
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {{ 'SIDEBAR.UPDATE.STANDARD' | translate }}\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {{ 'SIDEBAR.UPDATE.IMPORTANT' | translate }}\r\n
    \r\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {{ 'SIDEBAR.UPDATE.CRITICAL' | translate }}\r\n
    \r\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ 'SIDEBAR.UPDATE.TIME' | translate }}\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/login/login.component.scss": -/*!********************************************!*\ - !*** ./src/app/login/login.component.scss ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%; }\n :host .content {\n display: flex; }\n :host .content .wrap-login {\n margin: auto;\n width: 100%;\n max-width: 40rem; }\n :host .content .wrap-login .logo {\n display: flex;\n justify-content: center; }\n :host .content .wrap-login .logo::ng-deep svg {\n width: 15rem; }\n :host .content .wrap-login .form-login {\n display: flex;\n flex-direction: column; }\n :host .content .wrap-login .form-login .wrap-button {\n display: flex;\n align-items: center;\n justify-content: space-between; }\n :host .content .wrap-login .form-login .wrap-button button {\n margin: 2.5rem 0; }\n :host .content .wrap-login .form-login button {\n margin: 2.5rem auto;\n width: 100%;\n max-width: 15rem; }\n .synchronization-status {\n position: absolute;\n bottom: 3rem;\n left: 3rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbG9naW4vRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcbG9naW5cXGxvZ2luLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFlBQVksRUFBQTtFQUxkO0lBUUksYUFBYSxFQUFBO0VBUmpCO01BV00sWUFBWTtNQUNaLFdBQVc7TUFDWCxnQkFBZ0IsRUFBQTtFQWJ0QjtRQWdCUSxhQUFhO1FBQ2IsdUJBQXVCLEVBQUE7RUFqQi9CO1VBb0JVLFlBQVksRUFBQTtFQXBCdEI7UUF5QlEsYUFBYTtRQUNiLHNCQUFzQixFQUFBO0VBMUI5QjtVQTZCVSxhQUFhO1VBQ2IsbUJBQW1CO1VBQ25CLDhCQUE4QixFQUFBO0VBL0J4QztZQWtDWSxnQkFBZ0IsRUFBQTtFQWxDNUI7VUF1Q1UsbUJBQW1CO1VBQ25CLFdBQVc7VUFDWCxnQkFBZ0IsRUFBQTtFQU0xQjtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osVUFBVSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvbG9naW4vbG9naW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuXHJcbiAgLmNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAud3JhcC1sb2dpbiB7XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1heC13aWR0aDogNDByZW07XHJcblxyXG4gICAgICAubG9nbyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgJjo6bmctZGVlcCBzdmcge1xyXG4gICAgICAgICAgd2lkdGg6IDE1cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmZvcm0tbG9naW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICAgICAgLndyYXAtYnV0dG9uIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMi41cmVtIDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgbWFyZ2luOiAyLjVyZW0gYXV0bztcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiAxNXJlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuLnN5bmNocm9uaXphdGlvbi1zdGF0dXMge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDNyZW07XHJcbiAgbGVmdDogM3JlbTtcclxufVxyXG4iXX0= */" - -/***/ }), - -/***/ "./src/app/login/login.component.ts": -/*!******************************************!*\ - !*** ./src/app/login/login.component.ts ***! - \******************************************/ -/*! exports provided: LoginComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoginComponent", function() { return LoginComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -/* harmony import */ var _helpers_models_wallet_model__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_helpers/models/wallet.model */ "./src/app/_helpers/models/wallet.model.ts"); -/* harmony import */ var _shared_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../_shared/constants */ "./src/app/_shared/constants.ts"); -/* harmony import */ var _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../assets/icons/icons.json */ "./src/assets/icons/icons.json"); -var _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_8___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../../assets/icons/icons.json */ "./src/assets/icons/icons.json", 1); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - - - -var LoginComponent = /** @class */ (function () { - function LoginComponent(route, router, backend, variablesService, modalService, ngZone) { - this.route = route; - this.router = router; - this.backend = backend; - this.variablesService = variablesService; - this.modalService = modalService; - this.ngZone = ngZone; - this.regForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]({ - password: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].pattern(this.variablesService.pattern)), - confirmation: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('') - }, [function (g) { - return g.get('password').value === g.get('confirmation').value ? null : { 'mismatch': true }; - } - ]); - this.authForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]({ - password: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('') - }); - this.type = 'reg'; - this.logo = _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_8__.logo; - } - LoginComponent.prototype.ngOnInit = function () { - var _this = this; - this.queryRouting = this.route.queryParams.subscribe(function (params) { - if (params.type) { - _this.type = params.type; - } - }); - }; - LoginComponent.prototype.onSubmitCreatePass = function () { - var _this = this; - if (this.regForm.valid) { - this.variablesService.appPass = this.regForm.get('password').value; // the pass what was written in input of login form by user - this.backend.setMasterPassword({ pass: this.variablesService.appPass }, function (status, data) { - if (status) { - _this.backend.storeSecureAppData({ pass: _this.variablesService.appPass }); - _this.variablesService.appLogin = true; - _this.variablesService.dataIsLoaded = true; - if (_this.variablesService.settings.appLockTime) { - _this.variablesService.startCountdown(); - } - _this.ngZone.run(function () { - _this.router.navigate(['/']); - }); - } - else { - console.log(data['error_code']); - } - }); - } - }; - LoginComponent.prototype.onSkipCreatePass = function () { - var _this = this; - this.variablesService.appPass = ''; - this.ngZone.run(function () { - _this.variablesService.appLogin = true; - _this.router.navigate(['/']); - }); - }; - LoginComponent.prototype.dropSecureAppData = function () { - var _this = this; - this.backend.dropSecureAppData(function () { - _this.onSkipCreatePass(); - }); - this.variablesService.wallets = []; - this.variablesService.contacts = []; - }; - LoginComponent.prototype.onSubmitAuthPass = function () { - var _this = this; - if (this.authForm.valid) { - this.variablesService.appPass = this.authForm.get('password').value; - if (this.variablesService.dataIsLoaded) { - this.backend.checkMasterPassword({ pass: this.variablesService.appPass }, function (status, data) { - if (status) { - _this.variablesService.appLogin = true; - if (_this.variablesService.settings.appLockTime) { - _this.variablesService.startCountdown(); - } - _this.ngZone.run(function () { - _this.router.navigate(['/'], { queryParams: { prevUrl: 'login' } }); - }); - } - }); - } - else { - this.getData(this.variablesService.appPass); - } - } - }; - LoginComponent.prototype.getData = function (appPass) { - var _this = this; - this.backend.getSecureAppData({ pass: appPass }, function (status, data) { - if (!data.error_code) { - _this.variablesService.appLogin = true; - _this.variablesService.dataIsLoaded = true; - if (_this.variablesService.settings.appLockTime) { - _this.variablesService.startCountdown(); - } - _this.variablesService.appPass = appPass; - var isEmptyObject = Object.keys(data).length === 0 && data.constructor === Object; - if (_this.variablesService.wallets.length) { - _this.ngZone.run(function () { - _this.router.navigate(['/wallet/' + _this.variablesService.wallets[0].wallet_id]); - }); - return; - } - if (data.hasOwnProperty('contacts')) { - if (Object.keys(data['contacts']).length !== 0) { - data['contacts'].map(function (contact) { - _this.variablesService.contacts.push(contact); - }); - } - } - if (data.hasOwnProperty('wallets')) { - if (Object.keys(data['wallets']).length !== 0) { - _this.getWalletData(data['wallets']); - } - else { - _this.ngZone.run(function () { - _this.router.navigate(['/']); - }); - } - } - if (!data.hasOwnProperty('wallets') && !data.hasOwnProperty('contacts')) { - if (data.length !== 0 && !isEmptyObject) { - _this.getWalletData(data); - } - else { - _this.ngZone.run(function () { - _this.router.navigate(['/']); - }); - } - } - } - }); - }; - LoginComponent.prototype.getWalletData = function (walletData) { - var _this = this; - var openWallets = 0; - var runWallets = 0; - walletData.forEach(function (wallet, wallet_index) { - _this.backend.openWallet(wallet.path, wallet.pass, _this.variablesService.count, true, function (open_status, open_data, open_error) { - if (open_status || open_error === 'FILE_RESTORED') { - openWallets++; - _this.ngZone.run(function () { - var new_wallet = new _helpers_models_wallet_model__WEBPACK_IMPORTED_MODULE_6__["Wallet"](open_data.wallet_id, wallet.name, wallet.pass, open_data['wi'].path, open_data['wi'].address, open_data['wi'].balance, open_data['wi'].unlocked_balance, open_data['wi'].mined_total, open_data['wi'].tracking_hey); - new_wallet.alias = _this.backend.getWalletAlias(new_wallet.address); - if (wallet.staking) { - new_wallet.staking = true; - _this.backend.startPosMining(new_wallet.wallet_id); - } - else { - new_wallet.staking = false; - } - new_wallet.is_auditable = open_data['wi'].is_auditable; - new_wallet.is_watch_only = open_data['wi'].is_watch_only; - new_wallet.currentPage = 1; - new_wallet.exclude_mining_txs = false; - if (open_data.recent_history && open_data.recent_history.history) { - new_wallet.total_history_item = open_data.recent_history.total_history_items; - new_wallet.totalPages = Math.ceil(open_data.recent_history.total_history_items / _this.variablesService.count); - new_wallet.totalPages > _this.variablesService.maxPages - ? new_wallet.pages = new Array(5).fill(1).map(function (value, index) { return value + index; }) - : new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map(function (value, index) { return value + index; }); - new_wallet.prepareHistory(open_data.recent_history.history); - } - else { - new_wallet.total_history_item = 0; - new_wallet.pages = new Array(1).fill(1); - new_wallet.totalPages = 1; - } - _this.backend.getContracts(open_data.wallet_id, function (contracts_status, contracts_data) { - if (contracts_status && contracts_data.hasOwnProperty('contracts')) { - _this.ngZone.run(function () { - new_wallet.prepareContractsAfterOpen(contracts_data.contracts, _this.variablesService.exp_med_ts, _this.variablesService.height_app, _this.variablesService.settings.viewedContracts, _this.variablesService.settings.notViewedContracts); - }); - } - }); - _this.variablesService.wallets.push(new_wallet); - if (_this.variablesService.wallets.length === 1) { - _this.router.navigate(['/wallet/' + _this.variablesService.wallets[0].wallet_id]); - } - }); - _this.backend.runWallet(open_data.wallet_id, function (run_status) { - if (run_status) { - runWallets++; - } - else { - if (wallet_index === walletData.length - 1 && runWallets === 0) { - _this.ngZone.run(function () { - _this.router.navigate(['/']); - }); - } - } - }); - } - else { - if (wallet_index === walletData.length - 1 && openWallets === 0) { - _this.ngZone.run(function () { - _this.router.navigate(['/']); - }); - } - } - }); - }); - }; - LoginComponent.prototype.getUpdate = function () { - this.backend.openUrlInBrowser(_shared_constants__WEBPACK_IMPORTED_MODULE_7__["DOWNLOADS_PAGE_URL"]); - }; - LoginComponent.prototype.ngOnDestroy = function () { - this.queryRouting.unsubscribe(); - }; - LoginComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-login', - template: __webpack_require__(/*! ./login.component.html */ "./src/app/login/login.component.html"), - styles: [__webpack_require__(/*! ./login.component.scss */ "./src/app/login/login.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"], - _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__["VariablesService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__["ModalService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]]) - ], LoginComponent); - return LoginComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/main/main.component.html": -/*!******************************************!*\ - !*** ./src/app/main/main.component.html ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n\r\n
    0 && prevUrl !== 'login'\">\r\n \r\n
    \r\n\r\n
    \r\n

    {{ 'MAIN.TITLE' | translate }}

    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n {{ 'MAIN.HELP' | translate }}\r\n
    \r\n
    \r\n\r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/main/main.component.scss": -/*!******************************************!*\ - !*** ./src/app/main/main.component.scss ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n flex: 1 0 auto;\n padding: 3rem; }\n\n.content {\n padding: 3rem;\n min-height: 100%; }\n\n.content .head {\n justify-content: flex-end; }\n\n.add-wallet .add-wallet-title {\n margin-bottom: 1rem; }\n\n.add-wallet .add-wallet-buttons {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0 -0.5rem;\n padding: 1.5rem 0; }\n\n.add-wallet .add-wallet-buttons button {\n flex: 1 0 auto;\n margin: 0 0.5rem; }\n\n.add-wallet .add-wallet-help {\n display: flex;\n cursor: pointer;\n font-size: 1.3rem;\n line-height: 1.5rem; }\n\n.add-wallet .add-wallet-help .icon {\n -webkit-mask: url('howto.svg') no-repeat center;\n mask: url('howto.svg') no-repeat center;\n margin-right: 0.8rem;\n width: 1.5rem;\n height: 1.5rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFpbi9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxtYWluXFxtYWluLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsY0FBYztFQUNkLGFBQWEsRUFBQTs7QUFHZjtFQUNFLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTs7QUFGbEI7SUFLSSx5QkFBeUIsRUFBQTs7QUFJN0I7RUFHSSxtQkFBbUIsRUFBQTs7QUFIdkI7RUFPSSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLDhCQUE4QjtFQUM5QixpQkFBaUI7RUFDakIsaUJBQWlCLEVBQUE7O0FBWHJCO0lBY00sY0FBYztJQUNkLGdCQUFnQixFQUFBOztBQWZ0QjtFQW9CSSxhQUFhO0VBQ2IsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixtQkFBbUIsRUFBQTs7QUF2QnZCO0lBMEJNLCtDQUF3RDtZQUF4RCx1Q0FBd0Q7SUFDeEQsb0JBQW9CO0lBQ3BCLGFBQWE7SUFDYixjQUFjLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9tYWluL21haW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZmxleDogMSAwIGF1dG87XHJcbiAgcGFkZGluZzogM3JlbTtcclxufVxyXG5cclxuLmNvbnRlbnQge1xyXG4gIHBhZGRpbmc6IDNyZW07XHJcbiAgbWluLWhlaWdodDogMTAwJTtcclxuXHJcbiAgLmhlYWQge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICB9XHJcbn1cclxuXHJcbi5hZGQtd2FsbGV0IHtcclxuXHJcbiAgLmFkZC13YWxsZXQtdGl0bGUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICB9XHJcblxyXG4gIC5hZGQtd2FsbGV0LWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW46IDAgLTAuNXJlbTtcclxuICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICBtYXJnaW46IDAgMC41cmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZC13YWxsZXQtaGVscCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS41cmVtO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9ob3d0by5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMC44cmVtO1xyXG4gICAgICB3aWR0aDogMS41cmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */" - -/***/ }), - -/***/ "./src/app/main/main.component.ts": -/*!****************************************!*\ - !*** ./src/app/main/main.component.ts ***! - \****************************************/ -/*! exports provided: MainComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MainComponent", function() { return MainComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm5/common.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -/* harmony import */ var _shared_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_shared/constants */ "./src/app/_shared/constants.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - -var MainComponent = /** @class */ (function () { - function MainComponent(route, router, location, backend, variablesService, ngZone, translate) { - this.route = route; - this.router = router; - this.location = location; - this.backend = backend; - this.variablesService = variablesService; - this.ngZone = ngZone; - this.translate = translate; - this.prevUrl = ''; - } - MainComponent.prototype.ngOnInit = function () { - if (this.route.snapshot.queryParams && this.route.snapshot.queryParams.prevUrl) { - this.prevUrl = this.route.snapshot.queryParams.prevUrl; - } - }; - MainComponent.prototype.openWallet = function () { - var _this = this; - this.backend.openFileDialog(this.translate.instant('MAIN.CHOOSE_PATH'), '*', this.variablesService.settings.default_path, function (file_status, file_data) { - if (file_status) { - _this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/')); - _this.ngZone.run(function () { - _this.router.navigate(['/open'], { queryParams: { path: file_data.path } }); - }); - } - else { - console.log(file_data['error_code']); - } - }); - }; - MainComponent.prototype.openInBrowser = function () { - this.backend.openUrlInBrowser(_shared_constants__WEBPACK_IMPORTED_MODULE_6__["CREATE_NEW_WALLET_HELP_PAGE"]); - }; - MainComponent.prototype.back = function () { - this.location.back(); - }; - MainComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-main', - template: __webpack_require__(/*! ./main.component.html */ "./src/app/main/main.component.html"), - styles: [__webpack_require__(/*! ./main.component.scss */ "./src/app/main/main.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_4__["ActivatedRoute"], - _angular_router__WEBPACK_IMPORTED_MODULE_4__["Router"], - _angular_common__WEBPACK_IMPORTED_MODULE_1__["Location"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_3__["VariablesService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], - _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__["TranslateService"]]) - ], MainComponent); - return MainComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/messages/messages.component.html": -/*!**************************************************!*\ - !*** ./src/app/messages/messages.component.html ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    {{ 'MESSAGES.ADDRESS' | translate }}{{ 'MESSAGES.MESSAGE' | translate }}
    \r\n {{message.address}}\r\n \r\n \r\n {{message.message}}\r\n
    \r\n\r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/messages/messages.component.scss": -/*!**************************************************!*\ - !*** ./src/app/messages/messages.component.scss ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n width: 100%; }\n\n.wrap-table {\n margin: -3rem; }\n\n.wrap-table table tbody tr td:first-child {\n position: relative;\n padding-right: 5rem;\n width: 18rem; }\n\n.wrap-table table tbody tr td:first-child span {\n display: block;\n line-height: 3.5rem;\n max-width: 10rem; }\n\n.wrap-table table tbody tr td:first-child .icon {\n position: absolute;\n top: 50%;\n right: 1rem;\n transform: translateY(-50%);\n display: block;\n -webkit-mask: url('alert.svg') no-repeat 0;\n mask: url('alert.svg') no-repeat 0;\n width: 1.2rem;\n height: 1.2rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWVzc2FnZXMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcbWVzc2FnZXNcXG1lc3NhZ2VzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsYUFBYSxFQUFBOztBQURmO0lBWVksa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixZQUFZLEVBQUE7O0FBZHhCO01BaUJjLGNBQWM7TUFDZCxtQkFBbUI7TUFDbkIsZ0JBQWdCLEVBQUE7O0FBbkI5QjtNQXVCYyxrQkFBa0I7TUFDbEIsUUFBUTtNQUNSLFdBQVc7TUFDWCwyQkFBMkI7TUFDM0IsY0FBYztNQUNkLDBDQUFtRDtjQUFuRCxrQ0FBbUQ7TUFDbkQsYUFBYTtNQUNiLGNBQWMsRUFBQSIsImZpbGUiOiJzcmMvYXBwL21lc3NhZ2VzL21lc3NhZ2VzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ud3JhcC10YWJsZSB7XHJcbiAgbWFyZ2luOiAtM3JlbTtcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuXHJcbiAgICAgICAgdGQge1xyXG5cclxuICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07XHJcbiAgICAgICAgICAgIHdpZHRoOiAxOHJlbTtcclxuXHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzLjVyZW07XHJcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMHJlbTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgICByaWdodDogMXJlbTtcclxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9hbGVydC5zdmcpIG5vLXJlcGVhdCAwO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxLjJyZW07XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */" - -/***/ }), - -/***/ "./src/app/messages/messages.component.ts": -/*!************************************************!*\ - !*** ./src/app/messages/messages.component.ts ***! - \************************************************/ -/*! exports provided: MessagesComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MessagesComponent", function() { return MessagesComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - -var MessagesComponent = /** @class */ (function () { - function MessagesComponent() { - this.messages = [ - { - is_new: true, - address: '@bitmap', - message: 'No more miners for you!' - }, - { - is_new: false, - address: 'Hjkwey36gHasdhkajshd4bxnb5mcvowyefb2633FdsFGGWbb', - message: 'Hey! What’s with our BBR deal?' - }, - { - is_new: false, - address: '@john', - message: 'I’m coming!' - } - ]; - } - MessagesComponent.prototype.ngOnInit = function () { }; - MessagesComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-messages', - template: __webpack_require__(/*! ./messages.component.html */ "./src/app/messages/messages.component.html"), - styles: [__webpack_require__(/*! ./messages.component.scss */ "./src/app/messages/messages.component.scss")] - }), - __metadata("design:paramtypes", []) - ], MessagesComponent); - return MessagesComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/open-wallet-modal/open-wallet-modal.component.html": -/*!********************************************************************!*\ - !*** ./src/app/open-wallet-modal/open-wallet-modal.component.html ***! - \********************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n

    {{ 'OPEN_WALLET.MODAL.TITLE' | translate }}

    \r\n
    \r\n
    {{ wallet.name }}
    \r\n
    {{ wallet.path }}
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'OPEN_WALLET.MODAL.NOT_FOUND' | translate }}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/open-wallet-modal/open-wallet-modal.component.scss": -/*!********************************************************************!*\ - !*** ./src/app/open-wallet-modal/open-wallet-modal.component.scss ***! - \********************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.25); }\n\n.modal {\n display: flex;\n flex-direction: column;\n background-position: center;\n background-size: 200%;\n padding: 2rem;\n min-width: 34rem;\n max-width: 64rem; }\n\n.modal .title {\n font-size: 1.8rem;\n text-align: center; }\n\n.modal .open-form .wallet-path {\n font-size: 1.3rem;\n margin: 5rem 0 2rem;\n word-wrap: break-word;\n line-height: 2rem; }\n\n.modal .open-form .wrap-button {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 2rem -2rem 0; }\n\n.modal .open-form .wrap-button button {\n flex: 1 0 0;\n margin: 0 2rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3Blbi13YWxsZXQtbW9kYWwvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcb3Blbi13YWxsZXQtbW9kYWxcXG9wZW4td2FsbGV0LW1vZGFsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUMsRUFBQTs7QUFHdkM7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLDJCQUEyQjtFQUMzQixxQkFBcUI7RUFDckIsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixnQkFBZ0IsRUFBQTs7QUFQbEI7SUFVSSxpQkFBaUI7SUFDakIsa0JBQWtCLEVBQUE7O0FBWHRCO0lBaUJNLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIscUJBQXFCO0lBQ3JCLGlCQUFpQixFQUFBOztBQXBCdkI7SUF3Qk0sYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsb0JBQW9CLEVBQUE7O0FBM0IxQjtNQThCUSxXQUFXO01BQ1gsY0FBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvb3Blbi13YWxsZXQtbW9kYWwvb3Blbi13YWxsZXQtbW9kYWwuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcclxufVxyXG5cclxuLm1vZGFsIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJTtcclxuICBwYWRkaW5nOiAycmVtO1xyXG4gIG1pbi13aWR0aDogMzRyZW07XHJcbiAgbWF4LXdpZHRoOiA2NHJlbTtcclxuXHJcbiAgLnRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLm9wZW4tZm9ybSB7XHJcblxyXG4gICAgLndhbGxldC1wYXRoIHtcclxuICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgIG1hcmdpbjogNXJlbSAwIDJyZW07XHJcbiAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLndyYXAtYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICBtYXJnaW46IDJyZW0gLTJyZW0gMDtcclxuXHJcbiAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgZmxleDogMSAwIDA7XHJcbiAgICAgICAgbWFyZ2luOiAwIDJyZW0gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */" - -/***/ }), - -/***/ "./src/app/open-wallet-modal/open-wallet-modal.component.ts": -/*!******************************************************************!*\ - !*** ./src/app/open-wallet-modal/open-wallet-modal.component.ts ***! - \******************************************************************/ -/*! exports provided: OpenWalletModalComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OpenWalletModalComponent", function() { return OpenWalletModalComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_models_wallet_model__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/models/wallet.model */ "./src/app/_helpers/models/wallet.model.ts"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - -var OpenWalletModalComponent = /** @class */ (function () { - function OpenWalletModalComponent(variablesService, backend, translate, modalService, ngZone) { - this.variablesService = variablesService; - this.backend = backend; - this.translate = translate; - this.modalService = modalService; - this.ngZone = ngZone; - this.wallet = { - name: '', - path: '', - pass: '', - notFound: false, - emptyPass: false - }; - } - OpenWalletModalComponent.prototype.ngOnInit = function () { - if (this.wallets.length) { - this.wallet = this.wallets[0]; - this.wallet.pass = ''; - } - }; - OpenWalletModalComponent.prototype.openWallet = function () { - var _this = this; - if (this.wallets.length === 0) { - return; - } - this.backend.openWallet(this.wallet.path, this.wallet.pass, this.variablesService.count, false, function (open_status, open_data, open_error) { - if (open_error && open_error === 'FILE_NOT_FOUND') { - _this.ngZone.run(function () { - _this.wallet.notFound = true; - }); - var error_translate = _this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1'); - error_translate += ':
    ' + _this.wallet.path; - error_translate += _this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2'); - _this.modalService.prepareModal('error', error_translate); - } - else { - if (open_status || open_error === 'FILE_RESTORED') { - var exists_1 = false; - _this.variablesService.wallets.forEach(function (wallet) { - if (wallet.address === open_data['wi'].address) { - exists_1 = true; - } - }); - if (exists_1) { - _this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN'); - _this.backend.closeWallet(open_data.wallet_id); - } - else { - var new_wallet_1 = new _helpers_models_wallet_model__WEBPACK_IMPORTED_MODULE_2__["Wallet"](open_data.wallet_id, _this.wallet.name, _this.wallet.pass, open_data['wi'].path, open_data['wi'].address, open_data['wi'].balance, open_data['wi'].unlocked_balance, open_data['wi'].mined_total, open_data['wi'].tracking_hey); - new_wallet_1.alias = _this.backend.getWalletAlias(new_wallet_1.address); - new_wallet_1.is_auditable = open_data['wi'].is_auditable; - new_wallet_1.is_watch_only = open_data['wi'].is_watch_only; - new_wallet_1.currentPage = 1; - new_wallet_1.exclude_mining_txs = false; - if (open_data.recent_history && open_data.recent_history.history) { - new_wallet_1.total_history_item = open_data.recent_history.total_history_items; - new_wallet_1.totalPages = Math.ceil(open_data.recent_history.total_history_items / _this.variablesService.count); - new_wallet_1.totalPages > _this.variablesService.maxPages - ? new_wallet_1.pages = new Array(5).fill(1).map(function (value, index) { return value + index; }) - : new_wallet_1.pages = new Array(new_wallet_1.totalPages).fill(1).map(function (value, index) { return value + index; }); - new_wallet_1.prepareHistory(open_data.recent_history.history); - } - else { - new_wallet_1.total_history_item = 0; - new_wallet_1.pages = new Array(1).fill(1); - new_wallet_1.totalPages = 1; - } - _this.backend.getContracts(open_data.wallet_id, function (contracts_status, contracts_data) { - if (contracts_status && contracts_data.hasOwnProperty('contracts')) { - _this.ngZone.run(function () { - new_wallet_1.prepareContractsAfterOpen(contracts_data.contracts, _this.variablesService.exp_med_ts, _this.variablesService.height_app, _this.variablesService.settings.viewedContracts, _this.variablesService.settings.notViewedContracts); - }); - } - }); - _this.variablesService.wallets.push(new_wallet_1); - _this.backend.runWallet(open_data.wallet_id); - _this.skipWallet(); - } - } - } - }); - }; - OpenWalletModalComponent.prototype.skipWallet = function () { - var _this = this; - this.ngZone.run(function () { - if (_this.wallets.length) { - _this.wallets.splice(0, 1); - _this.ngOnInit(); - } - }); - }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", Object) - ], OpenWalletModalComponent.prototype, "wallets", void 0); - OpenWalletModalComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-open-wallet-modal', - template: __webpack_require__(/*! ./open-wallet-modal.component.html */ "./src/app/open-wallet-modal/open-wallet-modal.component.html"), - styles: [__webpack_require__(/*! ./open-wallet-modal.component.scss */ "./src/app/open-wallet-modal/open-wallet-modal.component.scss")] - }), - __metadata("design:paramtypes", [_helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_1__["VariablesService"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"], - _ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__["TranslateService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__["ModalService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]]) - ], OpenWalletModalComponent); - return OpenWalletModalComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/open-wallet/open-wallet.component.html": -/*!********************************************************!*\ - !*** ./src/app/open-wallet/open-wallet.component.html ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n\r\n
    \r\n
    \r\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\r\n {{ 'BREADCRUMBS.OPEN_WALLET' | translate }}\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\r\n
    \r\n
    \r\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\r\n
    \r\n
    \r\n
    = variablesService.maxWalletNameLength\">\r\n {{ 'OPEN_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n" - -/***/ }), - -/***/ "./src/app/open-wallet/open-wallet.component.scss": -/*!********************************************************!*\ - !*** ./src/app/open-wallet/open-wallet.component.scss ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ".form-open {\n margin: 2.4rem 0;\n width: 50%; }\n .form-open .wrap-buttons {\n display: flex;\n margin: 2.5rem -0.7rem; }\n .form-open .wrap-buttons button {\n margin: 0 0.7rem; }\n .form-open .wrap-buttons button.create-button {\n flex: 1 1 50%; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3Blbi13YWxsZXQvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcb3Blbi13YWxsZXRcXG9wZW4td2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTtFQUZaO0lBS0ksYUFBYTtJQUNiLHNCQUFzQixFQUFBO0VBTjFCO01BU00sZ0JBQWdCLEVBQUE7RUFUdEI7UUFZUSxhQUFhLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9vcGVuLXdhbGxldC9vcGVuLXdhbGxldC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLW9wZW4ge1xyXG4gIG1hcmdpbjogMi40cmVtIDA7XHJcbiAgd2lkdGg6IDUwJTtcclxuXHJcbiAgLndyYXAtYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luOiAyLjVyZW0gLTAuN3JlbTtcclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBtYXJnaW46IDAgMC43cmVtO1xyXG5cclxuICAgICAgJi5jcmVhdGUtYnV0dG9uIHtcclxuICAgICAgICBmbGV4OiAxIDEgNTAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */" - -/***/ }), - -/***/ "./src/app/open-wallet/open-wallet.component.ts": -/*!******************************************************!*\ - !*** ./src/app/open-wallet/open-wallet.component.ts ***! - \******************************************************/ -/*! exports provided: OpenWalletComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OpenWalletComponent", function() { return OpenWalletComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _helpers_models_wallet_model__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_helpers/models/wallet.model */ "./src/app/_helpers/models/wallet.model.ts"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - - -var OpenWalletComponent = /** @class */ (function () { - function OpenWalletComponent(route, router, backend, variablesService, modalService, ngZone, translate) { - var _this = this; - this.route = route; - this.router = router; - this.backend = backend; - this.variablesService = variablesService; - this.modalService = modalService; - this.ngZone = ngZone; - this.translate = translate; - this.openForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]({ - name: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', [_angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required, function (g) { - for (var i = 0; i < _this.variablesService.wallets.length; i++) { - if (g.value === _this.variablesService.wallets[i].name) { - return { 'duplicate': true }; - } - } - return null; - }]), - password: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('') - }); - } - OpenWalletComponent.prototype.ngOnInit = function () { - var _this = this; - this.queryRouting = this.route.queryParams.subscribe(function (params) { - if (params.path) { - _this.filePath = params.path; - var filename = ''; - if (params.path.lastIndexOf('.') === -1) { - filename = params.path.substr(params.path.lastIndexOf('/') + 1); - } - else { - filename = params.path.substr(params.path.lastIndexOf('/') + 1, params.path.lastIndexOf('.') - 1 - params.path.lastIndexOf('/')); - } - if (filename.length > 25) { - filename = filename.slice(0, 25); - } - _this.openForm.get('name').setValue(filename); - _this.openForm.get('name').markAsTouched(); - } - }); - }; - OpenWalletComponent.prototype.openWallet = function () { - var _this = this; - if (this.openForm.valid && this.openForm.get('name').value.length <= this.variablesService.maxWalletNameLength) { - this.backend.openWallet(this.filePath, this.openForm.get('password').value, this.variablesService.count, false, function (open_status, open_data, open_error) { - if (open_error && open_error === 'FILE_NOT_FOUND') { - var error_translate = _this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1'); - error_translate += ':
    ' + _this.filePath; - error_translate += _this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2'); - _this.modalService.prepareModal('error', error_translate); - } - else { - if (open_status || open_error === 'FILE_RESTORED') { - var exists_1 = false; - _this.variablesService.wallets.forEach(function (wallet) { - if (wallet.address === open_data['wi'].address) { - exists_1 = true; - } - }); - if (exists_1) { - _this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN'); - _this.backend.closeWallet(open_data.wallet_id, function () { - _this.ngZone.run(function () { - _this.router.navigate(['/']); - }); - }); - } - else { - var new_wallet_1 = new _helpers_models_wallet_model__WEBPACK_IMPORTED_MODULE_6__["Wallet"](open_data.wallet_id, _this.openForm.get('name').value, _this.openForm.get('password').value, open_data['wi'].path, open_data['wi'].address, open_data['wi'].balance, open_data['wi'].unlocked_balance, open_data['wi'].mined_total, open_data['wi'].tracking_hey); - new_wallet_1.alias = _this.backend.getWalletAlias(new_wallet_1.address); - new_wallet_1.currentPage = 1; - new_wallet_1.open_from_exist = true; - new_wallet_1.exclude_mining_txs = false; - new_wallet_1.is_auditable = open_data['wi'].is_auditable; - new_wallet_1.is_watch_only = open_data['wi'].is_watch_only; - if (open_data.recent_history && open_data.recent_history.history) { - new_wallet_1.total_history_item = open_data.recent_history.total_history_items; - new_wallet_1.totalPages = Math.ceil(open_data.recent_history.total_history_items / _this.variablesService.count); - new_wallet_1.totalPages > _this.variablesService.maxPages - ? new_wallet_1.pages = new Array(5).fill(1).map(function (value, index) { return value + index; }) - : new_wallet_1.pages = new Array(new_wallet_1.totalPages).fill(1).map(function (value, index) { return value + index; }); - new_wallet_1.prepareHistory(open_data.recent_history.history); - } - else { - new_wallet_1.total_history_item = 0; - new_wallet_1.pages = new Array(1).fill(1); - new_wallet_1.totalPages = 1; - } - _this.backend.getContracts(open_data.wallet_id, function (contracts_status, contracts_data) { - if (contracts_status && contracts_data.hasOwnProperty('contracts')) { - _this.ngZone.run(function () { - new_wallet_1.prepareContractsAfterOpen(contracts_data.contracts, _this.variablesService.exp_med_ts, _this.variablesService.height_app, _this.variablesService.settings.viewedContracts, _this.variablesService.settings.notViewedContracts); - }); - } - }); - _this.variablesService.wallets.push(new_wallet_1); - _this.backend.runWallet(open_data.wallet_id, function (run_status, run_data) { - if (run_status) { - if (_this.variablesService.appPass) { - _this.backend.storeSecureAppData(); - } - _this.ngZone.run(function () { - _this.router.navigate(['/wallet/' + open_data.wallet_id]); - }); - } - else { - console.log(run_data['error_code']); - } - }); - } - } - } - }); - } - }; - OpenWalletComponent.prototype.ngOnDestroy = function () { - this.queryRouting.unsubscribe(); - }; - OpenWalletComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-open-wallet', - template: __webpack_require__(/*! ./open-wallet.component.html */ "./src/app/open-wallet/open-wallet.component.html"), - styles: [__webpack_require__(/*! ./open-wallet.component.scss */ "./src/app/open-wallet/open-wallet.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_5__["ActivatedRoute"], - _angular_router__WEBPACK_IMPORTED_MODULE_5__["Router"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_3__["VariablesService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_4__["ModalService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], - _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__["TranslateService"]]) - ], OpenWalletComponent); - return OpenWalletComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/purchase/purchase.component.html": -/*!**************************************************!*\ - !*** ./src/app/purchase/purchase.component.html ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n
    \r\n {{ 'BREADCRUMBS.CONTRACTS' | translate }}\r\n {{ 'BREADCRUMBS.NEW_PURCHASE' | translate }}\r\n {{ 'BREADCRUMBS.OLD_PURCHASE' | translate }}\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'PURCHASE.FORM_ERRORS.DESC_REQUIRED' | translate }}\r\n
    \r\n
    \r\n
    = 100\">\r\n
    \r\n {{ 'PURCHASE.FORM_ERRORS.COMMENT_MAXIMUM' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    {{item.name}}
    \r\n
    \r\n
    \r\n
    \r\n {{ 'PURCHASE.FORM_ERRORS.SELLER_REQUIRED' | translate }}\r\n
    \r\n
    \r\n {{ 'PURCHASE.FORM_ERRORS.SELLER_NOT_VALID' | translate }}\r\n
    \r\n
    \r\n {{ 'PURCHASE.FORM_ERRORS.SELLER_SAME' | translate }}\r\n
    \r\n
    \r\n {{ 'PURCHASE.FORM_ERRORS.ALIAS_NOT_VALID' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'PURCHASE.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\r\n
    \r\n
    \r\n {{ 'PURCHASE.FORM_ERRORS.AMOUNT_ZERO' | translate }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'PURCHASE.FORM_ERRORS.YOUR_DEPOSIT_REQUIRED' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'PURCHASE.FORM_ERRORS.SELLER_DEPOSIT_REQUIRED' | translate }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    = 100\">\r\n
    \r\n {{ 'PURCHASE.FORM_ERRORS.COMMENT_MAXIMUM' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n 1 {{ 'PURCHASE.HOUR' | translate }}\r\n \r\n {{title}} {{ 'PURCHASE.HOURS' | translate }}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n \r\n {{ 'PURCHASE.NEED_MONEY' | translate }}\r\n \r\n
    \r\n\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n
    \r\n\r\n
    \r\n
    {{'PURCHASE.NULLIFY_QUESTION' | translate}}
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    {{ 'PURCHASE.WAITING_TIME_QUESTION' | translate }}
    \r\n \r\n
    \r\n \r\n 1 {{ 'PURCHASE.HOUR' | translate }}\r\n \r\n {{title}} {{ 'PURCHASE.HOURS' | translate }}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n {{ 'PURCHASE.STATUS_MESSAGES.NEW_PURCHASE' | translate }}\r\n \r\n\r\n \r\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_SELLER' | translate }}\r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_SELLER' | translate }}\r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_DELIVERY' | translate }}\r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_CANCEL_SELLER' | translate }}\r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.EXPIRED' | translate }}\r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_SELLER' | translate }}\r\n\r\n \r\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_CONFIRMATION' | translate }}\r\n (0/10)\r\n ({{variablesService.height_app - currentContract.height}}/10)\r\n \r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.COMPLETED' | translate }}\r\n\r\n \r\n {{ 'PURCHASE.STATUS_MESSAGES.NOT_RECEIVED' | translate }}. {{ 'PURCHASE.STATUS_MESSAGES.NULLIFIED' | translate }}\r\n \r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.PROPOSAL_CANCEL_SELLER' | translate }}\r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.CANCELLED' | translate }}\r\n\r\n \r\n {{ 'PURCHASE.STATUS_MESSAGES.BEING_CANCELLED' | translate }}\r\n (0/10)\r\n ({{variablesService.height_app - currentContract.height}}/10)\r\n \r\n \r\n\r\n \r\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_BUYER' | translate }}\r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_BUYER' | translate }}\r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_CANCEL_BUYER' | translate }}\r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.EXPIRED' | translate }}\r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_DELIVERY' | translate }}\r\n\r\n \r\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_CONFIRMATION' | translate }}\r\n (0/10)\r\n ({{variablesService.height_app - currentContract.height}}/10)\r\n \r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.COMPLETED' | translate }}\r\n\r\n \r\n {{ 'PURCHASE.STATUS_MESSAGES.NOT_RECEIVED' | translate }}. {{ 'PURCHASE.STATUS_MESSAGES.NULLIFIED' | translate }}\r\n \r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.PROPOSAL_CANCEL_BUYER' | translate }}\r\n\r\n {{ 'PURCHASE.STATUS_MESSAGES.CANCELLED' | translate }}\r\n\r\n \r\n {{ 'PURCHASE.STATUS_MESSAGES.BEING_CANCELLED' | translate }}\r\n (0/10)\r\n ({{variablesService.height_app - currentContract.height}}/10)\r\n \r\n \r\n\r\n
    \r\n
    \r\n {{currentContract.expiration_time | contractTimeLeft: 0}}\r\n {{currentContract.cancel_expiration_time | contractTimeLeft: 2}}\r\n {{currentContract.expiration_time | contractTimeLeft: 1}}\r\n {{currentContract.cancel_expiration_time | contractTimeLeft: 1}}\r\n
    \r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/purchase/purchase.component.scss": -/*!**************************************************!*\ - !*** ./src/app/purchase/purchase.component.scss ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n display: flex;\n flex-direction: column;\n width: 100%; }\n\n.head {\n flex: 0 0 auto;\n box-sizing: content-box;\n margin: -3rem -3rem 0; }\n\n.form-purchase {\n flex: 1 1 auto;\n margin: 1.5rem -3rem 0;\n padding: 0 3rem;\n overflow-y: overlay; }\n\n.form-purchase .input-blocks-row {\n display: flex; }\n\n.form-purchase .input-blocks-row .input-block {\n flex-basis: 50%; }\n\n.form-purchase .input-blocks-row .input-block:first-child {\n margin-right: 1.5rem; }\n\n.form-purchase .input-blocks-row .input-block:last-child {\n margin-left: 1.5rem; }\n\n.form-purchase .input-blocks-row .input-block .checkbox-block {\n display: flex; }\n\n.form-purchase .purchase-select {\n display: flex;\n align-items: center;\n background: transparent;\n border: none;\n font-size: 1.3rem;\n line-height: 1.3rem;\n margin: 1.5rem 0 0;\n padding: 0;\n width: 100%;\n max-width: 15rem;\n height: 1.3rem; }\n\n.form-purchase .purchase-select .arrow {\n margin-left: 1rem;\n width: 0.8rem;\n height: 0.8rem; }\n\n.form-purchase .purchase-select .arrow.down {\n -webkit-mask: url('arrow-down.svg') no-repeat center;\n mask: url('arrow-down.svg') no-repeat center; }\n\n.form-purchase .purchase-select .arrow.up {\n -webkit-mask: url('arrow-up.svg') no-repeat center;\n mask: url('arrow-up.svg') no-repeat center; }\n\n.form-purchase .additional-details {\n display: flex;\n margin-top: 1.5rem;\n padding: 0.5rem 0 2rem; }\n\n.form-purchase .additional-details > div {\n flex-basis: 25%; }\n\n.form-purchase .additional-details > div:first-child {\n padding-left: 1.5rem;\n padding-right: 1rem; }\n\n.form-purchase .additional-details > div:last-child {\n padding-left: 1rem;\n padding-right: 1.5rem; }\n\n.form-purchase .purchase-states {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 1.2rem;\n line-height: 2.9rem; }\n\n.form-purchase .send-button {\n margin: 2.4rem 0;\n width: 100%;\n max-width: 15rem; }\n\n.form-purchase .purchase-buttons {\n display: flex;\n justify-content: flex-start;\n margin: 2.4rem -0.5rem; }\n\n.form-purchase .purchase-buttons button {\n flex: 0 1 33%;\n margin: 0 0.5rem; }\n\n.form-purchase .nullify-block-row {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center; }\n\n.form-purchase .nullify-block-row .nullify-block-buttons {\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 1rem 0;\n width: 100%; }\n\n.form-purchase .nullify-block-row .nullify-block-buttons button {\n flex: 0 1 25%;\n margin: 0 0.5rem; }\n\n.form-purchase .time-cancel-block-row {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center; }\n\n.form-purchase .time-cancel-block-row .time-cancel-block-question {\n margin-bottom: 1rem; }\n\n.form-purchase .time-cancel-block-row .input-block {\n width: 25%; }\n\n.form-purchase .time-cancel-block-row label {\n margin-bottom: 1rem; }\n\n.form-purchase .time-cancel-block-row .time-cancel-block-buttons {\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 1rem 0;\n width: 100%; }\n\n.form-purchase .time-cancel-block-row .time-cancel-block-buttons button {\n flex: 0 1 25%;\n margin: 0 0.5rem; }\n\n.progress-bar-container {\n position: absolute;\n bottom: 0;\n left: 0;\n padding: 0 3rem;\n width: 100%;\n height: 3rem; }\n\n.progress-bar-container .progress-bar {\n position: absolute;\n top: -0.7rem;\n left: 0;\n margin: 0 3rem;\n width: calc(100% - 6rem);\n height: 0.7rem; }\n\n.progress-bar-container .progress-bar .progress-bar-full {\n height: 0.7rem; }\n\n.progress-bar-container .progress-labels {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.2rem;\n height: 100%; }\n\n.progress-bar-container .progress-time {\n position: absolute;\n top: -3rem;\n left: 50%;\n transform: translateX(-50%);\n font-size: 1.2rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHVyY2hhc2UvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxccHVyY2hhc2VcXHB1cmNoYXNlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXLEVBQUE7O0FBR2I7RUFDRSxjQUFjO0VBQ2QsdUJBQXVCO0VBQ3ZCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLGNBQWM7RUFDZCxzQkFBc0I7RUFDdEIsZUFBZTtFQUNmLG1CQUFtQixFQUFBOztBQUpyQjtJQU9JLGFBQWEsRUFBQTs7QUFQakI7TUFVTSxlQUFlLEVBQUE7O0FBVnJCO1FBYVEsb0JBQW9CLEVBQUE7O0FBYjVCO1FBaUJRLG1CQUFtQixFQUFBOztBQWpCM0I7UUFxQlEsYUFBYSxFQUFBOztBQXJCckI7SUEyQkksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGNBQWMsRUFBQTs7QUFyQ2xCO01Bd0NNLGlCQUFpQjtNQUNqQixhQUFhO01BQ2IsY0FBYyxFQUFBOztBQTFDcEI7UUE2Q1Esb0RBQTREO2dCQUE1RCw0Q0FBNEQsRUFBQTs7QUE3Q3BFO1FBaURRLGtEQUEwRDtnQkFBMUQsMENBQTBELEVBQUE7O0FBakRsRTtJQXVESSxhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLHNCQUFzQixFQUFBOztBQXpEMUI7TUE0RE0sZUFBZSxFQUFBOztBQTVEckI7UUErRFEsb0JBQW9CO1FBQ3BCLG1CQUFtQixFQUFBOztBQWhFM0I7UUFvRVEsa0JBQWtCO1FBQ2xCLHFCQUFxQixFQUFBOztBQXJFN0I7SUEyRUksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLGlCQUFpQjtJQUNqQixtQkFBbUIsRUFBQTs7QUFoRnZCO0lBb0ZJLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gsZ0JBQWdCLEVBQUE7O0FBdEZwQjtJQTBGSSxhQUFhO0lBQ2IsMkJBQTJCO0lBQzNCLHNCQUFzQixFQUFBOztBQTVGMUI7TUErRk0sYUFBYTtNQUNiLGdCQUFnQixFQUFBOztBQWhHdEI7SUFxR0ksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsdUJBQXVCLEVBQUE7O0FBeEczQjtNQTJHTSxhQUFhO01BQ2IsbUJBQW1CO01BQ25CLHVCQUF1QjtNQUN2QixjQUFjO01BQ2QsV0FBVyxFQUFBOztBQS9HakI7UUFrSFEsYUFBYTtRQUNiLGdCQUFnQixFQUFBOztBQW5IeEI7SUF5SEksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsdUJBQXVCLEVBQUE7O0FBNUgzQjtNQStITSxtQkFBbUIsRUFBQTs7QUEvSHpCO01BbUlNLFVBQVUsRUFBQTs7QUFuSWhCO01BdUlNLG1CQUFtQixFQUFBOztBQXZJekI7TUEySU0sYUFBYTtNQUNiLG1CQUFtQjtNQUNuQix1QkFBdUI7TUFDdkIsY0FBYztNQUNkLFdBQVcsRUFBQTs7QUEvSWpCO1FBa0pRLGFBQWE7UUFDYixnQkFBZ0IsRUFBQTs7QUFPeEI7RUFDRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULE9BQU87RUFDUCxlQUFlO0VBQ2YsV0FBVztFQUNYLFlBQVksRUFBQTs7QUFOZDtJQVNJLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osT0FBTztJQUNQLGNBQWM7SUFDZCx3QkFBd0I7SUFDeEIsY0FBYyxFQUFBOztBQWRsQjtNQWlCTSxjQUFjLEVBQUE7O0FBakJwQjtJQXNCSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixpQkFBaUI7SUFDakIsWUFBWSxFQUFBOztBQTFCaEI7SUE4Qkksa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixTQUFTO0lBQ1QsMkJBQTJCO0lBQzNCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvcHVyY2hhc2UvcHVyY2hhc2UuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uaGVhZCB7XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgbWFyZ2luOiAtM3JlbSAtM3JlbSAwO1xyXG59XHJcblxyXG4uZm9ybS1wdXJjaGFzZSB7XHJcbiAgZmxleDogMSAxIGF1dG87XHJcbiAgbWFyZ2luOiAxLjVyZW0gLTNyZW0gMDtcclxuICBwYWRkaW5nOiAwIDNyZW07XHJcbiAgb3ZlcmZsb3cteTogb3ZlcmxheTtcclxuXHJcbiAgLmlucHV0LWJsb2Nrcy1yb3cge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAuaW5wdXQtYmxvY2sge1xyXG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XHJcblxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2hlY2tib3gtYmxvY2sge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wdXJjaGFzZS1zZWxlY3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcclxuICAgIG1hcmdpbjogMS41cmVtIDAgMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICBoZWlnaHQ6IDEuM3JlbTtcclxuXHJcbiAgICAuYXJyb3cge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgICAgd2lkdGg6IDAuOHJlbTtcclxuICAgICAgaGVpZ2h0OiAwLjhyZW07XHJcblxyXG4gICAgICAmLmRvd24ge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1kb3duLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi51cCB7XHJcbiAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Fycm93LXVwLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZGl0aW9uYWwtZGV0YWlscyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xyXG4gICAgcGFkZGluZzogMC41cmVtIDAgMnJlbTtcclxuXHJcbiAgICA+IGRpdiB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IDI1JTtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnB1cmNoYXNlLXN0YXRlcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuOXJlbTtcclxuICB9XHJcblxyXG4gIC5zZW5kLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW46IDIuNHJlbSAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDE1cmVtO1xyXG4gIH1cclxuXHJcbiAgLnB1cmNoYXNlLWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgIG1hcmdpbjogMi40cmVtIC0wLjVyZW07XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgZmxleDogMCAxIDMzJTtcclxuICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5udWxsaWZ5LWJsb2NrLXJvdyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICAubnVsbGlmeS1ibG9jay1idXR0b25zIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbjogMXJlbSAwO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgZmxleDogMCAxIDI1JTtcclxuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudGltZS1jYW5jZWwtYmxvY2stcm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuICAgIC50aW1lLWNhbmNlbC1ibG9jay1xdWVzdGlvbiB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0LWJsb2NrIHtcclxuICAgICAgd2lkdGg6IDI1JTtcclxuICAgIH1cclxuXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnRpbWUtY2FuY2VsLWJsb2NrLWJ1dHRvbnMge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgbWFyZ2luOiAxcmVtIDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgYnV0dG9uIHtcclxuICAgICAgICBmbGV4OiAwIDEgMjUlO1xyXG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4ucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHBhZGRpbmc6IDAgM3JlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDNyZW07XHJcblxyXG4gIC5wcm9ncmVzcy1iYXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAtMC43cmVtO1xyXG4gICAgbGVmdDogMDtcclxuICAgIG1hcmdpbjogMCAzcmVtO1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDZyZW0pO1xyXG4gICAgaGVpZ2h0OiAwLjdyZW07XHJcblxyXG4gICAgLnByb2dyZXNzLWJhci1mdWxsIHtcclxuICAgICAgaGVpZ2h0OiAwLjdyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucHJvZ3Jlc3MtbGFiZWxzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcblxyXG4gIC5wcm9ncmVzcy10aW1lIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogLTNyZW07XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICB9XHJcbn1cclxuIl19 */" - -/***/ }), - -/***/ "./src/app/purchase/purchase.component.ts": -/*!************************************************!*\ - !*** ./src/app/purchase/purchase.component.ts ***! - \************************************************/ -/*! exports provided: PurchaseComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PurchaseComponent", function() { return PurchaseComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm5/common.js"); -/* harmony import */ var _helpers_pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../_helpers/pipes/int-to-money.pipe */ "./src/app/_helpers/pipes/int-to-money.pipe.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - - -var PurchaseComponent = /** @class */ (function () { - function PurchaseComponent(route, backend, variablesService, modalService, ngZone, location, intToMoneyPipe) { - var _this = this; - this.route = route; - this.backend = backend; - this.variablesService = variablesService; - this.modalService = modalService; - this.ngZone = ngZone; - this.location = location; - this.intToMoneyPipe = intToMoneyPipe; - this.isOpen = false; - this.localAliases = []; - this.newPurchase = false; - this.purchaseForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormGroup"]({ - description: new _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required), - seller: new _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormControl"]('', [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required, function (g) { - if (g.value === _this.variablesService.currentWallet.address) { - return { 'address_same': true }; - } - return null; - }, function (g) { - _this.localAliases = []; - if (g.value) { - if (g.value.indexOf('@') !== 0) { - _this.isOpen = false; - _this.backend.validateAddress(g.value, function (valid_status) { - _this.ngZone.run(function () { - if (valid_status === false) { - g.setErrors(Object.assign({ 'address_not_valid': true }, g.errors)); - } - else { - if (g.hasError('address_not_valid')) { - delete g.errors['address_not_valid']; - if (Object.keys(g.errors).length === 0) { - g.setErrors(null); - } - } - } - }); - }); - return (g.hasError('address_not_valid')) ? { 'address_not_valid': true } : null; - } - else { - _this.isOpen = true; - _this.localAliases = _this.variablesService.aliases.filter(function (item) { - return item.name.indexOf(g.value) > -1; - }); - if (!(/^@?[a-z0-9\.\-]{6,25}$/.test(g.value))) { - g.setErrors(Object.assign({ 'alias_not_valid': true }, g.errors)); - } - else { - _this.backend.getAliasByName(g.value.replace('@', ''), function (alias_status, alias_data) { - _this.ngZone.run(function () { - if (alias_status) { - if (alias_data.address === _this.variablesService.currentWallet.address) { - g.setErrors(Object.assign({ 'address_same': true }, g.errors)); - } - if (g.hasError('alias_not_valid')) { - delete g.errors['alias_not_valid']; - if (Object.keys(g.errors).length === 0) { - g.setErrors(null); - } - } - } - else { - g.setErrors(Object.assign({ 'alias_not_valid': true }, g.errors)); - } - }); - }); - } - return (g.hasError('alias_not_valid')) ? { 'alias_not_valid': true } : null; - } - } - return null; - }]), - amount: new _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormControl"](null, [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required, function (g) { - if (parseFloat(g.value) === 0) { - return { 'amount_zero': true }; - } - return null; - }]), - yourDeposit: new _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormControl"](null, _angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required), - sellerDeposit: new _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormControl"](null, _angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required), - sameAmount: new _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormControl"]({ value: false, disabled: false }), - comment: new _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormControl"](''), - fee: new _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormControl"](this.variablesService.default_fee), - time: new _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormControl"]({ value: 12, disabled: false }), - timeCancel: new _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormControl"]({ value: 12, disabled: false }), - payment: new _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormControl"]('') - }); - this.additionalOptions = false; - this.currentContract = null; - this.showTimeSelect = false; - this.showNullify = false; - } - PurchaseComponent.prototype.checkAndChangeHistory = function () { - var _this = this; - if (this.currentContract.state === 201) { - this.historyBlock = this.variablesService.currentWallet.history.find(function (item) { return item.tx_type === 8 && item.contract[0].contract_id === _this.currentContract.contract_id && item.contract[0].is_a === _this.currentContract.is_a; }); - } - else if (this.currentContract.state === 601) { - this.historyBlock = this.variablesService.currentWallet.history.find(function (item) { return item.tx_type === 12 && item.contract[0].contract_id === _this.currentContract.contract_id && item.contract[0].is_a === _this.currentContract.is_a; }); - } - }; - PurchaseComponent.prototype.addressMouseDown = function (e) { - if (e['button'] === 0 && this.purchaseForm.get('seller').value && this.purchaseForm.get('seller').value.indexOf('@') === 0) { - this.isOpen = true; - } - }; - PurchaseComponent.prototype.setAlias = function (alias) { - this.purchaseForm.get('seller').setValue(alias); - }; - PurchaseComponent.prototype.onClick = function (targetElement) { - if (targetElement.id !== 'purchase-seller' && this.isOpen) { - this.isOpen = false; - } - }; - PurchaseComponent.prototype.ngOnInit = function () { - var _this = this; - this.parentRouting = this.route.parent.params.subscribe(function (params) { - _this.currentWalletId = params['id']; - }); - this.subRouting = this.route.params.subscribe(function (params) { - if (params.hasOwnProperty('id')) { - _this.currentContract = _this.variablesService.currentWallet.getContract(params['id']); - _this.purchaseForm.controls['seller'].setValidators([]); - _this.purchaseForm.updateValueAndValidity(); - _this.purchaseForm.setValue({ - description: _this.currentContract.private_detailes.t, - seller: _this.currentContract.private_detailes.b_addr, - amount: _this.intToMoneyPipe.transform(_this.currentContract.private_detailes.to_pay), - yourDeposit: _this.intToMoneyPipe.transform(_this.currentContract.private_detailes.a_pledge), - sellerDeposit: _this.intToMoneyPipe.transform(_this.currentContract.private_detailes.b_pledge), - sameAmount: _this.currentContract.private_detailes.to_pay.isEqualTo(_this.currentContract.private_detailes.b_pledge), - comment: _this.currentContract.private_detailes.c, - fee: _this.variablesService.default_fee, - time: 12, - timeCancel: 12, - payment: _this.currentContract.payment_id - }); - _this.purchaseForm.get('sameAmount').disable(); - _this.newPurchase = false; - if (_this.currentContract.is_new) { - if (_this.currentContract.is_a && _this.currentContract.state === 2) { - _this.currentContract.state = 120; - } - if (_this.currentContract.state === 130 && _this.currentContract.cancel_expiration_time !== 0 && _this.currentContract.cancel_expiration_time < _this.variablesService.exp_med_ts) { - _this.currentContract.state = 2; - } - _this.variablesService.settings.viewedContracts = (_this.variablesService.settings.viewedContracts) ? _this.variablesService.settings.viewedContracts : []; - var findViewedCont = false; - for (var j = 0; j < _this.variablesService.settings.viewedContracts.length; j++) { - if (_this.variablesService.settings.viewedContracts[j].contract_id === _this.currentContract.contract_id && _this.variablesService.settings.viewedContracts[j].is_a === _this.currentContract.is_a) { - _this.variablesService.settings.viewedContracts[j].state = _this.currentContract.state; - findViewedCont = true; - break; - } - } - if (!findViewedCont) { - _this.variablesService.settings.viewedContracts.push({ - contract_id: _this.currentContract.contract_id, - is_a: _this.currentContract.is_a, - state: _this.currentContract.state - }); - } - _this.currentContract.is_new = false; - setTimeout(function () { - _this.variablesService.currentWallet.recountNewContracts(); - }, 0); - } - _this.checkAndChangeHistory(); - } - else { - _this.newPurchase = true; - } - }); - this.heightAppEvent = this.variablesService.getHeightAppEvent.subscribe(function (newHeight) { - if (_this.currentContract && _this.currentContract.state === 201 && _this.currentContract.height !== 0 && (newHeight - _this.currentContract.height) >= 10) { - _this.currentContract.state = 2; - _this.currentContract.is_new = true; - _this.variablesService.currentWallet.recountNewContracts(); - } - else if (_this.currentContract && _this.currentContract.state === 601 && _this.currentContract.height !== 0 && (newHeight - _this.currentContract.height) >= 10) { - _this.currentContract.state = 6; - _this.currentContract.is_new = true; - _this.variablesService.currentWallet.recountNewContracts(); - } - }); - }; - PurchaseComponent.prototype.toggleOptions = function () { - this.additionalOptions = !this.additionalOptions; - }; - PurchaseComponent.prototype.getProgressBarWidth = function () { - var progress = '0'; - if (!this.newPurchase) { - if (this.currentContract) { - if (this.currentContract.state === 1) { - progress = '10%'; - } - if (this.currentContract.state === 201) { - progress = '25%'; - } - if ([120, 2].indexOf(this.currentContract.state) !== -1) { - progress = '50%'; - } - if ([5, 601].indexOf(this.currentContract.state) !== -1) { - progress = '75%'; - } - if ([110, 130, 140, 3, 4, 6].indexOf(this.currentContract.state) !== -1) { - progress = '100%'; - } - } - } - return progress; - }; - PurchaseComponent.prototype.sameAmountChange = function () { - if (this.purchaseForm.get('sameAmount').value) { - this.purchaseForm.get('sellerDeposit').clearValidators(); - this.purchaseForm.get('sellerDeposit').updateValueAndValidity(); - } - else { - this.purchaseForm.get('sellerDeposit').setValidators([_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required]); - this.purchaseForm.get('sellerDeposit').updateValueAndValidity(); - } - }; - PurchaseComponent.prototype.createPurchase = function () { - var _this = this; - if (this.purchaseForm.valid) { - var sellerDeposit_1 = this.purchaseForm.get('sameAmount').value ? this.purchaseForm.get('amount').value : this.purchaseForm.get('sellerDeposit').value; - if (this.purchaseForm.get('seller').value.indexOf('@') !== 0) { - this.backend.createProposal(this.variablesService.currentWallet.wallet_id, this.purchaseForm.get('description').value, this.purchaseForm.get('comment').value, this.variablesService.currentWallet.address, this.purchaseForm.get('seller').value, this.purchaseForm.get('amount').value, this.purchaseForm.get('yourDeposit').value, sellerDeposit_1, this.purchaseForm.get('time').value, this.purchaseForm.get('payment').value, function (create_status) { - if (create_status) { - _this.back(); - } - }); - } - else { - this.backend.getAliasByName(this.purchaseForm.get('seller').value.replace('@', ''), function (alias_status, alias_data) { - _this.ngZone.run(function () { - if (alias_status === false) { - _this.ngZone.run(function () { - _this.purchaseForm.get('seller').setErrors({ 'alias_not_valid': true }); - }); - } - else { - _this.backend.createProposal(_this.variablesService.currentWallet.wallet_id, _this.purchaseForm.get('description').value, _this.purchaseForm.get('comment').value, _this.variablesService.currentWallet.address, alias_data.address, _this.purchaseForm.get('amount').value, _this.purchaseForm.get('yourDeposit').value, sellerDeposit_1, _this.purchaseForm.get('time').value, _this.purchaseForm.get('payment').value, function (create_status) { - if (create_status) { - _this.back(); - } - }); - } - }); - }); - } - } - }; - PurchaseComponent.prototype.back = function () { - this.location.back(); - }; - PurchaseComponent.prototype.acceptState = function () { - var _this = this; - this.backend.acceptProposal(this.currentWalletId, this.currentContract.contract_id, function (accept_status) { - if (accept_status) { - _this.modalService.prepareModal('info', 'PURCHASE.ACCEPT_STATE_WAIT_BIG'); - _this.back(); - } - }); - }; - PurchaseComponent.prototype.ignoredContract = function () { - this.variablesService.settings.notViewedContracts = (this.variablesService.settings.notViewedContracts) ? this.variablesService.settings.notViewedContracts : []; - var findViewedCont = false; - for (var j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) { - if (this.variablesService.settings.notViewedContracts[j].contract_id === this.currentContract.contract_id && this.variablesService.settings.notViewedContracts[j].is_a === this.currentContract.is_a) { - this.variablesService.settings.notViewedContracts[j].state = 110; - this.variablesService.settings.notViewedContracts[j].time = this.currentContract.expiration_time; - findViewedCont = true; - break; - } - } - if (!findViewedCont) { - this.variablesService.settings.notViewedContracts.push({ - contract_id: this.currentContract.contract_id, - is_a: this.currentContract.is_a, - state: 110, - time: this.currentContract.expiration_time - }); - } - this.currentContract.is_new = true; - this.currentContract.state = 110; - this.currentContract.time = this.currentContract.expiration_time; - this.variablesService.currentWallet.recountNewContracts(); - this.modalService.prepareModal('info', 'PURCHASE.IGNORED_ACCEPT'); - this.back(); - }; - PurchaseComponent.prototype.productNotGot = function () { - var _this = this; - this.backend.releaseProposal(this.currentWalletId, this.currentContract.contract_id, 'REL_B', function (release_status) { - if (release_status) { - _this.modalService.prepareModal('info', 'PURCHASE.BURN_PROPOSAL'); - _this.back(); - } - }); - }; - PurchaseComponent.prototype.dealsDetailsFinish = function () { - var _this = this; - this.backend.releaseProposal(this.currentWalletId, this.currentContract.contract_id, 'REL_N', function (release_status) { - if (release_status) { - _this.modalService.prepareModal('success', 'PURCHASE.SUCCESS_FINISH_PROPOSAL'); - _this.back(); - } - }); - }; - PurchaseComponent.prototype.dealsDetailsCancel = function () { - var _this = this; - this.backend.requestCancelContract(this.currentWalletId, this.currentContract.contract_id, this.purchaseForm.get('timeCancel').value, function (cancel_status) { - if (cancel_status) { - _this.modalService.prepareModal('info', 'PURCHASE.SEND_CANCEL_PROPOSAL'); - _this.back(); - } - }); - }; - PurchaseComponent.prototype.dealsDetailsDontCanceling = function () { - this.variablesService.settings.notViewedContracts = this.variablesService.settings.notViewedContracts ? this.variablesService.settings.notViewedContracts : []; - var findViewedCont = false; - for (var j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) { - if (this.variablesService.settings.notViewedContracts[j].contract_id === this.currentContract.contract_id && this.variablesService.settings.notViewedContracts[j].is_a === this.currentContract.is_a) { - this.variablesService.settings.notViewedContracts[j].state = 130; - this.variablesService.settings.notViewedContracts[j].time = this.currentContract.cancel_expiration_time; - findViewedCont = true; - break; - } - } - if (!findViewedCont) { - this.variablesService.settings.notViewedContracts.push({ - contract_id: this.currentContract.contract_id, - is_a: this.currentContract.is_a, - state: 130, - time: this.currentContract.cancel_expiration_time - }); - } - this.currentContract.is_new = true; - this.currentContract.state = 130; - this.currentContract.time = this.currentContract.cancel_expiration_time; - this.variablesService.currentWallet.recountNewContracts(); - this.modalService.prepareModal('info', 'PURCHASE.IGNORED_CANCEL'); - this.back(); - }; - PurchaseComponent.prototype.dealsDetailsSellerCancel = function () { - var _this = this; - this.backend.acceptCancelContract(this.currentWalletId, this.currentContract.contract_id, function (accept_status) { - if (accept_status) { - _this.modalService.prepareModal('info', 'PURCHASE.DEALS_CANCELED_WAIT'); - _this.back(); - } - }); - }; - PurchaseComponent.prototype.ngOnDestroy = function () { - this.parentRouting.unsubscribe(); - this.subRouting.unsubscribe(); - this.heightAppEvent.unsubscribe(); - }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["HostListener"])('document:click', ['$event.target']), - __metadata("design:type", Function), - __metadata("design:paramtypes", [Object]), - __metadata("design:returntype", void 0) - ], PurchaseComponent.prototype, "onClick", null); - PurchaseComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-purchase', - template: __webpack_require__(/*! ./purchase.component.html */ "./src/app/purchase/purchase.component.html"), - styles: [__webpack_require__(/*! ./purchase.component.scss */ "./src/app/purchase/purchase.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_1__["ActivatedRoute"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__["VariablesService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__["ModalService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], - _angular_common__WEBPACK_IMPORTED_MODULE_6__["Location"], - _helpers_pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_7__["IntToMoneyPipe"]]) - ], PurchaseComponent); - return PurchaseComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/receive/receive.component.html": -/*!************************************************!*\ - !*** ./src/app/receive/receive.component.html ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n \"qr-code\"\r\n
    \r\n
    {{variablesService.currentWallet.address}}
    \r\n \r\n
    \r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/receive/receive.component.scss": -/*!************************************************!*\ - !*** ./src/app/receive/receive.component.scss ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n width: 100%; }\n\n.wrap-qr {\n display: flex;\n flex-direction: column;\n align-items: center; }\n\n.wrap-qr img {\n margin: 4rem 0; }\n\n.wrap-qr .wrap-address {\n display: flex;\n align-items: center;\n font-size: 1.4rem;\n line-height: 2.7rem; }\n\n.wrap-qr .wrap-address .btn-copy-address {\n margin-left: 1.2rem;\n width: 1.7rem;\n height: 1.7rem; }\n\n.wrap-qr .wrap-address .btn-copy-address.copy {\n -webkit-mask: url('copy.svg') no-repeat center;\n mask: url('copy.svg') no-repeat center; }\n\n.wrap-qr .wrap-address .btn-copy-address.copy:hover {\n opacity: 0.75; }\n\n.wrap-qr .wrap-address .btn-copy-address.copied {\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\n mask: url('complete-testwallet.svg') no-repeat center; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVjZWl2ZS9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxyZWNlaXZlXFxyZWNlaXZlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixtQkFBbUIsRUFBQTs7QUFIckI7SUFNSSxjQUFjLEVBQUE7O0FBTmxCO0lBVUksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsbUJBQW1CLEVBQUE7O0FBYnZCO01BZ0JNLG1CQUFtQjtNQUNuQixhQUFhO01BQ2IsY0FBYyxFQUFBOztBQWxCcEI7UUFxQlEsOENBQXVEO2dCQUF2RCxzQ0FBdUQsRUFBQTs7QUFyQi9EO1VBd0JVLGFBQWEsRUFBQTs7QUF4QnZCO1FBNkJRLDZEQUFzRTtnQkFBdEUscURBQXNFLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9yZWNlaXZlL3JlY2VpdmUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi53cmFwLXFyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgaW1nIHtcclxuICAgIG1hcmdpbjogNHJlbSAwO1xyXG4gIH1cclxuXHJcbiAgLndyYXAtYWRkcmVzcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuXHJcbiAgICAuYnRuLWNvcHktYWRkcmVzcyB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07XHJcbiAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgIGhlaWdodDogMS43cmVtO1xyXG5cclxuICAgICAgJi5jb3B5IHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2NvcHkuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgIG9wYWNpdHk6IDAuNzU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmNvcGllZCB7XHJcbiAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9jb21wbGV0ZS10ZXN0d2FsbGV0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */" - -/***/ }), - -/***/ "./src/app/receive/receive.component.ts": -/*!**********************************************!*\ - !*** ./src/app/receive/receive.component.ts ***! - \**********************************************/ -/*! exports provided: ReceiveComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReceiveComponent", function() { return ReceiveComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var qrcode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! qrcode */ "./node_modules/qrcode/lib/browser.js"); -/* harmony import */ var qrcode__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(qrcode__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _shared_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_shared/constants */ "./src/app/_shared/constants.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - -var ReceiveComponent = /** @class */ (function () { - function ReceiveComponent(route, backend, variablesService) { - this.route = route; - this.backend = backend; - this.variablesService = variablesService; - this.copyAnimation = false; - } - ReceiveComponent.prototype.ngOnInit = function () { - var _this = this; - this.parentRouting = this.route.parent.params.subscribe(function () { - qrcode__WEBPACK_IMPORTED_MODULE_1___default.a.toDataURL(_this.variablesService.currentWallet.address, { - width: 106 * _shared_constants__WEBPACK_IMPORTED_MODULE_5__["RCV_ADDR_QR_SCALE"], - height: 106 * _shared_constants__WEBPACK_IMPORTED_MODULE_5__["RCV_ADDR_QR_SCALE"] - }).then(function (url) { - _this.qrImageSrc = url; - }).catch(function (err) { - console.error(err); - }); - }); - }; - ReceiveComponent.prototype.copyAddress = function () { - var _this = this; - this.backend.setClipboard(this.variablesService.currentWallet.address); - this.copyAnimation = true; - this.copyAnimationTimeout = window.setTimeout(function () { - _this.copyAnimation = false; - }, 2000); - }; - ReceiveComponent.prototype.ngOnDestroy = function () { - this.parentRouting.unsubscribe(); - clearTimeout(this.copyAnimationTimeout); - }; - ReceiveComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-receive', - template: __webpack_require__(/*! ./receive.component.html */ "./src/app/receive/receive.component.html"), - styles: [__webpack_require__(/*! ./receive.component.scss */ "./src/app/receive/receive.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_4__["ActivatedRoute"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_3__["VariablesService"]]) - ], ReceiveComponent); - return ReceiveComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/restore-wallet/restore-wallet.component.html": -/*!**************************************************************!*\ - !*** ./src/app/restore-wallet/restore-wallet.component.html ***! - \**************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n\r\n
    \r\n
    \r\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\r\n {{ 'BREADCRUMBS.RESTORE_WALLET' | translate }}\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\r\n
    \r\n
    \r\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\r\n
    \r\n
    \r\n
    = variablesService.maxWalletNameLength\">\r\n {{ 'RESTORE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'RESTORE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'RESTORE_WALLET.FORM_ERRORS.KEY_REQUIRED' | translate }}\r\n
    \r\n
    \r\n {{ 'RESTORE_WALLET.FORM_ERRORS.KEY_NOT_VALID' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n {{ 'RESTORE_WALLET.FORM_ERRORS.INCORRECT_PASSWORD' | translate }}\r\n
    \r\n
    \r\n {{ 'RESTORE_WALLET.OK' | translate }}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n\r\n" - -/***/ }), - -/***/ "./src/app/restore-wallet/restore-wallet.component.scss": -/*!**************************************************************!*\ - !*** ./src/app/restore-wallet/restore-wallet.component.scss ***! - \**************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n position: relative; }\n\n.form-restore {\n margin: 2.4rem 0;\n width: 100%; }\n\n.form-restore .input-block.half-block {\n width: 50%; }\n\n.form-restore .wrap-buttons {\n display: flex;\n margin: 2.5rem -0.7rem;\n width: 50%; }\n\n.form-restore .wrap-buttons button {\n margin: 0 0.7rem; }\n\n.form-restore .wrap-buttons button.transparent-button {\n flex-basis: 50%; }\n\n.form-restore .wrap-buttons button.select-button {\n flex-basis: 60%; }\n\n.form-restore .wrap-buttons button.create-button {\n flex: 1 1 50%; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVzdG9yZS13YWxsZXQvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxccmVzdG9yZS13YWxsZXRcXHJlc3RvcmUtd2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVcsRUFBQTs7QUFGYjtJQU9NLFVBQVUsRUFBQTs7QUFQaEI7SUFZSSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLFVBQVUsRUFBQTs7QUFkZDtNQWlCTSxnQkFBZ0IsRUFBQTs7QUFqQnRCO1FBb0JRLGVBQWUsRUFBQTs7QUFwQnZCO1FBd0JRLGVBQWUsRUFBQTs7QUF4QnZCO1FBNEJRLGFBQWEsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3Jlc3RvcmUtd2FsbGV0L3Jlc3RvcmUtd2FsbGV0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmZvcm0tcmVzdG9yZSB7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgLmlucHV0LWJsb2NrIHtcclxuXHJcbiAgICAmLmhhbGYtYmxvY2sge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLndyYXAtYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luOiAyLjVyZW0gLTAuN3JlbTtcclxuICAgIHdpZHRoOiA1MCU7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgbWFyZ2luOiAwIDAuN3JlbTtcclxuXHJcbiAgICAgICYudHJhbnNwYXJlbnQtYnV0dG9uIHtcclxuICAgICAgICBmbGV4LWJhc2lzOiA1MCU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuc2VsZWN0LWJ1dHRvbiB7XHJcbiAgICAgICAgZmxleC1iYXNpczogNjAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmNyZWF0ZS1idXR0b24ge1xyXG4gICAgICAgIGZsZXg6IDEgMSA1MCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */" - -/***/ }), - -/***/ "./src/app/restore-wallet/restore-wallet.component.ts": -/*!************************************************************!*\ - !*** ./src/app/restore-wallet/restore-wallet.component.ts ***! - \************************************************************/ -/*! exports provided: RestoreWalletComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RestoreWalletComponent", function() { return RestoreWalletComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -/* harmony import */ var _helpers_models_wallet_model__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_helpers/models/wallet.model */ "./src/app/_helpers/models/wallet.model.ts"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -/* harmony import */ var rxjs_internal_Subject__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rxjs/internal/Subject */ "./node_modules/rxjs/internal/Subject.js"); -/* harmony import */ var rxjs_internal_Subject__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(rxjs_internal_Subject__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - - - - -var RestoreWalletComponent = /** @class */ (function () { - function RestoreWalletComponent(router, backend, variablesService, modalService, ngZone, translate) { - var _this = this; - this.router = router; - this.backend = backend; - this.variablesService = variablesService; - this.modalService = modalService; - this.ngZone = ngZone; - this.translate = translate; - this.restoreForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]({ - name: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', [ - _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required, - function (g) { - for (var i = 0; i < _this.variablesService.wallets.length; i++) { - if (g.value === _this.variablesService.wallets[i].name) { - return { duplicate: true }; - } - } - return null; - }, - ]), - key: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required), - password: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].pattern(this.variablesService.pattern)), - confirm: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"](''), - seedPassword: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].pattern(this.variablesService.pattern)), - }, function (g) { - return g.get('password').value === g.get('confirm').value - ? null - : { confirm_mismatch: true }; - }); - this.wallet = { - id: '', - }; - this.walletSaved = false; - this.walletSavedName = ''; - this.progressWidth = '9rem'; - this.seedPhraseInfo = null; - this.unsubscribeAll = new rxjs_internal_Subject__WEBPACK_IMPORTED_MODULE_8__["Subject"](); - } - RestoreWalletComponent.prototype.ngOnInit = function () { - this.checkValidSeedPhrasePassword(); - this.changeDetectionSeedPhrasePassword(); - }; - RestoreWalletComponent.prototype.ngOnDestroy = function () { - this.unsubscribeAll.next(true); - this.unsubscribeAll.complete(); - }; - RestoreWalletComponent.prototype.changeDetectionSeedPhrasePassword = function () { - var _this = this; - this.restoreForm.controls.seedPassword.valueChanges - .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["startWith"])(null), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["pairwise"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["takeUntil"])(this.unsubscribeAll)) - .subscribe(function () { - _this.checkValidSeedPhrasePassword(); - }); - this.restoreForm.controls.key.valueChanges - .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["startWith"])(null), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["pairwise"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["takeUntil"])(this.unsubscribeAll)) - .subscribe(function () { - _this.checkValidSeedPhrasePassword(); - }); - }; - RestoreWalletComponent.prototype.checkValidSeedPhrasePassword = function () { - var _this = this; - var seed_password = this.restoreForm.controls.seedPassword.value; - var seed_phrase = this.restoreForm.controls.key.value; - this.backend.getSeedPhraseInfo({ seed_phrase: seed_phrase, seed_password: seed_password }, function (status, data) { - _this.ngZone.run(function () { - _this.seedPhraseInfo = data; - }); - }); - }; - RestoreWalletComponent.prototype.createWallet = function () { - var _this = this; - this.ngZone.run(function () { - _this.progressWidth = '100%'; - _this.runWallet(); - }); - }; - RestoreWalletComponent.prototype.saveWallet = function () { - var _this = this; - if (this.restoreForm.valid && - this.restoreForm.get('name').value.length <= - this.variablesService.maxWalletNameLength) { - this.backend.isValidRestoreWalletText({ - seed_phrase: this.restoreForm.get('key').value, - seed_password: this.restoreForm.get('seedPassword').value, - }, function (valid_status, valid_data) { - if (valid_data !== 'TRUE') { - _this.ngZone.run(function () { - _this.restoreForm.get('key').setErrors({ key_not_valid: true }); - }); - } - else { - _this.backend.saveFileDialog(_this.translate.instant('RESTORE_WALLET.CHOOSE_PATH'), '*', _this.variablesService.settings.default_path, function (save_status, save_data) { - if (save_status) { - _this.variablesService.settings.default_path = save_data.path.substr(0, save_data.path.lastIndexOf('/')); - _this.walletSavedName = save_data.path.substr(save_data.path.lastIndexOf('/') + 1, save_data.path.length - 1); - _this.backend.restoreWallet(save_data.path, _this.restoreForm.get('password').value, _this.restoreForm.get('key').value, _this.restoreForm.get('seedPassword').value, function (restore_status, restore_data) { - if (restore_status) { - _this.wallet.id = restore_data.wallet_id; - _this.variablesService.opening_wallet = new _helpers_models_wallet_model__WEBPACK_IMPORTED_MODULE_6__["Wallet"](restore_data.wallet_id, _this.restoreForm.get('name').value, _this.restoreForm.get('password').value, restore_data['wi'].path, restore_data['wi'].address, restore_data['wi'].balance, restore_data['wi'].unlocked_balance, restore_data['wi'].mined_total, restore_data['wi'].tracking_hey); - _this.variablesService.opening_wallet.is_auditable = - restore_data['wi'].is_auditable; - _this.variablesService.opening_wallet.is_watch_only = - restore_data['wi'].is_watch_only; - _this.variablesService.opening_wallet.currentPage = 1; - _this.variablesService.opening_wallet.alias = _this.backend.getWalletAlias(_this.variablesService.opening_wallet.address); - _this.variablesService.opening_wallet.pages = new Array(1).fill(1); - _this.variablesService.opening_wallet.totalPages = 1; - _this.variablesService.opening_wallet.currentPage = 1; - _this.variablesService.opening_wallet.total_history_item = 0; - _this.variablesService.opening_wallet.restore = true; - if (restore_data.recent_history && - restore_data.recent_history.history) { - _this.variablesService.opening_wallet.totalPages = Math.ceil(restore_data.recent_history.total_history_items / - _this.variablesService.count); - _this.variablesService.opening_wallet.totalPages > - _this.variablesService.maxPages - ? (_this.variablesService.opening_wallet.pages = new Array(5) - .fill(1) - .map(function (value, index) { return value + index; })) - : (_this.variablesService.opening_wallet.pages = new Array(_this.variablesService.opening_wallet.totalPages) - .fill(1) - .map(function (value, index) { return value + index; })); - _this.variablesService.opening_wallet.prepareHistory(restore_data.recent_history.history); - } - _this.backend.getContracts(_this.variablesService.opening_wallet.wallet_id, function (contracts_status, contracts_data) { - if (contracts_status && - contracts_data.hasOwnProperty('contracts')) { - _this.ngZone.run(function () { - _this.variablesService.opening_wallet.prepareContractsAfterOpen(contracts_data.contracts, _this.variablesService.exp_med_ts, _this.variablesService.height_app, _this.variablesService.settings - .viewedContracts, _this.variablesService.settings - .notViewedContracts); - }); - } - }); - _this.ngZone.run(function () { - _this.walletSaved = true; - _this.progressWidth = '50%'; - }); - } - else { - _this.modalService.prepareModal('error', 'RESTORE_WALLET.NOT_CORRECT_FILE_OR_PASSWORD'); - } - }); - } - }); - } - }); - } - }; - RestoreWalletComponent.prototype.runWallet = function () { - var _this = this; - // add flag when wallet was restored form seed - this.variablesService.after_sync_request[this.wallet.id] = true; - var exists = false; - this.variablesService.wallets.forEach(function (wallet) { - if (wallet.address === _this.variablesService.opening_wallet.address) { - exists = true; - } - }); - if (!exists) { - this.backend.runWallet(this.wallet.id, function (run_status, run_data) { - if (run_status) { - _this.variablesService.wallets.push(_this.variablesService.opening_wallet); - if (_this.variablesService.appPass) { - _this.backend.storeSecureAppData(); - } - _this.ngZone.run(function () { - _this.router.navigate(['/wallet/' + _this.wallet.id]); - }); - } - else { - console.log(run_data['error_code']); - } - }); - } - else { - this.variablesService.opening_wallet = null; - this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN'); - this.backend.closeWallet(this.wallet.id, function () { - _this.ngZone.run(function () { - _this.router.navigate(['/']); - }); - }); - } - }; - RestoreWalletComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-restore-wallet', - template: __webpack_require__(/*! ./restore-wallet.component.html */ "./src/app/restore-wallet/restore-wallet.component.html"), - styles: [__webpack_require__(/*! ./restore-wallet.component.scss */ "./src/app/restore-wallet/restore-wallet.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__["VariablesService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__["ModalService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], - _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__["TranslateService"]]) - ], RestoreWalletComponent); - return RestoreWalletComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/seed-phrase/seed-phrase.component.html": -/*!********************************************************!*\ - !*** ./src/app/seed-phrase/seed-phrase.component.html ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n \r\n
    \r\n
    \r\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\r\n {{ 'BREADCRUMBS.SAVE_PHRASE' | translate }}\r\n
    \r\n \r\n
    \r\n \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\r\n
    \r\n
    \r\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\r\n
    \r\n
    \r\n
    = variablesService.maxWalletNameLength\">\r\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\r\n \r\n\r\n \r\n\r\n
    {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n
    \r\n
    \r\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\r\n

    \r\n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }}\r\n \r\n 0\">{{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }}\r\n \r\n

    \r\n
    \r\n
    \r\n \r\n
    = 1 && (index + 1) <= 7 || (index + 1) >= 15 && (index + 1) <= 21\">\r\n {{(index + 1) + '. ' + word}}
    \r\n
    \r\n
    \r\n
    0\">\r\n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n" - -/***/ }), - -/***/ "./src/app/seed-phrase/seed-phrase.component.scss": -/*!********************************************************!*\ - !*** ./src/app/seed-phrase/seed-phrase.component.scss ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n position: relative; }\n\n.content {\n padding: 3.2rem 3rem 3rem; }\n\n.scrolled-content, .content {\n height: 100%;\n overflow-y: auto; }\n\n.mt-2 {\n margin-top: 2rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VlZC1waHJhc2UvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcc2VlZC1waHJhc2VcXHNlZWQtcGhyYXNlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UseUJBQXlCLEVBQUE7O0FBRTNCO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQixFQUFBOztBQUdsQjtFQUNFLGdCQUFnQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2VlZC1waHJhc2Uvc2VlZC1waHJhc2UuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uY29udGVudCB7XHJcbiAgcGFkZGluZzogMy4ycmVtIDNyZW0gM3JlbTtcclxufVxyXG4uc2Nyb2xsZWQtY29udGVudCwgLmNvbnRlbnQge1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG59XHJcblxyXG4ubXQtMiB7XHJcbiAgbWFyZ2luLXRvcDogMnJlbTtcclxufVxyXG5cclxuIl19 */" - -/***/ }), - -/***/ "./src/app/seed-phrase/seed-phrase.component.ts": -/*!******************************************************!*\ - !*** ./src/app/seed-phrase/seed-phrase.component.ts ***! - \******************************************************/ -/*! exports provided: SeedPhraseComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SeedPhraseComponent", function() { return SeedPhraseComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm5/common.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - -var SeedPhraseComponent = /** @class */ (function () { - function SeedPhraseComponent(route, router, location, backend, variablesService, modalService, ngZone) { - var _this = this; - this.route = route; - this.router = router; - this.location = location; - this.backend = backend; - this.variablesService = variablesService; - this.modalService = modalService; - this.ngZone = ngZone; - this.seedPhrase = ''; - this.showSeed = false; - this.seedPhraseCopied = false; - this.progressWidth = '66%'; - this.detailsForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormGroup"]({ - name: new _angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormControl"]('', [ - _angular_forms__WEBPACK_IMPORTED_MODULE_6__["Validators"].required, - function (g) { - for (var i = 0; i < _this.variablesService.wallets.length; i++) { - if (g.value === _this.variablesService.wallets[i].name) { - if (_this.variablesService.wallets[i].wallet_id === - _this.variablesService.currentWallet.wallet_id) { - return { same: true }; - } - else { - return { duplicate: true }; - } - } - } - return null; - }, - ]), - path: new _angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormControl"](''), - }); - this.seedPhraseForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormGroup"]({ - password: new _angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_6__["Validators"].pattern(this.variablesService.pattern)), - confirmPassword: new _angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_6__["Validators"].pattern(this.variablesService.pattern)), - }, { validators: this.checkPasswords }); - } - SeedPhraseComponent.prototype.checkPasswords = function (group) { - var pass = group.controls.password.value; - var confirmPass = group.controls.confirmPassword.value; - return pass === confirmPass ? null : { notSame: true }; - }; - SeedPhraseComponent.prototype.ngOnInit = function () { - this.showSeed = false; - this.getWalletId(); - this.setWalletInfoNamePath(); - }; - SeedPhraseComponent.prototype.setWalletInfoNamePath = function () { - this.detailsForm - .get('name') - .setValue(this.variablesService.opening_wallet.name); - this.detailsForm - .get('path') - .setValue(this.variablesService.opening_wallet.path); - }; - SeedPhraseComponent.prototype.getWalletId = function () { - var _this = this; - this.queryRouting = this.route.queryParams.subscribe(function (params) { - if (params.wallet_id) { - _this.wallet_id = params.wallet_id; - } - }); - }; - SeedPhraseComponent.prototype.runWallet = function () { - var _this = this; - var exists = false; - this.variablesService.wallets.forEach(function (wallet) { - if (wallet.address === _this.variablesService.opening_wallet.address) { - exists = true; - } - }); - if (!exists) { - this.backend.runWallet(this.wallet_id, function (run_status, run_data) { - if (run_status) { - _this.variablesService.wallets.push(_this.variablesService.opening_wallet); - if (_this.variablesService.appPass) { - _this.backend.storeSecureAppData(); - } - _this.ngZone.run(function () { - _this.router.navigate(['/wallet/' + _this.wallet_id]); - }); - } - else { - console.log(run_data['error_code']); - } - }); - } - else { - this.variablesService.opening_wallet = null; - this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN'); - this.backend.closeWallet(this.wallet_id, function () { - _this.ngZone.run(function () { - _this.router.navigate(['/']); - }); - }); - } - }; - SeedPhraseComponent.prototype.copySeedPhrase = function () { - var _this = this; - this.backend.setClipboard(this.seedPhrase, function () { - _this.ngZone.run(function () { - _this.seedPhraseCopied = true; - }); - }); - }; - SeedPhraseComponent.prototype.back = function () { - this.location.back(); - }; - SeedPhraseComponent.prototype.showSeedPhrase = function () { - this.showSeed = true; - this.progressWidth = '100%'; - }; - SeedPhraseComponent.prototype.onSubmitSeed = function () { - var _this = this; - if (this.seedPhraseForm.valid) { - this.showSeedPhrase(); - var wallet_id = this.wallet_id; - var seed_password = this.seedPhraseForm.controls.password.value; - this.backend.getSmartWalletInfo({ wallet_id: wallet_id, seed_password: seed_password }, function (status, data) { - if (data.hasOwnProperty('seed_phrase')) { - _this.ngZone.run(function () { - _this.seedPhrase = data['seed_phrase'].trim(); - }); - } - }); - } - }; - SeedPhraseComponent.prototype.ngOnDestroy = function () { - this.queryRouting.unsubscribe(); - }; - SeedPhraseComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-seed-phrase', - template: __webpack_require__(/*! ./seed-phrase.component.html */ "./src/app/seed-phrase/seed-phrase.component.html"), - styles: [__webpack_require__(/*! ./seed-phrase.component.scss */ "./src/app/seed-phrase/seed-phrase.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_3__["ActivatedRoute"], - _angular_router__WEBPACK_IMPORTED_MODULE_3__["Router"], - _angular_common__WEBPACK_IMPORTED_MODULE_1__["Location"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__["VariablesService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__["ModalService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]]) - ], SeedPhraseComponent); - return SeedPhraseComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/send-modal/send-modal.component.html": -/*!******************************************************!*\ - !*** ./src/app/send-modal/send-modal.component.html ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n
    \r\n {{ 'CONFIRM.TITLE' | translate }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {{ 'CONFIRM.MESSAGE.SEND' | translate }}
    \r\n
    {{ +form.get('amount').value }} {{variablesService.defaultCurrency}}
    \r\n
    \r\n
    \r\n
    {{ 'CONFIRM.MESSAGE.FROM' | translate }}
    \r\n
    {{ variablesService.currentWallet.address }}
    \r\n
    \r\n
    \r\n
    {{ 'CONFIRM.MESSAGE.TO' | translate }}
    \r\n
    {{ form.get('address').value }}
    \r\n
    \r\n \r\n
    \r\n
    {{ 'CONFIRM.MESSAGE.COMMENT' | translate }}
    \r\n
    {{ form.get('comment').value }}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'LOGIN.FORM_ERRORS.PASS_REQUIRED' | translate }}\r\n
    \r\n
    \r\n {{ 'LOGIN.FORM_ERRORS.MISMATCH' | translate }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/send-modal/send-modal.component.scss": -/*!******************************************************!*\ - !*** ./src/app/send-modal/send-modal.component.scss ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.25); }\n\n.modal {\n position: relative;\n display: flex;\n flex-direction: column;\n background-position: center;\n background-size: 200%;\n padding: 0.3rem 3rem 3rem 3rem;\n width: 64rem; }\n\n.modal .title {\n padding: 1.4rem 0;\n font-size: 1.8rem;\n line-height: 3rem; }\n\n.modal .content {\n display: flex;\n font-size: 1.4rem; }\n\n.modal .content .message-container {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n margin: 1.4rem 3rem 6.2rem 0; }\n\n.modal .content .message-container .message-block {\n display: flex;\n margin-bottom: 1rem; }\n\n.modal .content .message-container .message-block:first-child .message-label {\n line-height: 4rem; }\n\n.modal .content .message-container .message-block:first-child .message-text {\n line-height: 4rem; }\n\n.modal .content .message-container .message-block:last-child {\n margin-bottom: 0; }\n\n.modal .content .message-container .message-block .message-label {\n min-width: 6.7rem;\n line-height: 2rem; }\n\n.modal .content .message-container .message-block .message-text {\n overflow-wrap: break-word;\n margin-left: 4.8rem;\n width: 43.4rem;\n line-height: 2rem; }\n\n.modal .content .message-container .message-block.confirm-master-pass {\n width: 100%;\n margin: 2rem 0; }\n\n.modal .content .message-container .message-block.confirm-master-pass .input-block {\n width: 100%; }\n\n.modal .wrapper-buttons {\n display: flex;\n align-items: center;\n justify-content: space-between; }\n\n.modal .wrapper-buttons button {\n width: 100%;\n max-width: 15rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VuZC1tb2RhbC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzZW5kLW1vZGFsXFxzZW5kLW1vZGFsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUMsRUFBQTs7QUFFdkM7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QiwyQkFBMkI7RUFDM0IscUJBQXFCO0VBQ3JCLDhCQUE4QjtFQUM5QixZQUFZLEVBQUE7O0FBUGQ7SUFVSSxpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQixFQUFBOztBQVpyQjtJQWdCSSxhQUFhO0lBQ2IsaUJBQWlCLEVBQUE7O0FBakJyQjtNQW9CTSxhQUFhO01BQ2Isc0JBQXNCO01BQ3RCLHVCQUF1QjtNQUN2Qix1QkFBdUI7TUFDdkIsNEJBQTRCLEVBQUE7O0FBeEJsQztRQTJCUSxhQUFhO1FBQ2IsbUJBQW1CLEVBQUE7O0FBNUIzQjtVQWlDWSxpQkFBaUIsRUFBQTs7QUFqQzdCO1VBcUNZLGlCQUFpQixFQUFBOztBQXJDN0I7VUEwQ1UsZ0JBQWdCLEVBQUE7O0FBMUMxQjtVQThDVSxpQkFBaUI7VUFDakIsaUJBQWlCLEVBQUE7O0FBL0MzQjtVQW1EVSx5QkFBeUI7VUFDekIsbUJBQW1CO1VBQ25CLGNBQWM7VUFDZCxpQkFBaUIsRUFBQTs7QUF0RDNCO1VBMERVLFdBQVc7VUFDWCxjQUFjLEVBQUE7O0FBM0R4QjtZQTZEWSxXQUFXLEVBQUE7O0FBN0R2QjtJQXFFSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4QixFQUFBOztBQXZFbEM7TUEwRU0sV0FBVztNQUNYLGdCQUFnQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2VuZC1tb2RhbC9zZW5kLW1vZGFsLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XHJcbn1cclxuLm1vZGFsIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCU7XHJcbiAgcGFkZGluZzogMC4zcmVtIDNyZW0gM3JlbSAzcmVtO1xyXG4gIHdpZHRoOiA2NHJlbTtcclxuXHJcbiAgLnRpdGxlIHtcclxuICAgIHBhZGRpbmc6IDEuNHJlbSAwO1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICBsaW5lLWhlaWdodDogM3JlbTtcclxuICB9XHJcblxyXG4gIC5jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmb250LXNpemU6IDEuNHJlbTtcclxuXHJcbiAgICAubWVzc2FnZS1jb250YWluZXIge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbjogMS40cmVtIDNyZW0gNi4ycmVtIDA7XHJcblxyXG4gICAgICAubWVzc2FnZS1ibG9jayB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuXHJcbiAgICAgICAgICAubWVzc2FnZS1sYWJlbCB7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0cmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5tZXNzYWdlLXRleHQge1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNHJlbTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1lc3NhZ2UtbGFiZWwge1xyXG4gICAgICAgICAgbWluLXdpZHRoOiA2LjdyZW07XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMnJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tZXNzYWdlLXRleHQge1xyXG4gICAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0LjhyZW07XHJcbiAgICAgICAgICB3aWR0aDogNDMuNHJlbTtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5jb25maXJtLW1hc3Rlci1wYXNzIHtcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgbWFyZ2luOiAycmVtIDA7XHJcbiAgICAgICAgICAuaW5wdXQtYmxvY2sge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53cmFwcGVyLWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0= */" - -/***/ }), - -/***/ "./src/app/send-modal/send-modal.component.ts": -/*!****************************************************!*\ - !*** ./src/app/send-modal/send-modal.component.ts ***! - \****************************************************/ -/*! exports provided: SendModalComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SendModalComponent", function() { return SendModalComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - -var SendModalComponent = /** @class */ (function () { - function SendModalComponent(variablesService) { - this.variablesService = variablesService; - this.confirmForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]({ - password: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('') - }); - this.confirmed = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); - } - SendModalComponent.prototype.ngOnInit = function () { - if (this.variablesService.appPass) { - this.confirmForm.controls['password'].setValidators([_angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required]); - this.confirmForm.updateValueAndValidity(); - } - }; - SendModalComponent.prototype.confirm = function () { - if (this.variablesService.appPass) { - if (this.confirmForm.controls['password'].value === '') { - this.confirmForm.controls['password'].setErrors({ requiredPass: true }); - return; - } - this.confirmForm.controls['password'].setErrors({ requiredPass: false }); - if (this.variablesService.appPass === this.confirmForm.controls['password'].value) { - this.confirmed.emit(true); - } - else { - this.confirmForm.controls['password'].setErrors({ passwordNotMatch: true }); - } - } - else { - this.confirmed.emit(true); - } - }; - SendModalComponent.prototype.onClose = function () { - this.confirmed.emit(false); - }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"])(), - __metadata("design:type", _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]) - ], SendModalComponent.prototype, "form", void 0); - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"])(), - __metadata("design:type", _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"]) - ], SendModalComponent.prototype, "confirmed", void 0); - SendModalComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-send-modal', - template: __webpack_require__(/*! ./send-modal.component.html */ "./src/app/send-modal/send-modal.component.html"), - styles: [__webpack_require__(/*! ./send-modal.component.scss */ "./src/app/send-modal/send-modal.component.scss")] - }), - __metadata("design:paramtypes", [_helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_2__["VariablesService"]]) - ], SendModalComponent); - return SendModalComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/send/send.component.html": -/*!******************************************!*\ - !*** ./src/app/send/send.component.html ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n\r\n
    \r\n \r\n\r\n \r\n\r\n
    \r\n
    {{item.name}}
    \r\n
    \r\n\r\n
    \r\n
    \r\n {{ 'SEND.FORM_ERRORS.ADDRESS_REQUIRED' | translate }}\r\n
    \r\n
    \r\n {{ 'SEND.FORM_ERRORS.ADDRESS_NOT_VALID' | translate }}\r\n
    \r\n
    \r\n {{ 'SEND.FORM_ERRORS.ALIAS_NOT_VALID' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'SEND.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\r\n
    \r\n
    \r\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    = variablesService.maxCommentLength\">\r\n {{ 'SEND.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'SEND.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'SEND.FORM_ERRORS.FEE_REQUIRED' | translate }}\r\n
    \r\n
    \r\n {{ 'SEND.FORM_ERRORS.FEE_MINIMUM' | translate : {fee: variablesService.default_fee} }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n\r\n \r\n\r\n \r\n\r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/send/send.component.scss": -/*!******************************************!*\ - !*** ./src/app/send/send.component.scss ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n width: 100%; }\n\n.form-send .input-blocks-row {\n display: flex; }\n\n.form-send .input-blocks-row > div {\n flex-basis: 50%; }\n\n.form-send .input-blocks-row > div:first-child {\n margin-right: 1.5rem; }\n\n.form-send .input-blocks-row > div:last-child {\n margin-left: 1.5rem; }\n\n.form-send .send-select {\n display: flex;\n align-items: center;\n background: transparent;\n border: none;\n font-size: 1.3rem;\n line-height: 1.3rem;\n margin: 1.5rem 0 0;\n padding: 0;\n width: 100%;\n max-width: 15rem;\n height: 1.3rem; }\n\n.form-send .send-select .arrow {\n margin-left: 1rem;\n width: 0.8rem;\n height: 0.8rem; }\n\n.form-send .send-select .arrow.down {\n -webkit-mask: url('arrow-down.svg') no-repeat center;\n mask: url('arrow-down.svg') no-repeat center; }\n\n.form-send .send-select .arrow.up {\n -webkit-mask: url('arrow-up.svg') no-repeat center;\n mask: url('arrow-up.svg') no-repeat center; }\n\n.form-send .additional-details {\n display: flex;\n margin-top: 1.5rem;\n padding: 0.5rem 0 2rem; }\n\n.form-send .additional-details > div {\n flex-basis: 25%; }\n\n.form-send .additional-details > div:first-child {\n padding-left: 1.5rem;\n padding-right: 1rem; }\n\n.form-send .additional-details > div:last-child {\n padding-left: 1rem;\n padding-right: 1.5rem; }\n\n.form-send .additional-details .checkbox-block {\n flex-basis: 50%; }\n\n.form-send .additional-details .checkbox-block > label {\n top: 3.5rem; }\n\n.form-send .additional-details .checkbox-block.disabled-checkbox-block label {\n cursor: not-allowed; }\n\n.form-send .additional-details .checkbox-block.disabled-checkbox-block label:before {\n background-color: #556576;\n border: 0.1rem solid #556576; }\n\n.form-send button {\n margin: 2.4rem 0;\n width: 100%;\n max-width: 15rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VuZC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzZW5kXFxzZW5kLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBR0ksYUFBYSxFQUFBOztBQUhqQjtJQU1NLGVBQWUsRUFBQTs7QUFOckI7TUFTUSxvQkFBb0IsRUFBQTs7QUFUNUI7TUFhUSxtQkFBbUIsRUFBQTs7QUFiM0I7RUFtQkksYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLGNBQWMsRUFBQTs7QUE3QmxCO0lBZ0NNLGlCQUFpQjtJQUNqQixhQUFhO0lBQ2IsY0FBYyxFQUFBOztBQWxDcEI7TUFxQ1Esb0RBQTREO2NBQTVELDRDQUE0RCxFQUFBOztBQXJDcEU7TUF5Q1Esa0RBQTBEO2NBQTFELDBDQUEwRCxFQUFBOztBQXpDbEU7RUErQ0ksYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixzQkFBc0IsRUFBQTs7QUFqRDFCO0lBb0RNLGVBQWUsRUFBQTs7QUFwRHJCO01BdURRLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTs7QUF4RDNCO01BNERRLGtCQUFrQjtNQUNsQixxQkFBcUIsRUFBQTs7QUE3RDdCO0lBa0VNLGVBQWUsRUFBQTs7QUFsRXJCO01BcUVRLFdBQVcsRUFBQTs7QUFyRW5CO01BeUVVLG1CQUFtQixFQUFBOztBQXpFN0I7UUEyRVkseUJBQXlCO1FBQ3pCLDRCQUE0QixFQUFBOztBQTVFeEM7RUFvRkksZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NlbmQvc2VuZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmZvcm0tc2VuZCB7XHJcblxyXG4gIC5pbnB1dC1ibG9ja3Mtcm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgPiBkaXYge1xyXG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XHJcblxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2VuZC1zZWxlY3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcclxuICAgIG1hcmdpbjogMS41cmVtIDAgMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICBoZWlnaHQ6IDEuM3JlbTtcclxuXHJcbiAgICAuYXJyb3cge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgICAgd2lkdGg6IDAuOHJlbTtcclxuICAgICAgaGVpZ2h0OiAwLjhyZW07XHJcblxyXG4gICAgICAmLmRvd24ge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1kb3duLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi51cCB7XHJcbiAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Fycm93LXVwLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZGl0aW9uYWwtZGV0YWlscyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xyXG4gICAgcGFkZGluZzogMC41cmVtIDAgMnJlbTtcclxuXHJcbiAgICA+IGRpdiB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IDI1JTtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jaGVja2JveC1ibG9jayB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IDUwJTtcclxuXHJcbiAgICAgID4gbGFiZWwge1xyXG4gICAgICAgIHRvcDogMy41cmVtO1xyXG4gICAgICB9XHJcbiAgICAgICYuZGlzYWJsZWQtY2hlY2tib3gtYmxvY2sge1xyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICM1NTY1NzY7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidXR0b24ge1xyXG4gICAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAxNXJlbTtcclxuICB9XHJcbn1cclxuIl19 */" - -/***/ }), - -/***/ "./src/app/send/send.component.ts": -/*!****************************************!*\ - !*** ./src/app/send/send.component.ts ***! - \****************************************/ -/*! exports provided: SendComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SendComponent", function() { return SendComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! bignumber.js */ "./node_modules/bignumber.js/bignumber.js"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _shared_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../_shared/constants */ "./src/app/_shared/constants.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - - -var SendComponent = /** @class */ (function () { - function SendComponent(route, backend, variablesService, modalService, ngZone) { - var _this = this; - this.route = route; - this.backend = backend; - this.variablesService = variablesService; - this.modalService = modalService; - this.ngZone = ngZone; - this.isOpen = false; - this.localAliases = []; - this.isModalDialogVisible = false; - this.hideWalletAddress = false; - this.currentWalletId = null; - this.sendForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]({ - address: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', [_angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required, function (g) { - _this.localAliases = []; - if (g.value) { - if (g.value.indexOf('@') !== 0) { - _this.isOpen = false; - _this.backend.validateAddress(g.value, function (valid_status) { - _this.ngZone.run(function () { - if (valid_status === false) { - g.setErrors(Object.assign({ 'address_not_valid': true }, g.errors)); - } - else { - if (g.hasError('address_not_valid')) { - delete g.errors['address_not_valid']; - if (Object.keys(g.errors).length === 0) { - g.setErrors(null); - } - } - } - }); - }); - return (g.hasError('address_not_valid')) ? { 'address_not_valid': true } : null; - } - else { - _this.isOpen = true; - _this.localAliases = _this.variablesService.aliases.filter(function (item) { - return item.name.indexOf(g.value) > -1; - }); - if (!(/^@?[a-z0-9\.\-]{6,25}$/.test(g.value))) { - g.setErrors(Object.assign({ 'alias_not_valid': true }, g.errors)); - } - else { - _this.backend.getAliasByName(g.value.replace('@', ''), function (alias_status) { - _this.ngZone.run(function () { - if (alias_status) { - if (g.hasError('alias_not_valid')) { - delete g.errors['alias_not_valid']; - if (Object.keys(g.errors).length === 0) { - g.setErrors(null); - } - } - } - else { - g.setErrors(Object.assign({ 'alias_not_valid': true }, g.errors)); - } - }); - }); - } - return (g.hasError('alias_not_valid')) ? { 'alias_not_valid': true } : null; - } - } - return null; - }]), - amount: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"](null, [_angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required, function (g) { - if (new bignumber_js__WEBPACK_IMPORTED_MODULE_6__["BigNumber"](g.value).eq(0)) { - return { 'zero': true }; - } - return null; - }]), - comment: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"](''), - mixin: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"](_shared_constants__WEBPACK_IMPORTED_MODULE_7__["MIXIN"], _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required), - fee: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"](this.variablesService.default_fee, [_angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required, function (g) { - if ((new bignumber_js__WEBPACK_IMPORTED_MODULE_6__["BigNumber"](g.value)).isLessThan(_this.variablesService.default_fee)) { - return { 'less_min': true }; - } - return null; - }]), - hide: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"](false) - }); - this.additionalOptions = false; - } - SendComponent.prototype.addressMouseDown = function (e) { - if (e['button'] === 0 && this.sendForm.get('address').value && this.sendForm.get('address').value.indexOf('@') === 0) { - this.isOpen = true; - } - }; - SendComponent.prototype.setAlias = function (alias) { - this.sendForm.get('address').setValue(alias); - }; - SendComponent.prototype.onClick = function (targetElement) { - if (targetElement.id !== 'send-address' && this.isOpen) { - this.isOpen = false; - } - }; - SendComponent.prototype.ngOnInit = function () { - var _this = this; - this.parentRouting = this.route.parent.params.subscribe(function (params) { - _this.currentWalletId = params['id']; - _this.mixin = _this.variablesService.currentWallet.send_data['mixin'] || _shared_constants__WEBPACK_IMPORTED_MODULE_7__["MIXIN"]; - if (_this.variablesService.currentWallet.is_auditable) { - _this.mixin = 0; - _this.sendForm.controls['mixin'].disable(); - } - _this.hideWalletAddress = _this.variablesService.currentWallet.is_auditable && !_this.variablesService.currentWallet.is_watch_only; - if (_this.hideWalletAddress) { - _this.sendForm.controls['hide'].disable(); - } - _this.sendForm.reset({ - address: _this.variablesService.currentWallet.send_data['address'], - amount: _this.variablesService.currentWallet.send_data['amount'], - comment: _this.variablesService.currentWallet.send_data['comment'], - mixin: _this.mixin, - fee: _this.variablesService.currentWallet.send_data['fee'] || _this.variablesService.default_fee, - hide: _this.variablesService.currentWallet.send_data['hide'] || false - }); - }); - }; - SendComponent.prototype.showDialog = function () { - this.isModalDialogVisible = true; - }; - SendComponent.prototype.confirmed = function (confirmed) { - if (confirmed) { - this.onSend(); - } - this.isModalDialogVisible = false; - }; - SendComponent.prototype.onSend = function () { - var _this = this; - if (this.sendForm.valid) { - if (this.sendForm.get('address').value.indexOf('@') !== 0) { - this.backend.validateAddress(this.sendForm.get('address').value, function (valid_status) { - if (valid_status === false) { - _this.ngZone.run(function () { - _this.sendForm.get('address').setErrors({ 'address_not_valid': true }); - }); - } - else { - _this.backend.sendMoney(_this.currentWalletId, _this.sendForm.get('address').value, _this.sendForm.get('amount').value, _this.sendForm.get('fee').value, _this.sendForm.get('mixin').value, _this.sendForm.get('comment').value, _this.sendForm.get('hide').value, function (send_status) { - if (send_status) { - _this.modalService.prepareModal('success', 'SEND.SUCCESS_SENT'); - _this.variablesService.currentWallet.send_data = { address: null, amount: null, comment: null, mixin: null, fee: null, hide: null }; - _this.sendForm.reset({ address: null, amount: null, comment: null, mixin: _this.mixin, fee: _this.variablesService.default_fee, hide: false }); - } - }); - } - }); - } - else { - this.backend.getAliasByName(this.sendForm.get('address').value.replace('@', ''), function (alias_status, alias_data) { - _this.ngZone.run(function () { - if (alias_status === false) { - _this.ngZone.run(function () { - _this.sendForm.get('address').setErrors({ 'alias_not_valid': true }); - }); - } - else { - _this.backend.sendMoney(_this.currentWalletId, alias_data.address, // this.sendForm.get('address').value, - _this.sendForm.get('amount').value, _this.sendForm.get('fee').value, _this.sendForm.get('mixin').value, _this.sendForm.get('comment').value, _this.sendForm.get('hide').value, function (send_status) { - if (send_status) { - _this.modalService.prepareModal('success', 'SEND.SUCCESS_SENT'); - _this.variablesService.currentWallet.send_data = { address: null, amount: null, comment: null, mixin: null, fee: null, hide: null }; - _this.sendForm.reset({ address: null, amount: null, comment: null, mixin: _this.mixin, fee: _this.variablesService.default_fee, hide: false }); - } - }); - } - }); - }); - } - } - }; - SendComponent.prototype.toggleOptions = function () { - this.additionalOptions = !this.additionalOptions; - }; - SendComponent.prototype.ngOnDestroy = function () { - this.parentRouting.unsubscribe(); - this.variablesService.currentWallet.send_data = { - address: this.sendForm.get('address').value, - amount: this.sendForm.get('amount').value, - comment: this.sendForm.get('comment').value, - mixin: this.sendForm.get('mixin').value, - fee: this.sendForm.get('fee').value, - hide: this.sendForm.get('hide').value - }; - }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["HostListener"])('document:click', ['$event.target']), - __metadata("design:type", Function), - __metadata("design:paramtypes", [Object]), - __metadata("design:returntype", void 0) - ], SendComponent.prototype, "onClick", null); - SendComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-send', - template: __webpack_require__(/*! ./send.component.html */ "./src/app/send/send.component.html"), - styles: [__webpack_require__(/*! ./send.component.scss */ "./src/app/send/send.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__["VariablesService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__["ModalService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]]) - ], SendComponent); - return SendComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/settings/settings.component.html": -/*!**************************************************!*\ - !*** ./src/app/settings/settings.component.html ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n

    {{ 'SETTINGS.TITLE' | translate }}

    \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n {{item.language | translate}}\r\n \r\n \r\n {{item.language | translate}}\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n {{item.name | translate}}\r\n \r\n \r\n {{item.name | translate}}\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n\r\n {{ 'SETTINGS.MASTER_PASSWORD.TITLE' | translate }}\r\n\r\n
    \r\n \r\n \r\n
    \r\n {{ 'SETTINGS.FORM_ERRORS.PASS_NOT_MATCH' | translate }}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n {{ 'SETTINGS.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    {{ 'SETTINGS.LAST_BUILD' | translate : {value: currentBuild} }}
    \r\n
    \r\n\r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/settings/settings.component.scss": -/*!**************************************************!*\ - !*** ./src/app/settings/settings.component.scss ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ".head {\n justify-content: flex-end; }\n\n.settings-title {\n font-size: 1.7rem; }\n\n.theme-selection {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n margin: 2.4rem 0;\n width: 50%; }\n\n.theme-selection .radio-block {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n font-size: 1.3rem;\n line-height: 2.7rem; }\n\n.lock-selection {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n margin: 2.4rem 0;\n width: 50%; }\n\n.lock-selection .lock-selection-title {\n display: flex;\n font-size: 1.5rem;\n line-height: 2.7rem;\n margin-bottom: 1rem; }\n\n.scale-selection {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 0 4rem;\n width: 50%;\n height: 0.5rem; }\n\n.scale-selection .button-block {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1 0 auto;\n margin: 0 0.2rem;\n padding: 0;\n height: 0.5rem; }\n\n.scale-selection .button-block .label {\n position: absolute;\n bottom: -1rem;\n left: 50%;\n transform: translate(-50%, 100%);\n font-size: 1rem;\n white-space: nowrap; }\n\n.master-password {\n width: 50%; }\n\n.master-password .master-password-title {\n display: flex;\n font-size: 1.5rem;\n line-height: 2.7rem;\n margin-bottom: 1rem; }\n\n.master-password button {\n margin: 2.5rem auto;\n width: 100%;\n max-width: 15rem; }\n\n.last-build {\n font-size: 1rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2V0dGluZ3MvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcc2V0dGluZ3NcXHNldHRpbmdzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTs7QUFMWjtJQVFJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsMkJBQTJCO0lBQzNCLGlCQUFpQjtJQUNqQixtQkFBbUIsRUFBQTs7QUFJdkI7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLHVCQUF1QjtFQUN2QixnQkFBZ0I7RUFDaEIsVUFBVSxFQUFBOztBQUxaO0lBUUksYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsbUJBQW1CLEVBQUE7O0FBSXZCO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsaUJBQWlCO0VBQ2pCLFVBQVU7RUFDVixjQUFjLEVBQUE7O0FBTmhCO0lBU0ksa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLGNBQWMsRUFBQTs7QUFoQmxCO01BbUJNLGtCQUFrQjtNQUNsQixhQUFhO01BQ2IsU0FBUztNQUNULGdDQUFnQztNQUNoQyxlQUFlO01BQ2YsbUJBQW1CLEVBQUE7O0FBS3pCO0VBQ0UsVUFBVSxFQUFBOztBQURaO0lBSUksYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsbUJBQW1CLEVBQUE7O0FBUHZCO0lBV0ksbUJBQW1CO0lBQ25CLFdBQVc7SUFDWCxnQkFBZ0IsRUFBQTs7QUFJcEI7RUFDRSxlQUFlLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zZXR0aW5ncy9zZXR0aW5ncy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oZWFkIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4uc2V0dGluZ3MtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS43cmVtO1xyXG59XHJcblxyXG4udGhlbWUtc2VsZWN0aW9uIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICB3aWR0aDogNTAlO1xyXG5cclxuICAucmFkaW8tYmxvY2sge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07XHJcbiAgfVxyXG59XHJcblxyXG4ubG9jay1zZWxlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBtYXJnaW46IDIuNHJlbSAwO1xyXG4gIHdpZHRoOiA1MCU7XHJcblxyXG4gIC5sb2NrLXNlbGVjdGlvbi10aXRsZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5zY2FsZS1zZWxlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgcGFkZGluZzogMCAwIDRyZW07XHJcbiAgd2lkdGg6IDUwJTtcclxuICBoZWlnaHQ6IDAuNXJlbTtcclxuXHJcbiAgLmJ1dHRvbi1ibG9jayB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZmxleDogMSAwIGF1dG87XHJcbiAgICBtYXJnaW46IDAgMC4ycmVtO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGhlaWdodDogMC41cmVtO1xyXG5cclxuICAgIC5sYWJlbCB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAtMXJlbTtcclxuICAgICAgbGVmdDogNTAlO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAxMDAlKTtcclxuICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm1hc3Rlci1wYXNzd29yZCB7XHJcbiAgd2lkdGg6IDUwJTtcclxuXHJcbiAgLm1hc3Rlci1wYXNzd29yZC10aXRsZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBtYXJnaW46IDIuNXJlbSBhdXRvO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDE1cmVtO1xyXG4gIH1cclxufVxyXG5cclxuLmxhc3QtYnVpbGQge1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxufVxyXG4iXX0= */" - -/***/ }), - -/***/ "./src/app/settings/settings.component.ts": -/*!************************************************!*\ - !*** ./src/app/settings/settings.component.ts ***! - \************************************************/ -/*! exports provided: SettingsComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SettingsComponent", function() { return SettingsComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm5/common.js"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -/* harmony import */ var _helpers_services_utils_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_helpers/services/utils.service */ "./src/app/_helpers/services/utils.service.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - -var SettingsComponent = /** @class */ (function () { - function SettingsComponent(renderer, variablesService, backend, location, translate, ngZone, utilsService) { - var _this = this; - this.renderer = renderer; - this.variablesService = variablesService; - this.backend = backend; - this.location = location; - this.translate = translate; - this.ngZone = ngZone; - this.utilsService = utilsService; - this.languagesOptions = [ - { - name: 'en', - language: 'SETTINGS.LANGUAGE.EN' - }, - { - name: 'fr', - language: 'SETTINGS.LANGUAGE.FR' - }, - { - name: 'de', - language: 'SETTINGS.LANGUAGE.DE' - }, - { - name: 'id', - language: 'SETTINGS.LANGUAGE.ID' - }, - { - name: 'it', - language: 'SETTINGS.LANGUAGE.IT' - }, - { - name: 'pt', - language: 'SETTINGS.LANGUAGE.PT' - } - ]; - this.appLockOptions = [ - { - id: 5, - name: 'SETTINGS.APP_LOCK.TIME1' - }, - { - id: 15, - name: 'SETTINGS.APP_LOCK.TIME2' - }, - { - id: 60, - name: 'SETTINGS.APP_LOCK.TIME3' - }, - { - id: 0, - name: 'SETTINGS.APP_LOCK.TIME4' - } - ]; - this.appScaleOptions = [ - { - id: 7.5, - name: 'SETTINGS.SCALE.75' - }, - { - id: 10, - name: 'SETTINGS.SCALE.100' - }, - { - id: 12.5, - name: 'SETTINGS.SCALE.125' - }, - { - id: 15, - name: 'SETTINGS.SCALE.150' - } - ]; - this.appLogOptions = [ - { - id: -1 - }, - { - id: 0 - }, - { - id: 1 - }, - { - id: 2 - }, - { - id: 3 - }, - { - id: 4 - } - ]; - this.currentBuild = ''; - this.theme = this.variablesService.settings.theme; - this.scale = this.variablesService.settings.scale; - this.changeForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormGroup"]({ - password: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormControl"](''), - new_password: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_3__["Validators"].pattern(this.variablesService.pattern)), - new_confirmation: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormControl"]('') - }, [function (g) { - return g.get('new_password').value === g.get('new_confirmation').value ? null : { 'confirm_mismatch': true }; - }, function (g) { - if (_this.variablesService.appPass) { - return g.get('password').value === _this.variablesService.appPass ? null : { 'pass_mismatch': true }; - } - return null; - }]); - } - SettingsComponent.prototype.ngOnInit = function () { - var _this = this; - this.backend.getVersion(function (version, type) { - _this.ngZone.run(function () { - _this.currentBuild = version; - _this.variablesService.testnet = false; - if (type == 'testnet') { - _this.currentBuild += ' TESTNET'; - _this.variablesService.testnet = true; - } - _this.variablesService.networkType = type; - }); - }); - }; - SettingsComponent.prototype.setTheme = function (theme) { - this.renderer.removeClass(document.body, 'theme-' + this.theme); - this.theme = theme; - this.variablesService.settings.theme = this.theme; - this.renderer.addClass(document.body, 'theme-' + this.theme); - this.backend.storeAppData(); - }; - SettingsComponent.prototype.setScale = function (scale) { - this.scale = scale; - this.variablesService.settings.scale = this.scale; - var width = this.utilsService.getMinWidthByScale(this.scale); - var app = document.documentElement.querySelector('app-root'); - this.renderer.setStyle(app, 'min-width', width + 'px'); - this.renderer.setStyle(document.documentElement, 'font-size', this.scale + 'px'); - this.backend.storeAppData(); - }; - SettingsComponent.prototype.onSubmitChangePass = function () { - var _this = this; - if (this.changeForm.valid) { - this.variablesService.appPass = this.changeForm.get('new_password').value; - if (this.variablesService.appPass) { - this.backend.setMasterPassword({ pass: this.variablesService.appPass }, function (status, data) { - if (status) { - _this.backend.storeSecureAppData({ pass: _this.variablesService.appPass }); - _this.variablesService.appLogin = true; - _this.variablesService.dataIsLoaded = true; - if (_this.variablesService.settings.appLockTime) { - _this.variablesService.startCountdown(); - } - } - else { - console.log(data['error_code']); - } - }); - } - else { - this.backend.dropSecureAppData(); - } - this.changeForm.reset(); - } - }; - SettingsComponent.prototype.onLockChange = function () { - if (this.variablesService.appLogin && this.variablesService.settings.appLockTime) { - this.variablesService.restartCountdown(); - } - this.backend.storeAppData(); - }; - SettingsComponent.prototype.onLogChange = function () { - this.backend.setLogLevel(this.variablesService.settings.appLog); - this.backend.storeAppData(); - }; - SettingsComponent.prototype.onLanguageChange = function () { - this.translate.use(this.variablesService.settings.language); - this.backend.storeAppData(); - }; - SettingsComponent.prototype.back = function () { - this.location.back(); - }; - SettingsComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-settings', - template: __webpack_require__(/*! ./settings.component.html */ "./src/app/settings/settings.component.html"), - providers: [_helpers_services_utils_service__WEBPACK_IMPORTED_MODULE_6__["UtilsService"]], - styles: [__webpack_require__(/*! ./settings.component.scss */ "./src/app/settings/settings.component.scss")] - }), - __metadata("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_1__["VariablesService"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__["BackendService"], - _angular_common__WEBPACK_IMPORTED_MODULE_4__["Location"], - _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__["TranslateService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], - _helpers_services_utils_service__WEBPACK_IMPORTED_MODULE_6__["UtilsService"]]) - ], SettingsComponent); - return SettingsComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/sidebar/sidebar.component.html": -/*!************************************************!*\ - !*** ./src/app/sidebar/sidebar.component.html ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n
    \r\n

    {{ 'SIDEBAR.TITLE' | translate }}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Auditable\r\n
    \r\n
    \r\n Watch-only\r\n
    \r\n
    \r\n Tracking\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n {{ 'SIDEBAR.LOG_OUT' | translate }}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {{ 'SIDEBAR.SYNCHRONIZATION.OFFLINE' | translate }}\r\n \r\n \r\n {{ 'SIDEBAR.SYNCHRONIZATION.SYNCING' | translate }} {{ variablesService.height_app }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.height_max }}\r\n \r\n \r\n {{ 'SIDEBAR.SYNCHRONIZATION.ONLINE' | translate }}\r\n \r\n \r\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\r\n \r\n \r\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\r\n \r\n \r\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\r\n \r\n \r\n {{ 'SIDEBAR.SYNCHRONIZATION.DOWNLOADING' | translate }} {{ variablesService.downloaded }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.total }}{{ 'SIDEBAR.SYNCHRONIZATION.MB' | translate }}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {{ variablesService.sync.progress_value_text }}%
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {{ variablesService.download.progress_value_text }}%
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {{ 'SIDEBAR.UPDATE.STANDARD' | translate }}\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {{ 'SIDEBAR.UPDATE.IMPORTANT' | translate }}\r\n
    \r\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {{ 'SIDEBAR.UPDATE.CRITICAL' | translate }}\r\n
    \r\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ 'SIDEBAR.UPDATE.TIME' | translate }}\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n\r\n" - -/***/ }), - -/***/ "./src/app/sidebar/sidebar.component.scss": -/*!************************************************!*\ - !*** ./src/app/sidebar/sidebar.component.scss ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex: 0 0 25rem;\n padding: 0 3rem;\n max-width: 25rem; }\n\n.animated {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 1.2rem; }\n\n.animated::ng-deep svg {\n width: 2rem;\n height: 2rem; }\n\n.animated::ng-deep svg path, .animated::ng-deep svg circle, .animated::ng-deep svg polygon {\n fill: #4db1ff; }\n\n.wallet-type {\n position: absolute;\n top: 0;\n left: 0;\n width: 7px;\n height: 100%;\n background-color: transparent;\n transition: all ease .3s;\n overflow: hidden; }\n\n.wallet-type:hover {\n width: 28px; }\n\n.wallet-type .content {\n height: 100%;\n padding: 7px;\n font-size: 12px;\n line-height: 14px;\n font-weight: 500;\n color: #ffffff;\n text-decoration: none;\n text-transform: capitalize;\n transition: all ease .3s;\n writing-mode: vertical-rl;\n text-orientation: mixed; }\n\n.wallet-type .content.auditable {\n background-color: #5cda9d; }\n\n.wallet-type .content.watch-only, .wallet-type .content.auditable-watch-only {\n background-color: #8686ff; }\n\n.sidebar-accounts {\n position: relative;\n display: flex;\n flex-direction: column;\n flex: 1 1 auto; }\n\n.sidebar-accounts .sidebar-accounts-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex: 0 0 auto;\n height: 8rem;\n font-weight: 400; }\n\n.sidebar-accounts .sidebar-accounts-header h3 {\n font-size: 1.7rem; }\n\n.sidebar-accounts .sidebar-accounts-header button {\n background: transparent;\n border: none;\n outline: none; }\n\n.sidebar-accounts .sidebar-accounts-list {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n margin: 0 -3rem;\n overflow-y: auto; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account {\n position: relative;\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n cursor: pointer;\n padding: 2.5rem 3rem; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper {\n display: flex;\n justify-content: flex-end;\n position: relative; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button {\n display: flex;\n position: absolute;\n top: -12px;\n right: -18px;\n padding: 0;\n height: auto;\n background: transparent;\n border: none; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button .icon {\n width: 1.3rem;\n height: 1.3rem; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button .icon.close-wallet {\n background-color: transparent; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button .icon.close-wallet::after {\n display: block;\n content: '';\n background: url('close-wallet-blue.svg') no-repeat center;\n width: 13px;\n height: 13px; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row {\n display: flex;\n align-items: center;\n justify-content: space-between; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-title-balance {\n line-height: 2.7rem; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-title-balance .title {\n font-size: 1.5rem;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-title-balance .balance {\n font-size: 1.8rem;\n font-weight: 600;\n white-space: nowrap; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias {\n font-size: 1.3rem;\n line-height: 3.4rem;\n margin-bottom: 0.7rem; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .name {\n display: flex;\n align-items: center;\n flex-shrink: 1;\n line-height: 1.6rem;\n padding-right: 1rem;\n overflow: hidden; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .name span {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .price {\n flex-shrink: 0; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .icon {\n margin-left: 0.5rem;\n width: 1.3rem;\n height: 1.3rem;\n border-radius: 50%;\n color: #1a1a1a;\n font-size: 9px;\n font-weight: 700;\n line-height: 9px;\n padding-right: 1px;\n display: flex;\n align-items: center;\n justify-content: center; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-staking {\n line-height: 2.9rem; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-staking .text {\n font-size: 1.3rem; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-messages {\n line-height: 2.7rem; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-messages .text {\n font-size: 1.3rem; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-messages .indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 1rem;\n font-size: 1rem;\n min-width: 2.4rem;\n height: 1.6rem;\n padding: 0 0.5rem; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\n flex-direction: column;\n height: 5.6rem; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .status {\n align-self: flex-start;\n font-size: 1.3rem;\n line-height: 2.6rem; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container {\n display: flex;\n margin: 0.4rem 0;\n height: 0.7rem;\n width: 100%; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container .progress-bar {\n flex: 1 0 auto; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container .progress-bar .fill {\n height: 100%; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container .progress-percent {\n flex: 0 0 auto;\n font-size: 1.3rem;\n line-height: 0.7rem;\n padding-left: 0.7rem; }\n\n.sidebar-accounts .sidebar-accounts-list .sidebar-account:focus {\n outline: none; }\n\n.sidebar-accounts:after {\n content: '';\n position: absolute;\n bottom: 0;\n left: -3rem;\n width: calc(100% + 6rem);\n height: 5rem; }\n\n.sidebar-settings {\n flex: 0 0 auto;\n padding-bottom: 1rem; }\n\n.sidebar-settings .wrap-button {\n margin: 0 -3rem; }\n\n.sidebar-settings .wrap-button button {\n display: flex;\n align-items: center;\n background: transparent;\n border: none;\n font-weight: 400;\n line-height: 3rem;\n outline: none;\n padding: 0 3rem;\n width: 100%; }\n\n.sidebar-settings .wrap-button button.disabled {\n cursor: url('not-allowed.svg'), not-allowed; }\n\n.sidebar-settings .wrap-button button .icon {\n margin-right: 1.2rem;\n width: 2rem;\n height: 2rem; }\n\n.sidebar-settings .wrap-button button .icon.contacts {\n -webkit-mask: url('contacts.svg') no-repeat center;\n mask: url('contacts.svg') no-repeat center; }\n\n.sidebar-settings .wrap-button button .icon.settings {\n -webkit-mask: url('settings.svg') no-repeat center;\n mask: url('settings.svg') no-repeat center; }\n\n.sidebar-settings .wrap-button button .icon.logout {\n -webkit-mask: url('logout.svg') no-repeat center;\n mask: url('logout.svg') no-repeat center; }\n\n.synchronization-status {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 0 0 7rem;\n font-size: 1.3rem; }\n\n.synchronization-status .status-container {\n position: relative;\n flex-grow: 1;\n text-align: left; }\n\n.synchronization-status .status-container .offline, .synchronization-status .status-container .online {\n position: relative;\n display: block;\n line-height: 1.2rem;\n padding-left: 2.2rem; }\n\n.synchronization-status .status-container .offline:before, .synchronization-status .status-container .online:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n border-radius: 50%;\n width: 1.2rem;\n height: 1.2rem; }\n\n.synchronization-status .status-container .syncing, .synchronization-status .status-container .loading {\n line-height: 5rem; }\n\n.synchronization-status .status-container .progress-bar-container {\n position: absolute;\n bottom: 0;\n left: 0;\n height: 0.7rem;\n width: 100%; }\n\n.synchronization-status .status-container .progress-bar-container .syncing {\n display: flex; }\n\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\n flex: 1 0 auto; }\n\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\n height: 100%; }\n\n.synchronization-status .status-container .progress-bar-container .syncing .progress-percent {\n flex: 0 0 auto;\n font-size: 1.3rem;\n line-height: 0.7rem;\n padding-left: 0.7rem; }\n\n.synchronization-status .status-container .progress-bar-container .loading {\n -webkit-animation: move 5s linear infinite;\n animation: move 5s linear infinite;\n background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.125, rgba(0, 0, 0, 0.15)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.1)), color-stop(0.375, rgba(0, 0, 0, 0.1)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.15)), color-stop(0.625, rgba(0, 0, 0, 0.15)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.1)), color-stop(0.875, rgba(0, 0, 0, 0.1)), color-stop(0.875, transparent), to(transparent)), -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\n background-size: 7rem 7rem;\n height: 100%; }\n\n.synchronization-status .update-container {\n display: flex;\n flex-grow: 1;\n margin-left: 1rem;\n text-align: right; }\n\n.synchronization-status .update-container .update-text {\n flex: 1 1 auto;\n font-size: 1.2rem;\n line-height: 1.8rem;\n text-align: left; }\n\n.synchronization-status .update-container .update-text.time {\n font-size: 1.1rem; }\n\n.synchronization-status .update-container .icon {\n flex: 1 0 auto;\n margin: 0.3rem 0 0 0.6rem;\n width: 1.2rem;\n height: 1.2rem; }\n\n.synchronization-status .update-container .icon.update {\n -webkit-mask: url('update.svg') no-repeat center;\n mask: url('update.svg') no-repeat center; }\n\n.synchronization-status .update-container .icon.time {\n -webkit-mask: url('time.svg') no-repeat center;\n mask: url('time.svg') no-repeat center; }\n\n@-webkit-keyframes move {\n 0% {\n background-position: 100% -7rem; }\n 100% {\n background-position: 100% 7rem; } }\n\n@keyframes move {\n 0% {\n background-position: 100% -7rem; }\n 100% {\n background-position: 100% 7rem; } }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2lkZWJhci9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzaWRlYmFyXFxzaWRlYmFyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0Qiw4QkFBOEI7RUFDOUIsZUFBZTtFQUNmLGVBQWU7RUFDZixnQkFBZ0IsRUFBQTs7QUFHbEI7RUFDRSxhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixvQkFBb0IsRUFBQTs7QUFKdEI7SUFRSSxXQUFXO0lBQ1gsWUFBWSxFQUFBOztBQVRoQjtNQVlNLGFBQWEsRUFBQTs7QUFJbkI7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxVQUFVO0VBQ1YsWUFBWTtFQUNaLDZCQUE2QjtFQUM3Qix3QkFBd0I7RUFDeEIsZ0JBQWdCLEVBQUE7O0FBUmxCO0lBVUksV0FBVyxFQUFBOztBQVZmO0lBYUksWUFBWTtJQUNaLFlBQVk7SUFDWixlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QscUJBQXFCO0lBQ3JCLDBCQUEwQjtJQUMxQix3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLHVCQUF1QixFQUFBOztBQXZCM0I7TUF5Qk0seUJBQXlCLEVBQUE7O0FBekIvQjtNQTRCTSx5QkFBeUIsRUFBQTs7QUFJL0I7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixjQUFjLEVBQUE7O0FBSmhCO0lBT0ksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsY0FBYztJQUNkLFlBQVk7SUFDWixnQkFBZ0IsRUFBQTs7QUFacEI7TUFlTSxpQkFBaUIsRUFBQTs7QUFmdkI7TUFtQk0sdUJBQXVCO01BQ3ZCLFlBQVk7TUFDWixhQUFhLEVBQUE7O0FBckJuQjtJQTBC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Z0RBQXlEO2dCQUF6RCx3Q0FBeUQsRUFBQTs7QUFsSGpFO1FBc0hRLDhDQUF1RDtnQkFBdkQsc0NBQXVELEVBQUE7O0FBTS9EO0VBQ0U7SUFDRSwrQkFBK0IsRUFBQTtFQUVqQztJQUNFLDhCQUE4QixFQUFBLEVBQUE7O0FBTGxDO0VBQ0U7SUFDRSwrQkFBK0IsRUFBQTtFQUVqQztJQUNFLDhCQUE4QixFQUFBLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBmbGV4OiAwIDAgMjVyZW07XHJcbiAgcGFkZGluZzogMCAzcmVtO1xyXG4gIG1heC13aWR0aDogMjVyZW07XHJcbn1cclxuXHJcbi5hbmltYXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG5cclxuICAmOjpuZy1kZWVwIHN2ZyB7XHJcblxyXG4gICAgd2lkdGg6IDJyZW07XHJcbiAgICBoZWlnaHQ6IDJyZW07XHJcblxyXG4gICAgcGF0aCwgY2lyY2xlLCBwb2x5Z29uIHtcclxuICAgICAgZmlsbDogIzRkYjFmZjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuLndhbGxldC10eXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDdweDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgdHJhbnNpdGlvbjogYWxsIGVhc2UgLjNzO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgJjpob3ZlciB7XHJcbiAgICB3aWR0aDogMjhweDtcclxuICB9XHJcbiAgLmNvbnRlbnQge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcGFkZGluZzogN3B4O1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgIHRyYW5zaXRpb246IGFsbCBlYXNlIC4zcztcclxuICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7XHJcbiAgICB0ZXh0LW9yaWVudGF0aW9uOiBtaXhlZDtcclxuICAgICYuYXVkaXRhYmxlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDtcclxuICAgIH1cclxuICAgICYud2F0Y2gtb25seSwgJi5hdWRpdGFibGUtd2F0Y2gtb25seSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4Njg2ZmY7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi5zaWRlYmFyLWFjY291bnRzIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDEgMSBhdXRvO1xyXG5cclxuICAuc2lkZWJhci1hY2NvdW50cy1oZWFkZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgIGhlaWdodDogOHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcblxyXG4gICAgaDMge1xyXG4gICAgICBmb250LXNpemU6IDEuN3JlbTtcclxuICAgIH1cclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNpZGViYXItYWNjb3VudHMtbGlzdCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgbWFyZ2luOiAwIC0zcmVtO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuXHJcbiAgICAuc2lkZWJhci1hY2NvdW50IHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBwYWRkaW5nOiAyLjVyZW0gM3JlbTtcclxuXHJcbiAgICAgIC5jbG9zZS13YWxsZXQtd3JhcHBlciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHRvcDogLTEycHg7XHJcbiAgICAgICAgICByaWdodDogLTE4cHg7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICB3aWR0aDogMS4zcmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEuM3JlbTtcclxuICAgICAgICAgICAgJi5jbG9zZS13YWxsZXQge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuY2xvc2Utd2FsbGV0OjphZnRlciB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgY29udGVudDonJztcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOnVybChcIi4uLy4uL2Fzc2V0cy9pY29ucy9jbG9zZS13YWxsZXQtYmx1ZS5zdmdcIikgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICB3aWR0aDogMTNweDtcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDEzcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zaWRlYmFyLWFjY291bnQtcm93IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgICAgICAmLmFjY291bnQtdGl0bGUtYmFsYW5jZSB7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG5cclxuICAgICAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuYmFsYW5jZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY2NvdW50LWFsaWFzIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMuNHJlbTtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuN3JlbTtcclxuXHJcbiAgICAgICAgICAubmFtZSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS42cmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLnByaWNlIHtcclxuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xyXG4gICAgICAgICAgICB3aWR0aDogMS4zcmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEuM3JlbTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICBjb2xvcjogIzFhMWExYTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiA5cHg7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA5cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFweDtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjY291bnQtc3Rha2luZyB7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMi45cmVtO1xyXG5cclxuICAgICAgICAgIC50ZXh0IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjY291bnQtbWVzc2FnZXMge1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuXHJcbiAgICAgICAgICAudGV4dCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5pbmRpY2F0b3Ige1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNHJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxLjZyZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC41cmVtO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY2NvdW50LXN5bmNocm9uaXphdGlvbiB7XHJcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgaGVpZ2h0OiA1LjZyZW07XHJcblxyXG4gICAgICAgICAgLnN0YXR1cyB7XHJcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgbWFyZ2luOiAwLjRyZW0gMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAwLjdyZW07XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAgICAgLnByb2dyZXNzLWJhciB7XHJcbiAgICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XHJcblxyXG4gICAgICAgICAgICAgIC5maWxsIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5wcm9ncmVzcy1wZXJjZW50IHtcclxuICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMC43cmVtO1xyXG4gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAtM3JlbTtcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyA2cmVtKTtcclxuICAgIGhlaWdodDogNXJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5zaWRlYmFyLXNldHRpbmdzIHtcclxuICBmbGV4OiAwIDAgYXV0bztcclxuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcclxuXHJcbiAgLndyYXAtYnV0dG9uIHtcclxuICAgIG1hcmdpbjogMCAtM3JlbTtcclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICBsaW5lLWhlaWdodDogM3JlbTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgcGFkZGluZzogMCAzcmVtO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgICYuZGlzYWJsZWQge1xyXG4gICAgICAgIGN1cnNvcjogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9ub3QtYWxsb3dlZC5zdmcpLCBub3QtYWxsb3dlZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmljb24ge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICAgIHdpZHRoOiAycmVtO1xyXG4gICAgICAgIGhlaWdodDogMnJlbTtcclxuXHJcbiAgICAgICAgJi5jb250YWN0cyB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2NvbnRhY3RzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuc2V0dGluZ3Mge1xyXG4gICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9zZXR0aW5ncy5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmxvZ291dCB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2xvZ291dC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uc3luY2hyb25pemF0aW9uLXN0YXR1cyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBmbGV4OiAwIDAgN3JlbTtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuXHJcbiAgLnN0YXR1cy1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAub2ZmbGluZSwgLm9ubGluZSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMi4ycmVtO1xyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgICBoZWlnaHQ6IDEuMnJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zeW5jaW5nLCAubG9hZGluZyB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA1cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIGhlaWdodDogMC43cmVtO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIC5zeW5jaW5nIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgICAucHJvZ3Jlc3MtYmFyIHtcclxuICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG5cclxuICAgICAgICAgIC5maWxsIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnByb2dyZXNzLXBlcmNlbnQge1xyXG4gICAgICAgICAgZmxleDogMCAwIGF1dG87XHJcbiAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwLjdyZW07XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5sb2FkaW5nIHtcclxuICAgICAgICBhbmltYXRpb246IG1vdmUgNXMgbGluZWFyIGluZmluaXRlO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6XHJcbiAgICAgICAgICAtd2Via2l0LWdyYWRpZW50KFxyXG4gICAgICAgICAgICAgIGxpbmVhciwgMCAwLCAxMDAlIDEwMCUsXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMTI1LCByZ2JhKDAsIDAsIDAsIC4xNSkpLCBjb2xvci1zdG9wKC4xMjUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4yNTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguMjUwLCByZ2JhKDAsIDAsIDAsIC4xMCkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjM3NSwgcmdiYSgwLCAwLCAwLCAuMTApKSwgY29sb3Itc3RvcCguMzc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNTAwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjUwMCwgcmdiYSgwLCAwLCAwLCAuMTUpKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC42MjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjYyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjc1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC43NTAsIHJnYmEoMCwgMCwgMCwgLjEwKSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguODc1LCByZ2JhKDAsIDAsIDAsIC4xMCkpLCBjb2xvci1zdG9wKC44NzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICB0byh0cmFuc3BhcmVudClcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICAtd2Via2l0LWdyYWRpZW50KFxyXG4gICAgICAgICAgICAgIGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMTI1LCByZ2JhKDAsIDAsIDAsIC4zMCkpLCBjb2xvci1zdG9wKC4xMjUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4yNTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguMjUwLCByZ2JhKDAsIDAsIDAsIC4yNSkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjM3NSwgcmdiYSgwLCAwLCAwLCAuMjUpKSwgY29sb3Itc3RvcCguMzc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNTAwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjUwMCwgcmdiYSgwLCAwLCAwLCAuMzApKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC42MjUsIHJnYmEoMCwgMCwgMCwgLjMwKSksIGNvbG9yLXN0b3AoLjYyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjc1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC43NTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguODc1LCByZ2JhKDAsIDAsIDAsIC4yNSkpLCBjb2xvci1zdG9wKC44NzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICB0byh0cmFuc3BhcmVudClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA3cmVtIDdyZW07XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudXBkYXRlLWNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuXHJcbiAgICAudXBkYXRlLXRleHQge1xyXG4gICAgICBmbGV4OiAxIDEgYXV0bztcclxuICAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4gICAgICAmLnRpbWUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICBmbGV4OiAxIDAgYXV0bztcclxuICAgICAgbWFyZ2luOiAwLjNyZW0gMCAwIDAuNnJlbTtcclxuICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcblxyXG4gICAgICAmLnVwZGF0ZSB7XHJcbiAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy91cGRhdGUuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnRpbWUge1xyXG4gICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvdGltZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgbW92ZSB7XHJcbiAgMCUge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtN3JlbTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDdyZW07XHJcbiAgfVxyXG59XHJcbiJdfQ== */" - -/***/ }), - -/***/ "./src/app/sidebar/sidebar.component.ts": -/*!**********************************************!*\ - !*** ./src/app/sidebar/sidebar.component.ts ***! - \**********************************************/ -/*! exports provided: SidebarComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SidebarComponent", function() { return SidebarComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -/* harmony import */ var _shared_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_shared/constants */ "./src/app/_shared/constants.ts"); -/* harmony import */ var _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../assets/icons/icons.json */ "./src/assets/icons/icons.json"); -var _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_6___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../../assets/icons/icons.json */ "./src/assets/icons/icons.json", 1); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - - -var SidebarComponent = /** @class */ (function () { - function SidebarComponent(route, router, variablesService, backend, modal, ngZone) { - this.route = route; - this.router = router; - this.variablesService = variablesService; - this.backend = backend; - this.modal = modal; - this.ngZone = ngZone; - this.contacts = _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_6__.contacts; - this.settings = _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_6__.settings; - this.exit = _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_6__.exit; - this.isModalDialogVisible = false; - } - SidebarComponent.prototype.ngOnInit = function () { - var _this = this; - if (this.router.url.indexOf('/wallet/') !== -1) { - var localPathArr = this.router.url.split('/'); - if (localPathArr.length >= 3) { - this.walletActive = parseInt(localPathArr[2], 10); - } - } - else if (this.router.url.indexOf('/details') !== -1) { - this.walletActive = this.variablesService.currentWallet.wallet_id; - } - else { - this.walletActive = null; - } - this.walletSubRouting = this.router.events.subscribe(function (event) { - if (event instanceof _angular_router__WEBPACK_IMPORTED_MODULE_1__["NavigationStart"]) { - if (event.url.indexOf('/wallet/') !== -1) { - var localPathArr = event.url.split('/'); - if (localPathArr.length >= 3) { - _this.walletActive = parseInt(localPathArr[2], 10); - } - } - else if (event.url.indexOf('/details') !== -1) { - _this.walletActive = _this.variablesService.currentWallet.wallet_id; - } - else { - _this.walletActive = null; - } - } - }); - }; - SidebarComponent.prototype.goMainPage = function () { - var _this = this; - if (this.route.snapshot.queryParams && this.route.snapshot.queryParams.prevUrl === 'login') { - this.ngZone.run(function () { - _this.router.navigate(['/'], { queryParams: { prevUrl: 'login' } }); - }); - } - else { - this.ngZone.run(function () { - _this.router.navigate(['/']); - }); - } - }; - ; - SidebarComponent.prototype.contactsRoute = function () { - if (this.variablesService.appPass) { - this.router.navigate(['/contacts']); - } - else { - this.modal.prepareModal('error', 'CONTACTS.FORM_ERRORS.SET_MASTER_PASSWORD'); - } - }; - SidebarComponent.prototype.showDialog = function (wallet_id) { - this.isModalDialogVisible = true; - this.closeWalletId = wallet_id; - }; - SidebarComponent.prototype.confirmed = function (confirmed) { - if (confirmed) { - this.closeWallet(this.closeWalletId); - } - this.isModalDialogVisible = false; - }; - SidebarComponent.prototype.closeWallet = function (wallet_id) { - var _this = this; - this.backend.closeWallet(wallet_id, function () { - for (var i = _this.variablesService.wallets.length - 1; i >= 0; i--) { - if (_this.variablesService.wallets[i].wallet_id === _this.variablesService.currentWallet.wallet_id) { - _this.variablesService.wallets.splice(i, 1); - } - } - _this.ngZone.run(function () { - if (_this.variablesService.wallets.length) { - _this.variablesService.currentWallet = _this.variablesService.wallets[0]; - _this.router.navigate(['/wallet/' + _this.variablesService.currentWallet.wallet_id]); - } - else { - _this.router.navigate(['/']); - } - }); - if (_this.variablesService.appPass) { - _this.backend.storeSecureAppData(); - } - }); - }; - SidebarComponent.prototype.getUpdate = function () { - this.backend.openUrlInBrowser(_shared_constants__WEBPACK_IMPORTED_MODULE_5__["DOWNLOADS_PAGE_URL"]); - }; - SidebarComponent.prototype.goToAuditableWalletHelpPage = function (e) { - e.preventDefault(); - this.backend.openUrlInBrowser(_shared_constants__WEBPACK_IMPORTED_MODULE_5__["AUDITABLE_WALLET_HELP_PAGE"]); - }; - SidebarComponent.prototype.logOut = function () { - var _this = this; - this.variablesService.stopCountdown(); - this.variablesService.appLogin = false; - this.variablesService.appPass = ''; - this.ngZone.run(function () { - _this.router.navigate(['/login'], { queryParams: { type: 'auth' } }); - }); - }; - SidebarComponent.prototype.ngOnDestroy = function () { - this.walletSubRouting.unsubscribe(); - }; - SidebarComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-sidebar', - template: __webpack_require__(/*! ./sidebar.component.html */ "./src/app/sidebar/sidebar.component.html"), - styles: [__webpack_require__(/*! ./sidebar.component.scss */ "./src/app/sidebar/sidebar.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_1__["ActivatedRoute"], - _angular_router__WEBPACK_IMPORTED_MODULE_1__["Router"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_2__["VariablesService"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_4__["ModalService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]]) - ], SidebarComponent); - return SidebarComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/staking/staking.component.html": -/*!************************************************!*\ - !*** ./src/app/staking/staking.component.html ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n
    \r\n
    \r\n {{ 'STAKING.TITLE' | translate }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n {{ 'STAKING.TITLE_PENDING' | translate }}\r\n {{pending.total | intToMoney}} {{variablesService.defaultCurrency}}\r\n
    \r\n
    \r\n {{ 'STAKING.TITLE_TOTAL' | translate }}\r\n {{total | intToMoney}} {{variablesService.defaultCurrency}}\r\n
    \r\n
    \r\n
    \r\n {{selectedDate.date | date : 'EEEE, MMMM d, y'}}\r\n {{selectedDate.amount}} {{variablesService.defaultCurrency}}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {{ 'STAKING.TITLE_PERIOD' | translate }}\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n {{ 'STAKING.TITLE_GROUP' | translate }}\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/staking/staking.component.scss": -/*!************************************************!*\ - !*** ./src/app/staking/staking.component.scss ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n display: flex;\n flex-direction: column;\n width: 100%; }\n\n.chart-header {\n display: flex;\n flex: 0 0 auto; }\n\n.chart-header .general {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n flex-grow: 1;\n font-size: 1.3rem;\n margin: -0.5rem 0; }\n\n.chart-header .general > div {\n display: flex;\n align-items: center;\n margin: 0.5rem 0;\n height: 2rem; }\n\n.chart-header .general > div .label {\n display: inline-block;\n width: 9rem; }\n\n.chart-header .selected {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n justify-content: center;\n flex-grow: 1;\n font-size: 1.8rem; }\n\n.chart-header .selected span {\n line-height: 2.9rem; }\n\n.chart {\n position: relative;\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-height: 40rem; }\n\n.chart > div {\n position: absolute;\n width: 100%;\n height: 100%; }\n\n.chart-options {\n display: flex;\n align-items: center;\n height: 2.4rem;\n flex: 0 0 auto; }\n\n.chart-options .title {\n font-size: 1.3rem;\n padding: 0 1rem; }\n\n.chart-options .title:first-child {\n padding-left: 0; }\n\n.chart-options .options {\n display: flex;\n justify-content: space-between;\n flex-grow: 1;\n height: 100%; }\n\n.chart-options .options button {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1 1 auto;\n cursor: pointer;\n font-size: 1.3rem;\n margin: 0 0.1rem;\n padding: 0;\n height: 100%; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3Rha2luZy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzdGFraW5nXFxzdGFraW5nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXLEVBQUE7O0FBR2I7RUFDRSxhQUFhO0VBQ2IsY0FBYyxFQUFBOztBQUZoQjtJQUtJLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLGlCQUFpQixFQUFBOztBQVhyQjtNQWNNLGFBQWE7TUFDYixtQkFBbUI7TUFDbkIsZ0JBQWdCO01BQ2hCLFlBQVksRUFBQTs7QUFqQmxCO1FBb0JRLHFCQUFxQjtRQUNyQixXQUFXLEVBQUE7O0FBckJuQjtJQTJCSSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLHFCQUFxQjtJQUNyQix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLGlCQUFpQixFQUFBOztBQWhDckI7TUFtQ00sbUJBQW1CLEVBQUE7O0FBS3pCO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsY0FBYztFQUNkLGlCQUFpQixFQUFBOztBQUxuQjtJQVFJLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsWUFBWSxFQUFBOztBQUloQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsY0FBYztFQUNkLGNBQWMsRUFBQTs7QUFKaEI7SUFPSSxpQkFBaUI7SUFDakIsZUFBZSxFQUFBOztBQVJuQjtNQVdNLGVBQWUsRUFBQTs7QUFYckI7SUFnQkksYUFBYTtJQUNiLDhCQUE4QjtJQUM5QixZQUFZO0lBQ1osWUFBWSxFQUFBOztBQW5CaEI7TUFzQk0sYUFBYTtNQUNiLG1CQUFtQjtNQUNuQix1QkFBdUI7TUFDdkIsY0FBYztNQUNkLGVBQWU7TUFDZixpQkFBaUI7TUFDakIsZ0JBQWdCO01BQ2hCLFVBQVU7TUFDVixZQUFZLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zdGFraW5nL3N0YWtpbmcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uY2hhcnQtaGVhZGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG5cclxuICAuZ2VuZXJhbCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIG1hcmdpbjogLTAuNXJlbSAwO1xyXG5cclxuICAgID4gZGl2IHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcclxuICAgICAgaGVpZ2h0OiAycmVtO1xyXG5cclxuICAgICAgLmxhYmVsIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDlyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zZWxlY3RlZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjlyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uY2hhcnQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZmxleDogMSAxIGF1dG87XHJcbiAgbWluLWhlaWdodDogNDByZW07XHJcblxyXG4gID4gZGl2IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLmNoYXJ0LW9wdGlvbnMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBoZWlnaHQ6IDIuNHJlbTtcclxuICBmbGV4OiAwIDAgYXV0bztcclxuXHJcbiAgLnRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgcGFkZGluZzogMCAxcmVtO1xyXG5cclxuICAgICY6Zmlyc3QtY2hpbGR7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5vcHRpb25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICBtYXJnaW46IDAgMC4xcmVtO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */" - -/***/ }), - -/***/ "./src/app/staking/staking.component.ts": -/*!**********************************************!*\ - !*** ./src/app/staking/staking.component.ts ***! - \**********************************************/ -/*! exports provided: StakingComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StakingComponent", function() { return StakingComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var angular_highcharts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! angular-highcharts */ "./node_modules/angular-highcharts/fesm5/angular-highcharts.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _helpers_pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/pipes/int-to-money.pipe */ "./src/app/_helpers/pipes/int-to-money.pipe.ts"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! bignumber.js */ "./node_modules/bignumber.js/bignumber.js"); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_7__); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - - -var StakingComponent = /** @class */ (function () { - function StakingComponent(route, variablesService, backend, ngZone, intToMoneyPipe, translate) { - this.route = route; - this.variablesService = variablesService; - this.backend = backend; - this.ngZone = ngZone; - this.intToMoneyPipe = intToMoneyPipe; - this.translate = translate; - this.periods = [ - { - title: this.translate.instant('STAKING.PERIOD.WEEK1'), - key: '1 week', - active: false - }, - { - title: this.translate.instant('STAKING.PERIOD.WEEK2'), - key: '2 week', - active: false - }, - { - title: this.translate.instant('STAKING.PERIOD.MONTH1'), - key: '1 month', - active: false - }, - { - title: this.translate.instant('STAKING.PERIOD.MONTH3'), - key: '3 month', - active: false - }, - { - title: this.translate.instant('STAKING.PERIOD.MONTH6'), - key: '6 month', - active: false - }, - { - title: this.translate.instant('STAKING.PERIOD.YEAR'), - key: '1 year', - active: false - }, - { - title: this.translate.instant('STAKING.PERIOD.ALL'), - key: 'All', - active: true - } - ]; - this.groups = [ - { - title: this.translate.instant('STAKING.GROUP.DAY'), - key: 'day', - active: true - }, - { - title: this.translate.instant('STAKING.GROUP.WEEK'), - key: 'week', - active: false - }, - { - title: this.translate.instant('STAKING.GROUP.MONTH'), - key: 'month', - active: false - } - ]; - this.selectedDate = { - date: null, - amount: null - }; - this.originalData = []; - this.total = new bignumber_js__WEBPACK_IMPORTED_MODULE_7__["BigNumber"](0); - this.pending = { - list: [], - total: new bignumber_js__WEBPACK_IMPORTED_MODULE_7__["BigNumber"](0) - }; - } - StakingComponent_1 = StakingComponent; - StakingComponent.makeGroupTime = function (key, date) { - if (key === 'day') { - return date.setHours(0, 0, 0, 0); - } - else if (key === 'week') { - return new Date(date.setDate(date.getDate() - date.getDay())).setHours(0, 0, 0, 0); - } - else { - return new Date(date.setDate(1)).setHours(0, 0, 0, 0); - } - }; - StakingComponent.prototype.ngOnInit = function () { - var _this = this; - this.parentRouting = this.route.parent.params.subscribe(function () { - _this.getMiningHistory(); - }); - this.heightAppEvent = this.variablesService.getHeightAppEvent.subscribe(function (newHeight) { - if (!_this.pending.total.isZero()) { - var pendingCount = _this.pending.list.length; - for (var i = pendingCount - 1; i >= 0; i--) { - if (newHeight - _this.pending.list[i].h >= 10) { - _this.pending.list.splice(i, 1); - } - } - if (pendingCount !== _this.pending.list.length) { - _this.pending.total = new bignumber_js__WEBPACK_IMPORTED_MODULE_7__["BigNumber"](0); - for (var i = 0; i < _this.pending.list.length; i++) { - _this.pending.total = _this.pending.total.plus(_this.pending.list[i].a); - } - } - } - }); - this.refreshStackingEvent = this.variablesService.getRefreshStackingEvent.subscribe(function (wallet_id) { - if (_this.variablesService.currentWallet.wallet_id === wallet_id) { - _this.getMiningHistory(); - } - }); - }; - StakingComponent.prototype.drawChart = function (data) { - var _this = this; - this.chart = new angular_highcharts__WEBPACK_IMPORTED_MODULE_2__["Chart"]({ - title: { text: '' }, - credits: { enabled: false }, - exporting: { enabled: false }, - legend: { enabled: false }, - chart: { - type: 'line', - backgroundColor: 'transparent', - height: null, - zoomType: null, - events: { - load: function () { - _this.changePeriod(); - } - } - }, - yAxis: { - min: 0, - tickAmount: 5, - title: { - text: '' - }, - gridLineColor: '#2b3644', - gridLineWidth: 2, - lineColor: '#2b3644', - lineWidth: 2, - tickWidth: 2, - tickLength: 120, - tickColor: '#2b3644', - labels: { - y: -8, - align: 'left', - x: -120, - style: { - 'color': '#e0e0e0', - 'fontSize': '13px' - }, - format: '{value} ' + this.variablesService.defaultCurrency - }, - showLastLabel: false, - }, - xAxis: { - type: 'datetime', - gridLineColor: '#2b3644', - lineColor: '#2b3644', - lineWidth: 2, - tickWidth: 2, - tickLength: 10, - tickColor: '#2b3644', - labels: { - style: { - 'color': '#e0e0e0', - 'fontSize': '13px' - } - }, - minPadding: 0, - maxPadding: 0, - minRange: 86400000, - // tickInterval: 86400000, - minTickInterval: 3600000, - }, - tooltip: { - enabled: false - }, - plotOptions: { - area: { - fillColor: { - linearGradient: { - x1: 0, - y1: 0, - x2: 0, - y2: 1 - }, - stops: [ - [0, 'rgba(124,181,236,0.2)'], - [1, 'rgba(124,181,236,0)'] - ] - }, - marker: { - enabled: false, - radius: 2 - }, - lineWidth: 2, - threshold: null - }, - series: { - point: { - events: { - mouseOver: function (obj) { - _this.selectedDate.date = obj.target['x']; - _this.selectedDate.amount = obj.target['y']; - } - } - }, - events: { - mouseOut: function () { - _this.selectedDate.date = null; - _this.selectedDate.amount = null; - } - } - } - }, - series: [ - { - type: 'area', - data: data - } - ] - }); - }; - StakingComponent.prototype.getMiningHistory = function () { - var _this = this; - if (this.variablesService.currentWallet.loaded) { - this.backend.getMiningHistory(this.variablesService.currentWallet.wallet_id, function (status, data) { - _this.total = new bignumber_js__WEBPACK_IMPORTED_MODULE_7__["BigNumber"](0); - _this.pending.list = []; - _this.pending.total = new bignumber_js__WEBPACK_IMPORTED_MODULE_7__["BigNumber"](0); - _this.originalData = []; - if (data.mined_entries) { - data.mined_entries.forEach(function (item, key) { - if (item.t.toString().length === 10) { - data.mined_entries[key].t = (new Date(item.t * 1000)).setUTCMilliseconds(0); - } - }); - data.mined_entries.forEach(function (item) { - _this.total = _this.total.plus(item.a); - if (_this.variablesService.height_app - item.h < 10) { - _this.pending.list.push(item); - _this.pending.total = _this.pending.total.plus(item.a); - } - _this.originalData.push([parseInt(item.t, 10), parseFloat(_this.intToMoneyPipe.transform(item.a))]); - }); - _this.originalData = _this.originalData.sort(function (a, b) { - return a[0] - b[0]; - }); - } - _this.ngZone.run(function () { - _this.drawChart([]); - }); - }); - } - }; - StakingComponent.prototype.changePeriod = function (period) { - if (period) { - this.periods.forEach(function (p) { - p.active = false; - }); - period.active = true; - } - else { - period = this.periods.find(function (p) { return p.active; }); - } - var d = new Date(); - var min = null; - var newData = []; - var group = this.groups.find(function (g) { return g.active; }); - if (period.key === '1 week') { - this.originalData.forEach(function (item) { - var time = StakingComponent_1.makeGroupTime(group.key, new Date(item[0])); - var find = newData.find(function (itemNew) { return itemNew[0] === time; }); - if (find) { - find[1] = new bignumber_js__WEBPACK_IMPORTED_MODULE_7__["BigNumber"](find[1]).plus(item[1]).toNumber(); - } - else { - newData.push([time, item[1]]); - } - }); - this.chart.ref.series[0].setData(newData, true); - min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 7, 0, 0, 0, 0); - } - else if (period.key === '2 week') { - this.originalData.forEach(function (item) { - var time = StakingComponent_1.makeGroupTime(group.key, new Date(item[0])); - var find = newData.find(function (itemNew) { return itemNew[0] === time; }); - if (find) { - find[1] = new bignumber_js__WEBPACK_IMPORTED_MODULE_7__["BigNumber"](find[1]).plus(item[1]).toNumber(); - } - else { - newData.push([time, item[1]]); - } - }); - this.chart.ref.series[0].setData(newData, true); - min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 14, 0, 0, 0, 0); - } - else if (period.key === '1 month') { - this.originalData.forEach(function (item) { - var time = StakingComponent_1.makeGroupTime(group.key, new Date(item[0])); - var find = newData.find(function (itemNew) { return itemNew[0] === time; }); - if (find) { - find[1] = new bignumber_js__WEBPACK_IMPORTED_MODULE_7__["BigNumber"](find[1]).plus(item[1]).toNumber(); - } - else { - newData.push([time, item[1]]); - } - }); - this.chart.ref.series[0].setData(newData, true); - min = Date.UTC(d.getFullYear(), d.getMonth() - 1, d.getDate(), 0, 0, 0, 0); - } - else if (period.key === '3 month') { - this.originalData.forEach(function (item) { - var time = StakingComponent_1.makeGroupTime(group.key, new Date(item[0])); - var find = newData.find(function (itemNew) { return itemNew[0] === time; }); - if (find) { - find[1] = new bignumber_js__WEBPACK_IMPORTED_MODULE_7__["BigNumber"](find[1]).plus(item[1]).toNumber(); - } - else { - newData.push([time, item[1]]); - } - }); - this.chart.ref.series[0].setData(newData, true); - min = Date.UTC(d.getFullYear(), d.getMonth() - 3, d.getDate(), 0, 0, 0, 0); - } - else if (period.key === '6 month') { - this.originalData.forEach(function (item) { - var time = StakingComponent_1.makeGroupTime(group.key, new Date(item[0])); - var find = newData.find(function (itemNew) { return itemNew[0] === time; }); - if (find) { - find[1] = new bignumber_js__WEBPACK_IMPORTED_MODULE_7__["BigNumber"](find[1]).plus(item[1]).toNumber(); - } - else { - newData.push([time, item[1]]); - } - }); - this.chart.ref.series[0].setData(newData, true); - min = Date.UTC(d.getFullYear(), d.getMonth() - 6, d.getDate(), 0, 0, 0, 0); - } - else if (period.key === '1 year') { - this.originalData.forEach(function (item) { - var time = StakingComponent_1.makeGroupTime(group.key, new Date(item[0])); - var find = newData.find(function (itemNew) { return itemNew[0] === time; }); - if (find) { - find[1] = new bignumber_js__WEBPACK_IMPORTED_MODULE_7__["BigNumber"](find[1]).plus(item[1]).toNumber(); - } - else { - newData.push([time, item[1]]); - } - }); - this.chart.ref.series[0].setData(newData, true); - min = Date.UTC(d.getFullYear() - 1, d.getMonth(), d.getDate(), 0, 0, 0, 0); - } - else { - this.originalData.forEach(function (item) { - var time = StakingComponent_1.makeGroupTime(group.key, new Date(item[0])); - var find = newData.find(function (itemNew) { return itemNew[0] === time; }); - if (find) { - find[1] = new bignumber_js__WEBPACK_IMPORTED_MODULE_7__["BigNumber"](find[1]).plus(item[1]).toNumber(); - } - else { - newData.push([time, item[1]]); - } - }); - this.chart.ref.series[0].setData(newData, true); - } - this.chart.ref.xAxis[0].setExtremes(min, null); - }; - StakingComponent.prototype.changeGroup = function (group) { - this.groups.forEach(function (g) { - g.active = false; - }); - group.active = true; - this.changePeriod(); - }; - StakingComponent.prototype.ngOnDestroy = function () { - this.parentRouting.unsubscribe(); - this.heightAppEvent.unsubscribe(); - this.refreshStackingEvent.unsubscribe(); - }; - var StakingComponent_1; - StakingComponent = StakingComponent_1 = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-staking', - template: __webpack_require__(/*! ./staking.component.html */ "./src/app/staking/staking.component.html"), - styles: [__webpack_require__(/*! ./staking.component.scss */ "./src/app/staking/staking.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_4__["ActivatedRoute"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_1__["VariablesService"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], - _helpers_pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_5__["IntToMoneyPipe"], - _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__["TranslateService"]]) - ], StakingComponent); - return StakingComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/transfer-alias/transfer-alias.component.html": -/*!**************************************************************!*\ - !*** ./src/app/transfer-alias/transfer-alias.component.html ***! - \**************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n\r\n
    \r\n
    \r\n {{ wallet.name }}\r\n {{ 'BREADCRUMBS.TRANSFER_ALIAS' | translate }}\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    0 && (transferAddressAlias || !transferAddressValid || (transferAddressValid && !permissionSend) || notEnoughMoney)\">\r\n
    \r\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.WRONG_ADDRESS' | translate }}\r\n
    \r\n
    \r\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.ALIAS_EXISTS' | translate }}\r\n
    \r\n
    \r\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\r\n
    \r\n
    \r\n
    \r\n\r\n
    {{ \"TRANSFER_ALIAS.COST\" | translate : {value: variablesService.default_fee, currency: variablesService.defaultCurrency} }}
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/transfer-alias/transfer-alias.component.scss": -/*!**************************************************************!*\ - !*** ./src/app/transfer-alias/transfer-alias.component.scss ***! - \**************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ".form-transfer {\n margin: 2.4rem 0; }\n .form-transfer .alias-name {\n width: 50%; }\n .form-transfer .alias-cost {\n font-size: 1.3rem;\n margin-top: 2rem; }\n .form-transfer .wrap-buttons {\n display: flex;\n justify-content: space-between;\n margin: 2.5rem -0.7rem; }\n .form-transfer .wrap-buttons button {\n margin: 0 0.7rem;\n width: 15rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdHJhbnNmZXItYWxpYXMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcdHJhbnNmZXItYWxpYXNcXHRyYW5zZmVyLWFsaWFzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFBQTtFQVRwQjtJQWFJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsc0JBQXNCLEVBQUE7RUFmMUI7TUFrQk0sZ0JBQWdCO01BQ2hCLFlBQVksRUFBQSIsImZpbGUiOiJzcmMvYXBwL3RyYW5zZmVyLWFsaWFzL3RyYW5zZmVyLWFsaWFzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tdHJhbnNmZXIge1xyXG4gIG1hcmdpbjogMi40cmVtIDA7XHJcblxyXG4gIC5hbGlhcy1uYW1lIHtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgfVxyXG5cclxuICAuYWxpYXMtY29zdCB7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIG1hcmdpbi10b3A6IDJyZW07XHJcbiAgfVxyXG5cclxuICAud3JhcC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW46IDIuNXJlbSAtMC43cmVtO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjdyZW07XHJcbiAgICAgIHdpZHRoOiAxNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */" - -/***/ }), - -/***/ "./src/app/transfer-alias/transfer-alias.component.ts": -/*!************************************************************!*\ - !*** ./src/app/transfer-alias/transfer-alias.component.ts ***! - \************************************************************/ -/*! exports provided: TransferAliasComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TransferAliasComponent", function() { return TransferAliasComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm5/common.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/services/modal.service */ "./src/app/_helpers/services/modal.service.ts"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - -var TransferAliasComponent = /** @class */ (function () { - function TransferAliasComponent(location, router, backend, variablesService, modalService, ngZone) { - this.location = location; - this.router = router; - this.backend = backend; - this.variablesService = variablesService; - this.modalService = modalService; - this.ngZone = ngZone; - this.transferAddress = ''; - this.requestProcessing = false; - } - TransferAliasComponent.prototype.ngOnInit = function () { - this.wallet = this.variablesService.currentWallet; - var alias = this.backend.getWalletAlias(this.wallet.address); - this.alias = { - name: alias.name, - address: alias.address, - comment: alias.comment, - tracking_key: alias.tracking_key - }; - this.notEnoughMoney = this.wallet.unlocked_balance.isLessThan(this.variablesService.default_fee_big); - }; - TransferAliasComponent.prototype.changeAddress = function () { - var _this = this; - this.backend.validateAddress(this.transferAddress, function (status) { - _this.transferAddressValid = status; - if (status) { - _this.backend.getPoolInfo(function (statusPool, dataPool) { - if (dataPool.hasOwnProperty('aliases_que') && dataPool.aliases_que.length) { - _this.setStatus(!dataPool.aliases_que.some(function (el) { return el.address === _this.transferAddress; })); - } - else { - _this.setStatus(status); - } - }); - } - else { - _this.setStatus(false); - } - }); - }; - TransferAliasComponent.prototype.setStatus = function (statusSet) { - var _this = this; - this.permissionSend = statusSet; - if (statusSet) { - this.backend.getAliasByAddress(this.transferAddress, function (status) { - _this.ngZone.run(function () { - if (status) { - _this.transferAddressAlias = true; - _this.permissionSend = false; - } - else { - _this.transferAddressAlias = false; - } - }); - }); - } - else { - this.ngZone.run(function () { - _this.transferAddressAlias = false; - }); - } - }; - TransferAliasComponent.prototype.transferAlias = function () { - var _this = this; - if (this.requestProcessing || !this.permissionSend || !this.transferAddressValid || this.notEnoughMoney) { - return; - } - this.requestProcessing = true; - var newAlias = { - name: this.alias.name, - address: this.transferAddress, - comment: this.alias.comment, - tracking_key: this.alias.tracking_key - }; - this.backend.updateAlias(this.wallet.wallet_id, newAlias, this.variablesService.default_fee, function (status, data) { - if (status && data.hasOwnProperty('success') && data.success) { - _this.modalService.prepareModal('info', 'TRANSFER_ALIAS.REQUEST_SEND_REG'); - _this.ngZone.run(function () { - _this.router.navigate(['/wallet/' + _this.wallet.wallet_id]); - }); - } - _this.requestProcessing = false; - }); - }; - TransferAliasComponent.prototype.back = function () { - this.location.back(); - }; - TransferAliasComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-transfer-alias', - template: __webpack_require__(/*! ./transfer-alias.component.html */ "./src/app/transfer-alias/transfer-alias.component.html"), - styles: [__webpack_require__(/*! ./transfer-alias.component.scss */ "./src/app/transfer-alias/transfer-alias.component.scss")] - }), - __metadata("design:paramtypes", [_angular_common__WEBPACK_IMPORTED_MODULE_1__["Location"], - _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_4__["VariablesService"], - _helpers_services_modal_service__WEBPACK_IMPORTED_MODULE_5__["ModalService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]]) - ], TransferAliasComponent); - return TransferAliasComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/typing-message/typing-message.component.html": -/*!**************************************************************!*\ - !*** ./src/app/typing-message/typing-message.component.html ***! - \**************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n
    \r\n @bitmain\r\n
    \r\n \r\n \r\n {{ 'COMMON.BACK' | translate }}\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    10:39
    \r\n
    \r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
    \r\n
    \r\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n
    \r\n
    \r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
    \r\n
    \r\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n
    \r\n
    11:44
    \r\n
    \r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
    \r\n
    \r\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n
    \r\n
    \r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
    \r\n
    12:15
    \r\n
    \r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
    \r\n
    \r\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n
    \r\n
    \r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
    \r\n
    13:13
    \r\n
    \r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
    \r\n
    \r\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n
    \r\n
    \r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/typing-message/typing-message.component.scss": -/*!**************************************************************!*\ - !*** ./src/app/typing-message/typing-message.component.scss ***! - \**************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n display: flex;\n flex-direction: column;\n width: 100%; }\n\n.head {\n flex: 0 0 auto;\n box-sizing: content-box;\n margin: -3rem -3rem 0; }\n\n.messages-content {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex-grow: 1; }\n\n.messages-content .messages-list {\n display: flex;\n flex-direction: column;\n font-size: 1.3rem;\n margin: 1rem -3rem;\n padding: 0 3rem;\n overflow-y: overlay; }\n\n.messages-content .messages-list div {\n margin: 0.7rem 0; }\n\n.messages-content .messages-list div.date {\n text-align: center; }\n\n.messages-content .messages-list div.my, .messages-content .messages-list div.buddy {\n position: relative;\n padding: 1.8rem;\n max-width: 60%; }\n\n.messages-content .messages-list div.buddy {\n align-self: flex-end; }\n\n.messages-content .type-message {\n display: flex;\n flex: 0 0 auto;\n width: 100%;\n height: 4.2rem; }\n\n.messages-content .type-message .input-block {\n width: 100%; }\n\n.messages-content .type-message .input-block > textarea {\n min-height: 4.2rem; }\n\n.messages-content .type-message button {\n flex: 0 0 15rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdHlwaW5nLW1lc3NhZ2UvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcdHlwaW5nLW1lc3NhZ2VcXHR5cGluZy1tZXNzYWdlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXLEVBQUE7O0FBR2I7RUFDRSxjQUFjO0VBQ2QsdUJBQXVCO0VBQ3ZCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsOEJBQThCO0VBQzlCLFlBQVksRUFBQTs7QUFKZDtJQU9JLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsbUJBQW1CLEVBQUE7O0FBWnZCO01BZU0sZ0JBQWdCLEVBQUE7O0FBZnRCO1FBa0JRLGtCQUFrQixFQUFBOztBQWxCMUI7UUFzQlEsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixjQUFjLEVBQUE7O0FBeEJ0QjtRQTRCUSxvQkFBb0IsRUFBQTs7QUE1QjVCO0lBa0NJLGFBQWE7SUFDYixjQUFjO0lBQ2QsV0FBVztJQUNYLGNBQWMsRUFBQTs7QUFyQ2xCO01Bd0NNLFdBQVcsRUFBQTs7QUF4Q2pCO1FBMkNRLGtCQUFrQixFQUFBOztBQTNDMUI7TUFnRE0sZUFBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvdHlwaW5nLW1lc3NhZ2UvdHlwaW5nLW1lc3NhZ2UuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uaGVhZCB7XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgbWFyZ2luOiAtM3JlbSAtM3JlbSAwO1xyXG59XHJcblxyXG4ubWVzc2FnZXMtY29udGVudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBmbGV4LWdyb3c6IDE7XHJcblxyXG4gIC5tZXNzYWdlcy1saXN0IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBtYXJnaW46IDFyZW0gLTNyZW07XHJcbiAgICBwYWRkaW5nOiAwIDNyZW07XHJcbiAgICBvdmVyZmxvdy15OiBvdmVybGF5O1xyXG5cclxuICAgIGRpdiB7XHJcbiAgICAgIG1hcmdpbjogMC43cmVtIDA7XHJcblxyXG4gICAgICAmLmRhdGUge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5teSwgJi5idWRkeSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHBhZGRpbmc6IDEuOHJlbTtcclxuICAgICAgICBtYXgtd2lkdGg6IDYwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5idWRkeSB7XHJcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50eXBlLW1lc3NhZ2Uge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXg6IDAgMCBhdXRvO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDQuMnJlbTtcclxuXHJcbiAgICAuaW5wdXQtYmxvY2sge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgID4gdGV4dGFyZWEge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDQuMnJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGZsZXg6IDAgMCAxNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiJdfQ== */" - -/***/ }), - -/***/ "./src/app/typing-message/typing-message.component.ts": -/*!************************************************************!*\ - !*** ./src/app/typing-message/typing-message.component.ts ***! - \************************************************************/ -/*! exports provided: TypingMessageComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TypingMessageComponent", function() { return TypingMessageComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - -var TypingMessageComponent = /** @class */ (function () { - function TypingMessageComponent(route) { - this.route = route; - this.route.params.subscribe(function (params) { return console.log(params); }); - } - TypingMessageComponent.prototype.ngOnInit = function () { - }; - TypingMessageComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-typing-message', - template: __webpack_require__(/*! ./typing-message.component.html */ "./src/app/typing-message/typing-message.component.html"), - styles: [__webpack_require__(/*! ./typing-message.component.scss */ "./src/app/typing-message/typing-message.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_1__["ActivatedRoute"]]) - ], TypingMessageComponent); - return TypingMessageComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/wallet-details/wallet-details.component.html": -/*!**************************************************************!*\ - !*** ./src/app/wallet-details/wallet-details.component.html ***! - \**************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n\r\n
    \r\n
    \r\n {{variablesService.currentWallet.name}}\r\n {{ 'BREADCRUMBS.WALLET_DETAILS' | translate }}\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\r\n
    \r\n
    \r\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\r\n
    \r\n
    \r\n
    = variablesService.maxWalletNameLength\">\r\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\r\n \r\n\r\n \r\n\r\n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\r\n

    \r\n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }} \r\n 0\">{{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }} \r\n

    \r\n
    \r\n
    \r\n \r\n
    = 1 && (index + 1) <= 7 || (index + 1) >= 15 && (index + 1) <= 21\">\r\n {{(index + 1) + '. ' + word}}
    \r\n
    \r\n
    \r\n
    0\">\r\n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\r\n
    \r\n
    \r\n
    \r\n
    " - -/***/ }), - -/***/ "./src/app/wallet-details/wallet-details.component.scss": -/*!**************************************************************!*\ - !*** ./src/app/wallet-details/wallet-details.component.scss ***! - \**************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ".form-details {\n margin-top: 1.8rem; }\n .form-details .input-block:first-child {\n width: 50%; }\n .form-details .wallet-buttons {\n display: flex;\n align-items: center;\n justify-content: space-between; }\n .form-details .wallet-buttons button {\n margin: 2.9rem 0;\n width: 100%;\n max-width: 15rem; }\n .mt-2 {\n margin-top: 2rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvd2FsbGV0LWRldGFpbHMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcd2FsbGV0LWRldGFpbHNcXHdhbGxldC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7RUFEcEI7SUFNTSxVQUFVLEVBQUE7RUFOaEI7SUFXSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4QixFQUFBO0VBYmxDO01BZ0JNLGdCQUFnQjtNQUNoQixXQUFXO01BQ1gsZ0JBQWdCLEVBQUE7RUFLdEI7RUFDRSxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3dhbGxldC1kZXRhaWxzL3dhbGxldC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tZGV0YWlscyB7XHJcbiAgbWFyZ2luLXRvcDogMS44cmVtO1xyXG5cclxuICAuaW5wdXQtYmxvY2sge1xyXG5cclxuICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLndhbGxldC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMi45cmVtIDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXgtd2lkdGg6IDE1cmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm10LTIge1xyXG4gIG1hcmdpbi10b3A6IDJyZW07XHJcbn1cclxuIl19 */" - -/***/ }), - -/***/ "./src/app/wallet-details/wallet-details.component.ts": -/*!************************************************************!*\ - !*** ./src/app/wallet-details/wallet-details.component.ts ***! - \************************************************************/ -/*! exports provided: WalletDetailsComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WalletDetailsComponent", function() { return WalletDetailsComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm5/common.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - -var WalletDetailsComponent = /** @class */ (function () { - function WalletDetailsComponent(router, backend, variablesService, ngZone, location) { - var _this = this; - this.router = router; - this.backend = backend; - this.variablesService = variablesService; - this.ngZone = ngZone; - this.location = location; - this.seedPhrase = ''; - this.showSeed = false; - this.copyAnimation = false; - this.detailsForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]({ - name: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', [ - _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required, - function (g) { - for (var i = 0; i < _this.variablesService.wallets.length; i++) { - if (g.value === _this.variablesService.wallets[i].name) { - if (_this.variablesService.wallets[i].wallet_id === - _this.variablesService.currentWallet.wallet_id) { - return { same: true }; - } - else { - return { duplicate: true }; - } - } - } - return null; - }, - ]), - path: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"](''), - }); - this.seedPhraseForm = new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormGroup"]({ - password: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].pattern(this.variablesService.pattern)), - confirmPassword: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].pattern(this.variablesService.pattern)), - }, { validators: this.checkPasswords }); - } - WalletDetailsComponent.prototype.checkPasswords = function (group) { - var pass = group.controls.password.value; - var confirmPass = group.controls.confirmPassword.value; - return pass === confirmPass ? null : { notSame: true }; - }; - WalletDetailsComponent.prototype.ngOnInit = function () { - this.showSeed = false; - this.detailsForm - .get('name') - .setValue(this.variablesService.currentWallet.name); - this.detailsForm - .get('path') - .setValue(this.variablesService.currentWallet.path); - }; - WalletDetailsComponent.prototype.showSeedPhrase = function () { - this.showSeed = true; - }; - WalletDetailsComponent.prototype.onSubmitSeed = function () { - var _this = this; - if (this.seedPhraseForm.valid) { - this.showSeedPhrase(); - var wallet_id = this.variablesService.currentWallet.wallet_id; - var seed_password = this.seedPhraseForm.controls.password.value; - this.backend.getSmartWalletInfo({ wallet_id: wallet_id, seed_password: seed_password }, function (status, data) { - if (data.hasOwnProperty('seed_phrase')) { - _this.ngZone.run(function () { - _this.seedPhrase = data['seed_phrase'].trim(); - }); - } - }); - } - }; - WalletDetailsComponent.prototype.onSubmitEdit = function () { - var _this = this; - if (this.detailsForm.value) { - this.variablesService.currentWallet.name = this.detailsForm.get('name').value; - this.ngZone.run(function () { - _this.router.navigate([ - '/wallet/' + _this.variablesService.currentWallet.wallet_id, - ]); - }); - } - }; - WalletDetailsComponent.prototype.closeWallet = function () { - var _this = this; - this.backend.closeWallet(this.variablesService.currentWallet.wallet_id, function () { - for (var i = _this.variablesService.wallets.length - 1; i >= 0; i--) { - if (_this.variablesService.wallets[i].wallet_id === - _this.variablesService.currentWallet.wallet_id) { - _this.variablesService.wallets.splice(i, 1); - } - } - _this.ngZone.run(function () { - if (_this.variablesService.wallets.length) { - _this.variablesService.currentWallet = _this.variablesService.wallets[0]; - _this.router.navigate([ - '/wallet/' + _this.variablesService.currentWallet.wallet_id, - ]); - } - else { - _this.router.navigate(['/']); - } - }); - if (_this.variablesService.appPass) { - _this.backend.storeSecureAppData(); - } - }); - }; - WalletDetailsComponent.prototype.back = function () { - this.location.back(); - }; - WalletDetailsComponent.prototype.ngOnDestroy = function () { - }; - WalletDetailsComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-wallet-details', - template: __webpack_require__(/*! ./wallet-details.component.html */ "./src/app/wallet-details/wallet-details.component.html"), - styles: [__webpack_require__(/*! ./wallet-details.component.scss */ "./src/app/wallet-details/wallet-details.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_4__["Router"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_2__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_3__["VariablesService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], - _angular_common__WEBPACK_IMPORTED_MODULE_5__["Location"]]) - ], WalletDetailsComponent); - return WalletDetailsComponent; -}()); - - - -/***/ }), - -/***/ "./src/app/wallet/wallet.component.html": -/*!**********************************************!*\ - !*** ./src/app/wallet/wallet.component.html ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "
    \r\n
    \r\n

    {{variablesService.currentWallet.name}}

    \r\n
    \r\n \r\n
    \r\n {{variablesService.currentWallet.alias['name']}}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {{variablesService.currentWallet.address}}\r\n \r\n
    \r\n
    \r\n {{variablesService.currentWallet.balance | intToMoney : '3'}} {{variablesService.defaultCurrency}}\r\n $ {{variablesService.currentWallet.getMoneyEquivalent(variablesService.moneyEquivalent) | intToMoney | number : '1.2-2'}}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{ tab.title | translate }}\r\n {{variablesService.currentWallet.new_contracts}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n <\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n >\r\n \r\n\r\n
    \r\n
    \r\n Hide mining transactions\r\n
    \r\n {{ 'STAKING.SWITCH.ON' | translate }}\r\n \r\n {{ 'STAKING.SWITCH.OFF' | translate }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n" - -/***/ }), - -/***/ "./src/app/wallet/wallet.component.scss": -/*!**********************************************!*\ - !*** ./src/app/wallet/wallet.component.scss ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = ":host {\n position: relative;\n display: flex;\n flex-direction: column;\n padding: 0 3rem 3rem;\n min-width: 95rem;\n width: 100%;\n height: 100%; }\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex: 0 0 auto;\n height: 8rem; }\n\n.header > div {\n display: flex;\n align-items: center; }\n\n.header > div :not(:last-child) {\n margin-right: 3.2rem; }\n\n.header h3 {\n font-size: 1.7rem;\n font-weight: 600;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 50rem;\n line-height: 2.7rem; }\n\n.header button {\n display: flex;\n align-items: center;\n background: transparent;\n border: none;\n cursor: pointer;\n font-weight: 400;\n outline: none;\n padding: 0; }\n\n.header button .icon {\n margin-right: 1.2rem;\n width: 1.7rem;\n height: 1.7rem; }\n\n.header button .icon.account {\n height: 1.6rem;\n -webkit-mask: url('account.svg') no-repeat center;\n mask: url('account.svg') no-repeat center; }\n\n.header button .icon.lock {\n -webkit-mask: url('lock.svg') no-repeat center;\n mask: url('lock.svg') no-repeat center; }\n\n.header button .icon.details {\n -webkit-mask: url('details-settings.svg') no-repeat center;\n mask: url('details-settings.svg') no-repeat center;\n margin-right: 0;\n height: 1.8rem; }\n\n.header button .icon.close-wallet {\n -webkit-mask: url('close-wallet.svg') no-repeat center;\n mask: url('close-wallet.svg') no-repeat center;\n margin-right: 0; }\n\n.header .alias {\n display: flex;\n align-items: center;\n font-size: 1.3rem; }\n\n.header .alias .icon {\n cursor: pointer;\n margin-right: 1.2rem;\n width: 1.7rem;\n height: 1.7rem; }\n\n.header .alias .icon.edit {\n -webkit-mask: url('details.svg') no-repeat center;\n mask: url('details.svg') no-repeat center; }\n\n.header .alias .icon.transfer {\n -webkit-mask: url('send.svg') no-repeat center;\n mask: url('send.svg') no-repeat center; }\n\n.address {\n display: flex;\n align-items: center;\n flex: 0 0 auto;\n font-size: 1.4rem;\n line-height: 1.7rem; }\n\n.address .icon {\n cursor: pointer;\n margin-left: 1.2rem;\n width: 1.7rem;\n height: 1.7rem; }\n\n.address .icon.copy {\n width: 1.8rem;\n -webkit-mask: url('copy.svg') no-repeat center;\n mask: url('copy.svg') no-repeat center; }\n\n.address .icon.copy:hover {\n opacity: 0.75; }\n\n.address .icon.copied {\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\n mask: url('complete-testwallet.svg') no-repeat center; }\n\n.balance {\n display: flex;\n align-items: flex-end;\n justify-content: flex-start;\n flex: 0 0 auto;\n margin: 2.6rem 0; }\n\n.balance :first-child {\n font-size: 3.3rem;\n font-weight: 600;\n line-height: 2.4rem;\n margin-right: 3.5rem; }\n\n.balance :last-child {\n font-size: 1.8rem;\n font-weight: 600;\n line-height: 1.3rem; }\n\n.tabs {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto; }\n\n.tabs .tabs-header {\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto; }\n\n.tabs .tabs-header .tab {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1 0 auto;\n cursor: pointer;\n padding: 0 1rem;\n height: 5rem; }\n\n.tabs .tabs-header .tab.hide {\n display: none; }\n\n.tabs .tabs-header .tab .animated {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 1.3rem; }\n\n.tabs .tabs-header .tab .animated ::ng-deep svg {\n width: 2rem;\n height: 2rem; }\n\n.tabs .tabs-header .tab .animated ::ng-deep svg path, .tabs .tabs-header .tab .animated ::ng-deep svg circle, .tabs .tabs-header .tab .animated ::ng-deep svg polygon {\n fill: #4db1ff; }\n\n.tabs .tabs-header .tab .icon {\n margin-right: 1.3rem;\n width: 2rem;\n height: 2rem; }\n\n.tabs .tabs-header .tab .icon.send {\n -webkit-mask: url('send.svg') no-repeat center;\n mask: url('send.svg') no-repeat center; }\n\n.tabs .tabs-header .tab .icon.receive {\n -webkit-mask: url('receive.svg') no-repeat center;\n mask: url('receive.svg') no-repeat center; }\n\n.tabs .tabs-header .tab .icon.history {\n -webkit-mask: url('history.svg') no-repeat center;\n mask: url('history.svg') no-repeat center; }\n\n.tabs .tabs-header .tab .icon.contracts {\n -webkit-mask: url('contracts.svg') no-repeat center;\n mask: url('contracts.svg') no-repeat center; }\n\n.tabs .tabs-header .tab .icon.messages {\n -webkit-mask: url('message.svg') no-repeat center;\n mask: url('message.svg') no-repeat center; }\n\n.tabs .tabs-header .tab .icon.staking {\n -webkit-mask: url('staking.svg') no-repeat center;\n mask: url('staking.svg') no-repeat center; }\n\n.tabs .tabs-header .tab .indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 1rem;\n font-size: 1rem;\n font-weight: 600;\n margin-left: 1.3rem;\n padding: 0 0.5rem;\n min-width: 1.6rem;\n height: 1.6rem; }\n\n.tabs .tabs-header .tab.disabled {\n cursor: url('not-allowed.svg'), not-allowed; }\n\n.tabs .tabs-header .tab:not(:last-child) {\n margin-right: 0.3rem; }\n\n.tabs .tabs-content {\n display: flex;\n padding: 3rem;\n flex: 1 1 auto;\n overflow-x: hidden;\n overflow-y: overlay; }\n\n.tabs .pagination-wrapper .pagination {\n padding: 1rem;\n display: flex;\n justify-content: space-between;\n align-items: center; }\n\n.tabs .pagination-wrapper .pagination button {\n margin-right: 0.5rem;\n padding: 0;\n width: 2.5rem;\n height: 2.5rem;\n font-size: 1.2rem;\n transition: all 0.3s; }\n\n.tabs .pagination-wrapper .pagination .disabled {\n background-color: #18202a;\n color: #e0e0e0;\n opacity: 0.3;\n cursor: default;\n transition: all 0.3s; }\n\n.mining-transaction-switch {\n display: flex;\n align-items: center; }\n\n.mining-transaction-switch .switch-text {\n margin-right: 1rem;\n font-size: 1.3rem;\n color: #565c62; }\n\n.mining-transaction-switch .switch {\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 1rem;\n cursor: pointer;\n font-size: 1rem;\n padding: 0.5rem;\n width: 5rem;\n height: 2rem; }\n\n.mining-transaction-switch .switch .circle {\n border-radius: 1rem;\n width: 1.2rem;\n height: 1.2rem; }\n\n.mining-transaction-switch .switch .option {\n margin: 0 0.2rem;\n line-height: 1.2rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvd2FsbGV0L0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXHdhbGxldFxcd2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsb0JBQW9CO0VBQ3BCLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsWUFBWSxFQUFBOztBQUdkO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsY0FBYztFQUNkLFlBQVksRUFBQTs7QUFMZDtJQVFJLGFBQWE7SUFDYixtQkFBbUIsRUFBQTs7QUFUdkI7TUFZTSxvQkFBb0IsRUFBQTs7QUFaMUI7SUFpQkksaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQix1QkFBdUI7SUFDdkIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsbUJBQW1CLEVBQUE7O0FBdkJ2QjtJQTJCSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixZQUFZO0lBQ1osZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixhQUFhO0lBQ2IsVUFBVSxFQUFBOztBQWxDZDtNQXFDTSxvQkFBb0I7TUFDcEIsYUFBYTtNQUNiLGNBQWMsRUFBQTs7QUF2Q3BCO1FBMENRLGNBQWM7UUFDZCxpREFBMEQ7Z0JBQTFELHlDQUEwRCxFQUFBOztBQTNDbEU7UUErQ1EsOENBQXVEO2dCQUF2RCxzQ0FBdUQsRUFBQTs7QUEvQy9EO1FBbURRLDBEQUFtRTtnQkFBbkUsa0RBQW1FO1FBQ25FLGVBQWU7UUFDZixjQUFjLEVBQUE7O0FBckR0QjtRQXlEUSxzREFBK0Q7Z0JBQS9ELDhDQUErRDtRQUMvRCxlQUFlLEVBQUE7O0FBMUR2QjtJQWdFSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGlCQUFpQixFQUFBOztBQWxFckI7TUFxRU0s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QVksRUFBQTs7QUFsQmhCO01BcUJNLG1CQUFtQjtNQUNuQixhQUFhO01BQ2IsY0FBYyxFQUFBOztBQXZCcEI7TUEyQk0sZ0JBQWdCO01BQ2hCLG1CQUFtQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvd2FsbGV0L3dhbGxldC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHBhZGRpbmc6IDAgM3JlbSAzcmVtO1xyXG4gIG1pbi13aWR0aDogOTVyZW07XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uaGVhZGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIGhlaWdodDogOHJlbTtcclxuXHJcbiAgPiBkaXYge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDMuMnJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGgzIHtcclxuICAgIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBtYXgtd2lkdGg6IDUwcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjJyZW07XHJcbiAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgIGhlaWdodDogMS43cmVtO1xyXG5cclxuICAgICAgJi5hY2NvdW50IHtcclxuICAgICAgICBoZWlnaHQ6IDEuNnJlbTtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2FjY291bnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmxvY2sge1xyXG4gICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvbG9jay5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuZGV0YWlscyB7XHJcbiAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9kZXRhaWxzLXNldHRpbmdzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiAxLjhyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuY2xvc2Utd2FsbGV0IHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2Nsb3NlLXdhbGxldC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuYWxpYXMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjJyZW07XHJcbiAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgIGhlaWdodDogMS43cmVtO1xyXG5cclxuICAgICAgJi5lZGl0IHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2RldGFpbHMuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnRyYW5zZmVyIHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3NlbmQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uYWRkcmVzcyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjdyZW07XHJcblxyXG4gIC5pY29uIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07XHJcbiAgICB3aWR0aDogMS43cmVtO1xyXG4gICAgaGVpZ2h0OiAxLjdyZW07XHJcblxyXG4gICAgJi5jb3B5IHtcclxuICAgICAgd2lkdGg6IDEuOHJlbTtcclxuICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9jb3B5LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIG9wYWNpdHk6IDAuNzU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmNvcGllZCB7XHJcbiAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvY29tcGxldGUtdGVzdHdhbGxldC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uYmFsYW5jZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIG1hcmdpbjogMi42cmVtIDA7XHJcblxyXG4gIDpmaXJzdC1jaGlsZCB7XHJcbiAgICBmb250LXNpemU6IDMuM3JlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAzLjVyZW07XHJcbiAgfVxyXG5cclxuICA6bGFzdC1jaGlsZCB7XHJcbiAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zcmVtO1xyXG4gIH1cclxufVxyXG5cclxuLnRhYnMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBmbGV4OiAxIDEgYXV0bztcclxuXHJcbiAgLnRhYnMtaGVhZGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4OiAwIDAgYXV0bztcclxuXHJcbiAgICAudGFiIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICAgICAgaGVpZ2h0OiA1cmVtO1xyXG4gICAgICAmLmhpZGUge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgICAgLmFuaW1hdGVkIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjNyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5hbmltYXRlZCA6Om5nLWRlZXAgc3ZnIHtcclxuXHJcbiAgICAgICAgd2lkdGg6IDJyZW07XHJcbiAgICAgICAgaGVpZ2h0OiAycmVtO1xyXG5cclxuICAgICAgICBwYXRoLCBjaXJjbGUsIHBvbHlnb24ge1xyXG4gICAgICAgICAgZmlsbDogIzRkYjFmZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5pY29uIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuM3JlbTtcclxuICAgICAgICB3aWR0aDogMnJlbTtcclxuICAgICAgICBoZWlnaHQ6IDJyZW07XHJcblxyXG4gICAgICAgICYuc2VuZCB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3NlbmQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5yZWNlaXZlIHtcclxuICAgICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvcmVjZWl2ZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmhpc3Rvcnkge1xyXG4gICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9oaXN0b3J5LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuY29udHJhY3RzIHtcclxuICAgICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvY29udHJhY3RzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYubWVzc2FnZXMge1xyXG4gICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9tZXNzYWdlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuc3Rha2luZyB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3N0YWtpbmcuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmluZGljYXRvciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuM3JlbTtcclxuICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcclxuICAgICAgICBtaW4td2lkdGg6IDEuNnJlbTtcclxuICAgICAgICBoZWlnaHQ6IDEuNnJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5kaXNhYmxlZCB7XHJcbiAgICAgICAgY3Vyc29yOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL25vdC1hbGxvd2VkLnN2ZyksIG5vdC1hbGxvd2VkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMC4zcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudGFicy1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBwYWRkaW5nOiAzcmVtO1xyXG4gICAgZmxleDogMSAxIGF1dG87XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICBvdmVyZmxvdy15OiBvdmVybGF5O1xyXG4gIH1cclxuXHJcblxyXG4gIC5wYWdpbmF0aW9uLXdyYXBwZXIge1xyXG4gICAgLnBhZ2luYXRpb24ge1xyXG4gICAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB3aWR0aDogMi41cmVtO1xyXG4gICAgICAgIGhlaWdodDogMi41cmVtO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG4gICAgICB9XHJcbiAgICAgIC5kaXNhYmxlZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE4MjAyYTtcclxuICAgICAgICBjb2xvcjogI2UwZTBlMDtcclxuICAgICAgICBvcGFjaXR5OiAwLjM7XHJcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubWluaW5nLXRyYW5zYWN0aW9uLXN3aXRjaCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIC5zd2l0Y2gtdGV4dCB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIGNvbG9yOiAjNTY1YzYyO1xyXG4gIH1cclxuXHJcbiAgLnN3aXRjaCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICBwYWRkaW5nOiAwLjVyZW07XHJcbiAgICB3aWR0aDogNXJlbTtcclxuICAgIGhlaWdodDogMnJlbTtcclxuXHJcbiAgICAuY2lyY2xlIHtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcclxuICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLm9wdGlvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjJyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0= */" - -/***/ }), - -/***/ "./src/app/wallet/wallet.component.ts": -/*!********************************************!*\ - !*** ./src/app/wallet/wallet.component.ts ***! - \********************************************/ -/*! exports provided: WalletComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WalletComponent", function() { return WalletComponent; }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); -/* harmony import */ var _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_helpers/services/variables.service */ "./src/app/_helpers/services/variables.service.ts"); -/* harmony import */ var _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_helpers/services/backend.service */ "./src/app/_helpers/services/backend.service.ts"); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ngx-translate/core */ "./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js"); -/* harmony import */ var _helpers_pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../_helpers/pipes/int-to-money.pipe */ "./src/app/_helpers/pipes/int-to-money.pipe.ts"); -/* harmony import */ var _shared_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_shared/constants */ "./src/app/_shared/constants.ts"); -/* harmony import */ var _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../assets/icons/icons.json */ "./src/assets/icons/icons.json"); -var _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_7___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../../assets/icons/icons.json */ "./src/assets/icons/icons.json", 1); -/* harmony import */ var _helpers_services_pagination_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../_helpers/services/pagination.service */ "./src/app/_helpers/services/pagination.service.ts"); -/* harmony import */ var _helpers_services_pagination_store__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../_helpers/services/pagination.store */ "./src/app/_helpers/services/pagination.store.ts"); -/* harmony import */ var store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! store */ "./src/store.ts"); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js"); -var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (undefined && undefined.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; - - - - - - - - - - - - -var WalletComponent = /** @class */ (function () { - function WalletComponent(route, router, backend, variablesService, ngZone, translate, intToMoneyPipe, pagination, paginationStore, store) { - this.route = route; - this.router = router; - this.backend = backend; - this.variablesService = variablesService; - this.ngZone = ngZone; - this.translate = translate; - this.intToMoneyPipe = intToMoneyPipe; - this.pagination = pagination; - this.paginationStore = paginationStore; - this.store = store; - this.copyAnimation = false; - this.activeTab = 'history'; - this.mining = false; - this.currentPage = 1; - this.sync_started = false; - this.stop_paginate = false; - this.tabs = [ - { - title: 'WALLET.TABS.HISTORY', - icon: 'history', - link: '/history', - indicator: false, - active: true, - animated: _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_7__.history, - itemHovered: false, - }, - { - title: 'WALLET.TABS.SEND', - icon: 'send', - link: '/send', - indicator: false, - active: false, - animated: _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_7__.send, - itemHovered: false, - }, - { - title: 'WALLET.TABS.RECEIVE', - icon: 'receive', - link: '/receive', - indicator: false, - active: false, - animated: _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_7__.receive, - itemHovered: false, - }, - { - title: 'WALLET.TABS.CONTRACTS', - icon: 'contracts', - link: '/contracts', - indicator: 1, - active: false, - animated: _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_7__.contracts, - itemHovered: false, - }, - /*{ - title: 'WALLET.TABS.MESSAGES', - icon: 'messages', - link: '/messages', - indicator: 32, - active: false, - animated: icons.messages, - itemHovered: false - },*/ - { - title: 'WALLET.TABS.STAKING', - icon: 'staking', - link: '/staking', - indicator: false, - active: false, - animated: _assets_icons_icons_json__WEBPACK_IMPORTED_MODULE_7__.staking, - itemHovered: false, - }, - ]; - } - WalletComponent.prototype.ngOnInit = function () { - var _this = this; - this.subRouting1 = this.route.params.subscribe(function (params) { - // set current wallet only by user click to avoid after sync show synchronized data - _this.walletID = +params['id']; - _this.walletLoaded = _this.variablesService.getWallet(_this.walletID).loaded; - _this.variablesService.setCurrentWallet(_this.walletID); - _this.walletsSubscription = _this.store - .select('sync') - .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_11__["filter"])(Boolean), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_11__["distinctUntilChanged"])()) - .subscribe(function (value) { - var data = value.filter(function (item) { return item.wallet_id === _this.walletID; })[0]; - if (data && !data.sync) { - var in_progress = void 0; - var values = _this.store.value.sync; - if (values && values.length) { - in_progress = values.filter(function (item) { return item.sync; }); - _this.variablesService.sync_started = !!(in_progress && in_progress.length); - if (!in_progress) { - _this.variablesService.sync_started = false; - } - } - else { - _this.variablesService.sync_started = false; - } - } - var restore = false; - if (_this.variablesService.after_sync_request.hasOwnProperty(_this.walletID)) { - restore = _this.variablesService.after_sync_request[_this.walletID]; - } - if (!_this.variablesService.sync_started && - restore && - _this.walletID === (data && data.wallet_id)) { - _this.wallet = _this.variablesService.getNotLoadedWallet(); - if (_this.wallet) { - _this.tick(); - } - // if this is was restore wallet and it was selected on moment when sync completed - _this.getRecentTransfers(); - _this.variablesService.after_sync_request[_this.walletID] = false; - } - }); - var after_sync_request = false; - if (_this.variablesService.after_sync_request.hasOwnProperty(_this.walletID)) { - after_sync_request = _this.variablesService.after_sync_request[_this.walletID]; - } - if (after_sync_request && !_this.variablesService.sync_started) { - // if user click on the wallet at the first time after restore. - _this.getRecentTransfers(); - } - if (_this.variablesService.stop_paginate.hasOwnProperty(_this.walletID)) { - _this.stop_paginate = _this.variablesService.stop_paginate[_this.walletID]; - } - else { - _this.stop_paginate = false; - } - // this will hide pagination a bit earlier - _this.wallet = _this.variablesService.getNotLoadedWallet(); - if (_this.wallet) { - _this.tick(); - } - _this.scrolledContent.nativeElement.scrollTop = 0; - clearTimeout(_this.copyAnimationTimeout); - _this.copyAnimation = false; - _this.mining = _this.variablesService.currentWallet.exclude_mining_txs; - if (_this.variablesService.wallets.length === 1) { - _this.walletID = +params['id']; - _this.variablesService.setCurrentWallet(_this.walletID); - } - }); - this.subRouting2 = this.router.events.subscribe(function (val) { - if (val instanceof _angular_router__WEBPACK_IMPORTED_MODULE_1__["RoutesRecognized"]) { - _this.activeTab = val.urlAfterRedirects - .replace('?sidenav=true', '') - .split('/') - .pop(); - if (val.state.root.firstChild && val.state.root.firstChild.firstChild) { - for (var i = 0; i < _this.tabs.length; i++) { - _this.tabs[i].active = - _this.tabs[i].link === - '/' + val.state.root.firstChild.firstChild.url[0].path; - } - } - } - }); - this.queryRouting = this.route.queryParams.subscribe(function (params) { - if (params.send) { - _this.tabs.forEach(function (tab, index) { - if (tab.link === '/send') { - _this.changeTab(index); - } - }); - } - }); - if (this.variablesService.currentWallet.alias.hasOwnProperty('name')) { - this.variablesService.currentWallet.wakeAlias = false; - } - this.aliasSubscription = this.variablesService.getAliasChangedEvent.subscribe(function () { - if (_this.variablesService.currentWallet.alias.hasOwnProperty('name')) { - _this.variablesService.currentWallet.wakeAlias = false; - } - }); - this.updateWalletStatus(); - }; - WalletComponent.prototype.resetPaginationValues = function () { - var _this = this; - this.ngZone.run(function () { - var total_history_item = _this.variablesService.currentWallet - .total_history_item; - var count = _this.variablesService.count; - _this.variablesService.currentWallet.totalPages = Math.ceil(total_history_item / count); - _this.variablesService.currentWallet.exclude_mining_txs = _this.mining; - _this.variablesService.currentWallet.currentPage = 1; - if (!_this.variablesService.currentWallet.totalPages) { - _this.variablesService.currentWallet.totalPages = 1; - } - _this.variablesService.currentWallet.totalPages > - _this.variablesService.maxPages - ? (_this.variablesService.currentWallet.pages = new Array(5) - .fill(1) - .map(function (value, index) { return value + index; })) - : (_this.variablesService.currentWallet.pages = new Array(_this.variablesService.currentWallet.totalPages) - .fill(1) - .map(function (value, index) { return value + index; })); - }); - }; - WalletComponent.prototype.changeTab = function (index) { - var _this = this; - if (((this.tabs[index].link === '/send' || - this.tabs[index].link === '/contracts' || - this.tabs[index].link === '/staking') && - (this.variablesService.daemon_state !== 2 || - !this.variablesService.currentWallet.loaded)) || - ((this.tabs[index].link === '/send' || - this.tabs[index].link === '/contracts') && - this.variablesService.currentWallet.is_watch_only && - this.variablesService.currentWallet.is_auditable)) { - return; - } - this.tabs.forEach(function (tab) { - tab.active = false; - }); - this.tabs[index].active = true; - this.ngZone.run(function () { - _this.scrolledContent.nativeElement.scrollTop = 0; - _this.router.navigate(['wallet/' + _this.walletID + _this.tabs[index].link]); - }); - }; - WalletComponent.prototype.itemHovered = function (index, state) { - this.tabs[index].itemHovered = state; - }; - WalletComponent.prototype.copyAddress = function () { - var _this = this; - this.backend.setClipboard(this.variablesService.currentWallet.address); - this.copyAnimation = true; - this.copyAnimationTimeout = window.setTimeout(function () { - _this.copyAnimation = false; - }, 2000); - }; - WalletComponent.prototype.getTooltip = function () { - var _this = this; - this.balanceTooltip = document.createElement('div'); - var available = document.createElement('span'); - available.setAttribute('class', 'available'); - available.innerHTML = this.translate.instant('WALLET.AVAILABLE_BALANCE', { - available: this.intToMoneyPipe.transform(this.variablesService.currentWallet.unlocked_balance), - currency: this.variablesService.defaultCurrency, - }); - this.balanceTooltip.appendChild(available); - var locked = document.createElement('span'); - locked.setAttribute('class', 'locked'); - locked.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE', { - locked: this.intToMoneyPipe.transform(this.variablesService.currentWallet.balance.minus(this.variablesService.currentWallet.unlocked_balance)), - currency: this.variablesService.defaultCurrency, - }); - this.balanceTooltip.appendChild(locked); - var link = document.createElement('span'); - link.setAttribute('class', 'link'); - link.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE_LINK'); - link.addEventListener('click', function () { - _this.openInBrowser(_shared_constants__WEBPACK_IMPORTED_MODULE_6__["LOCKED_BALANCE_HELP_PAGE"]); - }); - this.balanceTooltip.appendChild(link); - return this.balanceTooltip; - }; - WalletComponent.prototype.onHideTooltip = function () { - this.balanceTooltip = null; - }; - WalletComponent.prototype.openInBrowser = function (link) { - this.backend.openUrlInBrowser(link); - }; - WalletComponent.prototype.setPage = function (pageNumber) { - // this is will allow pagination for wallets that was open from existed wallets' - if (this.variablesService.currentWallet.open_from_exist && - !this.variablesService.currentWallet.updated) { - this.variablesService.get_recent_transfers = false; - this.variablesService.currentWallet.updated = true; - } - if (pageNumber === this.variablesService.currentWallet.currentPage) { - return; - } - // if not running get_recent_transfers callback - if (!this.variablesService.get_recent_transfers) { - this.variablesService.currentWallet.currentPage = pageNumber; - } - if (!this.variablesService.get_recent_transfers) { - this.getRecentTransfers(); - } - }; - WalletComponent.prototype.toggleMiningTransactions = function () { - var _this = this; - if (!this.variablesService.sync_started && !this.wallet) { - var value = this.paginationStore.value; - if (!value) { - this.paginationStore.setPage(1, 0, this.walletID); // add back page for the first page - } - else { - var pages = value.filter(function (item) { return item.walletID === _this.walletID; }); - if (!pages.length) { - this.paginationStore.setPage(1, 0, this.walletID); // add back page for the first page - } - } - this.mining = !this.mining; - this.resetPaginationValues(); - this.getRecentTransfers(); - } - }; - WalletComponent.prototype.tick = function () { - var _this = this; - var walletInterval = setInterval(function () { - _this.wallet = _this.variablesService.getNotLoadedWallet(); - if (!_this.wallet) { - clearInterval(walletInterval); - } - }, 1000); - }; - WalletComponent.prototype.getRecentTransfers = function () { - var _this = this; - var offset = this.pagination.getOffset(this.walletID); - var value = this.paginationStore.value; - var pages = value - ? value.filter(function (item) { return item.walletID === _this.walletID; }) - : []; - this.backend.getRecentTransfers(this.walletID, offset, this.variablesService.count, this.variablesService.currentWallet.exclude_mining_txs, function (status, data) { - var isForward = _this.paginationStore.isForward(pages, _this.variablesService.currentWallet.currentPage); - if (_this.mining && isForward && pages && pages.length === 1) { - _this.variablesService.currentWallet.currentPage = 1; // set init page after navigation back - } - var history = data && data.history; - _this.variablesService.stop_paginate[_this.walletID] = - (history && history.length < _this.variablesService.count) || !history; - _this.stop_paginate = _this.variablesService.stop_paginate[_this.walletID]; - if (!_this.variablesService.stop_paginate[_this.walletID]) { - var page = _this.variablesService.currentWallet.currentPage + 1; - if (isForward && - _this.mining && - history && - history.length === _this.variablesService.count) { - _this.paginationStore.setPage(page, data.last_item_index, _this.walletID); // add back page for current page - } - } - _this.pagination.calcPages(data); - _this.pagination.prepareHistory(data, status); - _this.ngZone.run(function () { - _this.variablesService.get_recent_transfers = false; - if (_this.variablesService.after_sync_request.hasOwnProperty(_this.walletID)) { - // this is will complete get_recent_transfers request - // this will switch of - _this.variablesService.after_sync_request[_this.walletID] = false; - } - }); - }); - }; - WalletComponent.prototype.ngOnDestroy = function () { - this.subRouting1.unsubscribe(); - this.subRouting2.unsubscribe(); - this.queryRouting.unsubscribe(); - this.aliasSubscription.unsubscribe(); - if (this.walletsSubscription) { - this.walletsSubscription.unsubscribe(); - } - clearTimeout(this.copyAnimationTimeout); - }; - WalletComponent.prototype.updateWalletStatus = function () { - var _this = this; - this.backend.eventSubscribe('wallet_sync_progress', function (data) { - var wallet_id = data.wallet_id; - if (wallet_id === _this.walletID) { - _this.ngZone.run(function () { - _this.walletLoaded = false; - }); - } - }); - this.backend.eventSubscribe('update_wallet_status', function (data) { - var wallet_state = data.wallet_state; - var wallet_id = data.wallet_id; - _this.ngZone.run(function () { - if (wallet_state === 2 && wallet_id === _this.walletID) { - _this.walletLoaded = - _this.variablesService.getWallet(_this.walletID) !== null && - _this.variablesService.getWallet(_this.walletID).loaded - ? true - : false; - } - else { - _this.walletLoaded = false; - } - }); - }); - }; - __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"])('scrolledContent'), - __metadata("design:type", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]) - ], WalletComponent.prototype, "scrolledContent", void 0); - WalletComponent = __decorate([ - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ - selector: 'app-wallet', - template: __webpack_require__(/*! ./wallet.component.html */ "./src/app/wallet/wallet.component.html"), - styles: [__webpack_require__(/*! ./wallet.component.scss */ "./src/app/wallet/wallet.component.scss")] - }), - __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_1__["ActivatedRoute"], - _angular_router__WEBPACK_IMPORTED_MODULE_1__["Router"], - _helpers_services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"], - _helpers_services_variables_service__WEBPACK_IMPORTED_MODULE_2__["VariablesService"], - _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"], - _ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__["TranslateService"], - _helpers_pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_5__["IntToMoneyPipe"], - _helpers_services_pagination_service__WEBPACK_IMPORTED_MODULE_8__["PaginationService"], - _helpers_services_pagination_store__WEBPACK_IMPORTED_MODULE_9__["PaginationStore"], - store__WEBPACK_IMPORTED_MODULE_10__["Store"]]) - ], WalletComponent); - return WalletComponent; -}()); - - - -/***/ }), - -/***/ "./src/assets/icons/icons.json": -/*!*************************************!*\ - !*** ./src/assets/icons/icons.json ***! - \*************************************/ -/*! exports provided: logo, contacts, settings, exit, history, send, receive, contracts, messages, staking, default */ -/***/ (function(module) { - -module.exports = {"logo":"","contacts":"","settings":"","exit":"","history":"","send":"","receive":"","contracts":"","messages":"","staking":""}; - -/***/ }), - -/***/ "./src/environments/environment.ts": -/*!*****************************************!*\ - !*** ./src/environments/environment.ts ***! - \*****************************************/ -/*! exports provided: environment */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "environment", function() { return environment; }); -// This file can be replaced during build by using the `fileReplacements` array. -// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. -// The list of file replacements can be found in `angular.json`. -var environment = { - production: false -}; -/* - * For easier debugging in development mode, you can import the following file - * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. - * - * This import should be commented out in production mode because it will have a negative impact - * on performance if an error is thrown. - */ -// import 'zone.js/dist/zone-error'; // Included with Angular CLI. - - -/***/ }), - -/***/ "./src/main.ts": -/*!*********************!*\ - !*** ./src/main.ts ***! - \*********************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var _angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser-dynamic */ "./node_modules/@angular/platform-browser-dynamic/fesm5/platform-browser-dynamic.js"); -/* harmony import */ var _app_app_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./app/app.module */ "./src/app/app.module.ts"); -/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./environments/environment */ "./src/environments/environment.ts"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js"); -/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__); - - - - - -if (_environments_environment__WEBPACK_IMPORTED_MODULE_3__["environment"].production) { - Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["enableProdMode"])(); -} -Object(_angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_1__["platformBrowserDynamic"])().bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_2__["AppModule"]) - .catch(function (err) { return console.error(err); }); - - -/***/ }), - -/***/ "./src/store.ts": -/*!**********************!*\ - !*** ./src/store.ts ***! - \**********************/ -/*! exports provided: Store */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Store", function() { return Store; }); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js"); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js"); -var __assign = (undefined && undefined.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - - -var state = { - wallets: undefined, - sync: undefined, -}; -var Store = /** @class */ (function () { - function Store() { - this.subject = new rxjs__WEBPACK_IMPORTED_MODULE_1__["BehaviorSubject"](state); - this.store = this.subject.asObservable().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_0__["distinctUntilChanged"])()); - } - Object.defineProperty(Store.prototype, "value", { - get: function () { - return this.subject.value; - }, - enumerable: true, - configurable: true - }); - Store.prototype.select = function (name) { - return this.store.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_0__["pluck"])(name)); - }; - // tslint:disable-next-line:no-shadowed-variable - Store.prototype.set = function (name, state) { - var _a; - this.subject.next(__assign({}, this.value, (_a = {}, _a[name] = state, _a))); - }; - return Store; -}()); - - - -/***/ }), - -/***/ 0: -/*!***************************!*\ - !*** multi ./src/main.ts ***! - \***************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! D:\Project\WORK_NEW\zano\src\gui\qt-daemon\html_source\src\main.ts */"./src/main.ts"); - - -/***/ }) - -},[[0,"runtime","vendor"]]]); -//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/src/gui/qt-daemon/html/main.js.map b/src/gui/qt-daemon/html/main.js.map deleted file mode 100644 index 966ac261..00000000 --- a/src/gui/qt-daemon/html/main.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/_helpers/directives/confirm-modal/confirm-modal.component.html","webpack:///./src/app/_helpers/directives/confirm-modal/confirm-modal.component.scss","webpack:///./src/app/_helpers/directives/confirm-modal/confirm-modal.component.ts","webpack:///./src/app/_helpers/directives/input-disable-selection/input-disable-selection.directive.ts","webpack:///./src/app/_helpers/directives/input-validate/input-validate.directive.ts","webpack:///./src/app/_helpers/directives/modal-container/modal-container.component.html","webpack:///./src/app/_helpers/directives/modal-container/modal-container.component.scss","webpack:///./src/app/_helpers/directives/modal-container/modal-container.component.ts","webpack:///./src/app/_helpers/directives/progress-container/progress-container.component.html","webpack:///./src/app/_helpers/directives/progress-container/progress-container.component.scss","webpack:///./src/app/_helpers/directives/progress-container/progress-container.component.ts","webpack:///./src/app/_helpers/directives/staking-switch/staking-switch.component.html","webpack:///./src/app/_helpers/directives/staking-switch/staking-switch.component.scss","webpack:///./src/app/_helpers/directives/staking-switch/staking-switch.component.ts","webpack:///./src/app/_helpers/directives/tooltip.directive.ts","webpack:///./src/app/_helpers/directives/transaction-details/transaction-details.component.html","webpack:///./src/app/_helpers/directives/transaction-details/transaction-details.component.scss","webpack:///./src/app/_helpers/directives/transaction-details/transaction-details.component.ts","webpack:///./src/app/_helpers/models/transaction.model.ts","webpack:///./src/app/_helpers/models/wallet.model.ts","webpack:///./src/app/_helpers/pipes/contract-status-messages.pipe.ts","webpack:///./src/app/_helpers/pipes/contract-time-left.pipe.ts","webpack:///./src/app/_helpers/pipes/history-type-messages.pipe.ts","webpack:///./src/app/_helpers/pipes/int-to-money.pipe.ts","webpack:///./src/app/_helpers/pipes/money-to-int.pipe.ts","webpack:///./src/app/_helpers/pipes/safe-html.pipe.ts","webpack:///./src/app/_helpers/services/backend.service.ts","webpack:///./src/app/_helpers/services/modal.service.ts","webpack:///./src/app/_helpers/services/pagination.service.ts","webpack:///./src/app/_helpers/services/pagination.store.ts","webpack:///./src/app/_helpers/services/utils.service.ts","webpack:///./src/app/_helpers/services/variables.service.ts","webpack:///./src/app/_shared/constants.ts","webpack:///./src/app/add-contacts/add-contacts.component.html","webpack:///./src/app/add-contacts/add-contacts.component.scss","webpack:///./src/app/add-contacts/add-contacts.component.ts","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.scss","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/assign-alias/assign-alias.component.html","webpack:///./src/app/assign-alias/assign-alias.component.scss","webpack:///./src/app/assign-alias/assign-alias.component.ts","webpack:///./src/app/contact-send/contact-send.component.html","webpack:///./src/app/contact-send/contact-send.component.scss","webpack:///./src/app/contact-send/contact-send.component.ts","webpack:///./src/app/contacts/contacts.component.html","webpack:///./src/app/contacts/contacts.component.scss","webpack:///./src/app/contacts/contacts.component.ts","webpack:///./src/app/contracts/contracts.component.html","webpack:///./src/app/contracts/contracts.component.scss","webpack:///./src/app/contracts/contracts.component.ts","webpack:///./src/app/create-wallet/create-wallet.component.html","webpack:///./src/app/create-wallet/create-wallet.component.scss","webpack:///./src/app/create-wallet/create-wallet.component.ts","webpack:///./src/app/edit-alias/edit-alias.component.html","webpack:///./src/app/edit-alias/edit-alias.component.scss","webpack:///./src/app/edit-alias/edit-alias.component.ts","webpack:///./src/app/export-import/export-import.component.html","webpack:///./src/app/export-import/export-import.component.scss","webpack:///./src/app/export-import/export-import.component.ts","webpack:///./src/app/history/history.component.html","webpack:///./src/app/history/history.component.scss","webpack:///./src/app/history/history.component.ts","webpack:///./src/app/login/login.component.html","webpack:///./src/app/login/login.component.scss","webpack:///./src/app/login/login.component.ts","webpack:///./src/app/main/main.component.html","webpack:///./src/app/main/main.component.scss","webpack:///./src/app/main/main.component.ts","webpack:///./src/app/messages/messages.component.html","webpack:///./src/app/messages/messages.component.scss","webpack:///./src/app/messages/messages.component.ts","webpack:///./src/app/open-wallet-modal/open-wallet-modal.component.html","webpack:///./src/app/open-wallet-modal/open-wallet-modal.component.scss","webpack:///./src/app/open-wallet-modal/open-wallet-modal.component.ts","webpack:///./src/app/open-wallet/open-wallet.component.html","webpack:///./src/app/open-wallet/open-wallet.component.scss","webpack:///./src/app/open-wallet/open-wallet.component.ts","webpack:///./src/app/purchase/purchase.component.html","webpack:///./src/app/purchase/purchase.component.scss","webpack:///./src/app/purchase/purchase.component.ts","webpack:///./src/app/receive/receive.component.html","webpack:///./src/app/receive/receive.component.scss","webpack:///./src/app/receive/receive.component.ts","webpack:///./src/app/restore-wallet/restore-wallet.component.html","webpack:///./src/app/restore-wallet/restore-wallet.component.scss","webpack:///./src/app/restore-wallet/restore-wallet.component.ts","webpack:///./src/app/seed-phrase/seed-phrase.component.html","webpack:///./src/app/seed-phrase/seed-phrase.component.scss","webpack:///./src/app/seed-phrase/seed-phrase.component.ts","webpack:///./src/app/send-modal/send-modal.component.html","webpack:///./src/app/send-modal/send-modal.component.scss","webpack:///./src/app/send-modal/send-modal.component.ts","webpack:///./src/app/send/send.component.html","webpack:///./src/app/send/send.component.scss","webpack:///./src/app/send/send.component.ts","webpack:///./src/app/settings/settings.component.html","webpack:///./src/app/settings/settings.component.scss","webpack:///./src/app/settings/settings.component.ts","webpack:///./src/app/sidebar/sidebar.component.html","webpack:///./src/app/sidebar/sidebar.component.scss","webpack:///./src/app/sidebar/sidebar.component.ts","webpack:///./src/app/staking/staking.component.html","webpack:///./src/app/staking/staking.component.scss","webpack:///./src/app/staking/staking.component.ts","webpack:///./src/app/transfer-alias/transfer-alias.component.html","webpack:///./src/app/transfer-alias/transfer-alias.component.scss","webpack:///./src/app/transfer-alias/transfer-alias.component.ts","webpack:///./src/app/typing-message/typing-message.component.html","webpack:///./src/app/typing-message/typing-message.component.scss","webpack:///./src/app/typing-message/typing-message.component.ts","webpack:///./src/app/wallet-details/wallet-details.component.html","webpack:///./src/app/wallet-details/wallet-details.component.scss","webpack:///./src/app/wallet-details/wallet-details.component.ts","webpack:///./src/app/wallet/wallet.component.html","webpack:///./src/app/wallet/wallet.component.scss","webpack:///./src/app/wallet/wallet.component.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts","webpack:///./src/store.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","module.exports = \"
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{title}}\\r\\n {{message}}\\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: rgba(255, 255, 255, 0.25);\\n z-index: 5; }\\n\\n.modal {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n background-position: center;\\n background-size: 200%;\\n padding: 3rem;\\n min-width: 34rem;\\n max-width: 60rem; }\\n\\n.modal .content {\\n display: flex; }\\n\\n.modal .content .icon {\\n flex: 0 0 auto;\\n width: 4.4rem;\\n height: 4.4rem; }\\n\\n.modal .content .icon.info {\\n -webkit-mask: url('modal-info.svg') no-repeat center;\\n mask: url('modal-info.svg') no-repeat center; }\\n\\n.modal .content .message-container {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n margin-left: 2rem; }\\n\\n.modal .content .message-container .title {\\n font-size: 1.8rem;\\n font-weight: 600;\\n line-height: 2.2rem; }\\n\\n.modal .content .message-container .message {\\n font-size: 1.3rem;\\n line-height: 1.8rem;\\n margin-top: 0.4rem; }\\n\\n.modal .wrap-btn {\\n display: flex;\\n justify-content: space-between;\\n width: 100%;\\n margin-top: 3.5rem; }\\n\\n.modal .action-button {\\n width: 10rem;\\n height: 2.4rem; }\\n\\n.modal .close-button {\\n position: absolute;\\n top: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: transparent;\\n margin: 0;\\n padding: 0;\\n width: 2.4rem;\\n height: 2.4rem; }\\n\\n.modal .close-button .icon {\\n -webkit-mask: url('close.svg') no-repeat center;\\n mask: url('close.svg') no-repeat center;\\n width: 2.4rem;\\n height: 2.4rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9jb25maXJtLW1vZGFsL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXF9oZWxwZXJzXFxkaXJlY3RpdmVzXFxjb25maXJtLW1vZGFsXFxjb25maXJtLW1vZGFsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUM7RUFDckMsVUFBVSxFQUFBOztBQUVaO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsMkJBQTJCO0VBQzNCLHFCQUFxQjtFQUNyQixhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLGdCQUFnQixFQUFBOztBQVJsQjtJQVdJLGFBQWEsRUFBQTs7QUFYakI7TUFjTSxjQUFjO01BQ2QsYUFBYTtNQUNiLGNBQWMsRUFBQTs7QUFoQnBCO1FBbUJRLG9EQUE0RDtnQkFBNUQsNENBQTRELEVBQUE7O0FBbkJwRTtNQXdCTSxhQUFhO01BQ2Isc0JBQXNCO01BQ3RCLHVCQUF1QjtNQUN2Qix1QkFBdUI7TUFDdkIsaUJBQWlCLEVBQUE7O0FBNUJ2QjtRQStCUSxpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLG1CQUFtQixFQUFBOztBQWpDM0I7UUFxQ1EsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixrQkFBa0IsRUFBQTs7QUF2QzFCO0lBNkNJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsV0FBVztJQUNYLGtCQUFrQixFQUFBOztBQWhEdEI7SUFvREksWUFBWTtJQUNaLGNBQWMsRUFBQTs7QUFyRGxCO0lBeURJLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sUUFBUTtJQUNSLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixTQUFTO0lBQ1QsVUFBVTtJQUNWLGFBQWE7SUFDYixjQUFjLEVBQUE7O0FBbkVsQjtNQXNFTSwrQ0FBdUQ7Y0FBdkQsdUNBQXVEO01BQ3ZELGFBQWE7TUFDYixjQUFjLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9faGVscGVycy9kaXJlY3RpdmVzL2NvbmZpcm0tbW9kYWwvY29uZmlybS1tb2RhbC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xyXG4gIHotaW5kZXg6IDU7XHJcbn1cclxuLm1vZGFsIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCU7XHJcbiAgcGFkZGluZzogM3JlbTtcclxuICBtaW4td2lkdGg6IDM0cmVtO1xyXG4gIG1heC13aWR0aDogNjByZW07XHJcblxyXG4gIC5jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgd2lkdGg6IDQuNHJlbTtcclxuICAgICAgaGVpZ2h0OiA0LjRyZW07XHJcblxyXG4gICAgICAmLmluZm8ge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9tb2RhbC1pbmZvLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5tZXNzYWdlLWNvbnRhaW5lciB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XHJcblxyXG4gICAgICAudGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuMnJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm1lc3NhZ2Uge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMC40cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud3JhcC1idG4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLXRvcDogMy41cmVtO1xyXG4gIH1cclxuICBcclxuICAuYWN0aW9uLWJ1dHRvbiB7XHJcbiAgICB3aWR0aDogMTByZW07XHJcbiAgICBoZWlnaHQ6IDIuNHJlbTtcclxuICB9XHJcblxyXG4gIC5jbG9zZS1idXR0b24ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDIuNHJlbTtcclxuICAgIGhlaWdodDogMi40cmVtO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Nsb3NlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDIuNHJlbTtcclxuICAgICAgaGVpZ2h0OiAyLjRyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-confirm-modal',\r\n templateUrl: './confirm-modal.component.html',\r\n styleUrls: ['./confirm-modal.component.scss']\r\n})\r\nexport class ConfirmModalComponent implements OnInit {\r\n\r\n @Input() title: string;\r\n @Input() message: string;\r\n @Output() confirmed: EventEmitter = new EventEmitter();\r\n @ViewChild('btn') button: ElementRef;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.button.nativeElement.focus();\r\n }\r\n\r\n onSubmit() {\r\n this.confirmed.emit(true);\r\n }\r\n\r\n onClose() {\r\n this.confirmed.emit(false);\r\n }\r\n}\r\n","import {Directive, HostListener} from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'input'\r\n})\r\nexport class InputDisableSelectionDirective {\r\n\r\n constructor() {}\r\n\r\n @HostListener('mousedown', ['$event'])\r\n handleInput(event: Event) {\r\n if ((event.target).readOnly) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","import {Directive, ElementRef, Input, HostListener} from '@angular/core';\r\nimport {VariablesService} from '../../services/variables.service';\r\n\r\n@Directive({\r\n selector: '[appInputValidate]'\r\n})\r\nexport class InputValidateDirective {\r\n\r\n private type: string;\r\n\r\n constructor(private el: ElementRef, private variablesService: VariablesService) {\r\n }\r\n\r\n @Input('appInputValidate')\r\n public set defineInputType(type: string) {\r\n this.type = type;\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n handleInput(event: Event) {\r\n if ( this.type === 'money' ) {\r\n this.moneyValidation(event);\r\n } else if ( this.type === 'integer' ) {\r\n this.integerValidation(event);\r\n }\r\n }\r\n\r\n private moneyValidation(event: Event) {\r\n let currentValue = (event.target).value;\r\n const originalValue = currentValue;\r\n const OnlyD = /[^\\d\\.]/g;\r\n const _has_error = currentValue.match(OnlyD);\r\n if (_has_error && _has_error.length) {\r\n currentValue = currentValue.replace(',', '.').replace(OnlyD, '');\r\n }\r\n const _double_separator = currentValue.match(/\\./g);\r\n if (_double_separator && _double_separator.length > 1) {\r\n currentValue = currentValue.substr(0, currentValue.lastIndexOf('.'));\r\n }\r\n if (currentValue.indexOf('.') === 0) {\r\n currentValue = '0' + currentValue;\r\n }\r\n const _zero_fill = currentValue.split('.');\r\n if (_zero_fill[0].length > 7) {\r\n _zero_fill[0] = _zero_fill[0].substr(0, 7);\r\n }\r\n\r\n if (1 in _zero_fill && _zero_fill[1].length) {\r\n _zero_fill[1] = _zero_fill[1].substr(0, this.variablesService.digits);\r\n }\r\n currentValue = _zero_fill.join('.');\r\n if (currentValue !== originalValue) {\r\n (event.target).value = currentValue;\r\n const cursorPosition = (event.target).selectionEnd;\r\n (event.target).setSelectionRange(cursorPosition, cursorPosition);\r\n (event.target).dispatchEvent(new Event('input'));\r\n }\r\n }\r\n\r\n private integerValidation(event: Event) {\r\n let currentValue = (event.target).value;\r\n const originalValue = currentValue;\r\n const OnlyD = /[^\\d]/g;\r\n const _has_error = currentValue.match(OnlyD);\r\n if (_has_error && _has_error.length) {\r\n currentValue = currentValue.replace(OnlyD, '');\r\n }\r\n if (currentValue !== originalValue) {\r\n const cursorPosition = (event.target).selectionEnd;\r\n (event.target).value = currentValue;\r\n (event.target).setSelectionRange(cursorPosition, cursorPosition);\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","module.exports = \"
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{title}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: rgba(255, 255, 255, 0.25); }\\n\\n.modal {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n background-position: center;\\n background-size: 200%;\\n padding: 2rem;\\n min-width: 34rem;\\n max-width: 60rem; }\\n\\n.modal .content {\\n display: flex;\\n margin: 1.2rem 0; }\\n\\n.modal .content .icon {\\n flex: 0 0 auto;\\n width: 4.4rem;\\n height: 4.4rem; }\\n\\n.modal .content .icon.error {\\n -webkit-mask: url('modal-alert.svg') no-repeat center;\\n mask: url('modal-alert.svg') no-repeat center; }\\n\\n.modal .content .icon.success {\\n -webkit-mask: url('modal-success.svg') no-repeat center;\\n mask: url('modal-success.svg') no-repeat center; }\\n\\n.modal .content .icon.info {\\n -webkit-mask: url('modal-info.svg') no-repeat center;\\n mask: url('modal-info.svg') no-repeat center; }\\n\\n.modal .content .message-container {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n margin-left: 2rem; }\\n\\n.modal .content .message-container .title {\\n font-size: 1.8rem;\\n font-weight: 600;\\n line-height: 2.2rem; }\\n\\n.modal .content .message-container .message {\\n font-size: 1.3rem;\\n line-height: 1.8rem;\\n margin-top: 0.4rem; }\\n\\n.modal .action-button {\\n margin: 1.2rem auto 0.6rem;\\n width: 10rem;\\n height: 2.4rem; }\\n\\n.modal .close-button {\\n position: absolute;\\n top: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: transparent;\\n margin: 0;\\n padding: 0;\\n width: 2.4rem;\\n height: 2.4rem; }\\n\\n.modal .close-button .icon {\\n -webkit-mask: url('close.svg') no-repeat center;\\n mask: url('close.svg') no-repeat center;\\n width: 2.4rem;\\n height: 2.4rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9tb2RhbC1jb250YWluZXIvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcX2hlbHBlcnNcXGRpcmVjdGl2ZXNcXG1vZGFsLWNvbnRhaW5lclxcbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUMsRUFBQTs7QUFFdkM7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QiwyQkFBMkI7RUFDM0IscUJBQXFCO0VBQ3JCLGFBQWE7RUFDYixnQkFBZ0I7RUFDaEIsZ0JBQWdCLEVBQUE7O0FBUmxCO0lBV0ksYUFBYTtJQUNiLGdCQUFnQixFQUFBOztBQVpwQjtNQWVNLGNBQWM7TUFDZCxhQUFhO01BQ2IsY0FBYyxFQUFBOztBQWpCcEI7UUFvQlEscURBQTZEO2dCQUE3RCw2Q0FBNkQsRUFBQTs7QUFwQnJFO1FBd0JRLHVEQUErRDtnQkFBL0QsK0NBQStELEVBQUE7O0FBeEJ2RTtRQTRCUSxvREFBNEQ7Z0JBQTVELDRDQUE0RCxFQUFBOztBQTVCcEU7TUFpQ00sYUFBYTtNQUNiLHNCQUFzQjtNQUN0Qix1QkFBdUI7TUFDdkIsdUJBQXVCO01BQ3ZCLGlCQUFpQixFQUFBOztBQXJDdkI7UUF3Q1EsaUJBQWlCO1FBQ2pCLGdCQUFnQjtRQUNoQixtQkFBbUIsRUFBQTs7QUExQzNCO1FBOENRLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsa0JBQWtCLEVBQUE7O0FBaEQxQjtJQXNESSwwQkFBMEI7SUFDMUIsWUFBWTtJQUNaLGNBQWMsRUFBQTs7QUF4RGxCO0lBNERJLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sUUFBUTtJQUNSLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixTQUFTO0lBQ1QsVUFBVTtJQUNWLGFBQWE7SUFDYixjQUFjLEVBQUE7O0FBdEVsQjtNQXlFTSwrQ0FBdUQ7Y0FBdkQsdUNBQXVEO01BQ3ZELGFBQWE7TUFDYixjQUFjLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9faGVscGVycy9kaXJlY3RpdmVzL21vZGFsLWNvbnRhaW5lci9tb2RhbC1jb250YWluZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcclxufVxyXG4ubW9kYWwge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJTtcclxuICBwYWRkaW5nOiAycmVtO1xyXG4gIG1pbi13aWR0aDogMzRyZW07XHJcbiAgbWF4LXdpZHRoOiA2MHJlbTtcclxuXHJcbiAgLmNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbjogMS4ycmVtIDA7XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgd2lkdGg6IDQuNHJlbTtcclxuICAgICAgaGVpZ2h0OiA0LjRyZW07XHJcblxyXG4gICAgICAmLmVycm9yIHtcclxuICAgICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvbW9kYWwtYWxlcnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnN1Y2Nlc3Mge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9tb2RhbC1zdWNjZXNzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5pbmZvIHtcclxuICAgICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvbW9kYWwtaW5mby5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubWVzc2FnZS1jb250YWluZXIge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xyXG5cclxuICAgICAgLnRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjJyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5tZXNzYWdlIHtcclxuICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS44cmVtO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDAuNHJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFjdGlvbi1idXR0b24ge1xyXG4gICAgbWFyZ2luOiAxLjJyZW0gYXV0byAwLjZyZW07XHJcbiAgICB3aWR0aDogMTByZW07XHJcbiAgICBoZWlnaHQ6IDIuNHJlbTtcclxuICB9XHJcblxyXG4gIC5jbG9zZS1idXR0b24ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDIuNHJlbTtcclxuICAgIGhlaWdodDogMi40cmVtO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Nsb3NlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDIuNHJlbTtcclxuICAgICAgaGVpZ2h0OiAyLjRyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef} from '@angular/core';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-modal-container',\r\n templateUrl: './modal-container.component.html',\r\n styleUrls: ['./modal-container.component.scss']\r\n})\r\nexport class ModalContainerComponent implements OnInit {\r\n\r\n public title: string;\r\n @Input() type: string;\r\n @Input() message: string;\r\n @Output() close = new EventEmitter();\r\n @ViewChild('btn') button: ElementRef;\r\n\r\n constructor(private translate: TranslateService) {}\r\n\r\n ngOnInit() {\r\n this.button.nativeElement.focus();\r\n switch (this.type) {\r\n case 'error': this.title = this.translate.instant('MODALS.ERROR'); break;\r\n case 'success': this.title = this.translate.instant('MODALS.SUCCESS'); break;\r\n case 'info': this.title = this.translate.instant('MODALS.INFO'); break;\r\n }\r\n }\r\n\r\n onClose() {\r\n this.close.emit();\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ label | translate }}\\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \".progress-bar-container {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n padding: 0 3rem;\\n width: 100%;\\n height: 3rem; }\\n .progress-bar-container .progress-bar {\\n position: absolute;\\n top: -0.7rem;\\n left: 0;\\n margin: 0 3rem;\\n width: calc(100% - 6rem);\\n height: 0.7rem; }\\n .progress-bar-container .progress-bar .progress-bar-full {\\n height: 0.7rem; }\\n .progress-bar-container .progress-labels {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n font-size: 1.2rem;\\n height: 100%; }\\n .progress-bar-container .progress-labels span {\\n flex: 1 0 0;\\n text-align: center; }\\n .progress-bar-container .progress-labels span:first-child {\\n text-align: left; }\\n .progress-bar-container .progress-labels span:last-child {\\n text-align: right; }\\n .progress-bar-container .progress-time {\\n position: absolute;\\n top: -3rem;\\n left: 50%;\\n transform: translateX(-50%);\\n font-size: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9wcm9ncmVzcy1jb250YWluZXIvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcX2hlbHBlcnNcXGRpcmVjdGl2ZXNcXHByb2dyZXNzLWNvbnRhaW5lclxccHJvZ3Jlc3MtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxPQUFPO0VBQ1AsZUFBZTtFQUNmLFdBQVc7RUFDWCxZQUFZLEVBQUE7RUFOZDtJQVNJLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osT0FBTztJQUNQLGNBQWM7SUFDZCx3QkFBd0I7SUFDeEIsY0FBYyxFQUFBO0VBZGxCO01BaUJNLGNBQWMsRUFBQTtFQWpCcEI7SUFzQkksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsaUJBQWlCO0lBQ2pCLFlBQVksRUFBQTtFQTFCaEI7TUE2Qk0sV0FBVztNQUNYLGtCQUFrQixFQUFBO0VBOUJ4QjtRQWlDUSxnQkFBZ0IsRUFBQTtFQWpDeEI7UUFxQ1EsaUJBQWlCLEVBQUE7RUFyQ3pCO0lBMkNJLGtCQUFrQjtJQUNsQixVQUFVO0lBQ1YsU0FBUztJQUNULDJCQUEyQjtJQUMzQixpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL19oZWxwZXJzL2RpcmVjdGl2ZXMvcHJvZ3Jlc3MtY29udGFpbmVyL3Byb2dyZXNzLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcGFkZGluZzogMCAzcmVtO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogM3JlbTtcclxuXHJcbiAgLnByb2dyZXNzLWJhciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC0wLjdyZW07XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgbWFyZ2luOiAwIDNyZW07XHJcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNnJlbSk7XHJcbiAgICBoZWlnaHQ6IDAuN3JlbTtcclxuXHJcbiAgICAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xyXG4gICAgICBoZWlnaHQ6IDAuN3JlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wcm9ncmVzcy1sYWJlbHMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgZmxleDogMSAwIDA7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wcm9ncmVzcy10aW1lIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogLTNyZW07XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-progress-container',\r\n templateUrl: './progress-container.component.html',\r\n styleUrls: ['./progress-container.component.scss']\r\n})\r\nexport class ProgressContainerComponent implements OnInit {\r\n\r\n @Input() width: string;\r\n @Input() labels: [];\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n","module.exports = \"
    \\r\\n {{ 'STAKING.SWITCH.ON' | translate }}\\r\\n \\r\\n {{ 'STAKING.SWITCH.OFF' | translate }}\\r\\n
    \\r\\n\"","module.exports = \".switch {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n border-radius: 1rem;\\n cursor: pointer;\\n font-size: 1rem;\\n padding: 0.5rem;\\n width: 5rem;\\n height: 2rem; }\\n .switch .circle {\\n border-radius: 1rem;\\n width: 1.2rem;\\n height: 1.2rem; }\\n .switch .option {\\n margin: 0 0.2rem;\\n line-height: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy9zdGFraW5nLXN3aXRjaC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxfaGVscGVyc1xcZGlyZWN0aXZlc1xcc3Rha2luZy1zd2l0Y2hcXHN0YWtpbmctc3dpdGNoLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixlQUFlO0VBQ2YsZUFBZTtFQUNmLFdBQVc7RUFDWCxZQUFZLEVBQUE7RUFUZDtJQVlJLG1CQUFtQjtJQUNuQixhQUFhO0lBQ2IsY0FBYyxFQUFBO0VBZGxCO0lBa0JJLGdCQUFnQjtJQUNoQixtQkFBbUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL19oZWxwZXJzL2RpcmVjdGl2ZXMvc3Rha2luZy1zd2l0Y2gvc3Rha2luZy1zd2l0Y2guY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc3dpdGNoIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxuICBwYWRkaW5nOiAwLjVyZW07XHJcbiAgd2lkdGg6IDVyZW07XHJcbiAgaGVpZ2h0OiAycmVtO1xyXG5cclxuICAuY2lyY2xlIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgfVxyXG5cclxuICAub3B0aW9uIHtcclxuICAgIG1hcmdpbjogMCAwLjJyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS4ycmVtO1xyXG4gIH1cclxufVxyXG4iXX0= */\"","import {Component, OnInit, Input, Output, EventEmitter} from '@angular/core';\r\nimport {BackendService} from '../../services/backend.service';\r\nimport {VariablesService} from '../../services/variables.service';\r\n\r\n@Component({\r\n selector: 'app-staking-switch',\r\n templateUrl: './staking-switch.component.html',\r\n styleUrls: ['./staking-switch.component.scss']\r\n})\r\nexport class StakingSwitchComponent implements OnInit {\r\n\r\n @Input() wallet_id: boolean;\r\n @Input() staking: boolean;\r\n @Output() stakingChange = new EventEmitter();\r\n\r\n constructor(private backend: BackendService, private variablesService: VariablesService) {}\r\n\r\n ngOnInit() {}\r\n\r\n toggleStaking() {\r\n const wallet = this.variablesService.getWallet(this.wallet_id);\r\n if (wallet && wallet.loaded) {\r\n this.stakingChange.emit(!this.staking);\r\n if (!this.staking) {\r\n this.backend.startPosMining(this.wallet_id);\r\n } else {\r\n this.backend.stopPosMining(this.wallet_id);\r\n }\r\n }\r\n }\r\n}\r\n","import {Directive, Input, Output, ElementRef, HostListener, Renderer2, HostBinding, OnDestroy, EventEmitter} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\n\r\n@Directive({\r\n selector: '[tooltip]'\r\n})\r\n\r\nexport class TooltipDirective implements OnDestroy {\r\n\r\n @HostBinding('style.cursor') cursor;\r\n\r\n @Input('tooltip') tooltipInner: any;\r\n @Input() placement: string;\r\n @Input() tooltipClass: string;\r\n @Input() timeout = 0;\r\n @Input() timeDelay = 0;\r\n @Input() delay = 0;\r\n @Input() showWhenNoOverflow = true;\r\n @Output() onHide = new EventEmitter();\r\n tooltip: HTMLElement;\r\n private enter: (event: MouseEvent) => void;\r\n private leave: (event: MouseEvent) => void;\r\n\r\n removeTooltipTimeout;\r\n removeTooltipTimeoutInner;\r\n\r\n removeTooltipTimeDelay;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2, private route: ActivatedRoute) {\r\n }\r\n\r\n @HostListener('mouseenter') onMouseEnter() {\r\n if (this.showWhenNoOverflow || (!this.showWhenNoOverflow && this.el.nativeElement.offsetWidth < this.el.nativeElement.scrollWidth)) {\r\n this.cursor = 'pointer';\r\n if (!this.tooltip) {\r\n if (this.timeDelay !== 0) {\r\n this.removeTooltipTimeDelay = setTimeout(() => {\r\n this.show();\r\n }, this.timeDelay);\r\n } else {\r\n this.show();\r\n }\r\n } else {\r\n this.cancelHide();\r\n }\r\n }\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n clearTimeout(this.removeTooltipTimeDelay);\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n }\r\n\r\n show() {\r\n this.create();\r\n this.placement = this.placement === null ? 'top' : this.placement;\r\n this.setPosition(this.placement);\r\n }\r\n\r\n hide() {\r\n this.removeTooltipTimeout = setTimeout(() => {\r\n this.renderer.setStyle(this.tooltip, 'opacity', '0');\r\n this.removeTooltipTimeoutInner = setTimeout(() => {\r\n this.renderer.removeChild(document.body, this.tooltip);\r\n this.tooltip.removeEventListener('mouseenter', this.enter);\r\n this.tooltip.removeEventListener('mouseleave', this.leave);\r\n this.tooltip = null;\r\n this.onHide.emit(true);\r\n }, this.delay);\r\n }, this.timeout);\r\n }\r\n\r\n cancelHide() {\r\n clearTimeout(this.removeTooltipTimeout);\r\n clearTimeout(this.removeTooltipTimeoutInner);\r\n this.renderer.setStyle(this.tooltip, 'opacity', '1');\r\n }\r\n\r\n create() {\r\n this.tooltip = this.renderer.createElement('div');\r\n let innerBlock = this.renderer.createElement('div');\r\n if (typeof this.tooltipInner === 'string') {\r\n innerBlock.innerHTML = this.tooltipInner;\r\n } else {\r\n innerBlock = this.tooltipInner;\r\n }\r\n this.renderer.addClass(innerBlock, 'tooltip-inner');\r\n this.renderer.addClass(innerBlock, 'scrolled-content');\r\n this.renderer.appendChild(this.tooltip, innerBlock);\r\n this.renderer.appendChild(document.body, this.tooltip);\r\n\r\n this.enter = () => {\r\n this.cancelHide();\r\n };\r\n this.tooltip.addEventListener('mouseenter', this.enter);\r\n this.leave = () => {\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n };\r\n this.tooltip.addEventListener('mouseleave', this.leave);\r\n\r\n this.renderer.setStyle(document.body, 'position', 'relative');\r\n this.renderer.setStyle(this.tooltip, 'position', 'absolute');\r\n if (this.tooltipClass !== null) {\r\n const classes = this.tooltipClass.split(' ');\r\n for (let i = 0; i < classes.length; i++) {\r\n this.renderer.addClass(this.tooltip, classes[i]);\r\n }\r\n }\r\n this.renderer.setStyle(this.tooltip, 'opacity', '0');\r\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.delay}ms`);\r\n window.setTimeout(() => {\r\n this.renderer.setStyle(this.tooltip, 'opacity', '1');\r\n }, 0);\r\n }\r\n\r\n setPosition(placement) {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n this.renderer.addClass(this.tooltip, 'ng-tooltip-' + placement);\r\n const topExit = hostPos.top - this.tooltip.getBoundingClientRect().height - parseInt(getComputedStyle(this.tooltip).marginTop, 10) < 0;\r\n const bottomExit = window.innerHeight < hostPos.bottom + this.tooltip.getBoundingClientRect().height + parseInt(getComputedStyle(this.tooltip).marginTop, 10);\r\n\r\n switch (placement) {\r\n case 'top':\r\n if (topExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('bottom');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'top-left':\r\n if (topExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('bottom-left');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'top-right':\r\n if (topExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('bottom-right');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'bottom':\r\n if (bottomExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('top');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'bottom-left':\r\n if (bottomExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('top-left');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'bottom-right':\r\n if (bottomExit) {\r\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\r\n this.setPosition('top-right');\r\n return;\r\n } else {\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px');\r\n this.checkSides();\r\n }\r\n break;\r\n case 'left':\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px');\r\n break;\r\n case 'left-top':\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\r\n break;\r\n case 'left-bottom':\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px');\r\n break;\r\n case 'right':\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px');\r\n break;\r\n case 'right-top':\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px');\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\r\n break;\r\n case 'right-bottom':\r\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\r\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px');\r\n break;\r\n }\r\n }\r\n\r\n checkSides() {\r\n if (this.tooltip.getBoundingClientRect().left < 0) {\r\n this.renderer.setStyle(this.tooltip, 'left', 0);\r\n }\r\n if (this.tooltip.getBoundingClientRect().right > window.innerWidth) {\r\n this.renderer.setStyle(this.tooltip, 'left', window.innerWidth - this.tooltip.getBoundingClientRect().width + 'px');\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n clearTimeout(this.removeTooltipTimeout);\r\n clearTimeout(this.removeTooltipTimeoutInner);\r\n clearTimeout(this.removeTooltipTimeDelay);\r\n if (this.tooltip) {\r\n this.renderer.removeChild(document.body, this.tooltip);\r\n this.tooltip = null;\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n {{ 'HISTORY.DETAILS.ID' | translate }}\\r\\n {{transaction.tx_hash}}\\r\\n {{ 'HISTORY.DETAILS.SIZE' | translate }}\\r\\n {{ 'HISTORY.DETAILS.SIZE_VALUE' | translate : {value: transaction.tx_blob_size} }}\\r\\n
    \\r\\n
    \\r\\n {{ 'HISTORY.DETAILS.HEIGHT' | translate }}\\r\\n {{transaction.height}}\\r\\n {{ 'HISTORY.DETAILS.CONFIRMATION' | translate }}\\r\\n {{transaction.height === 0 ? 0 : variablesService.height_app - transaction.height}}\\r\\n
    \\r\\n
    \\r\\n {{ 'HISTORY.DETAILS.INPUTS' | translate }}\\r\\n {{inputs.join(', ')}}\\r\\n {{ 'HISTORY.DETAILS.OUTPUTS' | translate }}\\r\\n {{outputs.join(', ')}}\\r\\n
    \\r\\n
    \\r\\n {{ 'HISTORY.DETAILS.PAYMENT_ID' | translate }}\\r\\n \\r\\n {{transaction.payment_id}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'HISTORY.DETAILS.COMMENT' | translate }}\\r\\n \\r\\n {{transaction.comment}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \":host {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%; }\\n\\n.table {\\n border-top: 0.2rem solid #ebebeb;\\n margin: 0 3rem;\\n padding: 0.5rem 0; }\\n\\n.table .row {\\n display: flex;\\n justify-content: flex-start;\\n align-items: center;\\n border-top: none;\\n line-height: 3rem;\\n margin: 0 -3rem;\\n width: 100%;\\n height: 3rem; }\\n\\n.table .row .cell {\\n flex-shrink: 0;\\n flex-grow: 0;\\n padding: 0 1rem;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n\\n.table .row .cell:first-child {\\n padding-left: 3rem; }\\n\\n.table .row .cell:last-child {\\n padding-right: 3rem; }\\n\\n.table .row .cell.key-value {\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy90cmFuc2FjdGlvbi1kZXRhaWxzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXF9oZWxwZXJzXFxkaXJlY3RpdmVzXFx0cmFuc2FjdGlvbi1kZXRhaWxzXFx0cmFuc2FjdGlvbi1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVyxFQUFBOztBQUdiO0VBQ0UsZ0NBQWdDO0VBQ2hDLGNBQWM7RUFDZCxpQkFBaUIsRUFBQTs7QUFIbkI7SUFNSSxhQUFhO0lBQ2IsMkJBQTJCO0lBQzNCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixXQUFXO0lBQ1gsWUFBWSxFQUFBOztBQWJoQjtNQWdCTSxjQUFjO01BQ2QsWUFBWTtNQUNaLGVBQWU7TUFDZixnQkFBZ0I7TUFDaEIsdUJBQXVCLEVBQUE7O0FBcEI3QjtRQXVCUSxrQkFBa0IsRUFBQTs7QUF2QjFCO1FBMkJRLG1CQUFtQixFQUFBOztBQTNCM0I7UUErQlEsZUFBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvX2hlbHBlcnMvZGlyZWN0aXZlcy90cmFuc2FjdGlvbi1kZXRhaWxzL3RyYW5zYWN0aW9uLWRldGFpbHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4udGFibGUge1xyXG4gIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCAjZWJlYmViO1xyXG4gIG1hcmdpbjogMCAzcmVtO1xyXG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xyXG5cclxuICAucm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgYm9yZGVyLXRvcDogbm9uZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xyXG4gICAgbWFyZ2luOiAwIC0zcmVtO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDNyZW07XHJcblxyXG4gICAgLmNlbGwge1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgZmxleC1ncm93OiAwO1xyXG4gICAgICBwYWRkaW5nOiAwIDFyZW07XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG5cclxuICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzcmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDNyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYua2V5LXZhbHVlIHtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, OnInit, OnDestroy, Input} from '@angular/core';\r\nimport {Transaction} from '../../models/transaction.model';\r\nimport {VariablesService} from '../../services/variables.service';\r\nimport {BackendService} from '../../services/backend.service';\r\nimport {IntToMoneyPipe} from '../../pipes/int-to-money.pipe';\r\nimport {BLOCK_EXPLORER_TX_URL_PREFIX} from '../../../_shared/constants';\r\nimport {BLOCK_EXPLORER_TN_TX_URL_PREFIX} from '../../../_shared/constants';\r\n\r\n@Component({\r\n selector: 'app-transaction-details',\r\n templateUrl: './transaction-details.component.html',\r\n styleUrls: ['./transaction-details.component.scss']\r\n})\r\nexport class TransactionDetailsComponent implements OnInit, OnDestroy {\r\n\r\n @Input() transaction: Transaction;\r\n @Input() sizes: Array;\r\n inputs: Array = [];\r\n outputs: Array = [];\r\n\r\n constructor(public variablesService: VariablesService, private backendService: BackendService, private intToMoneyPipe: IntToMoneyPipe) {}\r\n\r\n ngOnInit() {\r\n for (const input in this.transaction.td['spn']) {\r\n if (this.transaction.td['spn'].hasOwnProperty(input)) {\r\n this.inputs.push(this.intToMoneyPipe.transform(this.transaction.td['spn'][input]));\r\n }\r\n }\r\n for (const output in this.transaction.td['rcv']) {\r\n if (this.transaction.td['rcv'].hasOwnProperty(output)) {\r\n this.outputs.push(this.intToMoneyPipe.transform(this.transaction.td['rcv'][output]));\r\n }\r\n }\r\n }\r\n\r\n openInBrowser(tr) {\r\n this.backendService.openUrlInBrowser((this.variablesService.testnet ? BLOCK_EXPLORER_TN_TX_URL_PREFIX : BLOCK_EXPLORER_TX_URL_PREFIX)+ tr);\r\n }\r\n\r\n ngOnDestroy() {}\r\n}\r\n","import {BigNumber} from 'bignumber.js';\r\n\r\nexport class Transaction {\r\n amount: BigNumber;\r\n comment: string;\r\n contract: any[];\r\n fee: BigNumber;\r\n height: number;\r\n is_income: boolean;\r\n is_mining: boolean;\r\n is_mixing: boolean;\r\n is_service: boolean;\r\n payment_id: string;\r\n show_sender: boolean;\r\n td: object;\r\n timestamp: number;\r\n tx_blob_size: number;\r\n tx_hash: string;\r\n tx_type: number;\r\n unlock_time: number;\r\n\r\n sortAmount?: BigNumber;\r\n sortFee?: BigNumber;\r\n}\r\n","import {Contract} from './contract.model';\r\nimport {Transaction} from './transaction.model';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\nexport class Wallet {\r\n stop_paginate: boolean;\r\n open_from_exist: boolean;\r\n updated = false;\r\n wallet_id: number;\r\n name: string;\r\n pass: string;\r\n path: string;\r\n address: string;\r\n balance: BigNumber;\r\n unlocked_balance: BigNumber;\r\n mined_total: number;\r\n tracking_hey: string;\r\n is_auditable: boolean;\r\n is_watch_only: boolean;\r\n exclude_mining_txs: boolean;\r\n alias_available: boolean;\r\n\r\n alias?: object;\r\n wakeAlias?: boolean;\r\n staking?: boolean;\r\n new_messages?: number;\r\n new_contracts?: number;\r\n\r\n history: Array = [];\r\n total_history_item?: number;\r\n pages = [];\r\n totalPages: number;\r\n currentPage: number;\r\n excluded_history: Array = [];\r\n\r\n contracts: Array = [];\r\n\r\n progress?: number;\r\n loaded?: boolean;\r\n restore?: boolean;\r\n\r\n send_data?: any = {\r\n address: null,\r\n amount: null,\r\n comment: null,\r\n mixin: null,\r\n fee: null,\r\n hide: null\r\n };\r\n\r\n constructor(id, name, pass, path, address, balance, unlocked_balance, mined = 0, tracking = '') {\r\n this.wallet_id = id;\r\n this.name = name;\r\n this.pass = pass;\r\n this.path = path;\r\n this.address = address;\r\n this.balance = balance;\r\n this.unlocked_balance = unlocked_balance;\r\n this.mined_total = mined;\r\n this.tracking_hey = tracking;\r\n\r\n this.alias = {};\r\n this.staking = false;\r\n this.new_messages = 0;\r\n this.new_contracts = 0;\r\n\r\n this.history = [];\r\n this.excluded_history = [];\r\n\r\n this.progress = 0;\r\n this.loaded = false;\r\n }\r\n\r\n getMoneyEquivalent(equivalent) {\r\n return this.balance.multipliedBy(equivalent).toFixed(0);\r\n }\r\n\r\n havePass(): boolean {\r\n return (this.pass !== '' && this.pass !== null);\r\n }\r\n\r\n isActive(id): boolean {\r\n return this.wallet_id === id;\r\n }\r\n\r\n prepareHistoryItem(item: Transaction): any {\r\n if (item.tx_type === 4) {\r\n item.sortFee = item.amount.plus(item.fee).negated();\r\n item.sortAmount = new BigNumber(0);\r\n } else if (item.tx_type === 3) {\r\n item.sortFee = new BigNumber(0);\r\n } else if ((item.hasOwnProperty('contract') && (item.contract[0].state === 3 || item.contract[0].state === 6 || item.contract[0].state === 601) && !item.contract[0].is_a)) {\r\n item.sortFee = item.fee.negated();\r\n item.sortAmount = item.amount;\r\n } else {\r\n if (!item.is_income) {\r\n item.sortFee = item.fee.negated();\r\n item.sortAmount = item.amount.negated();\r\n } else {\r\n item.sortAmount = item.amount;\r\n }\r\n }\r\n return item;\r\n }\r\n\r\n prepareHistory(items: Transaction[]): void {\r\n for (let i = 0; i < items.length; i++) {\r\n if ((items[i].tx_type === 7 && items[i].is_income) || (items[i].tx_type === 11 && items[i].is_income) || (items[i].amount.eq(0) && items[i].fee.eq(0) && !items[i].is_mining)) {\r\n let exists = false;\r\n for (let j = 0; j < this.excluded_history.length; j++) {\r\n if (this.excluded_history[j].tx_hash === items[i].tx_hash) {\r\n exists = true;\r\n if (this.excluded_history[j].height !== items[i].height) {\r\n this.excluded_history[j] = items[i];\r\n }\r\n break;\r\n }\r\n }\r\n if (!exists) {\r\n this.excluded_history.push(items[i]);\r\n }\r\n } else {\r\n let exists = false;\r\n for (let j = 0; j < this.history.length; j++) {\r\n if (this.history[j].tx_hash === items[i].tx_hash) {\r\n exists = true;\r\n if (this.history[j].height !== items[i].height) {\r\n this.history[j] = this.prepareHistoryItem(items[i]);\r\n }\r\n break;\r\n }\r\n }\r\n if (!exists) {\r\n if (this.history.length && items[i].timestamp >= this.history[0].timestamp) {\r\n this.history.unshift(this.prepareHistoryItem(items[i]));\r\n } else {\r\n this.history.push(this.prepareHistoryItem(items[i]));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeFromHistory(hash: string): void {\r\n for (let i = 0; i < this.history.length; i++) {\r\n if (this.history[i].tx_hash === hash) {\r\n this.history.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n prepareContractsAfterOpen(items: any[], exp_med_ts, height_app, viewedContracts, notViewedContracts): void {\r\n const wallet = this;\r\n for (let i = 0; i < items.length; i++) {\r\n const contract = items[i];\r\n let contractTransactionExist = false;\r\n if (wallet && wallet.history) {\r\n contractTransactionExist = wallet.history.some(elem => elem.contract && elem.contract.length && elem.contract[0].contract_id === contract.contract_id);\r\n }\r\n if (!contractTransactionExist && wallet && wallet.excluded_history) {\r\n contractTransactionExist = wallet.excluded_history.some(elem => elem.contract && elem.contract.length && elem.contract[0].contract_id === contract.contract_id);\r\n }\r\n\r\n if (!contractTransactionExist) {\r\n contract.state = 140;\r\n } else if (contract.state === 1 && contract.expiration_time < exp_med_ts) {\r\n contract.state = 110;\r\n } else if (contract.state === 2 && contract.cancel_expiration_time !== 0 && contract.cancel_expiration_time < exp_med_ts && contract.height === 0) {\r\n const searchResult1 = viewedContracts.some(elem => elem.state === 2 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (!searchResult1) {\r\n contract.state = 130;\r\n contract.is_new = true;\r\n }\r\n } else if (contract.state === 1) {\r\n const searchResult2 = notViewedContracts.find(elem => elem.state === 110 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult2) {\r\n if (searchResult2.time === contract.expiration_time) {\r\n contract.state = 110;\r\n } else {\r\n for (let j = 0; j < notViewedContracts.length; j++) {\r\n if (notViewedContracts[j].contract_id === contract.contract_id && notViewedContracts[j].is_a === contract.is_a) {\r\n notViewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n for (let j = 0; j < viewedContracts.length; j++) {\r\n if (viewedContracts[j].contract_id === contract.contract_id && viewedContracts[j].is_a === contract.is_a) {\r\n viewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else if (contract.state === 2 && (contract.height === 0 || (height_app - contract.height) < 10)) {\r\n contract.state = 201;\r\n } else if (contract.state === 2) {\r\n const searchResult3 = viewedContracts.some(elem => elem.state === 120 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult3) {\r\n contract.state = 120;\r\n }\r\n } else if (contract.state === 5) {\r\n const searchResult4 = notViewedContracts.find(elem => elem.state === 130 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult4) {\r\n if (searchResult4.time === contract.cancel_expiration_time) {\r\n contract.state = 130;\r\n } else {\r\n for (let j = 0; j < notViewedContracts.length; j++) {\r\n if (notViewedContracts[j].contract_id === contract.contract_id && notViewedContracts[j].is_a === contract.is_a) {\r\n notViewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n for (let j = 0; j < viewedContracts.length; j++) {\r\n if (viewedContracts[j].contract_id === contract.contract_id && viewedContracts[j].is_a === contract.is_a) {\r\n viewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else if (contract.state === 6 && (contract.height === 0 || (height_app - contract.height) < 10)) {\r\n contract.state = 601;\r\n }\r\n const searchResult = viewedContracts.some(elem => elem.state === contract.state && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n contract.is_new = !searchResult;\r\n\r\n wallet.contracts.push(contract);\r\n }\r\n this.recountNewContracts();\r\n }\r\n\r\n recountNewContracts() {\r\n this.new_contracts = (this.contracts.filter(item => item.is_new === true )).length;\r\n }\r\n\r\n getContract(id): Contract {\r\n for (let i = 0; i < this.contracts.length; i++) {\r\n if (this.contracts[i].contract_id === id) {\r\n return this.contracts[i];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'contractStatusMessages'\r\n})\r\nexport class ContractStatusMessagesPipe implements PipeTransform {\r\n\r\n constructor(private translate: TranslateService) {}\r\n\r\n getStateSeller(stateNum: number): string {\r\n const state = {part1: '', part2: ''};\r\n switch (stateNum) {\r\n case 1:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NEW_CONTRACT');\r\n break;\r\n case 110:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED');\r\n break;\r\n case 201:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.ACCEPTED');\r\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAIT');\r\n break;\r\n case 2:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAITING_BUYER');\r\n break;\r\n case 3:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.COMPLETED');\r\n break;\r\n case 4:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NOT_RECEIVED');\r\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NULLIFIED');\r\n break;\r\n case 5:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.PROPOSAL_CANCEL');\r\n break;\r\n case 601:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.BEING_CANCELLED');\r\n break;\r\n case 6:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.CANCELLED');\r\n break;\r\n case 130:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED_CANCEL');\r\n break;\r\n case 140:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.EXPIRED');\r\n break;\r\n }\r\n return state.part1 + (state.part2.length ? '. ' + state.part2 : '');\r\n }\r\n\r\n getStateBuyer(stateNum: number): string {\r\n const state = {part1: '', part2: ''};\r\n switch (stateNum) {\r\n case 1:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING');\r\n break;\r\n case 110:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED');\r\n break;\r\n case 201:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED');\r\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAIT');\r\n break;\r\n case 2:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED');\r\n break;\r\n case 120:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_SELLER');\r\n break;\r\n case 3:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.COMPLETED');\r\n break;\r\n case 4:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NOT_RECEIVED');\r\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NULLIFIED');\r\n break;\r\n case 5:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_CANCEL');\r\n break;\r\n case 601:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.BEING_CANCELLED');\r\n break;\r\n case 6:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.CANCELLED');\r\n break;\r\n case 130:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED_CANCEL');\r\n break;\r\n case 140:\r\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.EXPIRED');\r\n break;\r\n }\r\n return state.part1 + (state.part2.length ? '. ' + state.part2 : '');\r\n }\r\n\r\n transform(state: number, is_a?: boolean): any {\r\n if (is_a) {\r\n return this.getStateBuyer(state);\r\n } else {\r\n return this.getStateSeller(state);\r\n }\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {VariablesService} from '../services/variables.service';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'contractTimeLeft'\r\n})\r\nexport class ContractTimeLeftPipe implements PipeTransform {\r\n\r\n constructor(private service: VariablesService, private translate: TranslateService) {}\r\n\r\n transform(value: any, arg?: any): any {\r\n const time = parseInt(((parseInt(value, 10) - this.service.exp_med_ts) / 3600).toFixed(0), 10);\r\n const type = arg || 0;\r\n if (time === 0) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_LESS_ONE');\r\n }\r\n if (this.service.settings.language === 'en') {\r\n if (type === 0) {\r\n if (time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', {time: time});\r\n }\r\n } else if (type === 1) {\r\n if (time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', {time: time});\r\n }\r\n } else if (type === 2) {\r\n if (time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', {time: time});\r\n }\r\n }\r\n } else {\r\n const rest = time % 10;\r\n if (type === 0) {\r\n if (((time > 20 ) && (rest === 1)) || time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', {time: time});\r\n } else if ((time > 1) && (time < 5) || ((time > 20 ) && (rest === 2 || rest === 3 || rest === 4))) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT', {time: time});\r\n }\r\n } else if (type === 1) {\r\n if (((time > 20 ) && (rest === 1)) || time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', {time: time});\r\n } else if ((time > 1) && (time < 5) || ((time > 20 ) && (rest === 2 || rest === 3 || rest === 4))) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_RESPONSE', {time: time});\r\n }\r\n } else if (type === 2) {\r\n if (((time > 20 ) && (rest === 1)) || time === 1) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', {time: time});\r\n } else if ((time > 1) && (time < 5) || ((time > 20 ) && (rest === 2 || rest === 3 || rest === 4))) {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', {time: time});\r\n } else {\r\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_WAITING', {time: time});\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'historyTypeMessages'\r\n})\r\nexport class HistoryTypeMessagesPipe implements PipeTransform {\r\n\r\n constructor(private translate: TranslateService) {}\r\n\r\n transform(item: any, args?: any): any {\r\n\r\n if (item.tx_type === 0) {\r\n if (item.remote_addresses && item.remote_addresses[0]) {\r\n return item.remote_addresses[0];\r\n } else {\r\n if (item.is_income) {\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.HIDDEN');\r\n } else {\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED');\r\n }\r\n }\r\n } else if (item.tx_type === 6 && item.height === 0) {\r\n return 'unknown';\r\n } else if (item.tx_type === 9) {\r\n if (item.hasOwnProperty('contract') && item.contract[0].is_a) {\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_BUYER');\r\n } else {\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_SELLER');\r\n }\r\n } else {\r\n switch (item.tx_type) {\r\n // case 0:\r\n // return '';\r\n // case 1:\r\n // return '';\r\n // case 2:\r\n // return '';\r\n // case 3:\r\n // return '';\r\n case 4:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_ALIAS');\r\n case 5:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UPDATE_ALIAS');\r\n case 6:\r\n return (item.td['spn'] && item.td['spn'].length) ? this.translate.instant('HISTORY.TYPE_MESSAGES.POS_REWARD') : this.translate.instant('HISTORY.TYPE_MESSAGES.POW_REWARD');\r\n case 7:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_CONTRACT');\r\n case 8:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.PLEDGE_CONTRACT');\r\n // case 9:\r\n // return '';\r\n case 10:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.NULLIFY_CONTRACT');\r\n case 11:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.PROPOSAL_CANCEL_CONTRACT');\r\n case 12:\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CANCEL_CONTRACT');\r\n }\r\n }\r\n\r\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED');\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {VariablesService} from '../services/variables.service';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Pipe({\r\n name: 'intToMoney'\r\n})\r\nexport class IntToMoneyPipe implements PipeTransform {\r\n\r\n constructor(private variablesService: VariablesService) {}\r\n\r\n transform(value: any, args?: any): any {\r\n if (value === 0 || value === undefined) {\r\n return '0';\r\n }\r\n let maxFraction = this.variablesService.digits;\r\n if (args) {\r\n maxFraction = parseInt(args, 10);\r\n }\r\n const power = Math.pow(10, this.variablesService.digits);\r\n let str = (new BigNumber(value)).div(power).toFixed(maxFraction);\r\n\r\n for (let i = str.length - 1; i >= 0; i--) {\r\n if (str[i] !== '0') {\r\n str = str.substr(0, i + 1);\r\n break;\r\n }\r\n }\r\n if (str[str.length - 1] === '.') {\r\n str = str.substr(0, str.length - 1);\r\n }\r\n return str;\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {VariablesService} from '../services/variables.service';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Pipe({\r\n name: 'moneyToInt'\r\n})\r\nexport class MoneyToIntPipe implements PipeTransform {\r\n\r\n constructor(private variablesService: VariablesService) {}\r\n\r\n transform(value: any, args?: any): any {\r\n const CURRENCY_DISPLAY_DECIMAL_POINT = this.variablesService.digits;\r\n let result;\r\n if (value) {\r\n let am_str = value.toString().trim();\r\n const point_index = am_str.indexOf('.');\r\n let fraction_size = 0;\r\n if (-1 !== point_index) {\r\n fraction_size = am_str.length - point_index - 1;\r\n while (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size && '0' === am_str[am_str.length - 1]) {\r\n am_str = am_str.slice(0, am_str.length - 1);\r\n --fraction_size;\r\n }\r\n if (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size) {\r\n return undefined;\r\n }\r\n am_str = am_str.slice(0, point_index) + am_str.slice(point_index + 1, am_str.length);\r\n } else {\r\n fraction_size = 0;\r\n }\r\n if (!am_str.length) {\r\n return undefined;\r\n }\r\n if (fraction_size < CURRENCY_DISPLAY_DECIMAL_POINT) {\r\n for (let i = 0; i !== CURRENCY_DISPLAY_DECIMAL_POINT - fraction_size; i++) {\r\n am_str = am_str + '0';\r\n }\r\n }\r\n result = (new BigNumber(am_str)).integerValue();\r\n }\r\n return result;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHTML'\r\n})\r\nexport class SafeHTMLPipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n transform(html: string) {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {VariablesService} from './variables.service';\r\nimport {ModalService} from './modal.service';\r\nimport {MoneyToIntPipe} from '../pipes/money-to-int.pipe';\r\nimport JSONBigNumber from 'json-bignumber';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Injectable()\r\nexport class BackendService {\r\n\r\n backendObject: any;\r\n backendLoaded = false;\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n private variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private moneyToIntPipe: MoneyToIntPipe\r\n ) {\r\n }\r\n\r\n static bigNumberParser(key, val) {\r\n if (val.constructor.name === 'BigNumber' && ['balance', 'unlocked_balance', 'amount', 'fee', 'b_fee', 'to_pay', 'a_pledge', 'b_pledge', 'coast', 'a'].indexOf(key) === -1) {\r\n return val.toNumber();\r\n }\r\n if (key === 'rcv' || key === 'spn') {\r\n for (let i = 0; i < val.length; i++) {\r\n val[i] = new BigNumber(val[i]);\r\n }\r\n }\r\n return val;\r\n }\r\n\r\n static Debug(type, message) {\r\n switch (type) {\r\n case 0:\r\n console.error(message);\r\n break;\r\n case 1:\r\n console.warn(message);\r\n break;\r\n case 2:\r\n console.log(message);\r\n break;\r\n default:\r\n console.log(message);\r\n break;\r\n }\r\n }\r\n\r\n private informerRun(error, params, command) {\r\n let error_translate = '';\r\n\r\n switch (error) {\r\n case 'NOT_ENOUGH_MONEY':\r\n error_translate = 'ERRORS.NOT_ENOUGH_MONEY';\r\n // error_translate = 'ERRORS.NO_MONEY'; maybe that one?\r\n if (command === 'cancel_offer') {\r\n error_translate = this.translate.instant('ERRORS.NO_MONEY_REMOVE_OFFER', {\r\n 'fee': this.variablesService.default_fee,\r\n 'currency': this.variablesService.defaultCurrency\r\n });\r\n }\r\n break;\r\n case 'CORE_BUSY':\r\n error_translate = 'ERRORS.CORE_BUSY';\r\n break;\r\n case 'BUSY':\r\n error_translate = 'ERRORS.DAEMON_BUSY';\r\n break;\r\n case 'OVERFLOW':\r\n if (command !== 'get_all_aliases') {\r\n error_translate = '';\r\n }\r\n break;\r\n case 'NOT_ENOUGH_OUTPUTS_FOR_MIXING':\r\n error_translate = 'ERRORS.NOT_ENOUGH_OUTPUTS_TO_MIX';\r\n break;\r\n case 'TX_IS_TOO_BIG':\r\n error_translate = 'ERRORS.TRANSACTION_IS_TO_BIG';\r\n break;\r\n case 'DISCONNECTED':\r\n error_translate = 'ERRORS.TRANSFER_ATTEMPT';\r\n break;\r\n case 'ACCESS_DENIED':\r\n error_translate = 'ERRORS.ACCESS_DENIED';\r\n break;\r\n case 'TX_REJECTED':\r\n // if (command === 'request_alias_registration') {\r\n // error_translate = 'INFORMER.ALIAS_IN_REGISTER';\r\n // } else {\r\n error_translate = 'ERRORS.TRANSACTION_ERROR';\r\n // }\r\n break;\r\n case 'INTERNAL_ERROR':\r\n error_translate = 'ERRORS.TRANSACTION_ERROR';\r\n break;\r\n case 'BAD_ARG':\r\n error_translate = 'ERRORS.BAD_ARG';\r\n break;\r\n case 'WALLET_WRONG_ID':\r\n error_translate = 'ERRORS.WALLET_WRONG_ID';\r\n break;\r\n case 'WALLET_WATCH_ONLY_NOT_SUPPORTED':\r\n error_translate = 'ERRORS.WALLET_WATCH_ONLY_NOT_SUPPORTED';\r\n break;\r\n case 'WRONG_PASSWORD':\r\n params = JSON.parse(params);\r\n if (!params.testEmpty) {\r\n error_translate = 'ERRORS.WRONG_PASSWORD';\r\n }\r\n break;\r\n case 'FILE_RESTORED':\r\n if (command === 'open_wallet') {\r\n error_translate = 'ERRORS.FILE_RESTORED';\r\n }\r\n break;\r\n case 'FILE_NOT_FOUND':\r\n if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') {\r\n error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND');\r\n params = JSON.parse(params);\r\n if (params.path) {\r\n error_translate += ': ' + params.path;\r\n }\r\n }\r\n break;\r\n case 'NOT_FOUND':\r\n if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') {\r\n error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND');\r\n params = JSON.parse(params);\r\n if (params.path) {\r\n error_translate += ': ' + params.path;\r\n }\r\n }\r\n break;\r\n case 'CANCELED':\r\n case '':\r\n break;\r\n case 'FAIL':\r\n if (command === 'create_proposal' || command === 'accept_proposal' || command === 'release_contract' || command === 'request_cancel_contract' || command === 'accept_cancel_contract') {\r\n error_translate = ' ';\r\n }\r\n break;\r\n case 'ALREADY_EXISTS':\r\n error_translate = 'ERRORS.FILE_EXIST';\r\n break;\r\n case 'FAILED':\r\n BackendService.Debug(0, `Error: (${error}) was triggered by command: ${command}`);\r\n break;\r\n default:\r\n error_translate = error;\r\n }\r\n if (error.indexOf('FAIL:failed to save file') > -1) {\r\n error_translate = 'ERRORS.FILE_NOT_SAVED';\r\n }\r\n if (error.indexOf('FAILED:failed to open binary wallet file for saving') > -1 && command === 'generate_wallet') {\r\n error_translate = '';\r\n }\r\n\r\n if (error_translate !== '') {\r\n this.modalService.prepareModal('error', error_translate);\r\n }\r\n }\r\n\r\n\r\n private commandDebug(command, params, result) {\r\n BackendService.Debug(2, '----------------- ' + command + ' -----------------');\r\n const debug = {\r\n _send_params: params,\r\n _result: result\r\n };\r\n BackendService.Debug(2, debug);\r\n try {\r\n BackendService.Debug(2, JSONBigNumber.parse(result, BackendService.bigNumberParser));\r\n } catch (e) {\r\n BackendService.Debug(2, {response_data: result, error_code: 'OK'});\r\n }\r\n }\r\n\r\n private backendCallback(resultStr, params, callback, command) {\r\n let Result = resultStr;\r\n if (command !== 'get_clipboard') {\r\n if (!resultStr || resultStr === '') {\r\n Result = {};\r\n } else {\r\n try {\r\n Result = JSONBigNumber.parse(resultStr, BackendService.bigNumberParser);\r\n } catch (e) {\r\n Result = {response_data: resultStr, error_code: 'OK'};\r\n }\r\n }\r\n } else {\r\n Result = {\r\n error_code: 'OK',\r\n response_data: Result\r\n };\r\n }\r\n\r\n const core_busy = Result.error_code === 'CORE_BUSY';\r\n const Status = (Result.error_code === 'OK' || Result.error_code === 'TRUE');\r\n\r\n if (!Status && Status !== undefined && Result.error_code !== undefined) {\r\n BackendService.Debug(1, 'API error for command: \"' + command + '\". Error code: ' + Result.error_code);\r\n }\r\n const data = ((typeof Result === 'object') && 'response_data' in Result) ? Result.response_data : Result;\r\n\r\n let res_error_code = false;\r\n if (typeof Result === 'object' && 'error_code' in Result && Result.error_code !== 'OK' && Result.error_code !== 'TRUE' && Result.error_code !== 'FALSE') {\r\n if (core_busy) {\r\n setTimeout( () => {\r\n // this is will avoid update data when user\r\n // on other wallet after CORE_BUSY (blink of data)\r\n if (command !== 'get_recent_transfers') {\r\n this.runCommand(command, params, callback);\r\n } else {\r\n const current_wallet_id = this.variablesService.currentWallet.wallet_id;\r\n if (current_wallet_id === params.wallet_id) {\r\n this.runCommand(command, params, callback);\r\n }\r\n }\r\n }, 50);\r\n } else {\r\n this.informerRun(Result.error_code, params, command);\r\n res_error_code = Result.error_code;\r\n }\r\n }\r\n\r\n // if ( command === 'get_offers_ex' ){\r\n // Service.printLog( \"get_offers_ex offers count \"+((data.offers)?data.offers.length:0) );\r\n // }\r\n\r\n if (!core_busy) {\r\n if (typeof callback === 'function') {\r\n callback(Status, data, res_error_code);\r\n } else {\r\n return data;\r\n }\r\n }\r\n }\r\n\r\n\r\n private runCommand(command, params?, callback?) {\r\n if (this.backendObject) {\r\n if (command === 'get_recent_transfers') {\r\n this.variablesService.get_recent_transfers = true;\r\n }\r\n const Action = this.backendObject[command];\r\n if (!Action) {\r\n BackendService.Debug(0, 'Run Command Error! Command \"' + command + '\" don\\'t found in backendObject');\r\n } else {\r\n const that = this;\r\n params = (typeof params === 'string') ? params : JSONBigNumber.stringify(params);\r\n if (params === undefined || params === '{}') {\r\n if (command === 'get_recent_transfers') {\r\n this.variablesService.get_recent_transfers = false;\r\n }\r\n Action(function (resultStr) {\r\n that.commandDebug(command, params, resultStr);\r\n return that.backendCallback(resultStr, params, callback, command);\r\n });\r\n } else {\r\n Action(params, function (resultStr) {\r\n that.commandDebug(command, params, resultStr);\r\n return that.backendCallback(resultStr, params, callback, command);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n eventSubscribe(command, callback) {\r\n if (command === 'on_core_event') {\r\n this.backendObject[command].connect(callback);\r\n } else {\r\n this.backendObject[command].connect((str) => {\r\n callback(JSONBigNumber.parse(str, BackendService.bigNumberParser));\r\n });\r\n }\r\n }\r\n\r\n\r\n initService() {\r\n return new Observable(\r\n observer => {\r\n if (!this.backendLoaded) {\r\n this.backendLoaded = true;\r\n const that = this;\r\n (window).QWebChannel((window).qt.webChannelTransport, function (channel) {\r\n that.backendObject = channel.objects.mediator_object;\r\n observer.next('ok');\r\n });\r\n } else {\r\n if (!this.backendObject) {\r\n observer.error('error');\r\n observer.error('error');\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n webkitLaunchedScript() {\r\n return this.runCommand('webkit_launched_script');\r\n }\r\n\r\n quitRequest() {\r\n return this.runCommand('on_request_quit');\r\n }\r\n\r\n getAppData(callback) {\r\n this.runCommand('get_app_data', {}, callback);\r\n }\r\n\r\n storeAppData(callback?) {\r\n if (this.variablesService.wallets.length) {\r\n this.variablesService.settings.wallets = [];\r\n this.variablesService.wallets.forEach((wallet) => {\r\n this.variablesService.settings.wallets.push({name: wallet.name, path: wallet.path});\r\n });\r\n }\r\n this.runCommand('store_app_data', this.variablesService.settings, callback);\r\n }\r\n\r\n getSecureAppData(pass, callback) {\r\n this.runCommand('get_secure_app_data', pass, callback);\r\n }\r\n\r\n setMasterPassword(pass, callback) {\r\n this.runCommand('set_master_password', pass, callback);\r\n }\r\n\r\n checkMasterPassword(pass, callback) {\r\n this.runCommand('check_master_password', pass, callback);\r\n }\r\n storeSecureAppData(callback?) {\r\n let data;\r\n const wallets = [];\r\n const contacts = [];\r\n this.variablesService.wallets.forEach((wallet) => {\r\n wallets.push({name: wallet.name, pass: wallet.pass, path: wallet.path, staking: wallet.staking});\r\n });\r\n this.variablesService.contacts.forEach((contact) => {\r\n contacts.push({name: contact.name, address: contact.address, notes: contact.notes});\r\n });\r\n data = {wallets: wallets, contacts: contacts};\r\n this.backendObject['store_secure_app_data'](JSON.stringify(data), this.variablesService.appPass, (dataStore) => {\r\n this.backendCallback(dataStore, {}, callback, 'store_secure_app_data');\r\n });\r\n }\r\n\r\n dropSecureAppData(callback?) {\r\n this.backendObject['drop_secure_app_data']((dataStore) => {\r\n this.backendCallback(dataStore, {}, callback, 'drop_secure_app_data');\r\n });\r\n }\r\n\r\n haveSecureAppData(callback) {\r\n this.runCommand('have_secure_app_data', {}, callback);\r\n }\r\n\r\n saveFileDialog(caption, fileMask, default_path, callback) {\r\n const dir = default_path ? default_path : '/';\r\n const params = {\r\n caption: caption,\r\n filemask: fileMask,\r\n default_dir: dir\r\n };\r\n this.runCommand('show_savefile_dialog', params, callback);\r\n }\r\n\r\n openFileDialog(caption, fileMask, default_path, callback) {\r\n const dir = default_path ? default_path : '/';\r\n const params = {\r\n caption: caption,\r\n filemask: fileMask,\r\n default_dir: dir\r\n };\r\n this.runCommand('show_openfile_dialog', params, callback);\r\n }\r\n\r\n storeFile(path, buff) {\r\n this.backendObject['store_to_file'](path, buff);\r\n }\r\n\r\n loadFile(path, callback) {\r\n this.runCommand('load_from_file', path, callback);\r\n }\r\n\r\n generateWallet(path, pass, callback) {\r\n const params = {\r\n path: path,\r\n pass: pass\r\n };\r\n this.runCommand('generate_wallet', params, callback);\r\n }\r\n\r\n openWallet(path, pass, txs_to_return, testEmpty, callback) {\r\n const params = {\r\n path: path,\r\n pass: pass,\r\n txs_to_return: txs_to_return\r\n };\r\n params['testEmpty'] = !!(testEmpty);\r\n this.runCommand('open_wallet', params, callback);\r\n }\r\n\r\n closeWallet(wallet_id, callback?) {\r\n this.runCommand('close_wallet', {wallet_id: +wallet_id}, callback);\r\n }\r\n\r\n getSmartWalletInfo({wallet_id, seed_password}, callback) {\r\n this.runCommand('get_smart_wallet_info', {wallet_id: +wallet_id, seed_password}, callback);\r\n }\r\n\r\n getSeedPhraseInfo(param, callback) {\r\n this.runCommand('get_seed_phrase_info', param, callback);\r\n }\r\n\r\n runWallet(wallet_id, callback?) {\r\n this.runCommand('run_wallet', {wallet_id: +wallet_id}, callback);\r\n }\r\n\r\n isValidRestoreWalletText(param, callback) {\r\n this.runCommand('is_valid_restore_wallet_text', param, callback);\r\n }\r\n\r\n restoreWallet(path, pass, seed_phrase, seed_pass, callback) {\r\n const params = {\r\n seed_phrase: seed_phrase,\r\n path: path,\r\n pass: pass,\r\n seed_pass\r\n };\r\n this.runCommand('restore_wallet', params, callback);\r\n }\r\n\r\n sendMoney(from_wallet_id, to_address, amount, fee, mixin, comment, hide, callback) {\r\n const params = {\r\n wallet_id: parseInt(from_wallet_id, 10),\r\n destinations: [\r\n {\r\n address: to_address,\r\n amount: amount\r\n }\r\n ],\r\n mixin_count: (mixin) ? parseInt(mixin, 10) : 0,\r\n lock_time: 0,\r\n fee: this.moneyToIntPipe.transform(fee),\r\n comment: comment,\r\n push_payer: !hide\r\n };\r\n this.runCommand('transfer', params, callback);\r\n }\r\n\r\n validateAddress(address, callback) {\r\n this.runCommand('validate_address', address, callback);\r\n }\r\n\r\n setClipboard(str, callback?) {\r\n return this.runCommand('set_clipboard', str, callback);\r\n }\r\n\r\n getClipboard(callback) {\r\n return this.runCommand('get_clipboard', {}, callback);\r\n }\r\n\r\n createProposal(wallet_id, title, comment, a_addr, b_addr, to_pay, a_pledge, b_pledge, time, payment_id, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n details: {\r\n t: title,\r\n c: comment,\r\n a_addr: a_addr,\r\n b_addr: b_addr,\r\n to_pay: this.moneyToIntPipe.transform(to_pay),\r\n a_pledge: this.moneyToIntPipe.transform(a_pledge),\r\n b_pledge: this.moneyToIntPipe.transform(b_pledge)\r\n },\r\n payment_id: payment_id,\r\n expiration_period: parseInt(time, 10) * 60 * 60,\r\n fee: this.variablesService.default_fee_big,\r\n b_fee: this.variablesService.default_fee_big\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('create_proposal', params, callback);\r\n }\r\n\r\n getContracts(wallet_id, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10)\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('get_contracts', params, callback);\r\n }\r\n\r\n acceptProposal(wallet_id, contract_id, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n contract_id: contract_id\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('accept_proposal', params, callback);\r\n }\r\n\r\n releaseProposal(wallet_id, contract_id, release_type, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n contract_id: contract_id,\r\n release_type: release_type // \"normal\" or \"burn\"\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('release_contract', params, callback);\r\n }\r\n\r\n requestCancelContract(wallet_id, contract_id, time, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n contract_id: contract_id,\r\n fee: this.variablesService.default_fee_big,\r\n expiration_period: parseInt(time, 10) * 60 * 60\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('request_cancel_contract', params, callback);\r\n }\r\n\r\n acceptCancelContract(wallet_id, contract_id, callback) {\r\n const params = {\r\n wallet_id: parseInt(wallet_id, 10),\r\n contract_id: contract_id\r\n };\r\n BackendService.Debug(1, params);\r\n this.runCommand('accept_cancel_contract', params, callback);\r\n }\r\n\r\n getMiningHistory(wallet_id, callback) {\r\n this.runCommand('get_mining_history', {wallet_id: parseInt(wallet_id, 10)}, callback);\r\n }\r\n\r\n startPosMining(wallet_id, callback?) {\r\n this.runCommand('start_pos_mining', {wallet_id: parseInt(wallet_id, 10)}, callback);\r\n }\r\n\r\n stopPosMining(wallet_id, callback?) {\r\n this.runCommand('stop_pos_mining', {wallet_id: parseInt(wallet_id, 10)}, callback);\r\n }\r\n\r\n openUrlInBrowser(url, callback?) {\r\n this.runCommand('open_url_in_browser', url, callback);\r\n }\r\n\r\n start_backend(node, host, port, callback) {\r\n const params = {\r\n configure_for_remote_node: node,\r\n remote_node_host: host,\r\n remote_node_port: parseInt(port, 10)\r\n };\r\n this.runCommand('start_backend', params, callback);\r\n }\r\n\r\n getDefaultFee(callback) {\r\n this.runCommand('get_default_fee', {}, callback);\r\n }\r\n\r\n setBackendLocalization(stringsArray, title, callback?) {\r\n const params = {\r\n strings: stringsArray,\r\n language_title: title\r\n };\r\n this.runCommand('set_localization_strings', params, callback);\r\n }\r\n\r\n registerAlias(wallet_id, alias, address, fee, comment, reward, callback) {\r\n const params = {\r\n wallet_id: wallet_id,\r\n alias: {\r\n alias: alias,\r\n address: address,\r\n tracking_key: '',\r\n comment: comment\r\n },\r\n fee: this.moneyToIntPipe.transform(fee),\r\n reward: this.moneyToIntPipe.transform(reward)\r\n };\r\n this.runCommand('request_alias_registration', params, callback);\r\n }\r\n\r\n updateAlias(wallet_id, alias, fee, callback) {\r\n const params = {\r\n wallet_id: wallet_id,\r\n alias: {\r\n alias: alias.name.replace('@', ''),\r\n address: alias.address,\r\n tracking_key: '',\r\n comment: alias.comment\r\n },\r\n fee: this.moneyToIntPipe.transform(fee)\r\n };\r\n this.runCommand('request_alias_update', params, callback);\r\n }\r\n\r\n getAllAliases(callback) {\r\n this.runCommand('get_all_aliases', {}, callback);\r\n }\r\n\r\n getAliasByName(value, callback) {\r\n return this.runCommand('get_alias_info_by_name', value, callback);\r\n }\r\n\r\n getAliasByAddress(value, callback) {\r\n return this.runCommand('get_alias_info_by_address', value, callback);\r\n }\r\n\r\n getAliasCoast(alias, callback) {\r\n this.runCommand('get_alias_coast', {v: alias}, callback);\r\n }\r\n\r\n getWalletAlias(address) {\r\n if (address !== null && this.variablesService.daemon_state === 2) {\r\n if (this.variablesService.aliasesChecked[address] == null) {\r\n this.variablesService.aliasesChecked[address] = {};\r\n if (this.variablesService.aliases.length) {\r\n for (let i = 0, length = this.variablesService.aliases.length; i < length; i++) {\r\n if (i in this.variablesService.aliases && this.variablesService.aliases[i]['address'] === address) {\r\n this.variablesService.aliasesChecked[address]['name'] = this.variablesService.aliases[i].name;\r\n this.variablesService.aliasesChecked[address]['address'] = this.variablesService.aliases[i].address;\r\n this.variablesService.aliasesChecked[address]['comment'] = this.variablesService.aliases[i].comment;\r\n return this.variablesService.aliasesChecked[address];\r\n }\r\n }\r\n }\r\n this.getAliasByAddress(address, (status, data) => {\r\n if (status) {\r\n this.variablesService.aliasesChecked[data.address]['name'] = '@' + data.alias;\r\n this.variablesService.aliasesChecked[data.address]['address'] = data.address;\r\n this.variablesService.aliasesChecked[data.address]['comment'] = data.comment;\r\n }\r\n });\r\n }\r\n return this.variablesService.aliasesChecked[address];\r\n }\r\n return {};\r\n }\r\n\r\n getContactAlias() {\r\n if (this.variablesService.contacts.length && this.variablesService.daemon_state === 2) {\r\n this.variablesService.contacts.map(contact => {\r\n this.getAliasByAddress(contact.address, (status, data) => {\r\n if (status) {\r\n if (data.alias) {\r\n contact.alias = '@' + data.alias;\r\n }\r\n } else {\r\n contact.alias = null;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n getRecentTransfers( id, offset, count, exclude_mining_txs, callback) {\r\n const params = {\r\n wallet_id: id,\r\n offset: offset,\r\n count: count,\r\n exclude_mining_txs: exclude_mining_txs\r\n };\r\n this.runCommand('get_recent_transfers', params, callback);\r\n }\r\n\r\n getPoolInfo(callback) {\r\n this.runCommand('get_tx_pool_info', {}, callback);\r\n }\r\n\r\n getVersion(callback) {\r\n this.runCommand('get_version', {}, (status, version) => {\r\n this.runCommand('get_network_type', {}, (status, type) => {\r\n callback(version, type);\r\n });\r\n });\r\n }\r\n\r\n setLogLevel(level) {\r\n return this.runCommand('set_log_level', {v: level});\r\n }\r\n\r\n}\r\n\r\n\r\n/*\r\n\r\n toggleAutoStart: function (value) {\r\n return this.runCommand('toggle_autostart', asVal(value));\r\n },\r\n\r\n getOptions: function (callback) {\r\n return this.runCommand('get_options', {}, callback);\r\n },\r\n\r\n isFileExist: function (path, callback) {\r\n return this.runCommand('is_file_exist', path, callback);\r\n },\r\n\r\n isAutoStartEnabled: function (callback) {\r\n this.runCommand('is_autostart_enabled', {}, function (status, data) {\r\n if (angular.isFunction(callback)) {\r\n callback('error_code' in data && data.error_code !== 'FALSE')\r\n }\r\n });\r\n },\r\n\r\n resetWalletPass: function (wallet_id, pass, callback) {\r\n this.runCommand('reset_wallet_password', {wallet_id: wallet_id, pass: pass}, callback);\r\n },\r\n\r\n\r\n\r\n getOsVersion: function (callback) {\r\n this.runCommand('get_os_version', {}, function (status, version) {\r\n callback(version)\r\n })\r\n },\r\n\r\n getLogFile: function (callback) {\r\n this.runCommand('get_log_file', {}, function (status, version) {\r\n callback(version)\r\n })\r\n },\r\n\r\n resync_wallet: function (wallet_id, callback) {\r\n this.runCommand('resync_wallet', {wallet_id: wallet_id}, callback);\r\n },\r\n\r\n storeFile: function (path, buff, callback) {\r\n this.backendObject['store_to_file'](path, (typeof buff === 'string' ? buff : JSON.stringify(buff)), function (data) {\r\n backendCallback(data, {}, callback, 'store_to_file');\r\n });\r\n },\r\n\r\n getMiningEstimate: function (amount_coins, time, callback) {\r\n var params = {\r\n \"amount_coins\": $filter('money_to_int')(amount_coins),\r\n \"time\": parseInt(time)\r\n };\r\n this.runCommand('get_mining_estimate', params, callback);\r\n },\r\n\r\n backupWalletKeys: function (wallet_id, path, callback) {\r\n var params = {\r\n \"wallet_id\": wallet_id,\r\n \"path\": path\r\n };\r\n this.runCommand('backup_wallet_keys', params, callback);\r\n },\r\n\r\n setBlockedIcon: function (enabled, callback) {\r\n var mode = (enabled) ? \"blocked\" : \"normal\";\r\n Service.runCommand('bool_toggle_icon', mode, callback);\r\n },\r\n\r\n getWalletInfo: function (wallet_id, callback) {\r\n this.runCommand('get_wallet_info', {wallet_id: wallet_id}, callback);\r\n },\r\n\r\n printText: function (content) {\r\n return this.runCommand('print_text', {html_text: content});\r\n },\r\n\r\n printLog: function (msg, log_level) {\r\n return this.runCommand('print_log', {msg: msg, log_level: log_level});\r\n },\r\n\r\n*/\r\n\r\n","import {Injectable, Injector, ComponentFactoryResolver, EmbeddedViewRef, ApplicationRef, NgZone} from '@angular/core';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {ModalContainerComponent} from '../directives/modal-container/modal-container.component';\r\n\r\n@Injectable()\r\nexport class ModalService {\r\n\r\n private components: any[] = [];\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private appRef: ApplicationRef,\r\n private injector: Injector,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {}\r\n\r\n prepareModal(type, message) {\r\n const length = this.components.push(\r\n this.componentFactoryResolver.resolveComponentFactory(ModalContainerComponent).create(this.injector)\r\n );\r\n\r\n this.components[length - 1].instance['type'] = type;\r\n this.components[length - 1].instance['message'] = message.length ? this.translate.instant(message) : '';\r\n this.components[length - 1].instance['close'].subscribe(() => {\r\n this.removeModal(length - 1);\r\n });\r\n\r\n this.ngZone.run(() => {\r\n this.appendModal(length - 1);\r\n });\r\n }\r\n\r\n appendModal(index) {\r\n this.appRef.attachView(this.components[index].hostView);\r\n const domElem = (this.components[index].hostView as EmbeddedViewRef).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n }\r\n\r\n removeModal(index) {\r\n if (this.components[index]) {\r\n this.appRef.detachView(this.components[index].hostView);\r\n this.components[index].destroy();\r\n this.components.splice(index, 1);\r\n } else {\r\n const last = this.components.length - 1;\r\n this.appRef.detachView(this.components[last].hostView);\r\n this.components[last].destroy();\r\n this.components.splice(last, 1);\r\n }\r\n }\r\n}\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { VariablesService } from './variables.service';\r\nimport { PaginationStore } from './pagination.store';\r\nimport * as _ from 'lodash';\r\nimport {Store} from 'store';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PaginationService {\r\n\r\n constructor(\r\n private variables: VariablesService,\r\n private ngZone: NgZone,\r\n private paginationStore: PaginationStore,\r\n ) { }\r\n\r\n paginate(currentPage = 1) {\r\n if (currentPage < 1) {\r\n currentPage = 1;\r\n } else if (currentPage > this.variables.currentWallet.totalPages) {\r\n currentPage = this.variables.currentWallet.totalPages;\r\n }\r\n let startPage: number, endPage: number;\r\n if (this.variables.currentWallet.totalPages <= this.variables.maxPages) {\r\n startPage = 1;\r\n endPage = this.variables.currentWallet.totalPages;\r\n } else {\r\n const maxPagesBeforeCurrentPage = Math.floor(this.variables.maxPages / 2);\r\n const maxPagesAfterCurrentPage = Math.ceil(this.variables.maxPages / 2) - 1;\r\n if (currentPage <= maxPagesBeforeCurrentPage) {\r\n startPage = 1;\r\n this.variables.currentWallet.totalPages > this.variables.maxPages\r\n ? endPage = this.variables.maxPages\r\n : endPage = this.variables.currentWallet.totalPages\r\n ;\r\n } else if (currentPage + maxPagesAfterCurrentPage >= this.variables.currentWallet.totalPages) {\r\n startPage = this.variables.currentWallet.totalPages - this.variables.maxPages + 1;\r\n endPage = this.variables.currentWallet.totalPages;\r\n } else {\r\n startPage = currentPage - maxPagesBeforeCurrentPage;\r\n endPage = currentPage + maxPagesAfterCurrentPage;\r\n }\r\n }\r\n this.ngZone.run(() => {\r\n this.variables.currentWallet.pages = Array.from(Array((endPage + 1) - startPage).keys()).map(i => startPage + i);\r\n });\r\n }\r\n\r\n getOffset(walletID) {\r\n const mining = this.variables.currentWallet.exclude_mining_txs;\r\n const currentPage = (this.variables.currentWallet.currentPage);\r\n let offset = ((currentPage - 1) * this.variables.count);\r\n if (!mining) { return offset; }\r\n const value = this.paginationStore.value;\r\n const pages = value.filter(item => item.walletID === walletID);\r\n if (pages && pages.length) {\r\n const max = _.maxBy(pages, 'page');\r\n const isForward = this.paginationStore.isForward(pages, currentPage);\r\n if (isForward) {\r\n offset = max.offset;\r\n } else {\r\n const index = pages.findIndex(item => item.page === (currentPage));\r\n offset = pages[index].offset;\r\n }\r\n }\r\n return offset;\r\n }\r\n\r\n calcPages(data) {\r\n if (data.total_history_items && (data && data.history)) {\r\n this.variables.currentWallet.totalPages = Math.ceil( data.total_history_items / this.variables.count);\r\n this.variables.currentWallet.totalPages > this.variables.maxPages\r\n ? this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : this.variables.currentWallet.pages =\r\n new Array(this.variables.currentWallet.totalPages).fill(1).map((value, index) => value + index);\r\n } else if (this.variables.currentWallet.restore) {\r\n this.variables.currentWallet.totalPages = Math.ceil( data.history.length / this.variables.count);\r\n this.variables.currentWallet.totalPages > this.variables.maxPages\r\n ? this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : this.variables.currentWallet.pages =\r\n new Array(this.variables.currentWallet.totalPages).fill(1).map((value, index) => value + index);\r\n }\r\n }\r\n\r\n prepareHistory(data, status) {\r\n if (status && (data && data.total_history_items)) {\r\n this.variables.currentWallet.history.splice(0, this.variables.currentWallet.history.length);\r\n this.ngZone.run(() => {\r\n this.paginate(this.variables.currentWallet.currentPage);\r\n if (data.history.length !== 0) {\r\n this.variables.currentWallet.restore = false;\r\n this.variables.currentWallet.total_history_item = data.total_history_items;\r\n this.variables.currentWallet.prepareHistory(data.history);\r\n if (this.variables.currentWallet.currentPage === 1 && data.unconfirmed) {\r\n this.variables.currentWallet.prepareHistory(data.unconfirmed);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, BehaviorSubject} from 'rxjs';\r\nimport * as _ from 'lodash';\r\nexport interface Pages {\r\n page: number;\r\n offset: number;\r\n walletID: number;\r\n}\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PaginationStore {\r\n constructor(\r\n ) {}\r\n private subject = new BehaviorSubject(null);\r\n pages$: Observable = this.subject.asObservable();\r\n\r\n isForward(pages, currentPage) {\r\n const max = _.maxBy(pages, 'page');\r\n return !max || max.page < currentPage || max.page === currentPage;\r\n }\r\n setPage(pageNumber: number, offset: number, walletID: number) {\r\n let newPages: Pages[] = [];\r\n const pages = this.subject.getValue();\r\n if (pages && pages.length) {\r\n newPages = pages.slice(0);\r\n }\r\n newPages.push({page: pageNumber, offset, walletID});\r\n this.subject.next(newPages);\r\n }\r\n\r\n get value() {\r\n return this.subject.value;\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UtilsService {\r\n getMinWidthByScale(scale: number) {\r\n switch (scale) {\r\n case 7.5 : return 900;\r\n case 10 : return 1200;\r\n case 12.5 : return 1500;\r\n case 15 : return 1800;\r\n default : return 1200;\r\n }\r\n }\r\n}\r\n","import {Injectable, NgZone} from '@angular/core';\r\nimport {Wallet} from '../models/wallet.model';\r\nimport {Contact} from '../models/contact.model';\r\nimport {BehaviorSubject} from 'rxjs';\r\nimport {Idle} from 'idlejs/dist';\r\nimport {Router} from '@angular/router';\r\nimport {ContextMenuComponent, ContextMenuService} from 'ngx-contextmenu';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VariablesService {\r\n public request_on_in = {};\r\n public stop_paginate = {};\r\n public sync_started = false;\r\n public digits = 12;\r\n public appPass = '';\r\n public appLogin = false;\r\n public moneyEquivalent = 0;\r\n public defaultTheme = 'dark';\r\n public defaultCurrency = 'ZANO';\r\n public opening_wallet: Wallet;\r\n public exp_med_ts = 0;\r\n public net_time_delta_median = 0;\r\n public height_app = 0;\r\n public height_max = 0;\r\n public downloaded = 0;\r\n public total = 0;\r\n public last_build_available = '';\r\n public last_build_displaymode = 0;\r\n public daemon_state = 3;\r\n public sync = {\r\n progress_value: 0,\r\n progress_value_text: '0'\r\n };\r\n public download = {\r\n progress_value: 0,\r\n progress_value_text: '0'\r\n };\r\n public get_recent_transfers = false; // avoid of execute function before collback complete\r\n public default_fee = '0.010000000000';\r\n public default_fee_big = new BigNumber('10000000000');\r\n\r\n public settings = {\r\n appLockTime: 15,\r\n appLog: 0,\r\n theme: '',\r\n scale: 10,\r\n language: 'en',\r\n default_path: '/',\r\n viewedContracts: [],\r\n notViewedContracts: [],\r\n wallets: []\r\n };\r\n\r\n public count = 40;\r\n public maxPages = 5;\r\n\r\n public testnet = false;\r\n public networkType = ''; // testnet of mainnet\r\n\r\n public wallets: Array = [];\r\n public currentWallet: Wallet;\r\n public selectWallet: number;\r\n public aliases: any = [];\r\n public aliasesChecked: any = {};\r\n public enableAliasSearch = false;\r\n public maxWalletNameLength = 25;\r\n public maxCommentLength = 255;\r\n public dataIsLoaded = false;\r\n\r\n public contacts: Array = [];\r\n public newContact: Contact = {name: null, address: null, notes: null};\r\n\r\n public pattern = '^[a-zA-Z0-9_.\\\\\\]\\*\\|\\~\\!\\?\\@\\#\\$\\%\\^\\&\\+\\{\\}\\(\\)\\<\\>\\:\\;\\\"\\'\\-\\=\\/\\,\\[\\\\\\\\]*$';\r\n public after_sync_request: any = {};\r\n getExpMedTsEvent = new BehaviorSubject(null);\r\n getHeightAppEvent = new BehaviorSubject(null);\r\n getHeightMaxEvent = new BehaviorSubject(null);\r\n getDownloadedAppEvent = new BehaviorSubject(null);\r\n getTotalEvent = new BehaviorSubject(null);\r\n getRefreshStackingEvent = new BehaviorSubject(null);\r\n getAliasChangedEvent = new BehaviorSubject(null);\r\n\r\n public idle = new Idle()\r\n .whenNotInteractive()\r\n .do(() => {\r\n if (this.appPass == '') {\r\n this.restartCountdown();\r\n } else {\r\n this.ngZone.run(() => {\r\n this.idle.stop();\r\n this.appPass = '';\r\n this.appLogin = false;\r\n this.router.navigate(['/login'], {queryParams: {type: 'auth'}});\r\n });\r\n }\r\n });\r\n\r\n public allContextMenu: ContextMenuComponent;\r\n public onlyCopyContextMenu: ContextMenuComponent;\r\n public pasteSelectContextMenu: ContextMenuComponent;\r\n\r\n constructor(private router: Router, private ngZone: NgZone, private contextMenuService: ContextMenuService) {\r\n }\r\n\r\n setExpMedTs(timestamp: number) {\r\n if (timestamp !== this.exp_med_ts) {\r\n this.exp_med_ts = timestamp;\r\n this.getExpMedTsEvent.next(timestamp);\r\n }\r\n }\r\n\r\n setHeightApp(height: number) {\r\n if (height !== this.height_app) {\r\n this.height_app = height;\r\n this.getHeightAppEvent.next(height);\r\n }\r\n }\r\n\r\n setHeightMax(height: number) {\r\n if (height !== this.height_max) {\r\n this.height_max = height;\r\n this.getHeightMaxEvent.next(height);\r\n }\r\n }\r\n\r\n setDownloadedBytes(bytes: number) {\r\n if (bytes !== this.downloaded) {\r\n this.downloaded = this.bytesToMb(bytes);\r\n this.getDownloadedAppEvent.next(bytes);\r\n }\r\n }\r\n\r\n setTotalBytes(bytes: number) {\r\n if (bytes !== this.total) {\r\n this.total = this.bytesToMb(bytes);\r\n this.getTotalEvent.next(bytes);\r\n }\r\n }\r\n\r\n setRefreshStacking(wallet_id: number) {\r\n this.getHeightAppEvent.next(wallet_id);\r\n }\r\n\r\n changeAliases() {\r\n this.getAliasChangedEvent.next(true);\r\n }\r\n\r\n setCurrentWallet(id): void {\r\n this.wallets.forEach((wallet) => {\r\n if (wallet.wallet_id === id) {\r\n this.currentWallet = wallet;\r\n }\r\n });\r\n }\r\n\r\n getWallet(id): Wallet {\r\n for (let i = 0; i < this.wallets.length; i++) {\r\n if (this.wallets[i].wallet_id === id) {\r\n return this.wallets[i];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n getNotLoadedWallet() {\r\n for (let i = 0; i < this.wallets.length; i++) {\r\n if (!this.wallets[i].loaded) {\r\n return this.wallets[i];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n startCountdown() {\r\n this.idle.within(this.settings.appLockTime).start();\r\n }\r\n\r\n stopCountdown() {\r\n this.idle.stop();\r\n }\r\n\r\n restartCountdown() {\r\n this.idle.within(this.settings.appLockTime).restart();\r\n }\r\n\r\n bytesToMb(bytes) {\r\n return Number((bytes / Math.pow(1024, 2)).toFixed(1));\r\n }\r\n\r\n public onContextMenu($event: MouseEvent): void {\r\n $event.target['contextSelectionStart'] = $event.target['selectionStart'];\r\n $event.target['contextSelectionEnd'] = $event.target['selectionEnd'];\r\n if ($event.target && ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') && !$event.target['readOnly']) {\r\n this.contextMenuService.show.next({\r\n contextMenu: this.allContextMenu,\r\n event: $event,\r\n item: $event.target,\r\n });\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n }\r\n\r\n public onContextMenuOnlyCopy($event: MouseEvent, copyText?: string): void {\r\n this.contextMenuService.show.next({\r\n contextMenu: this.onlyCopyContextMenu,\r\n event: $event,\r\n item: copyText\r\n });\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n\r\n public onContextMenuPasteSelect($event: MouseEvent): void {\r\n $event.target['contextSelectionStart'] = $event.target['selectionStart'];\r\n $event.target['contextSelectionEnd'] = $event.target['selectionEnd'];\r\n\r\n console.warn($event.target);\r\n console.warn($event.target['disabled']);\r\n\r\n\r\n if ($event.target && ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') && !$event.target['readOnly']) {\r\n this.contextMenuService.show.next({\r\n contextMenu: this.pasteSelectContextMenu,\r\n event: $event,\r\n item: $event.target,\r\n });\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n }\r\n\r\n}\r\n","export const MIXIN: number = 10; // default mixin value\r\nexport const RCV_ADDR_QR_SCALE: number = 2; // scale factor for QR code\r\n\r\nexport const AUDITABLE_WALLET_HELP_PAGE: string = 'docs.zano.org/docs/auditable-wallets';\r\nexport const CREATE_NEW_WALLET_HELP_PAGE: string = 'docs.zano.org/docs/getting-started-1#section-create-new-wallet';\r\nexport const LOCKED_BALANCE_HELP_PAGE: string = 'docs.zano.org/docs/locked-balance';\r\nexport const DOWNLOADS_PAGE_URL: string = 'zano.org/downloads.html';\r\n\r\nexport const BLOCK_EXPLORER_TX_URL_PREFIX: string = 'explorer.zano.org/transaction/';\r\nexport const BLOCK_EXPLORER_TN_TX_URL_PREFIX: string = 'testnet-explorer.zano.org/transaction/';\r\n","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n {{ 'CONTACTS.TITLE' | translate }}\\r\\n {{ 'CONTACTS.ADD' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'CONTACTS.FORM_ERRORS.NAME_LENGTH' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'CONTACTS.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'CONTACTS.FORM_ERRORS.NAME_DUBLICATED' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'CONTACTS.FORM_ERRORS.ADDRESS_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'CONTACTS.FORM_ERRORS.ADDRESS_NOT_VALID' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'CONTACTS.FORM_ERRORS.ADDRESS_DUBLICATED' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'CONTACTS.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \".form-add {\\n margin-top: 3rem; }\\n .form-add .input-block-name {\\n width: 50%; }\\n .form-add button {\\n margin-top: 3rem;\\n width: 100%;\\n max-width: 18rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWRkLWNvbnRhY3RzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGFkZC1jb250YWN0c1xcYWRkLWNvbnRhY3RzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gsZ0JBQWdCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9hZGQtY29udGFjdHMvYWRkLWNvbnRhY3RzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tYWRkIHtcclxuICBtYXJnaW4tdG9wOiAzcmVtO1xyXG5cclxuICAuaW5wdXQtYmxvY2stbmFtZSB7XHJcbiAgICB3aWR0aDogNTAlO1xyXG4gIH1cclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIG1hcmdpbi10b3A6IDNyZW07XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMThyZW07XHJcbiAgfVxyXG59Il19 */\"","import { Component, OnInit, NgZone, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { ModalService } from '../_helpers/services/modal.service';\r\nimport { Location } from '@angular/common';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-add-contacts',\r\n templateUrl: './add-contacts.component.html',\r\n styleUrls: ['./add-contacts.component.scss']\r\n})\r\nexport class AddContactsComponent implements OnInit, OnDestroy {\r\n id: number;\r\n queryRouting;\r\n isModalDialogVisible;\r\n addContactForm = new FormGroup({\r\n address: new FormControl('', [\r\n Validators.required,\r\n (g: FormControl) => {\r\n if (g.value) {\r\n this.backend.validateAddress(g.value, valid_status => {\r\n this.ngZone.run(() => {\r\n if (valid_status === false) {\r\n g.setErrors(\r\n Object.assign({ address_not_valid: true }, g.errors)\r\n );\r\n } else {\r\n if (g.hasError('address_not_valid')) {\r\n delete g.errors['address_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n return g.hasError('address_not_valid')\r\n ? { address_not_valid: true }\r\n : null;\r\n }\r\n return null;\r\n },\r\n (g: FormControl) => {\r\n const isDublicated = this.variablesService.contacts.findIndex(\r\n contact => contact.address === g.value\r\n );\r\n if (isDublicated !== -1 && !(this.id === isDublicated)) {\r\n return { dublicated: true };\r\n }\r\n return null;\r\n }\r\n ]),\r\n notes: new FormControl('', [\r\n (g: FormControl) => {\r\n if (g.value) {\r\n if (g.value.length > this.variablesService.maxCommentLength) {\r\n return { maxLength: true };\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n ]),\r\n name: new FormControl('', [\r\n Validators.required,\r\n Validators.minLength(4),\r\n Validators.maxLength(25),\r\n (g: FormControl) => {\r\n if (g.value) {\r\n const isDublicated = this.variablesService.contacts.findIndex(\r\n contact => contact.name === g.value.trim()\r\n );\r\n if (isDublicated !== -1 && !(this.id === isDublicated)) {\r\n return { dublicated: true };\r\n }\r\n return null;\r\n }\r\n }\r\n ])\r\n });\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private location: Location\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.id) {\r\n this.id = parseInt(params.id, 10);\r\n this.addContactForm.reset({\r\n name: this.variablesService.contacts[params.id]['name'],\r\n address: this.variablesService.contacts[params.id]['address'],\r\n notes: this.variablesService.contacts[params.id]['notes']\r\n });\r\n } else {\r\n this.addContactForm.reset({\r\n name: this.variablesService.newContact['name'],\r\n address: this.variablesService.newContact['address'],\r\n notes: this.variablesService.newContact['notes']\r\n });\r\n }\r\n });\r\n }\r\n\r\n add() {\r\n if (!this.variablesService.appPass) {\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'CONTACTS.FORM_ERRORS.SET_MASTER_PASSWORD'\r\n );\r\n } else {\r\n if (this.addContactForm.valid) {\r\n this.backend.validateAddress(\r\n this.addContactForm.get('address').value,\r\n valid_status => {\r\n if (valid_status === false) {\r\n this.ngZone.run(() => {\r\n this.addContactForm\r\n .get('address')\r\n .setErrors({ address_not_valid: true });\r\n });\r\n } else {\r\n if (this.id || this.id === 0) {\r\n this.variablesService.contacts.forEach((contact, index) => {\r\n if (index === this.id) {\r\n contact.name = this.addContactForm.get('name').value.trim();\r\n contact.address = this.addContactForm.get('address').value;\r\n contact.notes =\r\n this.addContactForm.get('notes').value || '';\r\n }\r\n });\r\n this.backend.storeSecureAppData();\r\n this.backend.getContactAlias();\r\n this.modalService.prepareModal(\r\n 'success',\r\n 'CONTACTS.SUCCESS_SAVE'\r\n );\r\n } else {\r\n this.variablesService.contacts.push({\r\n name: this.addContactForm.get('name').value.trim(),\r\n address: this.addContactForm.get('address').value,\r\n notes: this.addContactForm.get('notes').value || ''\r\n });\r\n this.backend.storeSecureAppData();\r\n this.backend.getContactAlias();\r\n this.modalService.prepareModal(\r\n 'success',\r\n 'CONTACTS.SUCCESS_SENT'\r\n );\r\n this.variablesService.newContact = {\r\n name: null,\r\n address: null,\r\n notes: null\r\n };\r\n this.addContactForm.reset({\r\n name: null,\r\n address: null,\r\n notes: null\r\n });\r\n }\r\n }\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (!(this.id || this.id === 0)) {\r\n this.variablesService.newContact = {\r\n name: this.addContactForm.get('name').value,\r\n address: this.addContactForm.get('address').value,\r\n notes: this.addContactForm.get('notes').value\r\n };\r\n }\r\n this.queryRouting.unsubscribe();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\n// Components\r\nimport { MainComponent } from './main/main.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { WalletComponent } from './wallet/wallet.component';\r\nimport { SendComponent } from './send/send.component';\r\nimport { ReceiveComponent } from './receive/receive.component';\r\nimport { HistoryComponent } from './history/history.component';\r\nimport { ContractsComponent } from './contracts/contracts.component';\r\nimport { PurchaseComponent } from './purchase/purchase.component';\r\nimport { MessagesComponent } from './messages/messages.component';\r\nimport { TypingMessageComponent } from './typing-message/typing-message.component';\r\nimport { StakingComponent } from './staking/staking.component';\r\nimport { SettingsComponent } from './settings/settings.component';\r\nimport { CreateWalletComponent } from './create-wallet/create-wallet.component';\r\nimport { OpenWalletComponent } from './open-wallet/open-wallet.component';\r\nimport { RestoreWalletComponent } from './restore-wallet/restore-wallet.component';\r\nimport { SeedPhraseComponent } from './seed-phrase/seed-phrase.component';\r\nimport { WalletDetailsComponent } from './wallet-details/wallet-details.component';\r\nimport { AssignAliasComponent } from './assign-alias/assign-alias.component';\r\nimport { EditAliasComponent } from './edit-alias/edit-alias.component';\r\nimport { TransferAliasComponent } from './transfer-alias/transfer-alias.component';\r\nimport { ContactsComponent } from './contacts/contacts.component';\r\nimport { AddContactsComponent } from './add-contacts/add-contacts.component';\r\nimport { ContactSendComponent } from './contact-send/contact-send.component';\r\nimport { ExportImportComponent } from './export-import/export-import.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: MainComponent\r\n },\r\n {\r\n path: 'main',\r\n component: MainComponent\r\n },\r\n {\r\n path: 'login',\r\n component: LoginComponent\r\n },\r\n {\r\n path: 'wallet/:id',\r\n component: WalletComponent,\r\n children: [\r\n {\r\n path: 'send',\r\n component: SendComponent\r\n },\r\n {\r\n path: 'receive',\r\n component: ReceiveComponent\r\n },\r\n {\r\n path: 'history',\r\n component: HistoryComponent\r\n },\r\n {\r\n path: 'contracts',\r\n component: ContractsComponent,\r\n },\r\n {\r\n path: 'purchase',\r\n component: PurchaseComponent\r\n },\r\n {\r\n path: 'purchase/:id',\r\n component: PurchaseComponent\r\n },\r\n {\r\n path: 'messages',\r\n component: MessagesComponent,\r\n },\r\n {\r\n path: 'messages/:id',\r\n component: TypingMessageComponent,\r\n },\r\n {\r\n path: 'staking',\r\n component: StakingComponent\r\n },\r\n {\r\n path: '',\r\n redirectTo: 'history',\r\n pathMatch: 'full'\r\n }\r\n ]\r\n },\r\n {\r\n path: 'create',\r\n component: CreateWalletComponent\r\n },\r\n {\r\n path: 'open',\r\n component: OpenWalletComponent\r\n },\r\n {\r\n path: 'restore',\r\n component: RestoreWalletComponent\r\n },\r\n {\r\n path: 'seed-phrase',\r\n component: SeedPhraseComponent\r\n },\r\n {\r\n path: 'details',\r\n component: WalletDetailsComponent\r\n },\r\n {\r\n path: 'assign-alias',\r\n component: AssignAliasComponent\r\n },\r\n {\r\n path: 'edit-alias',\r\n component: EditAliasComponent\r\n },\r\n {\r\n path: 'transfer-alias',\r\n component: TransferAliasComponent\r\n },\r\n {\r\n path: 'settings',\r\n component: SettingsComponent\r\n },\r\n {\r\n path: 'contacts',\r\n component: ContactsComponent\r\n },\r\n {\r\n path: 'add-contacts',\r\n component: AddContactsComponent\r\n },\r\n {\r\n path: 'edit-contacts/:id',\r\n component: AddContactsComponent\r\n },\r\n {\r\n path: 'contact-send/:id',\r\n component: ContactSendComponent\r\n },\r\n {\r\n path: 'import',\r\n component: ExportImportComponent\r\n },\r\n {\r\n path: '',\r\n redirectTo: '/',\r\n pathMatch: 'full'\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\n\r\n\r\nexport class AppRoutingModule { }\r\n","module.exports = \"\\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n {{ 'CONTEXT_MENU.COPY' | translate }}\\r\\n {{ 'CONTEXT_MENU.PASTE' | translate }}\\r\\n {{ 'CONTEXT_MENU.SELECT' | translate }}\\r\\n\\r\\n\\r\\n\\r\\n {{ 'CONTEXT_MENU.COPY' | translate }}\\r\\n\\r\\n\\r\\n\\r\\n {{ 'CONTEXT_MENU.PASTE' | translate }}\\r\\n {{ 'CONTEXT_MENU.SELECT' | translate }}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"/*\\r\\n* Implementation of themes\\r\\n*/\\n.app-content {\\n display: flex;\\n overflow-x: overlay;\\n overflow-y: hidden;\\n width: 100%; }\\n.app-content .preloader {\\n align-self: center;\\n color: #fff;\\n font-size: 2rem;\\n margin: 0 auto;\\n text-align: center;\\n width: 50%; }\\n.app-content .preloader .loading-bar {\\n display: block;\\n -webkit-animation: move 5s linear infinite;\\n animation: move 5s linear infinite;\\n background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.125, rgba(0, 0, 0, 0.15)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.1)), color-stop(0.375, rgba(0, 0, 0, 0.1)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.15)), color-stop(0.625, rgba(0, 0, 0, 0.15)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.1)), color-stop(0.875, rgba(0, 0, 0, 0.1)), color-stop(0.875, transparent), to(transparent)), -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\\n background-size: 10rem 10rem;\\n margin-top: 2rem;\\n width: 100%;\\n height: 1rem; }\\n@-webkit-keyframes move {\\n 0% {\\n background-position: 100% -10rem; }\\n 100% {\\n background-position: 100% 10rem; } }\\n@keyframes move {\\n 0% {\\n background-position: 100% -10rem; }\\n 100% {\\n background-position: 100% 10rem; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFzc2V0c1xcc2Nzc1xcYmFzZVxcX21peGlucy5zY3NzIiwic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGFwcC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4RUE7O0NDNUVDO0FDQUQ7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUNsQixXQUFXLEVBQUE7QUFKYjtJQU9JLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsZUFBZTtJQUNmLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsVUFBVSxFQUFBO0FBWmQ7TUFlTSxjQUFjO01BQ2QsMENBQWtDO2NBQWxDLGtDQUFrQztNQUNsQywrbENBc0JHO01BQ0gsNEJBQTRCO01BQzVCLGdCQUFnQjtNQUNoQixXQUFXO01BQ1gsWUFBWSxFQUFBO0FBSWhCO0VBQ0U7SUFDRSxnQ0FBZ0MsRUFBQTtFQUVsQztJQUNFLCtCQUErQixFQUFBLEVBQUE7QUFMbkM7RUFDRTtJQUNFLGdDQUFnQyxFQUFBO0VBRWxDO0lBQ0UsK0JBQStCLEVBQUEsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBtaXhpbiB0ZXh0LXRydW5jYXRlIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuQG1peGluIHRleHRXcmFwIHtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICBsaW5lLWJyZWFrOiBzdHJpY3Q7XHJcbiAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xyXG4gIC1tcy1oeXBoZW5zOiBhdXRvO1xyXG4gIGh5cGhlbnM6IGF1dG87XHJcbn1cclxuQG1peGluIGNvdmVyQm94IHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG59XHJcbkBtaXhpbiBhYnMgKCR0b3A6IGF1dG8sICRyaWdodDogYXV0bywgJGJvdHRvbTogYXV0bywgJGxlZnQ6IGF1dG8pIHtcclxuICB0b3A6ICR0b3A7XHJcbiAgcmlnaHQ6ICRyaWdodDtcclxuICBib3R0b206ICRib3R0b207XHJcbiAgbGVmdDogJGxlZnQ7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcbkBtaXhpbiBjb3ZlckltZyB7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHQtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0LW8tYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbn1cclxuQG1peGluIHZhbGluZ0JveCB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogIDUwJTtcclxuXHRsZWZ0OiA1MCU7XHJcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbn1cclxuQG1peGluIHVuU2VsZWN0IHtcclxuXHQtd2Via2l0LXRvdWNoLWNvbGxvdXQ6IG5vbmU7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbn1cclxuQG1peGluIG1heDExOTkgeyAvLyBtYWtldCAxMTcxXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkgeyBAY29udGVudDsgfVxyXG59XHJcbkBtaXhpbiBtYXgxMTcwIHsgLy8gbWFrZXRzIDk5MlxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMTcwcHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbWF4OTkxIHsgLy8gbWFrZXRzIDc2MlxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkgeyBAY29udGVudDsgfVxyXG59XHJcbkBtaXhpbiBtYXg3NjEgeyAvLyBtYWtldHMgNTc2XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2MXB4KSB7IEBjb250ZW50OyB9XHJcbn1cclxuQG1peGluIG1heDU3NSB7IC8vIG1ha2V0cyA0MDBcclxuICBAbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbW9iaWxlIHtcclxuICBAbWVkaWEgKG1heC13aWR0aDogMzk5cHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gaWNvQ2VudGVyIHtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xyXG59XHJcbkBtaXhpbiBwc2V1ZG8gKCRkaXNwbGF5OiBibG9jaywgJHBvczogYWJzb2x1dGUsICRjb250ZW50OiAnJyl7XHJcbiAgY29udGVudDogJGNvbnRlbnQ7XHJcbiAgZGlzcGxheTogJGRpc3BsYXk7XHJcbiAgcG9zaXRpb246ICRwb3M7XHJcbn1cclxuXHJcbi8qXHJcbiogSW1wbGVtZW50YXRpb24gb2YgdGhlbWVzXHJcbiovXHJcbkBtaXhpbiB0aGVtaWZ5KCR0aGVtZXM6ICR0aGVtZXMpIHtcclxuICBAZWFjaCAkdGhlbWUsICRtYXAgaW4gJHRoZW1lcyB7XHJcbiAgICAudGhlbWUtI3skdGhlbWV9ICYge1xyXG4gICAgICAkdGhlbWUtbWFwOiAoKSAhZ2xvYmFsO1xyXG4gICAgICBAZWFjaCAka2V5LCAkc3VibWFwIGluICRtYXAge1xyXG4gICAgICAgICR2YWx1ZTogbWFwLWdldChtYXAtZ2V0KCR0aGVtZXMsICR0aGVtZSksICcjeyRrZXl9Jyk7XHJcbiAgICAgICAgJHRoZW1lLW1hcDogbWFwLW1lcmdlKCR0aGVtZS1tYXAsICgka2V5OiAkdmFsdWUpKSAhZ2xvYmFsO1xyXG4gICAgICB9XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgICAkdGhlbWUtbWFwOiBudWxsICFnbG9iYWw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AZnVuY3Rpb24gdGhlbWVkKCRrZXkpIHtcclxuICBAcmV0dXJuIG1hcC1nZXQoJHRoZW1lLW1hcCwgJGtleSk7XHJcbn1cclxuIiwiLypcclxuKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGVtZXNcclxuKi9cbi5hcHAtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93LXg6IG92ZXJsYXk7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmFwcC1jb250ZW50IC5wcmVsb2FkZXIge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAuYXBwLWNvbnRlbnQgLnByZWxvYWRlciAubG9hZGluZy1iYXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBhbmltYXRpb246IG1vdmUgNXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMTAwJSAxMDAlLCBjb2xvci1zdG9wKDAuMTI1LCByZ2JhKDAsIDAsIDAsIDAuMTUpKSwgY29sb3Itc3RvcCgwLjEyNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjI1LCByZ2JhKDAsIDAsIDAsIDAuMSkpLCBjb2xvci1zdG9wKDAuMzc1LCByZ2JhKDAsIDAsIDAsIDAuMSkpLCBjb2xvci1zdG9wKDAuMzc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCByZ2JhKDAsIDAsIDAsIDAuMTUpKSwgY29sb3Itc3RvcCgwLjYyNSwgcmdiYSgwLCAwLCAwLCAwLjE1KSksIGNvbG9yLXN0b3AoMC42MjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC43NSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjg3NSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjg3NSwgdHJhbnNwYXJlbnQpLCB0byh0cmFuc3BhcmVudCkpLCAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsIGNvbG9yLXN0b3AoMC4xMjUsIHJnYmEoMCwgMCwgMCwgMC4zKSksIGNvbG9yLXN0b3AoMC4xMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC4yNSwgcmdiYSgwLCAwLCAwLCAwLjI1KSksIGNvbG9yLXN0b3AoMC4zNzUsIHJnYmEoMCwgMCwgMCwgMC4yNSkpLCBjb2xvci1zdG9wKDAuMzc1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41LCByZ2JhKDAsIDAsIDAsIDAuMykpLCBjb2xvci1zdG9wKDAuNjI1LCByZ2JhKDAsIDAsIDAsIDAuMykpLCBjb2xvci1zdG9wKDAuNjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC43NSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNzUsIHJnYmEoMCwgMCwgMCwgMC4yNSkpLCBjb2xvci1zdG9wKDAuODc1LCByZ2JhKDAsIDAsIDAsIDAuMjUpKSwgY29sb3Itc3RvcCgwLjg3NSwgdHJhbnNwYXJlbnQpLCB0byh0cmFuc3BhcmVudCkpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMHJlbSAxMHJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMXJlbTsgfVxuXG5Aa2V5ZnJhbWVzIG1vdmUge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtMTByZW07IH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAxMHJlbTsgfSB9XG4iLCJAaW1wb3J0ICd+c3JjL2Fzc2V0cy9zY3NzL2Jhc2UvbWl4aW5zJztcclxuXHJcbi5hcHAtY29udGVudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBvdmVyZmxvdy14OiBvdmVybGF5O1xyXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgLnByZWxvYWRlciB7XHJcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd2lkdGg6IDUwJTtcclxuXHJcbiAgICAubG9hZGluZy1iYXIge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgYW5pbWF0aW9uOiBtb3ZlIDVzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTpcclxuICAgICAgICAtd2Via2l0LWdyYWRpZW50KFxyXG4gICAgICAgICAgICBsaW5lYXIsIDAgMCwgMTAwJSAxMDAlLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC4xMjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjEyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC4yNTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguMjUwLCByZ2JhKDAsIDAsIDAsIC4xMCkpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC4zNzUsIHJnYmEoMCwgMCwgMCwgLjEwKSksIGNvbG9yLXN0b3AoLjM3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC41MDAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNTAwLCByZ2JhKDAsIDAsIDAsIC4xNSkpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC42MjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjYyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC43NTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNzUwLCByZ2JhKDAsIDAsIDAsIC4xMCkpLFxyXG4gICAgICAgICAgICBjb2xvci1zdG9wKC44NzUsIHJnYmEoMCwgMCwgMCwgLjEwKSksIGNvbG9yLXN0b3AoLjg3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICB0byh0cmFuc3BhcmVudClcclxuICAgICAgICApLFxyXG4gICAgICAgIC13ZWJraXQtZ3JhZGllbnQoXHJcbiAgICAgICAgICAgIGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjEyNSwgcmdiYSgwLCAwLCAwLCAuMzApKSwgY29sb3Itc3RvcCguMTI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjI1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC4yNTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjM3NSwgcmdiYSgwLCAwLCAwLCAuMjUpKSwgY29sb3Itc3RvcCguMzc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjUwMCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC41MDAsIHJnYmEoMCwgMCwgMCwgLjMwKSksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjYyNSwgcmdiYSgwLCAwLCAwLCAuMzApKSwgY29sb3Itc3RvcCguNjI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjc1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC43NTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgIGNvbG9yLXN0b3AoLjg3NSwgcmdiYSgwLCAwLCAwLCAuMjUpKSwgY29sb3Itc3RvcCguODc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgIHRvKHRyYW5zcGFyZW50KVxyXG4gICAgICAgICk7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTByZW0gMTByZW07XHJcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDFyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAa2V5ZnJhbWVzIG1vdmUge1xyXG4gICAgMCUge1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIC0xMHJlbTtcclxuICAgIH1cclxuICAgIDEwMCUge1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDEwcmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */\"","import {Component, OnInit, NgZone, Renderer2, OnDestroy, ViewChild} from '@angular/core';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {BackendService} from './_helpers/services/backend.service';\r\nimport {Router} from '@angular/router';\r\nimport {VariablesService} from './_helpers/services/variables.service';\r\nimport {ContextMenuComponent} from 'ngx-contextmenu';\r\nimport {IntToMoneyPipe} from './_helpers/pipes/int-to-money.pipe';\r\nimport {BigNumber} from 'bignumber.js';\r\nimport {ModalService} from './_helpers/services/modal.service';\r\nimport {UtilsService} from './_helpers/services/utils.service';\r\nimport {Store} from 'store';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n providers: [UtilsService]\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n\r\n intervalUpdatePriceState;\r\n intervalUpdateContractsState;\r\n expMedTsEvent;\r\n onQuitRequest = false;\r\n firstOnlineState = false;\r\n translateUsed = false;\r\n\r\n needOpenWallets = [];\r\n\r\n @ViewChild('allContextMenu') public allContextMenu: ContextMenuComponent;\r\n @ViewChild('onlyCopyContextMenu') public onlyCopyContextMenu: ContextMenuComponent;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private renderer: Renderer2,\r\n public translate: TranslateService,\r\n private backend: BackendService,\r\n private router: Router,\r\n public variablesService: VariablesService,\r\n private ngZone: NgZone,\r\n private intToMoneyPipe: IntToMoneyPipe,\r\n private modalService: ModalService,\r\n private utilsService: UtilsService,\r\n private store: Store\r\n ) {\r\n translate.addLangs(['en', 'fr', 'de', 'it', 'pt']);\r\n translate.setDefaultLang('en');\r\n // const browserLang = translate.getBrowserLang();\r\n // translate.use(browserLang.match(/en|fr/) ? browserLang : 'en');\r\n translate.use('en').subscribe(() => {\r\n this.translateUsed = true;\r\n });\r\n }\r\n\r\n setBackendLocalization() {\r\n if (this.translateUsed) {\r\n const stringsArray = [\r\n this.translate.instant('BACKEND_LOCALIZATION.QUIT'),\r\n this.translate.instant('BACKEND_LOCALIZATION.IS_RECEIVED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.IS_CONFIRMED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_UNCONFIRMED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_CONFIRMED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.MINED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.LOCKED'),\r\n this.translate.instant('BACKEND_LOCALIZATION.IS_MINIMIZE'),\r\n this.translate.instant('BACKEND_LOCALIZATION.RESTORE'),\r\n this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_SHOW'),\r\n this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_MINIMIZE')\r\n ];\r\n this.backend.setBackendLocalization(stringsArray, this.variablesService.settings.language);\r\n } else {\r\n console.warn('wait translate use');\r\n setTimeout(() => {\r\n this.setBackendLocalization();\r\n }, 10000);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.variablesService.allContextMenu = this.allContextMenu;\r\n this.variablesService.onlyCopyContextMenu = this.onlyCopyContextMenu;\r\n\r\n this.backend.initService().subscribe(initMessage => {\r\n console.log('Init message: ', initMessage);\r\n\r\n this.backend.webkitLaunchedScript();\r\n\r\n this.backend.start_backend(false, '127.0.0.1', 11512, (st2, dd2) => {\r\n console.log(st2, dd2);\r\n });\r\n\r\n this.backend.eventSubscribe('quit_requested', () => {\r\n if (!this.onQuitRequest) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n this.needOpenWallets = [];\r\n this.variablesService.daemon_state = 5;\r\n const saveFunction = () => {\r\n this.backend.storeAppData(() => {\r\n const recursionCloseWallets = () => {\r\n if (this.variablesService.wallets.length) {\r\n const lastIndex = this.variablesService.wallets.length - 1;\r\n this.backend.closeWallet(this.variablesService.wallets[lastIndex].wallet_id, () => {\r\n this.variablesService.wallets.splice(lastIndex, 1);\r\n recursionCloseWallets();\r\n });\r\n } else {\r\n this.backend.quitRequest();\r\n }\r\n };\r\n recursionCloseWallets();\r\n });\r\n };\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData(() => {\r\n saveFunction();\r\n });\r\n } else {\r\n saveFunction();\r\n }\r\n }\r\n this.onQuitRequest = true;\r\n });\r\n\r\n this.backend.eventSubscribe('update_wallet_status', (data) => {\r\n console.log('----------------- update_wallet_status -----------------');\r\n console.log(data);\r\n\r\n const wallet_state = data.wallet_state;\r\n const is_mining = data.is_mining;\r\n const wallet = this.variablesService.getWallet(data.wallet_id);\r\n // 1-synch, 2-ready, 3 - error\r\n if (wallet) {\r\n this.ngZone.run(() => {\r\n wallet.loaded = false;\r\n wallet.staking = is_mining;\r\n if (wallet_state === 2) { // ready\r\n wallet.loaded = true;\r\n }\r\n if (wallet_state === 3) { // error\r\n // wallet.error = true;\r\n }\r\n wallet.balance = data.balance;\r\n wallet.unlocked_balance = data.unlocked_balance;\r\n wallet.mined_total = data.minied_total;\r\n wallet.alias_available = data.is_alias_operations_available;\r\n });\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('wallet_sync_progress', (data) => {\r\n console.log('----------------- wallet_sync_progress -----------------');\r\n console.log(data);\r\n\r\n const wallet = this.variablesService.getWallet(data.wallet_id);\r\n if (wallet) {\r\n this.ngZone.run(() => {\r\n wallet.progress = (data.progress < 0) ? 0 : ((data.progress > 100) ? 100 : data.progress);\r\n if (!this.variablesService.sync_started) {\r\n this.variablesService.sync_started = true;\r\n }\r\n this.addToStore(wallet, true); // subscribe on data\r\n if (wallet.progress === 0) {\r\n wallet.loaded = false;\r\n } else if (wallet.progress === 100) {\r\n wallet.loaded = true;\r\n this.addToStore(wallet, false);\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('update_daemon_state', (data) => {\r\n console.log('----------------- update_daemon_state -----------------');\r\n console.log('DAEMON:' + data.daemon_network_state);\r\n console.log(data);\r\n // this.variablesService.exp_med_ts = data['expiration_median_timestamp'] + 600 + 1;\r\n this.variablesService.setExpMedTs(data['expiration_median_timestamp'] + 600 + 1);\r\n this.variablesService.net_time_delta_median = data.net_time_delta_median;\r\n this.variablesService.last_build_available = data.last_build_available;\r\n this.variablesService.last_build_displaymode = data.last_build_displaymode;\r\n this.variablesService.setHeightApp(data.height);\r\n this.variablesService.setHeightMax(data.max_net_seen_height);\r\n\r\n this.variablesService.setDownloadedBytes(data.downloaded_bytes);\r\n this.variablesService.setTotalBytes(data.download_total_data_size);\r\n\r\n this.backend.getContactAlias();\r\n this.ngZone.run(() => {\r\n this.variablesService.daemon_state = data['daemon_network_state'];\r\n if (data['daemon_network_state'] === 1) {\r\n const max = data['max_net_seen_height'] - data['synchronization_start_height'];\r\n const current = data.height - data['synchronization_start_height'];\r\n const return_val = Math.floor((current * 100 / max) * 100) / 100;\r\n if (max === 0 || return_val < 0) {\r\n this.variablesService.sync.progress_value = 0;\r\n this.variablesService.sync.progress_value_text = '0.00';\r\n } else if (return_val >= 100) {\r\n this.variablesService.sync.progress_value = 100;\r\n this.variablesService.sync.progress_value_text = '99.99';\r\n } else {\r\n this.variablesService.sync.progress_value = return_val;\r\n this.variablesService.sync.progress_value_text = return_val.toFixed(2);\r\n }\r\n }\r\n\r\n if (data['daemon_network_state'] === 6) {\r\n const max = data['download_total_data_size'];\r\n const current = data['downloaded_bytes'];\r\n const return_val = Math.floor((current / max) * 100);\r\n if (max === 0 || return_val < 0) {\r\n this.variablesService.download.progress_value = 0;\r\n this.variablesService.download.progress_value_text = '0.00';\r\n } else if (return_val >= 100) {\r\n this.variablesService.download.progress_value = 100;\r\n this.variablesService.download.progress_value_text = '99.99';\r\n } else {\r\n this.variablesService.download.progress_value = return_val;\r\n this.variablesService.download.progress_value_text = return_val.toFixed(2);\r\n }\r\n }\r\n });\r\n if (!this.firstOnlineState && data['daemon_network_state'] === 2) {\r\n this.getAliases();\r\n this.backend.getContactAlias();\r\n this.backend.getDefaultFee((status_fee, data_fee) => {\r\n this.variablesService.default_fee_big = new BigNumber(data_fee);\r\n this.variablesService.default_fee = this.intToMoneyPipe.transform(data_fee);\r\n });\r\n this.firstOnlineState = true;\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('money_transfer', (data) => {\r\n console.log('----------------- money_transfer -----------------');\r\n console.log(data);\r\n\r\n if (!data.ti) {\r\n return;\r\n }\r\n\r\n const wallet_id = data.wallet_id;\r\n const tr_info = data.ti;\r\n\r\n const wallet = this.variablesService.getWallet(wallet_id);\r\n if (wallet) {\r\n if(wallet.history.length > 40) {\r\n wallet.history.splice(40, 1);\r\n }\r\n this.ngZone.run(() => {\r\n\r\n if (!wallet.loaded) {\r\n wallet.balance = data.balance;\r\n wallet.unlocked_balance = data.unlocked_balance;\r\n } else {\r\n wallet.balance = data.balance;\r\n wallet.unlocked_balance = data.unlocked_balance;\r\n }\r\n\r\n if (tr_info.tx_type === 6) {\r\n this.variablesService.setRefreshStacking(wallet_id);\r\n }\r\n\r\n let tr_exists = wallet.excluded_history.some(elem => elem.tx_hash === tr_info.tx_hash);\r\n tr_exists = (!tr_exists) ? wallet.history.some(elem => elem.tx_hash === tr_info.tx_hash) : tr_exists;\r\n\r\n if (wallet.currentPage === 1) {\r\n wallet.prepareHistory([tr_info]);\r\n if (wallet.restore) {\r\n wallet.total_history_item = wallet.history.length;\r\n wallet.totalPages = Math.ceil( wallet.total_history_item / this.variablesService.count);\r\n wallet.totalPages > this.variablesService.maxPages\r\n ? wallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : wallet.pages = new Array(wallet.totalPages).fill(1).map((value, index) => value + index);\r\n }\r\n }\r\n\r\n if (tr_info.hasOwnProperty('contract')) {\r\n const exp_med_ts = this.variablesService.exp_med_ts;\r\n const height_app = this.variablesService.height_app;\r\n\r\n const contract = tr_info.contract[0];\r\n\r\n if (tr_exists) {\r\n for (let i = 0; i < wallet.contracts.length; i++) {\r\n if (wallet.contracts[i].contract_id === contract.contract_id && wallet.contracts[i].is_a === contract.is_a) {\r\n wallet.contracts[i].cancel_expiration_time = contract.cancel_expiration_time;\r\n wallet.contracts[i].expiration_time = contract.expiration_time;\r\n wallet.contracts[i].height = contract.height;\r\n wallet.contracts[i].timestamp = contract.timestamp;\r\n break;\r\n }\r\n }\r\n // $rootScope.getContractsRecount();\r\n return;\r\n }\r\n\r\n if (contract.state === 1 && contract.expiration_time < exp_med_ts) {\r\n contract.state = 110;\r\n } else if (contract.state === 5 && contract.cancel_expiration_time < exp_med_ts) {\r\n contract.state = 130;\r\n } else if (contract.state === 1) {\r\n const searchResult2 = this.variablesService.settings.notViewedContracts.find(elem => elem.state === 110 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult2) {\r\n if (searchResult2.time === contract.expiration_time) {\r\n contract.state = 110;\r\n } else {\r\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\r\n if (this.variablesService.settings.notViewedContracts[j].contract_id === contract.contract_id && this.variablesService.settings.notViewedContracts[j].is_a === contract.is_a) {\r\n this.variablesService.settings.notViewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\r\n if (this.variablesService.settings.viewedContracts[j].contract_id === contract.contract_id && this.variablesService.settings.viewedContracts[j].is_a === contract.is_a) {\r\n this.variablesService.settings.viewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else if (contract.state === 2 && (contract.height === 0 || (height_app - contract.height) < 10)) {\r\n contract.state = 201;\r\n } else if (contract.state === 2) {\r\n const searchResult3 = this.variablesService.settings.viewedContracts.some(elem => elem.state === 120 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult3) {\r\n contract.state = 120;\r\n }\r\n } else if (contract.state === 5) {\r\n const searchResult4 = this.variablesService.settings.notViewedContracts.find(elem => elem.state === 130 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n if (searchResult4) {\r\n if (searchResult4.time === contract.cancel_expiration_time) {\r\n contract.state = 130;\r\n } else {\r\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\r\n if (this.variablesService.settings.notViewedContracts[j].contract_id === contract.contract_id && this.variablesService.settings.notViewedContracts[j].is_a === contract.is_a) {\r\n this.variablesService.settings.notViewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\r\n if (this.variablesService.settings.viewedContracts[j].contract_id === contract.contract_id && this.variablesService.settings.viewedContracts[j].is_a === contract.is_a) {\r\n this.variablesService.settings.viewedContracts.splice(j, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else if (contract.state === 6 && (contract.height === 0 || (height_app - contract.height) < 10)) {\r\n contract.state = 601;\r\n }\r\n\r\n const searchResult = this.variablesService.settings.viewedContracts.some(elem => elem.state === contract.state && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id);\r\n contract.is_new = !searchResult;\r\n\r\n let findContract = false;\r\n for (let i = 0; i < wallet.contracts.length; i++) {\r\n if (wallet.contracts[i].contract_id === contract.contract_id && wallet.contracts[i].is_a === contract.is_a) {\r\n for (const prop in contract) {\r\n if (contract.hasOwnProperty(prop)) {\r\n wallet.contracts[i][prop] = contract[prop];\r\n }\r\n }\r\n findContract = true;\r\n break;\r\n }\r\n }\r\n if (findContract === false) {\r\n wallet.contracts.push(contract);\r\n }\r\n wallet.recountNewContracts();\r\n }\r\n\r\n });\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('money_transfer_cancel', (data) => {\r\n console.log('----------------- money_transfer_cancel -----------------');\r\n console.log(data);\r\n\r\n if (!data.ti) {\r\n return;\r\n }\r\n\r\n const wallet_id = data.wallet_id;\r\n const tr_info = data.ti;\r\n const wallet = this.variablesService.getWallet(wallet_id);\r\n\r\n if (wallet) {\r\n if (tr_info.hasOwnProperty('contract')) {\r\n for (let i = 0; i < wallet.contracts.length; i++) {\r\n if (wallet.contracts[i].contract_id === tr_info.contract[0].contract_id && wallet.contracts[i].is_a === tr_info.contract[0].is_a) {\r\n if (wallet.contracts[i].state === 1 || wallet.contracts[i].state === 110) {\r\n wallet.contracts[i].is_new = true;\r\n wallet.contracts[i].state = 140;\r\n wallet.recountNewContracts();\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n wallet.removeFromHistory(tr_info.tx_hash);\r\n\r\n let error_tr = '';\r\n switch (tr_info.tx_type) {\r\n case 0:\r\n error_tr = this.translate.instant('ERRORS.TX_TYPE_NORMAL') + '
    ' +\r\n tr_info.tx_hash + '
    ' + wallet.name + '
    ' + wallet.address + '
    ' +\r\n this.translate.instant('ERRORS.TX_TYPE_NORMAL_TO') + ' ' + this.intToMoneyPipe.transform(tr_info.amount) + ' ' +\r\n this.translate.instant('ERRORS.TX_TYPE_NORMAL_END');\r\n break;\r\n case 1:\r\n // this.translate.instant('ERRORS.TX_TYPE_PUSH_OFFER');\r\n break;\r\n case 2:\r\n // this.translate.instant('ERRORS.TX_TYPE_UPDATE_OFFER');\r\n break;\r\n case 3:\r\n // this.translate.instant('ERRORS.TX_TYPE_CANCEL_OFFER');\r\n break;\r\n case 4:\r\n error_tr = this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS') + '
    ' +\r\n tr_info.tx_hash + '
    ' + wallet.name + '
    ' + wallet.address + '
    ' +\r\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END');\r\n break;\r\n case 5:\r\n error_tr = this.translate.instant('ERRORS.TX_TYPE_UPDATE_ALIAS') + '
    ' +\r\n tr_info.tx_hash + '
    ' + wallet.name + '
    ' + wallet.address + '
    ' +\r\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END');\r\n break;\r\n case 6:\r\n error_tr = this.translate.instant('ERRORS.TX_TYPE_COIN_BASE');\r\n break;\r\n }\r\n if (error_tr) {\r\n this.modalService.prepareModal('error', error_tr);\r\n }\r\n }\r\n });\r\n\r\n this.backend.eventSubscribe('on_core_event', (data) => {\r\n console.log('----------------- on_core_event -----------------');\r\n console.log(data);\r\n\r\n data = JSON.parse(data);\r\n\r\n if (data.events != null) {\r\n for (let i = 0, length = data.events.length; i < length; i++) {\r\n\r\n switch (data.events[i].method) {\r\n case 'CORE_EVENT_BLOCK_ADDED':\r\n break;\r\n case 'CORE_EVENT_ADD_ALIAS':\r\n if (this.variablesService.aliasesChecked[data.events[i].details.address] != null) {\r\n this.variablesService.aliasesChecked[data.events[i].details.address]['name'] = '@' + data.events[i].details.alias;\r\n this.variablesService.aliasesChecked[data.events[i].details.address]['address'] = data.events[i].details.address;\r\n this.variablesService.aliasesChecked[data.events[i].details.address]['comment'] = data.events[i].details.comment;\r\n }\r\n if (this.variablesService.enableAliasSearch) {\r\n const newAlias = {\r\n name: '@' + data.events[i].details.alias,\r\n address: data.events[i].details.address,\r\n comment: data.events[i].details.comment\r\n };\r\n this.variablesService.aliases = this.variablesService.aliases.concat(newAlias);\r\n this.variablesService.changeAliases();\r\n }\r\n break;\r\n case 'CORE_EVENT_UPDATE_ALIAS':\r\n for (const address in this.variablesService.aliasesChecked) {\r\n if (this.variablesService.aliasesChecked.hasOwnProperty(address)) {\r\n if (this.variablesService.aliasesChecked[address].name === '@' + data.events[i].details.alias) {\r\n if (this.variablesService.aliasesChecked[address].address !== data.events[i].details.details.address) {\r\n delete this.variablesService.aliasesChecked[address]['name'];\r\n delete this.variablesService.aliasesChecked[address]['address'];\r\n delete this.variablesService.aliasesChecked[address]['comment'];\r\n } else {\r\n this.variablesService.aliasesChecked[address].comment = data.events[i].details.details.comment;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n if (this.variablesService.aliasesChecked[data.events[i].details.details.address] != null) {\r\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['name'] = '@' + data.events[i].details.alias;\r\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['address'] = data.events[i].details.details.address;\r\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['comment'] = data.events[i].details.details.comment;\r\n }\r\n if (this.variablesService.enableAliasSearch) {\r\n const CurrentAlias = this.variablesService.aliases.find((element) => element.name === '@' + data.events[i].details.alias);\r\n if (CurrentAlias) {\r\n CurrentAlias.address = data.events[i].details.details.address;\r\n CurrentAlias.comment = data.events[i].details.details.comment;\r\n }\r\n }\r\n this.variablesService.changeAliases();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.intervalUpdateContractsState = setInterval(() => {\r\n this.variablesService.wallets.forEach((wallet) => {\r\n wallet.contracts.forEach((contract) => {\r\n if (contract.state === 201 && contract.height !== 0 && (this.variablesService.height_app - contract.height) >= 10) {\r\n contract.state = 2;\r\n contract.is_new = true;\r\n console.warn('need check state in contracts');\r\n } else if (contract.state === 601 && contract.height !== 0 && (this.variablesService.height_app - contract.height) >= 10) {\r\n contract.state = 6;\r\n contract.is_new = true;\r\n }\r\n });\r\n });\r\n }, 30000);\r\n\r\n this.expMedTsEvent = this.variablesService.getExpMedTsEvent.subscribe((newTimestamp: number) => {\r\n this.variablesService.wallets.forEach((wallet) => {\r\n wallet.contracts.forEach((contract) => {\r\n if (contract.state === 1 && contract.expiration_time <= newTimestamp) {\r\n contract.state = 110;\r\n contract.is_new = true;\r\n wallet.recountNewContracts();\r\n } else if (contract.state === 5 && contract.cancel_expiration_time <= newTimestamp) {\r\n contract.state = 130;\r\n contract.is_new = true;\r\n wallet.recountNewContracts();\r\n }\r\n });\r\n });\r\n });\r\n\r\n\r\n this.backend.getAppData((status, data) => {\r\n if (data && Object.keys(data).length > 0) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key) && this.variablesService.settings.hasOwnProperty(key)) {\r\n this.variablesService.settings[key] = data[key];\r\n }\r\n }\r\n if (this.variablesService.settings.hasOwnProperty('theme') && ['dark', 'white', 'gray'].indexOf(this.variablesService.settings.theme) !== -1) {\r\n this.renderer.addClass(document.body, 'theme-' + this.variablesService.settings.theme);\r\n } else {\r\n this.renderer.addClass(document.body, 'theme-' + this.variablesService.defaultTheme);\r\n }\r\n if (this.variablesService.settings.hasOwnProperty('scale') && [7.5, 10, 12.5, 15].indexOf(this.variablesService.settings.scale) !== -1) {\r\n const width = this.utilsService.getMinWidthByScale(this.variablesService.settings.scale);\r\n const app = document.documentElement.querySelector('app-root');\r\n this.renderer.setStyle(app, 'min-width', width + 'px');\r\n this.renderer.setStyle(document.documentElement, 'font-size', this.variablesService.settings.scale + 'px');\r\n }\r\n } else {\r\n this.variablesService.settings.theme = this.variablesService.defaultTheme;\r\n this.renderer.addClass(document.body, 'theme-' + this.variablesService.settings.theme);\r\n }\r\n this.translate.use(this.variablesService.settings.language);\r\n this.setBackendLocalization();\r\n\r\n this.backend.setLogLevel(this.variablesService.settings.appLog);\r\n\r\n if (this.router.url !== '/login') {\r\n this.backend.haveSecureAppData((statusPass) => {\r\n if (statusPass) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/login'], {queryParams: {type: 'auth'}});\r\n });\r\n } else {\r\n if (Object.keys(data).length !== 0) {\r\n this.needOpenWallets = JSON.parse(JSON.stringify(this.variablesService.settings.wallets));\r\n this.ngZone.run(() => {\r\n this.variablesService.appLogin = true;\r\n this.router.navigate(['/']);\r\n });\r\n } else {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/login'], {queryParams: {type: 'reg'}});\r\n });\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }, error => {\r\n console.log(error);\r\n });\r\n this.getMoneyEquivalent();\r\n\r\n this.intervalUpdatePriceState = setInterval(() => {\r\n this.getMoneyEquivalent();\r\n }, 30000);\r\n }\r\n\r\n getMoneyEquivalent() {\r\n this.http.get('https://api.coingecko.com/api/v3/ping').subscribe(\r\n () => {\r\n this.http.get('https://api.coingecko.com/api/v3/simple/price?ids=zano&vs_currencies=usd').subscribe(\r\n data => {\r\n this.variablesService.moneyEquivalent = data['zano']['usd'];\r\n },\r\n error => {\r\n console.warn('api.coingecko.com price error: ', error);\r\n }\r\n );\r\n },\r\n error => {\r\n console.warn('api.coingecko.com error: ', error);\r\n setTimeout(() => {\r\n this.getMoneyEquivalent();\r\n }, 30000);\r\n }\r\n )\r\n }\r\n\r\n getAliases() {\r\n this.backend.getAllAliases((status, data, error) => {\r\n\r\n console.warn(error);\r\n\r\n if (error === 'CORE_BUSY') {\r\n window.setTimeout(() => {\r\n this.getAliases();\r\n }, 10000);\r\n } else if (error === 'OVERFLOW') {\r\n this.variablesService.aliases = [];\r\n this.variablesService.enableAliasSearch = false;\r\n this.variablesService.wallets.forEach(wallet => {\r\n wallet.alias = this.backend.getWalletAlias(wallet.address);\r\n });\r\n } else {\r\n this.variablesService.enableAliasSearch = true;\r\n if (data.aliases && data.aliases.length) {\r\n this.variablesService.aliases = [];\r\n data.aliases.forEach(alias => {\r\n const newAlias = {\r\n name: '@' + alias.alias,\r\n address: alias.address,\r\n comment: alias.comment\r\n };\r\n this.variablesService.aliases.push(newAlias);\r\n });\r\n this.variablesService.wallets.forEach(wallet => {\r\n wallet.alias = this.backend.getWalletAlias(wallet.address);\r\n });\r\n this.variablesService.aliases = this.variablesService.aliases.sort((a, b) => {\r\n if (a.name.length > b.name.length) {\r\n return 1;\r\n }\r\n if (a.name.length < b.name.length) {\r\n return -1;\r\n }\r\n if (a.name > b.name) {\r\n return 1;\r\n }\r\n if (a.name < b.name) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n this.variablesService.changeAliases();\r\n }\r\n }\r\n });\r\n }\r\n\r\n contextMenuCopy(target) {\r\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\r\n const start = (target['contextSelectionStart']) ? 'contextSelectionStart' : 'selectionStart';\r\n const end = (target['contextSelectionEnd']) ? 'contextSelectionEnd' : 'selectionEnd';\r\n const canUseSelection = ((target[start]) || (target[start] === '0'));\r\n const SelectedText = (canUseSelection) ? target['value'].substring(target[start], target[end]) : target['value'];\r\n this.backend.setClipboard(String(SelectedText));\r\n }\r\n }\r\n\r\n contextMenuOnlyCopy(text) {\r\n if (text) {\r\n this.backend.setClipboard(String(text));\r\n }\r\n }\r\n\r\n contextMenuPaste(target) {\r\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\r\n this.backend.getClipboard((status, clipboard) => {\r\n clipboard = String(clipboard);\r\n if (typeof clipboard !== 'string' || clipboard.length) {\r\n const start = (target['contextSelectionStart']) ? 'contextSelectionStart' : 'selectionStart';\r\n const end = (target['contextSelectionEnd']) ? 'contextSelectionEnd' : 'selectionEnd';\r\n const _pre = target['value'].substring(0, target[start]);\r\n const _aft = target['value'].substring(target[end], target['value'].length);\r\n let text = _pre + clipboard + _aft;\r\n const cursorPosition = (_pre + clipboard).length;\r\n if (target['maxLength'] && parseInt(target['maxLength'], 10) > 0) {\r\n text = text.substr(0, parseInt(target['maxLength'], 10));\r\n }\r\n target['value'] = text;\r\n target.setSelectionRange(cursorPosition, cursorPosition);\r\n target.dispatchEvent(new Event('input'));\r\n target['focus']();\r\n }\r\n });\r\n }\r\n }\r\n\r\n contextMenuSelect(target) {\r\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\r\n target['focus']();\r\n setTimeout(() => {\r\n target['select']();\r\n });\r\n }\r\n }\r\n\r\n addToStore(wallet, boolean) {\r\n const value = this.store.value.sync;\r\n if (value && value.length) {\r\n const sync = value.filter(item => item.wallet_id === wallet.wallet_id);\r\n if (sync && sync.length) {\r\n const result = value.map(item => {\r\n if (item.wallet_id === wallet.wallet_id) {\r\n return {sync: boolean, wallet_id: wallet.wallet_id};\r\n } else {\r\n return item;\r\n }\r\n });\r\n this.store.set('sync', result);\r\n } else {\r\n value.push({sync: boolean, wallet_id: wallet.wallet_id});\r\n this.store.set('sync', value);\r\n }\r\n } else {\r\n this.store.set('sync', [{sync: boolean, wallet_id: wallet.wallet_id}]);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.intervalUpdateContractsState) {\r\n clearInterval(this.intervalUpdateContractsState);\r\n }\r\n if (this.intervalUpdatePriceState) {\r\n clearInterval(this.intervalUpdatePriceState);\r\n }\r\n this.expMedTsEvent.unsubscribe();\r\n }\r\n\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { SettingsComponent } from './settings/settings.component';\r\nimport { SidebarComponent } from './sidebar/sidebar.component';\r\nimport { MainComponent } from './main/main.component';\r\nimport { CreateWalletComponent } from './create-wallet/create-wallet.component';\r\nimport { OpenWalletComponent } from './open-wallet/open-wallet.component';\r\nimport { OpenWalletModalComponent } from './open-wallet-modal/open-wallet-modal.component';\r\nimport { RestoreWalletComponent } from './restore-wallet/restore-wallet.component';\r\nimport { SeedPhraseComponent } from './seed-phrase/seed-phrase.component';\r\nimport { WalletDetailsComponent } from './wallet-details/wallet-details.component';\r\nimport { AssignAliasComponent } from './assign-alias/assign-alias.component';\r\nimport { EditAliasComponent } from './edit-alias/edit-alias.component';\r\nimport { TransferAliasComponent } from './transfer-alias/transfer-alias.component';\r\nimport { WalletComponent } from './wallet/wallet.component';\r\nimport { SendComponent } from './send/send.component';\r\nimport { ReceiveComponent } from './receive/receive.component';\r\nimport { HistoryComponent } from './history/history.component';\r\nimport { ContractsComponent } from './contracts/contracts.component';\r\nimport { PurchaseComponent } from './purchase/purchase.component';\r\nimport { MessagesComponent } from './messages/messages.component';\r\nimport { TypingMessageComponent } from './typing-message/typing-message.component';\r\nimport { StakingComponent } from './staking/staking.component';\r\n\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\n// SERVICES\r\nimport { BackendService } from './_helpers/services/backend.service';\r\nimport { ModalService } from './_helpers/services/modal.service';\r\nimport { PaginationStore } from './_helpers/services/pagination.store';\r\n// SERVICES\r\n\r\n// Feature module\r\nimport { Store } from 'store';\r\n// Feature module\r\n\r\nimport { MoneyToIntPipe } from './_helpers/pipes/money-to-int.pipe';\r\nimport { IntToMoneyPipe } from './_helpers/pipes/int-to-money.pipe';\r\nimport { HistoryTypeMessagesPipe } from './_helpers/pipes/history-type-messages.pipe';\r\nimport { ContractStatusMessagesPipe } from './_helpers/pipes/contract-status-messages.pipe';\r\nimport { ContractTimeLeftPipe } from './_helpers/pipes/contract-time-left.pipe';\r\nimport { SafeHTMLPipe } from './_helpers/pipes/safe-html.pipe';\r\nimport { TooltipDirective } from './_helpers/directives/tooltip.directive';\r\nimport { InputValidateDirective } from './_helpers/directives/input-validate/input-validate.directive';\r\nimport { StakingSwitchComponent } from './_helpers/directives/staking-switch/staking-switch.component';\r\nimport { ModalContainerComponent } from './_helpers/directives/modal-container/modal-container.component';\r\nimport { TransactionDetailsComponent } from './_helpers/directives/transaction-details/transaction-details.component';\r\nimport { ContextMenuModule } from 'ngx-contextmenu';\r\nimport { ChartModule, HIGHCHARTS_MODULES } from 'angular-highcharts';\r\nimport * as highcharts from 'highcharts';\r\nimport exporting from 'highcharts/modules/exporting.src';\r\nimport { ProgressContainerComponent } from './_helpers/directives/progress-container/progress-container.component';\r\nimport { InputDisableSelectionDirective } from './_helpers/directives/input-disable-selection/input-disable-selection.directive';\r\nimport { SendModalComponent } from './send-modal/send-modal.component';\r\nimport { ContactsComponent } from './contacts/contacts.component';\r\nimport { AddContactsComponent } from './add-contacts/add-contacts.component';\r\nimport { ContactSendComponent } from './contact-send/contact-send.component';\r\nimport { ExportImportComponent } from './export-import/export-import.component';\r\nimport { ConfirmModalComponent } from './_helpers/directives/confirm-modal/confirm-modal.component';\r\n\r\nexport function HttpLoaderFactory(httpClient: HttpClient) {\r\n return new TranslateHttpLoader(httpClient, './assets/i18n/', '.json');\r\n}\r\n\r\nimport { PapaParseModule } from 'ngx-papaparse';\r\n\r\n// import * as more from 'highcharts/highcharts-more.src';\r\n// import * as exporting from 'highcharts/modules/exporting.src';\r\n// import * as highstock from 'highcharts/modules/stock.src';\r\n\r\nexport function highchartsFactory() {\r\n // Default options.\r\n highcharts.setOptions({\r\n time: {\r\n useUTC: false\r\n }\r\n });\r\n\r\n return [exporting];\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n LoginComponent,\r\n SettingsComponent,\r\n SidebarComponent,\r\n MainComponent,\r\n CreateWalletComponent,\r\n OpenWalletComponent,\r\n OpenWalletModalComponent,\r\n RestoreWalletComponent,\r\n SeedPhraseComponent,\r\n WalletDetailsComponent,\r\n AssignAliasComponent,\r\n EditAliasComponent,\r\n TransferAliasComponent,\r\n WalletComponent,\r\n SendComponent,\r\n ReceiveComponent,\r\n HistoryComponent,\r\n ContractsComponent,\r\n PurchaseComponent,\r\n MessagesComponent,\r\n StakingComponent,\r\n TypingMessageComponent,\r\n MoneyToIntPipe,\r\n IntToMoneyPipe,\r\n StakingSwitchComponent,\r\n HistoryTypeMessagesPipe,\r\n ContractStatusMessagesPipe,\r\n ContractTimeLeftPipe,\r\n TooltipDirective,\r\n InputValidateDirective,\r\n ModalContainerComponent,\r\n TransactionDetailsComponent,\r\n ProgressContainerComponent,\r\n InputDisableSelectionDirective,\r\n SendModalComponent,\r\n ContactsComponent,\r\n AddContactsComponent,\r\n ContactSendComponent,\r\n ExportImportComponent,\r\n SafeHTMLPipe,\r\n ConfirmModalComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgSelectModule,\r\n ChartModule,\r\n PapaParseModule,\r\n ContextMenuModule.forRoot()\r\n ],\r\n providers: [\r\n Store,\r\n BackendService,\r\n ModalService,\r\n PaginationStore,\r\n MoneyToIntPipe,\r\n IntToMoneyPipe,\r\n { provide: HIGHCHARTS_MODULES, useFactory: highchartsFactory }\r\n // {provide: HIGHCHARTS_MODULES, useFactory: () => [ highstock, more, exporting ] }\r\n ],\r\n entryComponents: [\r\n ModalContainerComponent,\r\n SendModalComponent,\r\n ConfirmModalComponent\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","module.exports = \"
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{ wallet.name }}\\r\\n {{ 'BREADCRUMBS.ASSIGN_ALIAS' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
    \\r\\n
    6 && assignForm.get('name').value.length <= 25\\\">\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_WRONG' | translate }}\\r\\n
    \\r\\n
    25\\\">\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_LENGTH' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_EXISTS' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    = variablesService.maxCommentLength\\\">\\r\\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    {{ \\\"ASSIGN_ALIAS.COST\\\" | translate : {value: alias.price | intToMoney, currency: variablesService.defaultCurrency} }}
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\"","module.exports = \".form-assign {\\n margin: 2.4rem 0; }\\n .form-assign .alias-name {\\n width: 50%; }\\n .form-assign .alias-cost {\\n font-size: 1.3rem;\\n margin-top: 2rem; }\\n .form-assign .wrap-buttons {\\n display: flex;\\n justify-content: space-between;\\n margin: 2.5rem -0.7rem; }\\n .form-assign .wrap-buttons button {\\n margin: 0 0.7rem;\\n width: 15rem; }\\n .assign-alias-tooltip {\\n font-size: 1.3rem;\\n line-height: 2rem;\\n padding: 1rem 1.5rem;\\n max-width: 46rem; }\\n .has-no-edit-symbol {\\n position: relative;\\n width: 100%; }\\n .has-no-edit-symbol input {\\n padding-left: 2.35rem; }\\n .has-no-edit-symbol:after {\\n content: '@';\\n position: absolute;\\n display: inline-block;\\n top: 50%;\\n left: 1rem;\\n transform: translateY(-50%); }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXNzaWduLWFsaWFzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGFzc2lnbi1hbGlhc1xcYXNzaWduLWFsaWFzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFBQTtFQVRwQjtJQWFJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsc0JBQXNCLEVBQUE7RUFmMUI7TUFrQk0sZ0JBQWdCO01BQ2hCLFlBQVksRUFBQTtFQUtsQjtFQUNFLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsb0JBQW9CO0VBQ3BCLGdCQUFnQixFQUFBO0VBR2xCO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVcsRUFBQTtFQUZiO0lBSUkscUJBQXFCLEVBQUE7RUFKekI7SUFPSSxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixRQUFRO0lBQ1IsVUFBVTtJQUNWLDJCQUEyQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvYXNzaWduLWFsaWFzL2Fzc2lnbi1hbGlhcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLWFzc2lnbiB7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuXHJcbiAgLmFsaWFzLW5hbWUge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICB9XHJcblxyXG4gIC5hbGlhcy1jb3N0IHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbWFyZ2luLXRvcDogMnJlbTtcclxuICB9XHJcblxyXG4gIC53cmFwLWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIG1hcmdpbjogMi41cmVtIC0wLjdyZW07XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgbWFyZ2luOiAwIDAuN3JlbTtcclxuICAgICAgd2lkdGg6IDE1cmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmFzc2lnbi1hbGlhcy10b29sdGlwIHtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuICBsaW5lLWhlaWdodDogMnJlbTtcclxuICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcclxuICBtYXgtd2lkdGg6IDQ2cmVtO1xyXG59XHJcblxyXG4uaGFzLW5vLWVkaXQtc3ltYm9sIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaW5wdXQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyLjM1cmVtO1xyXG4gIH1cclxuICAmOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICdAJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogMXJlbTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, NgZone, OnInit, OnDestroy} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {Location} from '@angular/common';\r\nimport {Router} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {MoneyToIntPipe} from '../_helpers/pipes/money-to-int.pipe';\r\nimport {IntToMoneyPipe} from '../_helpers/pipes/int-to-money.pipe';\r\nimport BigNumber from 'bignumber.js';\r\nimport {Subscription} from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-assign-alias',\r\n templateUrl: './assign-alias.component.html',\r\n styleUrls: ['./assign-alias.component.scss']\r\n})\r\nexport class AssignAliasComponent implements OnInit, OnDestroy {\r\n\r\n wallet: Wallet;\r\n assignForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.pattern(/^@?[a-z0-9\\.\\-]{6,25}$/)]),\r\n comment: new FormControl('', [(g: FormControl) => {\r\n if (g.value > this.variablesService.maxCommentLength) {\r\n return {'maxLength': true};\r\n } else {\r\n return null;\r\n }\r\n }])\r\n });\r\n assignFormSubscription: Subscription;\r\n alias = {\r\n name: '',\r\n fee: this.variablesService.default_fee,\r\n price: new BigNumber(0),\r\n reward: '0',\r\n rewardOriginal: '0',\r\n comment: '',\r\n exists: false\r\n };\r\n canRegister = false;\r\n notEnoughMoney = false;\r\n\r\n constructor(\r\n private ngZone: NgZone,\r\n private location: Location,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private moneyToInt: MoneyToIntPipe,\r\n private intToMoney: IntToMoneyPipe\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.wallet = this.variablesService.currentWallet;\r\n this.assignFormSubscription = this.assignForm.get('name').valueChanges.subscribe(value => {\r\n this.canRegister = false;\r\n this.alias.exists = false;\r\n const newName = value.toLowerCase().replace('@', '');\r\n if (!(this.assignForm.controls['name'].errors && this.assignForm.controls['name'].errors.hasOwnProperty('pattern')) && newName.length >= 6 && newName.length <= 25) {\r\n this.backend.getAliasByName(newName, status => {\r\n this.ngZone.run(() => {\r\n this.alias.exists = status;\r\n });\r\n if (!status) {\r\n this.alias.price = new BigNumber(0);\r\n this.backend.getAliasCoast(newName, (statusPrice, dataPrice) => {\r\n this.ngZone.run(() => {\r\n if (statusPrice) {\r\n this.alias.price = BigNumber.sum(dataPrice['coast'], this.variablesService.default_fee_big);\r\n }\r\n this.notEnoughMoney = this.alias.price.isGreaterThan(this.wallet.unlocked_balance);\r\n this.alias.reward = this.intToMoney.transform(this.alias.price, false);\r\n this.alias.rewardOriginal = this.intToMoney.transform(dataPrice['coast'], false);\r\n this.canRegister = !this.notEnoughMoney;\r\n });\r\n });\r\n } else {\r\n this.notEnoughMoney = false;\r\n this.alias.reward = '0';\r\n this.alias.rewardOriginal = '0';\r\n }\r\n });\r\n } else {\r\n this.notEnoughMoney = false;\r\n this.alias.reward = '0';\r\n this.alias.rewardOriginal = '0';\r\n }\r\n this.alias.name = newName;\r\n });\r\n }\r\n\r\n assignAlias() {\r\n const alias = this.backend.getWalletAlias(this.wallet.address);\r\n if (alias.hasOwnProperty('name')) {\r\n this.modalService.prepareModal('info', 'ASSIGN_ALIAS.ONE_ALIAS');\r\n } else {\r\n this.alias.comment = this.assignForm.get('comment').value;\r\n this.backend.registerAlias(this.wallet.wallet_id, this.alias.name, this.wallet.address, this.alias.fee, this.alias.comment, this.alias.rewardOriginal, (status, data) => {\r\n if (status) {\r\n this.wallet.wakeAlias = true;\r\n this.modalService.prepareModal('info', 'ASSIGN_ALIAS.REQUEST_ADD_REG');\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet.wallet_id]);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.assignFormSubscription.unsubscribe();\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n {{\\r\\n 'CONTACTS.TITLE' | translate\\r\\n }}\\r\\n {{ 'CONTACTS.SEND' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\"","module.exports = \".wallets-selection {\\n display: flex;\\n align-items: center;\\n margin-top: 2rem; }\\n .wallets-selection .input-block {\\n width: 18rem; }\\n .wallets-selection button {\\n padding: 2rem;\\n background: transparent;\\n border: none;\\n outline: none; }\\n .input-block {\\n width: 44rem; }\\n .input-block input {\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n .blue-button {\\n margin-top: 2.5rem;\\n width: 100%;\\n max-width: 18rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udGFjdC1zZW5kL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGNvbnRhY3Qtc2VuZFxcY29udGFjdC1zZW5kLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTtFQUhsQjtJQU1JLFlBQVksRUFBQTtFQU5oQjtJQVVJLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLGFBQWEsRUFBQTtFQUlqQjtFQUNFLFlBQVksRUFBQTtFQURkO0lBSUksZ0JBQWdCO0lBQ2hCLHVCQUF1QixFQUFBO0VBSTNCO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbnRhY3Qtc2VuZC9jb250YWN0LXNlbmQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIud2FsbGV0cy1zZWxlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtYXJnaW4tdG9wOiAycmVtO1xyXG4gIFxyXG4gIC5pbnB1dC1ibG9jayB7XHJcbiAgICB3aWR0aDogMThyZW07XHJcbiAgfVxyXG5cclxuICBidXR0b24ge1xyXG4gICAgcGFkZGluZzogMnJlbTtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi5pbnB1dC1ibG9jayB7XHJcbiAgd2lkdGg6IDQ0cmVtO1xyXG5cclxuICBpbnB1dCB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgfVxyXG59XHJcblxyXG4uYmx1ZS1idXR0b24ge1xyXG4gIG1hcmdpbi10b3A6IDIuNXJlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDE4cmVtO1xyXG59XHJcblxyXG5cclxuIl19 */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n\r\n@Component({\r\n selector: 'app-contact-send',\r\n templateUrl: './contact-send.component.html',\r\n styleUrls: ['./contact-send.component.scss']\r\n})\r\nexport class ContactSendComponent implements OnInit, OnDestroy {\r\n\r\n queryRouting;\r\n address;\r\n\r\n constructor(\r\n private location: Location,\r\n public variablesService: VariablesService,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.address) {\r\n this.address = params.address;\r\n }\r\n });\r\n }\r\n\r\n goToWallet(id) {\r\n this.variablesService.setCurrentWallet(id);\r\n this.variablesService.currentWallet.send_data['address'] = this.address;\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.queryRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n

    {{ 'CONTACTS.TITLE' | translate }}

    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'CONTACTS.TABLE.NAME' | translate }}\\r\\n {{ 'CONTACTS.TABLE.ALIAS' | translate }}\\r\\n {{ 'CONTACTS.TABLE.ADDRESS' | translate }}\\r\\n {{ 'CONTACTS.TABLE.NOTES' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ contact.name }}\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.alias }}\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.address }}\\r\\n \\r\\n \\r\\n {{ contact.notes }}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n {{ 'CONTACTS.BUTTON.SEND' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n {{ 'CONTACTS.BUTTON.EDIT' | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n {{ 'CONTACTS.TABLE.EMPTY' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \":host {\\n min-width: 95rem;\\n width: 100%;\\n height: 100%; }\\n\\n.head {\\n justify-content: flex-end; }\\n\\n.contacts-title {\\n font-size: 1.7rem; }\\n\\n.wrap-table {\\n margin: 1rem -3rem; }\\n\\n.wrap-table table tbody tr td {\\n padding: 0 3rem 0 1rem;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n\\n.wrap-table table tbody tr td:first-child {\\n max-width: 10rem;\\n padding: 0 3rem 0 3rem; }\\n\\n.wrap-table table tbody tr td:nth-child(2) {\\n max-width: 10rem; }\\n\\n.wrap-table table tbody tr td .alias {\\n cursor: pointer; }\\n\\n.wrap-table table tbody tr td .button-wrapper {\\n display: flex; }\\n\\n.wrap-table table tbody tr td .button-wrapper button {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n font-size: 1.3rem;\\n font-weight: 400;\\n line-height: 3rem;\\n outline: none;\\n padding: 0;\\n height: auto;\\n margin-right: 1.8rem; }\\n\\n.wrap-table table tbody tr td .button-wrapper button .icon {\\n cursor: pointer;\\n margin-right: 0.8rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.wrap-table table tbody tr td .button-wrapper button .icon.edit {\\n -webkit-mask: url('edit.svg') no-repeat center;\\n mask: url('edit.svg') no-repeat center; }\\n\\n.wrap-table table tbody tr td .button-wrapper button .icon.transfer {\\n -webkit-mask: url('send.svg') no-repeat center;\\n mask: url('send.svg') no-repeat center; }\\n\\n.wrap-table table tbody tr td .button-wrapper button .icon.delete {\\n -webkit-mask: url('delete.svg') no-repeat center;\\n mask: url('delete.svg') no-repeat center; }\\n\\n.wrap-table .empty-list {\\n margin: 2.5rem 3rem; }\\n\\n.blue-button {\\n width: 100%;\\n max-width: 18rem;\\n margin-top: 3rem; }\\n\\n.footer {\\n position: absolute;\\n bottom: 3rem;\\n font-size: 1.3rem; }\\n\\n.footer .import-btn {\\n display: flex;\\n align-items: center;\\n background-color: transparent;\\n font-size: inherit;\\n font-weight: 400;\\n line-height: 1.3rem;\\n padding: 0;\\n height: auto; }\\n\\n.footer .import-btn .icon {\\n margin-right: 0.7rem;\\n -webkit-mask: url('import-export.svg') no-repeat center;\\n mask: url('import-export.svg') no-repeat center;\\n width: 0.9rem;\\n height: 0.9rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udGFjdHMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcY29udGFjdHNcXGNvbnRhY3RzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxZQUFZLEVBQUE7O0FBR2Q7RUFDRSx5QkFBeUIsRUFBQTs7QUFHM0I7RUFDRSxpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSxrQkFBa0IsRUFBQTs7QUFEcEI7SUFVVSxzQkFBc0I7SUFDdEIsZ0JBQWdCO0lBQ2hCLHVCQUF1QixFQUFBOztBQVpqQztNQWVZLGdCQUFnQjtNQUNoQixzQkFBc0IsRUFBQTs7QUFoQmxDO01Bb0JZLGdCQUFnQixFQUFBOztBQXBCNUI7TUF3QlksZUFBZSxFQUFBOztBQXhCM0I7TUE0QlksYUFBYSxFQUFBOztBQTVCekI7UUErQmMsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIsWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixVQUFVO1FBQ1YsWUFBWTtRQUNaLG9CQUFvQixFQUFBOztBQXpDbEM7VUE0Q2dCLGVBQWU7VUFDZixvQkFBb0I7VUFDcEIsYUFBYTtVQUNiLGNBQWMsRUFBQTs7QUEvQzlCO1lBa0RrQiw4Q0FBdUQ7b0JBQXZELHNDQUF1RCxFQUFBOztBQWxEekU7WUFzRGtCLDhDQUF1RDtvQkFBdkQsc0NBQXVELEVBQUE7O0FBdER6RTtZQTBEa0IsZ0RBQXlEO29CQUF6RCx3Q0FBeUQsRUFBQTs7QUExRDNFO0lBcUVJLG1CQUFtQixFQUFBOztBQUl2QjtFQUNFLFdBQVc7RUFDWCxnQkFBZ0I7RUFDaEIsZ0JBQWdCLEVBQUE7O0FBSWxCO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixpQkFBaUIsRUFBQTs7QUFIbkI7SUFNSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDZCQUE2QjtJQUM3QixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsWUFBWSxFQUFBOztBQWJoQjtNQWdCTSxvQkFBb0I7TUFDcEIsdURBQWdFO2NBQWhFLCtDQUFnRTtNQUNoRSxhQUFhO01BQ2IsY0FBYyxFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29udGFjdHMvY29udGFjdHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgbWluLXdpZHRoOiA5NXJlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5oZWFkIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4uY29udGFjdHMtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS43cmVtO1xyXG59XHJcblxyXG4ud3JhcC10YWJsZSB7XHJcbiAgbWFyZ2luOiAxcmVtIC0zcmVtO1xyXG5cclxuICB0YWJsZSB7XHJcblxyXG4gICAgdGJvZHl7XHJcblxyXG4gICAgICB0ciB7XHJcblxyXG4gICAgICAgIHRkIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDAgM3JlbSAwIDFyZW07XHJcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcblxyXG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTByZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgM3JlbSAwIDNyZW07XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjpudGgtY2hpbGQoMikge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwcmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5hbGlhcyB7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuYnV0dG9uLXdyYXBwZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAgXHJcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogM3JlbTtcclxuICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS44cmVtO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjhyZW07XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMS43cmVtO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLjdyZW07XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgJi5lZGl0IHtcclxuICAgICAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9lZGl0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAmLnRyYW5zZmVyIHtcclxuICAgICAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9zZW5kLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICYuZGVsZXRlIHtcclxuICAgICAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9kZWxldGUuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAuZW1wdHktbGlzdCB7XHJcbiAgICBtYXJnaW46IDIuNXJlbSAzcmVtO1xyXG4gIH0gIFxyXG59XHJcblxyXG4uYmx1ZS1idXR0b24ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogMThyZW07XHJcbiAgbWFyZ2luLXRvcDogM3JlbTtcclxufVxyXG5cclxuXHJcbi5mb290ZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDNyZW07XHJcbiAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgXHJcbiAgLmltcG9ydC1idG4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zcmVtO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMC43cmVtO1xyXG4gICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2ltcG9ydC1leHBvcnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB3aWR0aDogMC45cmVtO1xyXG4gICAgICBoZWlnaHQ6IDAuOXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\n\r\n@Component({\r\n selector: 'app-contacts',\r\n templateUrl: './contacts.component.html',\r\n styleUrls: ['./contacts.component.scss']\r\n})\r\nexport class ContactsComponent implements OnInit {\r\n calculatedWidth = [];\r\n @ViewChild('head') head: ElementRef;\r\n\r\n constructor(\r\n private location: Location,\r\n public variablesService: VariablesService,\r\n private backend: BackendService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.backend.getContactAlias();\r\n }\r\n\r\n delete(index: number) {\r\n if (this.variablesService.appPass) {\r\n this.variablesService.contacts.splice(index, 1);\r\n this.backend.storeSecureAppData();\r\n }\r\n }\r\n\r\n calculateWidth() {\r\n this.calculatedWidth = [];\r\n this.calculatedWidth.push(\r\n this.head.nativeElement.childNodes[0].clientWidth\r\n );\r\n this.calculatedWidth.push(\r\n this.head.nativeElement.childNodes[1].clientWidth +\r\n this.head.nativeElement.childNodes[2].clientWidth\r\n );\r\n this.calculatedWidth.push(\r\n this.head.nativeElement.childNodes[3].clientWidth\r\n );\r\n this.calculatedWidth.push(\r\n this.head.nativeElement.childNodes[4].clientWidth\r\n );\r\n }\r\n\r\n // openInBrowser(alias: string) {\r\n // if (alias !== null) {\r\n // this.backend.openUrlInBrowser(\r\n // `explorer.zano.org/aliases/${alias.slice(1)}#modalOpen`\r\n // );\r\n // }\r\n // }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n {{ 'CONTRACTS.EMPTY' | translate }}\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{ 'CONTRACTS.CONTRACTS' | translate }}{{ 'CONTRACTS.DATE' | translate }}{{ 'CONTRACTS.AMOUNT' | translate }}{{ 'CONTRACTS.STATUS' | translate }}{{ 'CONTRACTS.COMMENTS' | translate }}
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{item.private_detailes.t}}\\r\\n
    \\r\\n
    \\r\\n
    {{item.timestamp * 1000 | date : 'dd-MM-yyyy HH:mm'}}
    \\r\\n
    \\r\\n
    {{item.private_detailes.to_pay | intToMoney}} {{variablesService.defaultCurrency}}
    \\r\\n
    \\r\\n
    \\r\\n {{item.state | contractStatusMessages : item.is_a}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{item.private_detailes.c}}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.empty-contracts {\\n font-size: 1.5rem; }\\n\\n.wrap-table {\\n margin: -3rem -3rem 0 -3rem;\\n overflow-x: auto; }\\n\\n.wrap-table table tbody tr {\\n cursor: pointer;\\n outline: none !important; }\\n\\n.wrap-table table tbody tr .contract {\\n position: relative;\\n display: flex;\\n align-items: center; }\\n\\n.wrap-table table tbody tr .contract .icon {\\n flex-shrink: 0; }\\n\\n.wrap-table table tbody tr .contract .icon.new, .wrap-table table tbody tr .contract .icon.alert {\\n position: absolute;\\n top: 0; }\\n\\n.wrap-table table tbody tr .contract .icon.new {\\n left: -2.3rem;\\n -webkit-mask: url('new.svg') no-repeat center;\\n mask: url('new.svg') no-repeat center;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.wrap-table table tbody tr .contract .icon.alert {\\n top: 0.2rem;\\n left: -2.1rem;\\n -webkit-mask: url('alert.svg') no-repeat center;\\n mask: url('alert.svg') no-repeat center;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n.wrap-table table tbody tr .contract .icon.purchase, .wrap-table table tbody tr .contract .icon.sell {\\n margin-right: 1rem;\\n width: 1.5rem;\\n height: 1.5rem; }\\n\\n.wrap-table table tbody tr .contract .icon.purchase {\\n -webkit-mask: url('purchase.svg') no-repeat center;\\n mask: url('purchase.svg') no-repeat center; }\\n\\n.wrap-table table tbody tr .contract .icon.sell {\\n -webkit-mask: url('sell.svg') no-repeat center;\\n mask: url('sell.svg') no-repeat center; }\\n\\n.wrap-table table tbody tr .contract span {\\n text-overflow: ellipsis;\\n overflow: hidden; }\\n\\n.wrap-table table tbody tr .status, .wrap-table table tbody tr .comment {\\n display: inline-block;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n max-width: 100%; }\\n\\n.contracts-buttons {\\n display: flex;\\n margin: 3rem 0;\\n width: 50%; }\\n\\n.contracts-buttons button {\\n flex: 0 1 50%;\\n margin-right: 1.5rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJhY3RzL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXGNvbnRyYWN0c1xcY29udHJhY3RzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsMkJBQTJCO0VBQzNCLGdCQUFnQixFQUFBOztBQUZsQjtJQVNRLGVBQWU7SUFDZix3QkFBd0IsRUFBQTs7QUFWaEM7TUFhVSxrQkFBa0I7TUFDbEIsYUFBYTtNQUNiLG1CQUFtQixFQUFBOztBQWY3QjtRQWtCWSxjQUFjLEVBQUE7O0FBbEIxQjtVQXFCYyxrQkFBa0I7VUFDbEIsTUFBTSxFQUFBOztBQXRCcEI7VUEwQmMsYUFBYTtVQUNiLDZDQUFzRDtrQkFBdEQscUNBQXNEO1VBQ3RELGFBQWE7VUFDYixjQUFjLEVBQUE7O0FBN0I1QjtVQWlDYyxXQUFXO1VBQ1gsYUFBYTtVQUNiLCtDQUF3RDtrQkFBeEQsdUNBQXdEO1VBQ3hELGFBQWE7VUFDYixjQUFjLEVBQUE7O0FBckM1QjtVQXlDYyxrQkFBa0I7VUFDbEIsYUFBYTtVQUNiLGNBQWMsRUFBQTs7QUEzQzVCO1VBK0NjLGtEQUEyRDtrQkFBM0QsMENBQTJELEVBQUE7O0FBL0N6RTtVQW1EYyw4Q0FBdUQ7a0JBQXZELHNDQUF1RCxFQUFBOztBQW5EckU7UUF3RFksdUJBQXVCO1FBQ3ZCLGdCQUFnQixFQUFBOztBQXpENUI7TUE4RFUscUJBQXFCO01BQ3JCLHVCQUF1QjtNQUN2QixnQkFBZ0I7TUFDaEIsZUFBZSxFQUFBOztBQU96QjtFQUNFLGFBQWE7RUFDYixjQUFjO0VBQ2QsVUFBVSxFQUFBOztBQUhaO0lBTUksYUFBYTtJQUNiLG9CQUFvQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29udHJhY3RzL2NvbnRyYWN0cy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmVtcHR5LWNvbnRyYWN0cyB7XHJcbiAgZm9udC1zaXplOiAxLjVyZW07XHJcbn1cclxuXHJcbi53cmFwLXRhYmxlIHtcclxuICBtYXJnaW46IC0zcmVtIC0zcmVtIDAgLTNyZW07XHJcbiAgb3ZlcmZsb3cteDogYXV0bztcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICAuY29udHJhY3Qge1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcclxuXHJcbiAgICAgICAgICAgICYubmV3LCAmLmFsZXJ0IHtcclxuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLm5ldyB7XHJcbiAgICAgICAgICAgICAgbGVmdDogLTIuM3JlbTtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL25ldy5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEuN3JlbTtcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDEuN3JlbTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5hbGVydCB7XHJcbiAgICAgICAgICAgICAgdG9wOiAwLjJyZW07XHJcbiAgICAgICAgICAgICAgbGVmdDogLTIuMXJlbTtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2FsZXJ0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLnB1cmNoYXNlLCAmLnNlbGwge1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcclxuICAgICAgICAgICAgICB3aWR0aDogMS41cmVtO1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMS41cmVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLnB1cmNoYXNlIHtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3B1cmNoYXNlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5zZWxsIHtcclxuICAgICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3NlbGwuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cywgLmNvbW1lbnQge1xyXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNvbnRyYWN0cy1idXR0b25zIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIG1hcmdpbjogM3JlbSAwO1xyXG4gIHdpZHRoOiA1MCU7XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBmbGV4OiAwIDEgNTAlO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, OnInit, OnDestroy} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\n\r\n@Component({\r\n selector: 'app-contracts',\r\n templateUrl: './contracts.component.html',\r\n styleUrls: ['./contracts.component.scss']\r\n})\r\nexport class ContractsComponent implements OnInit, OnDestroy {\r\n\r\n parentRouting;\r\n walletId;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n public variablesService: VariablesService\r\n ) {\r\n }\r\n\r\n public get sortedArrayContracts(): any[] {\r\n return this.variablesService.currentWallet.contracts.sort((a, b) => {\r\n if (a.is_new < b.is_new) {\r\n return 1;\r\n }\r\n if (a.is_new > b.is_new) {\r\n return -1;\r\n }\r\n if (a.timestamp < b.timestamp) {\r\n return 1;\r\n }\r\n if (a.timestamp > b.timestamp) {\r\n return -1;\r\n }\r\n if (a.contract_id < b.contract_id) {\r\n return 1;\r\n }\r\n if (a.contract_id > b.contract_id) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(params => {\r\n if (params.hasOwnProperty('id')) {\r\n this.walletId = params['id'];\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\\r\\n {{ 'BREADCRUMBS.CREATE_WALLET' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    = variablesService.maxWalletNameLength\\\">\\r\\n {{ 'CREATE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'CREATE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n\"","module.exports = \":host {\\n position: relative; }\\n\\n.form-create {\\n margin: 2.4rem 0;\\n width: 50%; }\\n\\n.form-create .wrap-buttons {\\n display: flex;\\n margin: 2.5rem -0.7rem; }\\n\\n.form-create .wrap-buttons button {\\n margin: 0 0.7rem; }\\n\\n.form-create .wrap-buttons button.transparent-button {\\n flex-basis: 50%; }\\n\\n.form-create .wrap-buttons button.select-button {\\n flex-basis: 60%; }\\n\\n.form-create .wrap-buttons button.create-button {\\n flex: 1 1 50%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY3JlYXRlLXdhbGxldC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxjcmVhdGUtd2FsbGV0XFxjcmVhdGUtd2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTs7QUFGWjtJQUtJLGFBQWE7SUFDYixzQkFBc0IsRUFBQTs7QUFOMUI7TUFTTSxnQkFBZ0IsRUFBQTs7QUFUdEI7UUFZUSxlQUFlLEVBQUE7O0FBWnZCO1FBZ0JRLGVBQWUsRUFBQTs7QUFoQnZCO1FBb0JRLGFBQWEsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NyZWF0ZS13YWxsZXQvY3JlYXRlLXdhbGxldC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5mb3JtLWNyZWF0ZSB7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICB3aWR0aDogNTAlO1xyXG5cclxuICAud3JhcC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBtYXJnaW46IDIuNXJlbSAtMC43cmVtO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjdyZW07XHJcblxyXG4gICAgICAmLnRyYW5zcGFyZW50LWJ1dHRvbiB7XHJcbiAgICAgICAgZmxleC1iYXNpczogNTAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnNlbGVjdC1idXR0b24ge1xyXG4gICAgICAgIGZsZXgtYmFzaXM6IDYwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5jcmVhdGUtYnV0dG9uIHtcclxuICAgICAgICBmbGV4OiAxIDEgNTAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, NgZone, OnInit} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Router} from '@angular/router';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-create-wallet',\r\n templateUrl: './create-wallet.component.html',\r\n styleUrls: ['./create-wallet.component.scss']\r\n})\r\nexport class CreateWalletComponent implements OnInit {\r\n\r\n createForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, (g: FormControl) => {\r\n for (let i = 0; i < this.variablesService.wallets.length; i++) {\r\n if (g.value === this.variablesService.wallets[i].name) {\r\n return {'duplicate': true};\r\n }\r\n }\r\n return null;\r\n }]),\r\n password: new FormControl('', Validators.pattern(this.variablesService.pattern)),\r\n confirm: new FormControl('')\r\n }, function (g: FormGroup) {\r\n return g.get('password').value === g.get('confirm').value ? null : {'confirm_mismatch': true};\r\n });\r\n\r\n wallet = {\r\n id: ''\r\n };\r\n\r\n walletSaved = false;\r\n walletSavedName = '';\r\n progressWidth = '9rem';\r\n\r\n constructor(\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n createWallet() {\r\n this.ngZone.run(() => {\r\n this.progressWidth = '100%';\r\n this.router.navigate(['/seed-phrase'], {queryParams: {wallet_id: this.wallet.id}});\r\n });\r\n }\r\n\r\n saveWallet() {\r\n if (this.createForm.valid && this.createForm.get('name').value.length <= this.variablesService.maxWalletNameLength) {\r\n this.backend.saveFileDialog(this.translate.instant('CREATE_WALLET.TITLE_SAVE'), '*', this.variablesService.settings.default_path, (file_status, file_data) => {\r\n if (file_status) {\r\n this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/'));\r\n this.walletSavedName = file_data.path.substr(file_data.path.lastIndexOf('/') + 1, file_data.path.length - 1);\r\n this.backend.generateWallet(file_data.path, this.createForm.get('password').value, (generate_status, generate_data, errorCode) => {\r\n if (generate_status) {\r\n this.wallet.id = generate_data.wallet_id;\r\n this.variablesService.opening_wallet = new Wallet(\r\n generate_data.wallet_id,\r\n this.createForm.get('name').value,\r\n this.createForm.get('password').value,\r\n generate_data['wi'].path,\r\n generate_data['wi'].address,\r\n generate_data['wi'].balance,\r\n generate_data['wi'].unlocked_balance,\r\n generate_data['wi'].mined_total,\r\n generate_data['wi'].tracking_hey\r\n );\r\n this.variablesService.opening_wallet.alias = this.backend.getWalletAlias(generate_data['wi'].address);\r\n this.variablesService.opening_wallet.total_history_item = 0;\r\n this.variablesService.opening_wallet.pages = new Array(1).fill(1);\r\n this.variablesService.opening_wallet.totalPages = 1;\r\n this.variablesService.opening_wallet.currentPage = 1;\r\n this.ngZone.run(() => {\r\n this.walletSaved = true;\r\n this.progressWidth = '33%';\r\n });\r\n } else {\r\n if (errorCode && errorCode === 'ALREADY_EXISTS') {\r\n this.modalService.prepareModal('error', 'CREATE_WALLET.ERROR_CANNOT_SAVE_TOP');\r\n } else {\r\n this.modalService.prepareModal('error', 'CREATE_WALLET.ERROR_CANNOT_SAVE_SYSTEM');\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{ wallet.name }}\\r\\n {{ 'BREADCRUMBS.EDIT_ALIAS' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    0 && notEnoughMoney\\\">\\r\\n {{ 'EDIT_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\\r\\n
    \\r\\n
    = variablesService.maxCommentLength\\\">\\r\\n {{ 'EDIT_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    {{ \\\"EDIT_ALIAS.COST\\\" | translate : {value: variablesService.default_fee, currency: variablesService.defaultCurrency} }}
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n\"","module.exports = \".form-edit {\\n margin: 2.4rem 0; }\\n .form-edit .alias-name {\\n width: 50%; }\\n .form-edit .alias-cost {\\n font-size: 1.3rem;\\n margin-top: 2rem; }\\n .form-edit .wrap-buttons {\\n display: flex;\\n justify-content: space-between;\\n margin: 2.5rem -0.7rem; }\\n .form-edit .wrap-buttons button {\\n margin: 0 0.7rem;\\n width: 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZWRpdC1hbGlhcy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxlZGl0LWFsaWFzXFxlZGl0LWFsaWFzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFBQTtFQVRwQjtJQWFJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsc0JBQXNCLEVBQUE7RUFmMUI7TUFrQk0sZ0JBQWdCO01BQ2hCLFlBQVksRUFBQSIsImZpbGUiOiJzcmMvYXBwL2VkaXQtYWxpYXMvZWRpdC1hbGlhcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLWVkaXQge1xyXG4gIG1hcmdpbjogMi40cmVtIDA7XHJcblxyXG4gIC5hbGlhcy1uYW1lIHtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgfVxyXG5cclxuICAuYWxpYXMtY29zdCB7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIG1hcmdpbi10b3A6IDJyZW07XHJcbiAgfVxyXG5cclxuICAud3JhcC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW46IDIuNXJlbSAtMC43cmVtO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjdyZW07XHJcbiAgICAgIHdpZHRoOiAxNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, NgZone, OnInit} from '@angular/core';\r\nimport {Location} from '@angular/common';\r\nimport {Router} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\n\r\n@Component({\r\n selector: 'app-edit-alias',\r\n templateUrl: './edit-alias.component.html',\r\n styleUrls: ['./edit-alias.component.scss']\r\n})\r\nexport class EditAliasComponent implements OnInit {\r\n\r\n wallet: Wallet;\r\n alias: any;\r\n oldAliasComment: string;\r\n notEnoughMoney: boolean;\r\n requestProcessing = false;\r\n\r\n constructor(\r\n private location: Location,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.wallet = this.variablesService.currentWallet;\r\n const alias = this.backend.getWalletAlias(this.wallet.address);\r\n this.alias = {\r\n name: alias.name,\r\n address: alias.address,\r\n comment: alias.comment\r\n };\r\n this.oldAliasComment = alias.comment;\r\n this.notEnoughMoney = this.wallet.unlocked_balance.isLessThan(this.variablesService.default_fee_big);\r\n }\r\n\r\n updateAlias() {\r\n if (this.requestProcessing || this.notEnoughMoney || this.oldAliasComment === this.alias.comment || this.alias.comment.length > this.variablesService.maxCommentLength) {\r\n return;\r\n }\r\n this.requestProcessing = true;\r\n this.backend.updateAlias(this.wallet.wallet_id, this.alias, this.variablesService.default_fee, (status) => {\r\n if (status) {\r\n this.modalService.prepareModal('success', '');\r\n this.wallet.alias['comment'] = this.alias.comment;\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet.wallet_id]);\r\n });\r\n }\r\n this.requestProcessing = false;\r\n });\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n

    {{ 'CONTACTS.IMPORT_EXPORT' | translate }}

    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.head {\\n justify-content: flex-end; }\\n\\n.contacts-title {\\n font-size: 1.7rem;\\n margin-bottom: 1rem; }\\n\\n.btn-wrapper {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin: 0 -0.5rem;\\n padding: 1.5rem 0; }\\n\\n.btn-wrapper button {\\n flex: 1 0 auto;\\n margin: 0 0.5rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZXhwb3J0LWltcG9ydC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxleHBvcnQtaW1wb3J0XFxleHBvcnQtaW1wb3J0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsaUJBQWlCO0VBQ2pCLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsOEJBQThCO0VBQzlCLGlCQUFpQjtFQUNqQixpQkFBaUIsRUFBQTs7QUFMbkI7SUFRSSxjQUFjO0lBQ2QsZ0JBQWdCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9leHBvcnQtaW1wb3J0L2V4cG9ydC1pbXBvcnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5oZWFkIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4uY29udGFjdHMtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbn1cclxuXHJcbi5idG4td3JhcHBlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBtYXJnaW46IDAgLTAuNXJlbTtcclxuICBwYWRkaW5nOiAxLjVyZW0gMDtcclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgbWFyZ2luOiAwIDAuNXJlbTtcclxuICB9XHJcbn0iXX0= */\"","import { Component, OnInit, NgZone } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { Contact } from '../_helpers/models/contact.model';\r\nimport { ModalService } from '../_helpers/services/modal.service';\r\nimport { Papa } from 'ngx-papaparse';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-export-import',\r\n templateUrl: './export-import.component.html',\r\n styleUrls: ['./export-import.component.scss']\r\n})\r\nexport class ExportImportComponent implements OnInit {\r\n csvContent;\r\n\r\n constructor(\r\n private location: Location,\r\n private variablesService: VariablesService,\r\n private backend: BackendService,\r\n private modalService: ModalService,\r\n private papa: Papa,\r\n private translate: TranslateService,\r\n private router: Router,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {}\r\n\r\n import() {\r\n this.backend.openFileDialog(\r\n '',\r\n '*',\r\n this.variablesService.settings.default_path,\r\n (file_status, file_data) => {\r\n if (file_status) {\r\n this.variablesService.settings.default_path = file_data.path.substr(\r\n 0,\r\n file_data.path.lastIndexOf('/')\r\n );\r\n if (this.isValid(file_data.path)) {\r\n this.backend.loadFile(file_data.path, (status, data) => {\r\n if (!status) {\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'CONTACTS.ERROR_IMPORT_EMPTY'\r\n );\r\n } else {\r\n const options = {\r\n header: true\r\n };\r\n const elements = this.papa.parse(data, options);\r\n const isArray = Array.isArray(elements.data);\r\n if (isArray && elements.data.length !== 0 && !elements.errors.length) {\r\n if (!this.variablesService.contacts.length) {\r\n elements.data.forEach(element => {\r\n this.variablesService.contacts.push(element);\r\n });\r\n } else {\r\n elements.data.forEach(element => {\r\n const indexName = this.variablesService.contacts.findIndex(\r\n contact => contact.name === element.name\r\n );\r\n const indexAddress = this.variablesService.contacts.findIndex(\r\n contact => contact.address === element.address\r\n );\r\n if (indexAddress === -1 && indexName === -1) {\r\n this.variablesService.contacts.push(element);\r\n }\r\n if (indexName !== -1 && indexAddress === -1) {\r\n this.variablesService.contacts.push({\r\n name: `${element.name} ${this.translate.instant(\r\n 'CONTACTS.COPY'\r\n )}`,\r\n address: element.address,\r\n notes: element.notes\r\n });\r\n }\r\n });\r\n }\r\n this.backend.getContactAlias();\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/contacts']);\r\n });\r\n }\r\n if (elements.errors.length) {\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'CONTACTS.ERROR_IMPORT'\r\n );\r\n console.log(elements.errors);\r\n }\r\n }\r\n });\r\n } else {\r\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_TYPE_FILE');\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n export() {\r\n const contacts: Array = [];\r\n this.variablesService.contacts.forEach(contact => {\r\n delete contact.alias;\r\n contacts.push(contact);\r\n });\r\n\r\n this.backend.saveFileDialog(\r\n '',\r\n '*',\r\n this.variablesService.settings.default_path,\r\n (file_status, file_data) => {\r\n if (!this.variablesService.contacts.length && !(file_data.error_code === 'CANCELED')) {\r\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_EMPTY_LIST');\r\n }\r\n const path = this.isValid(file_data.path) ? file_data.path : `${file_data.path}.csv`;\r\n if (file_status && this.isValid(path) && this.variablesService.contacts.length) {\r\n this.backend.storeFile(path, this.papa.unparse(contacts));\r\n }\r\n if (!(file_data.error_code === 'CANCELED') && !this.isValid(path)) {\r\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_EXPORT');\r\n }\r\n }\r\n );\r\n }\r\n\r\n isValid(file) {\r\n return file.endsWith('.csv');\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{ 'HISTORY.STATUS' | translate }}{{ 'HISTORY.DATE' | translate }}{{ 'HISTORY.AMOUNT' | translate }}{{ 'HISTORY.FEE' | translate }}{{ 'HISTORY.ADDRESS' | translate }}
    \\r\\n
    \\r\\n 0\\\">\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n 500000000\\\">\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ (item.is_income ? 'HISTORY.RECEIVED' : 'HISTORY.SEND') | translate }}\\r\\n
    \\r\\n
    {{item.timestamp * 1000 | date : 'dd-MM-yyyy HH:mm'}}\\r\\n {{item.sortAmount | intToMoney}} {{variablesService.defaultCurrency}}\\r\\n \\r\\n {{item.sortFee | intToMoney}} {{variablesService.defaultCurrency}}\\r\\n \\r\\n {{item | historyTypeMessages}}\\r\\n {{item.remote_addresses[0]}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.wrap-table {\\n margin: -3rem; }\\n\\n.wrap-table table tbody tr td {\\n min-width: 10rem; }\\n\\n.wrap-table table tbody tr .status {\\n position: relative;\\n display: flex;\\n align-items: center; }\\n\\n.wrap-table table tbody tr .status .confirmation {\\n position: absolute;\\n top: 50%;\\n left: -2rem;\\n transform: translateY(-50%);\\n display: flex;\\n align-items: flex-end;\\n width: 0.7rem;\\n height: 1.5rem; }\\n\\n.wrap-table table tbody tr .status .confirmation .fill {\\n width: 100%; }\\n\\n.wrap-table table tbody tr .status .lock-transaction {\\n position: absolute;\\n left: -2rem;\\n -webkit-mask: url('lock-transaction.svg') no-repeat center;\\n mask: url('lock-transaction.svg') no-repeat center;\\n width: 1.2rem;\\n height: 1.2rem;\\n margin-right: 1.1rem; }\\n\\n.wrap-table table tbody tr .status .unlock-transaction {\\n position: absolute;\\n left: -2rem;\\n -webkit-mask: url('unlock-transaction.svg') no-repeat center;\\n mask: url('unlock-transaction.svg') no-repeat center;\\n width: 1.2rem;\\n height: 1.2rem;\\n margin-right: 1.1rem; }\\n\\n.wrap-table table tbody tr .status .position {\\n position: static; }\\n\\n.wrap-table table tbody tr .status .status-transaction {\\n margin-right: 1rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.wrap-table table tbody tr .status.send .status-transaction {\\n background-color: transparent; }\\n\\n.wrap-table table tbody tr .status.send .status-transaction::after {\\n display: block;\\n content: '';\\n background: url('send-red.svg') no-repeat center;\\n width: 13px;\\n height: 13px; }\\n\\n.wrap-table table tbody tr .status.received .status-transaction {\\n background-color: transparent; }\\n\\n.wrap-table table tbody tr .status.received .status-transaction::after {\\n display: block;\\n content: '';\\n background: url('receive-green.svg') no-repeat center;\\n width: 13px;\\n height: 13px; }\\n\\n.wrap-table table tbody tr .remote-address {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n max-width: 25vw; }\\n\\n.wrap-table table tbody tr:not(.transaction-details) {\\n cursor: pointer; }\\n\\n.wrap-table table tbody tr.transaction-details {\\n transition: 0.5s height linear, 0s font-size;\\n transition-delay: 0s, 0.5s;\\n height: 0; }\\n\\n.wrap-table table tbody tr.transaction-details.open {\\n height: 16.2rem; }\\n\\n.wrap-table table tbody tr.transaction-details td {\\n position: relative;\\n overflow: hidden;\\n line-height: inherit;\\n padding-top: 0;\\n padding-bottom: 0; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaGlzdG9yeS9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxoaXN0b3J5XFxoaXN0b3J5LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsYUFBYSxFQUFBOztBQURmO0lBVVUsZ0JBQWdCLEVBQUE7O0FBVjFCO0lBY1Usa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixtQkFBbUIsRUFBQTs7QUFoQjdCO01BbUJZLGtCQUFrQjtNQUNsQixRQUFRO01BQ1IsV0FBVztNQUNYLDJCQUEyQjtNQUMzQixhQUFhO01BQ2IscUJBQXFCO01BQ3JCLGFBQWE7TUFDYixjQUFjLEVBQUE7O0FBMUIxQjtRQTZCYyxXQUFXLEVBQUE7O0FBN0J6QjtNQWtDWSxrQkFBa0I7TUFDbEIsV0FBVztNQUNYLDBEQUFtRTtjQUFuRSxrREFBbUU7TUFDbkUsYUFBYTtNQUNiLGNBQWM7TUFDZCxvQkFBb0IsRUFBQTs7QUF2Q2hDO01BMkNZLGtCQUFrQjtNQUNsQixXQUFXO01BQ1gsNERBQXFFO2NBQXJFLG9EQUFxRTtNQUNyRSxhQUFhO01BQ2IsY0FBYztNQUNkLG9CQUFvQixFQUFBOztBQWhEaEM7TUFvRFksZ0JBQWdCLEVBQUE7O0FBcEQ1QjtNQXdEWSxrQkFBa0I7TUFDbEIsYUFBYTtNQUNiLGNBQWMsRUFBQTs7QUExRDFCO01BK0RjLDZCQUE2QixFQUFBOztBQS9EM0M7TUFtRWMsY0FBYztNQUNkLFdBQVU7TUFDVixnREFBa0U7TUFDbEUsV0FBVztNQUNYLFlBQVksRUFBQTs7QUF2RTFCO01BNkVjLDZCQUE2QixFQUFBOztBQTdFM0M7TUFpRmMsY0FBYztNQUNkLFdBQVU7TUFDVixxREFBdUU7TUFDdkUsV0FBVztNQUNYLFlBQVksRUFBQTs7QUFyRjFCO0lBMkZVLGdCQUFnQjtJQUNoQix1QkFBdUI7SUFDdkIsZUFBZSxFQUFBOztBQTdGekI7SUFpR1UsZUFBZSxFQUFBOztBQWpHekI7SUFzR1UsNENBQTRDO0lBQzVDLDBCQUEwQjtJQUMxQixTQUFTLEVBQUE7O0FBeEduQjtNQTJHWSxlQUFlLEVBQUE7O0FBM0czQjtNQStHWSxrQkFBa0I7TUFDbEIsZ0JBQWdCO01BQ2hCLG9CQUFvQjtNQUNwQixjQUFjO01BQ2QsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9oaXN0b3J5L2hpc3RvcnkuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi53cmFwLXRhYmxlIHtcclxuICBtYXJnaW46IC0zcmVtO1xyXG5cclxuICB0YWJsZSB7XHJcblxyXG4gICAgdGJvZHkge1xyXG5cclxuICAgICAgdHIge1xyXG5cclxuICAgICAgICB0ZCB7XHJcbiAgICAgICAgICBtaW4td2lkdGg6IDEwcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cyB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAuY29uZmlybWF0aW9uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgbGVmdDogLTJyZW07XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gICAgICAgICAgICB3aWR0aDogMC43cmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcclxuXHJcbiAgICAgICAgICAgIC5maWxsIHtcclxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5sb2NrLXRyYW5zYWN0aW9uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBsZWZ0OiAtMnJlbTtcclxuICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9sb2NrLXRyYW5zYWN0aW9uLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4xcmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC51bmxvY2stdHJhbnNhY3Rpb24ge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IC0ycmVtO1xyXG4gICAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3VubG9jay10cmFuc2FjdGlvbi5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxLjJyZW07XHJcbiAgICAgICAgICAgIGhlaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMXJlbTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAucG9zaXRpb24ge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5zdGF0dXMtdHJhbnNhY3Rpb24ge1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XHJcbiAgICAgICAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgICAgICAgIGhlaWdodDogMS43cmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYuc2VuZCAge1xyXG4gICAgICAgICAgICAuc3RhdHVzLXRyYW5zYWN0aW9uIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnN0YXR1cy10cmFuc2FjdGlvbjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDp1cmwoXCIuLi8uLi9hc3NldHMvaWNvbnMvc2VuZC1yZWQuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEzcHg7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxM3B4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJi5yZWNlaXZlZCB7XHJcbiAgICAgICAgICAgIC5zdGF0dXMtdHJhbnNhY3Rpb24ge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc3RhdHVzLXRyYW5zYWN0aW9uOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgY29udGVudDonJztcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOnVybChcIi4uLy4uL2Fzc2V0cy9pY29ucy9yZWNlaXZlLWdyZWVuLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxM3B4O1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMTNweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnJlbW90ZS1hZGRyZXNzIHtcclxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgICAgIG1heC13aWR0aDogMjV2dztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bm90KC50cmFuc2FjdGlvbi1kZXRhaWxzKSB7XHJcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnRyYW5zYWN0aW9uLWRldGFpbHMge1xyXG4gICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjVzIGhlaWdodCBsaW5lYXIsIDBzIGZvbnQtc2l6ZTtcclxuICAgICAgICAgIHRyYW5zaXRpb246IDAuNXMgaGVpZ2h0IGxpbmVhciwgMHMgZm9udC1zaXplO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHMsIDAuNXM7XHJcbiAgICAgICAgICBoZWlnaHQ6IDA7XHJcblxyXG4gICAgICAgICAgJi5vcGVuIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxNi4ycmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */\"","import {Component, OnInit, OnDestroy, AfterViewChecked, ViewChild, ElementRef} from '@angular/core';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport { Transaction } from '../_helpers/models/transaction.model';\r\n\r\n@Component({\r\n selector: 'app-history',\r\n templateUrl: './history.component.html',\r\n styleUrls: ['./history.component.scss']\r\n})\r\nexport class HistoryComponent implements OnInit, OnDestroy, AfterViewChecked {\r\n parentRouting;\r\n openedDetails = false;\r\n calculatedWidth = [];\r\n @ViewChild('head') head: ElementRef;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n public variablesService: VariablesService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(() => {\r\n this.openedDetails = false;\r\n });\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.calculateWidth();\r\n }\r\n\r\n getHeight(item) {\r\n if ((this.variablesService.height_app - item.height >= 10 && item.height !== 0) || (item.is_mining === true && item.height === 0)) {\r\n return 100;\r\n } else {\r\n if (item.height === 0 || this.variablesService.height_app - item.height < 0) {\r\n return 0;\r\n } else {\r\n return (this.variablesService.height_app - item.height) * 10;\r\n }\r\n }\r\n }\r\n\r\n openDetails(tx_hash) {\r\n if (tx_hash === this.openedDetails) {\r\n this.openedDetails = false;\r\n } else {\r\n this.openedDetails = tx_hash;\r\n }\r\n }\r\n\r\n calculateWidth() {\r\n this.calculatedWidth = [];\r\n this.calculatedWidth.push(this.head.nativeElement.childNodes[0].clientWidth);\r\n this.calculatedWidth.push(this.head.nativeElement.childNodes[1].clientWidth + this.head.nativeElement.childNodes[2].clientWidth);\r\n this.calculatedWidth.push(this.head.nativeElement.childNodes[3].clientWidth);\r\n this.calculatedWidth.push(this.head.nativeElement.childNodes[4].clientWidth);\r\n }\r\n\r\n time(item: Transaction) {\r\n const now = new Date().getTime();\r\n const unlockTime = now + ((item.unlock_time - this.variablesService.height_max) * 60 * 1000);\r\n return unlockTime;\r\n }\r\n\r\n isLocked(item: Transaction) {\r\n if ((item.unlock_time > 500000000) && (item.unlock_time > new Date().getTime() / 1000)) {\r\n return true;\r\n }\r\n if ((item.unlock_time < 500000000) && (item.unlock_time > this.variablesService.height_max)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'LOGIN.FORM_ERRORS.MISMATCH' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.OFFLINE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.SYNCING' | translate }} {{ variablesService.height_app }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.height_max }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ONLINE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.DOWNLOADING' | translate }} {{ variablesService.downloaded }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.total }}{{ 'SIDEBAR.SYNCHRONIZATION.MB' | translate }}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    {{ variablesService.sync.progress_value_text }}%
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    {{ variablesService.download.progress_value_text }}%
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ 'SIDEBAR.UPDATE.STANDARD' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT' | translate }}\\r\\n
    \\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ 'SIDEBAR.UPDATE.CRITICAL' | translate }}\\r\\n
    \\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{ 'SIDEBAR.UPDATE.TIME' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%; }\\n :host .content {\\n display: flex; }\\n :host .content .wrap-login {\\n margin: auto;\\n width: 100%;\\n max-width: 40rem; }\\n :host .content .wrap-login .logo {\\n display: flex;\\n justify-content: center; }\\n :host .content .wrap-login .logo::ng-deep svg {\\n width: 15rem; }\\n :host .content .wrap-login .form-login {\\n display: flex;\\n flex-direction: column; }\\n :host .content .wrap-login .form-login .wrap-button {\\n display: flex;\\n align-items: center;\\n justify-content: space-between; }\\n :host .content .wrap-login .form-login .wrap-button button {\\n margin: 2.5rem 0; }\\n :host .content .wrap-login .form-login button {\\n margin: 2.5rem auto;\\n width: 100%;\\n max-width: 15rem; }\\n .synchronization-status {\\n position: absolute;\\n bottom: 3rem;\\n left: 3rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbG9naW4vRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcbG9naW5cXGxvZ2luLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFlBQVksRUFBQTtFQUxkO0lBUUksYUFBYSxFQUFBO0VBUmpCO01BV00sWUFBWTtNQUNaLFdBQVc7TUFDWCxnQkFBZ0IsRUFBQTtFQWJ0QjtRQWdCUSxhQUFhO1FBQ2IsdUJBQXVCLEVBQUE7RUFqQi9CO1VBb0JVLFlBQVksRUFBQTtFQXBCdEI7UUF5QlEsYUFBYTtRQUNiLHNCQUFzQixFQUFBO0VBMUI5QjtVQTZCVSxhQUFhO1VBQ2IsbUJBQW1CO1VBQ25CLDhCQUE4QixFQUFBO0VBL0J4QztZQWtDWSxnQkFBZ0IsRUFBQTtFQWxDNUI7VUF1Q1UsbUJBQW1CO1VBQ25CLFdBQVc7VUFDWCxnQkFBZ0IsRUFBQTtFQU0xQjtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osVUFBVSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvbG9naW4vbG9naW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuXHJcbiAgLmNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAud3JhcC1sb2dpbiB7XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1heC13aWR0aDogNDByZW07XHJcblxyXG4gICAgICAubG9nbyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgJjo6bmctZGVlcCBzdmcge1xyXG4gICAgICAgICAgd2lkdGg6IDE1cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmZvcm0tbG9naW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICAgICAgLndyYXAtYnV0dG9uIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMi41cmVtIDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgbWFyZ2luOiAyLjVyZW0gYXV0bztcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiAxNXJlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuLnN5bmNocm9uaXphdGlvbi1zdGF0dXMge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDNyZW07XHJcbiAgbGVmdDogM3JlbTtcclxufVxyXG4iXX0= */\"","import {Component, NgZone, OnInit, OnDestroy} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {DOWNLOADS_PAGE_URL} from '../_shared/constants'\r\n\r\nimport icons from '../../assets/icons/icons.json';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit, OnDestroy {\r\n\r\n queryRouting;\r\n\r\n regForm = new FormGroup({\r\n password: new FormControl('',\r\n Validators.pattern(this.variablesService.pattern)),\r\n confirmation: new FormControl('')\r\n }, [function (g: FormGroup) {\r\n return g.get('password').value === g.get('confirmation').value ? null : {'mismatch': true};\r\n }\r\n]);\r\n\r\n authForm = new FormGroup({\r\n password: new FormControl('')\r\n });\r\n\r\n type = 'reg';\r\n\r\n logo = icons.logo;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.type) {\r\n this.type = params.type;\r\n }\r\n });\r\n }\r\n\r\n onSubmitCreatePass(): void {\r\n if (this.regForm.valid) {\r\n this.variablesService.appPass = this.regForm.get('password').value; // the pass what was written in input of login form by user\r\n\r\n this.backend.setMasterPassword({pass: this.variablesService.appPass}, (status, data) => {\r\n if (status) {\r\n this.backend.storeSecureAppData({pass: this.variablesService.appPass});\r\n this.variablesService.appLogin = true;\r\n this.variablesService.dataIsLoaded = true;\r\n if (this.variablesService.settings.appLockTime) {\r\n this.variablesService.startCountdown();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n } else {\r\n console.log(data['error_code']);\r\n }\r\n });\r\n }\r\n }\r\n\r\n onSkipCreatePass(): void {\r\n this.variablesService.appPass = '';\r\n this.ngZone.run(() => {\r\n this.variablesService.appLogin = true;\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n\r\n dropSecureAppData(): void {\r\n this.backend.dropSecureAppData(() => {\r\n this.onSkipCreatePass();\r\n });\r\n this.variablesService.wallets = [];\r\n this.variablesService.contacts = [];\r\n }\r\n\r\n onSubmitAuthPass(): void {\r\n if (this.authForm.valid) {\r\n this.variablesService.appPass = this.authForm.get('password').value;\r\n\r\n if (this.variablesService.dataIsLoaded) {\r\n this.backend.checkMasterPassword({pass: this.variablesService.appPass}, (status, data) => {\r\n if (status) {\r\n this.variablesService.appLogin = true;\r\n if (this.variablesService.settings.appLockTime) {\r\n this.variablesService.startCountdown();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/'], {queryParams: {prevUrl: 'login'}});\r\n });\r\n }\r\n });\r\n } else {\r\n this.getData(this.variablesService.appPass);\r\n }\r\n }\r\n }\r\n\r\n getData(appPass) {\r\n this.backend.getSecureAppData({pass: appPass}, (status, data) => {\r\n if (!data.error_code) {\r\n this.variablesService.appLogin = true;\r\n this.variablesService.dataIsLoaded = true;\r\n if (this.variablesService.settings.appLockTime) {\r\n this.variablesService.startCountdown();\r\n }\r\n this.variablesService.appPass = appPass;\r\n const isEmptyObject = Object.keys(data).length === 0 && data.constructor === Object;\r\n\r\n if (this.variablesService.wallets.length) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.variablesService.wallets[0].wallet_id]);\r\n });\r\n return;\r\n }\r\n if (data.hasOwnProperty('contacts')) {\r\n if (Object.keys(data['contacts']).length !== 0) {\r\n data['contacts'].map(contact => {\r\n this.variablesService.contacts.push(contact);\r\n });\r\n }\r\n }\r\n if (data.hasOwnProperty('wallets')) {\r\n if (Object.keys(data['wallets']).length !== 0) {\r\n this.getWalletData(data['wallets']);\r\n } else {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n }\r\n if (!data.hasOwnProperty('wallets') && !data.hasOwnProperty('contacts')) {\r\n if (data.length !== 0 && !isEmptyObject) {\r\n this.getWalletData(data);\r\n } else {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n getWalletData(walletData) {\r\n let openWallets = 0;\r\n let runWallets = 0;\r\n walletData.forEach((wallet, wallet_index) => {\r\n this.backend.openWallet(wallet.path, wallet.pass, this.variablesService.count, true, (open_status, open_data, open_error) => {\r\n if (open_status || open_error === 'FILE_RESTORED') {\r\n openWallets++;\r\n this.ngZone.run(() => {\r\n const new_wallet = new Wallet(\r\n open_data.wallet_id,\r\n wallet.name,\r\n wallet.pass,\r\n open_data['wi'].path,\r\n open_data['wi'].address,\r\n open_data['wi'].balance,\r\n open_data['wi'].unlocked_balance,\r\n open_data['wi'].mined_total,\r\n open_data['wi'].tracking_hey\r\n );\r\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\r\n if (wallet.staking) {\r\n new_wallet.staking = true;\r\n this.backend.startPosMining(new_wallet.wallet_id);\r\n } else {\r\n new_wallet.staking = false;\r\n }\r\n new_wallet.is_auditable = open_data['wi'].is_auditable;\r\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\r\n new_wallet.currentPage = 1;\r\n new_wallet.exclude_mining_txs = false;\r\n if (open_data.recent_history && open_data.recent_history.history) {\r\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\r\n new_wallet.totalPages = Math.ceil( open_data.recent_history.total_history_items / this.variablesService.count);\r\n new_wallet.totalPages > this.variablesService.maxPages\r\n ? new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index);\r\n new_wallet.prepareHistory(open_data.recent_history.history);\r\n } else {\r\n new_wallet.total_history_item = 0;\r\n new_wallet.pages = new Array(1).fill(1);\r\n new_wallet.totalPages = 1;\r\n }\r\n this.backend.getContracts(open_data.wallet_id, (contracts_status, contracts_data) => {\r\n if (contracts_status && contracts_data.hasOwnProperty('contracts')) {\r\n this.ngZone.run(() => {\r\n new_wallet.prepareContractsAfterOpen(contracts_data.contracts, this.variablesService.exp_med_ts, this.variablesService.height_app, this.variablesService.settings.viewedContracts, this.variablesService.settings.notViewedContracts);\r\n });\r\n }\r\n });\r\n this.variablesService.wallets.push(new_wallet);\r\n if (this.variablesService.wallets.length === 1) {\r\n this.router.navigate(['/wallet/' + this.variablesService.wallets[0].wallet_id]);\r\n }\r\n });\r\n this.backend.runWallet(open_data.wallet_id, (run_status) => {\r\n if (run_status) {\r\n runWallets++;\r\n } else {\r\n if (wallet_index === walletData.length - 1 && runWallets === 0) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n }\r\n });\r\n } else {\r\n if (wallet_index === walletData.length - 1 && openWallets === 0) {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n getUpdate() {\r\n this.backend.openUrlInBrowser(DOWNLOADS_PAGE_URL);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.queryRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n\\r\\n
    0 && prevUrl !== 'login'\\\">\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n

    {{ 'MAIN.TITLE' | translate }}

    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'MAIN.HELP' | translate }}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","module.exports = \":host {\\n flex: 1 0 auto;\\n padding: 3rem; }\\n\\n.content {\\n padding: 3rem;\\n min-height: 100%; }\\n\\n.content .head {\\n justify-content: flex-end; }\\n\\n.add-wallet .add-wallet-title {\\n margin-bottom: 1rem; }\\n\\n.add-wallet .add-wallet-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin: 0 -0.5rem;\\n padding: 1.5rem 0; }\\n\\n.add-wallet .add-wallet-buttons button {\\n flex: 1 0 auto;\\n margin: 0 0.5rem; }\\n\\n.add-wallet .add-wallet-help {\\n display: flex;\\n cursor: pointer;\\n font-size: 1.3rem;\\n line-height: 1.5rem; }\\n\\n.add-wallet .add-wallet-help .icon {\\n -webkit-mask: url('howto.svg') no-repeat center;\\n mask: url('howto.svg') no-repeat center;\\n margin-right: 0.8rem;\\n width: 1.5rem;\\n height: 1.5rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFpbi9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxtYWluXFxtYWluLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsY0FBYztFQUNkLGFBQWEsRUFBQTs7QUFHZjtFQUNFLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTs7QUFGbEI7SUFLSSx5QkFBeUIsRUFBQTs7QUFJN0I7RUFHSSxtQkFBbUIsRUFBQTs7QUFIdkI7RUFPSSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLDhCQUE4QjtFQUM5QixpQkFBaUI7RUFDakIsaUJBQWlCLEVBQUE7O0FBWHJCO0lBY00sY0FBYztJQUNkLGdCQUFnQixFQUFBOztBQWZ0QjtFQW9CSSxhQUFhO0VBQ2IsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixtQkFBbUIsRUFBQTs7QUF2QnZCO0lBMEJNLCtDQUF3RDtZQUF4RCx1Q0FBd0Q7SUFDeEQsb0JBQW9CO0lBQ3BCLGFBQWE7SUFDYixjQUFjLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9tYWluL21haW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZmxleDogMSAwIGF1dG87XHJcbiAgcGFkZGluZzogM3JlbTtcclxufVxyXG5cclxuLmNvbnRlbnQge1xyXG4gIHBhZGRpbmc6IDNyZW07XHJcbiAgbWluLWhlaWdodDogMTAwJTtcclxuXHJcbiAgLmhlYWQge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICB9XHJcbn1cclxuXHJcbi5hZGQtd2FsbGV0IHtcclxuXHJcbiAgLmFkZC13YWxsZXQtdGl0bGUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICB9XHJcblxyXG4gIC5hZGQtd2FsbGV0LWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW46IDAgLTAuNXJlbTtcclxuICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICBtYXJnaW46IDAgMC41cmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZC13YWxsZXQtaGVscCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS41cmVtO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9ob3d0by5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMC44cmVtO1xyXG4gICAgICB3aWR0aDogMS41cmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, NgZone, OnInit} from '@angular/core';\r\nimport {Location} from '@angular/common';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {CREATE_NEW_WALLET_HELP_PAGE} from '../_shared/constants';\r\n\r\n@Component({\r\n selector: 'app-main',\r\n templateUrl: './main.component.html',\r\n styleUrls: ['./main.component.scss']\r\n})\r\nexport class MainComponent implements OnInit {\r\n\r\n public prevUrl: string = '';\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private location: Location,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.route.snapshot.queryParams && this.route.snapshot.queryParams.prevUrl) {\r\n this.prevUrl = this.route.snapshot.queryParams.prevUrl;\r\n }\r\n }\r\n\r\n openWallet() {\r\n this.backend.openFileDialog(this.translate.instant('MAIN.CHOOSE_PATH'), '*', this.variablesService.settings.default_path, (file_status, file_data) => {\r\n if (file_status) {\r\n this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/'));\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/open'], {queryParams: {path: file_data.path}});\r\n });\r\n } else {\r\n console.log(file_data['error_code']);\r\n }\r\n });\r\n }\r\n\r\n openInBrowser() {\r\n this.backend.openUrlInBrowser(CREATE_NEW_WALLET_HELP_PAGE);\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{ 'MESSAGES.ADDRESS' | translate }}{{ 'MESSAGES.MESSAGE' | translate }}
    \\r\\n {{message.address}}\\r\\n \\r\\n \\r\\n {{message.message}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.wrap-table {\\n margin: -3rem; }\\n\\n.wrap-table table tbody tr td:first-child {\\n position: relative;\\n padding-right: 5rem;\\n width: 18rem; }\\n\\n.wrap-table table tbody tr td:first-child span {\\n display: block;\\n line-height: 3.5rem;\\n max-width: 10rem; }\\n\\n.wrap-table table tbody tr td:first-child .icon {\\n position: absolute;\\n top: 50%;\\n right: 1rem;\\n transform: translateY(-50%);\\n display: block;\\n -webkit-mask: url('alert.svg') no-repeat 0;\\n mask: url('alert.svg') no-repeat 0;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWVzc2FnZXMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcbWVzc2FnZXNcXG1lc3NhZ2VzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsYUFBYSxFQUFBOztBQURmO0lBWVksa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixZQUFZLEVBQUE7O0FBZHhCO01BaUJjLGNBQWM7TUFDZCxtQkFBbUI7TUFDbkIsZ0JBQWdCLEVBQUE7O0FBbkI5QjtNQXVCYyxrQkFBa0I7TUFDbEIsUUFBUTtNQUNSLFdBQVc7TUFDWCwyQkFBMkI7TUFDM0IsY0FBYztNQUNkLDBDQUFtRDtjQUFuRCxrQ0FBbUQ7TUFDbkQsYUFBYTtNQUNiLGNBQWMsRUFBQSIsImZpbGUiOiJzcmMvYXBwL21lc3NhZ2VzL21lc3NhZ2VzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ud3JhcC10YWJsZSB7XHJcbiAgbWFyZ2luOiAtM3JlbTtcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuXHJcbiAgICAgICAgdGQge1xyXG5cclxuICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07XHJcbiAgICAgICAgICAgIHdpZHRoOiAxOHJlbTtcclxuXHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzLjVyZW07XHJcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMHJlbTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgICByaWdodDogMXJlbTtcclxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9hbGVydC5zdmcpIG5vLXJlcGVhdCAwO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxLjJyZW07XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-messages',\r\n templateUrl: './messages.component.html',\r\n styleUrls: ['./messages.component.scss']\r\n})\r\nexport class MessagesComponent implements OnInit {\r\n\r\n messages = [\r\n {\r\n is_new: true,\r\n address: '@bitmap',\r\n message: 'No more miners for you!'\r\n },\r\n {\r\n is_new: false,\r\n address: 'Hjkwey36gHasdhkajshd4bxnb5mcvowyefb2633FdsFGGWbb',\r\n message: 'Hey! What’s with our BBR deal?'\r\n },\r\n {\r\n is_new: false,\r\n address: '@john',\r\n message: 'I’m coming!'\r\n }\r\n ];\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n\r\n}\r\n","module.exports = \"
    \\r\\n

    {{ 'OPEN_WALLET.MODAL.TITLE' | translate }}

    \\r\\n
    \\r\\n
    {{ wallet.name }}
    \\r\\n
    {{ wallet.path }}
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'OPEN_WALLET.MODAL.NOT_FOUND' | translate }}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: rgba(255, 255, 255, 0.25); }\\n\\n.modal {\\n display: flex;\\n flex-direction: column;\\n background-position: center;\\n background-size: 200%;\\n padding: 2rem;\\n min-width: 34rem;\\n max-width: 64rem; }\\n\\n.modal .title {\\n font-size: 1.8rem;\\n text-align: center; }\\n\\n.modal .open-form .wallet-path {\\n font-size: 1.3rem;\\n margin: 5rem 0 2rem;\\n word-wrap: break-word;\\n line-height: 2rem; }\\n\\n.modal .open-form .wrap-button {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin: 2rem -2rem 0; }\\n\\n.modal .open-form .wrap-button button {\\n flex: 1 0 0;\\n margin: 0 2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3Blbi13YWxsZXQtbW9kYWwvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcb3Blbi13YWxsZXQtbW9kYWxcXG9wZW4td2FsbGV0LW1vZGFsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUMsRUFBQTs7QUFHdkM7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLDJCQUEyQjtFQUMzQixxQkFBcUI7RUFDckIsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixnQkFBZ0IsRUFBQTs7QUFQbEI7SUFVSSxpQkFBaUI7SUFDakIsa0JBQWtCLEVBQUE7O0FBWHRCO0lBaUJNLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIscUJBQXFCO0lBQ3JCLGlCQUFpQixFQUFBOztBQXBCdkI7SUF3Qk0sYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsb0JBQW9CLEVBQUE7O0FBM0IxQjtNQThCUSxXQUFXO01BQ1gsY0FBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvb3Blbi13YWxsZXQtbW9kYWwvb3Blbi13YWxsZXQtbW9kYWwuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcclxufVxyXG5cclxuLm1vZGFsIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJTtcclxuICBwYWRkaW5nOiAycmVtO1xyXG4gIG1pbi13aWR0aDogMzRyZW07XHJcbiAgbWF4LXdpZHRoOiA2NHJlbTtcclxuXHJcbiAgLnRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLm9wZW4tZm9ybSB7XHJcblxyXG4gICAgLndhbGxldC1wYXRoIHtcclxuICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgIG1hcmdpbjogNXJlbSAwIDJyZW07XHJcbiAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLndyYXAtYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICBtYXJnaW46IDJyZW0gLTJyZW0gMDtcclxuXHJcbiAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgZmxleDogMSAwIDA7XHJcbiAgICAgICAgbWFyZ2luOiAwIDJyZW0gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, OnInit, Input, NgZone} from '@angular/core';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\n\r\n@Component({\r\n selector: 'app-open-wallet-modal',\r\n templateUrl: './open-wallet-modal.component.html',\r\n styleUrls: ['./open-wallet-modal.component.scss']\r\n})\r\nexport class OpenWalletModalComponent implements OnInit {\r\n\r\n @Input() wallets;\r\n\r\n wallet = {\r\n name: '',\r\n path: '',\r\n pass: '',\r\n notFound: false,\r\n emptyPass: false\r\n };\r\n\r\n constructor(\r\n public variablesService: VariablesService,\r\n private backend: BackendService,\r\n private translate: TranslateService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.wallets.length) {\r\n this.wallet = this.wallets[0];\r\n this.wallet.pass = '';\r\n }\r\n }\r\n\r\n openWallet() {\r\n if (this.wallets.length === 0) {\r\n return;\r\n }\r\n this.backend.openWallet(this.wallet.path, this.wallet.pass, this.variablesService.count, false, (open_status, open_data, open_error) => {\r\n if (open_error && open_error === 'FILE_NOT_FOUND') {\r\n this.ngZone.run(() => {\r\n this.wallet.notFound = true;\r\n });\r\n let error_translate = this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1');\r\n error_translate += ':
    ' + this.wallet.path;\r\n error_translate += this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2');\r\n this.modalService.prepareModal('error', error_translate);\r\n } else {\r\n if (open_status || open_error === 'FILE_RESTORED') {\r\n\r\n let exists = false;\r\n this.variablesService.wallets.forEach((wallet) => {\r\n if (wallet.address === open_data['wi'].address) {\r\n exists = true;\r\n }\r\n });\r\n\r\n if (exists) {\r\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\r\n this.backend.closeWallet(open_data.wallet_id);\r\n } else {\r\n const new_wallet = new Wallet(\r\n open_data.wallet_id,\r\n this.wallet.name,\r\n this.wallet.pass,\r\n open_data['wi'].path,\r\n open_data['wi'].address,\r\n open_data['wi'].balance,\r\n open_data['wi'].unlocked_balance,\r\n open_data['wi'].mined_total,\r\n open_data['wi'].tracking_hey\r\n );\r\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\r\n new_wallet.is_auditable = open_data['wi'].is_auditable;\r\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\r\n new_wallet.currentPage = 1;\r\n new_wallet.exclude_mining_txs = false;\r\n if (open_data.recent_history && open_data.recent_history.history) {\r\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\r\n new_wallet.totalPages = Math.ceil( open_data.recent_history.total_history_items / this.variablesService.count);\r\n new_wallet.totalPages > this.variablesService.maxPages\r\n ? new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index);\r\n new_wallet.prepareHistory(open_data.recent_history.history);\r\n } else {\r\n new_wallet.total_history_item = 0;\r\n new_wallet.pages = new Array(1).fill(1);\r\n new_wallet.totalPages = 1;\r\n }\r\n this.backend.getContracts(open_data.wallet_id, (contracts_status, contracts_data) => {\r\n if (contracts_status && contracts_data.hasOwnProperty('contracts')) {\r\n this.ngZone.run(() => {\r\n new_wallet.prepareContractsAfterOpen(\r\n contracts_data.contracts,\r\n this.variablesService.exp_med_ts,\r\n this.variablesService.height_app,\r\n this.variablesService.settings.viewedContracts,\r\n this.variablesService.settings.notViewedContracts\r\n );\r\n });\r\n }\r\n });\r\n this.variablesService.wallets.push(new_wallet);\r\n this.backend.runWallet(open_data.wallet_id);\r\n this.skipWallet();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n skipWallet() {\r\n this.ngZone.run(() => {\r\n if (this.wallets.length) {\r\n this.wallets.splice(0, 1);\r\n this.ngOnInit();\r\n }\r\n });\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\\r\\n {{ 'BREADCRUMBS.OPEN_WALLET' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    = variablesService.maxWalletNameLength\\\">\\r\\n {{ 'OPEN_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\"","module.exports = \".form-open {\\n margin: 2.4rem 0;\\n width: 50%; }\\n .form-open .wrap-buttons {\\n display: flex;\\n margin: 2.5rem -0.7rem; }\\n .form-open .wrap-buttons button {\\n margin: 0 0.7rem; }\\n .form-open .wrap-buttons button.create-button {\\n flex: 1 1 50%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3Blbi13YWxsZXQvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcb3Blbi13YWxsZXRcXG9wZW4td2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTtFQUZaO0lBS0ksYUFBYTtJQUNiLHNCQUFzQixFQUFBO0VBTjFCO01BU00sZ0JBQWdCLEVBQUE7RUFUdEI7UUFZUSxhQUFhLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9vcGVuLXdhbGxldC9vcGVuLXdhbGxldC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLW9wZW4ge1xyXG4gIG1hcmdpbjogMi40cmVtIDA7XHJcbiAgd2lkdGg6IDUwJTtcclxuXHJcbiAgLndyYXAtYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luOiAyLjVyZW0gLTAuN3JlbTtcclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBtYXJnaW46IDAgMC43cmVtO1xyXG5cclxuICAgICAgJi5jcmVhdGUtYnV0dG9uIHtcclxuICAgICAgICBmbGV4OiAxIDEgNTAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, NgZone, OnDestroy, OnInit} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-open-wallet',\r\n templateUrl: './open-wallet.component.html',\r\n styleUrls: ['./open-wallet.component.scss']\r\n})\r\nexport class OpenWalletComponent implements OnInit, OnDestroy {\r\n\r\n queryRouting;\r\n filePath: string;\r\n\r\n openForm = new FormGroup({\r\n name: new FormControl('', [Validators.required, (g: FormControl) => {\r\n for (let i = 0; i < this.variablesService.wallets.length; i++) {\r\n if (g.value === this.variablesService.wallets[i].name) {\r\n return {'duplicate': true};\r\n }\r\n }\r\n return null;\r\n }]),\r\n password: new FormControl('')\r\n });\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.path) {\r\n this.filePath = params.path;\r\n let filename = '';\r\n if (params.path.lastIndexOf('.') === -1) {\r\n filename = params.path.substr(params.path.lastIndexOf('/') + 1);\r\n } else {\r\n filename = params.path.substr(params.path.lastIndexOf('/') + 1, params.path.lastIndexOf('.') - 1 - params.path.lastIndexOf('/'));\r\n }\r\n if (filename.length > 25) {\r\n filename = filename.slice(0, 25);\r\n }\r\n this.openForm.get('name').setValue(filename);\r\n this.openForm.get('name').markAsTouched();\r\n }\r\n });\r\n }\r\n\r\n openWallet() {\r\n if (this.openForm.valid && this.openForm.get('name').value.length <= this.variablesService.maxWalletNameLength) {\r\n this.backend.openWallet(this.filePath, this.openForm.get('password').value, this.variablesService.count, false, (open_status, open_data, open_error) => {\r\n if (open_error && open_error === 'FILE_NOT_FOUND') {\r\n let error_translate = this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1');\r\n error_translate += ':
    ' + this.filePath;\r\n error_translate += this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2');\r\n this.modalService.prepareModal('error', error_translate);\r\n } else {\r\n if (open_status || open_error === 'FILE_RESTORED') {\r\n\r\n let exists = false;\r\n this.variablesService.wallets.forEach((wallet) => {\r\n if (wallet.address === open_data['wi'].address) {\r\n exists = true;\r\n }\r\n });\r\n\r\n if (exists) {\r\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\r\n this.backend.closeWallet(open_data.wallet_id, () => {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n });\r\n } else {\r\n const new_wallet = new Wallet(\r\n open_data.wallet_id,\r\n this.openForm.get('name').value,\r\n this.openForm.get('password').value,\r\n open_data['wi'].path,\r\n open_data['wi'].address,\r\n open_data['wi'].balance,\r\n open_data['wi'].unlocked_balance,\r\n open_data['wi'].mined_total,\r\n open_data['wi'].tracking_hey\r\n );\r\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\r\n new_wallet.currentPage = 1;\r\n new_wallet.open_from_exist = true;\r\n new_wallet.exclude_mining_txs = false;\r\n new_wallet.is_auditable = open_data['wi'].is_auditable;\r\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\r\n if (open_data.recent_history && open_data.recent_history.history) {\r\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\r\n new_wallet.totalPages = Math.ceil( open_data.recent_history.total_history_items / this.variablesService.count);\r\n new_wallet.totalPages > this.variablesService.maxPages\r\n ? new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index)\r\n : new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index);\r\n new_wallet.prepareHistory(open_data.recent_history.history);\r\n } else {\r\n new_wallet.total_history_item = 0;\r\n new_wallet.pages = new Array(1).fill(1);\r\n new_wallet.totalPages = 1;\r\n }\r\n this.backend.getContracts(open_data.wallet_id, (contracts_status, contracts_data) => {\r\n if (contracts_status && contracts_data.hasOwnProperty('contracts')) {\r\n this.ngZone.run(() => {\r\n new_wallet.prepareContractsAfterOpen(contracts_data.contracts, this.variablesService.exp_med_ts, this.variablesService.height_app, this.variablesService.settings.viewedContracts, this.variablesService.settings.notViewedContracts);\r\n });\r\n }\r\n });\r\n this.variablesService.wallets.push(new_wallet);\r\n this.backend.runWallet(open_data.wallet_id, (run_status, run_data) => {\r\n if (run_status) {\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + open_data.wallet_id]);\r\n });\r\n } else {\r\n console.log(run_data['error_code']);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.queryRouting.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n {{ 'BREADCRUMBS.CONTRACTS' | translate }}\\r\\n {{ 'BREADCRUMBS.NEW_PURCHASE' | translate }}\\r\\n {{ 'BREADCRUMBS.OLD_PURCHASE' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'PURCHASE.FORM_ERRORS.DESC_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    = 100\\\">\\r\\n
    \\r\\n {{ 'PURCHASE.FORM_ERRORS.COMMENT_MAXIMUM' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    {{item.name}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{ 'PURCHASE.FORM_ERRORS.SELLER_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'PURCHASE.FORM_ERRORS.SELLER_NOT_VALID' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'PURCHASE.FORM_ERRORS.SELLER_SAME' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'PURCHASE.FORM_ERRORS.ALIAS_NOT_VALID' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'PURCHASE.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'PURCHASE.FORM_ERRORS.AMOUNT_ZERO' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'PURCHASE.FORM_ERRORS.YOUR_DEPOSIT_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'PURCHASE.FORM_ERRORS.SELLER_DEPOSIT_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    = 100\\\">\\r\\n
    \\r\\n {{ 'PURCHASE.FORM_ERRORS.COMMENT_MAXIMUM' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n 1 {{ 'PURCHASE.HOUR' | translate }}\\r\\n \\r\\n {{title}} {{ 'PURCHASE.HOURS' | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n {{ 'PURCHASE.NEED_MONEY' | translate }}\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    {{'PURCHASE.NULLIFY_QUESTION' | translate}}
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    {{ 'PURCHASE.WAITING_TIME_QUESTION' | translate }}
    \\r\\n \\r\\n
    \\r\\n \\r\\n 1 {{ 'PURCHASE.HOUR' | translate }}\\r\\n \\r\\n {{title}} {{ 'PURCHASE.HOURS' | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.NEW_PURCHASE' | translate }}\\r\\n \\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_SELLER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_SELLER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_DELIVERY' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_CANCEL_SELLER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.EXPIRED' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_SELLER' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_CONFIRMATION' | translate }}\\r\\n (0/10)\\r\\n ({{variablesService.height_app - currentContract.height}}/10)\\r\\n \\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.COMPLETED' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.NOT_RECEIVED' | translate }}. {{ 'PURCHASE.STATUS_MESSAGES.NULLIFIED' | translate }}\\r\\n \\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.PROPOSAL_CANCEL_SELLER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.CANCELLED' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.BEING_CANCELLED' | translate }}\\r\\n (0/10)\\r\\n ({{variablesService.height_app - currentContract.height}}/10)\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_BUYER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_BUYER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.IGNORED_CANCEL_BUYER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.EXPIRED' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_DELIVERY' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.WAITING_CONFIRMATION' | translate }}\\r\\n (0/10)\\r\\n ({{variablesService.height_app - currentContract.height}}/10)\\r\\n \\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.COMPLETED' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.NOT_RECEIVED' | translate }}. {{ 'PURCHASE.STATUS_MESSAGES.NULLIFIED' | translate }}\\r\\n \\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.PROPOSAL_CANCEL_BUYER' | translate }}\\r\\n\\r\\n {{ 'PURCHASE.STATUS_MESSAGES.CANCELLED' | translate }}\\r\\n\\r\\n \\r\\n {{ 'PURCHASE.STATUS_MESSAGES.BEING_CANCELLED' | translate }}\\r\\n (0/10)\\r\\n ({{variablesService.height_app - currentContract.height}}/10)\\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{currentContract.expiration_time | contractTimeLeft: 0}}\\r\\n {{currentContract.cancel_expiration_time | contractTimeLeft: 2}}\\r\\n {{currentContract.expiration_time | contractTimeLeft: 1}}\\r\\n {{currentContract.cancel_expiration_time | contractTimeLeft: 1}}\\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n width: 100%; }\\n\\n.head {\\n flex: 0 0 auto;\\n box-sizing: content-box;\\n margin: -3rem -3rem 0; }\\n\\n.form-purchase {\\n flex: 1 1 auto;\\n margin: 1.5rem -3rem 0;\\n padding: 0 3rem;\\n overflow-y: overlay; }\\n\\n.form-purchase .input-blocks-row {\\n display: flex; }\\n\\n.form-purchase .input-blocks-row .input-block {\\n flex-basis: 50%; }\\n\\n.form-purchase .input-blocks-row .input-block:first-child {\\n margin-right: 1.5rem; }\\n\\n.form-purchase .input-blocks-row .input-block:last-child {\\n margin-left: 1.5rem; }\\n\\n.form-purchase .input-blocks-row .input-block .checkbox-block {\\n display: flex; }\\n\\n.form-purchase .purchase-select {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n font-size: 1.3rem;\\n line-height: 1.3rem;\\n margin: 1.5rem 0 0;\\n padding: 0;\\n width: 100%;\\n max-width: 15rem;\\n height: 1.3rem; }\\n\\n.form-purchase .purchase-select .arrow {\\n margin-left: 1rem;\\n width: 0.8rem;\\n height: 0.8rem; }\\n\\n.form-purchase .purchase-select .arrow.down {\\n -webkit-mask: url('arrow-down.svg') no-repeat center;\\n mask: url('arrow-down.svg') no-repeat center; }\\n\\n.form-purchase .purchase-select .arrow.up {\\n -webkit-mask: url('arrow-up.svg') no-repeat center;\\n mask: url('arrow-up.svg') no-repeat center; }\\n\\n.form-purchase .additional-details {\\n display: flex;\\n margin-top: 1.5rem;\\n padding: 0.5rem 0 2rem; }\\n\\n.form-purchase .additional-details > div {\\n flex-basis: 25%; }\\n\\n.form-purchase .additional-details > div:first-child {\\n padding-left: 1.5rem;\\n padding-right: 1rem; }\\n\\n.form-purchase .additional-details > div:last-child {\\n padding-left: 1rem;\\n padding-right: 1.5rem; }\\n\\n.form-purchase .purchase-states {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n font-size: 1.2rem;\\n line-height: 2.9rem; }\\n\\n.form-purchase .send-button {\\n margin: 2.4rem 0;\\n width: 100%;\\n max-width: 15rem; }\\n\\n.form-purchase .purchase-buttons {\\n display: flex;\\n justify-content: flex-start;\\n margin: 2.4rem -0.5rem; }\\n\\n.form-purchase .purchase-buttons button {\\n flex: 0 1 33%;\\n margin: 0 0.5rem; }\\n\\n.form-purchase .nullify-block-row {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center; }\\n\\n.form-purchase .nullify-block-row .nullify-block-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin: 1rem 0;\\n width: 100%; }\\n\\n.form-purchase .nullify-block-row .nullify-block-buttons button {\\n flex: 0 1 25%;\\n margin: 0 0.5rem; }\\n\\n.form-purchase .time-cancel-block-row {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center; }\\n\\n.form-purchase .time-cancel-block-row .time-cancel-block-question {\\n margin-bottom: 1rem; }\\n\\n.form-purchase .time-cancel-block-row .input-block {\\n width: 25%; }\\n\\n.form-purchase .time-cancel-block-row label {\\n margin-bottom: 1rem; }\\n\\n.form-purchase .time-cancel-block-row .time-cancel-block-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin: 1rem 0;\\n width: 100%; }\\n\\n.form-purchase .time-cancel-block-row .time-cancel-block-buttons button {\\n flex: 0 1 25%;\\n margin: 0 0.5rem; }\\n\\n.progress-bar-container {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n padding: 0 3rem;\\n width: 100%;\\n height: 3rem; }\\n\\n.progress-bar-container .progress-bar {\\n position: absolute;\\n top: -0.7rem;\\n left: 0;\\n margin: 0 3rem;\\n width: calc(100% - 6rem);\\n height: 0.7rem; }\\n\\n.progress-bar-container .progress-bar .progress-bar-full {\\n height: 0.7rem; }\\n\\n.progress-bar-container .progress-labels {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n font-size: 1.2rem;\\n height: 100%; }\\n\\n.progress-bar-container .progress-time {\\n position: absolute;\\n top: -3rem;\\n left: 50%;\\n transform: translateX(-50%);\\n font-size: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHVyY2hhc2UvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxccHVyY2hhc2VcXHB1cmNoYXNlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXLEVBQUE7O0FBR2I7RUFDRSxjQUFjO0VBQ2QsdUJBQXVCO0VBQ3ZCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLGNBQWM7RUFDZCxzQkFBc0I7RUFDdEIsZUFBZTtFQUNmLG1CQUFtQixFQUFBOztBQUpyQjtJQU9JLGFBQWEsRUFBQTs7QUFQakI7TUFVTSxlQUFlLEVBQUE7O0FBVnJCO1FBYVEsb0JBQW9CLEVBQUE7O0FBYjVCO1FBaUJRLG1CQUFtQixFQUFBOztBQWpCM0I7UUFxQlEsYUFBYSxFQUFBOztBQXJCckI7SUEyQkksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGNBQWMsRUFBQTs7QUFyQ2xCO01Bd0NNLGlCQUFpQjtNQUNqQixhQUFhO01BQ2IsY0FBYyxFQUFBOztBQTFDcEI7UUE2Q1Esb0RBQTREO2dCQUE1RCw0Q0FBNEQsRUFBQTs7QUE3Q3BFO1FBaURRLGtEQUEwRDtnQkFBMUQsMENBQTBELEVBQUE7O0FBakRsRTtJQXVESSxhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLHNCQUFzQixFQUFBOztBQXpEMUI7TUE0RE0sZUFBZSxFQUFBOztBQTVEckI7UUErRFEsb0JBQW9CO1FBQ3BCLG1CQUFtQixFQUFBOztBQWhFM0I7UUFvRVEsa0JBQWtCO1FBQ2xCLHFCQUFxQixFQUFBOztBQXJFN0I7SUEyRUksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLGlCQUFpQjtJQUNqQixtQkFBbUIsRUFBQTs7QUFoRnZCO0lBb0ZJLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gsZ0JBQWdCLEVBQUE7O0FBdEZwQjtJQTBGSSxhQUFhO0lBQ2IsMkJBQTJCO0lBQzNCLHNCQUFzQixFQUFBOztBQTVGMUI7TUErRk0sYUFBYTtNQUNiLGdCQUFnQixFQUFBOztBQWhHdEI7SUFxR0ksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsdUJBQXVCLEVBQUE7O0FBeEczQjtNQTJHTSxhQUFhO01BQ2IsbUJBQW1CO01BQ25CLHVCQUF1QjtNQUN2QixjQUFjO01BQ2QsV0FBVyxFQUFBOztBQS9HakI7UUFrSFEsYUFBYTtRQUNiLGdCQUFnQixFQUFBOztBQW5IeEI7SUF5SEksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsdUJBQXVCLEVBQUE7O0FBNUgzQjtNQStITSxtQkFBbUIsRUFBQTs7QUEvSHpCO01BbUlNLFVBQVUsRUFBQTs7QUFuSWhCO01BdUlNLG1CQUFtQixFQUFBOztBQXZJekI7TUEySU0sYUFBYTtNQUNiLG1CQUFtQjtNQUNuQix1QkFBdUI7TUFDdkIsY0FBYztNQUNkLFdBQVcsRUFBQTs7QUEvSWpCO1FBa0pRLGFBQWE7UUFDYixnQkFBZ0IsRUFBQTs7QUFPeEI7RUFDRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULE9BQU87RUFDUCxlQUFlO0VBQ2YsV0FBVztFQUNYLFlBQVksRUFBQTs7QUFOZDtJQVNJLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osT0FBTztJQUNQLGNBQWM7SUFDZCx3QkFBd0I7SUFDeEIsY0FBYyxFQUFBOztBQWRsQjtNQWlCTSxjQUFjLEVBQUE7O0FBakJwQjtJQXNCSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixpQkFBaUI7SUFDakIsWUFBWSxFQUFBOztBQTFCaEI7SUE4Qkksa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixTQUFTO0lBQ1QsMkJBQTJCO0lBQzNCLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvcHVyY2hhc2UvcHVyY2hhc2UuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uaGVhZCB7XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgbWFyZ2luOiAtM3JlbSAtM3JlbSAwO1xyXG59XHJcblxyXG4uZm9ybS1wdXJjaGFzZSB7XHJcbiAgZmxleDogMSAxIGF1dG87XHJcbiAgbWFyZ2luOiAxLjVyZW0gLTNyZW0gMDtcclxuICBwYWRkaW5nOiAwIDNyZW07XHJcbiAgb3ZlcmZsb3cteTogb3ZlcmxheTtcclxuXHJcbiAgLmlucHV0LWJsb2Nrcy1yb3cge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAuaW5wdXQtYmxvY2sge1xyXG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XHJcblxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2hlY2tib3gtYmxvY2sge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wdXJjaGFzZS1zZWxlY3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcclxuICAgIG1hcmdpbjogMS41cmVtIDAgMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICBoZWlnaHQ6IDEuM3JlbTtcclxuXHJcbiAgICAuYXJyb3cge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgICAgd2lkdGg6IDAuOHJlbTtcclxuICAgICAgaGVpZ2h0OiAwLjhyZW07XHJcblxyXG4gICAgICAmLmRvd24ge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1kb3duLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi51cCB7XHJcbiAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Fycm93LXVwLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZGl0aW9uYWwtZGV0YWlscyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xyXG4gICAgcGFkZGluZzogMC41cmVtIDAgMnJlbTtcclxuXHJcbiAgICA+IGRpdiB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IDI1JTtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnB1cmNoYXNlLXN0YXRlcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuOXJlbTtcclxuICB9XHJcblxyXG4gIC5zZW5kLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW46IDIuNHJlbSAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDE1cmVtO1xyXG4gIH1cclxuXHJcbiAgLnB1cmNoYXNlLWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgIG1hcmdpbjogMi40cmVtIC0wLjVyZW07XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgZmxleDogMCAxIDMzJTtcclxuICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5udWxsaWZ5LWJsb2NrLXJvdyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICAubnVsbGlmeS1ibG9jay1idXR0b25zIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbjogMXJlbSAwO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgZmxleDogMCAxIDI1JTtcclxuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudGltZS1jYW5jZWwtYmxvY2stcm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuICAgIC50aW1lLWNhbmNlbC1ibG9jay1xdWVzdGlvbiB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0LWJsb2NrIHtcclxuICAgICAgd2lkdGg6IDI1JTtcclxuICAgIH1cclxuXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnRpbWUtY2FuY2VsLWJsb2NrLWJ1dHRvbnMge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgbWFyZ2luOiAxcmVtIDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgYnV0dG9uIHtcclxuICAgICAgICBmbGV4OiAwIDEgMjUlO1xyXG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4ucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHBhZGRpbmc6IDAgM3JlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDNyZW07XHJcblxyXG4gIC5wcm9ncmVzcy1iYXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAtMC43cmVtO1xyXG4gICAgbGVmdDogMDtcclxuICAgIG1hcmdpbjogMCAzcmVtO1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDZyZW0pO1xyXG4gICAgaGVpZ2h0OiAwLjdyZW07XHJcblxyXG4gICAgLnByb2dyZXNzLWJhci1mdWxsIHtcclxuICAgICAgaGVpZ2h0OiAwLjdyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucHJvZ3Jlc3MtbGFiZWxzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcblxyXG4gIC5wcm9ncmVzcy10aW1lIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogLTNyZW07XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, OnInit, OnDestroy, NgZone, HostListener} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Location} from '@angular/common';\r\nimport {IntToMoneyPipe} from '../_helpers/pipes/int-to-money.pipe';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Component({\r\n selector: 'app-purchase',\r\n templateUrl: './purchase.component.html',\r\n styleUrls: ['./purchase.component.scss']\r\n})\r\nexport class PurchaseComponent implements OnInit, OnDestroy {\r\n\r\n isOpen = false;\r\n localAliases = [];\r\n\r\n currentWalletId;\r\n newPurchase = false;\r\n parentRouting;\r\n subRouting;\r\n historyBlock;\r\n\r\n purchaseForm = new FormGroup({\r\n description: new FormControl('', Validators.required),\r\n seller: new FormControl('', [Validators.required, (g: FormControl) => {\r\n if (g.value === this.variablesService.currentWallet.address) {\r\n return {'address_same': true};\r\n }\r\n return null;\r\n }, (g: FormControl) => {\r\n this.localAliases = [];\r\n if (g.value) {\r\n if (g.value.indexOf('@') !== 0) {\r\n this.isOpen = false;\r\n this.backend.validateAddress(g.value, (valid_status) => {\r\n this.ngZone.run(() => {\r\n if (valid_status === false) {\r\n g.setErrors(Object.assign({'address_not_valid': true}, g.errors));\r\n } else {\r\n if (g.hasError('address_not_valid')) {\r\n delete g.errors['address_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n return (g.hasError('address_not_valid')) ? {'address_not_valid': true} : null;\r\n } else {\r\n this.isOpen = true;\r\n this.localAliases = this.variablesService.aliases.filter((item) => {\r\n return item.name.indexOf(g.value) > -1;\r\n });\r\n if (!(/^@?[a-z0-9\\.\\-]{6,25}$/.test(g.value))) {\r\n g.setErrors(Object.assign({'alias_not_valid': true}, g.errors));\r\n } else {\r\n this.backend.getAliasByName(g.value.replace('@', ''), (alias_status, alias_data) => {\r\n this.ngZone.run(() => {\r\n if (alias_status) {\r\n if (alias_data.address === this.variablesService.currentWallet.address) {\r\n g.setErrors(Object.assign({'address_same': true}, g.errors));\r\n }\r\n if (g.hasError('alias_not_valid')) {\r\n delete g.errors['alias_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n } else {\r\n g.setErrors(Object.assign({'alias_not_valid': true}, g.errors));\r\n }\r\n });\r\n });\r\n }\r\n return (g.hasError('alias_not_valid')) ? {'alias_not_valid': true} : null;\r\n }\r\n }\r\n return null;\r\n }]),\r\n amount: new FormControl(null, [Validators.required, (g: FormControl) => {\r\n if (parseFloat(g.value) === 0) {\r\n return {'amount_zero': true};\r\n }\r\n return null;\r\n }]),\r\n yourDeposit: new FormControl(null, Validators.required),\r\n sellerDeposit: new FormControl(null, Validators.required),\r\n sameAmount: new FormControl({value: false, disabled: false}),\r\n comment: new FormControl(''),\r\n fee: new FormControl(this.variablesService.default_fee),\r\n time: new FormControl({value: 12, disabled: false}),\r\n timeCancel: new FormControl({value: 12, disabled: false}),\r\n payment: new FormControl('')\r\n });\r\n\r\n additionalOptions = false;\r\n currentContract = null;\r\n heightAppEvent;\r\n showTimeSelect = false;\r\n showNullify = false;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private location: Location,\r\n private intToMoneyPipe: IntToMoneyPipe\r\n ) {\r\n }\r\n\r\n checkAndChangeHistory() {\r\n if (this.currentContract.state === 201) {\r\n this.historyBlock = this.variablesService.currentWallet.history.find(item => item.tx_type === 8 && item.contract[0].contract_id === this.currentContract.contract_id && item.contract[0].is_a === this.currentContract.is_a);\r\n } else if (this.currentContract.state === 601) {\r\n this.historyBlock = this.variablesService.currentWallet.history.find(item => item.tx_type === 12 && item.contract[0].contract_id === this.currentContract.contract_id && item.contract[0].is_a === this.currentContract.is_a);\r\n }\r\n }\r\n\r\n addressMouseDown(e) {\r\n if (e['button'] === 0 && this.purchaseForm.get('seller').value && this.purchaseForm.get('seller').value.indexOf('@') === 0) {\r\n this.isOpen = true;\r\n }\r\n }\r\n\r\n setAlias(alias) {\r\n this.purchaseForm.get('seller').setValue(alias);\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(targetElement) {\r\n if (targetElement.id !== 'purchase-seller' && this.isOpen) {\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(params => {\r\n this.currentWalletId = params['id'];\r\n });\r\n this.subRouting = this.route.params.subscribe(params => {\r\n if (params.hasOwnProperty('id')) {\r\n this.currentContract = this.variablesService.currentWallet.getContract(params['id']);\r\n this.purchaseForm.controls['seller'].setValidators([]);\r\n this.purchaseForm.updateValueAndValidity();\r\n this.purchaseForm.setValue({\r\n description: this.currentContract.private_detailes.t,\r\n seller: this.currentContract.private_detailes.b_addr,\r\n amount: this.intToMoneyPipe.transform(this.currentContract.private_detailes.to_pay),\r\n yourDeposit: this.intToMoneyPipe.transform(this.currentContract.private_detailes.a_pledge),\r\n sellerDeposit: this.intToMoneyPipe.transform(this.currentContract.private_detailes.b_pledge),\r\n sameAmount: this.currentContract.private_detailes.to_pay.isEqualTo(this.currentContract.private_detailes.b_pledge),\r\n comment: this.currentContract.private_detailes.c,\r\n fee: this.variablesService.default_fee,\r\n time: 12,\r\n timeCancel: 12,\r\n payment: this.currentContract.payment_id\r\n });\r\n this.purchaseForm.get('sameAmount').disable();\r\n this.newPurchase = false;\r\n\r\n if (this.currentContract.is_new) {\r\n if (this.currentContract.is_a && this.currentContract.state === 2) {\r\n this.currentContract.state = 120;\r\n }\r\n if (this.currentContract.state === 130 && this.currentContract.cancel_expiration_time !== 0 && this.currentContract.cancel_expiration_time < this.variablesService.exp_med_ts) {\r\n this.currentContract.state = 2;\r\n }\r\n this.variablesService.settings.viewedContracts = (this.variablesService.settings.viewedContracts) ? this.variablesService.settings.viewedContracts : [];\r\n let findViewedCont = false;\r\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\r\n if (this.variablesService.settings.viewedContracts[j].contract_id === this.currentContract.contract_id && this.variablesService.settings.viewedContracts[j].is_a === this.currentContract.is_a) {\r\n this.variablesService.settings.viewedContracts[j].state = this.currentContract.state;\r\n findViewedCont = true;\r\n break;\r\n }\r\n }\r\n if (!findViewedCont) {\r\n this.variablesService.settings.viewedContracts.push({\r\n contract_id: this.currentContract.contract_id,\r\n is_a: this.currentContract.is_a,\r\n state: this.currentContract.state\r\n });\r\n }\r\n this.currentContract.is_new = false;\r\n setTimeout(() => {\r\n this.variablesService.currentWallet.recountNewContracts();\r\n }, 0);\r\n }\r\n this.checkAndChangeHistory();\r\n } else {\r\n this.newPurchase = true;\r\n }\r\n });\r\n this.heightAppEvent = this.variablesService.getHeightAppEvent.subscribe((newHeight: number) => {\r\n if (this.currentContract && this.currentContract.state === 201 && this.currentContract.height !== 0 && (newHeight - this.currentContract.height) >= 10) {\r\n this.currentContract.state = 2;\r\n this.currentContract.is_new = true;\r\n this.variablesService.currentWallet.recountNewContracts();\r\n } else if (this.currentContract && this.currentContract.state === 601 && this.currentContract.height !== 0 && (newHeight - this.currentContract.height) >= 10) {\r\n this.currentContract.state = 6;\r\n this.currentContract.is_new = true;\r\n this.variablesService.currentWallet.recountNewContracts();\r\n }\r\n });\r\n }\r\n\r\n toggleOptions() {\r\n this.additionalOptions = !this.additionalOptions;\r\n }\r\n\r\n getProgressBarWidth() {\r\n let progress = '0';\r\n if (!this.newPurchase) {\r\n if (this.currentContract) {\r\n if (this.currentContract.state === 1) {\r\n progress = '10%';\r\n }\r\n if (this.currentContract.state === 201) {\r\n progress = '25%';\r\n }\r\n if ([120, 2].indexOf(this.currentContract.state) !== -1) {\r\n progress = '50%';\r\n }\r\n if ([5, 601].indexOf(this.currentContract.state) !== -1) {\r\n progress = '75%';\r\n }\r\n if ([110, 130, 140, 3, 4, 6].indexOf(this.currentContract.state) !== -1) {\r\n progress = '100%';\r\n }\r\n }\r\n }\r\n return progress;\r\n }\r\n\r\n sameAmountChange() {\r\n if (this.purchaseForm.get('sameAmount').value) {\r\n this.purchaseForm.get('sellerDeposit').clearValidators();\r\n this.purchaseForm.get('sellerDeposit').updateValueAndValidity();\r\n } else {\r\n this.purchaseForm.get('sellerDeposit').setValidators([Validators.required]);\r\n this.purchaseForm.get('sellerDeposit').updateValueAndValidity();\r\n }\r\n }\r\n\r\n createPurchase() {\r\n if (this.purchaseForm.valid) {\r\n const sellerDeposit = this.purchaseForm.get('sameAmount').value ? this.purchaseForm.get('amount').value : this.purchaseForm.get('sellerDeposit').value;\r\n if (this.purchaseForm.get('seller').value.indexOf('@') !== 0) {\r\n this.backend.createProposal(\r\n this.variablesService.currentWallet.wallet_id,\r\n this.purchaseForm.get('description').value,\r\n this.purchaseForm.get('comment').value,\r\n this.variablesService.currentWallet.address,\r\n this.purchaseForm.get('seller').value,\r\n this.purchaseForm.get('amount').value,\r\n this.purchaseForm.get('yourDeposit').value,\r\n sellerDeposit,\r\n this.purchaseForm.get('time').value,\r\n this.purchaseForm.get('payment').value,\r\n (create_status) => {\r\n if (create_status) {\r\n this.back();\r\n }\r\n });\r\n } else {\r\n this.backend.getAliasByName(this.purchaseForm.get('seller').value.replace('@', ''), (alias_status, alias_data) => {\r\n this.ngZone.run(() => {\r\n if (alias_status === false) {\r\n this.ngZone.run(() => {\r\n this.purchaseForm.get('seller').setErrors({'alias_not_valid': true});\r\n });\r\n } else {\r\n this.backend.createProposal(\r\n this.variablesService.currentWallet.wallet_id,\r\n this.purchaseForm.get('description').value,\r\n this.purchaseForm.get('comment').value,\r\n this.variablesService.currentWallet.address,\r\n alias_data.address,\r\n this.purchaseForm.get('amount').value,\r\n this.purchaseForm.get('yourDeposit').value,\r\n sellerDeposit,\r\n this.purchaseForm.get('time').value,\r\n this.purchaseForm.get('payment').value,\r\n (create_status) => {\r\n if (create_status) {\r\n this.back();\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n acceptState() {\r\n this.backend.acceptProposal(this.currentWalletId, this.currentContract.contract_id, (accept_status) => {\r\n if (accept_status) {\r\n this.modalService.prepareModal('info', 'PURCHASE.ACCEPT_STATE_WAIT_BIG');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n ignoredContract() {\r\n this.variablesService.settings.notViewedContracts = (this.variablesService.settings.notViewedContracts) ? this.variablesService.settings.notViewedContracts : [];\r\n let findViewedCont = false;\r\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\r\n if (this.variablesService.settings.notViewedContracts[j].contract_id === this.currentContract.contract_id && this.variablesService.settings.notViewedContracts[j].is_a === this.currentContract.is_a) {\r\n this.variablesService.settings.notViewedContracts[j].state = 110;\r\n this.variablesService.settings.notViewedContracts[j].time = this.currentContract.expiration_time;\r\n findViewedCont = true;\r\n break;\r\n }\r\n }\r\n if (!findViewedCont) {\r\n this.variablesService.settings.notViewedContracts.push({\r\n contract_id: this.currentContract.contract_id,\r\n is_a: this.currentContract.is_a,\r\n state: 110,\r\n time: this.currentContract.expiration_time\r\n });\r\n }\r\n this.currentContract.is_new = true;\r\n this.currentContract.state = 110;\r\n this.currentContract.time = this.currentContract.expiration_time;\r\n\r\n this.variablesService.currentWallet.recountNewContracts();\r\n this.modalService.prepareModal('info', 'PURCHASE.IGNORED_ACCEPT');\r\n this.back();\r\n }\r\n\r\n productNotGot() {\r\n this.backend.releaseProposal(this.currentWalletId, this.currentContract.contract_id, 'REL_B', (release_status) => {\r\n if (release_status) {\r\n this.modalService.prepareModal('info', 'PURCHASE.BURN_PROPOSAL');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n dealsDetailsFinish() {\r\n this.backend.releaseProposal(this.currentWalletId, this.currentContract.contract_id, 'REL_N', (release_status) => {\r\n if (release_status) {\r\n this.modalService.prepareModal('success', 'PURCHASE.SUCCESS_FINISH_PROPOSAL');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n dealsDetailsCancel() {\r\n this.backend.requestCancelContract(this.currentWalletId, this.currentContract.contract_id, this.purchaseForm.get('timeCancel').value, (cancel_status) => {\r\n if (cancel_status) {\r\n this.modalService.prepareModal('info', 'PURCHASE.SEND_CANCEL_PROPOSAL');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n dealsDetailsDontCanceling() {\r\n this.variablesService.settings.notViewedContracts = this.variablesService.settings.notViewedContracts ? this.variablesService.settings.notViewedContracts : [];\r\n let findViewedCont = false;\r\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\r\n if (this.variablesService.settings.notViewedContracts[j].contract_id === this.currentContract.contract_id && this.variablesService.settings.notViewedContracts[j].is_a === this.currentContract.is_a) {\r\n this.variablesService.settings.notViewedContracts[j].state = 130;\r\n this.variablesService.settings.notViewedContracts[j].time = this.currentContract.cancel_expiration_time;\r\n findViewedCont = true;\r\n break;\r\n }\r\n }\r\n if (!findViewedCont) {\r\n this.variablesService.settings.notViewedContracts.push({\r\n contract_id: this.currentContract.contract_id,\r\n is_a: this.currentContract.is_a,\r\n state: 130,\r\n time: this.currentContract.cancel_expiration_time\r\n });\r\n }\r\n this.currentContract.is_new = true;\r\n this.currentContract.state = 130;\r\n this.currentContract.time = this.currentContract.cancel_expiration_time;\r\n this.variablesService.currentWallet.recountNewContracts();\r\n this.modalService.prepareModal('info', 'PURCHASE.IGNORED_CANCEL');\r\n this.back();\r\n }\r\n\r\n dealsDetailsSellerCancel() {\r\n this.backend.acceptCancelContract(this.currentWalletId, this.currentContract.contract_id, (accept_status) => {\r\n if (accept_status) {\r\n this.modalService.prepareModal('info', 'PURCHASE.DEALS_CANCELED_WAIT');\r\n this.back();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n this.subRouting.unsubscribe();\r\n this.heightAppEvent.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n \\\"qr-code\\\"\\r\\n
    \\r\\n
    {{variablesService.currentWallet.address}}
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.wrap-qr {\\n display: flex;\\n flex-direction: column;\\n align-items: center; }\\n\\n.wrap-qr img {\\n margin: 4rem 0; }\\n\\n.wrap-qr .wrap-address {\\n display: flex;\\n align-items: center;\\n font-size: 1.4rem;\\n line-height: 2.7rem; }\\n\\n.wrap-qr .wrap-address .btn-copy-address {\\n margin-left: 1.2rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.wrap-qr .wrap-address .btn-copy-address.copy {\\n -webkit-mask: url('copy.svg') no-repeat center;\\n mask: url('copy.svg') no-repeat center; }\\n\\n.wrap-qr .wrap-address .btn-copy-address.copy:hover {\\n opacity: 0.75; }\\n\\n.wrap-qr .wrap-address .btn-copy-address.copied {\\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\\n mask: url('complete-testwallet.svg') no-repeat center; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVjZWl2ZS9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxyZWNlaXZlXFxyZWNlaXZlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixtQkFBbUIsRUFBQTs7QUFIckI7SUFNSSxjQUFjLEVBQUE7O0FBTmxCO0lBVUksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsbUJBQW1CLEVBQUE7O0FBYnZCO01BZ0JNLG1CQUFtQjtNQUNuQixhQUFhO01BQ2IsY0FBYyxFQUFBOztBQWxCcEI7UUFxQlEsOENBQXVEO2dCQUF2RCxzQ0FBdUQsRUFBQTs7QUFyQi9EO1VBd0JVLGFBQWEsRUFBQTs7QUF4QnZCO1FBNkJRLDZEQUFzRTtnQkFBdEUscURBQXNFLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9yZWNlaXZlL3JlY2VpdmUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi53cmFwLXFyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgaW1nIHtcclxuICAgIG1hcmdpbjogNHJlbSAwO1xyXG4gIH1cclxuXHJcbiAgLndyYXAtYWRkcmVzcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuXHJcbiAgICAuYnRuLWNvcHktYWRkcmVzcyB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07XHJcbiAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgIGhlaWdodDogMS43cmVtO1xyXG5cclxuICAgICAgJi5jb3B5IHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2NvcHkuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgIG9wYWNpdHk6IDAuNzU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmNvcGllZCB7XHJcbiAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9jb21wbGV0ZS10ZXN0d2FsbGV0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */\"","import {Component, OnInit, OnDestroy} from '@angular/core';\r\nimport QRCode from 'qrcode';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {RCV_ADDR_QR_SCALE} from '../_shared/constants';\r\n\r\n@Component({\r\n selector: 'app-receive',\r\n templateUrl: './receive.component.html',\r\n styleUrls: ['./receive.component.scss']\r\n})\r\nexport class ReceiveComponent implements OnInit, OnDestroy {\r\n qrImageSrc: string;\r\n parentRouting;\r\n copyAnimation = false;\r\n copyAnimationTimeout;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private backend: BackendService,\r\n public variablesService: VariablesService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(() => {\r\n QRCode.toDataURL(this.variablesService.currentWallet.address, {\r\n width: 106 * RCV_ADDR_QR_SCALE,\r\n height: 106 * RCV_ADDR_QR_SCALE\r\n }).then(url => {\r\n this.qrImageSrc = url;\r\n }).catch(err => {\r\n console.error(err);\r\n });\r\n });\r\n }\r\n\r\n public copyAddress() {\r\n this.backend.setClipboard(this.variablesService.currentWallet.address);\r\n this.copyAnimation = true;\r\n this.copyAnimationTimeout = window.setTimeout(() => {\r\n this.copyAnimation = false;\r\n }, 2000);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n clearTimeout(this.copyAnimationTimeout);\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\\r\\n {{ 'BREADCRUMBS.RESTORE_WALLET' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    = variablesService.maxWalletNameLength\\\">\\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.KEY_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.KEY_NOT_VALID' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n {{ 'RESTORE_WALLET.FORM_ERRORS.INCORRECT_PASSWORD' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'RESTORE_WALLET.OK' | translate }}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n\"","module.exports = \":host {\\n position: relative; }\\n\\n.form-restore {\\n margin: 2.4rem 0;\\n width: 100%; }\\n\\n.form-restore .input-block.half-block {\\n width: 50%; }\\n\\n.form-restore .wrap-buttons {\\n display: flex;\\n margin: 2.5rem -0.7rem;\\n width: 50%; }\\n\\n.form-restore .wrap-buttons button {\\n margin: 0 0.7rem; }\\n\\n.form-restore .wrap-buttons button.transparent-button {\\n flex-basis: 50%; }\\n\\n.form-restore .wrap-buttons button.select-button {\\n flex-basis: 60%; }\\n\\n.form-restore .wrap-buttons button.create-button {\\n flex: 1 1 50%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVzdG9yZS13YWxsZXQvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxccmVzdG9yZS13YWxsZXRcXHJlc3RvcmUtd2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVcsRUFBQTs7QUFGYjtJQU9NLFVBQVUsRUFBQTs7QUFQaEI7SUFZSSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLFVBQVUsRUFBQTs7QUFkZDtNQWlCTSxnQkFBZ0IsRUFBQTs7QUFqQnRCO1FBb0JRLGVBQWUsRUFBQTs7QUFwQnZCO1FBd0JRLGVBQWUsRUFBQTs7QUF4QnZCO1FBNEJRLGFBQWEsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3Jlc3RvcmUtd2FsbGV0L3Jlc3RvcmUtd2FsbGV0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmZvcm0tcmVzdG9yZSB7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgLmlucHV0LWJsb2NrIHtcclxuXHJcbiAgICAmLmhhbGYtYmxvY2sge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLndyYXAtYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luOiAyLjVyZW0gLTAuN3JlbTtcclxuICAgIHdpZHRoOiA1MCU7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgbWFyZ2luOiAwIDAuN3JlbTtcclxuXHJcbiAgICAgICYudHJhbnNwYXJlbnQtYnV0dG9uIHtcclxuICAgICAgICBmbGV4LWJhc2lzOiA1MCU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuc2VsZWN0LWJ1dHRvbiB7XHJcbiAgICAgICAgZmxleC1iYXNpczogNjAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmNyZWF0ZS1idXR0b24ge1xyXG4gICAgICAgIGZsZXg6IDEgMSA1MCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { ModalService } from '../_helpers/services/modal.service';\r\nimport { Wallet } from '../_helpers/models/wallet.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subject } from 'rxjs/internal/Subject';\r\nimport { debounceTime, distinctUntilChanged, pairwise, startWith, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-restore-wallet',\r\n templateUrl: './restore-wallet.component.html',\r\n styleUrls: ['./restore-wallet.component.scss'],\r\n})\r\nexport class RestoreWalletComponent implements OnInit, OnDestroy {\r\n restoreForm = new FormGroup(\r\n {\r\n name: new FormControl('', [\r\n Validators.required,\r\n (g: FormControl) => {\r\n for (let i = 0; i < this.variablesService.wallets.length; i++) {\r\n if (g.value === this.variablesService.wallets[i].name) {\r\n return { duplicate: true };\r\n }\r\n }\r\n return null;\r\n },\r\n ]),\r\n key: new FormControl('', Validators.required),\r\n password: new FormControl(\r\n '',\r\n Validators.pattern(this.variablesService.pattern)\r\n ),\r\n confirm: new FormControl(''),\r\n seedPassword: new FormControl('', Validators.pattern(this.variablesService.pattern)),\r\n },\r\n function (g: FormGroup) {\r\n return g.get('password').value === g.get('confirm').value\r\n ? null\r\n : { confirm_mismatch: true };\r\n }\r\n );\r\n\r\n wallet = {\r\n id: '',\r\n };\r\n\r\n walletSaved = false;\r\n walletSavedName = '';\r\n progressWidth = '9rem';\r\n seedPhraseInfo = null;\r\n unsubscribeAll = new Subject();\r\n\r\n constructor(\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.checkValidSeedPhrasePassword();\r\n this.changeDetectionSeedPhrasePassword();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next(true);\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n changeDetectionSeedPhrasePassword() {\r\n this.restoreForm.controls.seedPassword.valueChanges\r\n .pipe(startWith(null), pairwise(), takeUntil(this.unsubscribeAll))\r\n .subscribe(() => {\r\n this.checkValidSeedPhrasePassword();\r\n });\r\n this.restoreForm.controls.key.valueChanges\r\n .pipe(startWith(null), pairwise(), takeUntil(this.unsubscribeAll))\r\n .subscribe(() => {\r\n this.checkValidSeedPhrasePassword();\r\n });\r\n }\r\n\r\n checkValidSeedPhrasePassword() {\r\n const seed_password = this.restoreForm.controls.seedPassword.value;\r\n const seed_phrase = this.restoreForm.controls.key.value;\r\n this.backend.getSeedPhraseInfo({seed_phrase, seed_password}, (status, data) => {\r\n this.ngZone.run(() => {\r\n this.seedPhraseInfo = data;\r\n });\r\n });\r\n }\r\n\r\n createWallet() {\r\n this.ngZone.run(() => {\r\n this.progressWidth = '100%';\r\n this.runWallet();\r\n });\r\n }\r\n\r\n saveWallet() {\r\n if (\r\n this.restoreForm.valid &&\r\n this.restoreForm.get('name').value.length <=\r\n this.variablesService.maxWalletNameLength\r\n ) {\r\n this.backend.isValidRestoreWalletText(\r\n {\r\n seed_phrase: this.restoreForm.get('key').value,\r\n seed_password: this.restoreForm.get('seedPassword').value,\r\n },\r\n (valid_status, valid_data) => {\r\n if (valid_data !== 'TRUE') {\r\n this.ngZone.run(() => {\r\n this.restoreForm.get('key').setErrors({ key_not_valid: true });\r\n });\r\n } else {\r\n this.backend.saveFileDialog(\r\n this.translate.instant('RESTORE_WALLET.CHOOSE_PATH'),\r\n '*',\r\n this.variablesService.settings.default_path,\r\n (save_status, save_data) => {\r\n if (save_status) {\r\n this.variablesService.settings.default_path = save_data.path.substr(\r\n 0,\r\n save_data.path.lastIndexOf('/')\r\n );\r\n this.walletSavedName = save_data.path.substr(\r\n save_data.path.lastIndexOf('/') + 1,\r\n save_data.path.length - 1\r\n );\r\n this.backend.restoreWallet(\r\n save_data.path,\r\n this.restoreForm.get('password').value,\r\n this.restoreForm.get('key').value,\r\n this.restoreForm.get('seedPassword').value,\r\n (restore_status, restore_data) => {\r\n if (restore_status) {\r\n this.wallet.id = restore_data.wallet_id;\r\n this.variablesService.opening_wallet = new Wallet(\r\n restore_data.wallet_id,\r\n this.restoreForm.get('name').value,\r\n this.restoreForm.get('password').value,\r\n restore_data['wi'].path,\r\n restore_data['wi'].address,\r\n restore_data['wi'].balance,\r\n restore_data['wi'].unlocked_balance,\r\n restore_data['wi'].mined_total,\r\n restore_data['wi'].tracking_hey\r\n );\r\n this.variablesService.opening_wallet.is_auditable =\r\n restore_data['wi'].is_auditable;\r\n this.variablesService.opening_wallet.is_watch_only =\r\n restore_data['wi'].is_watch_only;\r\n this.variablesService.opening_wallet.currentPage = 1;\r\n this.variablesService.opening_wallet.alias = this.backend.getWalletAlias(\r\n this.variablesService.opening_wallet.address\r\n );\r\n this.variablesService.opening_wallet.pages = new Array(\r\n 1\r\n ).fill(1);\r\n this.variablesService.opening_wallet.totalPages = 1;\r\n this.variablesService.opening_wallet.currentPage = 1;\r\n this.variablesService.opening_wallet.total_history_item = 0;\r\n this.variablesService.opening_wallet.restore = true;\r\n if (\r\n restore_data.recent_history &&\r\n restore_data.recent_history.history\r\n ) {\r\n this.variablesService.opening_wallet.totalPages = Math.ceil(\r\n restore_data.recent_history.total_history_items /\r\n this.variablesService.count\r\n );\r\n this.variablesService.opening_wallet.totalPages >\r\n this.variablesService.maxPages\r\n ? (this.variablesService.opening_wallet.pages = new Array(\r\n 5\r\n )\r\n .fill(1)\r\n .map((value, index) => value + index))\r\n : (this.variablesService.opening_wallet.pages = new Array(\r\n this.variablesService.opening_wallet.totalPages\r\n )\r\n .fill(1)\r\n .map((value, index) => value + index));\r\n this.variablesService.opening_wallet.prepareHistory(\r\n restore_data.recent_history.history\r\n );\r\n }\r\n this.backend.getContracts(\r\n this.variablesService.opening_wallet.wallet_id,\r\n (contracts_status, contracts_data) => {\r\n if (\r\n contracts_status &&\r\n contracts_data.hasOwnProperty('contracts')\r\n ) {\r\n this.ngZone.run(() => {\r\n this.variablesService.opening_wallet.prepareContractsAfterOpen(\r\n contracts_data.contracts,\r\n this.variablesService.exp_med_ts,\r\n this.variablesService.height_app,\r\n this.variablesService.settings\r\n .viewedContracts,\r\n this.variablesService.settings\r\n .notViewedContracts\r\n );\r\n });\r\n }\r\n }\r\n );\r\n this.ngZone.run(() => {\r\n this.walletSaved = true;\r\n this.progressWidth = '50%';\r\n });\r\n } else {\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'RESTORE_WALLET.NOT_CORRECT_FILE_OR_PASSWORD'\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n runWallet() {\r\n // add flag when wallet was restored form seed\r\n this.variablesService.after_sync_request[this.wallet.id] = true;\r\n let exists = false;\r\n this.variablesService.wallets.forEach((wallet) => {\r\n if (wallet.address === this.variablesService.opening_wallet.address) {\r\n exists = true;\r\n }\r\n });\r\n if (!exists) {\r\n this.backend.runWallet(this.wallet.id, (run_status, run_data) => {\r\n if (run_status) {\r\n this.variablesService.wallets.push(\r\n this.variablesService.opening_wallet\r\n );\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet.id]);\r\n });\r\n } else {\r\n console.log(run_data['error_code']);\r\n }\r\n });\r\n } else {\r\n this.variablesService.opening_wallet = null;\r\n this.modalService.prepareModal(\r\n 'error',\r\n 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN'\r\n );\r\n this.backend.closeWallet(this.wallet.id, () => {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n\\r\\n\\r\\n\"","module.exports = \":host {\\n position: relative; }\\n\\n.content {\\n padding: 3.2rem 3rem 3rem; }\\n\\n.scrolled-content, .content {\\n height: 100%;\\n overflow-y: auto; }\\n\\n.mt-2 {\\n margin-top: 2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VlZC1waHJhc2UvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcc2VlZC1waHJhc2VcXHNlZWQtcGhyYXNlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UseUJBQXlCLEVBQUE7O0FBRTNCO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQixFQUFBOztBQUdsQjtFQUNFLGdCQUFnQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2VlZC1waHJhc2Uvc2VlZC1waHJhc2UuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uY29udGVudCB7XHJcbiAgcGFkZGluZzogMy4ycmVtIDNyZW0gM3JlbTtcclxufVxyXG4uc2Nyb2xsZWQtY29udGVudCwgLmNvbnRlbnQge1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG59XHJcblxyXG4ubXQtMiB7XHJcbiAgbWFyZ2luLXRvcDogMnJlbTtcclxufVxyXG5cclxuIl19 */\"","import {Component, NgZone, OnDestroy, OnInit} from '@angular/core';\r\nimport {Location} from '@angular/common';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-seed-phrase',\r\n templateUrl: './seed-phrase.component.html',\r\n styleUrls: ['./seed-phrase.component.scss']\r\n})\r\nexport class SeedPhraseComponent implements OnInit, OnDestroy {\r\n\r\n queryRouting;\r\n seedPhrase = '';\r\n showSeed = false;\r\n wallet_id: number;\r\n seedPhraseCopied = false;\r\n progressWidth = '66%';\r\n\r\n detailsForm = new FormGroup({\r\n name: new FormControl('', [\r\n Validators.required,\r\n (g: FormControl) => {\r\n for (let i = 0; i < this.variablesService.wallets.length; i++) {\r\n if (g.value === this.variablesService.wallets[i].name) {\r\n if (\r\n this.variablesService.wallets[i].wallet_id ===\r\n this.variablesService.currentWallet.wallet_id\r\n ) {\r\n return { same: true };\r\n } else {\r\n return { duplicate: true };\r\n }\r\n }\r\n }\r\n return null;\r\n },\r\n ]),\r\n path: new FormControl(''),\r\n });\r\n\r\n seedPhraseForm = new FormGroup(\r\n {\r\n password: new FormControl(\r\n '',\r\n Validators.pattern(this.variablesService.pattern)\r\n ),\r\n confirmPassword: new FormControl(\r\n '',\r\n Validators.pattern(this.variablesService.pattern)\r\n ),\r\n },\r\n { validators: this.checkPasswords }\r\n );\r\n\r\n checkPasswords(group: FormGroup) {\r\n const pass = group.controls.password.value;\r\n const confirmPass = group.controls.confirmPassword.value;\r\n\r\n return pass === confirmPass ? null : { notSame: true };\r\n }\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private location: Location,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.showSeed = false;\r\n this.getWalletId();\r\n this.setWalletInfoNamePath();\r\n }\r\n\r\n private setWalletInfoNamePath() {\r\n this.detailsForm\r\n .get('name')\r\n .setValue(this.variablesService.opening_wallet.name);\r\n this.detailsForm\r\n .get('path')\r\n .setValue(this.variablesService.opening_wallet.path);\r\n }\r\n\r\n private getWalletId() {\r\n this.queryRouting = this.route.queryParams.subscribe(params => {\r\n if (params.wallet_id) {\r\n this.wallet_id = params.wallet_id;\r\n }\r\n });\r\n }\r\n\r\n runWallet() {\r\n let exists = false;\r\n this.variablesService.wallets.forEach((wallet) => {\r\n if (wallet.address === this.variablesService.opening_wallet.address) {\r\n exists = true;\r\n }\r\n });\r\n if (!exists) {\r\n this.backend.runWallet(this.wallet_id, (run_status, run_data) => {\r\n if (run_status) {\r\n this.variablesService.wallets.push(this.variablesService.opening_wallet);\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet_id]);\r\n });\r\n } else {\r\n console.log(run_data['error_code']);\r\n }\r\n });\r\n } else {\r\n this.variablesService.opening_wallet = null;\r\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\r\n this.backend.closeWallet(this.wallet_id, () => {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n });\r\n }\r\n }\r\n\r\n copySeedPhrase() {\r\n this.backend.setClipboard(this.seedPhrase, () => {\r\n this.ngZone.run(() => {\r\n this.seedPhraseCopied = true;\r\n });\r\n });\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n showSeedPhrase() {\r\n this.showSeed = true;\r\n this.progressWidth = '100%';\r\n }\r\n\r\n onSubmitSeed() {\r\n if (this.seedPhraseForm.valid) {\r\n this.showSeedPhrase();\r\n const wallet_id = this.wallet_id;\r\n const seed_password = this.seedPhraseForm.controls.password.value;\r\n this.backend.getSmartWalletInfo(\r\n { wallet_id, seed_password },\r\n (status, data) => {\r\n if (data.hasOwnProperty('seed_phrase')) {\r\n this.ngZone.run(() => {\r\n this.seedPhrase = data['seed_phrase'].trim();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.queryRouting.unsubscribe();\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n {{ 'CONFIRM.TITLE' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    {{ 'CONFIRM.MESSAGE.SEND' | translate }}
    \\r\\n
    {{ +form.get('amount').value }} {{variablesService.defaultCurrency}}
    \\r\\n
    \\r\\n
    \\r\\n
    {{ 'CONFIRM.MESSAGE.FROM' | translate }}
    \\r\\n
    {{ variablesService.currentWallet.address }}
    \\r\\n
    \\r\\n
    \\r\\n
    {{ 'CONFIRM.MESSAGE.TO' | translate }}
    \\r\\n
    {{ form.get('address').value }}
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    {{ 'CONFIRM.MESSAGE.COMMENT' | translate }}
    \\r\\n
    {{ form.get('comment').value }}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'LOGIN.FORM_ERRORS.PASS_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'LOGIN.FORM_ERRORS.MISMATCH' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","module.exports = \":host {\\n position: fixed;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: rgba(255, 255, 255, 0.25); }\\n\\n.modal {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n background-position: center;\\n background-size: 200%;\\n padding: 0.3rem 3rem 3rem 3rem;\\n width: 64rem; }\\n\\n.modal .title {\\n padding: 1.4rem 0;\\n font-size: 1.8rem;\\n line-height: 3rem; }\\n\\n.modal .content {\\n display: flex;\\n font-size: 1.4rem; }\\n\\n.modal .content .message-container {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n margin: 1.4rem 3rem 6.2rem 0; }\\n\\n.modal .content .message-container .message-block {\\n display: flex;\\n margin-bottom: 1rem; }\\n\\n.modal .content .message-container .message-block:first-child .message-label {\\n line-height: 4rem; }\\n\\n.modal .content .message-container .message-block:first-child .message-text {\\n line-height: 4rem; }\\n\\n.modal .content .message-container .message-block:last-child {\\n margin-bottom: 0; }\\n\\n.modal .content .message-container .message-block .message-label {\\n min-width: 6.7rem;\\n line-height: 2rem; }\\n\\n.modal .content .message-container .message-block .message-text {\\n overflow-wrap: break-word;\\n margin-left: 4.8rem;\\n width: 43.4rem;\\n line-height: 2rem; }\\n\\n.modal .content .message-container .message-block.confirm-master-pass {\\n width: 100%;\\n margin: 2rem 0; }\\n\\n.modal .content .message-container .message-block.confirm-master-pass .input-block {\\n width: 100%; }\\n\\n.modal .wrapper-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: space-between; }\\n\\n.modal .wrapper-buttons button {\\n width: 100%;\\n max-width: 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VuZC1tb2RhbC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzZW5kLW1vZGFsXFxzZW5kLW1vZGFsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixxQ0FBcUMsRUFBQTs7QUFFdkM7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QiwyQkFBMkI7RUFDM0IscUJBQXFCO0VBQ3JCLDhCQUE4QjtFQUM5QixZQUFZLEVBQUE7O0FBUGQ7SUFVSSxpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQixFQUFBOztBQVpyQjtJQWdCSSxhQUFhO0lBQ2IsaUJBQWlCLEVBQUE7O0FBakJyQjtNQW9CTSxhQUFhO01BQ2Isc0JBQXNCO01BQ3RCLHVCQUF1QjtNQUN2Qix1QkFBdUI7TUFDdkIsNEJBQTRCLEVBQUE7O0FBeEJsQztRQTJCUSxhQUFhO1FBQ2IsbUJBQW1CLEVBQUE7O0FBNUIzQjtVQWlDWSxpQkFBaUIsRUFBQTs7QUFqQzdCO1VBcUNZLGlCQUFpQixFQUFBOztBQXJDN0I7VUEwQ1UsZ0JBQWdCLEVBQUE7O0FBMUMxQjtVQThDVSxpQkFBaUI7VUFDakIsaUJBQWlCLEVBQUE7O0FBL0MzQjtVQW1EVSx5QkFBeUI7VUFDekIsbUJBQW1CO1VBQ25CLGNBQWM7VUFDZCxpQkFBaUIsRUFBQTs7QUF0RDNCO1VBMERVLFdBQVc7VUFDWCxjQUFjLEVBQUE7O0FBM0R4QjtZQTZEWSxXQUFXLEVBQUE7O0FBN0R2QjtJQXFFSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4QixFQUFBOztBQXZFbEM7TUEwRU0sV0FBVztNQUNYLGdCQUFnQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2VuZC1tb2RhbC9zZW5kLW1vZGFsLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XHJcbn1cclxuLm1vZGFsIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCU7XHJcbiAgcGFkZGluZzogMC4zcmVtIDNyZW0gM3JlbSAzcmVtO1xyXG4gIHdpZHRoOiA2NHJlbTtcclxuXHJcbiAgLnRpdGxlIHtcclxuICAgIHBhZGRpbmc6IDEuNHJlbSAwO1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICBsaW5lLWhlaWdodDogM3JlbTtcclxuICB9XHJcblxyXG4gIC5jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmb250LXNpemU6IDEuNHJlbTtcclxuXHJcbiAgICAubWVzc2FnZS1jb250YWluZXIge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbjogMS40cmVtIDNyZW0gNi4ycmVtIDA7XHJcblxyXG4gICAgICAubWVzc2FnZS1ibG9jayB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuXHJcbiAgICAgICAgICAubWVzc2FnZS1sYWJlbCB7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0cmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5tZXNzYWdlLXRleHQge1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNHJlbTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1lc3NhZ2UtbGFiZWwge1xyXG4gICAgICAgICAgbWluLXdpZHRoOiA2LjdyZW07XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMnJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tZXNzYWdlLXRleHQge1xyXG4gICAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0LjhyZW07XHJcbiAgICAgICAgICB3aWR0aDogNDMuNHJlbTtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5jb25maXJtLW1hc3Rlci1wYXNzIHtcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgbWFyZ2luOiAycmVtIDA7XHJcbiAgICAgICAgICAuaW5wdXQtYmxvY2sge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53cmFwcGVyLWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0= */\"","import { Component, OnInit, Output, EventEmitter, Input} from '@angular/core';\r\nimport {FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-send-modal',\r\n templateUrl: './send-modal.component.html',\r\n styleUrls: ['./send-modal.component.scss']\r\n})\r\nexport class SendModalComponent implements OnInit {\r\n\r\n confirmForm = new FormGroup({\r\n password: new FormControl('')\r\n });\r\n\r\n @Input() form: FormGroup;\r\n @Output() confirmed: EventEmitter = new EventEmitter();\r\n\r\n constructor(\r\n public variablesService: VariablesService,\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n if(this.variablesService.appPass) {\r\n this.confirmForm.controls['password'].setValidators([Validators.required]);\r\n this.confirmForm.updateValueAndValidity();\r\n }\r\n }\r\n\r\n confirm() {\r\n if(this.variablesService.appPass) {\r\n if (this.confirmForm.controls['password'].value === '') {\r\n this.confirmForm.controls['password'].setErrors({requiredPass: true});\r\n return;\r\n }\r\n this.confirmForm.controls['password'].setErrors({requiredPass: false});\r\n if (this.variablesService.appPass === this.confirmForm.controls['password'].value) {\r\n this.confirmed.emit(true);\r\n } else {\r\n this.confirmForm.controls['password'].setErrors({passwordNotMatch: true})\r\n }\r\n } else {\r\n this.confirmed.emit(true);\r\n }\r\n }\r\n\r\n onClose() {\r\n this.confirmed.emit(false);\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    {{item.name}}
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{ 'SEND.FORM_ERRORS.ADDRESS_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'SEND.FORM_ERRORS.ADDRESS_NOT_VALID' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'SEND.FORM_ERRORS.ALIAS_NOT_VALID' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'SEND.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    = variablesService.maxCommentLength\\\">\\r\\n {{ 'SEND.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'SEND.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'SEND.FORM_ERRORS.FEE_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'SEND.FORM_ERRORS.FEE_MINIMUM' | translate : {fee: variablesService.default_fee} }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n\"","module.exports = \":host {\\n width: 100%; }\\n\\n.form-send .input-blocks-row {\\n display: flex; }\\n\\n.form-send .input-blocks-row > div {\\n flex-basis: 50%; }\\n\\n.form-send .input-blocks-row > div:first-child {\\n margin-right: 1.5rem; }\\n\\n.form-send .input-blocks-row > div:last-child {\\n margin-left: 1.5rem; }\\n\\n.form-send .send-select {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n font-size: 1.3rem;\\n line-height: 1.3rem;\\n margin: 1.5rem 0 0;\\n padding: 0;\\n width: 100%;\\n max-width: 15rem;\\n height: 1.3rem; }\\n\\n.form-send .send-select .arrow {\\n margin-left: 1rem;\\n width: 0.8rem;\\n height: 0.8rem; }\\n\\n.form-send .send-select .arrow.down {\\n -webkit-mask: url('arrow-down.svg') no-repeat center;\\n mask: url('arrow-down.svg') no-repeat center; }\\n\\n.form-send .send-select .arrow.up {\\n -webkit-mask: url('arrow-up.svg') no-repeat center;\\n mask: url('arrow-up.svg') no-repeat center; }\\n\\n.form-send .additional-details {\\n display: flex;\\n margin-top: 1.5rem;\\n padding: 0.5rem 0 2rem; }\\n\\n.form-send .additional-details > div {\\n flex-basis: 25%; }\\n\\n.form-send .additional-details > div:first-child {\\n padding-left: 1.5rem;\\n padding-right: 1rem; }\\n\\n.form-send .additional-details > div:last-child {\\n padding-left: 1rem;\\n padding-right: 1.5rem; }\\n\\n.form-send .additional-details .checkbox-block {\\n flex-basis: 50%; }\\n\\n.form-send .additional-details .checkbox-block > label {\\n top: 3.5rem; }\\n\\n.form-send .additional-details .checkbox-block.disabled-checkbox-block label {\\n cursor: not-allowed; }\\n\\n.form-send .additional-details .checkbox-block.disabled-checkbox-block label:before {\\n background-color: #556576;\\n border: 0.1rem solid #556576; }\\n\\n.form-send button {\\n margin: 2.4rem 0;\\n width: 100%;\\n max-width: 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2VuZC9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzZW5kXFxzZW5kLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVyxFQUFBOztBQUdiO0VBR0ksYUFBYSxFQUFBOztBQUhqQjtJQU1NLGVBQWUsRUFBQTs7QUFOckI7TUFTUSxvQkFBb0IsRUFBQTs7QUFUNUI7TUFhUSxtQkFBbUIsRUFBQTs7QUFiM0I7RUFtQkksYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLGNBQWMsRUFBQTs7QUE3QmxCO0lBZ0NNLGlCQUFpQjtJQUNqQixhQUFhO0lBQ2IsY0FBYyxFQUFBOztBQWxDcEI7TUFxQ1Esb0RBQTREO2NBQTVELDRDQUE0RCxFQUFBOztBQXJDcEU7TUF5Q1Esa0RBQTBEO2NBQTFELDBDQUEwRCxFQUFBOztBQXpDbEU7RUErQ0ksYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixzQkFBc0IsRUFBQTs7QUFqRDFCO0lBb0RNLGVBQWUsRUFBQTs7QUFwRHJCO01BdURRLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTs7QUF4RDNCO01BNERRLGtCQUFrQjtNQUNsQixxQkFBcUIsRUFBQTs7QUE3RDdCO0lBa0VNLGVBQWUsRUFBQTs7QUFsRXJCO01BcUVRLFdBQVcsRUFBQTs7QUFyRW5CO01BeUVVLG1CQUFtQixFQUFBOztBQXpFN0I7UUEyRVkseUJBQXlCO1FBQ3pCLDRCQUE0QixFQUFBOztBQTVFeEM7RUFvRkksZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NlbmQvc2VuZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmZvcm0tc2VuZCB7XHJcblxyXG4gIC5pbnB1dC1ibG9ja3Mtcm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgPiBkaXYge1xyXG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XHJcblxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2VuZC1zZWxlY3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcclxuICAgIG1hcmdpbjogMS41cmVtIDAgMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICBoZWlnaHQ6IDEuM3JlbTtcclxuXHJcbiAgICAuYXJyb3cge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgICAgd2lkdGg6IDAuOHJlbTtcclxuICAgICAgaGVpZ2h0OiAwLjhyZW07XHJcblxyXG4gICAgICAmLmRvd24ge1xyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1kb3duLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi51cCB7XHJcbiAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2Fycm93LXVwLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZGl0aW9uYWwtZGV0YWlscyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xyXG4gICAgcGFkZGluZzogMC41cmVtIDAgMnJlbTtcclxuXHJcbiAgICA+IGRpdiB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IDI1JTtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jaGVja2JveC1ibG9jayB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IDUwJTtcclxuXHJcbiAgICAgID4gbGFiZWwge1xyXG4gICAgICAgIHRvcDogMy41cmVtO1xyXG4gICAgICB9XHJcbiAgICAgICYuZGlzYWJsZWQtY2hlY2tib3gtYmxvY2sge1xyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICM1NTY1NzY7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidXR0b24ge1xyXG4gICAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAxNXJlbTtcclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, OnInit, OnDestroy, NgZone, HostListener, Input} from '@angular/core';\r\nimport {FormGroup, FormControl, Validators} from '@angular/forms';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {BigNumber} from 'bignumber.js';\r\nimport {MIXIN} from '../_shared/constants'\r\n\r\n@Component({\r\n selector: 'app-send',\r\n templateUrl: './send.component.html',\r\n styleUrls: ['./send.component.scss']\r\n})\r\nexport class SendComponent implements OnInit, OnDestroy {\r\n\r\n isOpen = false;\r\n localAliases = [];\r\n isModalDialogVisible = false;\r\n hideWalletAddress = false;\r\n mixin: number;\r\n\r\n currentWalletId = null;\r\n parentRouting;\r\n sendForm = new FormGroup({\r\n address: new FormControl('', [Validators.required, (g: FormControl) => {\r\n this.localAliases = [];\r\n if (g.value) {\r\n if (g.value.indexOf('@') !== 0) {\r\n this.isOpen = false;\r\n this.backend.validateAddress(g.value, (valid_status) => {\r\n this.ngZone.run(() => {\r\n if (valid_status === false) {\r\n g.setErrors(Object.assign({'address_not_valid': true}, g.errors));\r\n } else {\r\n if (g.hasError('address_not_valid')) {\r\n delete g.errors['address_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n return (g.hasError('address_not_valid')) ? {'address_not_valid': true} : null;\r\n } else {\r\n this.isOpen = true;\r\n this.localAliases = this.variablesService.aliases.filter((item) => {\r\n return item.name.indexOf(g.value) > -1;\r\n });\r\n if (!(/^@?[a-z0-9\\.\\-]{6,25}$/.test(g.value))) {\r\n g.setErrors(Object.assign({'alias_not_valid': true}, g.errors));\r\n } else {\r\n this.backend.getAliasByName(g.value.replace('@', ''), (alias_status) => {\r\n this.ngZone.run(() => {\r\n if (alias_status) {\r\n if (g.hasError('alias_not_valid')) {\r\n delete g.errors['alias_not_valid'];\r\n if (Object.keys(g.errors).length === 0) {\r\n g.setErrors(null);\r\n }\r\n }\r\n } else {\r\n g.setErrors(Object.assign({'alias_not_valid': true}, g.errors));\r\n }\r\n });\r\n });\r\n }\r\n return (g.hasError('alias_not_valid')) ? {'alias_not_valid': true} : null;\r\n }\r\n }\r\n return null;\r\n }]),\r\n amount: new FormControl(null, [Validators.required, (g: FormControl) => {\r\n if (new BigNumber(g.value).eq(0)) {\r\n return {'zero': true};\r\n }\r\n return null;\r\n }]),\r\n comment: new FormControl(''),\r\n mixin: new FormControl(MIXIN, Validators.required),\r\n fee: new FormControl(this.variablesService.default_fee, [Validators.required, (g: FormControl) => {\r\n if ((new BigNumber(g.value)).isLessThan(this.variablesService.default_fee)) {\r\n return {'less_min': true};\r\n }\r\n return null;\r\n }]),\r\n hide: new FormControl(false)\r\n });\r\n additionalOptions = false;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {\r\n }\r\n\r\n addressMouseDown(e) {\r\n if (e['button'] === 0 && this.sendForm.get('address').value && this.sendForm.get('address').value.indexOf('@') === 0) {\r\n this.isOpen = true;\r\n }\r\n }\r\n\r\n setAlias(alias) {\r\n this.sendForm.get('address').setValue(alias);\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(targetElement) {\r\n if (targetElement.id !== 'send-address' && this.isOpen) {\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(params => {\r\n this.currentWalletId = params['id'];\r\n this.mixin = this.variablesService.currentWallet.send_data['mixin'] || MIXIN;\r\n if (this.variablesService.currentWallet.is_auditable) {\r\n this.mixin = 0;\r\n this.sendForm.controls['mixin'].disable();\r\n }\r\n this.hideWalletAddress = this.variablesService.currentWallet.is_auditable && !this.variablesService.currentWallet.is_watch_only;\r\n if (this.hideWalletAddress) {\r\n this.sendForm.controls['hide'].disable();\r\n }\r\n this.sendForm.reset({\r\n address: this.variablesService.currentWallet.send_data['address'],\r\n amount: this.variablesService.currentWallet.send_data['amount'],\r\n comment: this.variablesService.currentWallet.send_data['comment'],\r\n mixin: this.mixin,\r\n fee: this.variablesService.currentWallet.send_data['fee'] || this.variablesService.default_fee,\r\n hide: this.variablesService.currentWallet.send_data['hide'] || false\r\n });\r\n });\r\n }\r\n\r\n showDialog() {\r\n this.isModalDialogVisible = true;\r\n }\r\n\r\n confirmed(confirmed: boolean) {\r\n if (confirmed) {\r\n this.onSend();\r\n }\r\n this.isModalDialogVisible = false;\r\n }\r\n\r\n onSend() {\r\n if (this.sendForm.valid) {\r\n if (this.sendForm.get('address').value.indexOf('@') !== 0) {\r\n this.backend.validateAddress(this.sendForm.get('address').value, (valid_status) => {\r\n if (valid_status === false) {\r\n this.ngZone.run(() => {\r\n this.sendForm.get('address').setErrors({'address_not_valid': true});\r\n });\r\n } else {\r\n this.backend.sendMoney(\r\n this.currentWalletId,\r\n this.sendForm.get('address').value,\r\n this.sendForm.get('amount').value,\r\n this.sendForm.get('fee').value,\r\n this.sendForm.get('mixin').value,\r\n this.sendForm.get('comment').value,\r\n this.sendForm.get('hide').value,\r\n (send_status) => {\r\n if (send_status) {\r\n this.modalService.prepareModal('success', 'SEND.SUCCESS_SENT');\r\n this.variablesService.currentWallet.send_data = {address: null, amount: null, comment: null, mixin: null, fee: null, hide: null};\r\n this.sendForm.reset({address: null, amount: null, comment: null, mixin: this.mixin, fee: this.variablesService.default_fee, hide: false});\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n this.backend.getAliasByName(this.sendForm.get('address').value.replace('@', ''), (alias_status, alias_data) => {\r\n this.ngZone.run(() => {\r\n if (alias_status === false) {\r\n this.ngZone.run(() => {\r\n this.sendForm.get('address').setErrors({'alias_not_valid': true});\r\n });\r\n } else {\r\n this.backend.sendMoney(\r\n this.currentWalletId,\r\n alias_data.address, // this.sendForm.get('address').value,\r\n this.sendForm.get('amount').value,\r\n this.sendForm.get('fee').value,\r\n this.sendForm.get('mixin').value,\r\n this.sendForm.get('comment').value,\r\n this.sendForm.get('hide').value,\r\n (send_status) => {\r\n if (send_status) {\r\n this.modalService.prepareModal('success', 'SEND.SUCCESS_SENT');\r\n this.variablesService.currentWallet.send_data = {address: null, amount: null, comment: null, mixin: null, fee: null, hide: null};\r\n this.sendForm.reset({address: null, amount: null, comment: null, mixin: this.mixin, fee: this.variablesService.default_fee, hide: false});\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n toggleOptions() {\r\n this.additionalOptions = !this.additionalOptions;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n this.variablesService.currentWallet.send_data = {\r\n address: this.sendForm.get('address').value,\r\n amount: this.sendForm.get('amount').value,\r\n comment: this.sendForm.get('comment').value,\r\n mixin: this.sendForm.get('mixin').value,\r\n fee: this.sendForm.get('fee').value,\r\n hide: this.sendForm.get('hide').value\r\n };\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n

    {{ 'SETTINGS.TITLE' | translate }}

    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{item.language | translate}}\\r\\n \\r\\n \\r\\n {{item.language | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{item.name | translate}}\\r\\n \\r\\n \\r\\n {{item.name | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n {{ 'SETTINGS.MASTER_PASSWORD.TITLE' | translate }}\\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n {{ 'SETTINGS.FORM_ERRORS.PASS_NOT_MATCH' | translate }}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n {{ 'SETTINGS.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    {{ 'SETTINGS.LAST_BUILD' | translate : {value: currentBuild} }}
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","module.exports = \".head {\\n justify-content: flex-end; }\\n\\n.settings-title {\\n font-size: 1.7rem; }\\n\\n.theme-selection {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n margin: 2.4rem 0;\\n width: 50%; }\\n\\n.theme-selection .radio-block {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n font-size: 1.3rem;\\n line-height: 2.7rem; }\\n\\n.lock-selection {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n margin: 2.4rem 0;\\n width: 50%; }\\n\\n.lock-selection .lock-selection-title {\\n display: flex;\\n font-size: 1.5rem;\\n line-height: 2.7rem;\\n margin-bottom: 1rem; }\\n\\n.scale-selection {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 0 0 4rem;\\n width: 50%;\\n height: 0.5rem; }\\n\\n.scale-selection .button-block {\\n position: relative;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex: 1 0 auto;\\n margin: 0 0.2rem;\\n padding: 0;\\n height: 0.5rem; }\\n\\n.scale-selection .button-block .label {\\n position: absolute;\\n bottom: -1rem;\\n left: 50%;\\n transform: translate(-50%, 100%);\\n font-size: 1rem;\\n white-space: nowrap; }\\n\\n.master-password {\\n width: 50%; }\\n\\n.master-password .master-password-title {\\n display: flex;\\n font-size: 1.5rem;\\n line-height: 2.7rem;\\n margin-bottom: 1rem; }\\n\\n.master-password button {\\n margin: 2.5rem auto;\\n width: 100%;\\n max-width: 15rem; }\\n\\n.last-build {\\n font-size: 1rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2V0dGluZ3MvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcc2V0dGluZ3NcXHNldHRpbmdzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTs7QUFMWjtJQVFJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsMkJBQTJCO0lBQzNCLGlCQUFpQjtJQUNqQixtQkFBbUIsRUFBQTs7QUFJdkI7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLHVCQUF1QjtFQUN2QixnQkFBZ0I7RUFDaEIsVUFBVSxFQUFBOztBQUxaO0lBUUksYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsbUJBQW1CLEVBQUE7O0FBSXZCO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsaUJBQWlCO0VBQ2pCLFVBQVU7RUFDVixjQUFjLEVBQUE7O0FBTmhCO0lBU0ksa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLGNBQWMsRUFBQTs7QUFoQmxCO01BbUJNLGtCQUFrQjtNQUNsQixhQUFhO01BQ2IsU0FBUztNQUNULGdDQUFnQztNQUNoQyxlQUFlO01BQ2YsbUJBQW1CLEVBQUE7O0FBS3pCO0VBQ0UsVUFBVSxFQUFBOztBQURaO0lBSUksYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsbUJBQW1CLEVBQUE7O0FBUHZCO0lBV0ksbUJBQW1CO0lBQ25CLFdBQVc7SUFDWCxnQkFBZ0IsRUFBQTs7QUFJcEI7RUFDRSxlQUFlLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zZXR0aW5ncy9zZXR0aW5ncy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oZWFkIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4uc2V0dGluZ3MtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS43cmVtO1xyXG59XHJcblxyXG4udGhlbWUtc2VsZWN0aW9uIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgbWFyZ2luOiAyLjRyZW0gMDtcclxuICB3aWR0aDogNTAlO1xyXG5cclxuICAucmFkaW8tYmxvY2sge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07XHJcbiAgfVxyXG59XHJcblxyXG4ubG9jay1zZWxlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBtYXJnaW46IDIuNHJlbSAwO1xyXG4gIHdpZHRoOiA1MCU7XHJcblxyXG4gIC5sb2NrLXNlbGVjdGlvbi10aXRsZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5zY2FsZS1zZWxlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgcGFkZGluZzogMCAwIDRyZW07XHJcbiAgd2lkdGg6IDUwJTtcclxuICBoZWlnaHQ6IDAuNXJlbTtcclxuXHJcbiAgLmJ1dHRvbi1ibG9jayB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZmxleDogMSAwIGF1dG87XHJcbiAgICBtYXJnaW46IDAgMC4ycmVtO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGhlaWdodDogMC41cmVtO1xyXG5cclxuICAgIC5sYWJlbCB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAtMXJlbTtcclxuICAgICAgbGVmdDogNTAlO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAxMDAlKTtcclxuICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm1hc3Rlci1wYXNzd29yZCB7XHJcbiAgd2lkdGg6IDUwJTtcclxuXHJcbiAgLm1hc3Rlci1wYXNzd29yZC10aXRsZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBtYXJnaW46IDIuNXJlbSBhdXRvO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDE1cmVtO1xyXG4gIH1cclxufVxyXG5cclxuLmxhc3QtYnVpbGQge1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxufVxyXG4iXX0= */\"","import {Component, NgZone, OnInit, Renderer2} from '@angular/core';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport {Location} from '@angular/common';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport {UtilsService} from '../_helpers/services/utils.service';\r\n\r\n@Component({\r\n selector: 'app-settings',\r\n templateUrl: './settings.component.html',\r\n styleUrls: ['./settings.component.scss'],\r\n providers: [UtilsService]\r\n})\r\nexport class SettingsComponent implements OnInit {\r\n\r\n theme: string;\r\n scale: number;\r\n changeForm: any;\r\n languagesOptions = [\r\n {\r\n name: 'en',\r\n language: 'SETTINGS.LANGUAGE.EN'\r\n },\r\n {\r\n name: 'fr',\r\n language: 'SETTINGS.LANGUAGE.FR'\r\n },\r\n {\r\n name: 'de',\r\n language: 'SETTINGS.LANGUAGE.DE'\r\n },\r\n {\r\n name: 'it',\r\n language: 'SETTINGS.LANGUAGE.IT'\r\n },\r\n {\r\n name: 'pt',\r\n language: 'SETTINGS.LANGUAGE.PT'\r\n }\r\n ];\r\n appLockOptions = [\r\n {\r\n id: 5,\r\n name: 'SETTINGS.APP_LOCK.TIME1'\r\n },\r\n {\r\n id: 15,\r\n name: 'SETTINGS.APP_LOCK.TIME2'\r\n },\r\n {\r\n id: 60,\r\n name: 'SETTINGS.APP_LOCK.TIME3'\r\n },\r\n {\r\n id: 0,\r\n name: 'SETTINGS.APP_LOCK.TIME4'\r\n }\r\n ];\r\n appScaleOptions = [\r\n {\r\n id: 7.5,\r\n name: 'SETTINGS.SCALE.75'\r\n },\r\n {\r\n id: 10,\r\n name: 'SETTINGS.SCALE.100'\r\n },\r\n {\r\n id: 12.5,\r\n name: 'SETTINGS.SCALE.125'\r\n },\r\n {\r\n id: 15,\r\n name: 'SETTINGS.SCALE.150'\r\n }\r\n ];\r\n appLogOptions = [\r\n {\r\n id: -1\r\n },\r\n {\r\n id: 0\r\n },\r\n {\r\n id: 1\r\n },\r\n {\r\n id: 2\r\n },\r\n {\r\n id: 3\r\n },\r\n {\r\n id: 4\r\n }\r\n ];\r\n\r\n currentBuild = '';\r\n appPass: any;\r\n\r\n constructor(\r\n private renderer: Renderer2,\r\n public variablesService: VariablesService,\r\n private backend: BackendService,\r\n private location: Location,\r\n public translate: TranslateService,\r\n private ngZone: NgZone,\r\n private utilsService: UtilsService\r\n ) {\r\n this.theme = this.variablesService.settings.theme;\r\n this.scale = this.variablesService.settings.scale;\r\n this.changeForm = new FormGroup({\r\n password: new FormControl(''),\r\n new_password: new FormControl('', Validators.pattern(this.variablesService.pattern)),\r\n new_confirmation: new FormControl('')\r\n }, [(g: FormGroup) => {\r\n return g.get('new_password').value === g.get('new_confirmation').value ? null : {'confirm_mismatch': true};\r\n }, (g: FormGroup) => {\r\n if (this.variablesService.appPass) {\r\n return g.get('password').value === this.variablesService.appPass ? null : {'pass_mismatch': true};\r\n }\r\n return null;\r\n }]);\r\n }\r\n\r\n ngOnInit() {\r\n this.backend.getVersion((version, type) => {\r\n this.ngZone.run(() => {\r\n this.currentBuild = version;\r\n this.variablesService.testnet = false;\r\n if (type == 'testnet')\r\n {\r\n this.currentBuild += ' TESTNET';\r\n this.variablesService.testnet = true;\r\n }\r\n this.variablesService.networkType = type;\r\n });\r\n });\r\n }\r\n\r\n setTheme(theme) {\r\n this.renderer.removeClass(document.body, 'theme-' + this.theme);\r\n this.theme = theme;\r\n this.variablesService.settings.theme = this.theme;\r\n this.renderer.addClass(document.body, 'theme-' + this.theme);\r\n this.backend.storeAppData();\r\n }\r\n\r\n setScale(scale) {\r\n this.scale = scale;\r\n this.variablesService.settings.scale = this.scale;\r\n const width = this.utilsService.getMinWidthByScale(this.scale);\r\n const app = document.documentElement.querySelector('app-root');\r\n this.renderer.setStyle(app, 'min-width', width + 'px');\r\n this.renderer.setStyle(document.documentElement, 'font-size', this.scale + 'px');\r\n this.backend.storeAppData();\r\n }\r\n\r\n onSubmitChangePass() {\r\n if (this.changeForm.valid) {\r\n this.variablesService.appPass = this.changeForm.get('new_password').value;\r\n if (this.variablesService.appPass) {\r\n this.backend.setMasterPassword({pass: this.variablesService.appPass}, (status, data) => {\r\n if (status) {\r\n this.backend.storeSecureAppData({pass: this.variablesService.appPass});\r\n this.variablesService.appLogin = true;\r\n this.variablesService.dataIsLoaded = true;\r\n if (this.variablesService.settings.appLockTime) {\r\n this.variablesService.startCountdown();\r\n }\r\n } else {\r\n console.log(data['error_code']);\r\n }\r\n });\r\n } else {\r\n this.backend.dropSecureAppData();\r\n }\r\n this.changeForm.reset();\r\n }\r\n }\r\n\r\n onLockChange() {\r\n if (this.variablesService.appLogin && this.variablesService.settings.appLockTime) {\r\n this.variablesService.restartCountdown();\r\n }\r\n this.backend.storeAppData();\r\n }\r\n\r\n onLogChange() {\r\n this.backend.setLogLevel(this.variablesService.settings.appLog);\r\n this.backend.storeAppData();\r\n }\r\n\r\n onLanguageChange() {\r\n this.translate.use(this.variablesService.settings.language);\r\n this.backend.storeAppData();\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n

    {{ 'SIDEBAR.TITLE' | translate }}

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Auditable\\r\\n
    \\r\\n
    \\r\\n Watch-only\\r\\n
    \\r\\n
    \\r\\n Tracking\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n {{ 'SIDEBAR.LOG_OUT' | translate }}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.OFFLINE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.SYNCING' | translate }} {{ variablesService.height_app }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.height_max }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ONLINE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SIDEBAR.SYNCHRONIZATION.DOWNLOADING' | translate }} {{ variablesService.downloaded }}{{ 'SIDEBAR.SYNCHRONIZATION.SLASH' | translate }}{{ variablesService.total }}{{ 'SIDEBAR.SYNCHRONIZATION.MB' | translate }}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    {{ variablesService.sync.progress_value_text }}%
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    {{ variablesService.download.progress_value_text }}%
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ 'SIDEBAR.UPDATE.STANDARD' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT' | translate }}\\r\\n
    \\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ 'SIDEBAR.UPDATE.CRITICAL' | translate }}\\r\\n
    \\r\\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{ 'SIDEBAR.UPDATE.TIME' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\"","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n flex: 0 0 25rem;\\n padding: 0 3rem;\\n max-width: 25rem; }\\n\\n.animated {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin-right: 1.2rem; }\\n\\n.animated::ng-deep svg {\\n width: 2rem;\\n height: 2rem; }\\n\\n.animated::ng-deep svg path, .animated::ng-deep svg circle, .animated::ng-deep svg polygon {\\n fill: #4db1ff; }\\n\\n.wallet-type {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 7px;\\n height: 100%;\\n background-color: transparent;\\n transition: all ease .3s;\\n overflow: hidden; }\\n\\n.wallet-type:hover {\\n width: 28px; }\\n\\n.wallet-type .content {\\n height: 100%;\\n padding: 7px;\\n font-size: 12px;\\n line-height: 14px;\\n font-weight: 500;\\n color: #ffffff;\\n text-decoration: none;\\n text-transform: capitalize;\\n transition: all ease .3s;\\n writing-mode: vertical-rl;\\n text-orientation: mixed; }\\n\\n.wallet-type .content.auditable {\\n background-color: #5cda9d; }\\n\\n.wallet-type .content.watch-only, .wallet-type .content.auditable-watch-only {\\n background-color: #8686ff; }\\n\\n.sidebar-accounts {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n flex: 1 1 auto; }\\n\\n.sidebar-accounts .sidebar-accounts-header {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n flex: 0 0 auto;\\n height: 8rem;\\n font-weight: 400; }\\n\\n.sidebar-accounts .sidebar-accounts-header h3 {\\n font-size: 1.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-header button {\\n background: transparent;\\n border: none;\\n outline: none; }\\n\\n.sidebar-accounts .sidebar-accounts-list {\\n display: flex;\\n flex-direction: column;\\n flex: 1 1 auto;\\n margin: 0 -3rem;\\n overflow-y: auto; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n flex-shrink: 0;\\n cursor: pointer;\\n padding: 2.5rem 3rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper {\\n display: flex;\\n justify-content: flex-end;\\n position: relative; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button {\\n display: flex;\\n position: absolute;\\n top: -12px;\\n right: -18px;\\n padding: 0;\\n height: auto;\\n background: transparent;\\n border: none; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button .icon {\\n width: 1.3rem;\\n height: 1.3rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button .icon.close-wallet {\\n background-color: transparent; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .close-wallet-wrapper button .icon.close-wallet::after {\\n display: block;\\n content: '';\\n background: url('close-wallet-blue.svg') no-repeat center;\\n width: 13px;\\n height: 13px; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row {\\n display: flex;\\n align-items: center;\\n justify-content: space-between; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-title-balance {\\n line-height: 2.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-title-balance .title {\\n font-size: 1.5rem;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-title-balance .balance {\\n font-size: 1.8rem;\\n font-weight: 600;\\n white-space: nowrap; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias {\\n font-size: 1.3rem;\\n line-height: 3.4rem;\\n margin-bottom: 0.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .name {\\n display: flex;\\n align-items: center;\\n flex-shrink: 1;\\n line-height: 1.6rem;\\n padding-right: 1rem;\\n overflow: hidden; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .name span {\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .price {\\n flex-shrink: 0; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-alias .icon {\\n margin-left: 0.5rem;\\n width: 1.3rem;\\n height: 1.3rem;\\n border-radius: 50%;\\n color: #1a1a1a;\\n font-size: 9px;\\n font-weight: 700;\\n line-height: 9px;\\n padding-right: 1px;\\n display: flex;\\n align-items: center;\\n justify-content: center; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-staking {\\n line-height: 2.9rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-staking .text {\\n font-size: 1.3rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-messages {\\n line-height: 2.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-messages .text {\\n font-size: 1.3rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-messages .indicator {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 1rem;\\n font-size: 1rem;\\n min-width: 2.4rem;\\n height: 1.6rem;\\n padding: 0 0.5rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\\n flex-direction: column;\\n height: 5.6rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .status {\\n align-self: flex-start;\\n font-size: 1.3rem;\\n line-height: 2.6rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container {\\n display: flex;\\n margin: 0.4rem 0;\\n height: 0.7rem;\\n width: 100%; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container .progress-bar {\\n flex: 1 0 auto; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container .progress-bar .fill {\\n height: 100%; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization .progress-bar-container .progress-percent {\\n flex: 0 0 auto;\\n font-size: 1.3rem;\\n line-height: 0.7rem;\\n padding-left: 0.7rem; }\\n\\n.sidebar-accounts .sidebar-accounts-list .sidebar-account:focus {\\n outline: none; }\\n\\n.sidebar-accounts:after {\\n content: '';\\n position: absolute;\\n bottom: 0;\\n left: -3rem;\\n width: calc(100% + 6rem);\\n height: 5rem; }\\n\\n.sidebar-settings {\\n flex: 0 0 auto;\\n padding-bottom: 1rem; }\\n\\n.sidebar-settings .wrap-button {\\n margin: 0 -3rem; }\\n\\n.sidebar-settings .wrap-button button {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n font-weight: 400;\\n line-height: 3rem;\\n outline: none;\\n padding: 0 3rem;\\n width: 100%; }\\n\\n.sidebar-settings .wrap-button button.disabled {\\n cursor: url('not-allowed.svg'), not-allowed; }\\n\\n.sidebar-settings .wrap-button button .icon {\\n margin-right: 1.2rem;\\n width: 2rem;\\n height: 2rem; }\\n\\n.sidebar-settings .wrap-button button .icon.contacts {\\n -webkit-mask: url('contacts.svg') no-repeat center;\\n mask: url('contacts.svg') no-repeat center; }\\n\\n.sidebar-settings .wrap-button button .icon.settings {\\n -webkit-mask: url('settings.svg') no-repeat center;\\n mask: url('settings.svg') no-repeat center; }\\n\\n.sidebar-settings .wrap-button button .icon.logout {\\n -webkit-mask: url('logout.svg') no-repeat center;\\n mask: url('logout.svg') no-repeat center; }\\n\\n.synchronization-status {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n flex: 0 0 7rem;\\n font-size: 1.3rem; }\\n\\n.synchronization-status .status-container {\\n position: relative;\\n flex-grow: 1;\\n text-align: left; }\\n\\n.synchronization-status .status-container .offline, .synchronization-status .status-container .online {\\n position: relative;\\n display: block;\\n line-height: 1.2rem;\\n padding-left: 2.2rem; }\\n\\n.synchronization-status .status-container .offline:before, .synchronization-status .status-container .online:before {\\n content: '';\\n position: absolute;\\n top: 0;\\n left: 0;\\n border-radius: 50%;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n.synchronization-status .status-container .syncing, .synchronization-status .status-container .loading {\\n line-height: 5rem; }\\n\\n.synchronization-status .status-container .progress-bar-container {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n height: 0.7rem;\\n width: 100%; }\\n\\n.synchronization-status .status-container .progress-bar-container .syncing {\\n display: flex; }\\n\\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\\n flex: 1 0 auto; }\\n\\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\\n height: 100%; }\\n\\n.synchronization-status .status-container .progress-bar-container .syncing .progress-percent {\\n flex: 0 0 auto;\\n font-size: 1.3rem;\\n line-height: 0.7rem;\\n padding-left: 0.7rem; }\\n\\n.synchronization-status .status-container .progress-bar-container .loading {\\n -webkit-animation: move 5s linear infinite;\\n animation: move 5s linear infinite;\\n background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.125, rgba(0, 0, 0, 0.15)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.1)), color-stop(0.375, rgba(0, 0, 0, 0.1)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.15)), color-stop(0.625, rgba(0, 0, 0, 0.15)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.1)), color-stop(0.875, rgba(0, 0, 0, 0.1)), color-stop(0.875, transparent), to(transparent)), -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\\n background-size: 7rem 7rem;\\n height: 100%; }\\n\\n.synchronization-status .update-container {\\n display: flex;\\n flex-grow: 1;\\n margin-left: 1rem;\\n text-align: right; }\\n\\n.synchronization-status .update-container .update-text {\\n flex: 1 1 auto;\\n font-size: 1.2rem;\\n line-height: 1.8rem;\\n text-align: left; }\\n\\n.synchronization-status .update-container .update-text.time {\\n font-size: 1.1rem; }\\n\\n.synchronization-status .update-container .icon {\\n flex: 1 0 auto;\\n margin: 0.3rem 0 0 0.6rem;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n.synchronization-status .update-container .icon.update {\\n -webkit-mask: url('update.svg') no-repeat center;\\n mask: url('update.svg') no-repeat center; }\\n\\n.synchronization-status .update-container .icon.time {\\n -webkit-mask: url('time.svg') no-repeat center;\\n mask: url('time.svg') no-repeat center; }\\n\\n@-webkit-keyframes move {\\n 0% {\\n background-position: 100% -7rem; }\\n 100% {\\n background-position: 100% 7rem; } }\\n\\n@keyframes move {\\n 0% {\\n background-position: 100% -7rem; }\\n 100% {\\n background-position: 100% 7rem; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2lkZWJhci9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzaWRlYmFyXFxzaWRlYmFyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0Qiw4QkFBOEI7RUFDOUIsZUFBZTtFQUNmLGVBQWU7RUFDZixnQkFBZ0IsRUFBQTs7QUFHbEI7RUFDRSxhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixvQkFBb0IsRUFBQTs7QUFKdEI7SUFRSSxXQUFXO0lBQ1gsWUFBWSxFQUFBOztBQVRoQjtNQVlNLGFBQWEsRUFBQTs7QUFJbkI7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxVQUFVO0VBQ1YsWUFBWTtFQUNaLDZCQUE2QjtFQUM3Qix3QkFBd0I7RUFDeEIsZ0JBQWdCLEVBQUE7O0FBUmxCO0lBVUksV0FBVyxFQUFBOztBQVZmO0lBYUksWUFBWTtJQUNaLFlBQVk7SUFDWixlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QscUJBQXFCO0lBQ3JCLDBCQUEwQjtJQUMxQix3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLHVCQUF1QixFQUFBOztBQXZCM0I7TUF5Qk0seUJBQXlCLEVBQUE7O0FBekIvQjtNQTRCTSx5QkFBeUIsRUFBQTs7QUFJL0I7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixjQUFjLEVBQUE7O0FBSmhCO0lBT0ksYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsY0FBYztJQUNkLFlBQVk7SUFDWixnQkFBZ0IsRUFBQTs7QUFacEI7TUFlTSxpQkFBaUIsRUFBQTs7QUFmdkI7TUFtQk0sdUJBQXVCO01BQ3ZCLFlBQVk7TUFDWixhQUFhLEVBQUE7O0FBckJuQjtJQTBC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Z0RBQXlEO2dCQUF6RCx3Q0FBeUQsRUFBQTs7QUFsSGpFO1FBc0hRLDhDQUF1RDtnQkFBdkQsc0NBQXVELEVBQUE7O0FBTS9EO0VBQ0U7SUFDRSwrQkFBK0IsRUFBQTtFQUVqQztJQUNFLDhCQUE4QixFQUFBLEVBQUE7O0FBTGxDO0VBQ0U7SUFDRSwrQkFBK0IsRUFBQTtFQUVqQztJQUNFLDhCQUE4QixFQUFBLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBmbGV4OiAwIDAgMjVyZW07XHJcbiAgcGFkZGluZzogMCAzcmVtO1xyXG4gIG1heC13aWR0aDogMjVyZW07XHJcbn1cclxuXHJcbi5hbmltYXRlZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG5cclxuICAmOjpuZy1kZWVwIHN2ZyB7XHJcblxyXG4gICAgd2lkdGg6IDJyZW07XHJcbiAgICBoZWlnaHQ6IDJyZW07XHJcblxyXG4gICAgcGF0aCwgY2lyY2xlLCBwb2x5Z29uIHtcclxuICAgICAgZmlsbDogIzRkYjFmZjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuLndhbGxldC10eXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDdweDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgdHJhbnNpdGlvbjogYWxsIGVhc2UgLjNzO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgJjpob3ZlciB7XHJcbiAgICB3aWR0aDogMjhweDtcclxuICB9XHJcbiAgLmNvbnRlbnQge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcGFkZGluZzogN3B4O1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgIHRyYW5zaXRpb246IGFsbCBlYXNlIC4zcztcclxuICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7XHJcbiAgICB0ZXh0LW9yaWVudGF0aW9uOiBtaXhlZDtcclxuICAgICYuYXVkaXRhYmxlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDtcclxuICAgIH1cclxuICAgICYud2F0Y2gtb25seSwgJi5hdWRpdGFibGUtd2F0Y2gtb25seSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4Njg2ZmY7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi5zaWRlYmFyLWFjY291bnRzIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDEgMSBhdXRvO1xyXG5cclxuICAuc2lkZWJhci1hY2NvdW50cy1oZWFkZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgIGhlaWdodDogOHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcblxyXG4gICAgaDMge1xyXG4gICAgICBmb250LXNpemU6IDEuN3JlbTtcclxuICAgIH1cclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNpZGViYXItYWNjb3VudHMtbGlzdCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgbWFyZ2luOiAwIC0zcmVtO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuXHJcbiAgICAuc2lkZWJhci1hY2NvdW50IHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBwYWRkaW5nOiAyLjVyZW0gM3JlbTtcclxuXHJcbiAgICAgIC5jbG9zZS13YWxsZXQtd3JhcHBlciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHRvcDogLTEycHg7XHJcbiAgICAgICAgICByaWdodDogLTE4cHg7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICB3aWR0aDogMS4zcmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEuM3JlbTtcclxuICAgICAgICAgICAgJi5jbG9zZS13YWxsZXQge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuY2xvc2Utd2FsbGV0OjphZnRlciB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgY29udGVudDonJztcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOnVybChcIi4uLy4uL2Fzc2V0cy9pY29ucy9jbG9zZS13YWxsZXQtYmx1ZS5zdmdcIikgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICB3aWR0aDogMTNweDtcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDEzcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zaWRlYmFyLWFjY291bnQtcm93IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgICAgICAmLmFjY291bnQtdGl0bGUtYmFsYW5jZSB7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG5cclxuICAgICAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuYmFsYW5jZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY2NvdW50LWFsaWFzIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMuNHJlbTtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuN3JlbTtcclxuXHJcbiAgICAgICAgICAubmFtZSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS42cmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLnByaWNlIHtcclxuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xyXG4gICAgICAgICAgICB3aWR0aDogMS4zcmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEuM3JlbTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICBjb2xvcjogIzFhMWExYTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiA5cHg7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA5cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFweDtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjY291bnQtc3Rha2luZyB7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMi45cmVtO1xyXG5cclxuICAgICAgICAgIC50ZXh0IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjY291bnQtbWVzc2FnZXMge1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuXHJcbiAgICAgICAgICAudGV4dCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5pbmRpY2F0b3Ige1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNHJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxLjZyZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC41cmVtO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY2NvdW50LXN5bmNocm9uaXphdGlvbiB7XHJcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgaGVpZ2h0OiA1LjZyZW07XHJcblxyXG4gICAgICAgICAgLnN0YXR1cyB7XHJcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgbWFyZ2luOiAwLjRyZW0gMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAwLjdyZW07XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAgICAgLnByb2dyZXNzLWJhciB7XHJcbiAgICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XHJcblxyXG4gICAgICAgICAgICAgIC5maWxsIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5wcm9ncmVzcy1wZXJjZW50IHtcclxuICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMC43cmVtO1xyXG4gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAtM3JlbTtcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyA2cmVtKTtcclxuICAgIGhlaWdodDogNXJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5zaWRlYmFyLXNldHRpbmdzIHtcclxuICBmbGV4OiAwIDAgYXV0bztcclxuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcclxuXHJcbiAgLndyYXAtYnV0dG9uIHtcclxuICAgIG1hcmdpbjogMCAtM3JlbTtcclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICBsaW5lLWhlaWdodDogM3JlbTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgcGFkZGluZzogMCAzcmVtO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgICYuZGlzYWJsZWQge1xyXG4gICAgICAgIGN1cnNvcjogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9ub3QtYWxsb3dlZC5zdmcpLCBub3QtYWxsb3dlZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmljb24ge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICAgIHdpZHRoOiAycmVtO1xyXG4gICAgICAgIGhlaWdodDogMnJlbTtcclxuXHJcbiAgICAgICAgJi5jb250YWN0cyB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2NvbnRhY3RzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuc2V0dGluZ3Mge1xyXG4gICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9zZXR0aW5ncy5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmxvZ291dCB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2xvZ291dC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uc3luY2hyb25pemF0aW9uLXN0YXR1cyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBmbGV4OiAwIDAgN3JlbTtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuXHJcbiAgLnN0YXR1cy1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAub2ZmbGluZSwgLm9ubGluZSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMi4ycmVtO1xyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgICBoZWlnaHQ6IDEuMnJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zeW5jaW5nLCAubG9hZGluZyB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA1cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIGhlaWdodDogMC43cmVtO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIC5zeW5jaW5nIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgICAucHJvZ3Jlc3MtYmFyIHtcclxuICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG5cclxuICAgICAgICAgIC5maWxsIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnByb2dyZXNzLXBlcmNlbnQge1xyXG4gICAgICAgICAgZmxleDogMCAwIGF1dG87XHJcbiAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwLjdyZW07XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5sb2FkaW5nIHtcclxuICAgICAgICBhbmltYXRpb246IG1vdmUgNXMgbGluZWFyIGluZmluaXRlO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6XHJcbiAgICAgICAgICAtd2Via2l0LWdyYWRpZW50KFxyXG4gICAgICAgICAgICAgIGxpbmVhciwgMCAwLCAxMDAlIDEwMCUsXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMTI1LCByZ2JhKDAsIDAsIDAsIC4xNSkpLCBjb2xvci1zdG9wKC4xMjUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4yNTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguMjUwLCByZ2JhKDAsIDAsIDAsIC4xMCkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjM3NSwgcmdiYSgwLCAwLCAwLCAuMTApKSwgY29sb3Itc3RvcCguMzc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNTAwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjUwMCwgcmdiYSgwLCAwLCAwLCAuMTUpKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC42MjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjYyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjc1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC43NTAsIHJnYmEoMCwgMCwgMCwgLjEwKSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguODc1LCByZ2JhKDAsIDAsIDAsIC4xMCkpLCBjb2xvci1zdG9wKC44NzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICB0byh0cmFuc3BhcmVudClcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICAtd2Via2l0LWdyYWRpZW50KFxyXG4gICAgICAgICAgICAgIGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMTI1LCByZ2JhKDAsIDAsIDAsIC4zMCkpLCBjb2xvci1zdG9wKC4xMjUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4yNTAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguMjUwLCByZ2JhKDAsIDAsIDAsIC4yNSkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjM3NSwgcmdiYSgwLCAwLCAwLCAuMjUpKSwgY29sb3Itc3RvcCguMzc1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNTAwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjUwMCwgcmdiYSgwLCAwLCAwLCAuMzApKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC42MjUsIHJnYmEoMCwgMCwgMCwgLjMwKSksIGNvbG9yLXN0b3AoLjYyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjc1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC43NTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguODc1LCByZ2JhKDAsIDAsIDAsIC4yNSkpLCBjb2xvci1zdG9wKC44NzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICB0byh0cmFuc3BhcmVudClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA3cmVtIDdyZW07XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudXBkYXRlLWNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuXHJcbiAgICAudXBkYXRlLXRleHQge1xyXG4gICAgICBmbGV4OiAxIDEgYXV0bztcclxuICAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4gICAgICAmLnRpbWUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICBmbGV4OiAxIDAgYXV0bztcclxuICAgICAgbWFyZ2luOiAwLjNyZW0gMCAwIDAuNnJlbTtcclxuICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcblxyXG4gICAgICAmLnVwZGF0ZSB7XHJcbiAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy91cGRhdGUuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnRpbWUge1xyXG4gICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvdGltZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgbW92ZSB7XHJcbiAgMCUge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtN3JlbTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDdyZW07XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, NgZone, OnInit, OnDestroy} from '@angular/core';\r\nimport {ActivatedRoute, NavigationStart, Router} from '@angular/router';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport { ModalService } from '../_helpers/services/modal.service';\r\nimport {AUDITABLE_WALLET_HELP_PAGE} from '../_shared/constants';\r\nimport {DOWNLOADS_PAGE_URL} from '../_shared/constants';\r\n\r\nimport icons from '../../assets/icons/icons.json';\r\n\r\n@Component({\r\n selector: 'app-sidebar',\r\n templateUrl: './sidebar.component.html',\r\n styleUrls: ['./sidebar.component.scss']\r\n})\r\nexport class SidebarComponent implements OnInit, OnDestroy {\r\n walletSubRouting;\r\n\r\n walletActive: number;\r\n\r\n contacts = icons.contacts;\r\n settings = icons.settings;\r\n exit = icons.exit;\r\n\r\n isModalDialogVisible = false;\r\n closeWalletId: number;\r\n\r\n menuItemHovered: boolean;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n public variablesService: VariablesService,\r\n private backend: BackendService,\r\n private modal: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (this.router.url.indexOf('/wallet/') !== -1) {\r\n const localPathArr = this.router.url.split('/');\r\n if (localPathArr.length >= 3) {\r\n this.walletActive = parseInt(localPathArr[2], 10);\r\n }\r\n } else if (this.router.url.indexOf('/details') !== -1) {\r\n this.walletActive = this.variablesService.currentWallet.wallet_id;\r\n } else {\r\n this.walletActive = null;\r\n }\r\n\r\n this.walletSubRouting = this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationStart) {\r\n if (event.url.indexOf('/wallet/') !== -1) {\r\n const localPathArr = event.url.split('/');\r\n if (localPathArr.length >= 3) {\r\n this.walletActive = parseInt(localPathArr[2], 10);\r\n }\r\n } else if (event.url.indexOf('/details') !== -1) {\r\n this.walletActive = this.variablesService.currentWallet.wallet_id;\r\n } else {\r\n this.walletActive = null;\r\n }\r\n }\r\n });\r\n }\r\n\r\n goMainPage() {\r\n if (this.route.snapshot.queryParams && this.route.snapshot.queryParams.prevUrl === 'login') {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/'], {queryParams: {prevUrl: 'login'}});\r\n });\r\n } else {\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/']);\r\n });\r\n }\r\n\r\n };\r\n\r\n contactsRoute() {\r\n if (this.variablesService.appPass) {\r\n this.router.navigate(['/contacts']);\r\n } else {\r\n this.modal.prepareModal(\r\n 'error',\r\n 'CONTACTS.FORM_ERRORS.SET_MASTER_PASSWORD'\r\n );\r\n }\r\n }\r\n\r\n showDialog(wallet_id) {\r\n this.isModalDialogVisible = true;\r\n this.closeWalletId = wallet_id;\r\n }\r\n\r\n confirmed(confirmed: boolean) {\r\n if (confirmed) {\r\n this.closeWallet(this.closeWalletId);\r\n }\r\n this.isModalDialogVisible = false;\r\n }\r\n\r\n closeWallet(wallet_id) {\r\n this.backend.closeWallet(wallet_id, () => {\r\n for (let i = this.variablesService.wallets.length - 1; i >= 0; i--) {\r\n if (this.variablesService.wallets[i].wallet_id === this.variablesService.currentWallet.wallet_id) {\r\n this.variablesService.wallets.splice(i, 1);\r\n }\r\n }\r\n this.ngZone.run(() => {\r\n if (this.variablesService.wallets.length) {\r\n this.variablesService.currentWallet = this.variablesService.wallets[0];\r\n this.router.navigate(['/wallet/' + this.variablesService.currentWallet.wallet_id]);\r\n } else {\r\n this.router.navigate(['/']);\r\n }\r\n });\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n });\r\n }\r\n\r\n getUpdate() {\r\n this.backend.openUrlInBrowser(DOWNLOADS_PAGE_URL);\r\n }\r\n goToAuditableWalletHelpPage(e) {\r\n e.preventDefault();\r\n this.backend.openUrlInBrowser(AUDITABLE_WALLET_HELP_PAGE);\r\n }\r\n\r\n logOut() {\r\n this.variablesService.stopCountdown();\r\n this.variablesService.appLogin = false;\r\n this.variablesService.appPass = '';\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/login'], {queryParams: {type: 'auth'}});\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.walletSubRouting.unsubscribe();\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n {{ 'STAKING.TITLE' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'STAKING.TITLE_PENDING' | translate }}\\r\\n {{pending.total | intToMoney}} {{variablesService.defaultCurrency}}\\r\\n
    \\r\\n
    \\r\\n {{ 'STAKING.TITLE_TOTAL' | translate }}\\r\\n {{total | intToMoney}} {{variablesService.defaultCurrency}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{selectedDate.date | date : 'EEEE, MMMM d, y'}}\\r\\n {{selectedDate.amount}} {{variablesService.defaultCurrency}}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{ 'STAKING.TITLE_PERIOD' | translate }}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n {{ 'STAKING.TITLE_GROUP' | translate }}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n width: 100%; }\\n\\n.chart-header {\\n display: flex;\\n flex: 0 0 auto; }\\n\\n.chart-header .general {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n flex-grow: 1;\\n font-size: 1.3rem;\\n margin: -0.5rem 0; }\\n\\n.chart-header .general > div {\\n display: flex;\\n align-items: center;\\n margin: 0.5rem 0;\\n height: 2rem; }\\n\\n.chart-header .general > div .label {\\n display: inline-block;\\n width: 9rem; }\\n\\n.chart-header .selected {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-end;\\n justify-content: center;\\n flex-grow: 1;\\n font-size: 1.8rem; }\\n\\n.chart-header .selected span {\\n line-height: 2.9rem; }\\n\\n.chart {\\n position: relative;\\n display: flex;\\n align-items: center;\\n flex: 1 1 auto;\\n min-height: 40rem; }\\n\\n.chart > div {\\n position: absolute;\\n width: 100%;\\n height: 100%; }\\n\\n.chart-options {\\n display: flex;\\n align-items: center;\\n height: 2.4rem;\\n flex: 0 0 auto; }\\n\\n.chart-options .title {\\n font-size: 1.3rem;\\n padding: 0 1rem; }\\n\\n.chart-options .title:first-child {\\n padding-left: 0; }\\n\\n.chart-options .options {\\n display: flex;\\n justify-content: space-between;\\n flex-grow: 1;\\n height: 100%; }\\n\\n.chart-options .options button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex: 1 1 auto;\\n cursor: pointer;\\n font-size: 1.3rem;\\n margin: 0 0.1rem;\\n padding: 0;\\n height: 100%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3Rha2luZy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXBwXFxzdGFraW5nXFxzdGFraW5nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXLEVBQUE7O0FBR2I7RUFDRSxhQUFhO0VBQ2IsY0FBYyxFQUFBOztBQUZoQjtJQUtJLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLGlCQUFpQixFQUFBOztBQVhyQjtNQWNNLGFBQWE7TUFDYixtQkFBbUI7TUFDbkIsZ0JBQWdCO01BQ2hCLFlBQVksRUFBQTs7QUFqQmxCO1FBb0JRLHFCQUFxQjtRQUNyQixXQUFXLEVBQUE7O0FBckJuQjtJQTJCSSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLHFCQUFxQjtJQUNyQix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLGlCQUFpQixFQUFBOztBQWhDckI7TUFtQ00sbUJBQW1CLEVBQUE7O0FBS3pCO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsY0FBYztFQUNkLGlCQUFpQixFQUFBOztBQUxuQjtJQVFJLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsWUFBWSxFQUFBOztBQUloQjtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsY0FBYztFQUNkLGNBQWMsRUFBQTs7QUFKaEI7SUFPSSxpQkFBaUI7SUFDakIsZUFBZSxFQUFBOztBQVJuQjtNQVdNLGVBQWUsRUFBQTs7QUFYckI7SUFnQkksYUFBYTtJQUNiLDhCQUE4QjtJQUM5QixZQUFZO0lBQ1osWUFBWSxFQUFBOztBQW5CaEI7TUFzQk0sYUFBYTtNQUNiLG1CQUFtQjtNQUNuQix1QkFBdUI7TUFDdkIsY0FBYztNQUNkLGVBQWU7TUFDZixpQkFBaUI7TUFDakIsZ0JBQWdCO01BQ2hCLFVBQVU7TUFDVixZQUFZLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zdGFraW5nL3N0YWtpbmcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uY2hhcnQtaGVhZGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG5cclxuICAuZ2VuZXJhbCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIG1hcmdpbjogLTAuNXJlbSAwO1xyXG5cclxuICAgID4gZGl2IHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcclxuICAgICAgaGVpZ2h0OiAycmVtO1xyXG5cclxuICAgICAgLmxhYmVsIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDlyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zZWxlY3RlZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjlyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uY2hhcnQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZmxleDogMSAxIGF1dG87XHJcbiAgbWluLWhlaWdodDogNDByZW07XHJcblxyXG4gID4gZGl2IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLmNoYXJ0LW9wdGlvbnMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBoZWlnaHQ6IDIuNHJlbTtcclxuICBmbGV4OiAwIDAgYXV0bztcclxuXHJcbiAgLnRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgcGFkZGluZzogMCAxcmVtO1xyXG5cclxuICAgICY6Zmlyc3QtY2hpbGR7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5vcHRpb25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICBtYXJnaW46IDAgMC4xcmVtO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import {Component, NgZone, OnInit, OnDestroy} from '@angular/core';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {Chart} from 'angular-highcharts';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {IntToMoneyPipe} from '../_helpers/pipes/int-to-money.pipe';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {BigNumber} from 'bignumber.js';\r\n\r\n@Component({\r\n selector: 'app-staking',\r\n templateUrl: './staking.component.html',\r\n styleUrls: ['./staking.component.scss']\r\n})\r\nexport class StakingComponent implements OnInit, OnDestroy {\r\n\r\n parentRouting;\r\n heightAppEvent;\r\n refreshStackingEvent;\r\n\r\n periods = [\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.WEEK1'),\r\n key: '1 week',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.WEEK2'),\r\n key: '2 week',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.MONTH1'),\r\n key: '1 month',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.MONTH3'),\r\n key: '3 month',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.MONTH6'),\r\n key: '6 month',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.YEAR'),\r\n key: '1 year',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.PERIOD.ALL'),\r\n key: 'All',\r\n active: true\r\n }\r\n ];\r\n\r\n groups = [\r\n {\r\n title: this.translate.instant('STAKING.GROUP.DAY'),\r\n key: 'day',\r\n active: true\r\n },\r\n {\r\n title: this.translate.instant('STAKING.GROUP.WEEK'),\r\n key: 'week',\r\n active: false\r\n },\r\n {\r\n title: this.translate.instant('STAKING.GROUP.MONTH'),\r\n key: 'month',\r\n active: false\r\n }\r\n ];\r\n\r\n selectedDate = {\r\n date: null,\r\n amount: null\r\n };\r\n\r\n originalData = [];\r\n\r\n chart: Chart;\r\n\r\n total = new BigNumber(0);\r\n pending = {\r\n list: [],\r\n total: new BigNumber(0)\r\n };\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n public variablesService: VariablesService,\r\n private backend: BackendService,\r\n private ngZone: NgZone,\r\n private intToMoneyPipe: IntToMoneyPipe,\r\n private translate: TranslateService\r\n ) {\r\n }\r\n\r\n static makeGroupTime(key, date) {\r\n if (key === 'day') {\r\n return date.setHours(0, 0, 0, 0);\r\n } else if (key === 'week') {\r\n return new Date(date.setDate(date.getDate() - date.getDay())).setHours(0, 0, 0, 0);\r\n } else {\r\n return new Date(date.setDate(1)).setHours(0, 0, 0, 0);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.parentRouting = this.route.parent.params.subscribe(() => {\r\n this.getMiningHistory();\r\n });\r\n this.heightAppEvent = this.variablesService.getHeightAppEvent.subscribe((newHeight: number) => {\r\n if (!this.pending.total.isZero()) {\r\n const pendingCount = this.pending.list.length;\r\n for (let i = pendingCount - 1; i >= 0; i--) {\r\n if (newHeight - this.pending.list[i].h >= 10) {\r\n this.pending.list.splice(i, 1);\r\n }\r\n }\r\n if (pendingCount !== this.pending.list.length) {\r\n this.pending.total = new BigNumber(0);\r\n for (let i = 0; i < this.pending.list.length; i++) {\r\n this.pending.total = this.pending.total.plus(this.pending.list[i].a);\r\n }\r\n }\r\n }\r\n });\r\n this.refreshStackingEvent = this.variablesService.getRefreshStackingEvent.subscribe((wallet_id: number) => {\r\n if (this.variablesService.currentWallet.wallet_id === wallet_id) {\r\n this.getMiningHistory();\r\n }\r\n });\r\n }\r\n\r\n\r\n drawChart(data) {\r\n this.chart = new Chart({\r\n title: {text: ''},\r\n credits: {enabled: false},\r\n exporting: {enabled: false},\r\n legend: {enabled: false},\r\n chart: {\r\n type: 'line',\r\n backgroundColor: 'transparent',\r\n height: null,\r\n zoomType: null,\r\n events: {\r\n load: () => {\r\n this.changePeriod();\r\n }\r\n }\r\n },\r\n\r\n yAxis: {\r\n min: 0,\r\n tickAmount: 5,\r\n title: {\r\n text: ''\r\n },\r\n gridLineColor: '#2b3644',\r\n gridLineWidth: 2,\r\n lineColor: '#2b3644',\r\n lineWidth: 2,\r\n tickWidth: 2,\r\n tickLength: 120,\r\n tickColor: '#2b3644',\r\n labels: {\r\n y: -8,\r\n align: 'left',\r\n x: -120,\r\n style: {\r\n 'color': '#e0e0e0',\r\n 'fontSize': '13px'\r\n },\r\n format: '{value} ' + this.variablesService.defaultCurrency\r\n },\r\n showLastLabel: false,\r\n },\r\n\r\n xAxis: {\r\n type: 'datetime',\r\n gridLineColor: '#2b3644',\r\n lineColor: '#2b3644',\r\n lineWidth: 2,\r\n tickWidth: 2,\r\n tickLength: 10,\r\n tickColor: '#2b3644',\r\n labels: {\r\n style: {\r\n 'color': '#e0e0e0',\r\n 'fontSize': '13px'\r\n }\r\n },\r\n minPadding: 0,\r\n maxPadding: 0,\r\n minRange: 86400000,\r\n // tickInterval: 86400000,\r\n minTickInterval: 3600000,\r\n },\r\n\r\n tooltip: {\r\n enabled: false\r\n },\r\n\r\n plotOptions: {\r\n area: {\r\n fillColor: {\r\n linearGradient: {\r\n x1: 0,\r\n y1: 0,\r\n x2: 0,\r\n y2: 1\r\n },\r\n stops: [\r\n [0, 'rgba(124,181,236,0.2)'],\r\n [1, 'rgba(124,181,236,0)']\r\n ]\r\n },\r\n marker: {\r\n enabled: false,\r\n radius: 2\r\n },\r\n lineWidth: 2,\r\n threshold: null\r\n },\r\n\r\n series: {\r\n point: {\r\n events: {\r\n mouseOver: (obj) => {\r\n this.selectedDate.date = obj.target['x'];\r\n this.selectedDate.amount = obj.target['y'];\r\n }\r\n }\r\n },\r\n events: {\r\n mouseOut: () => {\r\n this.selectedDate.date = null;\r\n this.selectedDate.amount = null;\r\n }\r\n }\r\n }\r\n },\r\n series: [\r\n {\r\n type: 'area',\r\n data: data\r\n }\r\n ]\r\n });\r\n }\r\n\r\n\r\n getMiningHistory() {\r\n if (this.variablesService.currentWallet.loaded) {\r\n this.backend.getMiningHistory(this.variablesService.currentWallet.wallet_id, (status, data) => {\r\n this.total = new BigNumber(0);\r\n this.pending.list = [];\r\n this.pending.total = new BigNumber(0);\r\n this.originalData = [];\r\n if (data.mined_entries) {\r\n data.mined_entries.forEach((item, key) => {\r\n if (item.t.toString().length === 10) {\r\n data.mined_entries[key].t = (new Date(item.t * 1000)).setUTCMilliseconds(0);\r\n }\r\n });\r\n data.mined_entries.forEach((item) => {\r\n this.total = this.total.plus(item.a);\r\n if (this.variablesService.height_app - item.h < 10) {\r\n this.pending.list.push(item);\r\n this.pending.total = this.pending.total.plus(item.a);\r\n }\r\n this.originalData.push([parseInt(item.t, 10), parseFloat(this.intToMoneyPipe.transform(item.a))]);\r\n });\r\n this.originalData = this.originalData.sort(function (a, b) {\r\n return a[0] - b[0];\r\n });\r\n }\r\n this.ngZone.run(() => {\r\n this.drawChart([]);\r\n });\r\n });\r\n }\r\n }\r\n\r\n changePeriod(period?) {\r\n if (period) {\r\n this.periods.forEach((p) => {\r\n p.active = false;\r\n });\r\n period.active = true;\r\n } else {\r\n period = this.periods.find((p) => p.active);\r\n }\r\n\r\n const d = new Date();\r\n let min = null;\r\n const newData = [];\r\n\r\n const group = this.groups.find((g) => g.active);\r\n\r\n if (period.key === '1 week') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 7, 0, 0, 0, 0);\r\n } else if (period.key === '2 week') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 14, 0, 0, 0, 0);\r\n } else if (period.key === '1 month') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth() - 1, d.getDate(), 0, 0, 0, 0);\r\n } else if (period.key === '3 month') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth() - 3, d.getDate(), 0, 0, 0, 0);\r\n } else if (period.key === '6 month') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear(), d.getMonth() - 6, d.getDate(), 0, 0, 0, 0);\r\n } else if (period.key === '1 year') {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n min = Date.UTC(d.getFullYear() - 1, d.getMonth(), d.getDate(), 0, 0, 0, 0);\r\n } else {\r\n this.originalData.forEach((item) => {\r\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\r\n const find = newData.find(itemNew => itemNew[0] === time);\r\n if (find) {\r\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\r\n } else {\r\n newData.push([time, item[1]]);\r\n }\r\n });\r\n this.chart.ref.series[0].setData(newData, true);\r\n }\r\n\r\n this.chart.ref.xAxis[0].setExtremes(min, null);\r\n }\r\n\r\n changeGroup(group) {\r\n this.groups.forEach((g) => {\r\n g.active = false;\r\n });\r\n group.active = true;\r\n this.changePeriod();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.parentRouting.unsubscribe();\r\n this.heightAppEvent.unsubscribe();\r\n this.refreshStackingEvent.unsubscribe();\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{ wallet.name }}\\r\\n {{ 'BREADCRUMBS.TRANSFER_ALIAS' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    0 && (transferAddressAlias || !transferAddressValid || (transferAddressValid && !permissionSend) || notEnoughMoney)\\\">\\r\\n
    \\r\\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.WRONG_ADDRESS' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.ALIAS_EXISTS' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    {{ \\\"TRANSFER_ALIAS.COST\\\" | translate : {value: variablesService.default_fee, currency: variablesService.defaultCurrency} }}
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","module.exports = \".form-transfer {\\n margin: 2.4rem 0; }\\n .form-transfer .alias-name {\\n width: 50%; }\\n .form-transfer .alias-cost {\\n font-size: 1.3rem;\\n margin-top: 2rem; }\\n .form-transfer .wrap-buttons {\\n display: flex;\\n justify-content: space-between;\\n margin: 2.5rem -0.7rem; }\\n .form-transfer .wrap-buttons button {\\n margin: 0 0.7rem;\\n width: 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdHJhbnNmZXItYWxpYXMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcdHJhbnNmZXItYWxpYXNcXHRyYW5zZmVyLWFsaWFzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFJSSxVQUFVLEVBQUE7RUFKZDtJQVFJLGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFBQTtFQVRwQjtJQWFJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsc0JBQXNCLEVBQUE7RUFmMUI7TUFrQk0sZ0JBQWdCO01BQ2hCLFlBQVksRUFBQSIsImZpbGUiOiJzcmMvYXBwL3RyYW5zZmVyLWFsaWFzL3RyYW5zZmVyLWFsaWFzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tdHJhbnNmZXIge1xyXG4gIG1hcmdpbjogMi40cmVtIDA7XHJcblxyXG4gIC5hbGlhcy1uYW1lIHtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgfVxyXG5cclxuICAuYWxpYXMtY29zdCB7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIG1hcmdpbi10b3A6IDJyZW07XHJcbiAgfVxyXG5cclxuICAud3JhcC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW46IDIuNXJlbSAtMC43cmVtO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjdyZW07XHJcbiAgICAgIHdpZHRoOiAxNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\"","import {Component, NgZone, OnInit} from '@angular/core';\r\nimport {Location} from '@angular/common';\r\nimport {Router} from '@angular/router';\r\nimport {BackendService} from '../_helpers/services/backend.service';\r\nimport {VariablesService} from '../_helpers/services/variables.service';\r\nimport {ModalService} from '../_helpers/services/modal.service';\r\nimport {Wallet} from '../_helpers/models/wallet.model';\r\n\r\n@Component({\r\n selector: 'app-transfer-alias',\r\n templateUrl: './transfer-alias.component.html',\r\n styleUrls: ['./transfer-alias.component.scss']\r\n})\r\nexport class TransferAliasComponent implements OnInit {\r\n\r\n wallet: Wallet;\r\n alias: any;\r\n transferAddress = '';\r\n transferAddressValid: boolean;\r\n transferAddressAlias: boolean;\r\n permissionSend: boolean;\r\n notEnoughMoney: boolean;\r\n requestProcessing = false;\r\n\r\n constructor(\r\n private location: Location,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private modalService: ModalService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.wallet = this.variablesService.currentWallet;\r\n const alias = this.backend.getWalletAlias(this.wallet.address);\r\n this.alias = {\r\n name: alias.name,\r\n address: alias.address,\r\n comment: alias.comment,\r\n tracking_key: alias.tracking_key\r\n };\r\n this.notEnoughMoney = this.wallet.unlocked_balance.isLessThan(this.variablesService.default_fee_big);\r\n }\r\n\r\n changeAddress() {\r\n this.backend.validateAddress(this.transferAddress, status => {\r\n this.transferAddressValid = status;\r\n if (status) {\r\n this.backend.getPoolInfo((statusPool, dataPool) => {\r\n if (dataPool.hasOwnProperty('aliases_que') && dataPool.aliases_que.length) {\r\n this.setStatus(!dataPool.aliases_que.some((el) => el.address === this.transferAddress));\r\n } else {\r\n this.setStatus(status);\r\n }\r\n });\r\n } else {\r\n this.setStatus(false);\r\n }\r\n });\r\n }\r\n\r\n setStatus(statusSet) {\r\n this.permissionSend = statusSet;\r\n if (statusSet) {\r\n this.backend.getAliasByAddress(this.transferAddress, (status) => {\r\n this.ngZone.run(() => {\r\n if (status) {\r\n this.transferAddressAlias = true;\r\n this.permissionSend = false;\r\n } else {\r\n this.transferAddressAlias = false;\r\n }\r\n });\r\n });\r\n } else {\r\n this.ngZone.run(() => {\r\n this.transferAddressAlias = false;\r\n });\r\n }\r\n }\r\n\r\n transferAlias() {\r\n if (this.requestProcessing || !this.permissionSend || !this.transferAddressValid || this.notEnoughMoney) {\r\n return;\r\n }\r\n this.requestProcessing = true;\r\n const newAlias = {\r\n name: this.alias.name,\r\n address: this.transferAddress,\r\n comment: this.alias.comment,\r\n tracking_key: this.alias.tracking_key\r\n };\r\n this.backend.updateAlias(this.wallet.wallet_id, newAlias, this.variablesService.default_fee, (status, data) => {\r\n if (status && data.hasOwnProperty('success') && data.success) {\r\n this.modalService.prepareModal('info', 'TRANSFER_ALIAS.REQUEST_SEND_REG');\r\n this.ngZone.run(() => {\r\n this.router.navigate(['/wallet/' + this.wallet.wallet_id]);\r\n });\r\n }\r\n this.requestProcessing = false;\r\n });\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n @bitmain\\r\\n
    \\r\\n \\r\\n \\r\\n {{ 'COMMON.BACK' | translate }}\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    10:39
    \\r\\n
    \\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
    \\r\\n
    \\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
    \\r\\n
    \\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
    \\r\\n
    \\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
    \\r\\n
    11:44
    \\r\\n
    \\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
    \\r\\n
    \\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
    \\r\\n
    \\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
    \\r\\n
    12:15
    \\r\\n
    \\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
    \\r\\n
    \\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
    \\r\\n
    \\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
    \\r\\n
    13:13
    \\r\\n
    \\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
    \\r\\n
    \\r\\n Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\\r\\n
    \\r\\n
    \\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n width: 100%; }\\n\\n.head {\\n flex: 0 0 auto;\\n box-sizing: content-box;\\n margin: -3rem -3rem 0; }\\n\\n.messages-content {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n flex-grow: 1; }\\n\\n.messages-content .messages-list {\\n display: flex;\\n flex-direction: column;\\n font-size: 1.3rem;\\n margin: 1rem -3rem;\\n padding: 0 3rem;\\n overflow-y: overlay; }\\n\\n.messages-content .messages-list div {\\n margin: 0.7rem 0; }\\n\\n.messages-content .messages-list div.date {\\n text-align: center; }\\n\\n.messages-content .messages-list div.my, .messages-content .messages-list div.buddy {\\n position: relative;\\n padding: 1.8rem;\\n max-width: 60%; }\\n\\n.messages-content .messages-list div.buddy {\\n align-self: flex-end; }\\n\\n.messages-content .type-message {\\n display: flex;\\n flex: 0 0 auto;\\n width: 100%;\\n height: 4.2rem; }\\n\\n.messages-content .type-message .input-block {\\n width: 100%; }\\n\\n.messages-content .type-message .input-block > textarea {\\n min-height: 4.2rem; }\\n\\n.messages-content .type-message button {\\n flex: 0 0 15rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdHlwaW5nLW1lc3NhZ2UvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcdHlwaW5nLW1lc3NhZ2VcXHR5cGluZy1tZXNzYWdlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXLEVBQUE7O0FBR2I7RUFDRSxjQUFjO0VBQ2QsdUJBQXVCO0VBQ3ZCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsOEJBQThCO0VBQzlCLFlBQVksRUFBQTs7QUFKZDtJQU9JLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsbUJBQW1CLEVBQUE7O0FBWnZCO01BZU0sZ0JBQWdCLEVBQUE7O0FBZnRCO1FBa0JRLGtCQUFrQixFQUFBOztBQWxCMUI7UUFzQlEsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixjQUFjLEVBQUE7O0FBeEJ0QjtRQTRCUSxvQkFBb0IsRUFBQTs7QUE1QjVCO0lBa0NJLGFBQWE7SUFDYixjQUFjO0lBQ2QsV0FBVztJQUNYLGNBQWMsRUFBQTs7QUFyQ2xCO01Bd0NNLFdBQVcsRUFBQTs7QUF4Q2pCO1FBMkNRLGtCQUFrQixFQUFBOztBQTNDMUI7TUFnRE0sZUFBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvdHlwaW5nLW1lc3NhZ2UvdHlwaW5nLW1lc3NhZ2UuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uaGVhZCB7XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgbWFyZ2luOiAtM3JlbSAtM3JlbSAwO1xyXG59XHJcblxyXG4ubWVzc2FnZXMtY29udGVudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBmbGV4LWdyb3c6IDE7XHJcblxyXG4gIC5tZXNzYWdlcy1saXN0IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBtYXJnaW46IDFyZW0gLTNyZW07XHJcbiAgICBwYWRkaW5nOiAwIDNyZW07XHJcbiAgICBvdmVyZmxvdy15OiBvdmVybGF5O1xyXG5cclxuICAgIGRpdiB7XHJcbiAgICAgIG1hcmdpbjogMC43cmVtIDA7XHJcblxyXG4gICAgICAmLmRhdGUge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5teSwgJi5idWRkeSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHBhZGRpbmc6IDEuOHJlbTtcclxuICAgICAgICBtYXgtd2lkdGg6IDYwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5idWRkeSB7XHJcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50eXBlLW1lc3NhZ2Uge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXg6IDAgMCBhdXRvO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDQuMnJlbTtcclxuXHJcbiAgICAuaW5wdXQtYmxvY2sge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgID4gdGV4dGFyZWEge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDQuMnJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGZsZXg6IDAgMCAxNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-typing-message',\r\n templateUrl: './typing-message.component.html',\r\n styleUrls: ['./typing-message.component.scss']\r\n})\r\nexport class TypingMessageComponent implements OnInit {\r\n\r\n messagesId: number;\r\n private subMessages: any;\r\n\r\n constructor(private route: ActivatedRoute) {\r\n this.route.params.subscribe( params => console.log(params) );\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{variablesService.currentWallet.name}}\\r\\n {{ 'BREADCRUMBS.WALLET_DETAILS' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    = variablesService.maxWalletNameLength\\\">\\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\\r\\n

    \\r\\n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }} \\r\\n 0\\\">{{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }} \\r\\n

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    = 1 && (index + 1) <= 7 || (index + 1) >= 15 && (index + 1) <= 21\\\">\\r\\n {{(index + 1) + '. ' + word}}
    \\r\\n
    \\r\\n
    \\r\\n
    0\\\">\\r\\n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \"","module.exports = \".form-details {\\n margin-top: 1.8rem; }\\n .form-details .input-block:first-child {\\n width: 50%; }\\n .form-details .wallet-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: space-between; }\\n .form-details .wallet-buttons button {\\n margin: 2.9rem 0;\\n width: 100%;\\n max-width: 15rem; }\\n .mt-2 {\\n margin-top: 2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvd2FsbGV0LWRldGFpbHMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcd2FsbGV0LWRldGFpbHNcXHdhbGxldC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCLEVBQUE7RUFEcEI7SUFNTSxVQUFVLEVBQUE7RUFOaEI7SUFXSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4QixFQUFBO0VBYmxDO01BZ0JNLGdCQUFnQjtNQUNoQixXQUFXO01BQ1gsZ0JBQWdCLEVBQUE7RUFLdEI7RUFDRSxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3dhbGxldC1kZXRhaWxzL3dhbGxldC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tZGV0YWlscyB7XHJcbiAgbWFyZ2luLXRvcDogMS44cmVtO1xyXG5cclxuICAuaW5wdXQtYmxvY2sge1xyXG5cclxuICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLndhbGxldC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMi45cmVtIDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXgtd2lkdGg6IDE1cmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm10LTIge1xyXG4gIG1hcmdpbi10b3A6IDJyZW07XHJcbn1cclxuIl19 */\"","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-wallet-details',\r\n templateUrl: './wallet-details.component.html',\r\n styleUrls: ['./wallet-details.component.scss'],\r\n})\r\nexport class WalletDetailsComponent implements OnInit, OnDestroy {\r\n seedPhrase = '';\r\n showSeed = false;\r\n copyAnimation = false;\r\n\r\n detailsForm = new FormGroup({\r\n name: new FormControl('', [\r\n Validators.required,\r\n (g: FormControl) => {\r\n for (let i = 0; i < this.variablesService.wallets.length; i++) {\r\n if (g.value === this.variablesService.wallets[i].name) {\r\n if (\r\n this.variablesService.wallets[i].wallet_id ===\r\n this.variablesService.currentWallet.wallet_id\r\n ) {\r\n return { same: true };\r\n } else {\r\n return { duplicate: true };\r\n }\r\n }\r\n }\r\n return null;\r\n },\r\n ]),\r\n path: new FormControl(''),\r\n });\r\n\r\n seedPhraseForm = new FormGroup(\r\n {\r\n password: new FormControl(\r\n '',\r\n Validators.pattern(this.variablesService.pattern)\r\n ),\r\n confirmPassword: new FormControl(\r\n '',\r\n Validators.pattern(this.variablesService.pattern)\r\n ),\r\n },\r\n { validators: this.checkPasswords }\r\n );\r\n\r\n checkPasswords(group: FormGroup) {\r\n const pass = group.controls.password.value;\r\n const confirmPass = group.controls.confirmPassword.value;\r\n\r\n return pass === confirmPass ? null : { notSame: true };\r\n }\r\n\r\n constructor(\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private ngZone: NgZone,\r\n private location: Location\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.showSeed = false;\r\n this.detailsForm\r\n .get('name')\r\n .setValue(this.variablesService.currentWallet.name);\r\n this.detailsForm\r\n .get('path')\r\n .setValue(this.variablesService.currentWallet.path);\r\n }\r\n\r\n showSeedPhrase() {\r\n this.showSeed = true;\r\n }\r\n\r\n onSubmitSeed() {\r\n if (this.seedPhraseForm.valid) {\r\n this.showSeedPhrase();\r\n const wallet_id = this.variablesService.currentWallet.wallet_id;\r\n const seed_password = this.seedPhraseForm.controls.password.value;\r\n this.backend.getSmartWalletInfo(\r\n { wallet_id, seed_password },\r\n (status, data) => {\r\n if (data.hasOwnProperty('seed_phrase')) {\r\n this.ngZone.run(() => {\r\n this.seedPhrase = data['seed_phrase'].trim();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n onSubmitEdit() {\r\n if (this.detailsForm.value) {\r\n this.variablesService.currentWallet.name = this.detailsForm.get(\r\n 'name'\r\n ).value;\r\n this.ngZone.run(() => {\r\n this.router.navigate([\r\n '/wallet/' + this.variablesService.currentWallet.wallet_id,\r\n ]);\r\n });\r\n }\r\n }\r\n\r\n closeWallet() {\r\n this.backend.closeWallet(\r\n this.variablesService.currentWallet.wallet_id,\r\n () => {\r\n for (let i = this.variablesService.wallets.length - 1; i >= 0; i--) {\r\n if (\r\n this.variablesService.wallets[i].wallet_id ===\r\n this.variablesService.currentWallet.wallet_id\r\n ) {\r\n this.variablesService.wallets.splice(i, 1);\r\n }\r\n }\r\n this.ngZone.run(() => {\r\n if (this.variablesService.wallets.length) {\r\n this.variablesService.currentWallet = this.variablesService.wallets[0];\r\n this.router.navigate([\r\n '/wallet/' + this.variablesService.currentWallet.wallet_id,\r\n ]);\r\n } else {\r\n this.router.navigate(['/']);\r\n }\r\n });\r\n if (this.variablesService.appPass) {\r\n this.backend.storeSecureAppData();\r\n }\r\n }\r\n );\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n ngOnDestroy() {\r\n\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n

    {{variablesService.currentWallet.name}}

    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{variablesService.currentWallet.alias['name']}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{variablesService.currentWallet.address}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n {{variablesService.currentWallet.balance | intToMoney : '3'}} {{variablesService.defaultCurrency}}\\r\\n $ {{variablesService.currentWallet.getMoneyEquivalent(variablesService.moneyEquivalent) | intToMoney | number : '1.2-2'}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ tab.title | translate }}\\r\\n {{variablesService.currentWallet.new_contracts}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n <\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n >\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide mining transactions\\r\\n
    \\r\\n {{ 'STAKING.SWITCH.ON' | translate }}\\r\\n \\r\\n {{ 'STAKING.SWITCH.OFF' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \":host {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n padding: 0 3rem 3rem;\\n min-width: 95rem;\\n width: 100%;\\n height: 100%; }\\n\\n.header {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n flex: 0 0 auto;\\n height: 8rem; }\\n\\n.header > div {\\n display: flex;\\n align-items: center; }\\n\\n.header > div :not(:last-child) {\\n margin-right: 3.2rem; }\\n\\n.header h3 {\\n font-size: 1.7rem;\\n font-weight: 600;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap;\\n max-width: 50rem;\\n line-height: 2.7rem; }\\n\\n.header button {\\n display: flex;\\n align-items: center;\\n background: transparent;\\n border: none;\\n cursor: pointer;\\n font-weight: 400;\\n outline: none;\\n padding: 0; }\\n\\n.header button .icon {\\n margin-right: 1.2rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.header button .icon.account {\\n height: 1.6rem;\\n -webkit-mask: url('account.svg') no-repeat center;\\n mask: url('account.svg') no-repeat center; }\\n\\n.header button .icon.lock {\\n -webkit-mask: url('lock.svg') no-repeat center;\\n mask: url('lock.svg') no-repeat center; }\\n\\n.header button .icon.details {\\n -webkit-mask: url('details-settings.svg') no-repeat center;\\n mask: url('details-settings.svg') no-repeat center;\\n margin-right: 0;\\n height: 1.8rem; }\\n\\n.header button .icon.close-wallet {\\n -webkit-mask: url('close-wallet.svg') no-repeat center;\\n mask: url('close-wallet.svg') no-repeat center;\\n margin-right: 0; }\\n\\n.header .alias {\\n display: flex;\\n align-items: center;\\n font-size: 1.3rem; }\\n\\n.header .alias .icon {\\n cursor: pointer;\\n margin-right: 1.2rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.header .alias .icon.edit {\\n -webkit-mask: url('details.svg') no-repeat center;\\n mask: url('details.svg') no-repeat center; }\\n\\n.header .alias .icon.transfer {\\n -webkit-mask: url('send.svg') no-repeat center;\\n mask: url('send.svg') no-repeat center; }\\n\\n.address {\\n display: flex;\\n align-items: center;\\n flex: 0 0 auto;\\n font-size: 1.4rem;\\n line-height: 1.7rem; }\\n\\n.address .icon {\\n cursor: pointer;\\n margin-left: 1.2rem;\\n width: 1.7rem;\\n height: 1.7rem; }\\n\\n.address .icon.copy {\\n width: 1.8rem;\\n -webkit-mask: url('copy.svg') no-repeat center;\\n mask: url('copy.svg') no-repeat center; }\\n\\n.address .icon.copy:hover {\\n opacity: 0.75; }\\n\\n.address .icon.copied {\\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\\n mask: url('complete-testwallet.svg') no-repeat center; }\\n\\n.balance {\\n display: flex;\\n align-items: flex-end;\\n justify-content: flex-start;\\n flex: 0 0 auto;\\n margin: 2.6rem 0; }\\n\\n.balance :first-child {\\n font-size: 3.3rem;\\n font-weight: 600;\\n line-height: 2.4rem;\\n margin-right: 3.5rem; }\\n\\n.balance :last-child {\\n font-size: 1.8rem;\\n font-weight: 600;\\n line-height: 1.3rem; }\\n\\n.tabs {\\n display: flex;\\n flex-direction: column;\\n flex: 1 1 auto; }\\n\\n.tabs .tabs-header {\\n display: flex;\\n justify-content: space-between;\\n flex: 0 0 auto; }\\n\\n.tabs .tabs-header .tab {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex: 1 0 auto;\\n cursor: pointer;\\n padding: 0 1rem;\\n height: 5rem; }\\n\\n.tabs .tabs-header .tab.hide {\\n display: none; }\\n\\n.tabs .tabs-header .tab .animated {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin-right: 1.3rem; }\\n\\n.tabs .tabs-header .tab .animated ::ng-deep svg {\\n width: 2rem;\\n height: 2rem; }\\n\\n.tabs .tabs-header .tab .animated ::ng-deep svg path, .tabs .tabs-header .tab .animated ::ng-deep svg circle, .tabs .tabs-header .tab .animated ::ng-deep svg polygon {\\n fill: #4db1ff; }\\n\\n.tabs .tabs-header .tab .icon {\\n margin-right: 1.3rem;\\n width: 2rem;\\n height: 2rem; }\\n\\n.tabs .tabs-header .tab .icon.send {\\n -webkit-mask: url('send.svg') no-repeat center;\\n mask: url('send.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.receive {\\n -webkit-mask: url('receive.svg') no-repeat center;\\n mask: url('receive.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.history {\\n -webkit-mask: url('history.svg') no-repeat center;\\n mask: url('history.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.contracts {\\n -webkit-mask: url('contracts.svg') no-repeat center;\\n mask: url('contracts.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.messages {\\n -webkit-mask: url('message.svg') no-repeat center;\\n mask: url('message.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .icon.staking {\\n -webkit-mask: url('staking.svg') no-repeat center;\\n mask: url('staking.svg') no-repeat center; }\\n\\n.tabs .tabs-header .tab .indicator {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 1rem;\\n font-size: 1rem;\\n font-weight: 600;\\n margin-left: 1.3rem;\\n padding: 0 0.5rem;\\n min-width: 1.6rem;\\n height: 1.6rem; }\\n\\n.tabs .tabs-header .tab.disabled {\\n cursor: url('not-allowed.svg'), not-allowed; }\\n\\n.tabs .tabs-header .tab:not(:last-child) {\\n margin-right: 0.3rem; }\\n\\n.tabs .tabs-content {\\n display: flex;\\n padding: 3rem;\\n flex: 1 1 auto;\\n overflow-x: hidden;\\n overflow-y: overlay; }\\n\\n.tabs .pagination-wrapper .pagination {\\n padding: 1rem;\\n display: flex;\\n justify-content: space-between;\\n align-items: center; }\\n\\n.tabs .pagination-wrapper .pagination button {\\n margin-right: 0.5rem;\\n padding: 0;\\n width: 2.5rem;\\n height: 2.5rem;\\n font-size: 1.2rem;\\n transition: all 0.3s; }\\n\\n.tabs .pagination-wrapper .pagination .disabled {\\n background-color: #18202a;\\n color: #e0e0e0;\\n opacity: 0.3;\\n cursor: default;\\n transition: all 0.3s; }\\n\\n.mining-transaction-switch {\\n display: flex;\\n align-items: center; }\\n\\n.mining-transaction-switch .switch-text {\\n margin-right: 1rem;\\n font-size: 1.3rem;\\n color: #565c62; }\\n\\n.mining-transaction-switch .switch {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n border-radius: 1rem;\\n cursor: pointer;\\n font-size: 1rem;\\n padding: 0.5rem;\\n width: 5rem;\\n height: 2rem; }\\n\\n.mining-transaction-switch .switch .circle {\\n border-radius: 1rem;\\n width: 1.2rem;\\n height: 1.2rem; }\\n\\n.mining-transaction-switch .switch .option {\\n margin: 0 0.2rem;\\n line-height: 1.2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvd2FsbGV0L0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhcHBcXHdhbGxldFxcd2FsbGV0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsb0JBQW9CO0VBQ3BCLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsWUFBWSxFQUFBOztBQUdkO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsY0FBYztFQUNkLFlBQVksRUFBQTs7QUFMZDtJQVFJLGFBQWE7SUFDYixtQkFBbUIsRUFBQTs7QUFUdkI7TUFZTSxvQkFBb0IsRUFBQTs7QUFaMUI7SUFpQkksaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQix1QkFBdUI7SUFDdkIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsbUJBQW1CLEVBQUE7O0FBdkJ2QjtJQTJCSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixZQUFZO0lBQ1osZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixhQUFhO0lBQ2IsVUFBVSxFQUFBOztBQWxDZDtNQXFDTSxvQkFBb0I7TUFDcEIsYUFBYTtNQUNiLGNBQWMsRUFBQTs7QUF2Q3BCO1FBMENRLGNBQWM7UUFDZCxpREFBMEQ7Z0JBQTFELHlDQUEwRCxFQUFBOztBQTNDbEU7UUErQ1EsOENBQXVEO2dCQUF2RCxzQ0FBdUQsRUFBQTs7QUEvQy9EO1FBbURRLDBEQUFtRTtnQkFBbkUsa0RBQW1FO1FBQ25FLGVBQWU7UUFDZixjQUFjLEVBQUE7O0FBckR0QjtRQXlEUSxzREFBK0Q7Z0JBQS9ELDhDQUErRDtRQUMvRCxlQUFlLEVBQUE7O0FBMUR2QjtJQWdFSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGlCQUFpQixFQUFBOztBQWxFckI7TUFxRU0s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QVksRUFBQTs7QUFsQmhCO01BcUJNLG1CQUFtQjtNQUNuQixhQUFhO01BQ2IsY0FBYyxFQUFBOztBQXZCcEI7TUEyQk0sZ0JBQWdCO01BQ2hCLG1CQUFtQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvd2FsbGV0L3dhbGxldC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHBhZGRpbmc6IDAgM3JlbSAzcmVtO1xyXG4gIG1pbi13aWR0aDogOTVyZW07XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uaGVhZGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIGhlaWdodDogOHJlbTtcclxuXHJcbiAgPiBkaXYge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDMuMnJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGgzIHtcclxuICAgIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBtYXgtd2lkdGg6IDUwcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjJyZW07XHJcbiAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgIGhlaWdodDogMS43cmVtO1xyXG5cclxuICAgICAgJi5hY2NvdW50IHtcclxuICAgICAgICBoZWlnaHQ6IDEuNnJlbTtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2FjY291bnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmxvY2sge1xyXG4gICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvbG9jay5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuZGV0YWlscyB7XHJcbiAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9kZXRhaWxzLXNldHRpbmdzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiAxLjhyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuY2xvc2Utd2FsbGV0IHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2Nsb3NlLXdhbGxldC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuYWxpYXMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjJyZW07XHJcbiAgICAgIHdpZHRoOiAxLjdyZW07XHJcbiAgICAgIGhlaWdodDogMS43cmVtO1xyXG5cclxuICAgICAgJi5lZGl0IHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL2RldGFpbHMuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnRyYW5zZmVyIHtcclxuICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3NlbmQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uYWRkcmVzcyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjdyZW07XHJcblxyXG4gIC5pY29uIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07XHJcbiAgICB3aWR0aDogMS43cmVtO1xyXG4gICAgaGVpZ2h0OiAxLjdyZW07XHJcblxyXG4gICAgJi5jb3B5IHtcclxuICAgICAgd2lkdGg6IDEuOHJlbTtcclxuICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9jb3B5LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIG9wYWNpdHk6IDAuNzU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmNvcGllZCB7XHJcbiAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvY29tcGxldGUtdGVzdHdhbGxldC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uYmFsYW5jZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIG1hcmdpbjogMi42cmVtIDA7XHJcblxyXG4gIDpmaXJzdC1jaGlsZCB7XHJcbiAgICBmb250LXNpemU6IDMuM3JlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAzLjVyZW07XHJcbiAgfVxyXG5cclxuICA6bGFzdC1jaGlsZCB7XHJcbiAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zcmVtO1xyXG4gIH1cclxufVxyXG5cclxuLnRhYnMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBmbGV4OiAxIDEgYXV0bztcclxuXHJcbiAgLnRhYnMtaGVhZGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBmbGV4OiAwIDAgYXV0bztcclxuXHJcbiAgICAudGFiIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICAgICAgaGVpZ2h0OiA1cmVtO1xyXG4gICAgICAmLmhpZGUge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgICAgLmFuaW1hdGVkIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjNyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5hbmltYXRlZCA6Om5nLWRlZXAgc3ZnIHtcclxuXHJcbiAgICAgICAgd2lkdGg6IDJyZW07XHJcbiAgICAgICAgaGVpZ2h0OiAycmVtO1xyXG5cclxuICAgICAgICBwYXRoLCBjaXJjbGUsIHBvbHlnb24ge1xyXG4gICAgICAgICAgZmlsbDogIzRkYjFmZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5pY29uIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuM3JlbTtcclxuICAgICAgICB3aWR0aDogMnJlbTtcclxuICAgICAgICBoZWlnaHQ6IDJyZW07XHJcblxyXG4gICAgICAgICYuc2VuZCB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3NlbmQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5yZWNlaXZlIHtcclxuICAgICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvcmVjZWl2ZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmhpc3Rvcnkge1xyXG4gICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9oaXN0b3J5LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuY29udHJhY3RzIHtcclxuICAgICAgICAgIG1hc2s6IHVybCguLi8uLi9hc3NldHMvaWNvbnMvY29udHJhY3RzLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYubWVzc2FnZXMge1xyXG4gICAgICAgICAgbWFzazogdXJsKC4uLy4uL2Fzc2V0cy9pY29ucy9tZXNzYWdlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuc3Rha2luZyB7XHJcbiAgICAgICAgICBtYXNrOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL3N0YWtpbmcuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmluZGljYXRvciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuM3JlbTtcclxuICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcclxuICAgICAgICBtaW4td2lkdGg6IDEuNnJlbTtcclxuICAgICAgICBoZWlnaHQ6IDEuNnJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5kaXNhYmxlZCB7XHJcbiAgICAgICAgY3Vyc29yOiB1cmwoLi4vLi4vYXNzZXRzL2ljb25zL25vdC1hbGxvd2VkLnN2ZyksIG5vdC1hbGxvd2VkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMC4zcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudGFicy1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBwYWRkaW5nOiAzcmVtO1xyXG4gICAgZmxleDogMSAxIGF1dG87XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICBvdmVyZmxvdy15OiBvdmVybGF5O1xyXG4gIH1cclxuXHJcblxyXG4gIC5wYWdpbmF0aW9uLXdyYXBwZXIge1xyXG4gICAgLnBhZ2luYXRpb24ge1xyXG4gICAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB3aWR0aDogMi41cmVtO1xyXG4gICAgICAgIGhlaWdodDogMi41cmVtO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG4gICAgICB9XHJcbiAgICAgIC5kaXNhYmxlZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE4MjAyYTtcclxuICAgICAgICBjb2xvcjogI2UwZTBlMDtcclxuICAgICAgICBvcGFjaXR5OiAwLjM7XHJcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubWluaW5nLXRyYW5zYWN0aW9uLXN3aXRjaCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIC5zd2l0Y2gtdGV4dCB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIGNvbG9yOiAjNTY1YzYyO1xyXG4gIH1cclxuXHJcbiAgLnN3aXRjaCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICBwYWRkaW5nOiAwLjVyZW07XHJcbiAgICB3aWR0aDogNXJlbTtcclxuICAgIGhlaWdodDogMnJlbTtcclxuXHJcbiAgICAuY2lyY2xlIHtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcclxuICAgICAgd2lkdGg6IDEuMnJlbTtcclxuICAgICAgaGVpZ2h0OiAxLjJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLm9wdGlvbiB7XHJcbiAgICAgIG1hcmdpbjogMCAwLjJyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0= */\"","import {\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n NgZone,\r\n ViewChild,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport { ActivatedRoute, Router, RoutesRecognized } from '@angular/router';\r\nimport { VariablesService } from '../_helpers/services/variables.service';\r\nimport { BackendService } from '../_helpers/services/backend.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { IntToMoneyPipe } from '../_helpers/pipes/int-to-money.pipe';\r\nimport { Subscription } from 'rxjs';\r\nimport { LOCKED_BALANCE_HELP_PAGE } from '../_shared/constants';\r\n\r\nimport icons from '../../assets/icons/icons.json';\r\nimport { PaginationService } from '../_helpers/services/pagination.service';\r\nimport { PaginationStore } from '../_helpers/services/pagination.store';\r\nimport { Store, Sync } from 'store';\r\nimport { Wallet } from '../_helpers/models/wallet.model';\r\nimport { distinctUntilChanged, filter } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-wallet',\r\n templateUrl: './wallet.component.html',\r\n styleUrls: ['./wallet.component.scss'],\r\n})\r\nexport class WalletComponent implements OnInit, OnDestroy {\r\n subRouting1;\r\n subRouting2;\r\n queryRouting;\r\n walletID;\r\n copyAnimation = false;\r\n copyAnimationTimeout;\r\n balanceTooltip;\r\n walletLoaded;\r\n activeTab = 'history';\r\n public mining = false;\r\n public currentPage = 1;\r\n wallet: Wallet;\r\n sync_started = false;\r\n stop_paginate = false;\r\n\r\n @ViewChild('scrolledContent') private scrolledContent: ElementRef;\r\n\r\n tabs = [\r\n {\r\n title: 'WALLET.TABS.HISTORY',\r\n icon: 'history',\r\n link: '/history',\r\n indicator: false,\r\n active: true,\r\n animated: icons.history,\r\n itemHovered: false,\r\n },\r\n {\r\n title: 'WALLET.TABS.SEND',\r\n icon: 'send',\r\n link: '/send',\r\n indicator: false,\r\n active: false,\r\n animated: icons.send,\r\n itemHovered: false,\r\n },\r\n {\r\n title: 'WALLET.TABS.RECEIVE',\r\n icon: 'receive',\r\n link: '/receive',\r\n indicator: false,\r\n active: false,\r\n animated: icons.receive,\r\n itemHovered: false,\r\n },\r\n {\r\n title: 'WALLET.TABS.CONTRACTS',\r\n icon: 'contracts',\r\n link: '/contracts',\r\n indicator: 1,\r\n active: false,\r\n animated: icons.contracts,\r\n itemHovered: false,\r\n },\r\n /*{\r\n title: 'WALLET.TABS.MESSAGES',\r\n icon: 'messages',\r\n link: '/messages',\r\n indicator: 32,\r\n active: false,\r\n animated: icons.messages,\r\n itemHovered: false\r\n },*/\r\n {\r\n title: 'WALLET.TABS.STAKING',\r\n icon: 'staking',\r\n link: '/staking',\r\n indicator: false,\r\n active: false,\r\n animated: icons.staking,\r\n itemHovered: false,\r\n },\r\n ];\r\n aliasSubscription: Subscription;\r\n walletsSubscription: Subscription;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private backend: BackendService,\r\n public variablesService: VariablesService,\r\n private ngZone: NgZone,\r\n private translate: TranslateService,\r\n private intToMoneyPipe: IntToMoneyPipe,\r\n private pagination: PaginationService,\r\n private paginationStore: PaginationStore,\r\n private store: Store\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subRouting1 = this.route.params.subscribe((params) => {\r\n // set current wallet only by user click to avoid after sync show synchronized data\r\n this.walletID = +params['id'];\r\n this.walletLoaded = this.variablesService.getWallet(this.walletID).loaded;\r\n this.variablesService.setCurrentWallet(this.walletID);\r\n this.walletsSubscription = this.store\r\n .select('sync')\r\n .pipe(filter(Boolean), distinctUntilChanged())\r\n .subscribe((value) => {\r\n const data = value.filter(\r\n (item: Sync) => item.wallet_id === this.walletID\r\n )[0];\r\n if (data && !data.sync) {\r\n let in_progress;\r\n const values = this.store.value.sync;\r\n if (values && values.length) {\r\n in_progress = values.filter((item) => item.sync);\r\n this.variablesService.sync_started = !!(\r\n in_progress && in_progress.length\r\n );\r\n if (!in_progress) {\r\n this.variablesService.sync_started = false;\r\n }\r\n } else {\r\n this.variablesService.sync_started = false;\r\n }\r\n }\r\n let restore = false;\r\n if (\r\n this.variablesService.after_sync_request.hasOwnProperty(\r\n this.walletID\r\n )\r\n ) {\r\n restore = this.variablesService.after_sync_request[this.walletID];\r\n }\r\n if (\r\n !this.variablesService.sync_started &&\r\n restore &&\r\n this.walletID === (data && data.wallet_id)\r\n ) {\r\n this.wallet = this.variablesService.getNotLoadedWallet();\r\n if (this.wallet) {\r\n this.tick();\r\n }\r\n // if this is was restore wallet and it was selected on moment when sync completed\r\n this.getRecentTransfers();\r\n this.variablesService.after_sync_request[this.walletID] = false;\r\n }\r\n });\r\n let after_sync_request = false;\r\n if (\r\n this.variablesService.after_sync_request.hasOwnProperty(this.walletID)\r\n ) {\r\n after_sync_request = this.variablesService.after_sync_request[\r\n this.walletID\r\n ];\r\n }\r\n if (after_sync_request && !this.variablesService.sync_started) {\r\n // if user click on the wallet at the first time after restore.\r\n this.getRecentTransfers();\r\n }\r\n\r\n if (this.variablesService.stop_paginate.hasOwnProperty(this.walletID)) {\r\n this.stop_paginate = this.variablesService.stop_paginate[this.walletID];\r\n } else {\r\n this.stop_paginate = false;\r\n }\r\n // this will hide pagination a bit earlier\r\n this.wallet = this.variablesService.getNotLoadedWallet();\r\n if (this.wallet) {\r\n this.tick();\r\n }\r\n\r\n this.scrolledContent.nativeElement.scrollTop = 0;\r\n clearTimeout(this.copyAnimationTimeout);\r\n this.copyAnimation = false;\r\n this.mining = this.variablesService.currentWallet.exclude_mining_txs;\r\n\r\n if (this.variablesService.wallets.length === 1) {\r\n this.walletID = +params['id'];\r\n this.variablesService.setCurrentWallet(this.walletID);\r\n }\r\n });\r\n this.subRouting2 = this.router.events.subscribe((val) => {\r\n if (val instanceof RoutesRecognized) {\r\n this.activeTab = val.urlAfterRedirects\r\n .replace('?sidenav=true', '')\r\n .split('/')\r\n .pop();\r\n if (val.state.root.firstChild && val.state.root.firstChild.firstChild) {\r\n for (let i = 0; i < this.tabs.length; i++) {\r\n this.tabs[i].active =\r\n this.tabs[i].link ===\r\n '/' + val.state.root.firstChild.firstChild.url[0].path;\r\n }\r\n }\r\n }\r\n });\r\n this.queryRouting = this.route.queryParams.subscribe((params) => {\r\n if (params.send) {\r\n this.tabs.forEach((tab, index) => {\r\n if (tab.link === '/send') {\r\n this.changeTab(index);\r\n }\r\n });\r\n }\r\n });\r\n if (this.variablesService.currentWallet.alias.hasOwnProperty('name')) {\r\n this.variablesService.currentWallet.wakeAlias = false;\r\n }\r\n this.aliasSubscription = this.variablesService.getAliasChangedEvent.subscribe(\r\n () => {\r\n if (this.variablesService.currentWallet.alias.hasOwnProperty('name')) {\r\n this.variablesService.currentWallet.wakeAlias = false;\r\n }\r\n }\r\n );\r\n this.updateWalletStatus();\r\n }\r\n resetPaginationValues() {\r\n this.ngZone.run(() => {\r\n const total_history_item = this.variablesService.currentWallet\r\n .total_history_item;\r\n const count = this.variablesService.count;\r\n this.variablesService.currentWallet.totalPages = Math.ceil(\r\n total_history_item / count\r\n );\r\n this.variablesService.currentWallet.exclude_mining_txs = this.mining;\r\n this.variablesService.currentWallet.currentPage = 1;\r\n\r\n if (!this.variablesService.currentWallet.totalPages) {\r\n this.variablesService.currentWallet.totalPages = 1;\r\n }\r\n this.variablesService.currentWallet.totalPages >\r\n this.variablesService.maxPages\r\n ? (this.variablesService.currentWallet.pages = new Array(5)\r\n .fill(1)\r\n .map((value, index) => value + index))\r\n : (this.variablesService.currentWallet.pages = new Array(\r\n this.variablesService.currentWallet.totalPages\r\n )\r\n .fill(1)\r\n .map((value, index) => value + index));\r\n });\r\n }\r\n\r\n changeTab(index) {\r\n if (\r\n ((this.tabs[index].link === '/send' ||\r\n this.tabs[index].link === '/contracts' ||\r\n this.tabs[index].link === '/staking') &&\r\n (this.variablesService.daemon_state !== 2 ||\r\n !this.variablesService.currentWallet.loaded)) ||\r\n ((this.tabs[index].link === '/send' ||\r\n this.tabs[index].link === '/contracts') &&\r\n this.variablesService.currentWallet.is_watch_only &&\r\n this.variablesService.currentWallet.is_auditable)\r\n ) {\r\n return;\r\n }\r\n this.tabs.forEach((tab) => {\r\n tab.active = false;\r\n });\r\n this.tabs[index].active = true;\r\n this.ngZone.run(() => {\r\n this.scrolledContent.nativeElement.scrollTop = 0;\r\n this.router.navigate(['wallet/' + this.walletID + this.tabs[index].link]);\r\n });\r\n }\r\n\r\n itemHovered(index, state: boolean) {\r\n this.tabs[index].itemHovered = state;\r\n }\r\n\r\n copyAddress() {\r\n this.backend.setClipboard(this.variablesService.currentWallet.address);\r\n this.copyAnimation = true;\r\n this.copyAnimationTimeout = window.setTimeout(() => {\r\n this.copyAnimation = false;\r\n }, 2000);\r\n }\r\n\r\n getTooltip() {\r\n this.balanceTooltip = document.createElement('div');\r\n const available = document.createElement('span');\r\n available.setAttribute('class', 'available');\r\n available.innerHTML = this.translate.instant('WALLET.AVAILABLE_BALANCE', {\r\n available: this.intToMoneyPipe.transform(\r\n this.variablesService.currentWallet.unlocked_balance\r\n ),\r\n currency: this.variablesService.defaultCurrency,\r\n });\r\n this.balanceTooltip.appendChild(available);\r\n const locked = document.createElement('span');\r\n locked.setAttribute('class', 'locked');\r\n locked.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE', {\r\n locked: this.intToMoneyPipe.transform(\r\n this.variablesService.currentWallet.balance.minus(\r\n this.variablesService.currentWallet.unlocked_balance\r\n )\r\n ),\r\n currency: this.variablesService.defaultCurrency,\r\n });\r\n this.balanceTooltip.appendChild(locked);\r\n const link = document.createElement('span');\r\n link.setAttribute('class', 'link');\r\n link.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE_LINK');\r\n link.addEventListener('click', () => {\r\n this.openInBrowser(LOCKED_BALANCE_HELP_PAGE);\r\n });\r\n this.balanceTooltip.appendChild(link);\r\n return this.balanceTooltip;\r\n }\r\n\r\n onHideTooltip() {\r\n this.balanceTooltip = null;\r\n }\r\n\r\n openInBrowser(link) {\r\n this.backend.openUrlInBrowser(link);\r\n }\r\n\r\n public setPage(pageNumber: number) {\r\n // this is will allow pagination for wallets that was open from existed wallets'\r\n if (\r\n this.variablesService.currentWallet.open_from_exist &&\r\n !this.variablesService.currentWallet.updated\r\n ) {\r\n this.variablesService.get_recent_transfers = false;\r\n this.variablesService.currentWallet.updated = true;\r\n }\r\n if (pageNumber === this.variablesService.currentWallet.currentPage) {\r\n return;\r\n }\r\n // if not running get_recent_transfers callback\r\n if (!this.variablesService.get_recent_transfers) {\r\n this.variablesService.currentWallet.currentPage = pageNumber;\r\n }\r\n if (!this.variablesService.get_recent_transfers) {\r\n this.getRecentTransfers();\r\n }\r\n }\r\n\r\n toggleMiningTransactions() {\r\n if (!this.variablesService.sync_started && !this.wallet) {\r\n const value = this.paginationStore.value;\r\n if (!value) {\r\n this.paginationStore.setPage(1, 0, this.walletID); // add back page for the first page\r\n } else {\r\n const pages = value.filter((item) => item.walletID === this.walletID);\r\n if (!pages.length) {\r\n this.paginationStore.setPage(1, 0, this.walletID); // add back page for the first page\r\n }\r\n }\r\n this.mining = !this.mining;\r\n this.resetPaginationValues();\r\n this.getRecentTransfers();\r\n }\r\n }\r\n\r\n tick() {\r\n const walletInterval = setInterval(() => {\r\n this.wallet = this.variablesService.getNotLoadedWallet();\r\n if (!this.wallet) {\r\n clearInterval(walletInterval);\r\n }\r\n }, 1000);\r\n }\r\n\r\n getRecentTransfers() {\r\n const offset = this.pagination.getOffset(this.walletID);\r\n const value = this.paginationStore.value;\r\n const pages = value\r\n ? value.filter((item) => item.walletID === this.walletID)\r\n : [];\r\n\r\n this.backend.getRecentTransfers(\r\n this.walletID,\r\n offset,\r\n this.variablesService.count,\r\n this.variablesService.currentWallet.exclude_mining_txs,\r\n (status, data) => {\r\n const isForward = this.paginationStore.isForward(\r\n pages,\r\n this.variablesService.currentWallet.currentPage\r\n );\r\n if (this.mining && isForward && pages && pages.length === 1) {\r\n this.variablesService.currentWallet.currentPage = 1; // set init page after navigation back\r\n }\r\n\r\n const history = data && data.history;\r\n this.variablesService.stop_paginate[this.walletID] =\r\n (history && history.length < this.variablesService.count) || !history;\r\n this.stop_paginate = this.variablesService.stop_paginate[this.walletID];\r\n if (!this.variablesService.stop_paginate[this.walletID]) {\r\n const page = this.variablesService.currentWallet.currentPage + 1;\r\n if (\r\n isForward &&\r\n this.mining &&\r\n history &&\r\n history.length === this.variablesService.count\r\n ) {\r\n this.paginationStore.setPage(\r\n page,\r\n data.last_item_index,\r\n this.walletID\r\n ); // add back page for current page\r\n }\r\n }\r\n\r\n this.pagination.calcPages(data);\r\n this.pagination.prepareHistory(data, status);\r\n\r\n this.ngZone.run(() => {\r\n this.variablesService.get_recent_transfers = false;\r\n if (\r\n this.variablesService.after_sync_request.hasOwnProperty(\r\n this.walletID\r\n )\r\n ) {\r\n // this is will complete get_recent_transfers request\r\n // this will switch of\r\n this.variablesService.after_sync_request[this.walletID] = false;\r\n }\r\n });\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subRouting1.unsubscribe();\r\n this.subRouting2.unsubscribe();\r\n this.queryRouting.unsubscribe();\r\n this.aliasSubscription.unsubscribe();\r\n if (this.walletsSubscription) {\r\n this.walletsSubscription.unsubscribe();\r\n }\r\n clearTimeout(this.copyAnimationTimeout);\r\n }\r\n\r\n updateWalletStatus() {\r\n this.backend.eventSubscribe('wallet_sync_progress', (data) => {\r\n const wallet_id = data.wallet_id;\r\n if (wallet_id === this.walletID) {\r\n this.ngZone.run(() => {\r\n this.walletLoaded = false;\r\n });\r\n }\r\n });\r\n this.backend.eventSubscribe('update_wallet_status', (data) => {\r\n const wallet_state = data.wallet_state;\r\n const wallet_id = data.wallet_id;\r\n this.ngZone.run(() => {\r\n if (wallet_state === 2 && wallet_id === this.walletID) {\r\n this.walletLoaded =\r\n this.variablesService.getWallet(this.walletID) !== null &&\r\n this.variablesService.getWallet(this.walletID).loaded\r\n ? true\r\n : false;\r\n } else {\r\n this.walletLoaded = false;\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\nimport 'lodash';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","import { pluck, distinctUntilChanged } from 'rxjs/operators';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { Wallet } from './app/_helpers/models/wallet.model';\r\nexport interface Sync {\r\n sync: boolean;\r\n wallet_id: number;\r\n}\r\n\r\nexport interface State {\r\n wallets: Wallet[];\r\n sync: Sync[];\r\n [key: string]: any;\r\n}\r\n\r\nconst state: State = {\r\n wallets: undefined,\r\n sync: undefined,\r\n};\r\n\r\nexport class Store {\r\n private subject = new BehaviorSubject(state);\r\n private store = this.subject.asObservable().pipe(distinctUntilChanged());\r\n\r\n get value() {\r\n return this.subject.value;\r\n }\r\n\r\n select(name: string): Observable {\r\n return this.store.pipe(pluck(name));\r\n }\r\n\r\n // tslint:disable-next-line:no-shadowed-variable\r\n set(name: string, state: any) {\r\n this.subject.next({ ...this.value, [name]: state });\r\n }\r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/src/gui/qt-daemon/html/message.svg b/src/gui/qt-daemon/html/message.svg deleted file mode 100644 index 544888cc..00000000 --- a/src/gui/qt-daemon/html/message.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/modal-alert.svg b/src/gui/qt-daemon/html/modal-alert.svg deleted file mode 100644 index bb5c7d02..00000000 --- a/src/gui/qt-daemon/html/modal-alert.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/modal-info.svg b/src/gui/qt-daemon/html/modal-info.svg deleted file mode 100644 index 0119fcc7..00000000 --- a/src/gui/qt-daemon/html/modal-info.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/modal-success.svg b/src/gui/qt-daemon/html/modal-success.svg deleted file mode 100644 index 60ad5a5d..00000000 --- a/src/gui/qt-daemon/html/modal-success.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/new.svg b/src/gui/qt-daemon/html/new.svg deleted file mode 100644 index 89622385..00000000 --- a/src/gui/qt-daemon/html/new.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/not-allowed.svg b/src/gui/qt-daemon/html/not-allowed.svg deleted file mode 100644 index 4fdfa78e..00000000 --- a/src/gui/qt-daemon/html/not-allowed.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/polyfills.js b/src/gui/qt-daemon/html/polyfills.js deleted file mode 100644 index 10acb49b..00000000 --- a/src/gui/qt-daemon/html/polyfills.js +++ /dev/null @@ -1,5810 +0,0 @@ -(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["polyfills"],{ - -/***/ "./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js ***! - \**************************************************************************************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var core_js_es7_reflect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/es7/reflect */ "./node_modules/core-js/es7/reflect.js"); -/* harmony import */ var core_js_es7_reflect__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_es7_reflect__WEBPACK_IMPORTED_MODULE_0__); -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - -/***/ }), - -/***/ "./node_modules/core-js/es7/reflect.js": -/*!*********************************************!*\ - !*** ./node_modules/core-js/es7/reflect.js ***! - \*********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(/*! ../modules/es7.reflect.define-metadata */ "./node_modules/core-js/modules/es7.reflect.define-metadata.js"); -__webpack_require__(/*! ../modules/es7.reflect.delete-metadata */ "./node_modules/core-js/modules/es7.reflect.delete-metadata.js"); -__webpack_require__(/*! ../modules/es7.reflect.get-metadata */ "./node_modules/core-js/modules/es7.reflect.get-metadata.js"); -__webpack_require__(/*! ../modules/es7.reflect.get-metadata-keys */ "./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js"); -__webpack_require__(/*! ../modules/es7.reflect.get-own-metadata */ "./node_modules/core-js/modules/es7.reflect.get-own-metadata.js"); -__webpack_require__(/*! ../modules/es7.reflect.get-own-metadata-keys */ "./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js"); -__webpack_require__(/*! ../modules/es7.reflect.has-metadata */ "./node_modules/core-js/modules/es7.reflect.has-metadata.js"); -__webpack_require__(/*! ../modules/es7.reflect.has-own-metadata */ "./node_modules/core-js/modules/es7.reflect.has-own-metadata.js"); -__webpack_require__(/*! ../modules/es7.reflect.metadata */ "./node_modules/core-js/modules/es7.reflect.metadata.js"); -module.exports = __webpack_require__(/*! ../modules/_core */ "./node_modules/core-js/modules/_core.js").Reflect; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_a-function.js": -/*!*****************************************************!*\ - !*** ./node_modules/core-js/modules/_a-function.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_an-instance.js": -/*!******************************************************!*\ - !*** ./node_modules/core-js/modules/_an-instance.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = function (it, Constructor, name, forbiddenField) { - if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { - throw TypeError(name + ': incorrect invocation!'); - } return it; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_an-object.js": -/*!****************************************************!*\ - !*** ./node_modules/core-js/modules/_an-object.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); -module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_array-from-iterable.js": -/*!**************************************************************!*\ - !*** ./node_modules/core-js/modules/_array-from-iterable.js ***! - \**************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); - -module.exports = function (iter, ITERATOR) { - var result = []; - forOf(iter, false, result.push, result, ITERATOR); - return result; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_array-includes.js": -/*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/_array-includes.js ***! - \*********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// false -> Array#indexOf -// true -> Array#includes -var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); -var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); -var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_array-methods.js": -/*!********************************************************!*\ - !*** ./node_modules/core-js/modules/_array-methods.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// 0 -> Array#forEach -// 1 -> Array#map -// 2 -> Array#filter -// 3 -> Array#some -// 4 -> Array#every -// 5 -> Array#find -// 6 -> Array#findIndex -var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); -var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js"); -var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); -var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); -var asc = __webpack_require__(/*! ./_array-species-create */ "./node_modules/core-js/modules/_array-species-create.js"); -module.exports = function (TYPE, $create) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - var create = $create || asc; - return function ($this, callbackfn, that) { - var O = toObject($this); - var self = IObject(O); - var f = ctx(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; - var val, res; - for (;length > index; index++) if (NO_HOLES || index in self) { - val = self[index]; - res = f(val, index, O); - if (TYPE) { - if (IS_MAP) result[index] = res; // map - else if (res) switch (TYPE) { - case 3: return true; // some - case 5: return val; // find - case 6: return index; // findIndex - case 2: result.push(val); // filter - } else if (IS_EVERY) return false; // every - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; - }; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_array-species-constructor.js": -/*!********************************************************************!*\ - !*** ./node_modules/core-js/modules/_array-species-constructor.js ***! - \********************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); -var isArray = __webpack_require__(/*! ./_is-array */ "./node_modules/core-js/modules/_is-array.js"); -var SPECIES = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('species'); - -module.exports = function (original) { - var C; - if (isArray(original)) { - C = original.constructor; - // cross-realm fallback - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } return C === undefined ? Array : C; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_array-species-create.js": -/*!***************************************************************!*\ - !*** ./node_modules/core-js/modules/_array-species-create.js ***! - \***************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// 9.4.2.3 ArraySpeciesCreate(originalArray, length) -var speciesConstructor = __webpack_require__(/*! ./_array-species-constructor */ "./node_modules/core-js/modules/_array-species-constructor.js"); - -module.exports = function (original, length) { - return new (speciesConstructor(original))(length); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_classof.js": -/*!**************************************************!*\ - !*** ./node_modules/core-js/modules/_classof.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// getting tag from 19.1.3.6 Object.prototype.toString() -var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); -var TAG = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('toStringTag'); -// ES3 wrong here -var ARG = cof(function () { return arguments; }()) == 'Arguments'; - -// fallback for IE11 Script Access Denied error -var tryGet = function (it, key) { - try { - return it[key]; - } catch (e) { /* empty */ } -}; - -module.exports = function (it) { - var O, T, B; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T - // builtinTag case - : ARG ? cof(O) - // ES3 arguments fallback - : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_cof.js": -/*!**********************************************!*\ - !*** ./node_modules/core-js/modules/_cof.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_collection-strong.js": -/*!************************************************************!*\ - !*** ./node_modules/core-js/modules/_collection-strong.js ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; -var create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js"); -var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js"); -var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); -var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); -var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); -var $iterDefine = __webpack_require__(/*! ./_iter-define */ "./node_modules/core-js/modules/_iter-define.js"); -var step = __webpack_require__(/*! ./_iter-step */ "./node_modules/core-js/modules/_iter-step.js"); -var setSpecies = __webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js"); -var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); -var fastKey = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").fastKey; -var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); -var SIZE = DESCRIPTORS ? '_s' : 'size'; - -var getEntry = function (that, key) { - // fast case - var index = fastKey(key); - var entry; - if (index !== 'F') return that._i[index]; - // frozen object case - for (entry = that._f; entry; entry = entry.n) { - if (entry.k == key) return entry; - } -}; - -module.exports = { - getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, NAME, '_i'); - that._t = NAME; // collection type - that._i = create(null); // index - that._f = undefined; // first entry - that._l = undefined; // last entry - that[SIZE] = 0; // size - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - }); - redefineAll(C.prototype, { - // 23.1.3.1 Map.prototype.clear() - // 23.2.3.2 Set.prototype.clear() - clear: function clear() { - for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) { - entry.r = true; - if (entry.p) entry.p = entry.p.n = undefined; - delete data[entry.i]; - } - that._f = that._l = undefined; - that[SIZE] = 0; - }, - // 23.1.3.3 Map.prototype.delete(key) - // 23.2.3.4 Set.prototype.delete(value) - 'delete': function (key) { - var that = validate(this, NAME); - var entry = getEntry(that, key); - if (entry) { - var next = entry.n; - var prev = entry.p; - delete that._i[entry.i]; - entry.r = true; - if (prev) prev.n = next; - if (next) next.p = prev; - if (that._f == entry) that._f = next; - if (that._l == entry) that._l = prev; - that[SIZE]--; - } return !!entry; - }, - // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) - // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) - forEach: function forEach(callbackfn /* , that = undefined */) { - validate(this, NAME); - var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); - var entry; - while (entry = entry ? entry.n : this._f) { - f(entry.v, entry.k, this); - // revert to the last existing entry - while (entry && entry.r) entry = entry.p; - } - }, - // 23.1.3.7 Map.prototype.has(key) - // 23.2.3.7 Set.prototype.has(value) - has: function has(key) { - return !!getEntry(validate(this, NAME), key); - } - }); - if (DESCRIPTORS) dP(C.prototype, 'size', { - get: function () { - return validate(this, NAME)[SIZE]; - } - }); - return C; - }, - def: function (that, key, value) { - var entry = getEntry(that, key); - var prev, index; - // change existing entry - if (entry) { - entry.v = value; - // create new entry - } else { - that._l = entry = { - i: index = fastKey(key, true), // <- index - k: key, // <- key - v: value, // <- value - p: prev = that._l, // <- previous entry - n: undefined, // <- next entry - r: false // <- removed - }; - if (!that._f) that._f = entry; - if (prev) prev.n = entry; - that[SIZE]++; - // add to index - if (index !== 'F') that._i[index] = entry; - } return that; - }, - getEntry: getEntry, - setStrong: function (C, NAME, IS_MAP) { - // add .keys, .values, .entries, [@@iterator] - // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 - $iterDefine(C, NAME, function (iterated, kind) { - this._t = validate(iterated, NAME); // target - this._k = kind; // kind - this._l = undefined; // previous - }, function () { - var that = this; - var kind = that._k; - var entry = that._l; - // revert to the last existing entry - while (entry && entry.r) entry = entry.p; - // get next entry - if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) { - // or finish the iteration - that._t = undefined; - return step(1); - } - // return step by kind - if (kind == 'keys') return step(0, entry.k); - if (kind == 'values') return step(0, entry.v); - return step(0, [entry.k, entry.v]); - }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); - - // add [@@species], 23.1.2.2, 23.2.2.2 - setSpecies(NAME); - } -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_collection-weak.js": -/*!**********************************************************!*\ - !*** ./node_modules/core-js/modules/_collection-weak.js ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js"); -var getWeak = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").getWeak; -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); -var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); -var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); -var createArrayMethod = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js"); -var $has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); -var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); -var arrayFind = createArrayMethod(5); -var arrayFindIndex = createArrayMethod(6); -var id = 0; - -// fallback for uncaught frozen keys -var uncaughtFrozenStore = function (that) { - return that._l || (that._l = new UncaughtFrozenStore()); -}; -var UncaughtFrozenStore = function () { - this.a = []; -}; -var findUncaughtFrozen = function (store, key) { - return arrayFind(store.a, function (it) { - return it[0] === key; - }); -}; -UncaughtFrozenStore.prototype = { - get: function (key) { - var entry = findUncaughtFrozen(this, key); - if (entry) return entry[1]; - }, - has: function (key) { - return !!findUncaughtFrozen(this, key); - }, - set: function (key, value) { - var entry = findUncaughtFrozen(this, key); - if (entry) entry[1] = value; - else this.a.push([key, value]); - }, - 'delete': function (key) { - var index = arrayFindIndex(this.a, function (it) { - return it[0] === key; - }); - if (~index) this.a.splice(index, 1); - return !!~index; - } -}; - -module.exports = { - getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, NAME, '_i'); - that._t = NAME; // collection type - that._i = id++; // collection id - that._l = undefined; // leak store for uncaught frozen objects - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - }); - redefineAll(C.prototype, { - // 23.3.3.2 WeakMap.prototype.delete(key) - // 23.4.3.3 WeakSet.prototype.delete(value) - 'delete': function (key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); - return data && $has(data, this._i) && delete data[this._i]; - }, - // 23.3.3.4 WeakMap.prototype.has(key) - // 23.4.3.4 WeakSet.prototype.has(value) - has: function has(key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); - return data && $has(data, this._i); - } - }); - return C; - }, - def: function (that, key, value) { - var data = getWeak(anObject(key), true); - if (data === true) uncaughtFrozenStore(that).set(key, value); - else data[that._i] = value; - return that; - }, - ufstore: uncaughtFrozenStore -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_collection.js": -/*!*****************************************************!*\ - !*** ./node_modules/core-js/modules/_collection.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); -var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); -var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); -var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js"); -var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js"); -var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); -var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); -var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); -var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); -var $iterDetect = __webpack_require__(/*! ./_iter-detect */ "./node_modules/core-js/modules/_iter-detect.js"); -var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js"); -var inheritIfRequired = __webpack_require__(/*! ./_inherit-if-required */ "./node_modules/core-js/modules/_inherit-if-required.js"); - -module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { - var Base = global[NAME]; - var C = Base; - var ADDER = IS_MAP ? 'set' : 'add'; - var proto = C && C.prototype; - var O = {}; - var fixMethod = function (KEY) { - var fn = proto[KEY]; - redefine(proto, KEY, - KEY == 'delete' ? function (a) { - return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'has' ? function has(a) { - return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'get' ? function get(a) { - return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; } - : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; } - ); - }; - if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { - new C().entries().next(); - }))) { - // create collection constructor - C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); - redefineAll(C.prototype, methods); - meta.NEED = true; - } else { - var instance = new C(); - // early implementations not supports chaining - var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; - // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false - var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); - // most early implementations doesn't supports iterables, most modern - not close it correctly - var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new - // for early implementations -0 and +0 not the same - var BUGGY_ZERO = !IS_WEAK && fails(function () { - // V8 ~ Chromium 42- fails only with 5+ elements - var $instance = new C(); - var index = 5; - while (index--) $instance[ADDER](index, index); - return !$instance.has(-0); - }); - if (!ACCEPT_ITERABLES) { - C = wrapper(function (target, iterable) { - anInstance(target, C, NAME); - var that = inheritIfRequired(new Base(), target, C); - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - return that; - }); - C.prototype = proto; - proto.constructor = C; - } - if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { - fixMethod('delete'); - fixMethod('has'); - IS_MAP && fixMethod('get'); - } - if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); - // weak collections should not contains .clear method - if (IS_WEAK && proto.clear) delete proto.clear; - } - - setToStringTag(C, NAME); - - O[NAME] = C; - $export($export.G + $export.W + $export.F * (C != Base), O); - - if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); - - return C; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_core.js": -/*!***********************************************!*\ - !*** ./node_modules/core-js/modules/_core.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -var core = module.exports = { version: '2.6.12' }; -if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_ctx.js": -/*!**********************************************!*\ - !*** ./node_modules/core-js/modules/_ctx.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// optional / simple context binding -var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_defined.js": -/*!**************************************************!*\ - !*** ./node_modules/core-js/modules/_defined.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -// 7.2.1 RequireObjectCoercible(argument) -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_descriptors.js": -/*!******************************************************!*\ - !*** ./node_modules/core-js/modules/_descriptors.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// Thank's IE8 for his funny defineProperty -module.exports = !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_dom-create.js": -/*!*****************************************************!*\ - !*** ./node_modules/core-js/modules/_dom-create.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); -var document = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").document; -// typeof document.createElement is 'object' in old IE -var is = isObject(document) && isObject(document.createElement); -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_enum-bug-keys.js": -/*!********************************************************!*\ - !*** ./node_modules/core-js/modules/_enum-bug-keys.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -// IE 8- don't enum bug keys -module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' -).split(','); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_export.js": -/*!*************************************************!*\ - !*** ./node_modules/core-js/modules/_export.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); -var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js"); -var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); -var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); -var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); -var PROTOTYPE = 'prototype'; - -var $export = function (type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); - var key, own, out, exp; - if (IS_GLOBAL) source = name; - for (key in source) { - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - // export native or passed - out = (own ? target : source)[key]; - // bind timers to global for call from export context - exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // extend global - if (target) redefine(target, key, out, type & $export.U); - // export - if (exports[key] != out) hide(exports, key, exp); - if (IS_PROTO && expProto[key] != out) expProto[key] = out; - } -}; -global.core = core; -// type bitmap -$export.F = 1; // forced -$export.G = 2; // global -$export.S = 4; // static -$export.P = 8; // proto -$export.B = 16; // bind -$export.W = 32; // wrap -$export.U = 64; // safe -$export.R = 128; // real proto method for `library` -module.exports = $export; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_fails.js": -/*!************************************************!*\ - !*** ./node_modules/core-js/modules/_fails.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_for-of.js": -/*!*************************************************!*\ - !*** ./node_modules/core-js/modules/_for-of.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); -var call = __webpack_require__(/*! ./_iter-call */ "./node_modules/core-js/modules/_iter-call.js"); -var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "./node_modules/core-js/modules/_is-array-iter.js"); -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); -var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "./node_modules/core-js/modules/core.get-iterator-method.js"); -var BREAK = {}; -var RETURN = {}; -var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { - var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); - var f = ctx(fn, that, entries ? 2 : 1); - var index = 0; - var length, step, iterator, result; - if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); - // fast case for arrays with default iterator - if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { - result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); - if (result === BREAK || result === RETURN) return result; - } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { - result = call(iterator, f, step.value, entries); - if (result === BREAK || result === RETURN) return result; - } -}; -exports.BREAK = BREAK; -exports.RETURN = RETURN; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_function-to-string.js": -/*!*************************************************************!*\ - !*** ./node_modules/core-js/modules/_function-to-string.js ***! - \*************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js")('native-function-to-string', Function.toString); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_global.js": -/*!*************************************************!*\ - !*** ./node_modules/core-js/modules/_global.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self - // eslint-disable-next-line no-new-func - : Function('return this')(); -if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_has.js": -/*!**********************************************!*\ - !*** ./node_modules/core-js/modules/_has.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_hide.js": -/*!***********************************************!*\ - !*** ./node_modules/core-js/modules/_hide.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); -var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); -module.exports = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_html.js": -/*!***********************************************!*\ - !*** ./node_modules/core-js/modules/_html.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var document = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").document; -module.exports = document && document.documentElement; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_ie8-dom-define.js": -/*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/_ie8-dom-define.js ***! - \*********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = !__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { - return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "./node_modules/core-js/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_inherit-if-required.js": -/*!**************************************************************!*\ - !*** ./node_modules/core-js/modules/_inherit-if-required.js ***! - \**************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); -var setPrototypeOf = __webpack_require__(/*! ./_set-proto */ "./node_modules/core-js/modules/_set-proto.js").set; -module.exports = function (that, target, C) { - var S = target.constructor; - var P; - if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { - setPrototypeOf(that, P); - } return that; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_iobject.js": -/*!**************************************************!*\ - !*** ./node_modules/core-js/modules/_iobject.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); -// eslint-disable-next-line no-prototype-builtins -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_is-array-iter.js": -/*!********************************************************!*\ - !*** ./node_modules/core-js/modules/_is-array-iter.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// check on default Array iterator -var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); -var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'); -var ArrayProto = Array.prototype; - -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_is-array.js": -/*!***************************************************!*\ - !*** ./node_modules/core-js/modules/_is-array.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.2.2 IsArray(argument) -var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_is-object.js": -/*!****************************************************!*\ - !*** ./node_modules/core-js/modules/_is-object.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_iter-call.js": -/*!****************************************************!*\ - !*** ./node_modules/core-js/modules/_iter-call.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// call something on iterator step with safe closing on error -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -module.exports = function (iterator, fn, value, entries) { - try { - return entries ? fn(anObject(value)[0], value[1]) : fn(value); - // 7.4.6 IteratorClose(iterator, completion) - } catch (e) { - var ret = iterator['return']; - if (ret !== undefined) anObject(ret.call(iterator)); - throw e; - } -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_iter-create.js": -/*!******************************************************!*\ - !*** ./node_modules/core-js/modules/_iter-create.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js"); -var descriptor = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); -var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js"); -var IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -__webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'), function () { return this; }); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_iter-define.js": -/*!******************************************************!*\ - !*** ./node_modules/core-js/modules/_iter-define.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js"); -var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); -var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); -var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); -var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); -var $iterCreate = __webpack_require__(/*! ./_iter-create */ "./node_modules/core-js/modules/_iter-create.js"); -var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js"); -var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); -var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'); -var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function () { return this; }; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - var getMethod = function (kind) { - if (!BUGGY && kind in proto) return proto[kind]; - switch (kind) { - case KEYS: return function keys() { return new Constructor(this, kind); }; - case VALUES: return function values() { return new Constructor(this, kind); }; - } return function entries() { return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - // Fix native - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - $default = function values() { return $native.call(this); }; - } - // Define iterator - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_iter-detect.js": -/*!******************************************************!*\ - !*** ./node_modules/core-js/modules/_iter-detect.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'); -var SAFE_CLOSING = false; - -try { - var riter = [7][ITERATOR](); - riter['return'] = function () { SAFE_CLOSING = true; }; - // eslint-disable-next-line no-throw-literal - Array.from(riter, function () { throw 2; }); -} catch (e) { /* empty */ } - -module.exports = function (exec, skipClosing) { - if (!skipClosing && !SAFE_CLOSING) return false; - var safe = false; - try { - var arr = [7]; - var iter = arr[ITERATOR](); - iter.next = function () { return { done: safe = true }; }; - arr[ITERATOR] = function () { return iter; }; - exec(arr); - } catch (e) { /* empty */ } - return safe; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_iter-step.js": -/*!****************************************************!*\ - !*** ./node_modules/core-js/modules/_iter-step.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = function (done, value) { - return { value: value, done: !!done }; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_iterators.js": -/*!****************************************************!*\ - !*** ./node_modules/core-js/modules/_iterators.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_library.js": -/*!**************************************************!*\ - !*** ./node_modules/core-js/modules/_library.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = false; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_meta.js": -/*!***********************************************!*\ - !*** ./node_modules/core-js/modules/_meta.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var META = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js")('meta'); -var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); -var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); -var setDesc = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; -var id = 0; -var isExtensible = Object.isExtensible || function () { - return true; -}; -var FREEZE = !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { - return isExtensible(Object.preventExtensions({})); -}); -var setMeta = function (it) { - setDesc(it, META, { value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - } }); -}; -var fastKey = function (it, create) { - // return primitive with prefix - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; - // not necessary to add metadata - if (!create) return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; -}; -var getWeak = function (it, create) { - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; - // not necessary to add metadata - if (!create) return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; -}; -// add metadata on freeze-family methods calling -var onFreeze = function (it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_metadata.js": -/*!***************************************************!*\ - !*** ./node_modules/core-js/modules/_metadata.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var Map = __webpack_require__(/*! ./es6.map */ "./node_modules/core-js/modules/es6.map.js"); -var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); -var shared = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js")('metadata'); -var store = shared.store || (shared.store = new (__webpack_require__(/*! ./es6.weak-map */ "./node_modules/core-js/modules/es6.weak-map.js"))()); - -var getOrCreateMetadataMap = function (target, targetKey, create) { - var targetMetadata = store.get(target); - if (!targetMetadata) { - if (!create) return undefined; - store.set(target, targetMetadata = new Map()); - } - var keyMetadata = targetMetadata.get(targetKey); - if (!keyMetadata) { - if (!create) return undefined; - targetMetadata.set(targetKey, keyMetadata = new Map()); - } return keyMetadata; -}; -var ordinaryHasOwnMetadata = function (MetadataKey, O, P) { - var metadataMap = getOrCreateMetadataMap(O, P, false); - return metadataMap === undefined ? false : metadataMap.has(MetadataKey); -}; -var ordinaryGetOwnMetadata = function (MetadataKey, O, P) { - var metadataMap = getOrCreateMetadataMap(O, P, false); - return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey); -}; -var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) { - getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue); -}; -var ordinaryOwnMetadataKeys = function (target, targetKey) { - var metadataMap = getOrCreateMetadataMap(target, targetKey, false); - var keys = []; - if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); }); - return keys; -}; -var toMetaKey = function (it) { - return it === undefined || typeof it == 'symbol' ? it : String(it); -}; -var exp = function (O) { - $export($export.S, 'Reflect', O); -}; - -module.exports = { - store: store, - map: getOrCreateMetadataMap, - has: ordinaryHasOwnMetadata, - get: ordinaryGetOwnMetadata, - set: ordinaryDefineOwnMetadata, - keys: ordinaryOwnMetadataKeys, - key: toMetaKey, - exp: exp -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_object-assign.js": -/*!********************************************************!*\ - !*** ./node_modules/core-js/modules/_object-assign.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// 19.1.2.1 Object.assign(target, source, ...) -var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); -var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); -var gOPS = __webpack_require__(/*! ./_object-gops */ "./node_modules/core-js/modules/_object-gops.js"); -var pIE = __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js"); -var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); -var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js"); -var $assign = Object.assign; - -// should work with symbols and should have deterministic property order (V8 bug) -module.exports = !$assign || __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { - var A = {}; - var B = {}; - // eslint-disable-next-line no-undef - var S = Symbol(); - var K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function (k) { B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; -}) ? function assign(target, source) { // eslint-disable-line no-unused-vars - var T = toObject(target); - var aLen = arguments.length; - var index = 1; - var getSymbols = gOPS.f; - var isEnum = pIE.f; - while (aLen > index) { - var S = IObject(arguments[index++]); - var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) { - key = keys[j++]; - if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key]; - } - } return T; -} : $assign; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_object-create.js": -/*!********************************************************!*\ - !*** ./node_modules/core-js/modules/_object-create.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var dPs = __webpack_require__(/*! ./_object-dps */ "./node_modules/core-js/modules/_object-dps.js"); -var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "./node_modules/core-js/modules/_enum-bug-keys.js"); -var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/core-js/modules/_shared-key.js")('IE_PROTO'); -var Empty = function () { /* empty */ }; -var PROTOTYPE = 'prototype'; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var createDict = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(/*! ./_dom-create */ "./node_modules/core-js/modules/_dom-create.js")('iframe'); - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(/*! ./_html */ "./node_modules/core-js/modules/_html.js").appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_object-dp.js": -/*!****************************************************!*\ - !*** ./node_modules/core-js/modules/_object-dp.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "./node_modules/core-js/modules/_ie8-dom-define.js"); -var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); -var dP = Object.defineProperty; - -exports.f = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_object-dps.js": -/*!*****************************************************!*\ - !*** ./node_modules/core-js/modules/_object-dps.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); - -module.exports = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - while (length > i) dP.f(O, P = keys[i++], Properties[P]); - return O; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_object-gopd.js": -/*!******************************************************!*\ - !*** ./node_modules/core-js/modules/_object-gopd.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var pIE = __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js"); -var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); -var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); -var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); -var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); -var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "./node_modules/core-js/modules/_ie8-dom-define.js"); -var gOPD = Object.getOwnPropertyDescriptor; - -exports.f = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) { /* empty */ } - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_object-gops.js": -/*!******************************************************!*\ - !*** ./node_modules/core-js/modules/_object-gops.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_object-gpo.js": -/*!*****************************************************!*\ - !*** ./node_modules/core-js/modules/_object-gpo.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) -var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); -var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); -var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/core-js/modules/_shared-key.js")('IE_PROTO'); -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_object-keys-internal.js": -/*!***************************************************************!*\ - !*** ./node_modules/core-js/modules/_object-keys-internal.js ***! - \***************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); -var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); -var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "./node_modules/core-js/modules/_array-includes.js")(false); -var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/core-js/modules/_shared-key.js")('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_object-keys.js": -/*!******************************************************!*\ - !*** ./node_modules/core-js/modules/_object-keys.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.14 / 15.2.3.14 Object.keys(O) -var $keys = __webpack_require__(/*! ./_object-keys-internal */ "./node_modules/core-js/modules/_object-keys-internal.js"); -var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "./node_modules/core-js/modules/_enum-bug-keys.js"); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_object-pie.js": -/*!*****************************************************!*\ - !*** ./node_modules/core-js/modules/_object-pie.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -exports.f = {}.propertyIsEnumerable; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_property-desc.js": -/*!********************************************************!*\ - !*** ./node_modules/core-js/modules/_property-desc.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_redefine-all.js": -/*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/_redefine-all.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); -module.exports = function (target, src, safe) { - for (var key in src) redefine(target, key, src[key], safe); - return target; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_redefine.js": -/*!***************************************************!*\ - !*** ./node_modules/core-js/modules/_redefine.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); -var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); -var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); -var SRC = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js")('src'); -var $toString = __webpack_require__(/*! ./_function-to-string */ "./node_modules/core-js/modules/_function-to-string.js"); -var TO_STRING = 'toString'; -var TPL = ('' + $toString).split(TO_STRING); - -__webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js").inspectSource = function (it) { - return $toString.call(it); -}; - -(module.exports = function (O, key, val, safe) { - var isFunction = typeof val == 'function'; - if (isFunction) has(val, 'name') || hide(val, 'name', key); - if (O[key] === val) return; - if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); - if (O === global) { - O[key] = val; - } else if (!safe) { - delete O[key]; - hide(O, key, val); - } else if (O[key]) { - O[key] = val; - } else { - hide(O, key, val); - } -// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative -})(Function.prototype, TO_STRING, function toString() { - return typeof this == 'function' && this[SRC] || $toString.call(this); -}); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_set-proto.js": -/*!****************************************************!*\ - !*** ./node_modules/core-js/modules/_set-proto.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// Works with __proto__ only. Old v8 can't work with null proto objects. -/* eslint-disable no-proto */ -var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var check = function (O, proto) { - anObject(O); - if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); -}; -module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line - function (test, buggy, set) { - try { - set = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js")(Function.call, __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch (e) { buggy = true; } - return function setPrototypeOf(O, proto) { - check(O, proto); - if (buggy) O.__proto__ = proto; - else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_set-species.js": -/*!******************************************************!*\ - !*** ./node_modules/core-js/modules/_set-species.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); -var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); -var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); -var SPECIES = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('species'); - -module.exports = function (KEY) { - var C = global[KEY]; - if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { - configurable: true, - get: function () { return this; } - }); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_set-to-string-tag.js": -/*!************************************************************!*\ - !*** ./node_modules/core-js/modules/_set-to-string-tag.js ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var def = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; -var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); -var TAG = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_shared-key.js": -/*!*****************************************************!*\ - !*** ./node_modules/core-js/modules/_shared-key.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js")('keys'); -var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js"); -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_shared.js": -/*!*************************************************!*\ - !*** ./node_modules/core-js/modules/_shared.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js"); -var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: core.version, - mode: __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js") ? 'pure' : 'global', - copyright: '© 2020 Denis Pushkarev (zloirock.ru)' -}); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_to-absolute-index.js": -/*!************************************************************!*\ - !*** ./node_modules/core-js/modules/_to-absolute-index.js ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); -var max = Math.max; -var min = Math.min; -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_to-integer.js": -/*!*****************************************************!*\ - !*** ./node_modules/core-js/modules/_to-integer.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -// 7.1.4 ToInteger -var ceil = Math.ceil; -var floor = Math.floor; -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_to-iobject.js": -/*!*****************************************************!*\ - !*** ./node_modules/core-js/modules/_to-iobject.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// to indexed object, toObject with fallback for non-array-like ES3 strings -var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js"); -var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); -module.exports = function (it) { - return IObject(defined(it)); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_to-length.js": -/*!****************************************************!*\ - !*** ./node_modules/core-js/modules/_to-length.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.15 ToLength -var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); -var min = Math.min; -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_to-object.js": -/*!****************************************************!*\ - !*** ./node_modules/core-js/modules/_to-object.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.13 ToObject(argument) -var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); -module.exports = function (it) { - return Object(defined(it)); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_to-primitive.js": -/*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/_to-primitive.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_uid.js": -/*!**********************************************!*\ - !*** ./node_modules/core-js/modules/_uid.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -var id = 0; -var px = Math.random(); -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_validate-collection.js": -/*!**************************************************************!*\ - !*** ./node_modules/core-js/modules/_validate-collection.js ***! - \**************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); -module.exports = function (it, TYPE) { - if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); - return it; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/_wks.js": -/*!**********************************************!*\ - !*** ./node_modules/core-js/modules/_wks.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var store = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js")('wks'); -var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js"); -var Symbol = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").Symbol; -var USE_SYMBOL = typeof Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/core.get-iterator-method.js": -/*!******************************************************************!*\ - !*** ./node_modules/core-js/modules/core.get-iterator-method.js ***! - \******************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js"); -var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'); -var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); -module.exports = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js").getIteratorMethod = function (it) { - if (it != undefined) return it[ITERATOR] - || it['@@iterator'] - || Iterators[classof(it)]; -}; - - -/***/ }), - -/***/ "./node_modules/core-js/modules/es6.map.js": -/*!*************************************************!*\ - !*** ./node_modules/core-js/modules/es6.map.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var strong = __webpack_require__(/*! ./_collection-strong */ "./node_modules/core-js/modules/_collection-strong.js"); -var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); -var MAP = 'Map'; - -// 23.1 Map Objects -module.exports = __webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(MAP, function (get) { - return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; -}, { - // 23.1.3.6 Map.prototype.get(key) - get: function get(key) { - var entry = strong.getEntry(validate(this, MAP), key); - return entry && entry.v; - }, - // 23.1.3.9 Map.prototype.set(key, value) - set: function set(key, value) { - return strong.def(validate(this, MAP), key === 0 ? 0 : key, value); - } -}, strong, true); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/es6.set.js": -/*!*************************************************!*\ - !*** ./node_modules/core-js/modules/es6.set.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var strong = __webpack_require__(/*! ./_collection-strong */ "./node_modules/core-js/modules/_collection-strong.js"); -var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); -var SET = 'Set'; - -// 23.2 Set Objects -module.exports = __webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(SET, function (get) { - return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; -}, { - // 23.2.3.1 Set.prototype.add(value) - add: function add(value) { - return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value); - } -}, strong); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/es6.weak-map.js": -/*!******************************************************!*\ - !*** ./node_modules/core-js/modules/es6.weak-map.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); -var each = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(0); -var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); -var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js"); -var assign = __webpack_require__(/*! ./_object-assign */ "./node_modules/core-js/modules/_object-assign.js"); -var weak = __webpack_require__(/*! ./_collection-weak */ "./node_modules/core-js/modules/_collection-weak.js"); -var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); -var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); -var NATIVE_WEAK_MAP = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); -var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; -var WEAK_MAP = 'WeakMap'; -var getWeak = meta.getWeak; -var isExtensible = Object.isExtensible; -var uncaughtFrozenStore = weak.ufstore; -var InternalMap; - -var wrapper = function (get) { - return function WeakMap() { - return get(this, arguments.length > 0 ? arguments[0] : undefined); - }; -}; - -var methods = { - // 23.3.3.3 WeakMap.prototype.get(key) - get: function get(key) { - if (isObject(key)) { - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); - return data ? data[this._i] : undefined; - } - }, - // 23.3.3.5 WeakMap.prototype.set(key, value) - set: function set(key, value) { - return weak.def(validate(this, WEAK_MAP), key, value); - } -}; - -// 23.3 WeakMap Objects -var $WeakMap = module.exports = __webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(WEAK_MAP, wrapper, methods, weak, true, true); - -// IE11 WeakMap frozen keys fix -if (NATIVE_WEAK_MAP && IS_IE11) { - InternalMap = weak.getConstructor(wrapper, WEAK_MAP); - assign(InternalMap.prototype, methods); - meta.NEED = true; - each(['delete', 'has', 'get', 'set'], function (key) { - var proto = $WeakMap.prototype; - var method = proto[key]; - redefine(proto, key, function (a, b) { - // store frozen objects on internal weakmap shim - if (isObject(a) && !isExtensible(a)) { - if (!this._f) this._f = new InternalMap(); - var result = this._f[key](a, b); - return key == 'set' ? this : result; - // store all the rest on native weakmap - } return method.call(this, a, b); - }); - }); -} - - -/***/ }), - -/***/ "./node_modules/core-js/modules/es7.reflect.define-metadata.js": -/*!*********************************************************************!*\ - !*** ./node_modules/core-js/modules/es7.reflect.define-metadata.js ***! - \*********************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var toMetaKey = metadata.key; -var ordinaryDefineOwnMetadata = metadata.set; - -metadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) { - ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey)); -} }); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/es7.reflect.delete-metadata.js": -/*!*********************************************************************!*\ - !*** ./node_modules/core-js/modules/es7.reflect.delete-metadata.js ***! - \*********************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var toMetaKey = metadata.key; -var getOrCreateMetadataMap = metadata.map; -var store = metadata.store; - -metadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) { - var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]); - var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false); - if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false; - if (metadataMap.size) return true; - var targetMetadata = store.get(target); - targetMetadata['delete'](targetKey); - return !!targetMetadata.size || store['delete'](target); -} }); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js": -/*!***********************************************************************!*\ - !*** ./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js ***! - \***********************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var Set = __webpack_require__(/*! ./es6.set */ "./node_modules/core-js/modules/es6.set.js"); -var from = __webpack_require__(/*! ./_array-from-iterable */ "./node_modules/core-js/modules/_array-from-iterable.js"); -var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); -var ordinaryOwnMetadataKeys = metadata.keys; -var toMetaKey = metadata.key; - -var ordinaryMetadataKeys = function (O, P) { - var oKeys = ordinaryOwnMetadataKeys(O, P); - var parent = getPrototypeOf(O); - if (parent === null) return oKeys; - var pKeys = ordinaryMetadataKeys(parent, P); - return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys; -}; - -metadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) { - return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); -} }); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/es7.reflect.get-metadata.js": -/*!******************************************************************!*\ - !*** ./node_modules/core-js/modules/es7.reflect.get-metadata.js ***! - \******************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); -var ordinaryHasOwnMetadata = metadata.has; -var ordinaryGetOwnMetadata = metadata.get; -var toMetaKey = metadata.key; - -var ordinaryGetMetadata = function (MetadataKey, O, P) { - var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); - if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P); - var parent = getPrototypeOf(O); - return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined; -}; - -metadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) { - return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); -} }); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js": -/*!***************************************************************************!*\ - !*** ./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js ***! - \***************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var ordinaryOwnMetadataKeys = metadata.keys; -var toMetaKey = metadata.key; - -metadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) { - return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); -} }); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/es7.reflect.get-own-metadata.js": -/*!**********************************************************************!*\ - !*** ./node_modules/core-js/modules/es7.reflect.get-own-metadata.js ***! - \**********************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var ordinaryGetOwnMetadata = metadata.get; -var toMetaKey = metadata.key; - -metadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) { - return ordinaryGetOwnMetadata(metadataKey, anObject(target) - , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); -} }); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/es7.reflect.has-metadata.js": -/*!******************************************************************!*\ - !*** ./node_modules/core-js/modules/es7.reflect.has-metadata.js ***! - \******************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); -var ordinaryHasOwnMetadata = metadata.has; -var toMetaKey = metadata.key; - -var ordinaryHasMetadata = function (MetadataKey, O, P) { - var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); - if (hasOwn) return true; - var parent = getPrototypeOf(O); - return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false; -}; - -metadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) { - return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); -} }); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/es7.reflect.has-own-metadata.js": -/*!**********************************************************************!*\ - !*** ./node_modules/core-js/modules/es7.reflect.has-own-metadata.js ***! - \**********************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var ordinaryHasOwnMetadata = metadata.has; -var toMetaKey = metadata.key; - -metadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) { - return ordinaryHasOwnMetadata(metadataKey, anObject(target) - , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); -} }); - - -/***/ }), - -/***/ "./node_modules/core-js/modules/es7.reflect.metadata.js": -/*!**************************************************************!*\ - !*** ./node_modules/core-js/modules/es7.reflect.metadata.js ***! - \**************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var $metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); -var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); -var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); -var toMetaKey = $metadata.key; -var ordinaryDefineOwnMetadata = $metadata.set; - -$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) { - return function decorator(target, targetKey) { - ordinaryDefineOwnMetadata( - metadataKey, metadataValue, - (targetKey !== undefined ? anObject : aFunction)(target), - toMetaKey(targetKey) - ); - }; -} }); - - -/***/ }), - -/***/ "./node_modules/zone.js/dist/zone.js": -/*!*******************************************!*\ - !*** ./node_modules/zone.js/dist/zone.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/** -* @license -* Copyright Google Inc. All Rights Reserved. -* -* Use of this source code is governed by an MIT-style license that can be -* found in the LICENSE file at https://angular.io/license -*/ -(function (global, factory) { - true ? factory() : - undefined; -}(this, (function () { 'use strict'; - -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -var Zone$1 = (function (global) { - var performance = global['performance']; - function mark(name) { - performance && performance['mark'] && performance['mark'](name); - } - function performanceMeasure(name, label) { - performance && performance['measure'] && performance['measure'](name, label); - } - mark('Zone'); - var checkDuplicate = global[('__zone_symbol__forceDuplicateZoneCheck')] === true; - if (global['Zone']) { - // if global['Zone'] already exists (maybe zone.js was already loaded or - // some other lib also registered a global object named Zone), we may need - // to throw an error, but sometimes user may not want this error. - // For example, - // we have two web pages, page1 includes zone.js, page2 doesn't. - // and the 1st time user load page1 and page2, everything work fine, - // but when user load page2 again, error occurs because global['Zone'] already exists. - // so we add a flag to let user choose whether to throw this error or not. - // By default, if existing Zone is from zone.js, we will not throw the error. - if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') { - throw new Error('Zone already loaded.'); - } - else { - return global['Zone']; - } - } - var Zone = /** @class */ (function () { - function Zone(parent, zoneSpec) { - this._parent = parent; - this._name = zoneSpec ? zoneSpec.name || 'unnamed' : ''; - this._properties = zoneSpec && zoneSpec.properties || {}; - this._zoneDelegate = - new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec); - } - Zone.assertZonePatched = function () { - if (global['Promise'] !== patches['ZoneAwarePromise']) { - throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' + - 'has been overwritten.\n' + - 'Most likely cause is that a Promise polyfill has been loaded ' + - 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' + - 'If you must load one, do so before loading zone.js.)'); - } - }; - Object.defineProperty(Zone, "root", { - get: function () { - var zone = Zone.current; - while (zone.parent) { - zone = zone.parent; - } - return zone; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Zone, "current", { - get: function () { - return _currentZoneFrame.zone; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Zone, "currentTask", { - get: function () { - return _currentTask; - }, - enumerable: true, - configurable: true - }); - Zone.__load_patch = function (name, fn) { - if (patches.hasOwnProperty(name)) { - if (checkDuplicate) { - throw Error('Already loaded patch: ' + name); - } - } - else if (!global['__Zone_disable_' + name]) { - var perfName = 'Zone:' + name; - mark(perfName); - patches[name] = fn(global, Zone, _api); - performanceMeasure(perfName, perfName); - } - }; - Object.defineProperty(Zone.prototype, "parent", { - get: function () { - return this._parent; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Zone.prototype, "name", { - get: function () { - return this._name; - }, - enumerable: true, - configurable: true - }); - Zone.prototype.get = function (key) { - var zone = this.getZoneWith(key); - if (zone) - return zone._properties[key]; - }; - Zone.prototype.getZoneWith = function (key) { - var current = this; - while (current) { - if (current._properties.hasOwnProperty(key)) { - return current; - } - current = current._parent; - } - return null; - }; - Zone.prototype.fork = function (zoneSpec) { - if (!zoneSpec) - throw new Error('ZoneSpec required!'); - return this._zoneDelegate.fork(this, zoneSpec); - }; - Zone.prototype.wrap = function (callback, source) { - if (typeof callback !== 'function') { - throw new Error('Expecting function got: ' + callback); - } - var _callback = this._zoneDelegate.intercept(this, callback, source); - var zone = this; - return function () { - return zone.runGuarded(_callback, this, arguments, source); - }; - }; - Zone.prototype.run = function (callback, applyThis, applyArgs, source) { - _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; - try { - return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); - } - finally { - _currentZoneFrame = _currentZoneFrame.parent; - } - }; - Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) { - if (applyThis === void 0) { applyThis = null; } - _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; - try { - try { - return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); - } - catch (error) { - if (this._zoneDelegate.handleError(this, error)) { - throw error; - } - } - } - finally { - _currentZoneFrame = _currentZoneFrame.parent; - } - }; - Zone.prototype.runTask = function (task, applyThis, applyArgs) { - if (task.zone != this) { - throw new Error('A task can only be run in the zone of creation! (Creation: ' + - (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); - } - // https://github.com/angular/zone.js/issues/778, sometimes eventTask - // will run in notScheduled(canceled) state, we should not try to - // run such kind of task but just return - if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) { - return; - } - var reEntryGuard = task.state != running; - reEntryGuard && task._transitionTo(running, scheduled); - task.runCount++; - var previousTask = _currentTask; - _currentTask = task; - _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; - try { - if (task.type == macroTask && task.data && !task.data.isPeriodic) { - task.cancelFn = undefined; - } - try { - return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs); - } - catch (error) { - if (this._zoneDelegate.handleError(this, error)) { - throw error; - } - } - } - finally { - // if the task's state is notScheduled or unknown, then it has already been cancelled - // we should not reset the state to scheduled - if (task.state !== notScheduled && task.state !== unknown) { - if (task.type == eventTask || (task.data && task.data.isPeriodic)) { - reEntryGuard && task._transitionTo(scheduled, running); - } - else { - task.runCount = 0; - this._updateTaskCount(task, -1); - reEntryGuard && - task._transitionTo(notScheduled, running, notScheduled); - } - } - _currentZoneFrame = _currentZoneFrame.parent; - _currentTask = previousTask; - } - }; - Zone.prototype.scheduleTask = function (task) { - if (task.zone && task.zone !== this) { - // check if the task was rescheduled, the newZone - // should not be the children of the original zone - var newZone = this; - while (newZone) { - if (newZone === task.zone) { - throw Error("can not reschedule task to " + this.name + " which is descendants of the original zone " + task.zone.name); - } - newZone = newZone.parent; - } - } - task._transitionTo(scheduling, notScheduled); - var zoneDelegates = []; - task._zoneDelegates = zoneDelegates; - task._zone = this; - try { - task = this._zoneDelegate.scheduleTask(this, task); - } - catch (err) { - // should set task's state to unknown when scheduleTask throw error - // because the err may from reschedule, so the fromState maybe notScheduled - task._transitionTo(unknown, scheduling, notScheduled); - // TODO: @JiaLiPassion, should we check the result from handleError? - this._zoneDelegate.handleError(this, err); - throw err; - } - if (task._zoneDelegates === zoneDelegates) { - // we have to check because internally the delegate can reschedule the task. - this._updateTaskCount(task, 1); - } - if (task.state == scheduling) { - task._transitionTo(scheduled, scheduling); - } - return task; - }; - Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) { - return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined)); - }; - Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) { - return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel)); - }; - Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) { - return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel)); - }; - Zone.prototype.cancelTask = function (task) { - if (task.zone != this) - throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' + - (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); - task._transitionTo(canceling, scheduled, running); - try { - this._zoneDelegate.cancelTask(this, task); - } - catch (err) { - // if error occurs when cancelTask, transit the state to unknown - task._transitionTo(unknown, canceling); - this._zoneDelegate.handleError(this, err); - throw err; - } - this._updateTaskCount(task, -1); - task._transitionTo(notScheduled, canceling); - task.runCount = 0; - return task; - }; - Zone.prototype._updateTaskCount = function (task, count) { - var zoneDelegates = task._zoneDelegates; - if (count == -1) { - task._zoneDelegates = null; - } - for (var i = 0; i < zoneDelegates.length; i++) { - zoneDelegates[i]._updateTaskCount(task.type, count); - } - }; - Zone.__symbol__ = __symbol__; - return Zone; - }()); - var DELEGATE_ZS = { - name: '', - onHasTask: function (delegate, _, target, hasTaskState) { return delegate.hasTask(target, hasTaskState); }, - onScheduleTask: function (delegate, _, target, task) { - return delegate.scheduleTask(target, task); - }, - onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) { - return delegate.invokeTask(target, task, applyThis, applyArgs); - }, - onCancelTask: function (delegate, _, target, task) { return delegate.cancelTask(target, task); } - }; - var ZoneDelegate = /** @class */ (function () { - function ZoneDelegate(zone, parentDelegate, zoneSpec) { - this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 }; - this.zone = zone; - this._parentDelegate = parentDelegate; - this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS); - this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt); - this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate.zone); - this._interceptZS = - zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS); - this._interceptDlgt = - zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt); - this._interceptCurrZone = - zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate.zone); - this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS); - this._invokeDlgt = - zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt); - this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate.zone); - this._handleErrorZS = - zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS); - this._handleErrorDlgt = - zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt); - this._handleErrorCurrZone = - zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate.zone); - this._scheduleTaskZS = - zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS); - this._scheduleTaskDlgt = zoneSpec && - (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt); - this._scheduleTaskCurrZone = - zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate.zone); - this._invokeTaskZS = - zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS); - this._invokeTaskDlgt = - zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt); - this._invokeTaskCurrZone = - zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate.zone); - this._cancelTaskZS = - zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS); - this._cancelTaskDlgt = - zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt); - this._cancelTaskCurrZone = - zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate.zone); - this._hasTaskZS = null; - this._hasTaskDlgt = null; - this._hasTaskDlgtOwner = null; - this._hasTaskCurrZone = null; - var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask; - var parentHasTask = parentDelegate && parentDelegate._hasTaskZS; - if (zoneSpecHasTask || parentHasTask) { - // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such - // a case all task related interceptors must go through this ZD. We can't short circuit it. - this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS; - this._hasTaskDlgt = parentDelegate; - this._hasTaskDlgtOwner = this; - this._hasTaskCurrZone = zone; - if (!zoneSpec.onScheduleTask) { - this._scheduleTaskZS = DELEGATE_ZS; - this._scheduleTaskDlgt = parentDelegate; - this._scheduleTaskCurrZone = this.zone; - } - if (!zoneSpec.onInvokeTask) { - this._invokeTaskZS = DELEGATE_ZS; - this._invokeTaskDlgt = parentDelegate; - this._invokeTaskCurrZone = this.zone; - } - if (!zoneSpec.onCancelTask) { - this._cancelTaskZS = DELEGATE_ZS; - this._cancelTaskDlgt = parentDelegate; - this._cancelTaskCurrZone = this.zone; - } - } - } - ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) { - return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) : - new Zone(targetZone, zoneSpec); - }; - ZoneDelegate.prototype.intercept = function (targetZone, callback, source) { - return this._interceptZS ? - this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) : - callback; - }; - ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) { - return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) : - callback.apply(applyThis, applyArgs); - }; - ZoneDelegate.prototype.handleError = function (targetZone, error) { - return this._handleErrorZS ? - this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) : - true; - }; - ZoneDelegate.prototype.scheduleTask = function (targetZone, task) { - var returnTask = task; - if (this._scheduleTaskZS) { - if (this._hasTaskZS) { - returnTask._zoneDelegates.push(this._hasTaskDlgtOwner); - } - returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task); - if (!returnTask) - returnTask = task; - } - else { - if (task.scheduleFn) { - task.scheduleFn(task); - } - else if (task.type == microTask) { - scheduleMicroTask(task); - } - else { - throw new Error('Task is missing scheduleFn.'); - } - } - return returnTask; - }; - ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) { - return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) : - task.callback.apply(applyThis, applyArgs); - }; - ZoneDelegate.prototype.cancelTask = function (targetZone, task) { - var value; - if (this._cancelTaskZS) { - value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task); - } - else { - if (!task.cancelFn) { - throw Error('Task is not cancelable'); - } - value = task.cancelFn(task); - } - return value; - }; - ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) { - // hasTask should not throw error so other ZoneDelegate - // can still trigger hasTask callback - try { - this._hasTaskZS && - this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty); - } - catch (err) { - this.handleError(targetZone, err); - } - }; - ZoneDelegate.prototype._updateTaskCount = function (type, count) { - var counts = this._taskCounts; - var prev = counts[type]; - var next = counts[type] = prev + count; - if (next < 0) { - throw new Error('More tasks executed then were scheduled.'); - } - if (prev == 0 || next == 0) { - var isEmpty = { - microTask: counts['microTask'] > 0, - macroTask: counts['macroTask'] > 0, - eventTask: counts['eventTask'] > 0, - change: type - }; - this.hasTask(this.zone, isEmpty); - } - }; - return ZoneDelegate; - }()); - var ZoneTask = /** @class */ (function () { - function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) { - this._zone = null; - this.runCount = 0; - this._zoneDelegates = null; - this._state = 'notScheduled'; - this.type = type; - this.source = source; - this.data = options; - this.scheduleFn = scheduleFn; - this.cancelFn = cancelFn; - this.callback = callback; - var self = this; - // TODO: @JiaLiPassion options should have interface - if (type === eventTask && options && options.useG) { - this.invoke = ZoneTask.invokeTask; - } - else { - this.invoke = function () { - return ZoneTask.invokeTask.call(global, self, this, arguments); - }; - } - } - ZoneTask.invokeTask = function (task, target, args) { - if (!task) { - task = this; - } - _numberOfNestedTaskFrames++; - try { - task.runCount++; - return task.zone.runTask(task, target, args); - } - finally { - if (_numberOfNestedTaskFrames == 1) { - drainMicroTaskQueue(); - } - _numberOfNestedTaskFrames--; - } - }; - Object.defineProperty(ZoneTask.prototype, "zone", { - get: function () { - return this._zone; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ZoneTask.prototype, "state", { - get: function () { - return this._state; - }, - enumerable: true, - configurable: true - }); - ZoneTask.prototype.cancelScheduleRequest = function () { - this._transitionTo(notScheduled, scheduling); - }; - ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) { - if (this._state === fromState1 || this._state === fromState2) { - this._state = toState; - if (toState == notScheduled) { - this._zoneDelegates = null; - } - } - else { - throw new Error(this.type + " '" + this.source + "': can not transition to '" + toState + "', expecting state '" + fromState1 + "'" + (fromState2 ? ' or \'' + fromState2 + '\'' : '') + ", was '" + this._state + "'."); - } - }; - ZoneTask.prototype.toString = function () { - if (this.data && typeof this.data.handleId !== 'undefined') { - return this.data.handleId.toString(); - } - else { - return Object.prototype.toString.call(this); - } - }; - // add toJSON method to prevent cyclic error when - // call JSON.stringify(zoneTask) - ZoneTask.prototype.toJSON = function () { - return { - type: this.type, - state: this.state, - source: this.source, - zone: this.zone.name, - runCount: this.runCount - }; - }; - return ZoneTask; - }()); - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - /// MICROTASK QUEUE - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - var symbolSetTimeout = __symbol__('setTimeout'); - var symbolPromise = __symbol__('Promise'); - var symbolThen = __symbol__('then'); - var _microTaskQueue = []; - var _isDrainingMicrotaskQueue = false; - var nativeMicroTaskQueuePromise; - function scheduleMicroTask(task) { - // if we are not running in any task, and there has not been anything scheduled - // we must bootstrap the initial task creation by manually scheduling the drain - if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) { - // We are not running in Task, so we need to kickstart the microtask queue. - if (!nativeMicroTaskQueuePromise) { - if (global[symbolPromise]) { - nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0); - } - } - if (nativeMicroTaskQueuePromise) { - var nativeThen = nativeMicroTaskQueuePromise[symbolThen]; - if (!nativeThen) { - // native Promise is not patchable, we need to use `then` directly - // issue 1078 - nativeThen = nativeMicroTaskQueuePromise['then']; - } - nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue); - } - else { - global[symbolSetTimeout](drainMicroTaskQueue, 0); - } - } - task && _microTaskQueue.push(task); - } - function drainMicroTaskQueue() { - if (!_isDrainingMicrotaskQueue) { - _isDrainingMicrotaskQueue = true; - while (_microTaskQueue.length) { - var queue = _microTaskQueue; - _microTaskQueue = []; - for (var i = 0; i < queue.length; i++) { - var task = queue[i]; - try { - task.zone.runTask(task, null, null); - } - catch (error) { - _api.onUnhandledError(error); - } - } - } - _api.microtaskDrainDone(); - _isDrainingMicrotaskQueue = false; - } - } - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - /// BOOTSTRAP - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - var NO_ZONE = { name: 'NO ZONE' }; - var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown'; - var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask'; - var patches = {}; - var _api = { - symbol: __symbol__, - currentZoneFrame: function () { return _currentZoneFrame; }, - onUnhandledError: noop, - microtaskDrainDone: noop, - scheduleMicroTask: scheduleMicroTask, - showUncaughtError: function () { return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; }, - patchEventTarget: function () { return []; }, - patchOnProperties: noop, - patchMethod: function () { return noop; }, - bindArguments: function () { return []; }, - patchThen: function () { return noop; }, - setNativePromise: function (NativePromise) { - // sometimes NativePromise.resolve static function - // is not ready yet, (such as core-js/es6.promise) - // so we need to check here. - if (NativePromise && typeof NativePromise.resolve === 'function') { - nativeMicroTaskQueuePromise = NativePromise.resolve(0); - } - }, - }; - var _currentZoneFrame = { parent: null, zone: new Zone(null, null) }; - var _currentTask = null; - var _numberOfNestedTaskFrames = 0; - function noop() { } - function __symbol__(name) { - return '__zone_symbol__' + name; - } - performanceMeasure('Zone', 'Zone'); - return global['Zone'] = Zone; -})(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global); - -var __values = (undefined && undefined.__values) || function (o) { - var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; - if (m) return m.call(o); - return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; -}; -Zone.__load_patch('ZoneAwarePromise', function (global, Zone, api) { - var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - var ObjectDefineProperty = Object.defineProperty; - function readableObjectToString(obj) { - if (obj && obj.toString === Object.prototype.toString) { - var className = obj.constructor && obj.constructor.name; - return (className ? className : '') + ': ' + JSON.stringify(obj); - } - return obj ? obj.toString() : Object.prototype.toString.call(obj); - } - var __symbol__ = api.symbol; - var _uncaughtPromiseErrors = []; - var symbolPromise = __symbol__('Promise'); - var symbolThen = __symbol__('then'); - var creationTrace = '__creationTrace__'; - api.onUnhandledError = function (e) { - if (api.showUncaughtError()) { - var rejection = e && e.rejection; - if (rejection) { - console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined); - } - else { - console.error(e); - } - } - }; - api.microtaskDrainDone = function () { - while (_uncaughtPromiseErrors.length) { - var _loop_1 = function () { - var uncaughtPromiseError = _uncaughtPromiseErrors.shift(); - try { - uncaughtPromiseError.zone.runGuarded(function () { - throw uncaughtPromiseError; - }); - } - catch (error) { - handleUnhandledRejection(error); - } - }; - while (_uncaughtPromiseErrors.length) { - _loop_1(); - } - } - }; - var UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler'); - function handleUnhandledRejection(e) { - api.onUnhandledError(e); - try { - var handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL]; - if (handler && typeof handler === 'function') { - handler.call(this, e); - } - } - catch (err) { - } - } - function isThenable(value) { - return value && value.then; - } - function forwardResolution(value) { - return value; - } - function forwardRejection(rejection) { - return ZoneAwarePromise.reject(rejection); - } - var symbolState = __symbol__('state'); - var symbolValue = __symbol__('value'); - var symbolFinally = __symbol__('finally'); - var symbolParentPromiseValue = __symbol__('parentPromiseValue'); - var symbolParentPromiseState = __symbol__('parentPromiseState'); - var source = 'Promise.then'; - var UNRESOLVED = null; - var RESOLVED = true; - var REJECTED = false; - var REJECTED_NO_CATCH = 0; - function makeResolver(promise, state) { - return function (v) { - try { - resolvePromise(promise, state, v); - } - catch (err) { - resolvePromise(promise, false, err); - } - // Do not return value or you will break the Promise spec. - }; - } - var once = function () { - var wasCalled = false; - return function wrapper(wrappedFunction) { - return function () { - if (wasCalled) { - return; - } - wasCalled = true; - wrappedFunction.apply(null, arguments); - }; - }; - }; - var TYPE_ERROR = 'Promise resolved with itself'; - var CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace'); - // Promise Resolution - function resolvePromise(promise, state, value) { - var onceWrapper = once(); - if (promise === value) { - throw new TypeError(TYPE_ERROR); - } - if (promise[symbolState] === UNRESOLVED) { - // should only get value.then once based on promise spec. - var then = null; - try { - if (typeof value === 'object' || typeof value === 'function') { - then = value && value.then; - } - } - catch (err) { - onceWrapper(function () { - resolvePromise(promise, false, err); - })(); - return promise; - } - // if (value instanceof ZoneAwarePromise) { - if (state !== REJECTED && value instanceof ZoneAwarePromise && - value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) && - value[symbolState] !== UNRESOLVED) { - clearRejectedNoCatch(value); - resolvePromise(promise, value[symbolState], value[symbolValue]); - } - else if (state !== REJECTED && typeof then === 'function') { - try { - then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false))); - } - catch (err) { - onceWrapper(function () { - resolvePromise(promise, false, err); - })(); - } - } - else { - promise[symbolState] = state; - var queue = promise[symbolValue]; - promise[symbolValue] = value; - if (promise[symbolFinally] === symbolFinally) { - // the promise is generated by Promise.prototype.finally - if (state === RESOLVED) { - // the state is resolved, should ignore the value - // and use parent promise value - promise[symbolState] = promise[symbolParentPromiseState]; - promise[symbolValue] = promise[symbolParentPromiseValue]; - } - } - // record task information in value when error occurs, so we can - // do some additional work such as render longStackTrace - if (state === REJECTED && value instanceof Error) { - // check if longStackTraceZone is here - var trace = Zone.currentTask && Zone.currentTask.data && - Zone.currentTask.data[creationTrace]; - if (trace) { - // only keep the long stack trace into error when in longStackTraceZone - ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace }); - } - } - for (var i = 0; i < queue.length;) { - scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]); - } - if (queue.length == 0 && state == REJECTED) { - promise[symbolState] = REJECTED_NO_CATCH; - try { - // try to print more readable error log - throw new Error('Uncaught (in promise): ' + readableObjectToString(value) + - (value && value.stack ? '\n' + value.stack : '')); - } - catch (err) { - var error_1 = err; - error_1.rejection = value; - error_1.promise = promise; - error_1.zone = Zone.current; - error_1.task = Zone.currentTask; - _uncaughtPromiseErrors.push(error_1); - api.scheduleMicroTask(); // to make sure that it is running - } - } - } - } - // Resolving an already resolved promise is a noop. - return promise; - } - var REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler'); - function clearRejectedNoCatch(promise) { - if (promise[symbolState] === REJECTED_NO_CATCH) { - // if the promise is rejected no catch status - // and queue.length > 0, means there is a error handler - // here to handle the rejected promise, we should trigger - // windows.rejectionhandled eventHandler or nodejs rejectionHandled - // eventHandler - try { - var handler = Zone[REJECTION_HANDLED_HANDLER]; - if (handler && typeof handler === 'function') { - handler.call(this, { rejection: promise[symbolValue], promise: promise }); - } - } - catch (err) { - } - promise[symbolState] = REJECTED; - for (var i = 0; i < _uncaughtPromiseErrors.length; i++) { - if (promise === _uncaughtPromiseErrors[i].promise) { - _uncaughtPromiseErrors.splice(i, 1); - } - } - } - } - function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) { - clearRejectedNoCatch(promise); - var promiseState = promise[symbolState]; - var delegate = promiseState ? - (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution : - (typeof onRejected === 'function') ? onRejected : forwardRejection; - zone.scheduleMicroTask(source, function () { - try { - var parentPromiseValue = promise[symbolValue]; - var isFinallyPromise = chainPromise && symbolFinally === chainPromise[symbolFinally]; - if (isFinallyPromise) { - // if the promise is generated from finally call, keep parent promise's state and value - chainPromise[symbolParentPromiseValue] = parentPromiseValue; - chainPromise[symbolParentPromiseState] = promiseState; - } - // should not pass value to finally callback - var value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ? - [] : - [parentPromiseValue]); - resolvePromise(chainPromise, true, value); - } - catch (error) { - // if error occurs, should always return this error - resolvePromise(chainPromise, false, error); - } - }, chainPromise); - } - var ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }'; - var ZoneAwarePromise = /** @class */ (function () { - function ZoneAwarePromise(executor) { - var promise = this; - if (!(promise instanceof ZoneAwarePromise)) { - throw new Error('Must be an instanceof Promise.'); - } - promise[symbolState] = UNRESOLVED; - promise[symbolValue] = []; // queue; - try { - executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED)); - } - catch (error) { - resolvePromise(promise, false, error); - } - } - ZoneAwarePromise.toString = function () { - return ZONE_AWARE_PROMISE_TO_STRING; - }; - ZoneAwarePromise.resolve = function (value) { - return resolvePromise(new this(null), RESOLVED, value); - }; - ZoneAwarePromise.reject = function (error) { - return resolvePromise(new this(null), REJECTED, error); - }; - ZoneAwarePromise.race = function (values) { - var e_1, _a; - var resolve; - var reject; - var promise = new this(function (res, rej) { - resolve = res; - reject = rej; - }); - function onResolve(value) { - promise && (promise = false || resolve(value)); - } - function onReject(error) { - promise && (promise = false || reject(error)); - } - try { - for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) { - var value = values_1_1.value; - if (!isThenable(value)) { - value = this.resolve(value); - } - value.then(onResolve, onReject); - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1); - } - finally { if (e_1) throw e_1.error; } - } - return promise; - }; - ZoneAwarePromise.all = function (values) { - var e_2, _a; - var resolve; - var reject; - var promise = new this(function (res, rej) { - resolve = res; - reject = rej; - }); - // Start at 2 to prevent prematurely resolving if .then is called immediately. - var unresolvedCount = 2; - var valueIndex = 0; - var resolvedValues = []; - var _loop_2 = function (value) { - if (!isThenable(value)) { - value = this_1.resolve(value); - } - var curValueIndex = valueIndex; - value.then(function (value) { - resolvedValues[curValueIndex] = value; - unresolvedCount--; - if (unresolvedCount === 0) { - resolve(resolvedValues); - } - }, reject); - unresolvedCount++; - valueIndex++; - }; - var this_1 = this; - try { - for (var values_2 = __values(values), values_2_1 = values_2.next(); !values_2_1.done; values_2_1 = values_2.next()) { - var value = values_2_1.value; - _loop_2(value); - } - } - catch (e_2_1) { e_2 = { error: e_2_1 }; } - finally { - try { - if (values_2_1 && !values_2_1.done && (_a = values_2.return)) _a.call(values_2); - } - finally { if (e_2) throw e_2.error; } - } - // Make the unresolvedCount zero-based again. - unresolvedCount -= 2; - if (unresolvedCount === 0) { - resolve(resolvedValues); - } - return promise; - }; - ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) { - var chainPromise = new this.constructor(null); - var zone = Zone.current; - if (this[symbolState] == UNRESOLVED) { - this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected); - } - else { - scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected); - } - return chainPromise; - }; - ZoneAwarePromise.prototype.catch = function (onRejected) { - return this.then(null, onRejected); - }; - ZoneAwarePromise.prototype.finally = function (onFinally) { - var chainPromise = new this.constructor(null); - chainPromise[symbolFinally] = symbolFinally; - var zone = Zone.current; - if (this[symbolState] == UNRESOLVED) { - this[symbolValue].push(zone, chainPromise, onFinally, onFinally); - } - else { - scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally); - } - return chainPromise; - }; - return ZoneAwarePromise; - }()); - // Protect against aggressive optimizers dropping seemingly unused properties. - // E.g. Closure Compiler in advanced mode. - ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve; - ZoneAwarePromise['reject'] = ZoneAwarePromise.reject; - ZoneAwarePromise['race'] = ZoneAwarePromise.race; - ZoneAwarePromise['all'] = ZoneAwarePromise.all; - var NativePromise = global[symbolPromise] = global['Promise']; - var ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise'); - var desc = ObjectGetOwnPropertyDescriptor(global, 'Promise'); - if (!desc || desc.configurable) { - desc && delete desc.writable; - desc && delete desc.value; - if (!desc) { - desc = { configurable: true, enumerable: true }; - } - desc.get = function () { - // if we already set ZoneAwarePromise, use patched one - // otherwise return native one. - return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise]; - }; - desc.set = function (NewNativePromise) { - if (NewNativePromise === ZoneAwarePromise) { - // if the NewNativePromise is ZoneAwarePromise - // save to global - global[ZONE_AWARE_PROMISE] = NewNativePromise; - } - else { - // if the NewNativePromise is not ZoneAwarePromise - // for example: after load zone.js, some library just - // set es6-promise to global, if we set it to global - // directly, assertZonePatched will fail and angular - // will not loaded, so we just set the NewNativePromise - // to global[symbolPromise], so the result is just like - // we load ES6 Promise before zone.js - global[symbolPromise] = NewNativePromise; - if (!NewNativePromise.prototype[symbolThen]) { - patchThen(NewNativePromise); - } - api.setNativePromise(NewNativePromise); - } - }; - ObjectDefineProperty(global, 'Promise', desc); - } - global['Promise'] = ZoneAwarePromise; - var symbolThenPatched = __symbol__('thenPatched'); - function patchThen(Ctor) { - var proto = Ctor.prototype; - var prop = ObjectGetOwnPropertyDescriptor(proto, 'then'); - if (prop && (prop.writable === false || !prop.configurable)) { - // check Ctor.prototype.then propertyDescriptor is writable or not - // in meteor env, writable is false, we should ignore such case - return; - } - var originalThen = proto.then; - // Keep a reference to the original method. - proto[symbolThen] = originalThen; - Ctor.prototype.then = function (onResolve, onReject) { - var _this = this; - var wrapped = new ZoneAwarePromise(function (resolve, reject) { - originalThen.call(_this, resolve, reject); - }); - return wrapped.then(onResolve, onReject); - }; - Ctor[symbolThenPatched] = true; - } - api.patchThen = patchThen; - if (NativePromise) { - patchThen(NativePromise); - } - // This is not part of public API, but it is useful for tests, so we expose it. - Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors; - return ZoneAwarePromise; -}); - -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -Zone.__load_patch('fetch', function (global, Zone, api) { - var fetch = global['fetch']; - var ZoneAwarePromise = global.Promise; - var symbolThenPatched = api.symbol('thenPatched'); - var fetchTaskScheduling = api.symbol('fetchTaskScheduling'); - var fetchTaskAborting = api.symbol('fetchTaskAborting'); - if (typeof fetch !== 'function') { - return; - } - var OriginalAbortController = global['AbortController']; - var supportAbort = typeof OriginalAbortController === 'function'; - var abortNative = null; - if (supportAbort) { - global['AbortController'] = function () { - var abortController = new OriginalAbortController(); - var signal = abortController.signal; - signal.abortController = abortController; - return abortController; - }; - abortNative = api.patchMethod(OriginalAbortController.prototype, 'abort', function (delegate) { return function (self, args) { - if (self.task) { - return self.task.zone.cancelTask(self.task); - } - return delegate.apply(self, args); - }; }); - } - var placeholder = function () { }; - global['fetch'] = function () { - var _this = this; - var args = Array.prototype.slice.call(arguments); - var options = args.length > 1 ? args[1] : null; - var signal = options && options.signal; - return new Promise(function (res, rej) { - var task = Zone.current.scheduleMacroTask('fetch', placeholder, args, function () { - var fetchPromise; - var zone = Zone.current; - try { - zone[fetchTaskScheduling] = true; - fetchPromise = fetch.apply(_this, args); - } - catch (error) { - rej(error); - return; - } - finally { - zone[fetchTaskScheduling] = false; - } - if (!(fetchPromise instanceof ZoneAwarePromise)) { - var ctor = fetchPromise.constructor; - if (!ctor[symbolThenPatched]) { - api.patchThen(ctor); - } - } - fetchPromise.then(function (resource) { - if (task.state !== 'notScheduled') { - task.invoke(); - } - res(resource); - }, function (error) { - if (task.state !== 'notScheduled') { - task.invoke(); - } - rej(error); - }); - }, function () { - if (!supportAbort) { - rej('No AbortController supported, can not cancel fetch'); - return; - } - if (signal && signal.abortController && !signal.aborted && - typeof signal.abortController.abort === 'function' && abortNative) { - try { - Zone.current[fetchTaskAborting] = true; - abortNative.call(signal.abortController); - } - finally { - Zone.current[fetchTaskAborting] = false; - } - } - else { - rej('cancel fetch need a AbortController.signal'); - } - }); - if (signal && signal.abortController) { - signal.abortController.task = task; - } - }); - }; -}); - -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -/** - * Suppress closure compiler errors about unknown 'Zone' variable - * @fileoverview - * @suppress {undefinedVars,globalThis,missingRequire} - */ -// issue #989, to reduce bundle size, use short name -/** Object.getOwnPropertyDescriptor */ -var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; -/** Object.defineProperty */ -var ObjectDefineProperty = Object.defineProperty; -/** Object.getPrototypeOf */ -var ObjectGetPrototypeOf = Object.getPrototypeOf; -/** Object.create */ -var ObjectCreate = Object.create; -/** Array.prototype.slice */ -var ArraySlice = Array.prototype.slice; -/** addEventListener string const */ -var ADD_EVENT_LISTENER_STR = 'addEventListener'; -/** removeEventListener string const */ -var REMOVE_EVENT_LISTENER_STR = 'removeEventListener'; -/** zoneSymbol addEventListener */ -var ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR); -/** zoneSymbol removeEventListener */ -var ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR); -/** true string const */ -var TRUE_STR = 'true'; -/** false string const */ -var FALSE_STR = 'false'; -/** __zone_symbol__ string const */ -var ZONE_SYMBOL_PREFIX = '__zone_symbol__'; -function wrapWithCurrentZone(callback, source) { - return Zone.current.wrap(callback, source); -} -function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) { - return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel); -} -var zoneSymbol = Zone.__symbol__; -var isWindowExists = typeof window !== 'undefined'; -var internalWindow = isWindowExists ? window : undefined; -var _global = isWindowExists && internalWindow || typeof self === 'object' && self || global; -var REMOVE_ATTRIBUTE = 'removeAttribute'; -var NULL_ON_PROP_VALUE = [null]; -function bindArguments(args, source) { - for (var i = args.length - 1; i >= 0; i--) { - if (typeof args[i] === 'function') { - args[i] = wrapWithCurrentZone(args[i], source + '_' + i); - } - } - return args; -} -function patchPrototype(prototype, fnNames) { - var source = prototype.constructor['name']; - var _loop_1 = function (i) { - var name_1 = fnNames[i]; - var delegate = prototype[name_1]; - if (delegate) { - var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name_1); - if (!isPropertyWritable(prototypeDesc)) { - return "continue"; - } - prototype[name_1] = (function (delegate) { - var patched = function () { - return delegate.apply(this, bindArguments(arguments, source + '.' + name_1)); - }; - attachOriginToPatched(patched, delegate); - return patched; - })(delegate); - } - }; - for (var i = 0; i < fnNames.length; i++) { - _loop_1(i); - } -} -function isPropertyWritable(propertyDesc) { - if (!propertyDesc) { - return true; - } - if (propertyDesc.writable === false) { - return false; - } - return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined'); -} -var isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope); -// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify -// this code. -var isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' && - {}.toString.call(_global.process) === '[object process]'); -var isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']); -// we are in electron of nw, so we are both browser and nodejs -// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify -// this code. -var isMix = typeof _global.process !== 'undefined' && - {}.toString.call(_global.process) === '[object process]' && !isWebWorker && - !!(isWindowExists && internalWindow['HTMLElement']); -var zoneSymbolEventNames = {}; -var wrapFn = function (event) { - // https://github.com/angular/zone.js/issues/911, in IE, sometimes - // event will be undefined, so we need to use window.event - event = event || _global.event; - if (!event) { - return; - } - var eventNameSymbol = zoneSymbolEventNames[event.type]; - if (!eventNameSymbol) { - eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type); - } - var target = this || event.target || _global; - var listener = target[eventNameSymbol]; - var result; - if (isBrowser && target === internalWindow && event.type === 'error') { - // window.onerror have different signiture - // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror - // and onerror callback will prevent default when callback return true - var errorEvent = event; - result = listener && - listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error); - if (result === true) { - event.preventDefault(); - } - } - else { - result = listener && listener.apply(this, arguments); - if (result != undefined && !result) { - event.preventDefault(); - } - } - return result; -}; -function patchProperty(obj, prop, prototype) { - var desc = ObjectGetOwnPropertyDescriptor(obj, prop); - if (!desc && prototype) { - // when patch window object, use prototype to check prop exist or not - var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop); - if (prototypeDesc) { - desc = { enumerable: true, configurable: true }; - } - } - // if the descriptor not exists or is not configurable - // just return - if (!desc || !desc.configurable) { - return; - } - var onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched'); - if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) { - return; - } - // A property descriptor cannot have getter/setter and be writable - // deleting the writable and value properties avoids this error: - // - // TypeError: property descriptors must not specify a value or be writable when a - // getter or setter has been specified - delete desc.writable; - delete desc.value; - var originalDescGet = desc.get; - var originalDescSet = desc.set; - // substr(2) cuz 'onclick' -> 'click', etc - var eventName = prop.substr(2); - var eventNameSymbol = zoneSymbolEventNames[eventName]; - if (!eventNameSymbol) { - eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName); - } - desc.set = function (newValue) { - // in some of windows's onproperty callback, this is undefined - // so we need to check it - var target = this; - if (!target && obj === _global) { - target = _global; - } - if (!target) { - return; - } - var previousValue = target[eventNameSymbol]; - if (previousValue) { - target.removeEventListener(eventName, wrapFn); - } - // issue #978, when onload handler was added before loading zone.js - // we should remove it with originalDescSet - if (originalDescSet) { - originalDescSet.apply(target, NULL_ON_PROP_VALUE); - } - if (typeof newValue === 'function') { - target[eventNameSymbol] = newValue; - target.addEventListener(eventName, wrapFn, false); - } - else { - target[eventNameSymbol] = null; - } - }; - // The getter would return undefined for unassigned properties but the default value of an - // unassigned property is null - desc.get = function () { - // in some of windows's onproperty callback, this is undefined - // so we need to check it - var target = this; - if (!target && obj === _global) { - target = _global; - } - if (!target) { - return null; - } - var listener = target[eventNameSymbol]; - if (listener) { - return listener; - } - else if (originalDescGet) { - // result will be null when use inline event attribute, - // such as - // because the onclick function is internal raw uncompiled handler - // the onclick will be evaluated when first time event was triggered or - // the property is accessed, https://github.com/angular/zone.js/issues/525 - // so we should use original native get to retrieve the handler - var value = originalDescGet && originalDescGet.call(this); - if (value) { - desc.set.call(this, value); - if (typeof target[REMOVE_ATTRIBUTE] === 'function') { - target.removeAttribute(prop); - } - return value; - } - } - return null; - }; - ObjectDefineProperty(obj, prop, desc); - obj[onPropPatchedSymbol] = true; -} -function patchOnProperties(obj, properties, prototype) { - if (properties) { - for (var i = 0; i < properties.length; i++) { - patchProperty(obj, 'on' + properties[i], prototype); - } - } - else { - var onProperties = []; - for (var prop in obj) { - if (prop.substr(0, 2) == 'on') { - onProperties.push(prop); - } - } - for (var j = 0; j < onProperties.length; j++) { - patchProperty(obj, onProperties[j], prototype); - } - } -} -var originalInstanceKey = zoneSymbol('originalInstance'); -// wrap some native API on `window` -function patchClass(className) { - var OriginalClass = _global[className]; - if (!OriginalClass) - return; - // keep original class in global - _global[zoneSymbol(className)] = OriginalClass; - _global[className] = function () { - var a = bindArguments(arguments, className); - switch (a.length) { - case 0: - this[originalInstanceKey] = new OriginalClass(); - break; - case 1: - this[originalInstanceKey] = new OriginalClass(a[0]); - break; - case 2: - this[originalInstanceKey] = new OriginalClass(a[0], a[1]); - break; - case 3: - this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]); - break; - case 4: - this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]); - break; - default: - throw new Error('Arg list too long.'); - } - }; - // attach original delegate to patched function - attachOriginToPatched(_global[className], OriginalClass); - var instance = new OriginalClass(function () { }); - var prop; - for (prop in instance) { - // https://bugs.webkit.org/show_bug.cgi?id=44721 - if (className === 'XMLHttpRequest' && prop === 'responseBlob') - continue; - (function (prop) { - if (typeof instance[prop] === 'function') { - _global[className].prototype[prop] = function () { - return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments); - }; - } - else { - ObjectDefineProperty(_global[className].prototype, prop, { - set: function (fn) { - if (typeof fn === 'function') { - this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop); - // keep callback in wrapped function so we can - // use it in Function.prototype.toString to return - // the native one. - attachOriginToPatched(this[originalInstanceKey][prop], fn); - } - else { - this[originalInstanceKey][prop] = fn; - } - }, - get: function () { - return this[originalInstanceKey][prop]; - } - }); - } - }(prop)); - } - for (prop in OriginalClass) { - if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) { - _global[className][prop] = OriginalClass[prop]; - } - } -} -function copySymbolProperties(src, dest) { - if (typeof Object.getOwnPropertySymbols !== 'function') { - return; - } - var symbols = Object.getOwnPropertySymbols(src); - symbols.forEach(function (symbol) { - var desc = Object.getOwnPropertyDescriptor(src, symbol); - Object.defineProperty(dest, symbol, { - get: function () { - return src[symbol]; - }, - set: function (value) { - if (desc && (!desc.writable || typeof desc.set !== 'function')) { - // if src[symbol] is not writable or not have a setter, just return - return; - } - src[symbol] = value; - }, - enumerable: desc ? desc.enumerable : true, - configurable: desc ? desc.configurable : true - }); - }); -} -var shouldCopySymbolProperties = false; - -function patchMethod(target, name, patchFn) { - var proto = target; - while (proto && !proto.hasOwnProperty(name)) { - proto = ObjectGetPrototypeOf(proto); - } - if (!proto && target[name]) { - // somehow we did not find it, but we can see it. This happens on IE for Window properties. - proto = target; - } - var delegateName = zoneSymbol(name); - var delegate = null; - if (proto && !(delegate = proto[delegateName])) { - delegate = proto[delegateName] = proto[name]; - // check whether proto[name] is writable - // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob - var desc = proto && ObjectGetOwnPropertyDescriptor(proto, name); - if (isPropertyWritable(desc)) { - var patchDelegate_1 = patchFn(delegate, delegateName, name); - proto[name] = function () { - return patchDelegate_1(this, arguments); - }; - attachOriginToPatched(proto[name], delegate); - if (shouldCopySymbolProperties) { - copySymbolProperties(delegate, proto[name]); - } - } - } - return delegate; -} -// TODO: @JiaLiPassion, support cancel task later if necessary -function patchMacroTask(obj, funcName, metaCreator) { - var setNative = null; - function scheduleTask(task) { - var data = task.data; - data.args[data.cbIdx] = function () { - task.invoke.apply(this, arguments); - }; - setNative.apply(data.target, data.args); - return task; - } - setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) { - var meta = metaCreator(self, args); - if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') { - return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask); - } - else { - // cause an error by calling it directly. - return delegate.apply(self, args); - } - }; }); -} - -function attachOriginToPatched(patched, original) { - patched[zoneSymbol('OriginalDelegate')] = original; -} -var isDetectedIEOrEdge = false; -var ieOrEdge = false; -function isIE() { - try { - var ua = internalWindow.navigator.userAgent; - if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) { - return true; - } - } - catch (error) { - } - return false; -} -function isIEOrEdge() { - if (isDetectedIEOrEdge) { - return ieOrEdge; - } - isDetectedIEOrEdge = true; - try { - var ua = internalWindow.navigator.userAgent; - if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) { - ieOrEdge = true; - } - return ieOrEdge; - } - catch (error) { - } -} - -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -// override Function.prototype.toString to make zone.js patched function -// look like native function -Zone.__load_patch('toString', function (global) { - // patch Func.prototype.toString to let them look like native - var originalFunctionToString = Function.prototype.toString; - var ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate'); - var PROMISE_SYMBOL = zoneSymbol('Promise'); - var ERROR_SYMBOL = zoneSymbol('Error'); - var newFunctionToString = function toString() { - if (typeof this === 'function') { - var originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL]; - if (originalDelegate) { - if (typeof originalDelegate === 'function') { - return originalFunctionToString.apply(this[ORIGINAL_DELEGATE_SYMBOL], arguments); - } - else { - return Object.prototype.toString.call(originalDelegate); - } - } - if (this === Promise) { - var nativePromise = global[PROMISE_SYMBOL]; - if (nativePromise) { - return originalFunctionToString.apply(nativePromise, arguments); - } - } - if (this === Error) { - var nativeError = global[ERROR_SYMBOL]; - if (nativeError) { - return originalFunctionToString.apply(nativeError, arguments); - } - } - } - return originalFunctionToString.apply(this, arguments); - }; - newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString; - Function.prototype.toString = newFunctionToString; - // patch Object.prototype.toString to let them look like native - var originalObjectToString = Object.prototype.toString; - var PROMISE_OBJECT_TO_STRING = '[object Promise]'; - Object.prototype.toString = function () { - if (this instanceof Promise) { - return PROMISE_OBJECT_TO_STRING; - } - return originalObjectToString.apply(this, arguments); - }; -}); - -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -/** - * @fileoverview - * @suppress {missingRequire} - */ -var passiveSupported = false; -if (typeof window !== 'undefined') { - try { - var options = Object.defineProperty({}, 'passive', { - get: function () { - passiveSupported = true; - } - }); - window.addEventListener('test', options, options); - window.removeEventListener('test', options, options); - } - catch (err) { - passiveSupported = false; - } -} -// an identifier to tell ZoneTask do not create a new invoke closure -var OPTIMIZED_ZONE_EVENT_TASK_DATA = { - useG: true -}; -var zoneSymbolEventNames$1 = {}; -var globalSources = {}; -var EVENT_NAME_SYMBOL_REGX = /^__zone_symbol__(\w+)(true|false)$/; -var IMMEDIATE_PROPAGATION_SYMBOL = ('__zone_symbol__propagationStopped'); -function patchEventTarget(_global, apis, patchOptions) { - var ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR; - var REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR; - var LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners'; - var REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners'; - var zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER); - var ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':'; - var PREPEND_EVENT_LISTENER = 'prependListener'; - var PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':'; - var invokeTask = function (task, target, event) { - // for better performance, check isRemoved which is set - // by removeEventListener - if (task.isRemoved) { - return; - } - var delegate = task.callback; - if (typeof delegate === 'object' && delegate.handleEvent) { - // create the bind version of handleEvent when invoke - task.callback = function (event) { return delegate.handleEvent(event); }; - task.originalDelegate = delegate; - } - // invoke static task.invoke - task.invoke(task, target, [event]); - var options = task.options; - if (options && typeof options === 'object' && options.once) { - // if options.once is true, after invoke once remove listener here - // only browser need to do this, nodejs eventEmitter will cal removeListener - // inside EventEmitter.once - var delegate_1 = task.originalDelegate ? task.originalDelegate : task.callback; - target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate_1, options); - } - }; - // global shared zoneAwareCallback to handle all event callback with capture = false - var globalZoneAwareCallback = function (event) { - // https://github.com/angular/zone.js/issues/911, in IE, sometimes - // event will be undefined, so we need to use window.event - event = event || _global.event; - if (!event) { - return; - } - // event.target is needed for Samsung TV and SourceBuffer - // || global is needed https://github.com/angular/zone.js/issues/190 - var target = this || event.target || _global; - var tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]]; - if (tasks) { - // invoke all tasks which attached to current target with given event.type and capture = false - // for performance concern, if task.length === 1, just invoke - if (tasks.length === 1) { - invokeTask(tasks[0], target, event); - } - else { - // https://github.com/angular/zone.js/issues/836 - // copy the tasks array before invoke, to avoid - // the callback will remove itself or other listener - var copyTasks = tasks.slice(); - for (var i = 0; i < copyTasks.length; i++) { - if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) { - break; - } - invokeTask(copyTasks[i], target, event); - } - } - } - }; - // global shared zoneAwareCallback to handle all event callback with capture = true - var globalZoneAwareCaptureCallback = function (event) { - // https://github.com/angular/zone.js/issues/911, in IE, sometimes - // event will be undefined, so we need to use window.event - event = event || _global.event; - if (!event) { - return; - } - // event.target is needed for Samsung TV and SourceBuffer - // || global is needed https://github.com/angular/zone.js/issues/190 - var target = this || event.target || _global; - var tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]]; - if (tasks) { - // invoke all tasks which attached to current target with given event.type and capture = false - // for performance concern, if task.length === 1, just invoke - if (tasks.length === 1) { - invokeTask(tasks[0], target, event); - } - else { - // https://github.com/angular/zone.js/issues/836 - // copy the tasks array before invoke, to avoid - // the callback will remove itself or other listener - var copyTasks = tasks.slice(); - for (var i = 0; i < copyTasks.length; i++) { - if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) { - break; - } - invokeTask(copyTasks[i], target, event); - } - } - } - }; - function patchEventTargetMethods(obj, patchOptions) { - if (!obj) { - return false; - } - var useGlobalCallback = true; - if (patchOptions && patchOptions.useG !== undefined) { - useGlobalCallback = patchOptions.useG; - } - var validateHandler = patchOptions && patchOptions.vh; - var checkDuplicate = true; - if (patchOptions && patchOptions.chkDup !== undefined) { - checkDuplicate = patchOptions.chkDup; - } - var returnTarget = false; - if (patchOptions && patchOptions.rt !== undefined) { - returnTarget = patchOptions.rt; - } - var proto = obj; - while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) { - proto = ObjectGetPrototypeOf(proto); - } - if (!proto && obj[ADD_EVENT_LISTENER]) { - // somehow we did not find it, but we can see it. This happens on IE for Window properties. - proto = obj; - } - if (!proto) { - return false; - } - if (proto[zoneSymbolAddEventListener]) { - return false; - } - var eventNameToString = patchOptions && patchOptions.eventNameToString; - // a shared global taskData to pass data for scheduleEventTask - // so we do not need to create a new object just for pass some data - var taskData = {}; - var nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER]; - var nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] = - proto[REMOVE_EVENT_LISTENER]; - var nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] = - proto[LISTENERS_EVENT_LISTENER]; - var nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] = - proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER]; - var nativePrependEventListener; - if (patchOptions && patchOptions.prepend) { - nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] = - proto[patchOptions.prepend]; - } - function checkIsPassive(task) { - if (!passiveSupported && typeof taskData.options !== 'boolean' && - typeof taskData.options !== 'undefined' && taskData.options !== null) { - // options is a non-null non-undefined object - // passive is not supported - // don't pass options as object - // just pass capture as a boolean - task.options = !!taskData.options.capture; - taskData.options = task.options; - } - } - var customScheduleGlobal = function (task) { - // if there is already a task for the eventName + capture, - // just return, because we use the shared globalZoneAwareCallback here. - if (taskData.isExisting) { - return; - } - checkIsPassive(task); - return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options); - }; - var customCancelGlobal = function (task) { - // if task is not marked as isRemoved, this call is directly - // from Zone.prototype.cancelTask, we should remove the task - // from tasksList of target first - if (!task.isRemoved) { - var symbolEventNames = zoneSymbolEventNames$1[task.eventName]; - var symbolEventName = void 0; - if (symbolEventNames) { - symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR]; - } - var existingTasks = symbolEventName && task.target[symbolEventName]; - if (existingTasks) { - for (var i = 0; i < existingTasks.length; i++) { - var existingTask = existingTasks[i]; - if (existingTask === task) { - existingTasks.splice(i, 1); - // set isRemoved to data for faster invokeTask check - task.isRemoved = true; - if (existingTasks.length === 0) { - // all tasks for the eventName + capture have gone, - // remove globalZoneAwareCallback and remove the task cache from target - task.allRemoved = true; - task.target[symbolEventName] = null; - } - break; - } - } - } - } - // if all tasks for the eventName + capture have gone, - // we will really remove the global event callback, - // if not, return - if (!task.allRemoved) { - return; - } - return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options); - }; - var customScheduleNonGlobal = function (task) { - checkIsPassive(task); - return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); - }; - var customSchedulePrepend = function (task) { - return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); - }; - var customCancelNonGlobal = function (task) { - return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options); - }; - var customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal; - var customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal; - var compareTaskCallbackVsDelegate = function (task, delegate) { - var typeOfDelegate = typeof delegate; - return (typeOfDelegate === 'function' && task.callback === delegate) || - (typeOfDelegate === 'object' && task.originalDelegate === delegate); - }; - var compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate; - var blackListedEvents = Zone[Zone.__symbol__('BLACK_LISTED_EVENTS')]; - var makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget, prepend) { - if (returnTarget === void 0) { returnTarget = false; } - if (prepend === void 0) { prepend = false; } - return function () { - var target = this || _global; - var eventName = arguments[0]; - var delegate = arguments[1]; - if (!delegate) { - return nativeListener.apply(this, arguments); - } - if (isNode && eventName === 'uncaughtException') { - // don't patch uncaughtException of nodejs to prevent endless loop - return nativeListener.apply(this, arguments); - } - // don't create the bind delegate function for handleEvent - // case here to improve addEventListener performance - // we will create the bind delegate when invoke - var isHandleEvent = false; - if (typeof delegate !== 'function') { - if (!delegate.handleEvent) { - return nativeListener.apply(this, arguments); - } - isHandleEvent = true; - } - if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) { - return; - } - var options = arguments[2]; - if (blackListedEvents) { - // check black list - for (var i = 0; i < blackListedEvents.length; i++) { - if (eventName === blackListedEvents[i]) { - return nativeListener.apply(this, arguments); - } - } - } - var capture; - var once = false; - if (options === undefined) { - capture = false; - } - else if (options === true) { - capture = true; - } - else if (options === false) { - capture = false; - } - else { - capture = options ? !!options.capture : false; - once = options ? !!options.once : false; - } - var zone = Zone.current; - var symbolEventNames = zoneSymbolEventNames$1[eventName]; - var symbolEventName; - if (!symbolEventNames) { - // the code is duplicate, but I just want to get some better performance - var falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR; - var trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR; - var symbol = ZONE_SYMBOL_PREFIX + falseEventName; - var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; - zoneSymbolEventNames$1[eventName] = {}; - zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol; - zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture; - symbolEventName = capture ? symbolCapture : symbol; - } - else { - symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; - } - var existingTasks = target[symbolEventName]; - var isExisting = false; - if (existingTasks) { - // already have task registered - isExisting = true; - if (checkDuplicate) { - for (var i = 0; i < existingTasks.length; i++) { - if (compare(existingTasks[i], delegate)) { - // same callback, same capture, same event name, just return - return; - } - } - } - } - else { - existingTasks = target[symbolEventName] = []; - } - var source; - var constructorName = target.constructor['name']; - var targetSource = globalSources[constructorName]; - if (targetSource) { - source = targetSource[eventName]; - } - if (!source) { - source = constructorName + addSource + - (eventNameToString ? eventNameToString(eventName) : eventName); - } - // do not create a new object as task.data to pass those things - // just use the global shared one - taskData.options = options; - if (once) { - // if addEventListener with once options, we don't pass it to - // native addEventListener, instead we keep the once setting - // and handle ourselves. - taskData.options.once = false; - } - taskData.target = target; - taskData.capture = capture; - taskData.eventName = eventName; - taskData.isExisting = isExisting; - var data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined; - // keep taskData into data to allow onScheduleEventTask to access the task information - if (data) { - data.taskData = taskData; - } - var task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn); - // should clear taskData.target to avoid memory leak - // issue, https://github.com/angular/angular/issues/20442 - taskData.target = null; - // need to clear up taskData because it is a global object - if (data) { - data.taskData = null; - } - // have to save those information to task in case - // application may call task.zone.cancelTask() directly - if (once) { - options.once = true; - } - if (!(!passiveSupported && typeof task.options === 'boolean')) { - // if not support passive, and we pass an option object - // to addEventListener, we should save the options to task - task.options = options; - } - task.target = target; - task.capture = capture; - task.eventName = eventName; - if (isHandleEvent) { - // save original delegate for compare to check duplicate - task.originalDelegate = delegate; - } - if (!prepend) { - existingTasks.push(task); - } - else { - existingTasks.unshift(task); - } - if (returnTarget) { - return target; - } - }; - }; - proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget); - if (nativePrependEventListener) { - proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true); - } - proto[REMOVE_EVENT_LISTENER] = function () { - var target = this || _global; - var eventName = arguments[0]; - var options = arguments[2]; - var capture; - if (options === undefined) { - capture = false; - } - else if (options === true) { - capture = true; - } - else if (options === false) { - capture = false; - } - else { - capture = options ? !!options.capture : false; - } - var delegate = arguments[1]; - if (!delegate) { - return nativeRemoveEventListener.apply(this, arguments); - } - if (validateHandler && - !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) { - return; - } - var symbolEventNames = zoneSymbolEventNames$1[eventName]; - var symbolEventName; - if (symbolEventNames) { - symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; - } - var existingTasks = symbolEventName && target[symbolEventName]; - if (existingTasks) { - for (var i = 0; i < existingTasks.length; i++) { - var existingTask = existingTasks[i]; - if (compare(existingTask, delegate)) { - existingTasks.splice(i, 1); - // set isRemoved to data for faster invokeTask check - existingTask.isRemoved = true; - if (existingTasks.length === 0) { - // all tasks for the eventName + capture have gone, - // remove globalZoneAwareCallback and remove the task cache from target - existingTask.allRemoved = true; - target[symbolEventName] = null; - } - existingTask.zone.cancelTask(existingTask); - if (returnTarget) { - return target; - } - return; - } - } - } - // issue 930, didn't find the event name or callback - // from zone kept existingTasks, the callback maybe - // added outside of zone, we need to call native removeEventListener - // to try to remove it. - return nativeRemoveEventListener.apply(this, arguments); - }; - proto[LISTENERS_EVENT_LISTENER] = function () { - var target = this || _global; - var eventName = arguments[0]; - var listeners = []; - var tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName); - for (var i = 0; i < tasks.length; i++) { - var task = tasks[i]; - var delegate = task.originalDelegate ? task.originalDelegate : task.callback; - listeners.push(delegate); - } - return listeners; - }; - proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () { - var target = this || _global; - var eventName = arguments[0]; - if (!eventName) { - var keys = Object.keys(target); - for (var i = 0; i < keys.length; i++) { - var prop = keys[i]; - var match = EVENT_NAME_SYMBOL_REGX.exec(prop); - var evtName = match && match[1]; - // in nodejs EventEmitter, removeListener event is - // used for monitoring the removeListener call, - // so just keep removeListener eventListener until - // all other eventListeners are removed - if (evtName && evtName !== 'removeListener') { - this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName); - } - } - // remove removeListener listener finally - this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener'); - } - else { - var symbolEventNames = zoneSymbolEventNames$1[eventName]; - if (symbolEventNames) { - var symbolEventName = symbolEventNames[FALSE_STR]; - var symbolCaptureEventName = symbolEventNames[TRUE_STR]; - var tasks = target[symbolEventName]; - var captureTasks = target[symbolCaptureEventName]; - if (tasks) { - var removeTasks = tasks.slice(); - for (var i = 0; i < removeTasks.length; i++) { - var task = removeTasks[i]; - var delegate = task.originalDelegate ? task.originalDelegate : task.callback; - this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); - } - } - if (captureTasks) { - var removeTasks = captureTasks.slice(); - for (var i = 0; i < removeTasks.length; i++) { - var task = removeTasks[i]; - var delegate = task.originalDelegate ? task.originalDelegate : task.callback; - this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); - } - } - } - } - if (returnTarget) { - return this; - } - }; - // for native toString patch - attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener); - attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener); - if (nativeRemoveAllListeners) { - attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners); - } - if (nativeListeners) { - attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners); - } - return true; - } - var results = []; - for (var i = 0; i < apis.length; i++) { - results[i] = patchEventTargetMethods(apis[i], patchOptions); - } - return results; -} -function findEventTasks(target, eventName) { - var foundTasks = []; - for (var prop in target) { - var match = EVENT_NAME_SYMBOL_REGX.exec(prop); - var evtName = match && match[1]; - if (evtName && (!eventName || evtName === eventName)) { - var tasks = target[prop]; - if (tasks) { - for (var i = 0; i < tasks.length; i++) { - foundTasks.push(tasks[i]); - } - } - } - } - return foundTasks; -} -function patchEventPrototype(global, api) { - var Event = global['Event']; - if (Event && Event.prototype) { - api.patchMethod(Event.prototype, 'stopImmediatePropagation', function (delegate) { return function (self, args) { - self[IMMEDIATE_PROPAGATION_SYMBOL] = true; - // we need to call the native stopImmediatePropagation - // in case in some hybrid application, some part of - // application will be controlled by zone, some are not - delegate && delegate.apply(self, args); - }; }); - } -} - -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -/** - * @fileoverview - * @suppress {missingRequire} - */ -var taskSymbol = zoneSymbol('zoneTask'); -function patchTimer(window, setName, cancelName, nameSuffix) { - var setNative = null; - var clearNative = null; - setName += nameSuffix; - cancelName += nameSuffix; - var tasksByHandleId = {}; - function scheduleTask(task) { - var data = task.data; - function timer() { - try { - task.invoke.apply(this, arguments); - } - finally { - // issue-934, task will be cancelled - // even it is a periodic task such as - // setInterval - if (!(task.data && task.data.isPeriodic)) { - if (typeof data.handleId === 'number') { - // in non-nodejs env, we remove timerId - // from local cache - delete tasksByHandleId[data.handleId]; - } - else if (data.handleId) { - // Node returns complex objects as handleIds - // we remove task reference from timer object - data.handleId[taskSymbol] = null; - } - } - } - } - data.args[0] = timer; - data.handleId = setNative.apply(window, data.args); - return task; - } - function clearTask(task) { - return clearNative(task.data.handleId); - } - setNative = - patchMethod(window, setName, function (delegate) { return function (self, args) { - if (typeof args[0] === 'function') { - var options = { - isPeriodic: nameSuffix === 'Interval', - delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 : - undefined, - args: args - }; - var task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask); - if (!task) { - return task; - } - // Node.js must additionally support the ref and unref functions. - var handle = task.data.handleId; - if (typeof handle === 'number') { - // for non nodejs env, we save handleId: task - // mapping in local cache for clearTimeout - tasksByHandleId[handle] = task; - } - else if (handle) { - // for nodejs env, we save task - // reference in timerId Object for clearTimeout - handle[taskSymbol] = task; - } - // check whether handle is null, because some polyfill or browser - // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame - if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' && - typeof handle.unref === 'function') { - task.ref = handle.ref.bind(handle); - task.unref = handle.unref.bind(handle); - } - if (typeof handle === 'number' || handle) { - return handle; - } - return task; - } - else { - // cause an error by calling it directly. - return delegate.apply(window, args); - } - }; }); - clearNative = - patchMethod(window, cancelName, function (delegate) { return function (self, args) { - var id = args[0]; - var task; - if (typeof id === 'number') { - // non nodejs env. - task = tasksByHandleId[id]; - } - else { - // nodejs env. - task = id && id[taskSymbol]; - // other environments. - if (!task) { - task = id; - } - } - if (task && typeof task.type === 'string') { - if (task.state !== 'notScheduled' && - (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) { - if (typeof id === 'number') { - delete tasksByHandleId[id]; - } - else if (id) { - id[taskSymbol] = null; - } - // Do not cancel already canceled functions - task.zone.cancelTask(task); - } - } - else { - // cause an error by calling it directly. - delegate.apply(window, args); - } - }; }); -} - -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -/* - * This is necessary for Chrome and Chrome mobile, to enable - * things like redefining `createdCallback` on an element. - */ -var _defineProperty = Object[zoneSymbol('defineProperty')] = Object.defineProperty; -var _getOwnPropertyDescriptor = Object[zoneSymbol('getOwnPropertyDescriptor')] = - Object.getOwnPropertyDescriptor; -var _create = Object.create; -var unconfigurablesKey = zoneSymbol('unconfigurables'); -function propertyPatch() { - Object.defineProperty = function (obj, prop, desc) { - if (isUnconfigurable(obj, prop)) { - throw new TypeError('Cannot assign to read only property \'' + prop + '\' of ' + obj); - } - var originalConfigurableFlag = desc.configurable; - if (prop !== 'prototype') { - desc = rewriteDescriptor(obj, prop, desc); - } - return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag); - }; - Object.defineProperties = function (obj, props) { - Object.keys(props).forEach(function (prop) { - Object.defineProperty(obj, prop, props[prop]); - }); - return obj; - }; - Object.create = function (obj, proto) { - if (typeof proto === 'object' && !Object.isFrozen(proto)) { - Object.keys(proto).forEach(function (prop) { - proto[prop] = rewriteDescriptor(obj, prop, proto[prop]); - }); - } - return _create(obj, proto); - }; - Object.getOwnPropertyDescriptor = function (obj, prop) { - var desc = _getOwnPropertyDescriptor(obj, prop); - if (desc && isUnconfigurable(obj, prop)) { - desc.configurable = false; - } - return desc; - }; -} -function _redefineProperty(obj, prop, desc) { - var originalConfigurableFlag = desc.configurable; - desc = rewriteDescriptor(obj, prop, desc); - return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag); -} -function isUnconfigurable(obj, prop) { - return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop]; -} -function rewriteDescriptor(obj, prop, desc) { - // issue-927, if the desc is frozen, don't try to change the desc - if (!Object.isFrozen(desc)) { - desc.configurable = true; - } - if (!desc.configurable) { - // issue-927, if the obj is frozen, don't try to set the desc to obj - if (!obj[unconfigurablesKey] && !Object.isFrozen(obj)) { - _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} }); - } - if (obj[unconfigurablesKey]) { - obj[unconfigurablesKey][prop] = true; - } - } - return desc; -} -function _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) { - try { - return _defineProperty(obj, prop, desc); - } - catch (error) { - if (desc.configurable) { - // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's - // retry with the original flag value - if (typeof originalConfigurableFlag == 'undefined') { - delete desc.configurable; - } - else { - desc.configurable = originalConfigurableFlag; - } - try { - return _defineProperty(obj, prop, desc); - } - catch (error) { - var descJson = null; - try { - descJson = JSON.stringify(desc); - } - catch (error) { - descJson = desc.toString(); - } - console.log("Attempting to configure '" + prop + "' with descriptor '" + descJson + "' on object '" + obj + "' and got error, giving up: " + error); - } - } - else { - throw error; - } - } -} - -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -// we have to patch the instance since the proto is non-configurable -function apply(api, _global) { - var WS = _global.WebSocket; - // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener - // On older Chrome, no need since EventTarget was already patched - if (!_global.EventTarget) { - patchEventTarget(_global, [WS.prototype]); - } - _global.WebSocket = function (x, y) { - var socket = arguments.length > 1 ? new WS(x, y) : new WS(x); - var proxySocket; - var proxySocketProto; - // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance - var onmessageDesc = ObjectGetOwnPropertyDescriptor(socket, 'onmessage'); - if (onmessageDesc && onmessageDesc.configurable === false) { - proxySocket = ObjectCreate(socket); - // socket have own property descriptor 'onopen', 'onmessage', 'onclose', 'onerror' - // but proxySocket not, so we will keep socket as prototype and pass it to - // patchOnProperties method - proxySocketProto = socket; - [ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, 'send', 'close'].forEach(function (propName) { - proxySocket[propName] = function () { - var args = ArraySlice.call(arguments); - if (propName === ADD_EVENT_LISTENER_STR || propName === REMOVE_EVENT_LISTENER_STR) { - var eventName = args.length > 0 ? args[0] : undefined; - if (eventName) { - var propertySymbol = Zone.__symbol__('ON_PROPERTY' + eventName); - socket[propertySymbol] = proxySocket[propertySymbol]; - } - } - return socket[propName].apply(socket, args); - }; - }); - } - else { - // we can patch the real socket - proxySocket = socket; - } - patchOnProperties(proxySocket, ['close', 'error', 'message', 'open'], proxySocketProto); - return proxySocket; - }; - var globalWebSocket = _global['WebSocket']; - for (var prop in WS) { - globalWebSocket[prop] = WS[prop]; - } -} - -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -/** - * @fileoverview - * @suppress {globalThis} - */ -var globalEventHandlersEventNames = [ - 'abort', - 'animationcancel', - 'animationend', - 'animationiteration', - 'auxclick', - 'beforeinput', - 'blur', - 'cancel', - 'canplay', - 'canplaythrough', - 'change', - 'compositionstart', - 'compositionupdate', - 'compositionend', - 'cuechange', - 'click', - 'close', - 'contextmenu', - 'curechange', - 'dblclick', - 'drag', - 'dragend', - 'dragenter', - 'dragexit', - 'dragleave', - 'dragover', - 'drop', - 'durationchange', - 'emptied', - 'ended', - 'error', - 'focus', - 'focusin', - 'focusout', - 'gotpointercapture', - 'input', - 'invalid', - 'keydown', - 'keypress', - 'keyup', - 'load', - 'loadstart', - 'loadeddata', - 'loadedmetadata', - 'lostpointercapture', - 'mousedown', - 'mouseenter', - 'mouseleave', - 'mousemove', - 'mouseout', - 'mouseover', - 'mouseup', - 'mousewheel', - 'orientationchange', - 'pause', - 'play', - 'playing', - 'pointercancel', - 'pointerdown', - 'pointerenter', - 'pointerleave', - 'pointerlockchange', - 'mozpointerlockchange', - 'webkitpointerlockerchange', - 'pointerlockerror', - 'mozpointerlockerror', - 'webkitpointerlockerror', - 'pointermove', - 'pointout', - 'pointerover', - 'pointerup', - 'progress', - 'ratechange', - 'reset', - 'resize', - 'scroll', - 'seeked', - 'seeking', - 'select', - 'selectionchange', - 'selectstart', - 'show', - 'sort', - 'stalled', - 'submit', - 'suspend', - 'timeupdate', - 'volumechange', - 'touchcancel', - 'touchmove', - 'touchstart', - 'touchend', - 'transitioncancel', - 'transitionend', - 'waiting', - 'wheel' -]; -var documentEventNames = [ - 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange', - 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror', - 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange', - 'visibilitychange', 'resume' -]; -var windowEventNames = [ - 'absolutedeviceorientation', - 'afterinput', - 'afterprint', - 'appinstalled', - 'beforeinstallprompt', - 'beforeprint', - 'beforeunload', - 'devicelight', - 'devicemotion', - 'deviceorientation', - 'deviceorientationabsolute', - 'deviceproximity', - 'hashchange', - 'languagechange', - 'message', - 'mozbeforepaint', - 'offline', - 'online', - 'paint', - 'pageshow', - 'pagehide', - 'popstate', - 'rejectionhandled', - 'storage', - 'unhandledrejection', - 'unload', - 'userproximity', - 'vrdisplyconnected', - 'vrdisplaydisconnected', - 'vrdisplaypresentchange' -]; -var htmlElementEventNames = [ - 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend', - 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend', - 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend' -]; -var mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend']; -var ieElementEventNames = [ - 'activate', - 'afterupdate', - 'ariarequest', - 'beforeactivate', - 'beforedeactivate', - 'beforeeditfocus', - 'beforeupdate', - 'cellchange', - 'controlselect', - 'dataavailable', - 'datasetchanged', - 'datasetcomplete', - 'errorupdate', - 'filterchange', - 'layoutcomplete', - 'losecapture', - 'move', - 'moveend', - 'movestart', - 'propertychange', - 'resizeend', - 'resizestart', - 'rowenter', - 'rowexit', - 'rowsdelete', - 'rowsinserted', - 'command', - 'compassneedscalibration', - 'deactivate', - 'help', - 'mscontentzoom', - 'msmanipulationstatechanged', - 'msgesturechange', - 'msgesturedoubletap', - 'msgestureend', - 'msgesturehold', - 'msgesturestart', - 'msgesturetap', - 'msgotpointercapture', - 'msinertiastart', - 'mslostpointercapture', - 'mspointercancel', - 'mspointerdown', - 'mspointerenter', - 'mspointerhover', - 'mspointerleave', - 'mspointermove', - 'mspointerout', - 'mspointerover', - 'mspointerup', - 'pointerout', - 'mssitemodejumplistitemremoved', - 'msthumbnailclick', - 'stop', - 'storagecommit' -]; -var webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror']; -var formEventNames = ['autocomplete', 'autocompleteerror']; -var detailEventNames = ['toggle']; -var frameEventNames = ['load']; -var frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror']; -var marqueeEventNames = ['bounce', 'finish', 'start']; -var XMLHttpRequestEventNames = [ - 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend', - 'readystatechange' -]; -var IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close']; -var websocketEventNames = ['close', 'error', 'open', 'message']; -var workerEventNames = ['error', 'message']; -var eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames); -function filterProperties(target, onProperties, ignoreProperties) { - if (!ignoreProperties || ignoreProperties.length === 0) { - return onProperties; - } - var tip = ignoreProperties.filter(function (ip) { return ip.target === target; }); - if (!tip || tip.length === 0) { - return onProperties; - } - var targetIgnoreProperties = tip[0].ignoreProperties; - return onProperties.filter(function (op) { return targetIgnoreProperties.indexOf(op) === -1; }); -} -function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) { - // check whether target is available, sometimes target will be undefined - // because different browser or some 3rd party plugin. - if (!target) { - return; - } - var filteredProperties = filterProperties(target, onProperties, ignoreProperties); - patchOnProperties(target, filteredProperties, prototype); -} -function propertyDescriptorPatch(api, _global) { - if (isNode && !isMix) { - return; - } - var supportsWebSocket = typeof WebSocket !== 'undefined'; - if (canPatchViaPropertyDescriptor()) { - var ignoreProperties = _global['__Zone_ignore_on_properties']; - // for browsers that we can patch the descriptor: Chrome & Firefox - if (isBrowser) { - var internalWindow = window; - var ignoreErrorProperties = isIE ? [{ target: internalWindow, ignoreProperties: ['error'] }] : []; - // in IE/Edge, onProp not exist in window object, but in WindowPrototype - // so we need to pass WindowPrototype to check onProp exist or not - patchFilteredProperties(internalWindow, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow)); - patchFilteredProperties(Document.prototype, eventNames, ignoreProperties); - if (typeof internalWindow['SVGElement'] !== 'undefined') { - patchFilteredProperties(internalWindow['SVGElement'].prototype, eventNames, ignoreProperties); - } - patchFilteredProperties(Element.prototype, eventNames, ignoreProperties); - patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties); - patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties); - patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties); - patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties); - patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties); - patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties); - var HTMLMarqueeElement_1 = internalWindow['HTMLMarqueeElement']; - if (HTMLMarqueeElement_1) { - patchFilteredProperties(HTMLMarqueeElement_1.prototype, marqueeEventNames, ignoreProperties); - } - var Worker_1 = internalWindow['Worker']; - if (Worker_1) { - patchFilteredProperties(Worker_1.prototype, workerEventNames, ignoreProperties); - } - } - patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties); - var XMLHttpRequestEventTarget_1 = _global['XMLHttpRequestEventTarget']; - if (XMLHttpRequestEventTarget_1) { - patchFilteredProperties(XMLHttpRequestEventTarget_1 && XMLHttpRequestEventTarget_1.prototype, XMLHttpRequestEventNames, ignoreProperties); - } - if (typeof IDBIndex !== 'undefined') { - patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties); - patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties); - } - if (supportsWebSocket) { - patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties); - } - } - else { - // Safari, Android browsers (Jelly Bean) - patchViaCapturingAllTheEvents(); - patchClass('XMLHttpRequest'); - if (supportsWebSocket) { - apply(api, _global); - } - } -} -function canPatchViaPropertyDescriptor() { - if ((isBrowser || isMix) && !ObjectGetOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') && - typeof Element !== 'undefined') { - // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364 - // IDL interface attributes are not configurable - var desc = ObjectGetOwnPropertyDescriptor(Element.prototype, 'onclick'); - if (desc && !desc.configurable) - return false; - } - var ON_READY_STATE_CHANGE = 'onreadystatechange'; - var XMLHttpRequestPrototype = XMLHttpRequest.prototype; - var xhrDesc = ObjectGetOwnPropertyDescriptor(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE); - // add enumerable and configurable here because in opera - // by default XMLHttpRequest.prototype.onreadystatechange is undefined - // without adding enumerable and configurable will cause onreadystatechange - // non-configurable - // and if XMLHttpRequest.prototype.onreadystatechange is undefined, - // we should set a real desc instead a fake one - if (xhrDesc) { - ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, { - enumerable: true, - configurable: true, - get: function () { - return true; - } - }); - var req = new XMLHttpRequest(); - var result = !!req.onreadystatechange; - // restore original desc - ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, xhrDesc || {}); - return result; - } - else { - var SYMBOL_FAKE_ONREADYSTATECHANGE_1 = zoneSymbol('fake'); - ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, { - enumerable: true, - configurable: true, - get: function () { - return this[SYMBOL_FAKE_ONREADYSTATECHANGE_1]; - }, - set: function (value) { - this[SYMBOL_FAKE_ONREADYSTATECHANGE_1] = value; - } - }); - var req = new XMLHttpRequest(); - var detectFunc = function () { }; - req.onreadystatechange = detectFunc; - var result = req[SYMBOL_FAKE_ONREADYSTATECHANGE_1] === detectFunc; - req.onreadystatechange = null; - return result; - } -} -var unboundKey = zoneSymbol('unbound'); -// Whenever any eventListener fires, we check the eventListener target and all parents -// for `onwhatever` properties and replace them with zone-bound functions -// - Chrome (for now) -function patchViaCapturingAllTheEvents() { - var _loop_1 = function (i) { - var property = eventNames[i]; - var onproperty = 'on' + property; - self.addEventListener(property, function (event) { - var elt = event.target, bound, source; - if (elt) { - source = elt.constructor['name'] + '.' + onproperty; - } - else { - source = 'unknown.' + onproperty; - } - while (elt) { - if (elt[onproperty] && !elt[onproperty][unboundKey]) { - bound = wrapWithCurrentZone(elt[onproperty], source); - bound[unboundKey] = elt[onproperty]; - elt[onproperty] = bound; - } - elt = elt.parentElement; - } - }, true); - }; - for (var i = 0; i < eventNames.length; i++) { - _loop_1(i); - } -} - -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -function eventTargetPatch(_global, api) { - var WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video'; - var NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket' - .split(','); - var EVENT_TARGET = 'EventTarget'; - var apis = []; - var isWtf = _global['wtf']; - var WTF_ISSUE_555_ARRAY = WTF_ISSUE_555.split(','); - if (isWtf) { - // Workaround for: https://github.com/google/tracing-framework/issues/555 - apis = WTF_ISSUE_555_ARRAY.map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET); - } - else if (_global[EVENT_TARGET]) { - apis.push(EVENT_TARGET); - } - else { - // Note: EventTarget is not available in all browsers, - // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget - apis = NO_EVENT_TARGET; - } - var isDisableIECheck = _global['__Zone_disable_IE_check'] || false; - var isEnableCrossContextCheck = _global['__Zone_enable_cross_context_check'] || false; - var ieOrEdge = isIEOrEdge(); - var ADD_EVENT_LISTENER_SOURCE = '.addEventListener:'; - var FUNCTION_WRAPPER = '[object FunctionWrapper]'; - var BROWSER_TOOLS = 'function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }'; - // predefine all __zone_symbol__ + eventName + true/false string - for (var i = 0; i < eventNames.length; i++) { - var eventName = eventNames[i]; - var falseEventName = eventName + FALSE_STR; - var trueEventName = eventName + TRUE_STR; - var symbol = ZONE_SYMBOL_PREFIX + falseEventName; - var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; - zoneSymbolEventNames$1[eventName] = {}; - zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol; - zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture; - } - // predefine all task.source string - for (var i = 0; i < WTF_ISSUE_555.length; i++) { - var target = WTF_ISSUE_555_ARRAY[i]; - var targets = globalSources[target] = {}; - for (var j = 0; j < eventNames.length; j++) { - var eventName = eventNames[j]; - targets[eventName] = target + ADD_EVENT_LISTENER_SOURCE + eventName; - } - } - var checkIEAndCrossContext = function (nativeDelegate, delegate, target, args) { - if (!isDisableIECheck && ieOrEdge) { - if (isEnableCrossContextCheck) { - try { - var testString = delegate.toString(); - if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) { - nativeDelegate.apply(target, args); - return false; - } - } - catch (error) { - nativeDelegate.apply(target, args); - return false; - } - } - else { - var testString = delegate.toString(); - if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) { - nativeDelegate.apply(target, args); - return false; - } - } - } - else if (isEnableCrossContextCheck) { - try { - delegate.toString(); - } - catch (error) { - nativeDelegate.apply(target, args); - return false; - } - } - return true; - }; - var apiTypes = []; - for (var i = 0; i < apis.length; i++) { - var type = _global[apis[i]]; - apiTypes.push(type && type.prototype); - } - // vh is validateHandler to check event handler - // is valid or not(for security check) - patchEventTarget(_global, apiTypes, { vh: checkIEAndCrossContext }); - api.patchEventTarget = patchEventTarget; - return true; -} -function patchEvent(global, api) { - patchEventPrototype(global, api); -} - -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -function patchCallbacks(target, targetName, method, callbacks) { - var symbol = Zone.__symbol__(method); - if (target[symbol]) { - return; - } - var nativeDelegate = target[symbol] = target[method]; - target[method] = function (name, opts, options) { - if (opts && opts.prototype) { - callbacks.forEach(function (callback) { - var source = targetName + "." + method + "::" + callback; - var prototype = opts.prototype; - if (prototype.hasOwnProperty(callback)) { - var descriptor = ObjectGetOwnPropertyDescriptor(prototype, callback); - if (descriptor && descriptor.value) { - descriptor.value = wrapWithCurrentZone(descriptor.value, source); - _redefineProperty(opts.prototype, callback, descriptor); - } - else if (prototype[callback]) { - prototype[callback] = wrapWithCurrentZone(prototype[callback], source); - } - } - else if (prototype[callback]) { - prototype[callback] = wrapWithCurrentZone(prototype[callback], source); - } - }); - } - return nativeDelegate.call(target, name, opts, options); - }; - attachOriginToPatched(target[method], nativeDelegate); -} -function registerElementPatch(_global) { - if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) { - return; - } - var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback']; - patchCallbacks(document, 'Document', 'registerElement', callbacks); -} -function patchCustomElements(_global) { - if ((!isBrowser && !isMix) || !('customElements' in _global)) { - return; - } - var callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback']; - patchCallbacks(_global.customElements, 'customElements', 'define', callbacks); -} - -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -/** - * @fileoverview - * @suppress {missingRequire} - */ -Zone.__load_patch('util', function (global, Zone, api) { - api.patchOnProperties = patchOnProperties; - api.patchMethod = patchMethod; - api.bindArguments = bindArguments; -}); -Zone.__load_patch('timers', function (global) { - var set = 'set'; - var clear = 'clear'; - patchTimer(global, set, clear, 'Timeout'); - patchTimer(global, set, clear, 'Interval'); - patchTimer(global, set, clear, 'Immediate'); -}); -Zone.__load_patch('requestAnimationFrame', function (global) { - patchTimer(global, 'request', 'cancel', 'AnimationFrame'); - patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame'); - patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame'); -}); -Zone.__load_patch('blocking', function (global, Zone) { - var blockingMethods = ['alert', 'prompt', 'confirm']; - for (var i = 0; i < blockingMethods.length; i++) { - var name_1 = blockingMethods[i]; - patchMethod(global, name_1, function (delegate, symbol, name) { - return function (s, args) { - return Zone.current.run(delegate, global, args, name); - }; - }); - } -}); -Zone.__load_patch('EventTarget', function (global, Zone, api) { - // load blackListEvents from global - var SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS'); - if (global[SYMBOL_BLACK_LISTED_EVENTS]) { - Zone[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_BLACK_LISTED_EVENTS]; - } - patchEvent(global, api); - eventTargetPatch(global, api); - // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener - var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget']; - if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) { - api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]); - } - patchClass('MutationObserver'); - patchClass('WebKitMutationObserver'); - patchClass('IntersectionObserver'); - patchClass('FileReader'); -}); -Zone.__load_patch('on_property', function (global, Zone, api) { - propertyDescriptorPatch(api, global); - propertyPatch(); -}); -Zone.__load_patch('customElements', function (global, Zone, api) { - registerElementPatch(global); - patchCustomElements(global); -}); -Zone.__load_patch('canvas', function (global) { - var HTMLCanvasElement = global['HTMLCanvasElement']; - if (typeof HTMLCanvasElement !== 'undefined' && HTMLCanvasElement.prototype && - HTMLCanvasElement.prototype.toBlob) { - patchMacroTask(HTMLCanvasElement.prototype, 'toBlob', function (self, args) { - return { name: 'HTMLCanvasElement.toBlob', target: self, cbIdx: 0, args: args }; - }); - } -}); -Zone.__load_patch('XHR', function (global, Zone) { - // Treat XMLHttpRequest as a macrotask. - patchXHR(global); - var XHR_TASK = zoneSymbol('xhrTask'); - var XHR_SYNC = zoneSymbol('xhrSync'); - var XHR_LISTENER = zoneSymbol('xhrListener'); - var XHR_SCHEDULED = zoneSymbol('xhrScheduled'); - var XHR_URL = zoneSymbol('xhrURL'); - var XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled'); - function patchXHR(window) { - var XMLHttpRequestPrototype = XMLHttpRequest.prototype; - function findPendingTask(target) { - return target[XHR_TASK]; - } - var oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - var oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - if (!oriAddListener) { - var XMLHttpRequestEventTarget_1 = window['XMLHttpRequestEventTarget']; - if (XMLHttpRequestEventTarget_1) { - var XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget_1.prototype; - oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - } - } - var READY_STATE_CHANGE = 'readystatechange'; - var SCHEDULED = 'scheduled'; - function scheduleTask(task) { - var data = task.data; - var target = data.target; - target[XHR_SCHEDULED] = false; - target[XHR_ERROR_BEFORE_SCHEDULED] = false; - // remove existing event listener - var listener = target[XHR_LISTENER]; - if (!oriAddListener) { - oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER]; - oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; - } - if (listener) { - oriRemoveListener.call(target, READY_STATE_CHANGE, listener); - } - var newListener = target[XHR_LISTENER] = function () { - if (target.readyState === target.DONE) { - // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with - // readyState=4 multiple times, so we need to check task state here - if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) { - // check whether the xhr has registered onload listener - // if that is the case, the task should invoke after all - // onload listeners finish. - var loadTasks = target['__zone_symbol__loadfalse']; - if (loadTasks && loadTasks.length > 0) { - var oriInvoke_1 = task.invoke; - task.invoke = function () { - // need to load the tasks again, because in other - // load listener, they may remove themselves - var loadTasks = target['__zone_symbol__loadfalse']; - for (var i = 0; i < loadTasks.length; i++) { - if (loadTasks[i] === task) { - loadTasks.splice(i, 1); - } - } - if (!data.aborted && task.state === SCHEDULED) { - oriInvoke_1.call(task); - } - }; - loadTasks.push(task); - } - else { - task.invoke(); - } - } - else if (!data.aborted && target[XHR_SCHEDULED] === false) { - // error occurs when xhr.send() - target[XHR_ERROR_BEFORE_SCHEDULED] = true; - } - } - }; - oriAddListener.call(target, READY_STATE_CHANGE, newListener); - var storedTask = target[XHR_TASK]; - if (!storedTask) { - target[XHR_TASK] = task; - } - sendNative.apply(target, data.args); - target[XHR_SCHEDULED] = true; - return task; - } - function placeholderCallback() { } - function clearTask(task) { - var data = task.data; - // Note - ideally, we would call data.target.removeEventListener here, but it's too late - // to prevent it from firing. So instead, we store info for the event listener. - data.aborted = true; - return abortNative.apply(data.target, data.args); - } - var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { return function (self, args) { - self[XHR_SYNC] = args[2] == false; - self[XHR_URL] = args[1]; - return openNative.apply(self, args); - }; }); - var XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send'; - var fetchTaskAborting = zoneSymbol('fetchTaskAborting'); - var fetchTaskScheduling = zoneSymbol('fetchTaskScheduling'); - var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { return function (self, args) { - if (Zone.current[fetchTaskScheduling] === true) { - // a fetch is scheduling, so we are using xhr to polyfill fetch - // and because we already schedule macroTask for fetch, we should - // not schedule a macroTask for xhr again - return sendNative.apply(self, args); - } - if (self[XHR_SYNC]) { - // if the XHR is sync there is no task to schedule, just execute the code. - return sendNative.apply(self, args); - } - else { - var options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false }; - var task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask); - if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted && - task.state === SCHEDULED) { - // xhr request throw error when send - // we should invoke task instead of leaving a scheduled - // pending macroTask - task.invoke(); - } - } - }; }); - var abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', function () { return function (self, args) { - var task = findPendingTask(self); - if (task && typeof task.type == 'string') { - // If the XHR has already completed, do nothing. - // If the XHR has already been aborted, do nothing. - // Fix #569, call abort multiple times before done will cause - // macroTask task count be negative number - if (task.cancelFn == null || (task.data && task.data.aborted)) { - return; - } - task.zone.cancelTask(task); - } - else if (Zone.current[fetchTaskAborting] === true) { - // the abort is called from fetch polyfill, we need to call native abort of XHR. - return abortNative.apply(self, args); - } - // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no - // task - // to cancel. Do nothing. - }; }); - } -}); -Zone.__load_patch('geolocation', function (global) { - /// GEO_LOCATION - if (global['navigator'] && global['navigator'].geolocation) { - patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']); - } -}); -Zone.__load_patch('PromiseRejectionEvent', function (global, Zone) { - // handle unhandled promise rejection - function findPromiseRejectionHandler(evtName) { - return function (e) { - var eventTasks = findEventTasks(global, evtName); - eventTasks.forEach(function (eventTask) { - // windows has added unhandledrejection event listener - // trigger the event listener - var PromiseRejectionEvent = global['PromiseRejectionEvent']; - if (PromiseRejectionEvent) { - var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection }); - eventTask.invoke(evt); - } - }); - }; - } - if (global['PromiseRejectionEvent']) { - Zone[zoneSymbol('unhandledPromiseRejectionHandler')] = - findPromiseRejectionHandler('unhandledrejection'); - Zone[zoneSymbol('rejectionHandledHandler')] = - findPromiseRejectionHandler('rejectionhandled'); - } -}); - -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -}))); - - -/***/ }), - -/***/ "./src/polyfills.ts": -/*!**************************!*\ - !*** ./src/polyfills.ts ***! - \**************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var zone_js_dist_zone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zone.js/dist/zone */ "./node_modules/zone.js/dist/zone.js"); -/* harmony import */ var zone_js_dist_zone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(zone_js_dist_zone__WEBPACK_IMPORTED_MODULE_0__); -/** - * This file includes polyfills needed by Angular and is loaded before the app. - * You can add your own extra polyfills to this file. - * - * This file is divided into 2 sections: - * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. - * 2. Application imports. Files imported after ZoneJS that should be loaded before your main - * file. - * - * The current setup is for so-called "evergreen" browsers; the last versions of browsers that - * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), - * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. - * - * Learn more in https://angular.io/guide/browser-support - */ -/*************************************************************************************************** - * BROWSER POLYFILLS - */ -/** IE9, IE10 and IE11 requires all of the following polyfills. **/ -// import 'core-js/es6/symbol'; -// import 'core-js/es6/object'; -// import 'core-js/es6/function'; -// import 'core-js/es6/parse-int'; -// import 'core-js/es6/parse-float'; -// import 'core-js/es6/number'; -// import 'core-js/es6/math'; -// import 'core-js/es6/string'; -// import 'core-js/es6/date'; -// import 'core-js/es6/array'; -// import 'core-js/es6/regexp'; -// import 'core-js/es6/map'; -// import 'core-js/es6/weak-map'; -// import 'core-js/es6/set'; -/** - * If the application will be indexed by Google Search, the following is required. - * Googlebot uses a renderer based on Chrome 41. - * https://developers.google.com/search/docs/guides/rendering - **/ -// import 'core-js/es6/array'; -/** IE10 and IE11 requires the following for NgClass support on SVG elements */ -// import 'classlist.js'; // Run `npm install --save classlist.js`. -/** IE10 and IE11 requires the following for the Reflect API. */ -// import 'core-js/es6/reflect'; -/** - * Web Animations `@angular/platform-browser/animations` - * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. - * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). - **/ -// import 'web-animations-js'; // Run `npm install --save web-animations-js`. -/** - * By default, zone.js will patch all possible macroTask and DomEvents - * user can disable parts of macroTask/DomEvents patch by setting following flags - */ -// (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame -// (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick -// (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames -/* -* in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js -* with the following flag, it will bypass `zone.js` patch for IE/Edge -*/ -// (window as any).__Zone_enable_cross_context_check = true; -/*************************************************************************************************** - * Zone JS is required by default for Angular itself. - */ - // Included with Angular CLI. -/*************************************************************************************************** - * APPLICATION IMPORTS - */ - - -/***/ }), - -/***/ 1: -/*!***************************************************************************************************************************!*\ - !*** multi ./src/polyfills.ts ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js ***! - \***************************************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(/*! D:\Project\WORK_NEW\zano\src\gui\qt-daemon\html_source\src\polyfills.ts */"./src/polyfills.ts"); -module.exports = __webpack_require__(/*! D:\Project\WORK_NEW\zano\src\gui\qt-daemon\html_source\node_modules\@angular-devkit\build-angular\src\angular-cli-files\models\jit-polyfills.js */"./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js"); - - -/***/ }) - -},[[1,"runtime"]]]); -//# sourceMappingURL=polyfills.js.map \ No newline at end of file diff --git a/src/gui/qt-daemon/html/polyfills.js.map b/src/gui/qt-daemon/html/polyfills.js.map deleted file mode 100644 index cab8347c..00000000 --- a/src/gui/qt-daemon/html/polyfills.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js","webpack:///./node_modules/core-js/es7/reflect.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_array-from-iterable.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_metadata.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./node_modules/core-js/modules/es7.reflect.define-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.delete-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-own-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.has-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.has-own-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.metadata.js","webpack:///./node_modules/zone.js/dist/zone.js","webpack:///./src/polyfills.ts"],"names":[],"mappings":"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A;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,qBAAqB;AACrB,0BAA0B;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;;;;;;;;;;;;AC/Ia;AACb,kBAAkB,mBAAO,CAAC,wEAAiB;AAC3C,cAAc,mBAAO,CAAC,wDAAS;AAC/B,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,iBAAiB,mBAAO,CAAC,sEAAgB;AACzC,YAAY,mBAAO,CAAC,4DAAW;AAC/B,wBAAwB,mBAAO,CAAC,0EAAkB;AAClD,WAAW,mBAAO,CAAC,sDAAQ;AAC3B,eAAe,mBAAO,CAAC,sFAAwB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB,0BAA0B;AAC1B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;ACpFa;AACb,aAAa,mBAAO,CAAC,4DAAW;AAChC,cAAc,mBAAO,CAAC,4DAAW;AACjC,eAAe,mBAAO,CAAC,gE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AgB,mBAAmB;AACnC;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;ACpEA,eAAe,mBAAO,CAAC,sDAAQ;AAC/B;;AAEA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA,iCAAiC,SAAS,EAAE;AAC5C,CAAC,YAAY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS,qBAAqB;AAC3D,iCAAiC,aAAa;AAC9C;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;;;;;ACrBA;AACA,UAAU;AACV;;;;;;;;;;;;ACFA;;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA,WAAW,mBAAO,CAAC,sDAAQ;AAC3B,eAAe,mBAAO,CAAC,kEAAc;AACrC,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,cAAc,mBAAO,CAAC,kEAAc;AACpC;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,0DAAU;AAChC,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpDA,UAAU,mBAAO,CAAC,4DAAW;AAC7B,cAAc,mBAAO,CAAC,4DAAW;AACjC,aAAa,mBAAO,CAAC,4DAAW;AAChC,iDAAiD,mBAAO,CAAC,sEAAgB;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;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AAO,CAAC,gEAAa;AACpC,eAAe,mBAAO,CAAC,kEAAc;AACrC;AACA;;AAEA,cAAc;AACd;AACA;AACA,CAAC,EAAE;;;;;;;;;;;;ACRH,gBAAgB,mBAAO,CAAC,gEAAa;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,gBAAgB,mBAAO,CAAC,oEAAe;AACvC;AACA;;AAEA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;;;;;;;;;;;ACdH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,KAA4D;AAC7D,CAAC,SACW;AACZ,CAAC,qBAAqB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iEAAiE,+CAA+C,EAAE;AAClH;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,4DAA4D,0CAA0C;AACtG;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B,EAAE;AACnE;AACA;AACA;AACA,wCAAwC,6DAA6D,EAAE;AACvG,uCAAuC,WAAW,EAAE;AACpD;AACA,kCAAkC,aAAa,EAAE;AACjD,oCAAoC,WAAW,EAAE;AACjD,gCAAgC,aAAa,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B;AAC7B;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4HAA4H,wBAAwB,oCAAoC;AACxL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,sEAAsE;AACtJ;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAoD;AAC5F;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qEAAqE,gBAAgB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,sCAAsC,MAAI;AAC1C;AACA;AACA,sCAAsC,MAAI;AAC1C;AACA;AACA,mFAAmF,kBAAkB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mFAAmF,kBAAkB;AACrG;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG;AACvG;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,oCAAoC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE,qCAAqC,iBAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,8BAA8B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0BAA0B,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,6BAA6B,EAAE;AACpF;AACA;AACA;AACA;AACA,8CAA8C,kDAAkD,EAAE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,sDAAsD;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,+BAA+B,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,gBAAgB;AACrF;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA,yCAAyC,6BAA6B;AACtE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ,qFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,0CAA0C;AAC5G;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;;;ACjxGD;AAAA;AAAA;AAAA;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AAEH,mEAAmE;AACnE,+BAA+B;AAC/B,+BAA+B;AAC/B,iCAAiC;AACjC,kCAAkC;AAClC,oCAAoC;AACpC,+BAA+B;AAC/B,6BAA6B;AAC7B,+BAA+B;AAC/B,6BAA6B;AAC7B,8BAA8B;AAC9B,+BAA+B;AAC/B,4BAA4B;AAC5B,iCAAiC;AACjC,4BAA4B;AAE5B;;;;IAII;AACJ,8BAA8B;AAE9B,+EAA+E;AAC/E,oEAAoE;AAEpE,gEAAgE;AAChE,gCAAgC;AAEhC;;;;IAII;AACJ,8EAA8E;AAE9E;;;GAGG;AAEF,sGAAsG;AACtG,iGAAiG;AACjG,sHAAsH;AAEtH;;;EAGE;AACH,4DAA4D;AAE5D;;GAEG;AACwB,CAAE,6BAA6B;AAG1D;;GAEG","file":"polyfills.js","sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport 'core-js/es7/reflect';\n","require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = false;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n","/**\n* @license\n* Copyright Google Inc. All Rights Reserved.\n*\n* Use of this source code is governed by an MIT-style license that can be\n* found in the LICENSE file at https://angular.io/license\n*/\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(factory());\n}(this, (function () { 'use strict';\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar Zone$1 = (function (global) {\n var performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n var checkDuplicate = global[('__zone_symbol__forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n var Zone = /** @class */ (function () {\n function Zone(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n Zone.assertZonePatched = function () {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(Zone, \"root\", {\n get: function () {\n var zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"current\", {\n get: function () {\n return _currentZoneFrame.zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"currentTask\", {\n get: function () {\n return _currentTask;\n },\n enumerable: true,\n configurable: true\n });\n Zone.__load_patch = function (name, fn) {\n if (patches.hasOwnProperty(name)) {\n if (checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n var perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n };\n Object.defineProperty(Zone.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: true,\n configurable: true\n });\n Zone.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n Zone.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n Zone.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n Zone.prototype.wrap = function (callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n Zone.prototype.run = function (callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n var reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n var previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n Zone.prototype.scheduleTask = function (task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n var newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(\"can not reschedule task to \" + this.name + \" which is descendants of the original zone \" + task.zone.name);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n };\n Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.cancelTask = function (task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n };\n Zone.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n Zone.__symbol__ = __symbol__;\n return Zone;\n }());\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) { return delegate.hasTask(target, hasTaskState); },\n onScheduleTask: function (delegate, _, target, task) {\n return delegate.scheduleTask(target, task);\n },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) {\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n },\n onCancelTask: function (delegate, _, target, task) { return delegate.cancelTask(target, task); }\n };\n var ZoneDelegate = /** @class */ (function () {\n function ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate.zone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate.zone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate.zone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate.zone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate.zone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate.zone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate.zone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n };\n ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n };\n ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n };\n ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n };\n ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n };\n ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n };\n return ZoneDelegate;\n }());\n var ZoneTask = /** @class */ (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n this._zone = null;\n this.runCount = 0;\n this._zoneDelegates = null;\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n this.callback = callback;\n var self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n ZoneTask.invokeTask = function (task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n Object.defineProperty(ZoneTask.prototype, \"zone\", {\n get: function () {\n return this._zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () {\n return this._state;\n },\n enumerable: true,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () {\n this._transitionTo(notScheduled, scheduling);\n };\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(this.type + \" '\" + this.source + \"': can not transition to '\" + toState + \"', expecting state '\" + fromState1 + \"'\" + (fromState2 ? ' or \\'' + fromState2 + '\\'' : '') + \", was '\" + this._state + \"'.\");\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n };\n return ZoneTask;\n }());\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n var nativeMicroTaskQueuePromise;\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n var nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var patches = {};\n var _api = {\n symbol: __symbol__,\n currentZoneFrame: function () { return _currentZoneFrame; },\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: function () { return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; },\n patchEventTarget: function () { return []; },\n patchOnProperties: noop,\n patchMethod: function () { return noop; },\n bindArguments: function () { return []; },\n patchThen: function () { return noop; },\n setNativePromise: function (NativePromise) {\n // sometimes NativePromise.resolve static function\n // is not ready yet, (such as core-js/es6.promise)\n // so we need to check here.\n if (NativePromise && typeof NativePromise.resolve === 'function') {\n nativeMicroTaskQueuePromise = NativePromise.resolve(0);\n }\n },\n };\n var _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n var _currentTask = null;\n var _numberOfNestedTaskFrames = 0;\n function noop() { }\n function __symbol__(name) {\n return '__zone_symbol__' + name;\n }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n})(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n\nvar __values = (undefined && undefined.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nZone.__load_patch('ZoneAwarePromise', function (global, Zone, api) {\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n var className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n var __symbol__ = api.symbol;\n var _uncaughtPromiseErrors = [];\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var creationTrace = '__creationTrace__';\n api.onUnhandledError = function (e) {\n if (api.showUncaughtError()) {\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = function () {\n while (_uncaughtPromiseErrors.length) {\n var _loop_1 = function () {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () {\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_1();\n }\n }\n };\n var UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n var handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (handler && typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var symbolFinally = __symbol__('finally');\n var symbolParentPromiseValue = __symbol__('parentPromiseValue');\n var symbolParentPromiseState = __symbol__('parentPromiseState');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n var TYPE_ERROR = 'Promise resolved with itself';\n var CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n var trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n try {\n // try to print more readable error log\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n var error_1 = err;\n error_1.rejection = value;\n error_1.promise = promise;\n error_1.zone = Zone.current;\n error_1.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(error_1);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n var REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var promiseState = promise[symbolState];\n var delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n var parentPromiseValue = promise[symbolValue];\n var isFinallyPromise = chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n var value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n var ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n var ZoneAwarePromise = /** @class */ (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () {\n return ZONE_AWARE_PROMISE_TO_STRING;\n };\n ZoneAwarePromise.resolve = function (value) {\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.race = function (values) {\n var e_1, _a;\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n promise && (promise = null || resolve(value));\n }\n function onReject(error) {\n promise && (promise = null || reject(error));\n }\n try {\n for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {\n var value = values_1_1.value;\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) {\n var e_2, _a;\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n var unresolvedCount = 2;\n var valueIndex = 0;\n var resolvedValues = [];\n var _loop_2 = function (value) {\n if (!isThenable(value)) {\n value = this_1.resolve(value);\n }\n var curValueIndex = valueIndex;\n value.then(function (value) {\n resolvedValues[curValueIndex] = value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, reject);\n unresolvedCount++;\n valueIndex++;\n };\n var this_1 = this;\n try {\n for (var values_2 = __values(values), values_2_1 = values_2.next(); !values_2_1.done; values_2_1 = values_2.next()) {\n var value = values_2_1.value;\n _loop_2(value);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (values_2_1 && !values_2_1.done && (_a = values_2.return)) _a.call(values_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n };\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var chainPromise = new this.constructor(null);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n ZoneAwarePromise.prototype.finally = function (onFinally) {\n var chainPromise = new this.constructor(null);\n chainPromise[symbolFinally] = symbolFinally;\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = global[symbolPromise] = global['Promise'];\n var ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise');\n var desc = ObjectGetOwnPropertyDescriptor(global, 'Promise');\n if (!desc || desc.configurable) {\n desc && delete desc.writable;\n desc && delete desc.value;\n if (!desc) {\n desc = { configurable: true, enumerable: true };\n }\n desc.get = function () {\n // if we already set ZoneAwarePromise, use patched one\n // otherwise return native one.\n return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise];\n };\n desc.set = function (NewNativePromise) {\n if (NewNativePromise === ZoneAwarePromise) {\n // if the NewNativePromise is ZoneAwarePromise\n // save to global\n global[ZONE_AWARE_PROMISE] = NewNativePromise;\n }\n else {\n // if the NewNativePromise is not ZoneAwarePromise\n // for example: after load zone.js, some library just\n // set es6-promise to global, if we set it to global\n // directly, assertZonePatched will fail and angular\n // will not loaded, so we just set the NewNativePromise\n // to global[symbolPromise], so the result is just like\n // we load ES6 Promise before zone.js\n global[symbolPromise] = NewNativePromise;\n if (!NewNativePromise.prototype[symbolThen]) {\n patchThen(NewNativePromise);\n }\n api.setNativePromise(NewNativePromise);\n }\n };\n ObjectDefineProperty(global, 'Promise', desc);\n }\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) {\n originalThen.call(_this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n if (NativePromise) {\n patchThen(NativePromise);\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nZone.__load_patch('fetch', function (global, Zone, api) {\n var fetch = global['fetch'];\n var ZoneAwarePromise = global.Promise;\n var symbolThenPatched = api.symbol('thenPatched');\n var fetchTaskScheduling = api.symbol('fetchTaskScheduling');\n var fetchTaskAborting = api.symbol('fetchTaskAborting');\n if (typeof fetch !== 'function') {\n return;\n }\n var OriginalAbortController = global['AbortController'];\n var supportAbort = typeof OriginalAbortController === 'function';\n var abortNative = null;\n if (supportAbort) {\n global['AbortController'] = function () {\n var abortController = new OriginalAbortController();\n var signal = abortController.signal;\n signal.abortController = abortController;\n return abortController;\n };\n abortNative = api.patchMethod(OriginalAbortController.prototype, 'abort', function (delegate) { return function (self, args) {\n if (self.task) {\n return self.task.zone.cancelTask(self.task);\n }\n return delegate.apply(self, args);\n }; });\n }\n var placeholder = function () { };\n global['fetch'] = function () {\n var _this = this;\n var args = Array.prototype.slice.call(arguments);\n var options = args.length > 1 ? args[1] : null;\n var signal = options && options.signal;\n return new Promise(function (res, rej) {\n var task = Zone.current.scheduleMacroTask('fetch', placeholder, args, function () {\n var fetchPromise;\n var zone = Zone.current;\n try {\n zone[fetchTaskScheduling] = true;\n fetchPromise = fetch.apply(_this, args);\n }\n catch (error) {\n rej(error);\n return;\n }\n finally {\n zone[fetchTaskScheduling] = false;\n }\n if (!(fetchPromise instanceof ZoneAwarePromise)) {\n var ctor = fetchPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n api.patchThen(ctor);\n }\n }\n fetchPromise.then(function (resource) {\n if (task.state !== 'notScheduled') {\n task.invoke();\n }\n res(resource);\n }, function (error) {\n if (task.state !== 'notScheduled') {\n task.invoke();\n }\n rej(error);\n });\n }, function () {\n if (!supportAbort) {\n rej('No AbortController supported, can not cancel fetch');\n return;\n }\n if (signal && signal.abortController && !signal.aborted &&\n typeof signal.abortController.abort === 'function' && abortNative) {\n try {\n Zone.current[fetchTaskAborting] = true;\n abortNative.call(signal.abortController);\n }\n finally {\n Zone.current[fetchTaskAborting] = false;\n }\n }\n else {\n rej('cancel fetch need a AbortController.signal');\n }\n });\n if (signal && signal.abortController) {\n signal.abortController.task = task;\n }\n });\n };\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nvar ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nvar ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nvar ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nvar ObjectCreate = Object.create;\n/** Array.prototype.slice */\nvar ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nvar ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nvar REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nvar ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nvar ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nvar TRUE_STR = 'true';\n/** false string const */\nvar FALSE_STR = 'false';\n/** __zone_symbol__ string const */\nvar ZONE_SYMBOL_PREFIX = '__zone_symbol__';\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nvar zoneSymbol = Zone.__symbol__;\nvar isWindowExists = typeof window !== 'undefined';\nvar internalWindow = isWindowExists ? window : undefined;\nvar _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\nvar REMOVE_ATTRIBUTE = 'removeAttribute';\nvar NULL_ON_PROP_VALUE = [null];\nfunction bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_1 = function (i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name_1);\n if (!isPropertyWritable(prototypeDesc)) {\n return \"continue\";\n }\n prototype[name_1] = (function (delegate) {\n var patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_1(i);\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nvar isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nvar isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\nvar isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nvar isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nvar zoneSymbolEventNames = {};\nvar wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n var eventNameSymbol = zoneSymbolEventNames[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n var target = this || event.target || _global;\n var listener = target[eventNameSymbol];\n var result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signiture\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n var errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n var desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n var onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n var originalDescGet = desc.get;\n var originalDescSet = desc.set;\n // substr(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.substr(2);\n var eventNameSymbol = zoneSymbolEventNames[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n var previousValue = target[eventNameSymbol];\n if (previousValue) {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n if (originalDescSet) {\n originalDescSet.apply(target, NULL_ON_PROP_VALUE);\n }\n if (typeof newValue === 'function') {\n target[eventNameSymbol] = newValue;\n target.addEventListener(eventName, wrapFn, false);\n }\n else {\n target[eventNameSymbol] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n var listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n var value = originalDescGet && originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nvar originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n var OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction copySymbolProperties(src, dest) {\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return;\n }\n var symbols = Object.getOwnPropertySymbols(src);\n symbols.forEach(function (symbol) {\n var desc = Object.getOwnPropertyDescriptor(src, symbol);\n Object.defineProperty(dest, symbol, {\n get: function () {\n return src[symbol];\n },\n set: function (value) {\n if (desc && (!desc.writable || typeof desc.set !== 'function')) {\n // if src[symbol] is not writable or not have a setter, just return\n return;\n }\n src[symbol] = value;\n },\n enumerable: desc ? desc.enumerable : true,\n configurable: desc ? desc.configurable : true\n });\n });\n}\nvar shouldCopySymbolProperties = false;\n\nfunction patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol(name);\n var delegate = null;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n var desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n var patchDelegate_1 = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate_1(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n if (shouldCopySymbolProperties) {\n copySymbolProperties(delegate, proto[name]);\n }\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n var setNative = null;\n function scheduleTask(task) {\n var data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) {\n var meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n }; });\n}\n\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nvar isDetectedIEOrEdge = false;\nvar ieOrEdge = false;\nfunction isIE() {\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n}\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n return ieOrEdge;\n }\n catch (error) {\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// override Function.prototype.toString to make zone.js patched function\n// look like native function\nZone.__load_patch('toString', function (global) {\n // patch Func.prototype.toString to let them look like native\n var originalFunctionToString = Function.prototype.toString;\n var ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n var PROMISE_SYMBOL = zoneSymbol('Promise');\n var ERROR_SYMBOL = zoneSymbol('Error');\n var newFunctionToString = function toString() {\n if (typeof this === 'function') {\n var originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.apply(this[ORIGINAL_DELEGATE_SYMBOL], arguments);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n var nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.apply(nativePromise, arguments);\n }\n }\n if (this === Error) {\n var nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.apply(nativeError, arguments);\n }\n }\n }\n return originalFunctionToString.apply(this, arguments);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n var originalObjectToString = Object.prototype.toString;\n var PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.apply(this, arguments);\n };\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nvar passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n }\n });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\n// an identifier to tell ZoneTask do not create a new invoke closure\nvar OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n};\nvar zoneSymbolEventNames$1 = {};\nvar globalSources = {};\nvar EVENT_NAME_SYMBOL_REGX = /^__zone_symbol__(\\w+)(true|false)$/;\nvar IMMEDIATE_PROPAGATION_SYMBOL = ('__zone_symbol__propagationStopped');\nfunction patchEventTarget(_global, apis, patchOptions) {\n var ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n var REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n var LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n var REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n var zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n var ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n var PREPEND_EVENT_LISTENER = 'prependListener';\n var PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n var invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n var delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = function (event) { return delegate.handleEvent(event); };\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n task.invoke(task, target, [event]);\n var options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n var delegate_1 = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate_1, options);\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = false\n var globalZoneAwareCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n var globalZoneAwareCaptureCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n var useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n var validateHandler = patchOptions && patchOptions.vh;\n var checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n var returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n var proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n var eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n var taskData = {};\n var nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n var nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n var nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n var nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n var nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n function checkIsPassive(task) {\n if (!passiveSupported && typeof taskData.options !== 'boolean' &&\n typeof taskData.options !== 'undefined' && taskData.options !== null) {\n // options is a non-null non-undefined object\n // passive is not supported\n // don't pass options as object\n // just pass capture as a boolean\n task.options = !!taskData.options.capture;\n taskData.options = task.options;\n }\n }\n var customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n checkIsPassive(task);\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n var customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n var symbolEventNames = zoneSymbolEventNames$1[task.eventName];\n var symbolEventName = void 0;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n var customScheduleNonGlobal = function (task) {\n checkIsPassive(task);\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n var customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n var customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n var compareTaskCallbackVsDelegate = function (task, delegate) {\n var typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n var compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n var blackListedEvents = Zone[Zone.__symbol__('BLACK_LISTED_EVENTS')];\n var makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget, prepend) {\n if (returnTarget === void 0) { returnTarget = false; }\n if (prepend === void 0) { prepend = false; }\n return function () {\n var target = this || _global;\n var eventName = arguments[0];\n var delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n var isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n var options = arguments[2];\n if (blackListedEvents) {\n // check black list\n for (var i = 0; i < blackListedEvents.length; i++) {\n if (eventName === blackListedEvents[i]) {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n var capture;\n var once = false;\n if (options === undefined) {\n capture = false;\n }\n else if (options === true) {\n capture = true;\n }\n else if (options === false) {\n capture = false;\n }\n else {\n capture = options ? !!options.capture : false;\n once = options ? !!options.once : false;\n }\n var zone = Zone.current;\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n var symbolEventName;\n if (!symbolEventNames) {\n // the code is duplicate, but I just want to get some better performance\n var falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n var trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n symbolEventName = capture ? symbolCapture : symbol;\n }\n else {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = target[symbolEventName];\n var isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (var i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n var source;\n var constructorName = target.constructor['name'];\n var targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n var data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n var task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n var options = arguments[2];\n var capture;\n if (options === undefined) {\n capture = false;\n }\n else if (options === true) {\n capture = true;\n }\n else if (options === false) {\n capture = false;\n }\n else {\n capture = options ? !!options.capture : false;\n }\n var delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n var symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n var listeners = [];\n var tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (var i = 0; i < tasks.length; i++) {\n var task = tasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (!eventName) {\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n var prop = keys[i];\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (symbolEventNames) {\n var symbolEventName = symbolEventNames[FALSE_STR];\n var symbolCaptureEventName = symbolEventNames[TRUE_STR];\n var tasks = target[symbolEventName];\n var captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n var removeTasks = tasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n var removeTasks = captureTasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n var results = [];\n for (var i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n var foundTasks = [];\n for (var prop in target) {\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n var tasks = target[prop];\n if (tasks) {\n for (var i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n}\nfunction patchEventPrototype(global, api) {\n var Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', function (delegate) { return function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n }; });\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nvar taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n function timer() {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n if (!(task.data && task.data.isPeriodic)) {\n if (typeof data.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[data.handleId];\n }\n else if (data.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n data.handleId[taskSymbol] = null;\n }\n }\n }\n }\n data.args[0] = timer;\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) {\n return clearNative(task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, function (delegate) { return function (self, args) {\n if (typeof args[0] === 'function') {\n var options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n var task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n var handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative =\n patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var id = args[0];\n var task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/*\n * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\nvar _defineProperty = Object[zoneSymbol('defineProperty')] = Object.defineProperty;\nvar _getOwnPropertyDescriptor = Object[zoneSymbol('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\nvar _create = Object.create;\nvar unconfigurablesKey = zoneSymbol('unconfigurables');\nfunction propertyPatch() {\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) {\n Object.defineProperty(obj, prop, props[prop]);\n });\n return obj;\n };\n Object.create = function (obj, proto) {\n if (typeof proto === 'object' && !Object.isFrozen(proto)) {\n Object.keys(proto).forEach(function (prop) {\n proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);\n });\n }\n return _create(obj, proto);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (desc && isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n}\nfunction _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n}\nfunction isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n}\nfunction rewriteDescriptor(obj, prop, desc) {\n // issue-927, if the desc is frozen, don't try to change the desc\n if (!Object.isFrozen(desc)) {\n desc.configurable = true;\n }\n if (!desc.configurable) {\n // issue-927, if the obj is frozen, don't try to set the desc to obj\n if (!obj[unconfigurablesKey] && !Object.isFrozen(obj)) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n if (obj[unconfigurablesKey]) {\n obj[unconfigurablesKey][prop] = true;\n }\n }\n return desc;\n}\nfunction _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's\n // retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = desc.toString();\n }\n console.log(\"Attempting to configure '\" + prop + \"' with descriptor '\" + descJson + \"' on object '\" + obj + \"' and got error, giving up: \" + error);\n }\n }\n else {\n throw error;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// we have to patch the instance since the proto is non-configurable\nfunction apply(api, _global) {\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n patchEventTarget(_global, [WS.prototype]);\n }\n _global.WebSocket = function (x, y) {\n var socket = arguments.length > 1 ? new WS(x, y) : new WS(x);\n var proxySocket;\n var proxySocketProto;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = ObjectGetOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = ObjectCreate(socket);\n // socket have own property descriptor 'onopen', 'onmessage', 'onclose', 'onerror'\n // but proxySocket not, so we will keep socket as prototype and pass it to\n // patchOnProperties method\n proxySocketProto = socket;\n [ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n var args = ArraySlice.call(arguments);\n if (propName === ADD_EVENT_LISTENER_STR || propName === REMOVE_EVENT_LISTENER_STR) {\n var eventName = args.length > 0 ? args[0] : undefined;\n if (eventName) {\n var propertySymbol = Zone.__symbol__('ON_PROPERTY' + eventName);\n socket[propertySymbol] = proxySocket[propertySymbol];\n }\n }\n return socket[propName].apply(socket, args);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n patchOnProperties(proxySocket, ['close', 'error', 'message', 'open'], proxySocketProto);\n return proxySocket;\n };\n var globalWebSocket = _global['WebSocket'];\n for (var prop in WS) {\n globalWebSocket[prop] = WS[prop];\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {globalThis}\n */\nvar globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'orientationchange',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'touchend',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n];\nvar documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange', 'resume'\n];\nvar windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplyconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n];\nvar htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n];\nvar mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\nvar ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n];\nvar webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\nvar formEventNames = ['autocomplete', 'autocompleteerror'];\nvar detailEventNames = ['toggle'];\nvar frameEventNames = ['load'];\nvar frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror'];\nvar marqueeEventNames = ['bounce', 'finish', 'start'];\nvar XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n];\nvar IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\nvar websocketEventNames = ['close', 'error', 'open', 'message'];\nvar workerEventNames = ['error', 'message'];\nvar eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames);\nfunction filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n var tip = ignoreProperties.filter(function (ip) { return ip.target === target; });\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n var targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(function (op) { return targetIgnoreProperties.indexOf(op) === -1; });\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n var filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n if (canPatchViaPropertyDescriptor()) {\n var ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n var internalWindow = window;\n var ignoreErrorProperties = isIE ? [{ target: internalWindow, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n patchFilteredProperties(Document.prototype, eventNames, ignoreProperties);\n if (typeof internalWindow['SVGElement'] !== 'undefined') {\n patchFilteredProperties(internalWindow['SVGElement'].prototype, eventNames, ignoreProperties);\n }\n patchFilteredProperties(Element.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties);\n patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties);\n patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties);\n var HTMLMarqueeElement_1 = internalWindow['HTMLMarqueeElement'];\n if (HTMLMarqueeElement_1) {\n patchFilteredProperties(HTMLMarqueeElement_1.prototype, marqueeEventNames, ignoreProperties);\n }\n var Worker_1 = internalWindow['Worker'];\n if (Worker_1) {\n patchFilteredProperties(Worker_1.prototype, workerEventNames, ignoreProperties);\n }\n }\n patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties);\n var XMLHttpRequestEventTarget_1 = _global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget_1) {\n patchFilteredProperties(XMLHttpRequestEventTarget_1 && XMLHttpRequestEventTarget_1.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n if (typeof IDBIndex !== 'undefined') {\n patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties);\n }\n if (supportsWebSocket) {\n patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties);\n }\n }\n else {\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents();\n patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(api, _global);\n }\n }\n}\nfunction canPatchViaPropertyDescriptor() {\n if ((isBrowser || isMix) && !ObjectGetOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = ObjectGetOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n }\n var ON_READY_STATE_CHANGE = 'onreadystatechange';\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n var xhrDesc = ObjectGetOwnPropertyDescriptor(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE);\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n // and if XMLHttpRequest.prototype.onreadystatechange is undefined,\n // we should set a real desc instead a fake one\n if (xhrDesc) {\n ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () {\n return true;\n }\n });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, xhrDesc || {});\n return result;\n }\n else {\n var SYMBOL_FAKE_ONREADYSTATECHANGE_1 = zoneSymbol('fake');\n ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this[SYMBOL_FAKE_ONREADYSTATECHANGE_1];\n },\n set: function (value) {\n this[SYMBOL_FAKE_ONREADYSTATECHANGE_1] = value;\n }\n });\n var req = new XMLHttpRequest();\n var detectFunc = function () { };\n req.onreadystatechange = detectFunc;\n var result = req[SYMBOL_FAKE_ONREADYSTATECHANGE_1] === detectFunc;\n req.onreadystatechange = null;\n return result;\n }\n}\nvar unboundKey = zoneSymbol('unbound');\n// Whenever any eventListener fires, we check the eventListener target and all parents\n// for `onwhatever` properties and replace them with zone-bound functions\n// - Chrome (for now)\nfunction patchViaCapturingAllTheEvents() {\n var _loop_1 = function (i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = wrapWithCurrentZone(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_1(i);\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction eventTargetPatch(_global, api) {\n var WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video';\n var NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket'\n .split(',');\n var EVENT_TARGET = 'EventTarget';\n var apis = [];\n var isWtf = _global['wtf'];\n var WTF_ISSUE_555_ARRAY = WTF_ISSUE_555.split(',');\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555_ARRAY.map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n var isDisableIECheck = _global['__Zone_disable_IE_check'] || false;\n var isEnableCrossContextCheck = _global['__Zone_enable_cross_context_check'] || false;\n var ieOrEdge = isIEOrEdge();\n var ADD_EVENT_LISTENER_SOURCE = '.addEventListener:';\n var FUNCTION_WRAPPER = '[object FunctionWrapper]';\n var BROWSER_TOOLS = 'function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }';\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n }\n // predefine all task.source string\n for (var i = 0; i < WTF_ISSUE_555.length; i++) {\n var target = WTF_ISSUE_555_ARRAY[i];\n var targets = globalSources[target] = {};\n for (var j = 0; j < eventNames.length; j++) {\n var eventName = eventNames[j];\n targets[eventName] = target + ADD_EVENT_LISTENER_SOURCE + eventName;\n }\n }\n var checkIEAndCrossContext = function (nativeDelegate, delegate, target, args) {\n if (!isDisableIECheck && ieOrEdge) {\n if (isEnableCrossContextCheck) {\n try {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n else {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n }\n else if (isEnableCrossContextCheck) {\n try {\n delegate.toString();\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n return true;\n };\n var apiTypes = [];\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n apiTypes.push(type && type.prototype);\n }\n // vh is validateHandler to check event handler\n // is valid or not(for security check)\n patchEventTarget(_global, apiTypes, { vh: checkIEAndCrossContext });\n api.patchEventTarget = patchEventTarget;\n return true;\n}\nfunction patchEvent(global, api) {\n patchEventPrototype(global, api);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction patchCallbacks(target, targetName, method, callbacks) {\n var symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n var nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = targetName + \".\" + method + \"::\" + callback;\n var prototype = opts.prototype;\n if (prototype.hasOwnProperty(callback)) {\n var descriptor = ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = wrapWithCurrentZone(descriptor.value, source);\n _redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = wrapWithCurrentZone(prototype[callback], source);\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n attachOriginToPatched(target[method], nativeDelegate);\n}\nfunction registerElementPatch(_global) {\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n patchCallbacks(document, 'Document', 'registerElement', callbacks);\n}\nfunction patchCustomElements(_global) {\n if ((!isBrowser && !isMix) || !('customElements' in _global)) {\n return;\n }\n var callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n patchCallbacks(_global.customElements, 'customElements', 'define', callbacks);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nZone.__load_patch('util', function (global, Zone, api) {\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n});\nZone.__load_patch('timers', function (global) {\n var set = 'set';\n var clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n});\nZone.__load_patch('requestAnimationFrame', function (global) {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n});\nZone.__load_patch('blocking', function (global, Zone) {\n var blockingMethods = ['alert', 'prompt', 'confirm'];\n for (var i = 0; i < blockingMethods.length; i++) {\n var name_1 = blockingMethods[i];\n patchMethod(global, name_1, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n});\nZone.__load_patch('EventTarget', function (global, Zone, api) {\n // load blackListEvents from global\n var SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]);\n }\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n patchClass('IntersectionObserver');\n patchClass('FileReader');\n});\nZone.__load_patch('on_property', function (global, Zone, api) {\n propertyDescriptorPatch(api, global);\n propertyPatch();\n});\nZone.__load_patch('customElements', function (global, Zone, api) {\n registerElementPatch(global);\n patchCustomElements(global);\n});\nZone.__load_patch('canvas', function (global) {\n var HTMLCanvasElement = global['HTMLCanvasElement'];\n if (typeof HTMLCanvasElement !== 'undefined' && HTMLCanvasElement.prototype &&\n HTMLCanvasElement.prototype.toBlob) {\n patchMacroTask(HTMLCanvasElement.prototype, 'toBlob', function (self, args) {\n return { name: 'HTMLCanvasElement.toBlob', target: self, cbIdx: 0, args: args };\n });\n }\n});\nZone.__load_patch('XHR', function (global, Zone) {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n var XHR_TASK = zoneSymbol('xhrTask');\n var XHR_SYNC = zoneSymbol('xhrSync');\n var XHR_LISTENER = zoneSymbol('xhrListener');\n var XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n var XHR_URL = zoneSymbol('xhrURL');\n var XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n var oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n var oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n var XMLHttpRequestEventTarget_1 = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget_1) {\n var XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget_1.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n var READY_STATE_CHANGE = 'readystatechange';\n var SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n var data = task.data;\n var target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n var listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n var newListener = target[XHR_LISTENER] = function () {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n var loadTasks = target['__zone_symbol__loadfalse'];\n if (loadTasks && loadTasks.length > 0) {\n var oriInvoke_1 = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n var loadTasks = target['__zone_symbol__loadfalse'];\n for (var i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke_1.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n var storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n }; });\n var XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n var fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n var fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { return function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n var task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n }; });\n var abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', function () { return function (self, args) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n }; });\n }\n});\nZone.__load_patch('geolocation', function (global) {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n});\nZone.__load_patch('PromiseRejectionEvent', function (global, Zone) {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n})));\n","/**\r\n * This file includes polyfills needed by Angular and is loaded before the app.\r\n * You can add your own extra polyfills to this file.\r\n *\r\n * This file is divided into 2 sections:\r\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\r\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\r\n * file.\r\n *\r\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\r\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\r\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\r\n *\r\n * Learn more in https://angular.io/guide/browser-support\r\n */\r\n\r\n/***************************************************************************************************\r\n * BROWSER POLYFILLS\r\n */\r\n\r\n/** IE9, IE10 and IE11 requires all of the following polyfills. **/\r\n// import 'core-js/es6/symbol';\r\n// import 'core-js/es6/object';\r\n// import 'core-js/es6/function';\r\n// import 'core-js/es6/parse-int';\r\n// import 'core-js/es6/parse-float';\r\n// import 'core-js/es6/number';\r\n// import 'core-js/es6/math';\r\n// import 'core-js/es6/string';\r\n// import 'core-js/es6/date';\r\n// import 'core-js/es6/array';\r\n// import 'core-js/es6/regexp';\r\n// import 'core-js/es6/map';\r\n// import 'core-js/es6/weak-map';\r\n// import 'core-js/es6/set';\r\n\r\n/**\r\n * If the application will be indexed by Google Search, the following is required.\r\n * Googlebot uses a renderer based on Chrome 41.\r\n * https://developers.google.com/search/docs/guides/rendering\r\n **/\r\n// import 'core-js/es6/array';\r\n\r\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\r\n// import 'classlist.js'; // Run `npm install --save classlist.js`.\r\n\r\n/** IE10 and IE11 requires the following for the Reflect API. */\r\n// import 'core-js/es6/reflect';\r\n\r\n/**\r\n * Web Animations `@angular/platform-browser/animations`\r\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\r\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\r\n **/\r\n// import 'web-animations-js'; // Run `npm install --save web-animations-js`.\r\n\r\n/**\r\n * By default, zone.js will patch all possible macroTask and DomEvents\r\n * user can disable parts of macroTask/DomEvents patch by setting following flags\r\n */\r\n\r\n // (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\r\n // (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\r\n // (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\r\n\r\n /*\r\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\r\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\r\n */\r\n// (window as any).__Zone_enable_cross_context_check = true;\r\n\r\n/***************************************************************************************************\r\n * Zone JS is required by default for Angular itself.\r\n */\r\nimport 'zone.js/dist/zone'; // Included with Angular CLI.\r\n\r\n\r\n/***************************************************************************************************\r\n * APPLICATION IMPORTS\r\n */\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/src/gui/qt-daemon/html/purchase.svg b/src/gui/qt-daemon/html/purchase.svg deleted file mode 100644 index 46e904fc..00000000 --- a/src/gui/qt-daemon/html/purchase.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - diff --git a/src/gui/qt-daemon/html/receive-green.svg b/src/gui/qt-daemon/html/receive-green.svg deleted file mode 100644 index 1db438b2..00000000 --- a/src/gui/qt-daemon/html/receive-green.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/receive.svg b/src/gui/qt-daemon/html/receive.svg deleted file mode 100644 index fd7e85a9..00000000 --- a/src/gui/qt-daemon/html/receive.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/runtime.js b/src/gui/qt-daemon/html/runtime.js deleted file mode 100644 index fd2c03c8..00000000 --- a/src/gui/qt-daemon/html/runtime.js +++ /dev/null @@ -1,154 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // install a JSONP callback for chunk loading -/******/ function webpackJsonpCallback(data) { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var executeModules = data[2]; -/******/ -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0, resolves = []; -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(installedChunks[chunkId]) { -/******/ resolves.push(installedChunks[chunkId][0]); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ for(moduleId in moreModules) { -/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { -/******/ modules[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(parentJsonpFunction) parentJsonpFunction(data); -/******/ -/******/ while(resolves.length) { -/******/ resolves.shift()(); -/******/ } -/******/ -/******/ // add entry modules from loaded chunk to deferred list -/******/ deferredModules.push.apply(deferredModules, executeModules || []); -/******/ -/******/ // run deferred modules when all chunks ready -/******/ return checkDeferredModules(); -/******/ }; -/******/ function checkDeferredModules() { -/******/ var result; -/******/ for(var i = 0; i < deferredModules.length; i++) { -/******/ var deferredModule = deferredModules[i]; -/******/ var fulfilled = true; -/******/ for(var j = 1; j < deferredModule.length; j++) { -/******/ var depId = deferredModule[j]; -/******/ if(installedChunks[depId] !== 0) fulfilled = false; -/******/ } -/******/ if(fulfilled) { -/******/ deferredModules.splice(i--, 1); -/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]); -/******/ } -/******/ } -/******/ return result; -/******/ } -/******/ -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // Promise = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "runtime": 0 -/******/ }; -/******/ -/******/ var deferredModules = []; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || []; -/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); -/******/ jsonpArray.push = webpackJsonpCallback; -/******/ jsonpArray = jsonpArray.slice(); -/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); -/******/ var parentJsonpFunction = oldJsonpFunction; -/******/ -/******/ -/******/ // run deferred modules from other chunks -/******/ checkDeferredModules(); -/******/ }) -/************************************************************************/ -/******/ ([]); -//# sourceMappingURL=runtime.js.map \ No newline at end of file diff --git a/src/gui/qt-daemon/html/runtime.js.map b/src/gui/qt-daemon/html/runtime.js.map deleted file mode 100644 index c9491c19..00000000 --- a/src/gui/qt-daemon/html/runtime.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAiB,4BAA4B;AAC7C;AACA;AACA,0BAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAgB,uBAAuB;AACvC;;;AAGA;AACA","file":"runtime.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""} \ No newline at end of file diff --git a/src/gui/qt-daemon/html/safety.svg b/src/gui/qt-daemon/html/safety.svg deleted file mode 100644 index f313f3af..00000000 --- a/src/gui/qt-daemon/html/safety.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/secured.svg b/src/gui/qt-daemon/html/secured.svg deleted file mode 100644 index dc1d801c..00000000 --- a/src/gui/qt-daemon/html/secured.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/sell.svg b/src/gui/qt-daemon/html/sell.svg deleted file mode 100644 index f28f0a20..00000000 --- a/src/gui/qt-daemon/html/sell.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/send-red.svg b/src/gui/qt-daemon/html/send-red.svg deleted file mode 100644 index d96d08f4..00000000 --- a/src/gui/qt-daemon/html/send-red.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/send.svg b/src/gui/qt-daemon/html/send.svg deleted file mode 100644 index 0c7e6136..00000000 --- a/src/gui/qt-daemon/html/send.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/settings.svg b/src/gui/qt-daemon/html/settings.svg deleted file mode 100644 index ce87d8bc..00000000 --- a/src/gui/qt-daemon/html/settings.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - settings - - - - - diff --git a/src/gui/qt-daemon/html/staking.svg b/src/gui/qt-daemon/html/staking.svg deleted file mode 100644 index 2f4337f6..00000000 --- a/src/gui/qt-daemon/html/staking.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - diff --git a/src/gui/qt-daemon/html/styles.js b/src/gui/qt-daemon/html/styles.js deleted file mode 100644 index 383090a9..00000000 --- a/src/gui/qt-daemon/html/styles.js +++ /dev/null @@ -1,566 +0,0 @@ -(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["styles"],{ - -/***/ "./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./src/styles.scss": -/*!**********************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src??embedded!./node_modules/sass-loader/lib/loader.js??ref--14-3!./src/styles.scss ***! - \**********************************************************************************************************************************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = [[module.i, "/*\r\n* Implementation of themes\r\n*/\n.ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}\n.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}\n.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}\n.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}\n.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}\n.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}\n.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:#007eff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 0 3px rgba(0,126,255,0.1)}\n.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}\n.ng-select .ng-has-value .ng-placeholder{display:none}\n.ng-select .ng-select-container{background-color:#fff;border-radius:4px;border:1px solid #ccc;min-height:36px;align-items:center}\n.ng-select .ng-select-container:hover{box-shadow:0 1px 0 rgba(0,0,0,0.06)}\n.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}\n[dir=\"rtl\"] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}\n.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}\n.ng-select.ng-select-single .ng-select-container{height:36px}\n.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}\n[dir=\"rtl\"] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}\n.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}\n.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;background-color:#ebf5ff;border-radius:2px;margin-right:5px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label{display:inline-block;padding:1px 5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}\n.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}\n[dir=\"rtl\"] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}\n.ng-select .ng-clear-wrapper{color:#999}\n.ng-select .ng-clear-wrapper:hover .ng-clear{color:#D0021B}\n.ng-select .ng-spinner-zone{padding:5px 5px 0 0}\n[dir=\"rtl\"] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}\n.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}\n[dir=\"rtl\"] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}\n.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}\n.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}\n.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,0.06);left:0}\n.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-color:#e6e6e6;margin-top:-1px}\n.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}\n.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}\n.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}\n.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}\n.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:rgba(0,0,0,0.54);cursor:pointer}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5faff}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{background-color:#ebf5ff;font-weight:600}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:rgba(0,0,0,0.87);padding:8px 10px}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#ebf5ff}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5faff;color:#333}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}\n[dir=\"rtl\"] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}\n.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}\n[dir=\"rtl\"] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}\n[dir=\"rtl\"] .ng-dropdown-panel{direction:rtl;text-align:right}\nhtml {\n box-sizing: border-box;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box; }\n*, *:before, *:after {\n box-sizing: inherit;\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n margin: 0;\n padding: 0;\n -webkit-touch-collout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none; }\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline; }\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block; }\nbody {\n line-height: 1;\n font-style: normal; }\nol, ul {\n list-style: none; }\nblockquote, q {\n quotes: none; }\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: none; }\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\ntd,\nth {\n padding: 0; }\ninput {\n outline: none; }\ninput:-webkit-autofill {\n -webkit-box-shadow: 0 0 0 1000px white inset; }\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n outline: none; }\nbutton[disabled],\nhtml input[disabled] {\n cursor: default; }\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0; }\ninput {\n line-height: normal; }\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box; }\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none; }\na {\n text-decoration: none; }\na:active, a:hover, a:focus {\n outline: 0; }\ni {\n font-style: italic; }\nb, strong {\n font-weight: 700; }\nimg {\n width: auto;\n max-width: 100%;\n height: auto;\n vertical-align: top;\n border: 0; }\n.hidden {\n display: none !important; }\n.theme-dark .app-content .preloader .loading-bar {\n background-color: #5cda9d; }\n.theme-gray .app-content .preloader .loading-bar {\n background-color: #47cf8d; }\n.theme-white .app-content .preloader .loading-bar {\n background-color: #46c172; }\nbutton {\n border: none;\n font-family: OpenSans, sans-serif;\n font-size: 1.5rem;\n font-weight: 600;\n outline: none;\n padding: 0 1rem;\n height: 4.2rem; }\n.theme-dark button:disabled:not(.transparent-button), .theme-dark button.blue-button_reset {\n background-color: #9cadb7;\n color: #111921; }\n.theme-gray button:disabled:not(.transparent-button), .theme-gray button.blue-button_reset {\n background-color: #79848f;\n color: #1a1a1a; }\n.theme-white button:disabled:not(.transparent-button), .theme-white button.blue-button_reset {\n background-color: #90a4ae;\n color: #fefefe; }\n.theme-dark button:disabled:not(.transparent-button):hover, .theme-dark button.blue-button_reset:hover {\n background-color: #b7d1e0; }\n.theme-gray button:disabled:not(.transparent-button):hover, .theme-gray button.blue-button_reset:hover {\n background-color: #a1aebb; }\n.theme-white button:disabled:not(.transparent-button):hover, .theme-white button.blue-button_reset:hover {\n background-color: #aebec6; }\n.theme-dark button:disabled:not(.transparent-button):focus, .theme-dark button.blue-button_reset:focus {\n background-color: #a7b9c2; }\n.theme-gray button:disabled:not(.transparent-button):focus, .theme-gray button.blue-button_reset:focus {\n background-color: #8a959f; }\n.theme-white button:disabled:not(.transparent-button):focus, .theme-white button.blue-button_reset:focus {\n background-color: #a7b9c2; }\n.theme-dark button.blue-button:not(:disabled) {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray button.blue-button:not(:disabled) {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white button.blue-button:not(:disabled) {\n background-color: #2c95f1;\n color: #fefefe; }\n.theme-dark button.blue-button:not(:disabled):hover {\n background-color: #82d7ff; }\n.theme-gray button.blue-button:not(:disabled):hover {\n background-color: #86d6ff; }\n.theme-white button.blue-button:not(:disabled):hover {\n background-color: #5cb3ff; }\n.theme-dark button.blue-button:not(:disabled):focus {\n background-color: #59b5fd; }\n.theme-gray button.blue-button:not(:disabled):focus {\n background-color: #5fb6fc; }\n.theme-white button.blue-button:not(:disabled):focus {\n background-color: #379ffa; }\n.theme-dark button.green-button:not(:disabled) {\n background-color: #5cda9d;\n color: #111921; }\n.theme-gray button.green-button:not(:disabled) {\n background-color: #47cf8d;\n color: #1a1a1a; }\n.theme-white button.green-button:not(:disabled) {\n background-color: #46c172;\n color: #fefefe; }\n.theme-dark button.green-button:not(:disabled):hover {\n background-color: #8dfcc6; }\n.theme-gray button.green-button:not(:disabled):hover {\n background-color: #7bf6c6; }\n.theme-white button.green-button:not(:disabled):hover {\n background-color: #5ad586; }\n.theme-dark button.green-button:not(:disabled):focus {\n background-color: #62e0b2; }\n.theme-gray button.green-button:not(:disabled):focus {\n background-color: #5cdc9e; }\n.theme-white button.green-button:not(:disabled):focus {\n background-color: #53c77c; }\n.theme-dark button.turquoise-button:not(:disabled) {\n background-color: #4dd0e1;\n color: #111921; }\n.theme-gray button.turquoise-button:not(:disabled) {\n background-color: #3ec5d7;\n color: #1a1a1a; }\n.theme-white button.turquoise-button:not(:disabled) {\n background-color: #26b6c7;\n color: #fefefe; }\n.theme-dark button.turquoise-button:not(:disabled):hover {\n background-color: #87f4f5; }\n.theme-gray button.turquoise-button:not(:disabled):hover {\n background-color: #72edfe; }\n.theme-white button.turquoise-button:not(:disabled):hover {\n background-color: #52cbd9; }\n.theme-dark button.turquoise-button:not(:disabled):focus {\n background-color: #42d5e8; }\n.theme-gray button.turquoise-button:not(:disabled):focus {\n background-color: #50d0e1; }\n.theme-white button.turquoise-button:not(:disabled):focus {\n background-color: #31becf; }\nbutton.transparent-button {\n display: flex;\n align-items: center;\n justify-content: center; }\n.theme-dark button.transparent-button {\n background-color: transparent;\n border: 0.2rem solid #2b3644;\n color: #e0e0e0; }\n.theme-gray button.transparent-button {\n background-color: transparent;\n border: 0.2rem solid #2f3438;\n color: #e0e0e0; }\n.theme-white button.transparent-button {\n background-color: transparent;\n border: 0.2rem solid #ebebeb;\n color: #43454b; }\nbutton.transparent-button .icon {\n margin-right: 1rem;\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\n mask: url('complete-testwallet.svg') no-repeat center;\n width: 1.7rem;\n height: 1.7rem; }\n.theme-dark button.transparent-button .icon {\n background-color: #e0e0e0; }\n.theme-gray button.transparent-button .icon {\n background-color: #e0e0e0; }\n.theme-white button.transparent-button .icon {\n background-color: #43454b; }\n.input-block {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n margin-bottom: 0.4rem; }\n.input-block .wrap-label {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n min-height: 2.4rem; }\n.input-block label {\n font-size: 1.3rem;\n line-height: 2.4rem; }\n.theme-dark .input-block label {\n color: #556576; }\n.theme-gray .input-block label {\n color: #565c62; }\n.theme-white .input-block label {\n color: #a0a5ab; }\n.input-block input[type='text'], .input-block input[type='password'], .input-block select {\n border: none;\n font-size: 1.4rem;\n outline: none;\n padding: 0 1rem;\n width: 100%;\n height: 4.2rem; }\n.theme-dark .input-block input[type='text'], .theme-dark .input-block input[type='password'], .theme-dark .input-block select {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .input-block input[type='text'], .theme-gray .input-block input[type='password'], .theme-gray .input-block select {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .input-block input[type='text'], .theme-white .input-block input[type='password'], .theme-white .input-block select {\n background-color: #e6e6e6;\n color: #43454b; }\n.input-block.textarea {\n height: auto; }\n.input-block.textarea textarea {\n font-family: OpenSans, sans-serif;\n border: none;\n font-size: 1.4rem;\n outline: none;\n padding: 1rem;\n width: 100%;\n min-width: 100%;\n height: 100%;\n min-height: 7.5rem;\n max-height: 7.5rem;\n overflow: auto;\n resize: none; }\n.theme-dark .input-block.textarea textarea {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .input-block.textarea textarea {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .input-block.textarea textarea {\n background-color: #e6e6e6;\n color: #43454b; }\n.input-block .error-block {\n font-size: 1rem;\n line-height: 1.4rem;\n align-self: flex-end;\n text-align: right; }\n.theme-dark .input-block .error-block {\n color: #ff5252; }\n.theme-gray .input-block .error-block {\n color: #ff5252; }\n.theme-white .input-block .error-block {\n color: #ff5252; }\n.input-block .success-block {\n font-size: 1rem;\n line-height: 1.4rem;\n align-self: flex-end;\n text-align: right; }\n.theme-dark .input-block .success-block {\n color: #5cda9d; }\n.theme-gray .input-block .success-block {\n color: #47cf8d; }\n.theme-white .input-block .success-block {\n color: #46c172; }\n.theme-dark .error-text {\n color: #ff5252; }\n.theme-gray .error-text {\n color: #ff5252; }\n.theme-white .error-text {\n color: #ff5252; }\ninput[type='radio'].style-radio + label {\n display: flex;\n align-items: center;\n cursor: pointer;\n font-weight: 400;\n padding-left: 2.4rem;\n -webkit-touch-collout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none; }\n.theme-dark input[type='radio'].style-radio + label {\n color: #556576; }\n.theme-gray input[type='radio'].style-radio + label {\n color: #565c62; }\n.theme-white input[type='radio'].style-radio + label {\n color: #a0a5ab; }\ninput[type='radio'].style-radio:not(checked) {\n position: absolute;\n opacity: 0; }\ninput[type='radio'].style-radio:not(checked) + label {\n position: relative; }\ninput[type='radio'].style-radio:not(checked) + label:before {\n content: '';\n position: absolute;\n top: 0.7rem;\n left: 0;\n background: transparent;\n border-radius: 50%;\n width: 1.4rem;\n height: 1.4rem; }\n.theme-dark input[type='radio'].style-radio:not(checked) + label:before {\n border: 0.1rem solid #4db1ff; }\n.theme-gray input[type='radio'].style-radio:not(checked) + label:before {\n border: 0.1rem solid #42a5f5; }\n.theme-white input[type='radio'].style-radio:not(checked) + label:before {\n border: 0.1rem solid #2c95f1; }\ninput[type='radio'].style-radio:not(checked) + label:after {\n content: '';\n position: absolute;\n top: 1rem;\n left: 0.3rem;\n border-radius: 50%;\n opacity: 0;\n width: 0.8rem;\n height: 0.8rem; }\n.theme-dark input[type='radio'].style-radio:not(checked) + label:after {\n background-color: #4db1ff; }\n.theme-gray input[type='radio'].style-radio:not(checked) + label:after {\n background-color: #42a5f5; }\n.theme-white input[type='radio'].style-radio:not(checked) + label:after {\n background-color: #2c95f1; }\ninput[type='radio'].style-radio:checked + label:after {\n opacity: 1; }\ninput[type='checkbox'].style-checkbox + label {\n display: flex;\n align-items: center;\n cursor: pointer;\n font-weight: 400;\n padding-left: 3.6rem;\n -webkit-touch-collout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none; }\n.theme-dark input[type='checkbox'].style-checkbox + label {\n color: #556576; }\n.theme-gray input[type='checkbox'].style-checkbox + label {\n color: #565c62; }\n.theme-white input[type='checkbox'].style-checkbox + label {\n color: #a0a5ab; }\ninput[type='checkbox'].style-checkbox:not(checked) {\n position: absolute;\n top: 50%;\n left: 1.6rem;\n transform: translateY(-50%);\n visibility: hidden; }\ninput[type='checkbox'].style-checkbox:not(checked) + label {\n position: relative; }\ninput[type='checkbox'].style-checkbox:not(checked) + label:before {\n content: '';\n position: absolute;\n top: 50%;\n left: 1.6rem;\n transform: translateY(-50%);\n background: transparent;\n width: 1.4rem;\n height: 1.4rem; }\n.theme-dark input[type='checkbox'].style-checkbox:not(checked) + label:before {\n border: 0.1rem solid #4db1ff; }\n.theme-gray input[type='checkbox'].style-checkbox:not(checked) + label:before {\n border: 0.1rem solid #42a5f5; }\n.theme-white input[type='checkbox'].style-checkbox:not(checked) + label:before {\n border: 0.1rem solid #2c95f1; }\ninput[type='checkbox'].style-checkbox:checked + label:before {\n background: url('complete-testwallet.svg'); }\n.theme-dark input[type='checkbox'].style-checkbox:checked + label:before {\n background-color: #4db1ff; }\n.theme-gray input[type='checkbox'].style-checkbox:checked + label:before {\n background-color: #42a5f5; }\n.theme-white input[type='checkbox'].style-checkbox:checked + label:before {\n background-color: #2c95f1; }\n.theme-dark .switch {\n background-color: #000000; }\n.theme-gray .switch {\n background-color: #000000; }\n.theme-white .switch {\n background-color: #e0e0e0; }\n.theme-dark .switch .circle.on {\n background-color: #4db1ff; }\n.theme-gray .switch .circle.on {\n background-color: #42a5f5; }\n.theme-white .switch .circle.on {\n background-color: #2c95f1; }\n.theme-dark .switch .circle.off {\n background-color: #556576; }\n.theme-gray .switch .circle.off {\n background-color: #565c62; }\n.theme-white .switch .circle.off {\n background-color: #a0a5ab; }\n.table-tooltip {\n padding: 1rem 2rem; }\n.theme-dark .table-tooltip {\n background: #42505f;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-gray .table-tooltip {\n background: #3e464c;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-white .table-tooltip {\n background: #ffffff;\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5);\n color: #43454b; }\n.table-tooltip .tooltip-inner {\n font-size: 1.3rem;\n line-height: 1.8rem;\n white-space: pre-wrap; }\n.table-tooltip.ng-tooltip-top {\n margin-top: -1rem; }\n.table-tooltip.ng-tooltip-top:after {\n content: \"\";\n position: absolute;\n bottom: -1rem;\n left: calc(50% - 0.5rem);\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-top:after {\n border-color: #42505f transparent transparent transparent; }\n.theme-gray .table-tooltip.ng-tooltip-top:after {\n border-color: #3e464c transparent transparent transparent; }\n.theme-white .table-tooltip.ng-tooltip-top:after {\n border-color: #ffffff transparent transparent transparent; }\n.table-tooltip.ng-tooltip-top-left {\n margin-top: -1rem; }\n.table-tooltip.ng-tooltip-top-left:after {\n content: \"\";\n position: absolute;\n bottom: -1rem;\n left: 0.7rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-top-left:after {\n border-color: #42505f transparent transparent #42505f; }\n.theme-gray .table-tooltip.ng-tooltip-top-left:after {\n border-color: #3e464c transparent transparent #3e464c; }\n.theme-white .table-tooltip.ng-tooltip-top-left:after {\n border-color: #ffffff transparent transparent #ffffff; }\n.table-tooltip.ng-tooltip-top-right {\n margin-top: -1rem; }\n.table-tooltip.ng-tooltip-top-right:after {\n content: \"\";\n position: absolute;\n bottom: -1rem;\n right: 0.7rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-top-right:after {\n border-color: #42505f #42505f transparent transparent; }\n.theme-gray .table-tooltip.ng-tooltip-top-right:after {\n border-color: #3e464c #3e464c transparent transparent; }\n.theme-white .table-tooltip.ng-tooltip-top-right:after {\n border-color: #ffffff #ffffff transparent transparent; }\n.table-tooltip.ng-tooltip-bottom {\n margin-top: 1rem; }\n.table-tooltip.ng-tooltip-bottom:before {\n content: \"\";\n position: absolute;\n top: -1rem;\n left: calc(50% - 0.5rem);\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-bottom:before {\n border-color: transparent transparent #42505f transparent; }\n.theme-gray .table-tooltip.ng-tooltip-bottom:before {\n border-color: transparent transparent #3e464c transparent; }\n.theme-white .table-tooltip.ng-tooltip-bottom:before {\n border-color: transparent transparent #ffffff transparent; }\n.table-tooltip.ng-tooltip-bottom-left {\n margin-top: 1rem; }\n.table-tooltip.ng-tooltip-bottom-left:before {\n content: \"\";\n position: absolute;\n top: -1rem;\n left: 0.7rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-bottom-left:before {\n border-color: transparent transparent #42505f #42505f; }\n.theme-gray .table-tooltip.ng-tooltip-bottom-left:before {\n border-color: transparent transparent #3e464c #3e464c; }\n.theme-white .table-tooltip.ng-tooltip-bottom-left:before {\n border-color: transparent transparent #ffffff #ffffff; }\n.table-tooltip.ng-tooltip-bottom-right {\n margin-top: 1rem; }\n.table-tooltip.ng-tooltip-bottom-right:before {\n content: \"\";\n position: absolute;\n top: -1rem;\n right: 0.7rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-bottom-right:before {\n border-color: transparent #42505f #42505f transparent; }\n.theme-gray .table-tooltip.ng-tooltip-bottom-right:before {\n border-color: transparent #3e464c #3e464c transparent; }\n.theme-white .table-tooltip.ng-tooltip-bottom-right:before {\n border-color: transparent #ffffff #ffffff transparent; }\n.table-tooltip.ng-tooltip-left {\n margin-left: -1rem; }\n.table-tooltip.ng-tooltip-left:after {\n content: \"\";\n position: absolute;\n top: calc(50% - 0.5rem);\n right: -1rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-left:after {\n border-color: transparent transparent transparent #42505f; }\n.theme-gray .table-tooltip.ng-tooltip-left:after {\n border-color: transparent transparent transparent #3e464c; }\n.theme-white .table-tooltip.ng-tooltip-left:after {\n border-color: transparent transparent transparent #ffffff; }\n.table-tooltip.ng-tooltip-right {\n margin-left: 1rem; }\n.table-tooltip.ng-tooltip-right:before {\n content: \"\";\n position: absolute;\n top: calc(50% - 0.5rem);\n left: -1rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .table-tooltip.ng-tooltip-right:before {\n border-color: transparent #42505f transparent transparent; }\n.theme-gray .table-tooltip.ng-tooltip-right:before {\n border-color: transparent #3e464c transparent transparent; }\n.theme-white .table-tooltip.ng-tooltip-right:before {\n border-color: transparent #ffffff transparent transparent; }\n.table-tooltip-dimensions .tooltip-inner {\n overflow: auto;\n max-width: 20rem;\n max-height: 10rem; }\n.balance-tooltip {\n padding: 1.3rem; }\n.theme-dark .balance-tooltip {\n background: #42505f;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-gray .balance-tooltip {\n background: #3e464c;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-white .balance-tooltip {\n background: #ffffff;\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5);\n color: #43454b; }\n.balance-tooltip .tooltip-inner {\n display: flex;\n flex-direction: column;\n font-size: 1.3rem; }\n.balance-tooltip .tooltip-inner .available {\n margin-bottom: 1.7rem; }\n.balance-tooltip .tooltip-inner .available b {\n font-weight: 600; }\n.balance-tooltip .tooltip-inner .locked {\n margin-bottom: 0.7rem; }\n.balance-tooltip .tooltip-inner .locked b {\n font-weight: 600; }\n.balance-tooltip .tooltip-inner .link {\n cursor: pointer; }\n.theme-dark .balance-tooltip .tooltip-inner .link {\n color: #4db1ff; }\n.theme-gray .balance-tooltip .tooltip-inner .link {\n color: #42a5f5; }\n.theme-white .balance-tooltip .tooltip-inner .link {\n color: #2c95f1; }\n.balance-tooltip.ng-tooltip-top {\n margin-top: -1rem; }\n.balance-tooltip.ng-tooltip-bottom {\n margin-top: 1rem; }\n.balance-tooltip.ng-tooltip-left {\n margin-left: -1rem; }\n.balance-tooltip.ng-tooltip-right {\n margin-left: 1rem; }\n.account-tooltip .tooltip-inner {\n word-break: break-word;\n max-width: 18rem; }\n.comment-tooltip .tooltip-inner {\n overflow: auto;\n word-break: break-word;\n max-width: 50rem;\n max-height: 25rem; }\n.update-tooltip {\n padding: 1.5rem; }\n.theme-dark .update-tooltip {\n background: #42505f;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-gray .update-tooltip {\n background: #3e464c;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);\n color: #e0e0e0; }\n.theme-white .update-tooltip {\n background: #ffffff;\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5);\n color: #43454b; }\n.theme-dark .update-tooltip.important {\n background: #5f2b11;\n color: #e0e0e0; }\n.theme-gray .update-tooltip.important {\n background: #55240d;\n color: #e0e0e0; }\n.theme-white .update-tooltip.important {\n background: #ef6c00;\n color: #ffffff; }\n.theme-dark .update-tooltip.important.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #5f2b11 #5f2b11; }\n.theme-gray .update-tooltip.important.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #55240d #55240d; }\n.theme-white .update-tooltip.important.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #ef6c00 #ef6c00; }\n.theme-dark .update-tooltip.important.ng-tooltip-right-bottom:before {\n border-color: transparent #5f2b11 #5f2b11 transparent; }\n.theme-gray .update-tooltip.important.ng-tooltip-right-bottom:before {\n border-color: transparent #55240d #55240d transparent; }\n.theme-white .update-tooltip.important.ng-tooltip-right-bottom:before {\n border-color: transparent #ef6c00 #ef6c00 transparent; }\n.update-tooltip.critical {\n padding: 2.5rem; }\n.theme-dark .update-tooltip.critical {\n background: #5f1d1d;\n color: #e0e0e0; }\n.theme-gray .update-tooltip.critical {\n background: #4c1919;\n color: #e0e0e0; }\n.theme-white .update-tooltip.critical {\n background: #e53935;\n color: #ffffff; }\n.update-tooltip.critical .tooltip-inner {\n display: flex;\n flex-direction: column;\n align-items: center; }\n.theme-dark .update-tooltip.critical.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #5f1d1d #5f1d1d; }\n.theme-gray .update-tooltip.critical.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #4c1919 #4c1919; }\n.theme-white .update-tooltip.critical.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #e53935 #e53935; }\n.theme-dark .update-tooltip.critical.ng-tooltip-right-bottom:before {\n border-color: transparent #5f1d1d #5f1d1d transparent; }\n.theme-gray .update-tooltip.critical.ng-tooltip-right-bottom:before {\n border-color: transparent #4c1919 #4c1919 transparent; }\n.theme-white .update-tooltip.critical.ng-tooltip-right-bottom:before {\n border-color: transparent #e53935 #e53935 transparent; }\n.update-tooltip .tooltip-inner {\n font-size: 1.3rem;\n line-height: 1.8rem;\n white-space: pre-wrap; }\n.update-tooltip .tooltip-inner .standard-update {\n font-size: 1.5rem;\n line-height: 2.7rem; }\n.theme-dark .update-tooltip .tooltip-inner .standard-update {\n color: #4db1ff; }\n.theme-gray .update-tooltip .tooltip-inner .standard-update {\n color: #42a5f5; }\n.theme-white .update-tooltip .tooltip-inner .standard-update {\n color: #2c95f1; }\n.update-tooltip .tooltip-inner .important-update {\n font-size: 1.5rem;\n line-height: 2.7rem; }\n.theme-dark .update-tooltip .tooltip-inner .important-update {\n color: #ff6f00; }\n.theme-gray .update-tooltip .tooltip-inner .important-update {\n color: #ff6f00; }\n.theme-white .update-tooltip .tooltip-inner .important-update {\n color: #ffffff; }\n.update-tooltip .tooltip-inner .critical-update {\n font-size: 1.5rem;\n line-height: 2.7rem;\n text-align: center; }\n.update-tooltip .tooltip-inner .wrong-time {\n font-size: 1.5rem;\n line-height: 2.7rem; }\n.theme-dark .update-tooltip .tooltip-inner .wrong-time {\n color: #ff6f00; }\n.theme-gray .update-tooltip .tooltip-inner .wrong-time {\n color: #ff6f00; }\n.theme-white .update-tooltip .tooltip-inner .wrong-time {\n color: #ffffff; }\n.update-tooltip .tooltip-inner .icon {\n margin: 1.5rem 0;\n width: 5rem;\n height: 5rem; }\n.theme-dark .update-tooltip .tooltip-inner .icon {\n background-color: #ff5252; }\n.theme-gray .update-tooltip .tooltip-inner .icon {\n background-color: #ff5252; }\n.theme-white .update-tooltip .tooltip-inner .icon {\n background-color: #ffffff; }\n.update-tooltip.ng-tooltip-left-bottom {\n margin-left: -1.5rem; }\n.update-tooltip.ng-tooltip-left-bottom:after {\n content: \"\";\n position: absolute;\n bottom: 0.6rem;\n right: -1rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .update-tooltip.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #42505f #42505f; }\n.theme-gray .update-tooltip.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #3e464c #3e464c; }\n.theme-white .update-tooltip.ng-tooltip-left-bottom:after {\n border-color: transparent transparent #ffffff #ffffff; }\n.update-tooltip.ng-tooltip-right-bottom {\n margin-left: 1.5rem; }\n.update-tooltip.ng-tooltip-right-bottom:before {\n content: \"\";\n position: absolute;\n bottom: 0.6rem;\n left: -1rem;\n border-width: 0.5rem;\n border-style: solid; }\n.theme-dark .update-tooltip.ng-tooltip-right-bottom:before {\n border-color: transparent #42505f #42505f transparent; }\n.theme-gray .update-tooltip.ng-tooltip-right-bottom:before {\n border-color: transparent #3e464c #3e464c transparent; }\n.theme-white .update-tooltip.ng-tooltip-right-bottom:before {\n border-color: transparent #ffffff #ffffff transparent; }\n.ngx-contextmenu .dropdown-menu {\n border: none;\n padding: 0; }\n.theme-dark .ngx-contextmenu .dropdown-menu {\n background-color: #2b3644;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5); }\n.theme-gray .ngx-contextmenu .dropdown-menu {\n background-color: #292d31;\n box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5); }\n.theme-white .ngx-contextmenu .dropdown-menu {\n background-color: #e0e0e0;\n box-shadow: 0 0 1rem rgba(120, 120, 120, 0.5); }\n.ngx-contextmenu li {\n display: block;\n font-family: OpenSans, sans-serif;\n font-size: 1.3rem;\n text-transform: uppercase;\n text-align: center; }\n.ngx-contextmenu a {\n display: block;\n padding: 0.5em 1em; }\n.theme-dark .ngx-contextmenu a {\n color: #e0e0e0; }\n.theme-gray .ngx-contextmenu a {\n color: #e0e0e0; }\n.theme-white .ngx-contextmenu a {\n color: #43454b; }\n.theme-dark .ngx-contextmenu a:hover {\n background-color: #556576;\n color: #e0e0e0; }\n.theme-gray .ngx-contextmenu a:hover {\n background-color: #515960;\n color: #e0e0e0; }\n.theme-white .ngx-contextmenu a:hover {\n background-color: #ffffff;\n color: #43454b; }\n.ng-select.custom-select {\n width: 100%; }\n.ng-select.custom-select.ng-select-single .ng-select-container .ng-value-container .ng-value {\n line-height: 1.8rem; }\n.ng-select.custom-select .ng-select-container {\n border: none;\n border-radius: 0;\n cursor: pointer;\n font-size: 1.4rem;\n outline: none;\n padding: 0 1rem;\n height: 4.2rem; }\n.theme-dark .ng-select.custom-select .ng-select-container {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .ng-select.custom-select .ng-select-container {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .ng-select.custom-select .ng-select-container {\n background-color: #e6e6e6;\n color: #43454b; }\n.ng-select.custom-select .ng-select-container .ng-value-container {\n padding: 0; }\n.ng-select.custom-select .ng-select-container .ng-value-container .ng-input {\n top: auto; }\n.ng-select.custom-select .ng-dropdown-panel {\n border: none; }\n.theme-dark .ng-select.custom-select .ng-dropdown-panel {\n background-color: #171e27; }\n.theme-gray .ng-select.custom-select .ng-dropdown-panel {\n background-color: #292d31; }\n.theme-white .ng-select.custom-select .ng-dropdown-panel {\n background-color: #e6e6e6; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\n font-size: 1.4rem;\n padding: 1rem; }\n.theme-dark .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option {\n background-color: #e6e6e6;\n color: #43454b; }\n.theme-dark .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked {\n background-color: rgba(58, 69, 85, 0.5);\n color: #e0e0e0; }\n.theme-gray .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked {\n background-color: rgba(58, 62, 66, 0.5);\n color: #e0e0e0; }\n.theme-white .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked {\n background-color: rgba(240, 240, 240, 0.5);\n color: #43454b; }\n.theme-dark .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected {\n background-color: rgba(43, 54, 68, 0.5);\n color: #e0e0e0; }\n.theme-gray .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected {\n background-color: rgba(37, 40, 43, 0.5);\n color: #e0e0e0; }\n.theme-white .ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected {\n background-color: rgba(224, 224, 224, 0.5);\n color: #43454b; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar {\n background-color: transparent;\n cursor: default;\n width: 1rem;\n height: 1rem; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-track {\n background: transparent; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-thumb {\n background-color: #556576;\n background-clip: padding-box;\n border: 0.25rem solid transparent;\n border-radius: 0.5rem; }\n.ng-select.custom-select .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-thumb:hover {\n background-color: #556576; }\n.theme-dark app-modal-container .modal, .theme-dark app-confirm-modal .modal {\n background: url('background-dark.png');\n color: #e0e0e0; }\n.theme-gray app-modal-container .modal, .theme-gray app-confirm-modal .modal {\n background: url('background-gray.png');\n color: #e0e0e0; }\n.theme-white app-modal-container .modal, .theme-white app-confirm-modal .modal {\n background: url('background-white.png');\n color: #43454b; }\n.theme-dark app-modal-container .modal .content .icon.error, .theme-dark app-confirm-modal .modal .content .icon.error {\n background-color: #ff5252; }\n.theme-gray app-modal-container .modal .content .icon.error, .theme-gray app-confirm-modal .modal .content .icon.error {\n background-color: #ff5252; }\n.theme-white app-modal-container .modal .content .icon.error, .theme-white app-confirm-modal .modal .content .icon.error {\n background-color: #ff5252; }\n.theme-dark app-modal-container .modal .content .icon.success, .theme-dark app-confirm-modal .modal .content .icon.success {\n background-color: #5cda9d; }\n.theme-gray app-modal-container .modal .content .icon.success, .theme-gray app-confirm-modal .modal .content .icon.success {\n background-color: #47cf8d; }\n.theme-white app-modal-container .modal .content .icon.success, .theme-white app-confirm-modal .modal .content .icon.success {\n background-color: #46c172; }\n.theme-dark app-modal-container .modal .content .icon.info, .theme-dark app-confirm-modal .modal .content .icon.info {\n background-color: #4db1ff; }\n.theme-gray app-modal-container .modal .content .icon.info, .theme-gray app-confirm-modal .modal .content .icon.info {\n background-color: #42a5f5; }\n.theme-white app-modal-container .modal .content .icon.info, .theme-white app-confirm-modal .modal .content .icon.info {\n background-color: #2c95f1; }\n.theme-dark app-modal-container .modal .action-button, .theme-dark app-confirm-modal .modal .action-button {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-modal-container .modal .action-button, .theme-gray app-confirm-modal .modal .action-button {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-modal-container .modal .action-button, .theme-white app-confirm-modal .modal .action-button {\n background-color: #2c95f1;\n color: #fefefe; }\n.theme-dark app-modal-container .modal .close-button .icon, .theme-dark app-confirm-modal .modal .close-button .icon {\n background-color: #556576; }\n.theme-gray app-modal-container .modal .close-button .icon, .theme-gray app-confirm-modal .modal .close-button .icon {\n background-color: #515960; }\n.theme-white app-modal-container .modal .close-button .icon, .theme-white app-confirm-modal .modal .close-button .icon {\n background-color: #43454b; }\n.theme-dark app-transaction-details .table {\n border-top: 0.2rem solid #2b3644; }\n.theme-gray app-transaction-details .table {\n border-top: 0.2rem solid #2f3438; }\n.theme-white app-transaction-details .table {\n border-top: 0.2rem solid #ebebeb; }\n.theme-dark app-transaction-details .table .row .cell.label {\n color: #556576; }\n.theme-gray app-transaction-details .table .row .cell.label {\n color: #565c62; }\n.theme-white app-transaction-details .table .row .cell.label {\n color: #a0a5ab; }\n.theme-dark app-transaction-details .table .row .cell.value {\n color: #e0e0e0; }\n.theme-gray app-transaction-details .table .row .cell.value {\n color: #e0e0e0; }\n.theme-white app-transaction-details .table .row .cell.value {\n color: #43454b; }\n.theme-dark app-transaction-details .table .row .cell.key-value {\n color: #4db1ff; }\n.theme-gray app-transaction-details .table .row .cell.key-value {\n color: #42a5f5; }\n.theme-white app-transaction-details .table .row .cell.key-value {\n color: #2c95f1; }\n.theme-dark app-progress-container .progress-bar-container {\n color: #e0e0e0; }\n.theme-gray app-progress-container .progress-bar-container {\n color: #e0e0e0; }\n.theme-white app-progress-container .progress-bar-container {\n color: #43454b; }\n.theme-dark app-progress-container .progress-bar-container .progress-bar {\n background-color: #343f4a; }\n.theme-gray app-progress-container .progress-bar-container .progress-bar {\n background-color: #363a3e; }\n.theme-white app-progress-container .progress-bar-container .progress-bar {\n background-color: #dcdcdc; }\n.theme-dark app-progress-container .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #5cda9d; }\n.theme-gray app-progress-container .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #47cf8d; }\n.theme-white app-progress-container .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #46c172; }\n.theme-dark app-open-wallet-modal .modal {\n background: url('background-dark.png');\n color: #e0e0e0; }\n.theme-gray app-open-wallet-modal .modal {\n background: url('background-gray.png');\n color: #e0e0e0; }\n.theme-white app-open-wallet-modal .modal {\n background: url('background-white.png');\n color: #43454b; }\n.theme-dark app-send-modal .modal {\n background: url('background-dark.png');\n color: #e0e0e0; }\n.theme-gray app-send-modal .modal {\n background: url('background-gray.png');\n color: #e0e0e0; }\n.theme-white app-send-modal .modal {\n background: url('background-white.png');\n color: #43454b; }\n.theme-dark app-send-modal .modal .title {\n border-bottom: 0.2rem solid #2b3644; }\n.theme-gray app-send-modal .modal .title {\n border-bottom: 0.2rem solid #2f3438; }\n.theme-white app-send-modal .modal .title {\n border-bottom: 0.2rem solid #ebebeb; }\n.theme-dark app-send-modal .modal .action-button {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-send-modal .modal .action-button {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-send-modal .modal .action-button {\n background-color: #2c95f1;\n color: #fefefe; }\napp-main, app-create-wallet, app-open-wallet, app-restore-wallet, app-seed-phrase, app-wallet-details, app-assign-alias, app-edit-alias, app-transfer-alias, app-settings, app-login {\n flex: 1 1 auto;\n padding: 3rem;\n min-width: 85rem; }\napp-main .content, app-create-wallet .content, app-open-wallet .content, app-restore-wallet .content, app-seed-phrase .content, app-wallet-details .content, app-assign-alias .content, app-edit-alias .content, app-transfer-alias .content, app-settings .content, app-login .content {\n position: relative;\n padding: 3rem;\n min-height: 100%; }\n.theme-dark app-main .content, .theme-dark app-create-wallet .content, .theme-dark app-open-wallet .content, .theme-dark app-restore-wallet .content, .theme-dark app-seed-phrase .content, .theme-dark app-wallet-details .content, .theme-dark app-assign-alias .content, .theme-dark app-edit-alias .content, .theme-dark app-transfer-alias .content, .theme-dark app-settings .content, .theme-dark app-login .content {\n background-color: rgba(43, 54, 68, 0.5);\n color: #e0e0e0; }\n.theme-gray app-main .content, .theme-gray app-create-wallet .content, .theme-gray app-open-wallet .content, .theme-gray app-restore-wallet .content, .theme-gray app-seed-phrase .content, .theme-gray app-wallet-details .content, .theme-gray app-assign-alias .content, .theme-gray app-edit-alias .content, .theme-gray app-transfer-alias .content, .theme-gray app-settings .content, .theme-gray app-login .content {\n background-color: rgba(37, 40, 43, 0.5);\n color: #e0e0e0; }\n.theme-white app-main .content, .theme-white app-create-wallet .content, .theme-white app-open-wallet .content, .theme-white app-restore-wallet .content, .theme-white app-seed-phrase .content, .theme-white app-wallet-details .content, .theme-white app-assign-alias .content, .theme-white app-edit-alias .content, .theme-white app-transfer-alias .content, .theme-white app-settings .content, .theme-white app-login .content {\n background-color: rgba(255, 255, 255, 0.5);\n color: #43454b; }\napp-main .content .head, app-create-wallet .content .head, app-open-wallet .content .head, app-restore-wallet .content .head, app-seed-phrase .content .head, app-wallet-details .content .head, app-assign-alias .content .head, app-edit-alias .content .head, app-transfer-alias .content .head, app-settings .content .head, app-login .content .head {\n position: absolute;\n top: 0;\n left: 0; }\n.theme-dark app-main .content .add-wallet .add-wallet-help {\n color: #4db1ff; }\n.theme-gray app-main .content .add-wallet .add-wallet-help {\n color: #42a5f5; }\n.theme-white app-main .content .add-wallet .add-wallet-help {\n color: #2c95f1; }\n.theme-dark app-main .content .add-wallet .add-wallet-help .icon {\n background-color: #4db1ff; }\n.theme-gray app-main .content .add-wallet .add-wallet-help .icon {\n background-color: #42a5f5; }\n.theme-white app-main .content .add-wallet .add-wallet-help .icon {\n background-color: #2c95f1; }\n.theme-dark app-seed-phrase .seed-phrase-content {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray app-seed-phrase .seed-phrase-content {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white app-seed-phrase .seed-phrase-content {\n background-color: #e6e6e6;\n color: #43454b; }\n.theme-dark app-wallet-details .seed-phrase {\n background-color: #171e27; }\n.theme-gray app-wallet-details .seed-phrase {\n background-color: #292d31; }\n.theme-white app-wallet-details .seed-phrase {\n background-color: #e6e6e6; }\napp-settings .content {\n height: 100%;\n overflow-y: auto;\n display: flex;\n justify-content: space-between;\n flex-direction: column; }\n.theme-dark app-settings .content .theme-selection {\n color: #556576; }\n.theme-gray app-settings .content .theme-selection {\n color: #565c62; }\n.theme-white app-settings .content .theme-selection {\n color: #a0a5ab; }\n.theme-dark app-settings .content .scale-selection .button-block {\n background-color: rgba(23, 31, 39, 0.5); }\n.theme-gray app-settings .content .scale-selection .button-block {\n background-color: rgba(28, 30, 33, 0.5); }\n.theme-white app-settings .content .scale-selection .button-block {\n background-color: rgba(224, 224, 224, 0.5); }\n.theme-dark app-settings .content .scale-selection .button-block .label {\n color: #556576; }\n.theme-gray app-settings .content .scale-selection .button-block .label {\n color: #565c62; }\n.theme-white app-settings .content .scale-selection .button-block .label {\n color: #a0a5ab; }\n.theme-dark app-settings .content .scale-selection .button-block.active {\n background-color: #4db1ff; }\n.theme-gray app-settings .content .scale-selection .button-block.active {\n background-color: #42a5f5; }\n.theme-white app-settings .content .scale-selection .button-block.active {\n background-color: #2c95f1; }\n.theme-dark app-settings .content .scale-selection .button-block.active .label {\n color: #4db1ff; }\n.theme-gray app-settings .content .scale-selection .button-block.active .label {\n color: #42a5f5; }\n.theme-white app-settings .content .scale-selection .button-block.active .label {\n color: #2c95f1; }\napp-login {\n min-width: inherit; }\n.theme-dark app-sidebar {\n background-color: #171f27; }\n.theme-gray app-sidebar {\n background-color: #1c1e21; }\n.theme-white app-sidebar {\n background-color: white; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-header h3 {\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-header h3 {\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-header h3 {\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-header button {\n color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-header button {\n color: #42a5f5; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-header button {\n color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account {\n background-color: transparent;\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account {\n background-color: transparent;\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account {\n background-color: transparent;\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .icon {\n background-color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .icon {\n background-color: #42a5f5; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .icon {\n background-color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .text {\n color: #556576; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .text {\n color: #565c62; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .text {\n color: #a0a5ab; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .icon {\n background-color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .icon {\n background-color: #42a5f5; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .icon {\n background-color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .indicator {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .indicator {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .indicator {\n background-color: #2c95f1;\n color: #fefefe; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar {\n background-color: #343f4a; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar {\n background-color: #363a3e; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar {\n background-color: #dcdcdc; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar .fill {\n background-color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar .fill {\n background-color: #42a5f5; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row .progress-bar-container .progress-bar .fill {\n background-color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\n color: #556576; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\n color: #565c62; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account .sidebar-account-row.account-synchronization {\n color: #a0a5ab; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active {\n background-color: rgba(43, 54, 68, 0.5);\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active {\n background-color: rgba(37, 40, 43, 0.5);\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active {\n background-color: #1e88e5;\n color: #ffffff; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .text {\n color: #556576; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .text {\n color: #565c62; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .text {\n color: #91baf1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .indicator {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .indicator {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .indicator {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .switch {\n background-color: #000000;\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .switch {\n background-color: #000000;\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row .switch {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row.account-synchronization {\n color: #556576; }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row.account-synchronization {\n color: #565c62; }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account.active .sidebar-account-row.account-synchronization {\n color: #91baf1; }\n.theme-dark app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account:hover:not(.active) {\n background-color: rgba(58, 69, 85, 0.5); }\n.theme-gray app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account:hover:not(.active) {\n background-color: rgba(58, 62, 66, 0.5); }\n.theme-white app-sidebar .sidebar-accounts .sidebar-accounts-list .sidebar-account:hover:not(.active) {\n background-color: rgba(240, 240, 240, 0.5); }\n.theme-dark app-sidebar .sidebar-accounts:after {\n background: linear-gradient(to bottom, transparent 0%, #171f27 100%); }\n.theme-gray app-sidebar .sidebar-accounts:after {\n background: linear-gradient(to bottom, transparent 0%, #1c1e21 100%); }\n.theme-white app-sidebar .sidebar-accounts:after {\n background: linear-gradient(to bottom, transparent 0%, white 100%); }\n.theme-dark app-sidebar .sidebar-settings {\n border-bottom: 0.2rem solid #1f2833; }\n.theme-gray app-sidebar .sidebar-settings {\n border-bottom: 0.2rem solid #2e3337; }\n.theme-white app-sidebar .sidebar-settings {\n border-bottom: 0.2rem solid #ebebeb; }\n.theme-dark app-sidebar .sidebar-settings .wrap-button button {\n color: #e0e0e0; }\n.theme-gray app-sidebar .sidebar-settings .wrap-button button {\n color: #e0e0e0; }\n.theme-white app-sidebar .sidebar-settings .wrap-button button {\n color: #43454b; }\n.theme-dark app-sidebar .sidebar-settings .wrap-button button .icon {\n background-color: #4db1ff; }\n.theme-gray app-sidebar .sidebar-settings .wrap-button button .icon {\n background-color: #42a5f5; }\n.theme-white app-sidebar .sidebar-settings .wrap-button button .icon {\n background-color: #2c95f1; }\n.theme-dark app-sidebar .sidebar-settings .wrap-button.active button {\n background-color: rgba(43, 54, 68, 0.5) !important;\n color: #e0e0e0 !important; }\n.theme-gray app-sidebar .sidebar-settings .wrap-button.active button {\n background-color: rgba(37, 40, 43, 0.5) !important;\n color: #e0e0e0 !important; }\n.theme-white app-sidebar .sidebar-settings .wrap-button.active button {\n background-color: #1e88e5 !important;\n color: #ffffff !important; }\n.theme-dark app-sidebar .sidebar-settings .wrap-button.active button .icon {\n background-color: #4db1ff !important; }\n.theme-gray app-sidebar .sidebar-settings .wrap-button.active button .icon {\n background-color: #42a5f5 !important; }\n.theme-white app-sidebar .sidebar-settings .wrap-button.active button .icon {\n background-color: #ffffff !important; }\n.synchronization-status {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 0 0 7rem;\n font-size: 1.3rem; }\n.theme-dark .synchronization-status {\n color: #556576; }\n.theme-gray .synchronization-status {\n color: #565c62; }\n.theme-white .synchronization-status {\n color: #a0a5ab; }\n.synchronization-status .status-container {\n position: relative;\n flex-grow: 1;\n text-align: left; }\n.synchronization-status .status-container .offline, .synchronization-status .status-container .online {\n position: relative;\n display: block;\n line-height: 1.2rem;\n padding-left: 2.2rem; }\n.synchronization-status .status-container .offline:before, .synchronization-status .status-container .online:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n border-radius: 50%;\n width: 1.2rem;\n height: 1.2rem; }\n.theme-dark .synchronization-status .status-container .offline:before {\n background-color: #ff5252; }\n.theme-gray .synchronization-status .status-container .offline:before {\n background-color: #ff5252; }\n.theme-white .synchronization-status .status-container .offline:before {\n background-color: #ff5252; }\n.theme-dark .synchronization-status .status-container .online:before {\n background-color: #5cda9d; }\n.theme-gray .synchronization-status .status-container .online:before {\n background-color: #47cf8d; }\n.theme-white .synchronization-status .status-container .online:before {\n background-color: #46c172; }\n.synchronization-status .status-container .syncing, .synchronization-status .status-container .loading {\n line-height: 5rem; }\n.synchronization-status .status-container .progress-bar-container {\n position: absolute;\n bottom: 0;\n left: 0;\n height: 0.7rem;\n width: 100%; }\n.synchronization-status .status-container .progress-bar-container .syncing {\n display: flex; }\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\n flex: 1 0 auto; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\n background-color: #343f4a; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\n background-color: #363a3e; }\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing .progress-bar {\n background-color: #dcdcdc; }\n.synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\n height: 100%; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\n background-color: #5cda9d; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\n background-color: #47cf8d; }\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing .progress-bar .fill {\n background-color: #46c172; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar {\n background-color: #343f4a; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar {\n background-color: #363a3e; }\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar {\n background-color: #dcdcdc; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar .fill {\n background-color: #4db1ff; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar .fill {\n background-color: #42a5f5; }\n.theme-white .synchronization-status .status-container .progress-bar-container .syncing.downloading .progress-bar .fill {\n background-color: #2c95f1; }\n.synchronization-status .status-container .progress-bar-container .syncing .progress-percent {\n flex: 0 0 auto;\n font-size: 1.3rem;\n line-height: 0.7rem;\n padding-left: 0.7rem; }\n.synchronization-status .status-container .progress-bar-container .loading {\n -webkit-animation: move 5s linear infinite;\n animation: move 5s linear infinite;\n background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(0.125, rgba(0, 0, 0, 0.15)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.1)), color-stop(0.375, rgba(0, 0, 0, 0.1)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.15)), color-stop(0.625, rgba(0, 0, 0, 0.15)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.1)), color-stop(0.875, rgba(0, 0, 0, 0.1)), color-stop(0.875, transparent), to(transparent)), -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\n background-size: 7rem 7rem;\n height: 100%; }\n.theme-dark .synchronization-status .status-container .progress-bar-container .loading {\n background-color: #5cda9d; }\n.theme-gray .synchronization-status .status-container .progress-bar-container .loading {\n background-color: #47cf8d; }\n.theme-white .synchronization-status .status-container .progress-bar-container .loading {\n background-color: #46c172; }\n.synchronization-status .update-container {\n display: flex;\n flex-grow: 1;\n margin-left: 1rem;\n text-align: right; }\n.synchronization-status .update-container .update-text {\n flex: 1 1 auto;\n font-size: 1.2rem;\n line-height: 1.8rem;\n text-align: left; }\n.synchronization-status .update-container .update-text.time {\n font-size: 1.1rem; }\n.synchronization-status .update-container .icon {\n flex: 1 0 auto;\n margin: 0.3rem 0 0 0.6rem;\n width: 1.2rem;\n height: 1.2rem; }\n.synchronization-status .update-container .icon.update {\n -webkit-mask: url('update.svg') no-repeat center;\n mask: url('update.svg') no-repeat center; }\n.synchronization-status .update-container .icon.time {\n -webkit-mask: url('time.svg') no-repeat center;\n mask: url('time.svg') no-repeat center; }\n.theme-dark .synchronization-status .update-container .standard {\n color: #4db1ff; }\n.theme-gray .synchronization-status .update-container .standard {\n color: #42a5f5; }\n.theme-white .synchronization-status .update-container .standard {\n color: #2c95f1; }\n.theme-dark .synchronization-status .update-container .important {\n color: #ff6f00; }\n.theme-gray .synchronization-status .update-container .important {\n color: #ff6f00; }\n.theme-white .synchronization-status .update-container .important {\n color: #ff6f00; }\n.theme-dark .synchronization-status .update-container .critical {\n color: #ff5252; }\n.theme-gray .synchronization-status .update-container .critical {\n color: #ff5252; }\n.theme-white .synchronization-status .update-container .critical {\n color: #ff5252; }\n.theme-dark .synchronization-status .update-container .time {\n color: #ff6f00; }\n.theme-gray .synchronization-status .update-container .time {\n color: #ff6f00; }\n.theme-white .synchronization-status .update-container .time {\n color: #ff6f00; }\n.theme-dark .synchronization-status .update-container .icon.standard {\n background-color: #4db1ff; }\n.theme-gray .synchronization-status .update-container .icon.standard {\n background-color: #42a5f5; }\n.theme-white .synchronization-status .update-container .icon.standard {\n background-color: #2c95f1; }\n.theme-dark .synchronization-status .update-container .icon.important {\n background-color: #ff6f00; }\n.theme-gray .synchronization-status .update-container .icon.important {\n background-color: #ff6f00; }\n.theme-white .synchronization-status .update-container .icon.important {\n background-color: #ff6f00; }\n.theme-dark .synchronization-status .update-container .icon.critical {\n background-color: #ff5252; }\n.theme-gray .synchronization-status .update-container .icon.critical {\n background-color: #ff5252; }\n.theme-white .synchronization-status .update-container .icon.critical {\n background-color: #ff5252; }\n.theme-dark .synchronization-status .update-container .icon.time {\n background-color: #ff6f00; }\n.theme-gray .synchronization-status .update-container .icon.time {\n background-color: #ff6f00; }\n.theme-white .synchronization-status .update-container .icon.time {\n background-color: #ff6f00; }\n@-webkit-keyframes move {\n 0% {\n background-position: 100% -7rem; }\n 100% {\n background-position: 100% 7rem; } }\n@keyframes move {\n 0% {\n background-position: 100% -7rem; }\n 100% {\n background-position: 100% 7rem; } }\n.theme-dark app-wallet {\n color: #e0e0e0; }\n.theme-gray app-wallet {\n color: #e0e0e0; }\n.theme-white app-wallet {\n color: #43454b; }\n.theme-dark app-wallet .header button {\n color: #e0e0e0; }\n.theme-gray app-wallet .header button {\n color: #e0e0e0; }\n.theme-white app-wallet .header button {\n color: #43454b; }\n.theme-dark app-wallet .header button .icon {\n background-color: #4db1ff; }\n.theme-gray app-wallet .header button .icon {\n background-color: #42a5f5; }\n.theme-white app-wallet .header button .icon {\n background-color: #2c95f1; }\napp-wallet .header button:disabled {\n background-color: transparent !important; }\n.theme-dark app-wallet .header button:disabled .icon {\n background-color: #556576; }\n.theme-gray app-wallet .header button:disabled .icon {\n background-color: #565c62; }\n.theme-white app-wallet .header button:disabled .icon {\n background-color: #91baf1; }\n.theme-dark app-wallet .header .alias .icon {\n background-color: #4db1ff; }\n.theme-gray app-wallet .header .alias .icon {\n background-color: #42a5f5; }\n.theme-white app-wallet .header .alias .icon {\n background-color: #2c95f1; }\n.theme-dark app-wallet .address {\n color: #4db1ff; }\n.theme-gray app-wallet .address {\n color: #42a5f5; }\n.theme-white app-wallet .address {\n color: #2c95f1; }\n.theme-dark app-wallet .address .icon {\n background-color: #4db1ff; }\n.theme-gray app-wallet .address .icon {\n background-color: #42a5f5; }\n.theme-white app-wallet .address .icon {\n background-color: #2c95f1; }\n.theme-dark app-wallet .tabs .tabs-header .tab {\n background-color: rgba(23, 31, 39, 0.5); }\n.theme-gray app-wallet .tabs .tabs-header .tab {\n background-color: rgba(28, 30, 33, 0.5); }\n.theme-white app-wallet .tabs .tabs-header .tab {\n background-color: rgba(224, 224, 224, 0.5); }\n.theme-dark app-wallet .tabs .tabs-header .tab .icon {\n background-color: #4db1ff; }\n.theme-gray app-wallet .tabs .tabs-header .tab .icon {\n background-color: #42a5f5; }\n.theme-white app-wallet .tabs .tabs-header .tab .icon {\n background-color: #2c95f1; }\n.theme-dark app-wallet .tabs .tabs-header .tab .indicator {\n background-color: #4db1ff;\n color: #111921; }\n.theme-gray app-wallet .tabs .tabs-header .tab .indicator {\n background-color: #42a5f5;\n color: #1a1a1a; }\n.theme-white app-wallet .tabs .tabs-header .tab .indicator {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-wallet .tabs .tabs-header .tab.active {\n background-color: rgba(43, 54, 68, 0.5); }\n.theme-gray app-wallet .tabs .tabs-header .tab.active {\n background-color: rgba(37, 40, 43, 0.5); }\n.theme-white app-wallet .tabs .tabs-header .tab.active {\n background-color: rgba(255, 255, 255, 0.5); }\n.theme-dark app-wallet .tabs .tabs-header .tab:hover:not(.active):not(.disabled) {\n background-color: rgba(58, 69, 85, 0.5); }\n.theme-gray app-wallet .tabs .tabs-header .tab:hover:not(.active):not(.disabled) {\n background-color: rgba(58, 62, 66, 0.5); }\n.theme-white app-wallet .tabs .tabs-header .tab:hover:not(.active):not(.disabled) {\n background-color: #ffffff; }\n.theme-dark app-wallet .tabs .tabs-content {\n background-color: rgba(43, 54, 68, 0.5); }\n.theme-gray app-wallet .tabs .tabs-content {\n background-color: rgba(37, 40, 43, 0.5); }\n.theme-white app-wallet .tabs .tabs-content {\n background-color: rgba(255, 255, 255, 0.5); }\n.theme-dark app-wallet .tabs .pagination-wrapper {\n background-color: rgba(43, 54, 68, 0.5); }\n.theme-gray app-wallet .tabs .pagination-wrapper {\n background-color: rgba(37, 40, 43, 0.5); }\n.theme-white app-wallet .tabs .pagination-wrapper {\n background-color: rgba(255, 255, 255, 0.5); }\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination {\n border-top: 0.2rem solid #2b3644; }\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination {\n border-top: 0.2rem solid #2f3438; }\n.theme-white app-wallet .tabs .pagination-wrapper .pagination {\n border-top: 0.2rem solid #ebebeb; }\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination button {\n background-color: #2b3644;\n color: #e0e0e0; }\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination button {\n background-color: #2f3438;\n color: #e0e0e0; }\n.theme-white app-wallet .tabs .pagination-wrapper .pagination button {\n background-color: #ebebeb;\n color: #43454b; }\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination button.active {\n background-color: #18202a;\n color: #e0e0e0; }\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination button.active {\n background-color: #25292d;\n color: #e0e0e0; }\n.theme-white app-wallet .tabs .pagination-wrapper .pagination button.active {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-wallet .tabs .pagination-wrapper .pagination button:hover {\n background-color: #3a485a;\n color: #e0e0e0; }\n.theme-gray app-wallet .tabs .pagination-wrapper .pagination button:hover {\n background-color: #383e43;\n color: #e0e0e0; }\n.theme-white app-wallet .tabs .pagination-wrapper .pagination button:hover {\n background-color: #ffffff;\n color: #43454b; }\n.theme-dark app-send .form-send .send-select {\n color: #e0e0e0; }\n.theme-gray app-send .form-send .send-select {\n color: #e0e0e0; }\n.theme-white app-send .form-send .send-select {\n color: #43454b; }\n.theme-dark app-send .form-send .send-select .icon {\n background-color: #4db1ff; }\n.theme-gray app-send .form-send .send-select .icon {\n background-color: #42a5f5; }\n.theme-white app-send .form-send .send-select .icon {\n background-color: #2c95f1; }\n.theme-dark app-send .form-send .additional-details {\n border: 0.2rem solid #2b3644; }\n.theme-gray app-send .form-send .additional-details {\n border: 0.2rem solid #2f3438; }\n.theme-white app-send .form-send .additional-details {\n border: 0.2rem solid #ebebeb; }\n.theme-dark app-receive .btn-copy-address {\n background-color: #4db1ff; }\n.theme-gray app-receive .btn-copy-address {\n background-color: #42a5f5; }\n.theme-white app-receive .btn-copy-address {\n background-color: #2c95f1; }\n.theme-dark app-history table tbody tr.locked-transaction {\n color: #556576; }\n.theme-gray app-history table tbody tr.locked-transaction {\n color: #565c62; }\n.theme-white app-history table tbody tr.locked-transaction {\n color: #a0a5ab; }\n.theme-dark app-history table tbody tr:nth-child(4n+1) {\n background-color: #18202a; }\n.theme-gray app-history table tbody tr:nth-child(4n+1) {\n background-color: #25292d; }\n.theme-white app-history table tbody tr:nth-child(4n+1) {\n background-color: #ffffff; }\n.theme-dark app-history table tbody tr:nth-child(4n+2) {\n background-color: #18202a; }\n.theme-gray app-history table tbody tr:nth-child(4n+2) {\n background-color: #25292d; }\n.theme-white app-history table tbody tr:nth-child(4n+2) {\n background-color: #ffffff; }\n.theme-dark app-history table tbody tr:nth-child(4n+3) {\n background-color: transparent; }\n.theme-gray app-history table tbody tr:nth-child(4n+3) {\n background-color: transparent; }\n.theme-white app-history table tbody tr:nth-child(4n+3) {\n background-color: transparent; }\n.theme-dark app-history table tbody tr:nth-child(4n+4) {\n background-color: transparent; }\n.theme-gray app-history table tbody tr:nth-child(4n+4) {\n background-color: transparent; }\n.theme-white app-history table tbody tr:nth-child(4n+4) {\n background-color: transparent; }\n.theme-dark app-history table tbody tr .status .confirmation {\n background-color: #343f4a; }\n.theme-gray app-history table tbody tr .status .confirmation {\n background-color: #363a3e; }\n.theme-white app-history table tbody tr .status .confirmation {\n background-color: #dcdcdc; }\n.theme-dark app-history table tbody tr .status .confirmation .fill {\n background-color: #5cda9d; }\n.theme-gray app-history table tbody tr .status .confirmation .fill {\n background-color: #47cf8d; }\n.theme-white app-history table tbody tr .status .confirmation .fill {\n background-color: #46c172; }\n.theme-dark app-history table tbody tr .lock-transaction {\n background-color: #ff6f00; }\n.theme-gray app-history table tbody tr .lock-transaction {\n background-color: #ff6f00; }\n.theme-white app-history table tbody tr .lock-transaction {\n background-color: #ff6f00; }\n.theme-dark app-history table tbody tr .unlock-transaction {\n background-color: #4db1ff; }\n.theme-gray app-history table tbody tr .unlock-transaction {\n background-color: #42a5f5; }\n.theme-white app-history table tbody tr .unlock-transaction {\n background-color: #2c95f1; }\n.theme-dark app-history table tbody tr .status.send .status-transaction {\n background-color: #ff5252; }\n.theme-gray app-history table tbody tr .status.send .status-transaction {\n background-color: #ff5252; }\n.theme-white app-history table tbody tr .status.send .status-transaction {\n background-color: #ff5252; }\n.theme-dark app-history table tbody tr .status.received .status-transaction {\n background-color: #5cda9d; }\n.theme-gray app-history table tbody tr .status.received .status-transaction {\n background-color: #47cf8d; }\n.theme-white app-history table tbody tr .status.received .status-transaction {\n background-color: #46c172; }\n.theme-dark app-contracts .wrap-table .contract .icon.new, .theme-dark app-contracts .wrap-table .contract .icon.alert {\n background-color: #ff5252; }\n.theme-gray app-contracts .wrap-table .contract .icon.new, .theme-gray app-contracts .wrap-table .contract .icon.alert {\n background-color: #ff5252; }\n.theme-white app-contracts .wrap-table .contract .icon.new, .theme-white app-contracts .wrap-table .contract .icon.alert {\n background-color: #ff5252; }\n.theme-dark app-contracts .wrap-table .contract .icon.purchase, .theme-dark app-contracts .wrap-table .contract .icon.sell {\n background-color: #4db1ff; }\n.theme-gray app-contracts .wrap-table .contract .icon.purchase, .theme-gray app-contracts .wrap-table .contract .icon.sell {\n background-color: #42a5f5; }\n.theme-white app-contracts .wrap-table .contract .icon.purchase, .theme-white app-contracts .wrap-table .contract .icon.sell {\n background-color: #2c95f1; }\n.theme-dark app-purchase .form-purchase .purchase-select {\n color: #e0e0e0; }\n.theme-gray app-purchase .form-purchase .purchase-select {\n color: #e0e0e0; }\n.theme-white app-purchase .form-purchase .purchase-select {\n color: #43454b; }\n.theme-dark app-purchase .form-purchase .purchase-select .icon {\n background-color: #4db1ff; }\n.theme-gray app-purchase .form-purchase .purchase-select .icon {\n background-color: #42a5f5; }\n.theme-white app-purchase .form-purchase .purchase-select .icon {\n background-color: #2c95f1; }\n.theme-dark app-purchase .form-purchase .purchase-states {\n color: #4db1ff; }\n.theme-gray app-purchase .form-purchase .purchase-states {\n color: #42a5f5; }\n.theme-white app-purchase .form-purchase .purchase-states {\n color: #2c95f1; }\n.theme-dark app-purchase .form-purchase .additional-details {\n border: 0.2rem solid #2b3644; }\n.theme-gray app-purchase .form-purchase .additional-details {\n border: 0.2rem solid #2f3438; }\n.theme-white app-purchase .form-purchase .additional-details {\n border: 0.2rem solid #ebebeb; }\n.theme-dark app-purchase .progress-bar-container .progress-bar {\n background-color: #343f4a; }\n.theme-gray app-purchase .progress-bar-container .progress-bar {\n background-color: #363a3e; }\n.theme-white app-purchase .progress-bar-container .progress-bar {\n background-color: #dcdcdc; }\n.theme-dark app-purchase .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #5cda9d; }\n.theme-gray app-purchase .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #47cf8d; }\n.theme-white app-purchase .progress-bar-container .progress-bar .progress-bar-full {\n background-color: #46c172; }\napp-messages table tbody tr td:first-child span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n.theme-dark app-messages table tbody tr td:first-child .icon {\n background-color: #ff5252; }\n.theme-gray app-messages table tbody tr td:first-child .icon {\n background-color: #ff5252; }\n.theme-white app-messages table tbody tr td:first-child .icon {\n background-color: #ff5252; }\n.theme-dark app-typing-message .head .interlocutor {\n color: #4db1ff; }\n.theme-gray app-typing-message .head .interlocutor {\n color: #42a5f5; }\n.theme-white app-typing-message .head .interlocutor {\n color: #2c95f1; }\n.theme-dark app-typing-message .messages-content .messages-list div.date {\n color: #556576; }\n.theme-gray app-typing-message .messages-content .messages-list div.date {\n color: #565c62; }\n.theme-white app-typing-message .messages-content .messages-list div.date {\n color: #a0a5ab; }\n.theme-dark app-typing-message .messages-content .messages-list div.my {\n background-color: #2a3544; }\n.theme-gray app-typing-message .messages-content .messages-list div.my {\n background-color: #30363c; }\n.theme-white app-typing-message .messages-content .messages-list div.my {\n background-color: #fff; }\napp-typing-message .messages-content .messages-list div.my:before {\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n left: -1.1rem;\n border: 1.2rem solid transparent; }\n.theme-dark app-typing-message .messages-content .messages-list div.my:before {\n border-top-color: #2a3544; }\n.theme-gray app-typing-message .messages-content .messages-list div.my:before {\n border-top-color: #30363c; }\n.theme-white app-typing-message .messages-content .messages-list div.my:before {\n border-top-color: #fff; }\n.theme-dark app-typing-message .messages-content .messages-list div.buddy {\n background-color: #18202a; }\n.theme-gray app-typing-message .messages-content .messages-list div.buddy {\n background-color: #25292d; }\n.theme-white app-typing-message .messages-content .messages-list div.buddy {\n background-color: #ededed; }\napp-typing-message .messages-content .messages-list div.buddy:after {\n content: \"\";\n display: block;\n position: absolute;\n right: -1.1rem;\n top: 0;\n border: 1.2rem solid transparent; }\n.theme-dark app-typing-message .messages-content .messages-list div.buddy:after {\n border-top-color: #18202a; }\n.theme-gray app-typing-message .messages-content .messages-list div.buddy:after {\n border-top-color: #25292d; }\n.theme-white app-typing-message .messages-content .messages-list div.buddy:after {\n border-top-color: #ededed; }\n.theme-dark app-staking .chart-header .general .label {\n color: #556576; }\n.theme-gray app-staking .chart-header .general .label {\n color: #565c62; }\n.theme-white app-staking .chart-header .general .label {\n color: #a0a5ab; }\n.theme-dark app-staking .chart-header .general .options {\n color: #e0e0e0; }\n.theme-gray app-staking .chart-header .general .options {\n color: #e0e0e0; }\n.theme-white app-staking .chart-header .general .options {\n color: #43454b; }\napp-staking .chart-header .selected {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n flex-grow: 1;\n font-size: 1.6rem; }\n.theme-dark app-staking .chart-options .title {\n color: #556576; }\n.theme-gray app-staking .chart-options .title {\n color: #565c62; }\n.theme-white app-staking .chart-options .title {\n color: #a0a5ab; }\n.theme-dark app-staking .chart-options .options button {\n color: #e0e0e0;\n background-color: #2b3644; }\n.theme-gray app-staking .chart-options .options button {\n color: #e0e0e0;\n background-color: #292d31; }\n.theme-white app-staking .chart-options .options button {\n color: #43454b;\n background-color: #e0e0e0; }\n.theme-dark app-staking .chart-options .options button.active {\n background-color: #556576; }\n.theme-gray app-staking .chart-options .options button.active {\n background-color: #515960; }\n.theme-white app-staking .chart-options .options button.active {\n background-color: #ffffff; }\n.input-block-alias {\n position: relative; }\n.input-block-alias .alias-dropdown {\n position: absolute;\n top: 6.5rem;\n max-height: 10rem;\n overflow: auto;\n width: 100%; }\n.theme-dark .input-block-alias .alias-dropdown {\n background-color: #171e27;\n color: #e0e0e0; }\n.theme-gray .input-block-alias .alias-dropdown {\n background-color: #292d31;\n color: #e0e0e0; }\n.theme-white .input-block-alias .alias-dropdown {\n background-color: #e6e6e6;\n color: #43454b; }\n.input-block-alias .alias-dropdown div {\n font-size: 1.4rem;\n padding: 1rem; }\n.theme-dark .input-block-alias .alias-dropdown div:hover {\n background-color: rgba(58, 69, 85, 0.5); }\n.theme-gray .input-block-alias .alias-dropdown div:hover {\n background-color: rgba(58, 62, 66, 0.5); }\n.theme-white .input-block-alias .alias-dropdown div:hover {\n background-color: rgba(240, 240, 240, 0.5); }\napp-contacts, app-add-contacts,\napp-contact-send, app-export-import {\n flex: 1 1 auto;\n padding: 3rem;\n min-width: 85rem; }\napp-contacts .content, app-add-contacts .content,\n app-contact-send .content, app-export-import .content {\n position: relative;\n padding: 3rem;\n min-height: 100%; }\n.theme-dark app-contacts .content, .theme-dark app-add-contacts .content, .theme-dark\n app-contact-send .content, .theme-dark app-export-import .content {\n background-color: rgba(43, 54, 68, 0.5);\n color: #e0e0e0; }\n.theme-gray app-contacts .content, .theme-gray app-add-contacts .content, .theme-gray\n app-contact-send .content, .theme-gray app-export-import .content {\n background-color: rgba(37, 40, 43, 0.5);\n color: #e0e0e0; }\n.theme-white app-contacts .content, .theme-white app-add-contacts .content, .theme-white\n app-contact-send .content, .theme-white app-export-import .content {\n background-color: rgba(255, 255, 255, 0.5);\n color: #43454b; }\napp-contacts .content .head, app-add-contacts .content .head,\n app-contact-send .content .head, app-export-import .content .head {\n position: absolute;\n top: 0;\n left: 0; }\n.theme-dark app-contacts table .alias {\n color: #4db1ff; }\n.theme-gray app-contacts table .alias {\n color: #42a5f5; }\n.theme-white app-contacts table .alias {\n color: #2c95f1; }\n.theme-dark app-contacts table button .icon {\n background-color: #4db1ff; }\n.theme-gray app-contacts table button .icon {\n background-color: #42a5f5; }\n.theme-white app-contacts table button .icon {\n background-color: #2c95f1; }\n.theme-dark app-contacts table button span {\n color: #e0e0e0; }\n.theme-gray app-contacts table button span {\n color: #e0e0e0; }\n.theme-white app-contacts table button span {\n color: #43454b; }\n.theme-dark app-contacts .footer {\n color: #4db1ff; }\n.theme-gray app-contacts .footer {\n color: #42a5f5; }\n.theme-white app-contacts .footer {\n color: #2c95f1; }\n.theme-dark app-contacts .footer .import-btn {\n color: #4db1ff; }\n.theme-gray app-contacts .footer .import-btn {\n color: #42a5f5; }\n.theme-white app-contacts .footer .import-btn {\n color: #2c95f1; }\n.theme-dark app-contacts .footer .import-btn .icon {\n background-color: #4db1ff; }\n.theme-gray app-contacts .footer .import-btn .icon {\n background-color: #42a5f5; }\n.theme-white app-contacts .footer .import-btn .icon {\n background-color: #2c95f1; }\n.theme-dark app-contact-send .wallets-selection button {\n color: #4db1ff; }\n.theme-gray app-contact-send .wallets-selection button {\n color: #42a5f5; }\n.theme-white app-contact-send .wallets-selection button {\n color: #2c95f1; }\n.form-details {\n margin-top: 1.8rem; }\n.form-details .input-block:first-child {\n width: 50%; }\n.form-details .wallet-buttons {\n display: flex;\n align-items: center;\n justify-content: space-between; }\n.form-details .wallet-buttons button {\n margin: 2.9rem 0;\n width: 100%;\n max-width: 15rem; }\n.form-seed label {\n font-size: 1.3rem;\n line-height: 2.4rem; }\n.theme-dark .form-seed label {\n color: #556576; }\n.theme-gray .form-seed label {\n color: #565c62; }\n.theme-white .form-seed label {\n color: #a0a5ab; }\n.form-seed .form-content {\n display: flex;\n justify-content: center;\n padding: 3rem;\n width: 100%; }\n.theme-dark .form-seed .form-content {\n border: 2px solid #2b3644; }\n.theme-gray .form-seed .form-content {\n border: 2px solid #2f3438; }\n.theme-white .form-seed .form-content {\n border: 2px solid #ebebeb; }\n.form-seed .text-coral {\n text-decoration: none; }\n.theme-dark .form-seed .text-coral {\n color: #4db1ff; }\n.theme-gray .form-seed .text-coral {\n color: #42a5f5; }\n.theme-white .form-seed .text-coral {\n color: #2c95f1; }\n.form-seed .seed-phrase-form {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 38rem;\n width: 100%; }\n.form-seed .seed-phrase-form .input-block,\n .form-seed .seed-phrase-form button {\n width: 100%; }\n.form-seed .seed-phrase-form .error-message {\n margin-top: 1rem; }\n.theme-dark .form-seed .seed-phrase-form .error-message {\n color: #ff6f00; }\n.theme-gray .form-seed .seed-phrase-form .error-message {\n color: #ff6f00; }\n.theme-white .form-seed .seed-phrase-form .error-message {\n color: #ff6f00; }\n.form-seed .seed-phrase-form .secured-seed {\n font-size: 1.2rem;\n line-height: 2.4rem;\n text-decoration: none;\n display: flex;\n align-items: center;\n cursor: pointer; }\n.theme-dark .form-seed .seed-phrase-form .secured-seed {\n color: #e0e0e0; }\n.theme-gray .form-seed .seed-phrase-form .secured-seed {\n color: #e0e0e0; }\n.theme-white .form-seed .seed-phrase-form .secured-seed {\n color: #a0a5ab; }\n.form-seed .seed-phrase-form .secured-seed .icon {\n margin-right: 1.2rem; }\n.form-seed .seed-phrase-form button {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-top: 3rem;\n margin-bottom: 2rem; }\n.form-seed .seed-phrase-form button .icon {\n margin-right: 1.2rem; }\n.seed-phrase {\n display: flex;\n flex-direction: column;\n width: 100%;\n background-color: transparent !important; }\n.seed-phrase-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%; }\n.theme-dark .seed-phrase-title {\n color: #556576; }\n.theme-gray .seed-phrase-title {\n color: #565c62; }\n.theme-white .seed-phrase-title {\n color: #a0a5ab; }\n.seed-phrase-title .right-part {\n display: inline-flex;\n align-items: center; }\n.seed-phrase-title .right-part .icon {\n cursor: pointer;\n width: 1.7rem;\n height: 1.7rem; }\n.seed-phrase-title .right-part .icon.copy {\n margin-right: 1.2rem;\n -webkit-mask: url('copy.svg') no-repeat center;\n mask: url('copy.svg') no-repeat center; }\n.theme-dark .seed-phrase-title .right-part .icon.copy {\n background-color: #4db1ff; }\n.theme-gray .seed-phrase-title .right-part .icon.copy {\n background-color: #42a5f5; }\n.theme-white .seed-phrase-title .right-part .icon.copy {\n background-color: #2c95f1; }\n.seed-phrase-title .right-part .icon.copy:hover {\n opacity: 0.75; }\n.seed-phrase-title .right-part .icon.copied {\n margin-right: 1.2rem;\n -webkit-mask: url('complete-testwallet.svg') no-repeat center;\n mask: url('complete-testwallet.svg') no-repeat center; }\n.theme-dark .seed-phrase-title .right-part .icon.copied {\n background-color: #4db1ff; }\n.theme-gray .seed-phrase-title .right-part .icon.copied {\n background-color: #42a5f5; }\n.theme-white .seed-phrase-title .right-part .icon.copied {\n background-color: #2c95f1; }\n.seed-phrase-title .right-part .icon.secured, .seed-phrase-title .right-part .icon.unsecured {\n margin-left: 1.2rem; }\n.seed-phrase-title .right-part span {\n font-size: 1.3rem;\n line-height: 2.4rem;\n display: inline-flex;\n align-items: center; }\n.seed-phrase-title .right-part span .icon {\n margin-left: 1.2rem; }\n.seed-phrase-content {\n padding: 1rem 0 1rem;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n margin-bottom: 1rem; }\n.theme-dark .seed-phrase-content {\n border-top: 2px solid #2b3644;\n border-bottom: 2px solid #2b3644; }\n.theme-gray .seed-phrase-content {\n border-top: 2px solid #2f3438;\n border-bottom: 2px solid #2f3438; }\n.theme-white .seed-phrase-content {\n border-top: 2px solid #ebebeb;\n border-bottom: 2px solid #ebebeb; }\n.seed-phrase-content .item {\n display: flex;\n align-items: center;\n padding: 0 2rem;\n width: calc(100% / 7);\n min-height: 35px;\n font-size: 1.3rem; }\n.theme-dark .seed-phrase-content .item {\n color: #e0e0e0; }\n.theme-gray .seed-phrase-content .item {\n color: #e0e0e0; }\n.theme-white .seed-phrase-content .item {\n color: #43454b; }\n.theme-dark .seed-phrase-content .item.dark {\n background-color: #18202a; }\n.theme-gray .seed-phrase-content .item.dark {\n background-color: #292d31; }\n.theme-white .seed-phrase-content .item.dark {\n background-color: #e6e6e6; }\n.seed-phrase-footer {\n text-align: center; }\n.seed-phrase-footer .title {\n font-size: 1.3rem;\n line-height: 2.4rem; }\n.theme-dark .seed-phrase-footer .title {\n color: #e0e0e0; }\n.theme-gray .seed-phrase-footer .title {\n color: #e0e0e0; }\n.theme-white .seed-phrase-footer .title {\n color: #43454b; }\n.icon {\n display: inline-flex;\n width: 1.6rem;\n height: 1.6rem; }\n.icon.secured {\n -webkit-mask: url('secured.svg') no-repeat center;\n mask: url('secured.svg') no-repeat center; }\n.theme-dark .icon.secured {\n background-color: #5cda9d; }\n.theme-gray .icon.secured {\n background-color: #47cf8d; }\n.theme-white .icon.secured {\n background-color: #46c172; }\n.icon.info {\n -webkit-mask: url('info.svg') no-repeat center;\n mask: url('info.svg') no-repeat center; }\n.theme-dark .icon.info {\n background-color: #4db1ff; }\n.theme-gray .icon.info {\n background-color: #42a5f5; }\n.theme-white .icon.info {\n background-color: #2c95f1; }\n.icon.unsecured {\n -webkit-mask: url('unsecured.svg') no-repeat center;\n mask: url('unsecured.svg') no-repeat center; }\n.theme-dark .icon.unsecured {\n background-color: #ff6f00; }\n.theme-gray .icon.unsecured {\n background-color: #ff6f00; }\n.theme-white .icon.unsecured {\n background-color: #ff6f00; }\n.icon.safety {\n -webkit-mask: url('safety.svg') no-repeat center;\n mask: url('safety.svg') no-repeat center; }\n.theme-dark .icon.safety {\n background-color: #111921; }\n.theme-gray .icon.safety {\n background-color: #1a1a1a; }\n.theme-white .icon.safety {\n background-color: #fefefe; }\n.wrap-buttons {\n display: flex; }\n.wrap-buttons .seed-phrase-button {\n margin: 2.8rem 0;\n width: 25%;\n min-width: 1.5rem; }\n.wrap-buttons .copy-button {\n margin: 2.8rem 1rem;\n width: 25%;\n min-width: 1.5rem; }\n.head {\n display: flex;\n align-items: flex-end;\n justify-content: space-between;\n font-size: 1.3rem;\n padding: 0 3rem;\n width: 100%;\n height: 3rem; }\n.theme-dark .head {\n color: #4db1ff; }\n.theme-gray .head {\n color: #42a5f5; }\n.theme-white .head {\n color: #2c95f1; }\n.head .breadcrumbs > span:not(:last-child), .head .breadcrumbs a:not(:last-child) {\n position: relative;\n cursor: pointer;\n margin-right: 20px;\n outline-style: none; }\n.head .breadcrumbs > span:not(:last-child):after, .head .breadcrumbs a:not(:last-child):after {\n content: \"\";\n display: block;\n position: absolute;\n top: 0.5rem;\n right: -1.5rem;\n width: 0.9rem;\n height: 0.9rem;\n -webkit-mask: url('arrow-right.svg') no-repeat center;\n mask: url('arrow-right.svg') no-repeat center;\n -webkit-mask-size: cover;\n mask-size: cover; }\n.theme-dark .head .breadcrumbs > span:not(:last-child):after, .theme-dark .head .breadcrumbs a:not(:last-child):after {\n background-color: #4db1ff; }\n.theme-gray .head .breadcrumbs > span:not(:last-child):after, .theme-gray .head .breadcrumbs a:not(:last-child):after {\n background-color: #42a5f5; }\n.theme-white .head .breadcrumbs > span:not(:last-child):after, .theme-white .head .breadcrumbs a:not(:last-child):after {\n background-color: #2c95f1; }\n.head .back-btn {\n display: flex;\n align-items: center;\n background-color: transparent;\n color: #4db1ff;\n font-size: inherit;\n font-weight: 400;\n line-height: 1.3rem;\n padding: 0;\n height: auto; }\n.head .back-btn .icon {\n margin-right: 0.7rem;\n -webkit-mask: url('back.svg') no-repeat center;\n mask: url('back.svg') no-repeat center;\n width: 0.9rem;\n height: 0.9rem; }\n.theme-dark .head .back-btn .icon {\n background-color: #4db1ff; }\n.theme-gray .head .back-btn .icon {\n background-color: #42a5f5; }\n.theme-white .head .back-btn .icon {\n background-color: #2c95f1; }\n.scrolled-content::-webkit-scrollbar {\n background-color: transparent;\n cursor: default;\n width: 1rem;\n height: 1rem; }\n.scrolled-content::-webkit-scrollbar-track {\n background: transparent; }\n.scrolled-content::-webkit-scrollbar-thumb {\n background-color: #556576;\n background-clip: padding-box;\n border: 0.25rem solid transparent;\n border-radius: 0.5rem; }\n.scrolled-content::-webkit-scrollbar-thumb:hover {\n background-color: #556576; }\ntable {\n font-size: 1.3rem;\n width: 100%; }\ntable thead {\n text-align: left; }\n.theme-dark table thead {\n color: #556576; }\n.theme-gray table thead {\n color: #565c62; }\n.theme-white table thead {\n color: #a0a5ab; }\ntable thead tr {\n height: 4rem; }\ntable thead tr th {\n padding: 1rem;\n vertical-align: bottom; }\ntable thead tr th:first-child {\n padding-left: 3rem; }\ntable thead tr th:last-child {\n padding-right: 3rem; }\ntable tbody {\n text-align: left; }\n.theme-dark table tbody {\n color: #e0e0e0; }\n.theme-gray table tbody {\n color: #e0e0e0; }\n.theme-white table tbody {\n color: #43454b; }\ntable tbody tr {\n height: 3.5rem; }\n.theme-dark table tbody tr:nth-child(odd) {\n background-color: #18202a; }\n.theme-gray table tbody tr:nth-child(odd) {\n background-color: #25292d; }\n.theme-white table tbody tr:nth-child(odd) {\n background-color: #ffffff; }\ntable tbody tr td {\n line-height: 1.7rem;\n padding: 0 1rem;\n vertical-align: middle;\n white-space: nowrap;\n max-width: 20rem; }\ntable tbody tr td:first-child {\n padding-left: 3rem; }\ntable tbody tr td:last-child {\n padding-right: 3rem; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-Light.ttf');\n font-weight: 300; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-Regular.ttf');\n font-weight: 400; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-SemiBold.ttf');\n font-weight: 600; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-Bold.ttf');\n font-weight: 700; }\n@font-face {\n font-family: OpenSans;\n src: url('OpenSans-ExtraBold.ttf');\n font-weight: 800; }\nhtml {\n font-family: OpenSans, sans-serif;\n font-size: 10px; }\nbody {\n font-family: OpenSans, sans-serif;\n font-size: 1.6rem;\n width: 100vw;\n height: 100vh; }\nbody.theme-dark {\n background: #131921 url('background-dark.png') no-repeat center;\n background-size: cover; }\nbody.theme-gray {\n background: #101417 url('background-gray.png') no-repeat center;\n background-size: cover; }\nbody.theme-white {\n background: #eeeeee url('background-white.png') no-repeat center;\n background-size: cover; }\nbody app-root {\n display: flex;\n width: 100%;\n height: 100%; }\n.update-tooltip .tooltip-inner .icon {\n -webkit-mask: url('update-alert.svg') no-repeat center;\n mask: url('update-alert.svg') no-repeat center; }\n\r\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxiYXNlXFxfbWl4aW5zLnNjc3MiLCJzcmMvc3R5bGVzLnNjc3MiLCJub2RlX21vZHVsZXMvQG5nLXNlbGVjdC9uZy1zZWxlY3QvdGhlbWVzL2RlZmF1bHQudGhlbWUuY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGJhc2VcXF9udWxsLnNjc3MiLCJzcmMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFzc2V0c1xcc2Nzc1xcYmFzZVxcX2Jhc2Uuc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxiYXNlXFxfdGhlbWUuc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxsYXlvdXRcXF9tYWluLnNjc3MiLCJzcmMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFzc2V0c1xcc2Nzc1xcbGF5b3V0XFxfc2lkZWJhci5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGxheW91dFxcX3N0YXR1cy5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGxheW91dFxcX3dhbGxldC5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXGxheW91dFxcX2NvbnRhY3Quc2NzcyIsInNyYy9EOlxcUHJvamVjdFxcV09SS19ORVdcXHphbm9cXHNyY1xcZ3VpXFxxdC1kYWVtb25cXGh0bWxfc291cmNlL3NyY1xcYXNzZXRzXFxzY3NzXFxsYXlvdXRcXF9zZWVkLXBocmFzZS5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXG1vZHVsZXNcXF9oZWFkLnNjc3MiLCJzcmMvRDpcXFByb2plY3RcXFdPUktfTkVXXFx6YW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFzc2V0c1xcc2Nzc1xcbW9kdWxlc1xcX3Njcm9sbC5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxhc3NldHNcXHNjc3NcXG1vZHVsZXNcXF90YWJsZS5zY3NzIiwic3JjL0Q6XFxQcm9qZWN0XFxXT1JLX05FV1xcemFub1xcc3JjXFxndWlcXHF0LWRhZW1vblxcaHRtbF9zb3VyY2Uvc3JjXFxzdHlsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4RUE7O0NDNUVDO0FDRkQsaURBQWlELGVBQWUsQ0FBQyxpQ0FBaUM7QUFBQyx1REFBdUQsZUFBZTtBQUFDLDJEQUEyRCxRQUFRLENBQUMseUNBQXlDLENBQUMsc0JBQXNCO0FBQUMsaUVBQWlFLHlDQUF5QztBQUFDLGtFQUFrRSw0QkFBNEIsQ0FBQywyQkFBMkI7QUFBQywrREFBK0QseUJBQXlCLENBQUMsd0JBQXdCO0FBQUMseUVBQXlF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QVk7RUFDWixpQ0FBaUM7RUFDakMsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsZUFBZTtFQUNmLGNBQWMsRUFBQTtBSitEWjtJSXpERSx5QkNSb0M7SURTcEMsY0NsQjJCLEVBQUE7QUwwRTdCO0lJekRFLHlCQ29Eb0M7SURuRHBDLGNDMEMyQixFQUFBO0FMYzdCO0lJekRFLHlCQ2dIb0M7SUQvR3BDLGNDc0cyQixFQUFBO0FMOUM3QjtJSWxESSx5QkNkNkIsRUFBQTtBTGdFakM7SUlsREkseUJDOEM2QixFQUFBO0FMSWpDO0lJbERJLHlCQzBHNkIsRUFBQTtBTHhEakM7SUkzQ0kseUJDcEI2QixFQUFBO0FMK0RqQztJSTNDSSx5QkN3QzZCLEVBQUE7QUxHakM7SUkzQ0kseUJDb0c2QixFQUFBO0FMekRqQztJSW5DRSx5QkNqQ2dDO0lEa0NoQyxjQ3hDMkIsRUFBQTtBTDBFN0I7SUluQ0UseUJDMkJnQztJRDFCaEMsY0NvQjJCLEVBQUE7QUxjN0I7SUluQ0UseUJDdUZnQztJRHRGaEMsY0NnRjJCLEVBQUE7QUw5QzdCO0lJNUJJLHlCQ3ZDeUIsRUFBQTtBTG1FN0I7SUk1QkkseUJDcUJ5QixFQUFBO0FMTzdCO0lJNUJJLHlCQ2lGeUIsRUFBQTtBTHJEN0I7SUlyQkkseUJDN0N5QixFQUFBO0FMa0U3QjtJSXJCSSx5QkNleUIsRUFBQTtBTE03QjtJSXJCSSx5QkMyRXlCLEVBQUE7QUx0RDdCO0lJYkUseUJDakRpQztJRGtEakMsY0M5RDJCLEVBQUE7QUwwRTdCO0lJYkUseUJDV2lDO0lEVmpDLGNDRjJCLEVBQUE7QUxjN0I7SUliRSx5QkN1RWlDO0lEdEVqQyxjQzBEMkIsRUFBQTtBTDlDN0I7SUlOSSx5QkN2RDBCLEVBQUE7QUw2RDlCO0lJTkkseUJDSzBCLEVBQUE7QUxDOUI7SUlOSSx5QkNpRTBCLEVBQUE7QUwzRDlCO0lJQ0kseUJDN0QwQixFQUFBO0FMNEQ5QjtJSUNJLHlCQ0QwQixFQUFBO0FMQTlCO0lJQ0kseUJDMkQwQixFQUFBO0FMNUQ5QjtJSVNFLHlCQ3BFcUM7SURx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d0V0QjtNSW1QSSw0QkMvUGtCLEVBQUE7QUxZdEI7TUltUEksNEJDbk1rQixFQUFBO0FENkoxQjtFQThDTSwwQ0FBMEQsRUFBQTtBSjNQNUQ7SUk4UEkseUJDdFVrQixFQUFBO0FMd0V0QjtJSThQSSx5QkMxUWtCLEVBQUE7QUxZdEI7SUk4UEkseUJDOU1rQixFQUFBO0FMaER0QjtFSXVRQSx5QkMzVDhCLEVBQUE7QUxvRDlCO0VJdVFBLHlCQy9QOEIsRUFBQTtBTFI5QjtFSXVRQSx5QkNuTThCLEVBQUE7QUxwRTlCO0VJK1FJLHlCQ3ZWa0IsRUFBQTtBTHdFdEI7RUkrUUkseUJDM1JrQixFQUFBO0FMWXRCO0VJK1FJLHlCQy9Oa0IsRUFBQTtBTGhEdEI7RUlzUkkseUJDL1ZzQixFQUFBO0FMeUUxQjtFSXNSSSx5QkNuU3NCLEVBQUE7QUxhMUI7RUlzUkkseUJDdk9zQixFQUFBO0FENk85QjtFQUNFLGtCQUFrQixFQUFBO0FKN1JoQjtJSWdTQSxtQkNoVStCO0lEaVUvQix1Q0M1VDBDO0lENlQxQyxjQzdXc0IsRUFBQTtBTDJFdEI7SUlnU0EsbUJDcFErQjtJRHFRL0IsdUNDaFEwQztJRGlRMUMsY0NqVHNCLEVBQUE7QUxldEI7SUlnU0EsbUJDeE0rQjtJRHlNL0IsNkNDcE1nRDtJRHFNaEQsY0NyUHNCLEVBQUE7QUQrTzFCO0lBVUksaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixxQkFBcUIsRUFBQTtBQVp6QjtJQWdCSSxpQkFBaUIsRUFBQTtBQWhCckI7TUFtQk0sV0FBVztNQUNYLGtCQUFrQjtNQUNsQixhQUFhO01BQ2Isd0JBQXdCO01BQ3hCLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTtBSnBUckI7UUl1VEkseURBQWdGLEVBQUE7QUp2VHBGO1FJdVRJLHlEQUFnRixFQUFBO0FKdlRwRjtRSXVUSSx5REFBZ0YsRUFBQTtBQTNCeEY7SUFpQ0ksaUJBQWlCLEVBQUE7QUFqQ3JCO01Bb0NNLFdBQVc7TUFDWCxrQkFBa0I7TUFDbEIsYUFBYTtNQUNiLFlBQVk7TUFDWixvQkFBb0I7TUFDcEIsbUJB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cEI7RUFHSSxjQUFjO0VBQ2Qsc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixpQkFBaUIsRUFBQTtBQUlyQjtFQUNFLGVBQWUsRUFBQTtBSnhnQmI7SUkyZ0JBLG1CQzNpQitCO0lENGlCL0IsdUNDdmlCMEM7SUR3aUIxQyxjQ3hsQnNCLEVBQUE7QUwyRXRCO0lJMmdCQSxtQkMvZStCO0lEZ2YvQix1Q0MzZTBDO0lENGUxQyxjQzVoQnNCLEVBQUE7QUxldEI7SUkyZ0JBLG1CQ25iK0I7SURvYi9CLDZDQy9hZ0Q7SURnYmhELGNDaGVzQixFQUFBO0FMN0N0QjtJSW1oQkUsbUJDampCc0M7SURrakJ0QyxjQ3JrQjJCLEVBQUE7QUxpRDdCO0lJbWhCRSxtQkNyZnNDO0lEc2Z0QyxjQ3pnQjJCLEVBQUE7QUxYN0I7SUltaEJFLG1CQ3pic0M7SUQwYnRDLGNDN2MyQixFQUFBO0FMdkU3QjtJSTRoQk0scURDMWpCa0MsRUFBQTtBTDhCeEM7SUk0aEJNLHFEQzlma0MsRUFBQTtBTDlCeEM7SUk0aEJNLHFEQ2xja0MsRUFBQTtBTDFGeEM7SUlzaUJNLHFEQUFxSCxFQUFBO0FKdGlCM0g7SUlzaUJNLHFEQUFxSCxFQUFBO0FKdGlCM0g7SUlzaUJNLHFEQUFxSCxFQUFBO0FBL0IvSDtJQXNDSSxlQUFlLEVBQUE7QUo3aUJmO01JZ2pCRSxtQkM1a0JxQztNRDZrQnJDLGNDbG1CMkIsRUFBQTtBTGlEN0I7TUlnakJFLG1CQ2hoQnFDO01EaWhCckMsY0N0aUIyQixFQUFBO0FMWDdCO01JZ2pCRSxtQkNwZHFDO01EcWRyQyxjQzFlMkIsRUFBQTtBRGdjakM7TUE4Q00sYUFBYTtNQUNiLHNCQUFzQjtNQUN0QixtQkFBbUIsRUFBQTtBSnZqQnJCO01JK2pCTSxxREMzbEJpQyxFQUFBO0FMNEJ2QztNSStqQk0scURDL2hCaUMsRUFBQTtBTGhDdkM7TUkrakJNLHFEQ25laUMsRUFBQTtBTDVGdkM7TUl5a0JNLHFEQUFtSCxFQUFBO0FKemtCekg7TUl5a0JNLHFEQUFtSCxFQUFBO0FKemtCekg7TUl5a0JNLHFEQUFtSCxFQUFBO0FBbEU3SDtJQXlFSSxpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLHFCQUFxQixFQUFBO0FBM0V6QjtNQThFTSxpQkFBaUI7TUFDakIsbUJBQW1CLEVBQUE7QUp0bEJyQjtRSXlsQkksY0NqcUJrQixFQUFBO0FMd0V0QjtRSXlsQkksY0NybUJrQixFQUFBO0FMWXRCO1FJeWxCSSxjQ3ppQmtCLEVBQUE7QUR1ZDFCO01BdUZNLGlCQUFpQjtNQUNqQixtQkFBbUIsRUFBQTtBSi9sQnJCO1FJa21CSSxjQ2pvQjhCLEVBQUE7QUwrQmxDO1FJa21CSSxjQ3JrQjhCLEVBQUE7QUw3QmxDO1FJa21CSSxjQ3pnQjhCLEVBQUE7QUQ4YXRDO01BZ0dNLGlCQUFpQjtNQUNqQixtQkFBbUI7TUFDbkIsa0JBQWtCLEVBQUE7QUFsR3hCO01Bc0dNLGlCQUFpQjtNQUNqQixtQkFBbUIsRUFBQTtBSjltQnJCO1FJaW5CSSxjQ2hwQjhCLEVBQUE7QUwrQmxDO1FJaW5CSSxjQ3BsQjhCLEVBQUE7QUw3QmxDO1FJaW5CSSxjQ3hoQjhCLEVBQUE7QUQ4YXRDO01BK0dNLGdCQUFnQjtNQUNoQixXQUFXO01BQ1gsWUFBWSxFQUFBO0FKeG5CZDtRSTJuQkkseUJDeHBCNkIsRUFBQTtBTDZCakM7UUkybkJJLHlCQzVsQjZCLEVBQUE7QUwvQmpDO1FJMm5CSSx5QkNoaUI2QixFQUFBO0FENGFyQztJQTBISSxvQkFBb0IsRUFBQTtBQTFIeEI7TUE2SE0sV0FBVztNQUNYLGtCQUFrQjtNQUNsQixjQUFjO01BQ2QsWUFBWTtNQUNaLG9CQUFvQjtNQUNwQixtQkFBbUIsRUFBQTtBSnpvQnJCO1FJNG9CSSxxREM1cUIyQixFQUFBO0FMZ0MvQjtRSTRvQkkscURDaG5CMkIsRUFBQTtBTDVCL0I7UUk0b0JJLHFEQ3BqQjJCLEVBQUE7QUQrYW5DO0lBMklJLG1CQUFtQixFQUFBO0FBM0l2QjtNQThJTSxXQUFXO01BQ1gsa0JBQWtCO01BQ2xCLGNBQWM7TUFDZCxXQUFXO01BQ1gsb0JBQW9CO01BQ3BCLG1CQUFtQixFQUFBO0FKMXBCckI7UUk2cEJJLHFEQUFtRyxFQUFBO0FKN3BCdkc7UUk2cEJJLHFEQUFtRyxFQUFBO0FKN3BCdkc7UUk2cEJJLHFEQUFtRyxFQUFBO0FBTTNHO0VBR0ksWUFBWTtFQUNaLFVBQVUsRUFBQTtBSnZxQlY7SUkwcUJFLHlCQzVzQmtDO0lENnNCbEMsdUNDdHNCd0MsRUFBQTtBTDJCMUM7SUkwcUJFLHlCQ2hwQmtDO0lEaXBCbEMsdUNDMW9Cd0MsRUFBQTtBTGpDMUM7SUkwcUJFLHlCQ3BsQmtDO0lEcWxCbEMsNkNDOWtCOEMsRUFBQTtBRHNrQnBEO0VBYUksY0FBYztFQUNkLGlDQUFpQztFQUNqQyxpQkFBaUI7RUFDakIseUJBQXlCO0VBQ3pCLGtCQUFrQixFQUFBO0FBakJ0QjtFQXFCSSxjQUFjO0VBQ2Qsa0JBQWtCLEVBQUE7QUp6ckJsQjtJSTRyQkUsY0N2d0JvQixFQUFBO0FMMkV0QjtJSTRyQkUsY0Mzc0JvQixFQUFBO0FMZXRCO0lJNHJCRSxjQy9vQm9CLEVBQUE7QUw3Q3RCO0lJa3NCSSx5QkNudUIyQjtJRG91QjNCLGNDOXdCa0IsRUFBQTtBTDJFdEI7SUlrc0JJLHlCQ3ZxQjJCO0lEd3FCM0IsY0NsdEJrQixFQUFBO0FMZXRCO0lJa3NCSSx5QkMzbUIyQjtJRDRtQjNCLGNDdHBCa0IsRUFBQTtBRDRwQjFCO0VBR0ksV0FBVyxFQUFBO0FBSGY7SUFTWSxtQkFBbUIsRUFBQTtBQVQvQjtJQWdCTSxZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsYUFBYTtJQUNiLGVBQWU7SUFDZixjQUFjLEVBQUE7QUovdEJoQjtNSWt1QkkseUJDenhCeUI7TUQweEJ6QixjQzl5QmtCLEVBQUE7QUwyRXRCO01Ja3VCSSx5QkM3dEJ5QjtNRDh0QnpCLGNDbHZCa0IsRUFBQTtBTGV0QjtNSWt1QkkseUJDanFCeUI7TURrcUJ6QixjQ3RyQmtCLEVBQUE7QUQ0cEIxQjtNQThCUSxVQUFVLEVBQUE7QUE5QmxCO1FBaUNVLFNBQVMsRUFBQTtBQWpDbkI7SUF1Q00sWUFBWSxFQUFBO0FKaHZCZDtNSW12QkkseUJDMXlCeUIsRUFBQTtBTHVEN0I7TUltdkJJLHlCQzl1QnlCLEVBQUE7QUxMN0I7TUltdkJJLHlCQ2xyQnlCLEVBQUE7QUR3b0JqQztNQWdEVSxpQkFBaUI7TUFDakIsYUFBYSxFQUFBO0FKMXZCbkI7UUk2dkJRLHlCQ3B6QnFCO1FEcXpCckIsY0N6MEJjLEVBQUE7QUwyRXRCO1FJNnZCUSx5QkN4dkJxQjtRRHl2QnJCLGNDN3dCYyxFQUFBO0FMZXRCO1FJNnZCUSx5QkM1ckJxQjtRRDZyQnJCLGNDanRCYyxFQUFBO0FMN0N0QjtRSW93QlUsdUNDMXpCNkI7UUQyekI3QixjQ2gxQlksRUFBQTtBTDJFdEI7UUlvd0JVLHVDQzl2QjZCO1FEK3ZCN0IsY0NweEJZLEVBQUE7QUxldEI7UUlvd0JVLDBDQ2xzQmdDO1FEbXNCaEMsY0N4dEJZLEVBQUE7QUw3Q3RCO1FJNHdCVSx1Q0NqMEJnQztRRGswQmhDLGNDeDFCWSxFQUFBO0FMMkV0QjtRSTR3QlUsdUNDcndCZ0M7UURzd0JoQyxjQzV4QlksRUFBQTtBTGV0QjtRSTR3QlUsMENDenNCbUM7UUQwc0JuQyxjQ2h1QlksRUFBQTtBRDRwQjFCO01BMEVVLDZCQUE2QjtNQUM3QixlQUFlO01BQ2YsV0FBVztNQUNYLFlBQVksRUFBQTtBQTdFdEI7TUFpRlUsdUJBQXVCLEVBQUE7QUFqRmpDO01BcUZVLHlCQUF5QjtNQUN6Qiw0QkFBNEI7TUFDNUIsaUNBQWlDO01BQ2pDLHFCQUFxQixFQUFBO0FBeEYvQjtNQTRGVSx5QkFBeUIsRUFBQTtBSnJ5Qi9CO0VJaXpCRSxzQ0MzMEIwRDtFRDQwQjFELGNDNzNCb0IsRUFBQTtBTDJFdEI7RUlpekJFLHNDQy93QjBEO0VEZ3hCMUQsY0NqMEJvQixFQUFBO0FMZXRCO0VJaXpCRSx1Q0NudEIyRDtFRG90QjNELGNDcndCb0IsRUFBQTtBTDdDdEI7RUkwekJNLHlCQy8zQmUsRUFBQTtBTHFFckI7RUkwekJNLHlCQ24wQmUsRUFBQTtBTFNyQjtFSTB6Qk0seUJDdndCZSxFQUFBO0FMbkRyQjtFSWkwQk0seUJDeDRCaUIsRUFBQTtBTHVFdkI7RUlpMEJNLHlCQzUwQmlCLEVBQUE7QUxXdkI7RUlpMEJNLHlCQ2h4QmlCLEVBQUE7QUxqRHZCO0VJdzBCTSx5QkNoNUJnQixFQUFBO0FMd0V0QjtFSXcwQk0seUJDcDFCZ0IsRUFBQTtBTFl0QjtFSXcwQk0seUJDeHhCZ0IsRUFBQTtBTGhEdEI7RUlnMUJJLHlCQ3g1QmtCO0VEeTVCbEIsY0MzNUJ5QixFQUFBO0FMMEU3QjtFSWcxQkkseUJDNTFCa0I7RUQ2MUJsQixjQy8xQnlCLEVBQUE7QUxjN0I7RUlnMUJJLHlCQ2h5QmtCO0VEaXlCbEIsY0NueUJ5QixFQUFBO0FMOUM3QjtFSTAxQk0seUJDbjNCbUIsRUFBQTtBTHlCekI7RUkwMUJNLHlCQ3Z6Qm1CLEVBQUE7QUxuQ3pCO0VJMDFCTSx5QkMzdkJtQixFQUFBO0FML0Z6QjtFSXMyQkUsZ0NDOTVCbUMsRUFBQTtBTHdEckM7RUlzMkJFLGdDQ2wyQm1DLEVBQUE7QUxKckM7RUlzMkJFLGdDQ3R5Qm1DLEVBQUE7QUxoRXJDO0VJZzNCUSxjQ3o3QmtCLEVBQUE7QUx5RTFCO0VJZzNCUSxjQzczQmtCLEVBQUE7QUxhMUI7RUlnM0JRLGNDajBCa0IsRUFBQTtBTC9DMUI7RUl1M0JRLGNDbDhCYyxFQUFBO0FMMkV0QjtFSXUzQlEsY0N0NEJjLEVBQUE7QUxldEI7RUl1M0JRLGNDMTBCYyxFQUFBO0FMN0N0QjtFSTgzQlEsY0N0OEJjLEVBQUE7QUx3RXRCO0VJODNCUSxjQzE0QmMsRUFBQTtBTFl0QjtFSTgzQlEsY0M5MEJjLEVBQUE7QUxoRHRCO0VJMjRCRSxjQ3Q5Qm9CLEVBQUE7QUwyRXRCO0VJMjRCRSxjQzE1Qm9CLEVBQUE7QUxldEI7RUkyNEJFLGNDOTFCb0IsRUFBQTtBTDdDdEI7RUlpNUJJLHlCQ3I3QitCLEVBQUE7QUxvQ25DO0VJaTVCSSx5QkN6M0IrQixFQUFBO0FMeEJuQztFSWk1QkkseUJDN3pCK0IsRUFBQTtBTHBGbkM7RUl1NUJNLHlCQzE3QmlDLEVBQUE7QUxtQ3ZDO0VJdTVCTSx5QkM5M0JpQyxFQUFBO0FMekJ2QztFSXU1Qk0seUJDbDBCaUMsRUFBQTtBTHJGdkM7RUltNkJFLHNDQzc3QjBEO0VEODdCMUQsY0MvK0JvQixFQUFBO0FMMkV0QjtFSW02QkUsc0NDajRCMEQ7RURrNEIxRCxjQ243Qm9CLEVBQUE7QUxldEI7RUltNkJFLHVDQ3IwQjJEO0VEczBCM0QsY0N2M0JvQixFQUFBO0FMN0N0QjtFSTY2QkUsc0NDdjhCMEQ7RUR3OEIxRCxjQ3ovQm9CLEVBQUE7QUwyRXRCO0VJNjZCRSxzQ0MzNEIwRDtFRDQ0QjFELGNDNzdCb0IsRUFBQTtBTGV0QjtFSTY2QkUsdUNDLzBCMkQ7RURnMUIzRCxjQ2o0Qm9CLEVBQUE7QUw3Q3RCO0VJbzdCSSxtQ0M1K0JpQyxFQUFBO0FMd0RyQztFSW83QkksbUNDaDdCaUMsRUFBQTtBTEpyQztFSW83QkksbUNDcDNCaUMsRUFBQTtBTGhFckM7RUk0N0JJLHlCQ3BnQ2tCO0VEcWdDbEIsY0N2Z0N5QixFQUFBO0FMMEU3QjtFSTQ3QkkseUJDeDhCa0I7RUR5OEJsQixjQzM4QnlCLEVBQUE7QUxjN0I7RUk0N0JJLHlCQzU0QmtCO0VENjRCbEIsY0MvNEJ5QixFQUFBO0FDaklqQztFQUNFLGNBQWM7RUFDZCxhQUFhO0VBQ2IsZ0JBQWdCLEVBQUE7QUFIbEI7SUFNSSxrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLGdCQUFnQixFQUFBO0FOMkVoQjtNTXhFRSx1Q0RKMkM7TUNLM0MsY0RKb0IsRUFBQTtBTDJFdEI7TU14RUUsdUNEd0QyQztNQ3ZEM0MsY0R3RG9CLEVBQUE7QUxldEI7TU14RUUsMENEb0g4QztNQ25IOUMsY0RvSG9CLEVBQUE7QUNoSTFCO01BZ0JNLGtCQUFrQjtNQUNsQixNQUFNO01BQ04sT0FBTyxFQUFBO0FOaUVUO0VNbkRNLGNEckJnQixFQUFBO0FMd0V0QjtFTW5ETSxjRHVDZ0IsRUFBQTtBTFl0QjtFTW5ETSxjRG1HZ0IsRUFBQTtBTGhEdEI7RU03Q1EseUJEM0JjLEVBQUE7QUx3RXRCO0VNN0NRLHlCRGlDYyxFQUFBO0FMWXRCO0VNN0NRLHlCRDZGYyxFQUFBO0FMaER0QjtFTWhDRSx5QkR2QjJCO0VDd0IzQixjRDVDb0IsRUFBQTtBTDJFdEI7RU1oQ0UseUJEcUMyQjtFQ3BDM0IsY0RnQm9CLEVBQUE7QUxldEI7RU1oQ0UseUJEaUcyQjtFQ2hHM0IsY0Q0RW9CLEVBQUE7QUw3Q3RCO0VNckJFLHlCRGxDMkIsRUFBQTtBTHVEN0I7RU1yQkUseUJEMEIyQixFQUFBO0FMTDdCO0VNckJFLHlCRHNGMkIsRUFBQTtBQ2pGakM7RUFHSSxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsc0JBQXNCLEVBQUE7QU5TdEI7SU1KSSxjRHJFc0IsRUFBQTtBTHlFMUI7SU1KSSxjRFRzQixFQUFBO0FMYTFCO0lNSkksY0RtRHNCLEVBQUE7QUwvQzFCO0lNS00sdUNEOUMyQyxFQUFBO0FMeUNqRDtJTUtNLHVDRGMyQyxFQUFBO0FMbkJqRDtJTUtNLDBDRDBFOEMsRUFBQTtBTC9FcEQ7SU1XUSxjRHBGa0IsRUFBQTtBTHlFMUI7SU1XUSxjRHhCa0IsRUFBQTtBTGExQjtJTVdRLGNEb0NrQixFQUFBO0FML0MxQjtJTWtCUSx5QkQxRmMsRUFBQTtBTHdFdEI7SU1rQlEseUJEOUJjLEVBQUE7QUxZdEI7SU1rQlEseUJEOEJjLEVBQUE7QUxoRHRCO0lNd0JVLGNEaEdZLEVBQUE7QUx3RXRCO0lNd0JVLGNEcENZLEVBQUE7QUxZdEI7SU13QlUsY0R3QlksRUFBQTtBQ2YxQjtFQUNFLGtCQUFrQixFQUFBO0FObENoQjtFT2hGQSx5QkZBMkMsRUFBQTtBTGdGM0M7RU9oRkEseUJGNEQyQyxFQUFBO0FMb0IzQztFT2hGQSx1QkZ3SDhDLEVBQUE7QUx4QzlDO0VPdEVNLGNGTGdCLEVBQUE7QUwyRXRCO0VPdEVNLGNGdURnQixFQUFBO0FMZXRCO0VPdEVNLGNGbUhnQixFQUFBO0FMN0N0QjtFTy9ETSxjRlRnQixFQUFBO0FMd0V0QjtFTy9ETSxjRm1EZ0IsRUFBQTtBTFl0QjtFTy9ETSxjRitHZ0IsRUFBQTtBTGhEdEI7RU9yRE0sNkJBQTZCO0VBQzdCLGNGdkJnQixFQUFBO0FMMkV0QjtFT3JETSw2QkFBNkI7RUFDN0IsY0ZxQ2dCLEVBQUE7QUxldEI7RU9yRE0sNkJBQTZCO0VBQzdCLGNGaUdnQixFQUFBO0FMN0N0QjtFTzlDUSx5QkYxQmMsRUFBQTtBTHdFdEI7RU85Q1EseUJGa0NjLEVBQUE7QUxZdEI7RU85Q1EseUJGOEZjLEVBQUE7QUxoRHRCO0VPckNVLGNGcENnQixFQUFBO0FMeUUxQjtFT3JDVSxjRndCZ0IsRUFBQTtBTGExQjtFT3JDVSxjRm9GZ0IsRUFBQTtBTC9DMUI7RU85QlUseUJGMUNZLEVBQUE7QUx3RXRCO0VPOUJVLHlCRmtCWSxFQUFBO0FMWXRCO0VPOUJVLHlCRjhFWSxFQUFBO0FMaER0QjtFT3ZCVSx5QkY3Q3dCO0VFOEN4QixjRnBEbUIsRUFBQTtBTDBFN0I7RU92QlUseUJGZXdCO0VFZHhCLGNGUW1CLEVBQUE7QUxjN0I7RU92QlUseUJGMkV3QjtFRTFFeEIsY0ZvRW1CLEVBQUE7QUw5QzdCO0VPYlkseUJGdkJ1QixFQUFBO0FMb0NuQztFT2JZLHlCRnFDdUIsRUFBQTtBTHhCbkM7RU9iWSx5QkZpR3VCLEVBQUE7QUxwRm5DO0VPUGMseUJGakVRLEVBQUE7QUx3RXRCO0VPUGMseUJGTFEsRUFBQTtBTFl0QjtFT1BjLHlCRnVEUSxFQUFBO0FMaER0QjtFT0VVLGNGM0VnQixFQUFBO0FMeUUxQjtFT0VVLGNGZmdCLEVBQUE7QUxhMUI7RU9FVSxjRjZDZ0IsRUFBQTtBTC9DMUI7RU9VUSx1Q0Y3RHFDO0VFOERyQyxjRjVEcUIsRUFBQTtBTGlEN0I7RU9VUSx1Q0ZEcUM7RUVFckMsY0ZBcUIsRUFBQTtBTFg3QjtFT1VRLHlCRjJEcUM7RUUxRHJDLGNGNERxQixFQUFBO0FMdkU3QjtFT21CWSxjRmhFcUIsRUFBQTtBTDZDakM7RU9tQlksY0ZKcUIsRUFBQTtBTGZqQztFT21CWSxjRndEcUIsRUFBQTtBTDNFakM7RU8wQlkseUJGcEU0QjtFRXFFNUIsY0Z2RXNCLEVBQUE7QUw0Q2xDO0VPMEJZLHlCRlI0QjtFRVM1QixjRlhzQixFQUFBO0FMaEJsQztFTzBCWSx5QkZvRDRCO0VFbkQ1QixjRmlEc0IsRUFBQTtBTDVFbEM7RU9rQ1kseUJGN0V5QjtFRThFekIsY0Y5R1UsRUFBQTtBTDJFdEI7RU9rQ1kseUJGakJ5QjtFRWtCekIsY0ZsRFUsRUFBQTtBTGV0QjtFT2tDWSx5QkYyQ3lCO0VFMUN6QixjRlVVLEVBQUE7QUw3Q3RCO0VPMENZLGNGdkZxQixFQUFBO0FMNkNqQztFTzBDWSxjRjNCcUIsRUFBQTtBTGZqQztFTzBDWSxjRmlDcUIsRUFBQTtBTDNFakM7RU9tRFEsdUNGckcwQyxFQUFBO0FMa0RsRDtFT21EUSx1Q0Z6QzBDLEVBQUE7QUxWbEQ7RU9tRFEsMENGbUI2QyxFQUFBO0FMdEVyRDtFTzRESSxvRUFBMkYsRUFBQTtBUDVEL0Y7RU80REksb0VBQTJGLEVBQUE7QVA1RC9GO0VPNERJLGtFQUEyRixFQUFBO0FQNUQvRjtFT29FRSxtQ0ZuSnlCLEVBQUE7QUwrRTNCO0VPb0VFLG1DRnZGeUIsRUFBQTtBTG1CM0I7RU9vRUUsbUNGM0J5QixFQUFBO0FMekMzQjtFTzRFTSxjRnZKZ0IsRUFBQTtBTDJFdEI7RU80RU0sY0YzRmdCLEVBQUE7QUxldEI7RU80RU0sY0YvQmdCLEVBQUE7QUw3Q3RCO0VPa0ZRLHlCRjFKYyxFQUFBO0FMd0V0QjtFT2tGUSx5QkY5RmMsRUFBQTtBTFl0QjtFT2tGUSx5QkZsQ2MsRUFBQTtBTGhEdEI7RU80RlEsa0RBQTBEO0VBQzFELHlCQUE2QyxFQUFBO0FQN0ZyRDtFTzRGUSxrREFBMEQ7RUFDMUQseUJBQTZDLEVBQUE7QVA3RnJEO0VPNEZRLG9DQUEwRDtFQUMxRCx5QkFBNkMsRUFBQTtBUDdGckQ7RU9tR1Usb0NBQW1FLEVBQUE7QVBuRzdFO0VPbUdVLG9DQUFtRSxFQUFBO0FQbkc3RTtFT21HVSxvQ0FBbUUsRUFBQTtBQ3RMakY7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLDJCQUEyQjtFQUMzQixjQUFjO0VBQ2QsaUJBQWlCLEVBQUE7QVI4RWY7SVE1RUEsY0hHMEIsRUFBQTtBTHlFMUI7SVE1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LHlCSG5NZSxFQUFBO0FMcUVyQjtNUThITSx5Qkh2SWUsRUFBQTtBTFNyQjtNUThITSx5QkgzRWUsRUFBQTtBTG5EckI7TVFxSU0seUJIM01rQixFQUFBO0FMc0V4QjtNUXFJTSx5QkgvSWtCLEVBQUE7QUxVeEI7TVFxSU0seUJIbkZrQixFQUFBO0FHMkY1QjtFQUNFO0lBQ0UsK0JBQStCLEVBQUE7RUFFakM7SUFDRSw4QkFBOEIsRUFBQSxFQUFBO0FBTGxDO0VBQ0U7SUFDRSwrQkFBK0IsRUFBQTtFQUVqQztJQUNFLDhCQUE4QixFQUFBLEVBQUE7QVJsSjlCO0VTaEZBLGNKS3NCLEVBQUE7QUwyRXRCO0VTaEZBLGNKaUVzQixFQUFBO0FMZXRCO0VTaEZBLGNKNkhzQixFQUFBO0FMN0N0QjtFU3hFSSxjSkhrQixFQUFBO0FMMkV0QjtFU3hFSSxjSnlEa0IsRUFBQTtBTGV0QjtFU3hFSSxjSnFIa0IsRUFBQTtBTDdDdEI7RVNsRU0seUJKTmdCLEVBQUE7QUx3RXRCO0VTbEVNLHlCSnNEZ0IsRUFBQTtBTFl0QjtFU2xFTSx5QkprSGdCLEVBQUE7QUluSTFCO0VBcUJRLHdDQUF3QyxFQUFBO0FUOEQ1QztJUzNEUSx5QkpjeUIsRUFBQTtBTDZDakM7SVMzRFEseUJKMEV5QixFQUFBO0FMZmpDO0lTM0RRLHlCSnNJeUIsRUFBQTtBTDNFakM7RVNoRE0seUJKeEJnQixFQUFBO0FMd0V0QjtFU2hETSx5QkpvQ2dCLEVBQUE7QUxZdEI7RVNoRE0seUJKZ0dnQixFQUFBO0FMaER0QjtFU3ZDRSxjSmpDb0IsRUFBQTtBTHdFdEI7RVN2Q0UsY0oyQm9CLEVBQUE7QUxZdEI7RVN2Q0UsY0p1Rm9CLEVBQUE7QUxoRHRCO0VTakNJLHlCSnZDa0IsRUFBQTtBTHdFdEI7RVNqQ0kseUJKcUJrQixFQUFBO0FMWXRCO0VTakNJLHlCSmlGa0IsRUFBQTtBTGhEdEI7RVNyQk0sdUNKcEIyQyxFQUFBO0FMeUNqRDtFU3JCTSx1Q0p3QzJDLEVBQUE7QUxuQmpEO0VTckJNLDBDSm9HOEMsRUFBQTtBTC9FcEQ7RVNmUSx5Qkp6RGMsRUFBQTtBTHdFdEI7RVNmUSx5QkpHYyxFQUFBO0FMWXRCO0VTZlEseUJKK0RjLEVBQUE7QUxoRHRCO0VTUlEseUJKbENnQztFSW1DaEMsY0pyQzBCLEVBQUE7QUw0Q2xDO0VTUlEseUJKMEJnQztFSXpCaEMsY0p1QjBCLEVBQUE7QUxoQmxDO0VTUlEseUJKc0ZnQztFSXJGaEMsY0ptRjBCLEVBQUE7QUw1RWxDO0VTQVEsdUNKNUVxQyxFQUFBO0FMNEU3QztFU0FRLHVDSmhCcUMsRUFBQTtBTGdCN0M7RVNBUSwwQ0o0Q3dDLEVBQUE7QUw1Q2hEO0VTT1EsdUNKL0NzQyxFQUFBO0FMd0M5QztFU09RLHVDSmFzQyxFQUFBO0FMcEI5QztFU09RLHlCSnlFd0IsRUFBQTtBTGhGaEM7RVNnQkksdUNKNUZ5QyxFQUFBO0FMNEU3QztFU2dCSSx1Q0poQ3lDLEVBQUE7QUxnQjdDO0VTZ0JJLDBDSjRCNEMsRUFBQTtBTDVDaEQ7RVN1QkksdUNKbkd5QyxFQUFBO0FMNEU3QztFU3VCSSx1Q0p2Q3lDLEVBQUE7QUxnQjdDO0VTdUJJLDBDSnFCNEMsRUFBQTtBTDVDaEQ7RVM2Qk0sZ0NKckYrQixFQUFBO0FMd0RyQztFUzZCTSxnQ0p6QitCLEVBQUE7QUxKckM7RVM2Qk0sZ0NKbUMrQixFQUFBO0FMaEVyQztFU2tDUSx5QkoxRjZCO0VJMkY3QixjSjlHYyxFQUFBO0FMMkV0QjtFU2tDUSx5Qko5QjZCO0VJK0I3QixjSmxEYyxFQUFBO0FMZXRCO0VTa0NRLHlCSjhCNkI7RUk3QjdCLGNKVWMsRUFBQTtBTDdDdEI7RVN3Q1UseUJKL0VtQjtFSWdGbkIsY0pwSFksRUFBQTtBTDJFdEI7RVN3Q1UseUJKbkJtQjtFSW9CbkIsY0p4RFksRUFBQTtBTGV0QjtFU3dDVSx5Qkp5Q21CO0VJeENuQixjSklZLEVBQUE7QUw3Q3RCO0VTK0NVLHlCSnZFUTtFSXdFUixjSjNIWSxFQUFBO0FMMkV0QjtFUytDVSx5QkpYUTtFSVlSLGNKL0RZLEVBQUE7QUxldEI7RVMrQ1UseUJKaURRO0VJaERSLGNKSFksRUFBQTtBTDdDdEI7RVNnRUksY0ozSWtCLEVBQUE7QUwyRXRCO0VTZ0VJLGNKL0VrQixFQUFBO0FMZXRCO0VTZ0VJLGNKbkJrQixFQUFBO0FMN0N0QjtFU3NFTSx5Qko5SWdCLEVBQUE7QUx3RXRCO0VTc0VNLHlCSmxGZ0IsRUFBQTtBTFl0QjtFU3NFTSx5Qkp0QmdCLEVBQUE7QUxoRHRCO0VTOEVJLDRCSnRJaUMsRUFBQTtBTHdEckM7RVM4RUksNEJKMUVpQyxFQUFBO0FMSnJDO0VTOEVJLDRCSmRpQyxFQUFBO0FMaEVyQztFU3lGRSx5QkpqS29CLEVBQUE7QUx3RXRCO0VTeUZFLHlCSnJHb0IsRUFBQTtBTFl0QjtFU3lGRSx5Qkp6Q29CLEVBQUE7QUxoRHRCO0VTeUdRLGNKbExrQixFQUFBO0FMeUUxQjtFU3lHUSxjSnRIa0IsRUFBQTtBTGExQjtFU3lHUSxjSjFEa0IsRUFBQTtBTC9DMUI7RVNnSFEseUJKdkpxQixFQUFBO0FMdUM3QjtFU2dIUSx5QkozRnFCLEVBQUE7QUxyQjdCO0VTZ0hRLHlCSi9CcUIsRUFBQTtBTGpGN0I7RVN1SFEseUJKOUpxQixFQUFBO0FMdUM3QjtFU3VIUSx5QkpsR3FCLEVBQUE7QUxyQjdCO0VTdUhRLHlCSnRDcUIsRUFBQTtBTGpGN0I7RVM4SFEsNkJBQTZCLEVBQUE7QVQ5SHJDO0VTOEhRLDZCQUE2QixFQUFBO0FUOUhyQztFUzhIUSw2QkFBNkIsRUFBQTtBVDlIckM7RVNxSVEsNkJBQTZCLEVBQUE7QVRySXJDO0VTcUlRLDZCQUE2QixFQUFBO0FUcklyQztFU3FJUSw2QkFBNkIsRUFBQTtBVHJJckM7RVM4SVUseUJKbEx5QixFQUFBO0FMb0NuQztFUzhJVSx5Qkp0SHlCLEVBQUE7QUx4Qm5DO0VTOElVLHlCSjFEeUIsRUFBQTtBTHBGbkM7RVNvSlkseUJKdkwyQixFQUFBO0FMbUN2QztFU29KWSx5QkozSDJCLEVBQUE7QUx6QnZDO0VTb0pZLHlCSi9EMkIsRUFBQTtBTHJGdkM7RVM2SlEseUJKbk9nQixFQUFBO0FMc0V4QjtFUzZKUSx5Qkp2S2dCLEVBQUE7QUxVeEI7RVM2SlEseUJKM0dnQixFQUFBO0FMbER4QjtFU29LUSx5Qko1T2MsRUFBQTtBTHdFdEI7RVNvS1EseUJKaExjLEVBQUE7QUxZdEI7RVNvS1EseUJKcEhjLEVBQUE7QUxoRHRCO0VTNktVLHlCSmxQVyxFQUFBO0FMcUVyQjtFUzZLVSx5Qkp0TFcsRUFBQTtBTFNyQjtFUzZLVSx5QkoxSFcsRUFBQTtBTG5EckI7RVN1TFUseUJKOVBhLEVBQUE7QUx1RXZCO0VTdUxVLHlCSmxNYSxFQUFBO0FMV3ZCO0VTdUxVLHlCSnRJYSxFQUFBO0FMakR2QjtFUzJNUSx5QkpoUmEsRUFBQTtBTHFFckI7RVMyTVEseUJKcE5hLEVBQUE7QUxTckI7RVMyTVEseUJKeEphLEVBQUE7QUxuRHJCO0VTa05RLHlCSjFSYyxFQUFBO0FMd0V0QjtFU2tOUSx5Qko5TmMsRUFBQTtBTFl0QjtFU2tOUSx5QkpsS2MsRUFBQTtBTGhEdEI7RVNpT0ksY0o1U2tCLEVBQUE7QUwyRXRCO0VTaU9JLGNKaFBrQixFQUFBO0FMZXRCO0VTaU9JLGNKcExrQixFQUFBO0FMN0N0QjtFU3VPTSx5QkovU2dCLEVBQUE7QUx3RXRCO0VTdU9NLHlCSm5QZ0IsRUFBQTtBTFl0QjtFU3VPTSx5Qkp2TGdCLEVBQUE7QUxoRHRCO0VTK09JLGNKdlRrQixFQUFBO0FMd0V0QjtFUytPSSxjSjNQa0IsRUFBQTtBTFl0QjtFUytPSSxjSi9Ma0IsRUFBQTtBTGhEdEI7RVNzUEksNEJKOVNpQyxFQUFBO0FMd0RyQztFU3NQSSw0QkpsUGlDLEVBQUE7QUxKckM7RVNzUEksNEJKdExpQyxFQUFBO0FMaEVyQztFU2dRSSx5QkpwUytCLEVBQUE7QUxvQ25DO0VTZ1FJLHlCSnhPK0IsRUFBQTtBTHhCbkM7RVNnUUkseUJKNUsrQixFQUFBO0FMcEZuQztFU3NRTSx5Qkp6U2lDLEVBQUE7QUxtQ3ZDO0VTc1FNLHlCSjdPaUMsRUFBQTtBTHpCdkM7RVNzUU0seUJKakxpQyxFQUFBO0FJd0wzQztFVC9WRSxnQkFBZ0I7RUFDaEIsdUJBQXVCO0VBQ3ZCLG1CQUFtQixFQUFBO0FBZ0ZqQjtFUzhSVSx5QkpuV1csRUFBQTtBTHFFckI7RVM4UlUseUJKdlNXLEVBQUE7QUxTckI7RVM4UlUseUJKM09XLEVBQUE7QUxuRHJCO0VTOFNJLGNKdFhrQixFQUFBO0FMd0V0QjtFUzhTSSxjSjFUa0IsRUFBQTtBTFl0QjtFUzhTSSxjSjlQa0IsRUFBQTtBTGhEdEI7RVM0VFEsY0pyWWtCLEVBQUE7QUx5RTFCO0VTNFRRLGNKelVrQixFQUFBO0FMYTFCO0VTNFRRLGNKN1FrQixFQUFBO0FML0MxQjtFU21VUSx5Qkp6V3lCLEVBQUE7QUxzQ2pDO0VTbVVRLHlCSjdTeUIsRUFBQTtBTHRCakM7RVNtVVEsc0JKalBzQixFQUFBO0FJcU5sQztFVGpURSxXQUQwRDtFQUUxRCxjQUY0QjtFQUc1QixrQkFINEM7RVNvVmxDLE1BQU07RUFDTixhQUFhO0VBQ2IsZ0NBQWdDLEVBQUE7QVQzVXhDO0lTOFVVLHlCSnBYdUIsRUFBQTtBTHNDakM7SVM4VVUseUJKeFR1QixFQUFBO0FMdEJqQztJUzhVVSxzQko1UG9CLEVBQUE7QUxsRjlCO0VTc1ZRLHlCSjNYNEIsRUFBQTtBTHFDcEM7RVNzVlEseUJKL1Q0QixFQUFBO0FMdkJwQztFU3NWUSx5QkpuUTRCLEVBQUE7QUlvTnhDO0VUalRFLFdBRDBEO0VBRTFELGNBRjRCO0VBRzVCLGtCQUg0QztFU3VXbEMsY0FBYztFQUNkLE1BQU07RUFDTixnQ0FBZ0MsRUFBQTtBVDlWeEM7SVNpV1UseUJKdFkwQixFQUFBO0FMcUNwQztJU2lXVSx5QkoxVTBCLEVBQUE7QUx2QnBDO0lTaVdVLHlCSjlRMEIsRUFBQTtBTG5GcEM7RVNtWE0sY0o1Ym9CLEVBQUE7QUx5RTFCO0VTbVhNLGNKaFlvQixFQUFBO0FMYTFCO0VTbVhNLGNKcFVvQixFQUFBO0FML0MxQjtFUzBYTSxjSnJjZ0IsRUFBQTtBTDJFdEI7RVMwWE0sY0p6WWdCLEVBQUE7QUxldEI7RVMwWE0sY0o3VWdCLEVBQUE7QUk2VDFCO0VBc0JNLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIseUJBQXlCO0VBQ3pCLFlBQVk7RUFDWixpQkFBaUIsRUFBQTtBVHBZbkI7RVM2WUksY0p0ZHNCLEVBQUE7QUx5RTFCO0VTNllJLGNKMVpzQixFQUFBO0FMYTFCO0VTNllJLGNKOVZzQixFQUFBO0FML0MxQjtFU3NaTSxjSmplZ0I7RUlrZWhCLHlCSnpiOEIsRUFBQTtBTGtDcEM7RVNzWk0sY0pyYWdCO0VJc2FoQix5Qko3WDhCLEVBQUE7QUwxQnBDO0VTc1pNLGNKeldnQjtFSTBXaEIseUJKalU4QixFQUFBO0FMdEZwQztFUzZaUSx5Qko5YnVCLEVBQUE7QUxpQy9CO0VTNlpRLHlCSmxZdUIsRUFBQTtBTDNCL0I7RVM2WlEseUJKdFV1QixFQUFBO0FJOFVuQztFQUNFLGtCQUFrQixFQUFBO0FBRHBCO0lBSUksa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxpQkFBaUI7SUFDakIsY0FBYztJQUNkLFdBQVcsRUFBQTtBVDdhWDtNU2diRSx5Qkp2ZTJCO01Jd2UzQixjSjVmb0IsRUFBQTtBTDJFdEI7TVNnYkUseUJKM2EyQjtNSTRhM0IsY0poY29CLEVBQUE7QUxldEI7TVNnYkUseUJKL1cyQjtNSWdYM0IsY0pwWW9CLEVBQUE7QUl3WDFCO01BZ0JNLGlCQUFpQjtNQUNqQixhQUFhLEVBQUE7QVR0YmY7UVMwYk0sdUNKaGZpQyxFQUFBO0FMc0R2QztRUzBiTSx1Q0pwYmlDLEVBQUE7QUxOdkM7UVMwYk0sMENKeFhvQyxFQUFBO0FLcko5Qzs7RUFFRSxjQUFjO0VBQ2QsYUFBYTtFQUNiLGdCQUFnQixFQUFBO0FBSmxCOztJQU9JLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsZ0JBQWdCLEVBQUE7QVYwRWhCOztNVXZFRSx1Q0xMMkM7TUtNM0MsY0xMb0IsRUFBQTtBTDJFdEI7O01VdkVFLHVDTHVEMkM7TUt0RDNDLGNMdURvQixFQUFBO0FMZXRCOztNVXZFRSwwQ0xtSDhDO01LbEg5QyxjTG1Ib0IsRUFBQTtBS2hJMUI7O01BaUJNLGtCQUFrQjtNQUNsQixNQUFNO01BQ04sT0FBTyxFQUFBO0FWZ0VUO0VVcERNLGNMcEJnQixFQUFBO0FMd0V0QjtFVXBETSxjTHdDZ0IsRUFBQTtBTFl0QjtFVXBETSxjTG9HZ0IsRUFBQTtBTGhEdEI7RVUzQ00seUJMN0JnQixFQUFBO0FMd0V0QjtFVTNDTSx5QkwrQmdCLEVBQUE7QUxZdEI7RVUzQ00seUJMMkZnQixFQUFBO0FMaER0QjtFVXBDTSxjTHZDZ0IsRUFBQTtBTDJFdEI7RVVwQ00sY0xxQmdCLEVBQUE7QUxldEI7RVVwQ00sY0xpRmdCLEVBQUE7QUw3Q3RCO0VVM0JFLGNMN0NvQixFQUFBO0FMd0V0QjtFVTNCRSxjTGVvQixFQUFBO0FMWXRCO0VVM0JFLGNMMkVvQixFQUFBO0FMaER0QjtFVXJCSSxjTG5Ea0IsRUFBQTtBTHdFdEI7RVVyQkksY0xTa0IsRUFBQTtBTFl0QjtFVXJCSSxjTHFFa0IsRUFBQTtBTGhEdEI7RVVmTSx5Qkx6RGdCLEVBQUE7QUx3RXRCO0VVZk0seUJMR2dCLEVBQUE7QUxZdEI7RVVmTSx5QkwrRGdCLEVBQUE7QUxoRHRCO0VVQUksY0x4RWtCLEVBQUE7QUx3RXRCO0VVQUksY0xaa0IsRUFBQTtBTFl0QjtFVUFJLGNMZ0RrQixFQUFBO0FNbkkxQjtFQUNJLGtCQUFrQixFQUFBO0FBRHRCO0lBTVksVUFBVSxFQUFBO0FBTnRCO0lBV1EsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQiw4QkFBOEIsRUFBQTtBQWJ0QztNQWdCWSxnQkFBZ0I7TUFDaEIsV0FBVztNQUNYLGdCQUFnQixFQUFBO0FBSzVCO0VBT1EsaUJBQWlCO0VBQ2pCLG1CQUFtQixFQUFBO0FYb0R2QjtJV3hEUSxjTmpCa0IsRUFBQTtBTHlFMUI7SVd4RFEsY04yQ2tCLEVBQUE7QUxhMUI7SVd4RFEsY051R2tCLEVBQUE7QU0zRzlCO0VBZ0JRLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsYUFBYTtFQUNiLFdBQVcsRUFBQTtBWHlDZjtJVy9DUSx5Qk5UNkIsRUFBQTtBTHdEckM7SVcvQ1EseUJObUQ2QixFQUFBO0FMSnJDO0lXL0NRLHlCTitHNkIsRUFBQTtBTTVIekM7RUEwQlEscUJBQXFCLEVBQUE7QVhrQ3pCO0lXcENRLGNOcENjLEVBQUE7QUx3RXRCO0lXcENRLGNOd0JjLEVBQUE7QUxZdEI7SVdwQ1EsY05vRmMsRUFBQTtBTTVHMUI7RUE4QlEsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLGdCQUFnQjtFQUNoQixXQUFXLEVBQUE7QUFuQ25COztJQXVDWSxXQUFXLEVBQUE7QUF2Q3ZCO0lBMkNZLGdCQUFnQixFQUFBO0FYaUJ4QjtNV2ZZLGNOdkRZLEVBQUE7QUxzRXhCO01XZlksY05LWSxFQUFBO0FMVXhCO01XZlksY05pRVksRUFBQTtBTTlHNUI7SUFxRFksaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixxQkFBcUI7SUFDckIsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixlQUFlLEVBQUE7QVhFdkI7TVdUWSxjTnZDUSxFQUFBO0FMZ0RwQjtNV1RZLGNOcUJRLEVBQUE7QUxacEI7TVdUWSxjTmlGUSxFQUFBO0FNcEl4QjtNQTZEZ0Isb0JBQW9CLEVBQUE7QUE3RHBDO0lBa0VZLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQixtQkFBbUIsRUFBQTtBQXRFL0I7TUF5RWdCLG9CQUFvQixFQUFBO0FBT3BDO0VBQ0ksYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXO0VBQ1gsd0NBQXdDLEVBQUE7QUFFeEM7SUFDSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4QjtJQUM5QixXQUFXLEVBQUE7QVg5QmY7TVdnQ1EsY056R2tCLEVBQUE7QUx5RTFCO01XZ0NRLGNON0NrQixFQUFBO0FMYTFCO01XZ0NRLGNOZWtCLEVBQUE7QU1yQnpCO01BU08sb0JBQW9CO01BQ3BCLG1CQUFtQixFQUFBO0FBVjFCO1FBYVcsZUFBZTtRQUNmLGFBQWE7UUFDYixjQUFjLEVBQUE7QUFmekI7VUFxQmUsb0JBQW9CO1VBQ3BCLDhDQUFzRDtrQkFBdEQsc0NBQXNELEVBQUE7QVhoRHRFO1lXNkNvQix5Qk5ySEUsRUFBQTtBTHdFdEI7WVc2Q29CLHlCTnpERSxFQUFBO0FMWXRCO1lXNkNvQix5Qk5HRSxFQUFBO0FNdEJyQjtZQXlCbUIsYUFBYSxFQUFBO0FBekJoQztVQWlDZSxvQkFBb0I7VUFDcEIsNkRBQXFFO2tCQUFyRSxxREFBcUUsRUFBQTtBWDVEckY7WVd5RG9CLHlCTmpJRSxFQUFBO0FMd0V0QjtZV3lEb0IseUJOckVFLEVBQUE7QUxZdEI7WVd5RG9CLHlCTlRFLEVBQUE7QU10QnJCO1VBdUNlLG1CQUFtQixFQUFBO0FBdkNsQztRQTRDVyxpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQixtQkFBbUIsRUFBQTtBQS9DOUI7VUFrRGUsbUJBQW1CLEVBQUE7QUFNbkM7SUFLSSxvQkFBb0I7SUFDcEIsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsZUFBZTtJQUNmLG1CQUFtQixFQUFBO0FYNUZ2QjtNV29GUSw2Qk41STZCO01NNkk3QixnQ043STZCLEVBQUE7QUx3RHJDO01Xb0ZRLDZCTmhGNkI7TU1pRjdCLGdDTmpGNkIsRUFBQTtBTEpyQztNV29GUSw2Qk5wQjZCO01NcUI3QixnQ05yQjZCLEVBQUE7QU1rQnBDO01BZ0JPLGFBQWE7TUFDYixtQkFBbUI7TUFDbkIsZUFBZTtNQUNmLHFCQUFxQjtNQUNyQixnQkFBZ0I7TUFDaEIsaUJBQWlCLEVBQUE7QVh2R3pCO1FXZ0dZLGNOL0lTLEVBQUE7QUwrQ3JCO1FXZ0dZLGNObkZTLEVBQUE7QUxickI7UVdnR1ksY052QlMsRUFBQTtBTHpFckI7UVcyR2dCLHlCTnpKZ0IsRUFBQTtBTDhDaEM7UVcyR2dCLHlCTjdGZ0IsRUFBQTtBTGRoQztRVzJHZ0IseUJOakNnQixFQUFBO0FNdUNoQztJQUNJLGtCQUFrQixFQUFBO0FBRHJCO01BT08saUJBQWlCO01BQ2pCLG1CQUFtQixFQUFBO0FYekgzQjtRV3NIWSxjTnJLUyxFQUFBO0FMK0NyQjtRV3NIWSxjTnpHUyxFQUFBO0FMYnJCO1FXc0hZLGNON0NTLEVBQUE7QU1xRHpCO0VBQ0ksb0JBQW9CO0VBQ3BCLGFBQWE7RUFDYixjQUFjLEVBQUE7QUFIbEI7SUFTUSxpREFBeUQ7WUFBekQseUNBQXlELEVBQUE7QVh2STdEO01XcUlRLHlCTjVNZSxFQUFBO0FMdUV2QjtNV3FJUSx5Qk5oSmUsRUFBQTtBTFd2QjtNV3FJUSx5Qk5wRmUsRUFBQTtBTTZFM0I7SUFnQlEsOENBQXNEO1lBQXRELHNDQUFzRCxFQUFBO0FYOUkxRDtNVzRJUSx5Qk5wTmMsRUFBQTtBTHdFdEI7TVc0SVEseUJOeEpjLEVBQUE7QUxZdEI7TVc0SVEseUJONUZjLEVBQUE7QU04RTFCO0lBdUJRLG1EQUEyRDtZQUEzRCwyQ0FBMkQsRUFBQTtBWHJKL0Q7TVdtSlEseUJOek5nQixFQUFBO0FMc0V4QjtNV21KUSx5Qk43SmdCLEVBQUE7QUxVeEI7TVdtSlEseUJOakdnQixFQUFBO0FNNEU1QjtJQThCUSxnREFBd0Q7WUFBeEQsd0NBQXdELEVBQUE7QVg1SjVEO01XMEpRLHlCTnBPcUIsRUFBQTtBTDBFN0I7TVcwSlEseUJOeEtxQixFQUFBO0FMYzdCO01XMEpRLHlCTjVHcUIsRUFBQTtBTWtIakM7RUFDSSxhQUFhLEVBQUE7QUFEakI7SUFJUSxnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLGlCQUFpQixFQUFBO0FBTnpCO0lBVVEsbUJBQW1CO0lBQ25CLFVBQVU7SUFDVixpQkFBaUIsRUFBQTtBQy9QekI7RUFDRSxhQUFhO0VBQ2IscUJBQXFCO0VBQ3JCLDhCQUE4QjtFQUM5QixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLFdBQVc7RUFDWCxZQUFZLEVBQUE7QVo0RVY7SVl6RUEsY1BDc0IsRUFBQTtBTHdFdEI7SVl6RUEsY1A2RHNCLEVBQUE7QUxZdEI7SVl6RUEsY1B5SHNCLEVBQUE7QU9uSTFCO0lBa0JRLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLG1CQUFtQixFQUFBO0FBckIzQjtNWnlFRSxXQUQwRDtNQUUxRCxjQUY0QjtNQUc1QixrQkFINEM7TVk5Q3BDLFdBQVc7TUFDWCxjQUFjO01BQ2QsYUFBYTtNQUNiLGNBQWM7TUFDZCxxREFBNkQ7Y0FBN0QsNkNBQTZEO01BQzdELHdCQUFnQjtjQUFoQixnQkFBZ0IsRUFBQTtBWm9EdEI7UVlqRFEseUJQdkJjLEVBQUE7QUx3RXRCO1FZakRRLHlCUHFDYyxFQUFBO0FMWXRCO1FZakRRLHlCUGlHYyxFQUFBO0FPbkkxQjtJQTBDSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDZCQUE2QjtJQUM3QixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsVUFBVTtJQUNWLFlBQVksRUFBQTtBQWxEaEI7TUFxRE0sb0JBQW9CO01BQ3BCLDhDQUFzRDtjQUF0RCxzQ0FBc0Q7TUFDdEQsYUFBYTtNQUNiLGNBQWMsRUFBQTtBWjJCaEI7UVl4QkkseUJQaERrQixFQUFBO0FMd0V0QjtRWXhCSSx5QlBZa0IsRUFBQTtBTFl0QjtRWXhCSSx5QlB3RWtCLEVBQUE7QVFuSTFCO0VBR0ksNkJBQTZCO0VBQzdCLGVBQWU7RUFDZixXQUFXO0VBQ1gsWUFBWSxFQUFBO0FBTmhCO0VBVUksdUJBQXVCLEVBQUE7QUFWM0I7RUFjSSx5QkFBeUI7RUFDekIsNEJBQTRCO0VBQzVCLGlDQUFpQztFQUNqQyxxQkFBcUIsRUFBQTtBQWpCekI7RUFxQkkseUJBQXlCLEVBQUE7QUNyQjdCO0VBQ0UsaUJBQWlCO0VBQ2pCLFdBQVcsRUFBQTtBQUZiO0lBS0ksZ0JBQWdCLEVBQUE7QWQ4RWhCO01jM0VFLGNURXdCLEVBQUE7QUx5RTFCO01jM0VFLGNUOER3QixFQUFBO0FMYTFCO01jM0VFLGNUMEh3QixFQUFBO0FTbEk5QjtNQVlNLFlBQVksRUFBQTtBQVpsQjtRQWVRLGFBQWE7UUFDYixzQkFBc0IsRUFBQTtBQWhCOUI7VUFtQlUsa0JBQWtCLEVBQUE7QUFuQjVCO1VBdUJVLG1CQUFtQixFQUFBO0FBdkI3QjtJQThCSSxnQkFBZ0IsRUFBQTtBZHFEaEI7TWNsREUsY1R6Qm9CLEVBQUE7QUwyRXRCO01jbERFLGNUbUNvQixFQUFBO0FMZXRCO01jbERFLGNUK0ZvQixFQUFBO0FTaEkxQjtNQXFDTSxjQUFjLEVBQUE7QWQ4Q2hCO1FjekNNLHlCVEV1QixFQUFBO0FMdUM3QjtRY3pDTSx5QlQ4RHVCLEVBQUE7QUxyQjdCO1FjekNNLHlCVDBIdUIsRUFBQTtBU3BLakM7UUErQ1EsbUJBQW1CO1FBQ25CLGVBQWU7UUFDZixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLGdCQUFnQixFQUFBO0FBbkR4QjtVQXNEVSxrQkFBa0IsRUFBQTtBQXRENUI7VUEwRFUsbUJBQW1CLEVBQUE7QUNwQzdCO0VBQ0UscUJBQXFCO0VBQ3JCLDhCQUE4QztFQUM5QyxnQkFBZ0IsRUFBQTtBQUdsQjtFQUNFLHFCQUFxQjtFQUNyQixnQ0FBZ0Q7RUFDaEQsZ0JBQWdCLEVBQUE7QUFHbEI7RUFDRSxxQkFBcUI7RUFDckIsaUNBQWlEO0VBQ2pELGdCQUFnQixFQUFBO0FBR2xCO0VBQ0UscUJBQXFCO0VBQ3JCLDZCQUE2QztFQUM3QyxnQkFBZ0IsRUFBQTtBQUdsQjtFQUNFLHFCQUFxQjtFQUNyQixrQ0FBa0Q7RUFDbEQsZ0JBQWdCLEVBQUE7QUFJbEI7RUFDRSxpQ0FBaUM7RUFDakMsZUFBZSxFQUFBO0FBR2pCO0VBQ0UsaUNBQWlDO0VBQ2pDLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osYUFBYSxFQUFBO0FBSmY7SUFPSSwrREFBNkU7SUFDN0Usc0JBQXNCLEVBQUE7QUFSMUI7SUFZSSwrREFBNkU7SUFDN0Usc0JBQXNCLEVBQUE7QUFiMUI7SUFpQkksZ0VBQThFO0lBQzlFLHNCQUFzQixFQUFBO0FBbEIxQjtJQXNCSSxhQUFhO0lBQ2IsV0FBVztJQUNYLFlBQVksRUFBQTtBQUloQjtFQUtNLHNEQUF5RDtVQUF6RCw4Q0FBeUQsRUFBQSIsImZpbGUiOiJzcmMvc3R5bGVzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAbWl4aW4gdGV4dC10cnVuY2F0ZSB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcbkBtaXhpbiB0ZXh0V3JhcCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbiAgbGluZS1icmVhazogc3RyaWN0O1xyXG4gIC13ZWJraXQtaHlwaGVuczogYXV0bztcclxuICAtbXMtaHlwaGVuczogYXV0bztcclxuICBoeXBoZW5zOiBhdXRvO1xyXG59XHJcbkBtaXhpbiBjb3ZlckJveCB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHRsZWZ0OiAwO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxufVxyXG5AbWl4aW4gYWJzICgkdG9wOiBhdXRvLCAkcmlnaHQ6IGF1dG8sICRib3R0b206IGF1dG8sICRsZWZ0OiBhdXRvKSB7XHJcbiAgdG9wOiAkdG9wO1xyXG4gIHJpZ2h0OiAkcmlnaHQ7XHJcbiAgYm90dG9tOiAkYm90dG9tO1xyXG4gIGxlZnQ6ICRsZWZ0O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxufVxyXG5AbWl4aW4gY292ZXJJbWcge1xyXG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdC1vLWJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xyXG59XHJcbkBtaXhpbiB2YWxpbmdCb3gge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6ICA1MCU7XHJcblx0bGVmdDogNTAlO1xyXG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG59XHJcbkBtaXhpbiB1blNlbGVjdCB7XHJcblx0LXdlYmtpdC10b3VjaC1jb2xsb3V0OiBub25lO1xyXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHVzZXItc2VsZWN0OiBub25lO1xyXG59XHJcbkBtaXhpbiBtYXgxMTk5IHsgLy8gbWFrZXQgMTE3MVxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbWF4MTE3MCB7IC8vIG1ha2V0cyA5OTJcclxuICBAbWVkaWEgKG1heC13aWR0aDogMTE3MHB4KSB7IEBjb250ZW50OyB9XHJcbn1cclxuQG1peGluIG1heDk5MSB7IC8vIG1ha2V0cyA3NjJcclxuICBAbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHsgQGNvbnRlbnQ7IH1cclxufVxyXG5AbWl4aW4gbWF4NzYxIHsgLy8gbWFrZXRzIDU3NlxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjFweCkgeyBAY29udGVudDsgfVxyXG59XHJcbkBtaXhpbiBtYXg1NzUgeyAvLyBtYWtldHMgNDAwXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7IEBjb250ZW50OyB9XHJcbn1cclxuQG1peGluIG1vYmlsZSB7XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDM5OXB4KSB7IEBjb250ZW50OyB9XHJcbn1cclxuQG1peGluIGljb0NlbnRlciB7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcclxufVxyXG5AbWl4aW4gcHNldWRvICgkZGlzcGxheTogYmxvY2ssICRwb3M6IGFic29sdXRlLCAkY29udGVudDogJycpe1xyXG4gIGNvbnRlbnQ6ICRjb250ZW50O1xyXG4gIGRpc3BsYXk6ICRkaXNwbGF5O1xyXG4gIHBvc2l0aW9uOiAkcG9zO1xyXG59XHJcblxyXG4vKlxyXG4qIEltcGxlbWVudGF0aW9uIG9mIHRoZW1lc1xyXG4qL1xyXG5AbWl4aW4gdGhlbWlmeSgkdGhlbWVzOiAkdGhlbWVzKSB7XHJcbiAgQGVhY2ggJHRoZW1lLCAkbWFwIGluICR0aGVtZXMge1xyXG4gICAgLnRoZW1lLSN7JHRoZW1lfSAmIHtcclxuICAgICAgJHRoZW1lLW1hcDogKCkgIWdsb2JhbDtcclxuICAgICAgQGVhY2ggJGtleSwgJHN1Ym1hcCBpbiAkbWFwIHtcclxuICAgICAgICAkdmFsdWU6IG1hcC1nZXQobWFwLWdldCgkdGhlbWVzLCAkdGhlbWUpLCAnI3ska2V5fScpO1xyXG4gICAgICAgICR0aGVtZS1tYXA6IG1hcC1tZXJnZSgkdGhlbWUtbWFwLCAoJGtleTogJHZhbHVlKSkgIWdsb2JhbDtcclxuICAgICAgfVxyXG4gICAgICBAY29udGVudDtcclxuICAgICAgJHRoZW1lLW1hcDogbnVsbCAhZ2xvYmFsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQGZ1bmN0aW9uIHRoZW1lZCgka2V5KSB7XHJcbiAgQHJldHVybiBtYXAtZ2V0KCR0aGVtZS1tYXAsICRrZXkpO1xyXG59XHJcbiIsIi8qXHJcbiogSW1wbGVtZW50YXRpb24gb2YgdGhlbWVzXHJcbiovXG5AaW1wb3J0IHVybCh+QG5nLXNlbGVjdC9uZy1zZWxlY3QvdGhlbWVzL2RlZmF1bHQudGhlbWUuY3NzKTtcbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIC13ZWJraXQtYm94LXNpemluZzogaW5oZXJpdDtcbiAgLW1vei1ib3gtc2l6aW5nOiBpbmhlcml0O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIC13ZWJraXQtdG91Y2gtY29sbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcbmEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSxcbmRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbnNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXG5iLCB1LCBpLCBjZW50ZXIsXG5kbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxuZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXG50YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCxcbmFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLFxuZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLFxubWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksXG50aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICBib3JkZXI6IDA7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgZm9udDogaW5oZXJpdDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbmFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsXG5mb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIHNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5vbCwgdWwge1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbmJsb2NrcXVvdGUsIHEge1xuICBxdW90ZXM6IG5vbmU7IH1cblxuYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsXG5xOmJlZm9yZSwgcTphZnRlciB7XG4gIGNvbnRlbnQ6IG5vbmU7IH1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDsgfVxuXG5pbnB1dCB7XG4gIG91dGxpbmU6IG5vbmU7IH1cbiAgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAxMDAwcHggd2hpdGUgaW5zZXQ7IH1cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgYTphY3RpdmUsIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7IH1cblxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG5iLCBzdHJvbmcge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbmltZyB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYm9yZGVyOiAwOyB9XG5cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnRoZW1lLWRhcmsgLmFwcC1jb250ZW50IC5wcmVsb2FkZXIgLmxvYWRpbmctYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDsgfVxuXG4udGhlbWUtZ3JheSAuYXBwLWNvbnRlbnQgLnByZWxvYWRlciAubG9hZGluZy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDdjZjhkOyB9XG5cbi50aGVtZS13aGl0ZSAuYXBwLWNvbnRlbnQgLnByZWxvYWRlciAubG9hZGluZy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDZjMTcyOyB9XG5cbmJ1dHRvbiB7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBoZWlnaHQ6IDQuMnJlbTsgfVxuICAudGhlbWUtZGFyayBidXR0b246ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pLCAudGhlbWUtZGFyayBidXR0b24uYmx1ZS1idXR0b25fcmVzZXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5Y2FkYjc7XG4gICAgY29sb3I6ICMxMTE5MjE7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uOmRpc2FibGVkOm5vdCgudHJhbnNwYXJlbnQtYnV0dG9uKSwgLnRoZW1lLWdyYXkgYnV0dG9uLmJsdWUtYnV0dG9uX3Jlc2V0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzk4NDhmO1xuICAgIGNvbG9yOiAjMWExYTFhOyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b246ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pLCAudGhlbWUtd2hpdGUgYnV0dG9uLmJsdWUtYnV0dG9uX3Jlc2V0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTBhNGFlO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbjpkaXNhYmxlZDpub3QoLnRyYW5zcGFyZW50LWJ1dHRvbik6aG92ZXIsIC50aGVtZS1kYXJrIGJ1dHRvbi5ibHVlLWJ1dHRvbl9yZXNldDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2I3ZDFlMDsgfVxuICAudGhlbWUtZ3JheSBidXR0b246ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pOmhvdmVyLCAudGhlbWUtZ3JheSBidXR0b24uYmx1ZS1idXR0b25fcmVzZXQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhMWFlYmI7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbjpkaXNhYmxlZDpub3QoLnRyYW5zcGFyZW50LWJ1dHRvbik6aG92ZXIsIC50aGVtZS13aGl0ZSBidXR0b24uYmx1ZS1idXR0b25fcmVzZXQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhZWJlYzY7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uOmRpc2FibGVkOm5vdCgudHJhbnNwYXJlbnQtYnV0dG9uKTpmb2N1cywgLnRoZW1lLWRhcmsgYnV0dG9uLmJsdWUtYnV0dG9uX3Jlc2V0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdiOWMyOyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbjpkaXNhYmxlZDpub3QoLnRyYW5zcGFyZW50LWJ1dHRvbik6Zm9jdXMsIC50aGVtZS1ncmF5IGJ1dHRvbi5ibHVlLWJ1dHRvbl9yZXNldDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzhhOTU5ZjsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uOmRpc2FibGVkOm5vdCgudHJhbnNwYXJlbnQtYnV0dG9uKTpmb2N1cywgLnRoZW1lLXdoaXRlIGJ1dHRvbi5ibHVlLWJ1dHRvbl9yZXNldDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2E3YjljMjsgfVxuICAudGhlbWUtZGFyayBidXR0b24uYmx1ZS1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7XG4gICAgY29sb3I6ICMxMTE5MjE7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uLmJsdWUtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1O1xuICAgIGNvbG9yOiAjMWExYTFhOyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b24uYmx1ZS1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uLmJsdWUtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODJkN2ZmOyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzg2ZDZmZjsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uLmJsdWUtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNiM2ZmOyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU5YjVmZDsgfVxuICAudGhlbWUtZ3JheSBidXR0b24uYmx1ZS1idXR0b246bm90KDpkaXNhYmxlZCk6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1ZmI2ZmM7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM3OWZmYTsgfVxuICAudGhlbWUtZGFyayBidXR0b24uZ3JlZW4tYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkO1xuICAgIGNvbG9yOiAjMTExOTIxOyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbi5ncmVlbi1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0N2NmOGQ7XG4gICAgY29sb3I6ICMxYTFhMWE7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbi5ncmVlbi1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NmMxNzI7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzhkZmNjNjsgfVxuICAudGhlbWUtZ3JheSBidXR0b24uZ3JlZW4tYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2JmNmM2OyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b24uZ3JlZW4tYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWFkNTg2OyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbi5ncmVlbi1idXR0b246bm90KDpkaXNhYmxlZCk6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2MmUwYjI7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGM5ZTsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzUzYzc3YzsgfVxuICAudGhlbWUtZGFyayBidXR0b24udHVycXVvaXNlLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkZDBlMTtcbiAgICBjb2xvcjogIzExMTkyMTsgfVxuICAudGhlbWUtZ3JheSBidXR0b24udHVycXVvaXNlLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNlYzVkNztcbiAgICBjb2xvcjogIzFhMWExYTsgfVxuICAudGhlbWUtd2hpdGUgYnV0dG9uLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyNmI2Yzc7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLnRoZW1lLWRhcmsgYnV0dG9uLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM4N2Y0ZjU7IH1cbiAgLnRoZW1lLWdyYXkgYnV0dG9uLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3MmVkZmU7IH1cbiAgLnRoZW1lLXdoaXRlIGJ1dHRvbi50dXJxdW9pc2UtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTJjYmQ5OyB9XG4gIC50aGVtZS1kYXJrIGJ1dHRvbi50dXJxdW9pc2UtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJkNWU4OyB9XG4gIC50aGVtZS1ncmF5IGJ1dHRvbi50dXJxdW9pc2UtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTBkMGUxOyB9XG4gIC50aGVtZS13aGl0ZSBidXR0b24udHVycXVvaXNlLWJ1dHRvbjpub3QoOmRpc2FibGVkKTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMxYmVjZjsgfVxuICBidXR0b24udHJhbnNwYXJlbnQtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAudGhlbWUtZGFyayBidXR0b24udHJhbnNwYXJlbnQtYnV0dG9uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAwLjJyZW0gc29saWQgIzJiMzY0NDtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgYnV0dG9uLnRyYW5zcGFyZW50LWJ1dHRvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogMC4ycmVtIHNvbGlkICMyZjM0Mzg7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS13aGl0ZSBidXR0b24udHJhbnNwYXJlbnQtYnV0dG9uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAwLjJyZW0gc29saWQgI2ViZWJlYjtcbiAgICAgIGNvbG9yOiAjNDM0NTRiOyB9XG4gICAgYnV0dG9uLnRyYW5zcGFyZW50LWJ1dHRvbiAuaWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvY29tcGxldGUtdGVzdHdhbGxldC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgICB3aWR0aDogMS43cmVtO1xuICAgICAgaGVpZ2h0OiAxLjdyZW07IH1cbiAgICAgIC50aGVtZS1kYXJrIGJ1dHRvbi50cmFuc3BhcmVudC1idXR0b24gLmljb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtZ3JheSBidXR0b24udHJhbnNwYXJlbnQtYnV0dG9uIC5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIGJ1dHRvbi50cmFuc3BhcmVudC1idXR0b24gLmljb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDM0NTRiOyB9XG5cbi5pbnB1dC1ibG9jayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBtYXJnaW4tYm90dG9tOiAwLjRyZW07IH1cbiAgLmlucHV0LWJsb2NrIC53cmFwLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIG1pbi1oZWlnaHQ6IDIuNHJlbTsgfVxuICAuaW5wdXQtYmxvY2sgbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjRyZW07IH1cbiAgICAudGhlbWUtZGFyayAuaW5wdXQtYmxvY2sgbGFiZWwge1xuICAgICAgY29sb3I6ICM1NTY1NzY7IH1cbiAgICAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2sgbGFiZWwge1xuICAgICAgY29sb3I6ICM1NjVjNjI7IH1cbiAgICAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrIGxhYmVsIHtcbiAgICAgIGNvbG9yOiAjYTBhNWFiOyB9XG4gIC5pbnB1dC1ibG9jayBpbnB1dFt0eXBlPSd0ZXh0J10sIC5pbnB1dC1ibG9jayBpbnB1dFt0eXBlPSdwYXNzd29yZCddLCAuaW5wdXQtYmxvY2sgc2VsZWN0IHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0LjJyZW07IH1cbiAgICAudGhlbWUtZGFyayAuaW5wdXQtYmxvY2sgaW5wdXRbdHlwZT0ndGV4dCddLCAudGhlbWUtZGFyayAuaW5wdXQtYmxvY2sgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSwgLnRoZW1lLWRhcmsgLmlucHV0LWJsb2NrIHNlbGVjdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxZTI3O1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2sgaW5wdXRbdHlwZT0ndGV4dCddLCAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2sgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSwgLnRoZW1lLWdyYXkgLmlucHV0LWJsb2NrIHNlbGVjdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxO1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrIGlucHV0W3R5cGU9J3RleHQnXSwgLnRoZW1lLXdoaXRlIC5pbnB1dC1ibG9jayBpbnB1dFt0eXBlPSdwYXNzd29yZCddLCAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrIHNlbGVjdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgLmlucHV0LWJsb2NrLnRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuaW5wdXQtYmxvY2sudGV4dGFyZWEgdGV4dGFyZWEge1xuICAgICAgZm9udC1mYW1pbHk6IE9wZW5TYW5zLCBzYW5zLXNlcmlmO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogNy41cmVtO1xuICAgICAgbWF4LWhlaWdodDogNy41cmVtO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICByZXNpemU6IG5vbmU7IH1cbiAgICAgIC50aGVtZS1kYXJrIC5pbnB1dC1ibG9jay50ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzFlMjc7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2sudGV4dGFyZWEgdGV4dGFyZWEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxO1xuICAgICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC5pbnB1dC1ibG9jay50ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgICAgIGNvbG9yOiAjNDM0NTRiOyB9XG4gIC5pbnB1dC1ibG9jayAuZXJyb3ItYmxvY2sge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40cmVtO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLnRoZW1lLWRhcmsgLmlucHV0LWJsb2NrIC5lcnJvci1ibG9jayB7XG4gICAgICBjb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS1ncmF5IC5pbnB1dC1ibG9jayAuZXJyb3ItYmxvY2sge1xuICAgICAgY29sb3I6ICNmZjUyNTI7IH1cbiAgICAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrIC5lcnJvci1ibG9jayB7XG4gICAgICBjb2xvcjogI2ZmNTI1MjsgfVxuICAuaW5wdXQtYmxvY2sgLnN1Y2Nlc3MtYmxvY2sge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40cmVtO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLnRoZW1lLWRhcmsgLmlucHV0LWJsb2NrIC5zdWNjZXNzLWJsb2NrIHtcbiAgICAgIGNvbG9yOiAjNWNkYTlkOyB9XG4gICAgLnRoZW1lLWdyYXkgLmlucHV0LWJsb2NrIC5zdWNjZXNzLWJsb2NrIHtcbiAgICAgIGNvbG9yOiAjNDdjZjhkOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5pbnB1dC1ibG9jayAuc3VjY2Vzcy1ibG9jayB7XG4gICAgICBjb2xvcjogIzQ2YzE3MjsgfVxuXG4udGhlbWUtZGFyayAuZXJyb3ItdGV4dCB7XG4gIGNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS1ncmF5IC5lcnJvci10ZXh0IHtcbiAgY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLXdoaXRlIC5lcnJvci10ZXh0IHtcbiAgY29sb3I6ICNmZjUyNTI7IH1cblxuaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbyArIGxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwYWRkaW5nLWxlZnQ6IDIuNHJlbTtcbiAgLXdlYmtpdC10b3VjaC1jb2xsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLnRoZW1lLWRhcmsgaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbyArIGxhYmVsIHtcbiAgICBjb2xvcjogIzU1NjU3NjsgfVxuICAudGhlbWUtZ3JheSBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvICsgbGFiZWwge1xuICAgIGNvbG9yOiAjNTY1YzYyOyB9XG4gIC50aGVtZS13aGl0ZSBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvICsgbGFiZWwge1xuICAgIGNvbG9yOiAjYTBhNWFiOyB9XG5cbmlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvcGFjaXR5OiAwOyB9XG4gIGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpICsgbGFiZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvOm5vdChjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMC43cmVtO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHdpZHRoOiAxLjRyZW07XG4gICAgaGVpZ2h0OiAxLjRyZW07IH1cbiAgICAudGhlbWUtZGFyayBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvOm5vdChjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4gICAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCAjNGRiMWZmOyB9XG4gICAgLnRoZW1lLWdyYXkgaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbzpub3QoY2hlY2tlZCkgKyBsYWJlbDpiZWZvcmUge1xuICAgICAgYm9yZGVyOiAwLjFyZW0gc29saWQgIzQyYTVmNTsgfVxuICAgIC50aGVtZS13aGl0ZSBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvOm5vdChjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4gICAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCAjMmM5NWYxOyB9XG4gIGlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86bm90KGNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDFyZW07XG4gICAgbGVmdDogMC4zcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdpZHRoOiAwLjhyZW07XG4gICAgaGVpZ2h0OiAwLjhyZW07IH1cbiAgICAudGhlbWUtZGFyayBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvOm5vdChjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cbiAgICAudGhlbWUtZ3JheSBpbnB1dFt0eXBlPSdyYWRpbyddLnN0eWxlLXJhZGlvOm5vdChjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cbiAgICAudGhlbWUtd2hpdGUgaW5wdXRbdHlwZT0ncmFkaW8nXS5zdHlsZS1yYWRpbzpub3QoY2hlY2tlZCkgKyBsYWJlbDphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbmlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW86Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcbiAgb3BhY2l0eTogMTsgfVxuXG5pbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94ICsgbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBhZGRpbmctbGVmdDogMy42cmVtO1xuICAtd2Via2l0LXRvdWNoLWNvbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAudGhlbWUtZGFyayBpbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94ICsgbGFiZWwge1xuICAgIGNvbG9yOiAjNTU2NTc2OyB9XG4gIC50aGVtZS1ncmF5IGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3ggKyBsYWJlbCB7XG4gICAgY29sb3I6ICM1NjVjNjI7IH1cbiAgLnRoZW1lLXdoaXRlIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3ggKyBsYWJlbCB7XG4gICAgY29sb3I6ICNhMGE1YWI7IH1cblxuaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveDpub3QoY2hlY2tlZCkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAxLjZyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3g6bm90KGNoZWNrZWQpICsgbGFiZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBpbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94Om5vdChjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDEuNnJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgd2lkdGg6IDEuNHJlbTtcbiAgICBoZWlnaHQ6IDEuNHJlbTsgfVxuICAgIC50aGVtZS1kYXJrIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3g6bm90KGNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICM0ZGIxZmY7IH1cbiAgICAudGhlbWUtZ3JheSBpbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94Om5vdChjaGVja2VkKSArIGxhYmVsOmJlZm9yZSB7XG4gICAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCAjNDJhNWY1OyB9XG4gICAgLnRoZW1lLXdoaXRlIGlucHV0W3R5cGU9J2NoZWNrYm94J10uc3R5bGUtY2hlY2tib3g6bm90KGNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICMyYzk1ZjE7IH1cblxuaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveDpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2NvbXBsZXRlLXRlc3R3YWxsZXQuc3ZnKTsgfVxuICAudGhlbWUtZGFyayBpbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94OmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cbiAgLnRoZW1lLWdyYXkgaW5wdXRbdHlwZT0nY2hlY2tib3gnXS5zdHlsZS1jaGVja2JveDpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG4gIC50aGVtZS13aGl0ZSBpbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94OmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgLnN3aXRjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7IH1cblxuLnRoZW1lLWdyYXkgLnN3aXRjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7IH1cblxuLnRoZW1lLXdoaXRlIC5zd2l0Y2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1kYXJrIC5zd2l0Y2ggLmNpcmNsZS5vbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgLnN3aXRjaCAuY2lyY2xlLm9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgLnN3aXRjaCAuY2lyY2xlLm9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayAuc3dpdGNoIC5jaXJjbGUub2ZmIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSAuc3dpdGNoIC5jaXJjbGUub2ZmIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU2NWM2MjsgfVxuXG4udGhlbWUtd2hpdGUgLnN3aXRjaCAuY2lyY2xlLm9mZiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhMGE1YWI7IH1cblxuLnRhYmxlLXRvb2x0aXAge1xuICBwYWRkaW5nOiAxcmVtIDJyZW07IH1cbiAgLnRoZW1lLWRhcmsgLnRhYmxlLXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6ICM0MjUwNWY7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2U0NjRjO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAudGhlbWUtd2hpdGUgLnRhYmxlLXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgxMjAsIDEyMCwgMTIwLCAwLjUpO1xuICAgIGNvbG9yOiAjNDM0NTRiOyB9XG4gIC50YWJsZS10b29sdGlwIC50b29sdGlwLWlubmVyIHtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBsaW5lLWhlaWdodDogMS44cmVtO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgfVxuICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcCB7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cbiAgICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcDphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMXJlbTtcbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMC41cmVtKTtcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3A6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICM0MjUwNWYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wOmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2U0NjRjIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3A6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICNmZmZmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC10b3AtbGVmdCB7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cbiAgICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcC1sZWZ0OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0xcmVtO1xuICAgICAgbGVmdDogMC43cmVtO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcC1sZWZ0OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNDI1MDVmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM0MjUwNWY7IH1cbiAgICAgIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLWxlZnQ6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICMzZTQ2NGMgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzNlNDY0YzsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLWxlZnQ6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICNmZmZmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZmZmZjsgfVxuICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcC1yaWdodCB7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cbiAgICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcC1yaWdodDphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMXJlbTtcbiAgICAgIHJpZ2h0OiAwLjdyZW07XG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cbiAgICAgIC50aGVtZS1kYXJrIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLXJpZ2h0OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNDI1MDVmICM0MjUwNWYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wLXJpZ2h0OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2U0NjRjICMzZTQ2NGMgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXRvcC1yaWdodDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZmZmZmZiAjZmZmZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gICAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b206YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0xcmVtO1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSAwLjVyZW0pO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbTpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM0MjUwNWYgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzNlNDY0YyB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZmZmZiB0cmFuc3BhcmVudDsgfVxuICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbS1sZWZ0IHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gICAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tbGVmdDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTFyZW07XG4gICAgICBsZWZ0OiAwLjdyZW07XG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cbiAgICAgIC50aGVtZS1kYXJrIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tLWxlZnQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNDI1MDVmICM0MjUwNWY7IH1cbiAgICAgIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tLWxlZnQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjM2U0NjRjICMzZTQ2NGM7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWJvdHRvbS1sZWZ0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZmZmZiAjZmZmZmZmOyB9XG4gIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tLXJpZ2h0IHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gICAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tcmlnaHQ6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0xcmVtO1xuICAgICAgcmlnaHQ6IDAuN3JlbTtcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tcmlnaHQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNDI1MDVmICM0MjUwNWYgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tLXJpZ2h0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzNlNDY0YyAjM2U0NjRjIHRyYW5zcGFyZW50OyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1ib3R0b20tcmlnaHQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZmZmZmZmICNmZmZmZmYgdHJhbnNwYXJlbnQ7IH1cbiAgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogLTFyZW07IH1cbiAgICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWxlZnQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSAwLjVyZW0pO1xuICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLWxlZnQ6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM0MjUwNWY7IH1cbiAgICAgIC50aGVtZS1ncmF5IC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzNlNDY0YzsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdDphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZmZmZjsgfVxuICAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXJpZ2h0IHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAgIC50YWJsZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQ6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGNhbGMoNTAlIC0gMC41cmVtKTtcbiAgICAgIGxlZnQ6IC0xcmVtO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgICAudGhlbWUtZGFyayAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXJpZ2h0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzQyNTA1ZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnRhYmxlLXRvb2x0aXAubmctdG9vbHRpcC1yaWdodDpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMzZTQ2NGMgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudGFibGUtdG9vbHRpcC5uZy10b29sdGlwLXJpZ2h0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2ZmZmZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuXG4udGFibGUtdG9vbHRpcC1kaW1lbnNpb25zIC50b29sdGlwLWlubmVyIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1heC13aWR0aDogMjByZW07XG4gIG1heC1oZWlnaHQ6IDEwcmVtOyB9XG5cbi5iYWxhbmNlLXRvb2x0aXAge1xuICBwYWRkaW5nOiAxLjNyZW07IH1cbiAgLnRoZW1lLWRhcmsgLmJhbGFuY2UtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogIzQyNTA1ZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLWdyYXkgLmJhbGFuY2UtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogIzNlNDY0YztcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLXdoaXRlIC5iYWxhbmNlLXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgxMjAsIDEyMCwgMTIwLCAwLjUpO1xuICAgIGNvbG9yOiAjNDM0NTRiOyB9XG4gIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAgIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmF2YWlsYWJsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjdyZW07IH1cbiAgICAgIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmF2YWlsYWJsZSBiIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmxvY2tlZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjdyZW07IH1cbiAgICAgIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmxvY2tlZCBiIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmxpbmsge1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAudGhlbWUtZGFyayAuYmFsYW5jZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5saW5rIHtcbiAgICAgICAgY29sb3I6ICM0ZGIxZmY7IH1cbiAgICAgIC50aGVtZS1ncmF5IC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmxpbmsge1xuICAgICAgICBjb2xvcjogIzQyYTVmNTsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC5iYWxhbmNlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmxpbmsge1xuICAgICAgICBjb2xvcjogIzJjOTVmMTsgfVxuICAuYmFsYW5jZS10b29sdGlwLm5nLXRvb2x0aXAtdG9wIHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuICAuYmFsYW5jZS10b29sdGlwLm5nLXRvb2x0aXAtYm90dG9tIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gIC5iYWxhbmNlLXRvb2x0aXAubmctdG9vbHRpcC1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogLTFyZW07IH1cbiAgLmJhbGFuY2UtdG9vbHRpcC5uZy10b29sdGlwLXJpZ2h0IHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuXG4uYWNjb3VudC10b29sdGlwIC50b29sdGlwLWlubmVyIHtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgbWF4LXdpZHRoOiAxOHJlbTsgfVxuXG4uY29tbWVudC10b29sdGlwIC50b29sdGlwLWlubmVyIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIG1heC13aWR0aDogNTByZW07XG4gIG1heC1oZWlnaHQ6IDI1cmVtOyB9XG5cbi51cGRhdGUtdG9vbHRpcCB7XG4gIHBhZGRpbmc6IDEuNXJlbTsgfVxuICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6ICM0MjUwNWY7XG4gICAgYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS1ncmF5IC51cGRhdGUtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogIzNlNDY0YztcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDEyMCwgMTIwLCAxMjAsIDAuNSk7XG4gICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwLmltcG9ydGFudCB7XG4gICAgYmFja2dyb3VuZDogIzVmMmIxMTtcbiAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjNTUyNDBkO1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjZWY2YzAwO1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcC5pbXBvcnRhbnQubmctdG9vbHRpcC1sZWZ0LWJvdHRvbTphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNWYyYjExICM1ZjJiMTE7IH1cbiAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwLmltcG9ydGFudC5uZy10b29sdGlwLWxlZnQtYm90dG9tOmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM1NTI0MGQgIzU1MjQwZDsgfVxuICAudGhlbWUtd2hpdGUgLnVwZGF0ZS10b29sdGlwLmltcG9ydGFudC5uZy10b29sdGlwLWxlZnQtYm90dG9tOmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNlZjZjMDAgI2VmNmMwMDsgfVxuICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50Lm5nLXRvb2x0aXAtcmlnaHQtYm90dG9tOmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNWYyYjExICM1ZjJiMTEgdHJhbnNwYXJlbnQ7IH1cbiAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwLmltcG9ydGFudC5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbTpiZWZvcmUge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzU1MjQwZCAjNTUyNDBkIHRyYW5zcGFyZW50OyB9XG4gIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAuaW1wb3J0YW50Lm5nLXRvb2x0aXAtcmlnaHQtYm90dG9tOmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZWY2YzAwICNlZjZjMDAgdHJhbnNwYXJlbnQ7IH1cbiAgLnVwZGF0ZS10b29sdGlwLmNyaXRpY2FsIHtcbiAgICBwYWRkaW5nOiAyLjVyZW07IH1cbiAgICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwge1xuICAgICAgYmFja2dyb3VuZDogIzVmMWQxZDtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwLmNyaXRpY2FsIHtcbiAgICAgIGJhY2tncm91bmQ6ICM0YzE5MTk7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwge1xuICAgICAgYmFja2dyb3VuZDogI2U1MzkzNTtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLnVwZGF0ZS10b29sdGlwLmNyaXRpY2FsIC50b29sdGlwLWlubmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcC5jcml0aWNhbC5uZy10b29sdGlwLWxlZnQtYm90dG9tOmFmdGVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzVmMWQxZCAjNWYxZDFkOyB9XG4gICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwLmNyaXRpY2FsLm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNGMxOTE5ICM0YzE5MTk7IH1cbiAgICAudGhlbWUtd2hpdGUgLnVwZGF0ZS10b29sdGlwLmNyaXRpY2FsLm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZTUzOTM1ICNlNTM5MzU7IH1cbiAgICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzVmMWQxZCAjNWYxZDFkIHRyYW5zcGFyZW50OyB9XG4gICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwLmNyaXRpY2FsLm5nLXRvb2x0aXAtcmlnaHQtYm90dG9tOmJlZm9yZSB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICM0YzE5MTkgIzRjMTkxOSB0cmFuc3BhcmVudDsgfVxuICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAuY3JpdGljYWwubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2U1MzkzNSAjZTUzOTM1IHRyYW5zcGFyZW50OyB9XG4gIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuOHJlbTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IH1cbiAgICAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLnN0YW5kYXJkLXVwZGF0ZSB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07IH1cbiAgICAgIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuc3RhbmRhcmQtdXBkYXRlIHtcbiAgICAgICAgY29sb3I6ICM0ZGIxZmY7IH1cbiAgICAgIC50aGVtZS1ncmF5IC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuc3RhbmRhcmQtdXBkYXRlIHtcbiAgICAgICAgY29sb3I6ICM0MmE1ZjU7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLnN0YW5kYXJkLXVwZGF0ZSB7XG4gICAgICAgIGNvbG9yOiAjMmM5NWYxOyB9XG4gICAgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5pbXBvcnRhbnQtdXBkYXRlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5pbXBvcnRhbnQtdXBkYXRlIHtcbiAgICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgICAgIC50aGVtZS1ncmF5IC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuaW1wb3J0YW50LXVwZGF0ZSB7XG4gICAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC5pbXBvcnRhbnQtdXBkYXRlIHtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmNyaXRpY2FsLXVwZGF0ZSB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLndyb25nLXRpbWUge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMi43cmVtOyB9XG4gICAgICAudGhlbWUtZGFyayAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLndyb25nLXRpbWUge1xuICAgICAgICBjb2xvcjogI2ZmNmYwMDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwIC50b29sdGlwLWlubmVyIC53cm9uZy10aW1lIHtcbiAgICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLndyb25nLXRpbWUge1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuaWNvbiB7XG4gICAgICBtYXJnaW46IDEuNXJlbSAwO1xuICAgICAgd2lkdGg6IDVyZW07XG4gICAgICBoZWlnaHQ6IDVyZW07IH1cbiAgICAgIC50aGVtZS1kYXJrIC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cbiAgICAgIC50aGVtZS1ncmF5IC51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIgLmljb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gIC51cGRhdGUtdG9vbHRpcC5uZy10b29sdGlwLWxlZnQtYm90dG9tIHtcbiAgICBtYXJnaW4tbGVmdDogLTEuNXJlbTsgfVxuICAgIC51cGRhdGUtdG9vbHRpcC5uZy10b29sdGlwLWxlZnQtYm90dG9tOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDAuNnJlbTtcbiAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM0MjUwNWYgIzQyNTA1ZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtbGVmdC1ib3R0b206YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMzZTQ2NGMgIzNlNDY0YzsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC51cGRhdGUtdG9vbHRpcC5uZy10b29sdGlwLWxlZnQtYm90dG9tOmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmZmZmICNmZmZmZmY7IH1cbiAgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQtYm90dG9tIHtcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtOyB9XG4gICAgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQtYm90dG9tOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwLjZyZW07XG4gICAgICBsZWZ0OiAtMXJlbTtcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnVwZGF0ZS10b29sdGlwLm5nLXRvb2x0aXAtcmlnaHQtYm90dG9tOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzQyNTA1ZiAjNDI1MDVmIHRyYW5zcGFyZW50OyB9XG4gICAgICAudGhlbWUtZ3JheSAudXBkYXRlLXRvb2x0aXAubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjM2U0NjRjICMzZTQ2NGMgdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAudXBkYXRlLXRvb2x0aXAubmctdG9vbHRpcC1yaWdodC1ib3R0b206YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjZmZmZmZmICNmZmZmZmYgdHJhbnNwYXJlbnQ7IH1cblxuLm5neC1jb250ZXh0bWVudSAuZHJvcGRvd24tbWVudSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDsgfVxuICAudGhlbWUtZGFyayAubmd4LWNvbnRleHRtZW51IC5kcm9wZG93bi1tZW51IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmIzNjQ0O1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KTsgfVxuICAudGhlbWUtZ3JheSAubmd4LWNvbnRleHRtZW51IC5kcm9wZG93bi1tZW51IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KTsgfVxuICAudGhlbWUtd2hpdGUgLm5neC1jb250ZXh0bWVudSAuZHJvcGRvd24tbWVudSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgICBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDEyMCwgMTIwLCAxMjAsIDAuNSk7IH1cblxuLm5neC1jb250ZXh0bWVudSBsaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogT3BlblNhbnMsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLm5neC1jb250ZXh0bWVudSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAuNWVtIDFlbTsgfVxuICAudGhlbWUtZGFyayAubmd4LWNvbnRleHRtZW51IGEge1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS1ncmF5IC5uZ3gtY29udGV4dG1lbnUgYSB7XG4gICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgLnRoZW1lLXdoaXRlIC5uZ3gtY29udGV4dG1lbnUgYSB7XG4gICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgLnRoZW1lLWRhcmsgLm5neC1jb250ZXh0bWVudSBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xuICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gIC50aGVtZS1ncmF5IC5uZ3gtY29udGV4dG1lbnUgYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzUxNTk2MDtcbiAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAudGhlbWUtd2hpdGUgLm5neC1jb250ZXh0bWVudSBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdC5uZy1zZWxlY3Qtc2luZ2xlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlIHtcbiAgICBsaW5lLWhlaWdodDogMS44cmVtOyB9XG4gIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIGhlaWdodDogNC4ycmVtOyB9XG4gICAgLnRoZW1lLWRhcmsgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1zZWxlY3QtY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzFlMjc7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS1ncmF5IC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxO1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtd2hpdGUgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1zZWxlY3QtY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAgIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy1pbnB1dCB7XG4gICAgICAgIHRvcDogYXV0bzsgfVxuICAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIHtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAudGhlbWUtZGFyayAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzFlMjc7IH1cbiAgICAudGhlbWUtZ3JheSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7IH1cbiAgICAudGhlbWUtd2hpdGUgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OyB9XG4gICAgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbiB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIHBhZGRpbmc6IDFyZW07IH1cbiAgICAgIC50aGVtZS1kYXJrIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxZTI3O1xuICAgICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgICAgLnRoZW1lLWdyYXkgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgICAgIGNvbG9yOiAjNDM0NTRiOyB9XG4gICAgICAudGhlbWUtZGFyayAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1tYXJrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU4LCA2OSwgODUsIDAuNSk7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtZ3JheSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1tYXJrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU4LCA2MiwgNjYsIDAuNSk7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tbWFya2VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjUpO1xuICAgICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAgICAgLnRoZW1lLWRhcmsgLm5nLXNlbGVjdC5jdXN0b20tc2VsZWN0IC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1NCwgNjgsIDAuNSk7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtZ3JheSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KTtcbiAgICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAgIC50aGVtZS13aGl0ZSAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI0LCAyMjQsIDIyNCwgMC41KTtcbiAgICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICAubmctc2VsZWN0LmN1c3RvbS1zZWxlY3QgLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB3aWR0aDogMXJlbTtcbiAgICAgIGhlaWdodDogMXJlbTsgfVxuICAgIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xuICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTsgfVxuICAgIC5uZy1zZWxlY3QuY3VzdG9tLXNlbGVjdCAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1kYXJrIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsLCAudGhlbWUtZGFyayBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtZGFyay5wbmcpO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCwgLnRoZW1lLWdyYXkgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIHtcbiAgYmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWdyYXkucG5nKTtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsLCAudGhlbWUtd2hpdGUgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIHtcbiAgYmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLXdoaXRlLnBuZyk7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5jb250ZW50IC5pY29uLmVycm9yLCAudGhlbWUtZGFyayBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmNvbnRlbnQgLmljb24uZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5jb250ZW50IC5pY29uLmVycm9yLCAudGhlbWUtZ3JheSBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmNvbnRlbnQgLmljb24uZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY29udGVudCAuaWNvbi5lcnJvciwgLnRoZW1lLXdoaXRlIGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY29udGVudCAuaWNvbi5lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNvbnRlbnQgLmljb24uc3VjY2VzcywgLnRoZW1lLWRhcmsgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jb250ZW50IC5pY29uLnN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5jb250ZW50IC5pY29uLnN1Y2Nlc3MsIC50aGVtZS1ncmF5IGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY29udGVudCAuaWNvbi5zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3Y2Y4ZDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNvbnRlbnQgLmljb24uc3VjY2VzcywgLnRoZW1lLXdoaXRlIGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY29udGVudCAuaWNvbi5zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjsgfVxuXG4udGhlbWUtZGFyayBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY29udGVudCAuaWNvbi5pbmZvLCAudGhlbWUtZGFyayBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmNvbnRlbnQgLmljb24uaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNvbnRlbnQgLmljb24uaW5mbywgLnRoZW1lLWdyYXkgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jb250ZW50IC5pY29uLmluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuY29udGVudCAuaWNvbi5pbmZvLCAudGhlbWUtd2hpdGUgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jb250ZW50IC5pY29uLmluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5hY3Rpb24tYnV0dG9uLCAudGhlbWUtZGFyayBhcHAtY29uZmlybS1tb2RhbCAubW9kYWwgLmFjdGlvbi1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmO1xuICBjb2xvcjogIzExMTkyMTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtbW9kYWwtY29udGFpbmVyIC5tb2RhbCAuYWN0aW9uLWJ1dHRvbiwgLnRoZW1lLWdyYXkgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5hY3Rpb24tYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTtcbiAgY29sb3I6ICMxYTFhMWE7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5hY3Rpb24tYnV0dG9uLCAudGhlbWUtd2hpdGUgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5hY3Rpb24tYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNsb3NlLWJ1dHRvbiAuaWNvbiwgLnRoZW1lLWRhcmsgYXBwLWNvbmZpcm0tbW9kYWwgLm1vZGFsIC5jbG9zZS1idXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1tb2RhbC1jb250YWluZXIgLm1vZGFsIC5jbG9zZS1idXR0b24gLmljb24sIC50aGVtZS1ncmF5IGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY2xvc2UtYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUxNTk2MDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLW1vZGFsLWNvbnRhaW5lciAubW9kYWwgLmNsb3NlLWJ1dHRvbiAuaWNvbiwgLnRoZW1lLXdoaXRlIGFwcC1jb25maXJtLW1vZGFsIC5tb2RhbCAuY2xvc2UtYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJyZW0gc29saWQgIzJiMzY0NDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJyZW0gc29saWQgIzJmMzQzODsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXRyYW5zYWN0aW9uLWRldGFpbHMgLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4ycmVtIHNvbGlkICNlYmViZWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXRyYW5zYWN0aW9uLWRldGFpbHMgLnRhYmxlIC5yb3cgLmNlbGwubGFiZWwge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC5sYWJlbCB7XG4gIGNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC5sYWJlbCB7XG4gIGNvbG9yOiAjYTBhNWFiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIC50YWJsZSAucm93IC5jZWxsLnZhbHVlIHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXRyYW5zYWN0aW9uLWRldGFpbHMgLnRhYmxlIC5yb3cgLmNlbGwudmFsdWUge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXRyYW5zYWN0aW9uLWRldGFpbHMgLnRhYmxlIC5yb3cgLmNlbGwudmFsdWUge1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC5rZXktdmFsdWUge1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHJhbnNhY3Rpb24tZGV0YWlscyAudGFibGUgLnJvdyAuY2VsbC5rZXktdmFsdWUge1xuICBjb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXRyYW5zYWN0aW9uLWRldGFpbHMgLnRhYmxlIC5yb3cgLmNlbGwua2V5LXZhbHVlIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXByb2dyZXNzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1wcm9ncmVzcy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXByb2dyZXNzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1wcm9ncmVzcy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDNmNGE7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXByb2dyZXNzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM2M2EzZTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXByb2dyZXNzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYzsgfVxuXG4udGhlbWUtZGFyayBhcHAtcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIgLnByb2dyZXNzLWJhci1mdWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHJvZ3Jlc3MtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIgLnByb2dyZXNzLWJhci1mdWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3Y2Y4ZDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXByb2dyZXNzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIC5wcm9ncmVzcy1iYXItZnVsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NmMxNzI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW9wZW4td2FsbGV0LW1vZGFsIC5tb2RhbCB7XG4gIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1kYXJrLnBuZyk7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1vcGVuLXdhbGxldC1tb2RhbCAubW9kYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtZ3JheS5wbmcpO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLW9wZW4td2FsbGV0LW1vZGFsIC5tb2RhbCB7XG4gIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC13aGl0ZS5wbmcpO1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2VuZC1tb2RhbCAubW9kYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtZGFyay5wbmcpO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2VuZC1tb2RhbCAubW9kYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtZ3JheS5wbmcpO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNlbmQtbW9kYWwgLm1vZGFsIHtcbiAgYmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLXdoaXRlLnBuZyk7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zZW5kLW1vZGFsIC5tb2RhbCAudGl0bGUge1xuICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgIzJiMzY0NDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2VuZC1tb2RhbCAubW9kYWwgLnRpdGxlIHtcbiAgYm9yZGVyLWJvdHRvbTogMC4ycmVtIHNvbGlkICMyZjM0Mzg7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zZW5kLW1vZGFsIC5tb2RhbCAudGl0bGUge1xuICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgI2ViZWJlYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2VuZC1tb2RhbCAubW9kYWwgLmFjdGlvbi1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmO1xuICBjb2xvcjogIzExMTkyMTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2VuZC1tb2RhbCAubW9kYWwgLmFjdGlvbi1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1O1xuICBjb2xvcjogIzFhMWExYTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNlbmQtbW9kYWwgLm1vZGFsIC5hY3Rpb24tYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cblxuYXBwLW1haW4sIGFwcC1jcmVhdGUtd2FsbGV0LCBhcHAtb3Blbi13YWxsZXQsIGFwcC1yZXN0b3JlLXdhbGxldCwgYXBwLXNlZWQtcGhyYXNlLCBhcHAtd2FsbGV0LWRldGFpbHMsIGFwcC1hc3NpZ24tYWxpYXMsIGFwcC1lZGl0LWFsaWFzLCBhcHAtdHJhbnNmZXItYWxpYXMsIGFwcC1zZXR0aW5ncywgYXBwLWxvZ2luIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIHBhZGRpbmc6IDNyZW07XG4gIG1pbi13aWR0aDogODVyZW07IH1cbiAgYXBwLW1haW4gLmNvbnRlbnQsIGFwcC1jcmVhdGUtd2FsbGV0IC5jb250ZW50LCBhcHAtb3Blbi13YWxsZXQgLmNvbnRlbnQsIGFwcC1yZXN0b3JlLXdhbGxldCAuY29udGVudCwgYXBwLXNlZWQtcGhyYXNlIC5jb250ZW50LCBhcHAtd2FsbGV0LWRldGFpbHMgLmNvbnRlbnQsIGFwcC1hc3NpZ24tYWxpYXMgLmNvbnRlbnQsIGFwcC1lZGl0LWFsaWFzIC5jb250ZW50LCBhcHAtdHJhbnNmZXItYWxpYXMgLmNvbnRlbnQsIGFwcC1zZXR0aW5ncyAuY29udGVudCwgYXBwLWxvZ2luIC5jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogM3JlbTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlOyB9XG4gICAgLnRoZW1lLWRhcmsgYXBwLW1haW4gLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC1jcmVhdGUtd2FsbGV0IC5jb250ZW50LCAudGhlbWUtZGFyayBhcHAtb3Blbi13YWxsZXQgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC1yZXN0b3JlLXdhbGxldCAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLXNlZWQtcGhyYXNlIC5jb250ZW50LCAudGhlbWUtZGFyayBhcHAtd2FsbGV0LWRldGFpbHMgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC1hc3NpZ24tYWxpYXMgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC1lZGl0LWFsaWFzIC5jb250ZW50LCAudGhlbWUtZGFyayBhcHAtdHJhbnNmZXItYWxpYXMgLmNvbnRlbnQsIC50aGVtZS1kYXJrIGFwcC1zZXR0aW5ncyAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLWxvZ2luIC5jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KTtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgYXBwLW1haW4gLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC1jcmVhdGUtd2FsbGV0IC5jb250ZW50LCAudGhlbWUtZ3JheSBhcHAtb3Blbi13YWxsZXQgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC1yZXN0b3JlLXdhbGxldCAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLXNlZWQtcGhyYXNlIC5jb250ZW50LCAudGhlbWUtZ3JheSBhcHAtd2FsbGV0LWRldGFpbHMgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC1hc3NpZ24tYWxpYXMgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC1lZGl0LWFsaWFzIC5jb250ZW50LCAudGhlbWUtZ3JheSBhcHAtdHJhbnNmZXItYWxpYXMgLmNvbnRlbnQsIC50aGVtZS1ncmF5IGFwcC1zZXR0aW5ncyAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLWxvZ2luIC5jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KTtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLXdoaXRlIGFwcC1tYWluIC5jb250ZW50LCAudGhlbWUtd2hpdGUgYXBwLWNyZWF0ZS13YWxsZXQgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtb3Blbi13YWxsZXQgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtcmVzdG9yZS13YWxsZXQgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtc2VlZC1waHJhc2UgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtd2FsbGV0LWRldGFpbHMgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtYXNzaWduLWFsaWFzIC5jb250ZW50LCAudGhlbWUtd2hpdGUgYXBwLWVkaXQtYWxpYXMgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtdHJhbnNmZXItYWxpYXMgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtbG9naW4gLmNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICBhcHAtbWFpbiAuY29udGVudCAuaGVhZCwgYXBwLWNyZWF0ZS13YWxsZXQgLmNvbnRlbnQgLmhlYWQsIGFwcC1vcGVuLXdhbGxldCAuY29udGVudCAuaGVhZCwgYXBwLXJlc3RvcmUtd2FsbGV0IC5jb250ZW50IC5oZWFkLCBhcHAtc2VlZC1waHJhc2UgLmNvbnRlbnQgLmhlYWQsIGFwcC13YWxsZXQtZGV0YWlscyAuY29udGVudCAuaGVhZCwgYXBwLWFzc2lnbi1hbGlhcyAuY29udGVudCAuaGVhZCwgYXBwLWVkaXQtYWxpYXMgLmNvbnRlbnQgLmhlYWQsIGFwcC10cmFuc2Zlci1hbGlhcyAuY29udGVudCAuaGVhZCwgYXBwLXNldHRpbmdzIC5jb250ZW50IC5oZWFkLCBhcHAtbG9naW4gLmNvbnRlbnQgLmhlYWQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDsgfVxuXG4udGhlbWUtZGFyayBhcHAtbWFpbiAuY29udGVudCAuYWRkLXdhbGxldCAuYWRkLXdhbGxldC1oZWxwIHtcbiAgY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLW1haW4gLmNvbnRlbnQgLmFkZC13YWxsZXQgLmFkZC13YWxsZXQtaGVscCB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtbWFpbiAuY29udGVudCAuYWRkLXdhbGxldCAuYWRkLXdhbGxldC1oZWxwIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW1haW4gLmNvbnRlbnQgLmFkZC13YWxsZXQgLmFkZC13YWxsZXQtaGVscCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLW1haW4gLmNvbnRlbnQgLmFkZC13YWxsZXQgLmFkZC13YWxsZXQtaGVscCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1tYWluIC5jb250ZW50IC5hZGQtd2FsbGV0IC5hZGQtd2FsbGV0LWhlbHAgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zZWVkLXBocmFzZSAuc2VlZC1waHJhc2UtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzFlMjc7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zZWVkLXBocmFzZSAuc2VlZC1waHJhc2UtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTJkMzE7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2VlZC1waHJhc2UgLnNlZWQtcGhyYXNlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0LWRldGFpbHMgLnNlZWQtcGhyYXNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MWUyNzsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0LWRldGFpbHMgLnNlZWQtcGhyYXNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI5MmQzMTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldC1kZXRhaWxzIC5zZWVkLXBocmFzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cblxuYXBwLXNldHRpbmdzIC5jb250ZW50IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLnRoZW1lLWRhcmsgYXBwLXNldHRpbmdzIC5jb250ZW50IC50aGVtZS1zZWxlY3Rpb24ge1xuICAgIGNvbG9yOiAjNTU2NTc2OyB9XG4gIC50aGVtZS1ncmF5IGFwcC1zZXR0aW5ncyAuY29udGVudCAudGhlbWUtc2VsZWN0aW9uIHtcbiAgICBjb2xvcjogIzU2NWM2MjsgfVxuICAudGhlbWUtd2hpdGUgYXBwLXNldHRpbmdzIC5jb250ZW50IC50aGVtZS1zZWxlY3Rpb24ge1xuICAgIGNvbG9yOiAjYTBhNWFiOyB9XG4gIC50aGVtZS1kYXJrIGFwcC1zZXR0aW5ncyAuY29udGVudCAuc2NhbGUtc2VsZWN0aW9uIC5idXR0b24tYmxvY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjMsIDMxLCAzOSwgMC41KTsgfVxuICAudGhlbWUtZ3JheSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI4LCAzMCwgMzMsIDAuNSk7IH1cbiAgLnRoZW1lLXdoaXRlIGFwcC1zZXR0aW5ncyAuY29udGVudCAuc2NhbGUtc2VsZWN0aW9uIC5idXR0b24tYmxvY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI0LCAyMjQsIDIyNCwgMC41KTsgfVxuICAudGhlbWUtZGFyayBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrIC5sYWJlbCB7XG4gICAgY29sb3I6ICM1NTY1NzY7IH1cbiAgLnRoZW1lLWdyYXkgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jayAubGFiZWwge1xuICAgIGNvbG9yOiAjNTY1YzYyOyB9XG4gIC50aGVtZS13aGl0ZSBhcHAtc2V0dGluZ3MgLmNvbnRlbnQgLnNjYWxlLXNlbGVjdGlvbiAuYnV0dG9uLWJsb2NrIC5sYWJlbCB7XG4gICAgY29sb3I6ICNhMGE1YWI7IH1cbiAgLnRoZW1lLWRhcmsgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jay5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cbiAgLnRoZW1lLWdyYXkgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jay5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cbiAgLnRoZW1lLXdoaXRlIGFwcC1zZXR0aW5ncyAuY29udGVudCAuc2NhbGUtc2VsZWN0aW9uIC5idXR0b24tYmxvY2suYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG4gIC50aGVtZS1kYXJrIGFwcC1zZXR0aW5ncyAuY29udGVudCAuc2NhbGUtc2VsZWN0aW9uIC5idXR0b24tYmxvY2suYWN0aXZlIC5sYWJlbCB7XG4gICAgY29sb3I6ICM0ZGIxZmY7IH1cbiAgLnRoZW1lLWdyYXkgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jay5hY3RpdmUgLmxhYmVsIHtcbiAgICBjb2xvcjogIzQyYTVmNTsgfVxuICAudGhlbWUtd2hpdGUgYXBwLXNldHRpbmdzIC5jb250ZW50IC5zY2FsZS1zZWxlY3Rpb24gLmJ1dHRvbi1ibG9jay5hY3RpdmUgLmxhYmVsIHtcbiAgICBjb2xvcjogIzJjOTVmMTsgfVxuXG5hcHAtbG9naW4ge1xuICBtaW4td2lkdGg6IGluaGVyaXQ7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxZjI3OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFjMWUyMTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1oZWFkZXIgaDMge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1oZWFkZXIgaDMge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtaGVhZGVyIGgzIHtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtaGVhZGVyIGJ1dHRvbiB7XG4gIGNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWhlYWRlciBidXR0b24ge1xuICBjb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtaGVhZGVyIGJ1dHRvbiB7XG4gIGNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC50ZXh0IHtcbiAgY29sb3I6ICM1NTY1NzY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC50ZXh0IHtcbiAgY29sb3I6ICM1NjVjNjI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAudGV4dCB7XG4gIGNvbG9yOiAjYTBhNWFiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLmluZGljYXRvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7XG4gIGNvbG9yOiAjMTExOTIxOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAuaW5kaWNhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTtcbiAgY29sb3I6ICMxYTFhMWE7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAuaW5kaWNhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzZjRhOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM2M2EzZTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93IC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciAuZmlsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudCAuc2lkZWJhci1hY2NvdW50LXJvdyAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cuYWNjb3VudC1zeW5jaHJvbml6YXRpb24ge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQgLnNpZGViYXItYWNjb3VudC1yb3cuYWNjb3VudC1zeW5jaHJvbml6YXRpb24ge1xuICBjb2xvcjogIzU2NWM2MjsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50IC5zaWRlYmFyLWFjY291bnQtcm93LmFjY291bnQtc3luY2hyb25pemF0aW9uIHtcbiAgY29sb3I6ICNhMGE1YWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KTtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KTtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWU4OGU1O1xuICBjb2xvcjogI2ZmZmZmZjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93IC50ZXh0IHtcbiAgY29sb3I6ICM1NTY1NzY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSAuc2lkZWJhci1hY2NvdW50LXJvdyAudGV4dCB7XG4gIGNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93IC50ZXh0IHtcbiAgY29sb3I6ICM5MWJhZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSAuc2lkZWJhci1hY2NvdW50LXJvdyAuaW5kaWNhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjtcbiAgY29sb3I6ICMxMTE5MjE7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSAuc2lkZWJhci1hY2NvdW50LXJvdyAuaW5kaWNhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTtcbiAgY29sb3I6ICMxYTFhMWE7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cgLmluZGljYXRvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cgLnN3aXRjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzIC5zaWRlYmFyLWFjY291bnRzLWxpc3QgLnNpZGViYXItYWNjb3VudC5hY3RpdmUgLnNpZGViYXItYWNjb3VudC1yb3cgLnN3aXRjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93IC5zd2l0Y2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93LmFjY291bnQtc3luY2hyb25pemF0aW9uIHtcbiAgY29sb3I6ICM1NTY1NzY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50LmFjdGl2ZSAuc2lkZWJhci1hY2NvdW50LXJvdy5hY2NvdW50LXN5bmNocm9uaXphdGlvbiB7XG4gIGNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQuYWN0aXZlIC5zaWRlYmFyLWFjY291bnQtcm93LmFjY291bnQtc3luY2hyb25pemF0aW9uIHtcbiAgY29sb3I6ICM5MWJhZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHMgLnNpZGViYXItYWNjb3VudHMtbGlzdCAuc2lkZWJhci1hY2NvdW50OmhvdmVyOm5vdCguYWN0aXZlKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTgsIDY5LCA4NSwgMC41KTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQ6aG92ZXI6bm90KC5hY3RpdmUpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OCwgNjIsIDY2LCAwLjUpOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1hY2NvdW50cyAuc2lkZWJhci1hY2NvdW50cy1saXN0IC5zaWRlYmFyLWFjY291bnQ6aG92ZXI6bm90KC5hY3RpdmUpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjUpOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLWFjY291bnRzOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQgMCUsICMxNzFmMjcgMTAwJSk7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHM6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCAwJSwgIzFjMWUyMSAxMDAlKTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItYWNjb3VudHM6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCAwJSwgd2hpdGUgMTAwJSk7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItc2V0dGluZ3Mge1xuICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgIzFmMjgzMzsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyB7XG4gIGJvcmRlci1ib3R0b206IDAuMnJlbSBzb2xpZCAjMmUzMzM3OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyB7XG4gIGJvcmRlci1ib3R0b206IDAuMnJlbSBzb2xpZCAjZWJlYmViOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbiBidXR0b24ge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24gYnV0dG9uIHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zaWRlYmFyIC5zaWRlYmFyLXNldHRpbmdzIC53cmFwLWJ1dHRvbiBidXR0b24ge1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24gYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24gYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItc2V0dGluZ3MgLndyYXAtYnV0dG9uIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNpZGViYXIgLnNpZGViYXItc2V0dGluZ3MgLndyYXAtYnV0dG9uLmFjdGl2ZSBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1NCwgNjgsIDAuNSkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlMGUwZTAgIWltcG9ydGFudDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24uYWN0aXZlIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2UwZTBlMCAhaW1wb3J0YW50OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24uYWN0aXZlIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTg4ZTUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24uYWN0aXZlIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmYgIWltcG9ydGFudDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2lkZWJhciAuc2lkZWJhci1zZXR0aW5ncyAud3JhcC1idXR0b24uYWN0aXZlIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjUgIWltcG9ydGFudDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXNpZGViYXIgLnNpZGViYXItc2V0dGluZ3MgLndyYXAtYnV0dG9uLmFjdGl2ZSBidXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7IH1cblxuLnN5bmNocm9uaXphdGlvbi1zdGF0dXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGZsZXg6IDAgMCA3cmVtO1xuICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyB7XG4gICAgY29sb3I6ICM1NTY1NzY7IH1cbiAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMge1xuICAgIGNvbG9yOiAjNTY1YzYyOyB9XG4gIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyB7XG4gICAgY29sb3I6ICNhMGE1YWI7IH1cbiAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vZmZsaW5lLCAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAub25saW5lIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMi4ycmVtOyB9XG4gICAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAub2ZmbGluZTpiZWZvcmUsIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vbmxpbmU6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICAgIGhlaWdodDogMS4ycmVtOyB9XG4gICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLm9mZmxpbmU6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cbiAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAub2ZmbGluZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAub2ZmbGluZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vbmxpbmU6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2RhOWQ7IH1cbiAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAub25saW5lOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDdjZjhkOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5vbmxpbmU6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0NmMxNzI7IH1cbiAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAuc3luY2luZywgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLmxvYWRpbmcge1xuICAgICAgbGluZS1oZWlnaHQ6IDVyZW07IH1cbiAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgaGVpZ2h0OiAwLjdyZW07XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nIC5wcm9ncmVzcy1iYXIge1xuICAgICAgICAgIGZsZXg6IDEgMCBhdXRvOyB9XG4gICAgICAgICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcgLnByb2dyZXNzLWJhciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzZjRhOyB9XG4gICAgICAgICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcgLnByb2dyZXNzLWJhciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzYzYTNlOyB9XG4gICAgICAgICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nIC5wcm9ncmVzcy1iYXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYzsgfVxuICAgICAgICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nIC5wcm9ncmVzcy1iYXIgLmZpbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgICAgICAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZyAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDsgfVxuICAgICAgICAgICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcgLnByb2dyZXNzLWJhciAuZmlsbCB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0N2NmOGQ7IH1cbiAgICAgICAgICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZyAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjsgfVxuICAgICAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZy5kb3dubG9hZGluZyAucHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzZjRhOyB9XG4gICAgICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nLmRvd25sb2FkaW5nIC5wcm9ncmVzcy1iYXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNjNhM2U7IH1cbiAgICAgICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nLmRvd25sb2FkaW5nIC5wcm9ncmVzcy1iYXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkY2RjZGM7IH1cbiAgICAgICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnN5bmNpbmcuZG93bmxvYWRpbmcgLnByb2dyZXNzLWJhciAuZmlsbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAgICAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZy5kb3dubG9hZGluZyAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG4gICAgICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAuc3luY2luZy5kb3dubG9hZGluZyAucHJvZ3Jlc3MtYmFyIC5maWxsIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG4gICAgICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC5zdGF0dXMtY29udGFpbmVyIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5zeW5jaW5nIC5wcm9ncmVzcy1wZXJjZW50IHtcbiAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMC43cmVtO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtOyB9XG4gICAgICAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAubG9hZGluZyB7XG4gICAgICAgIGFuaW1hdGlvbjogbW92ZSA1cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDEwMCUgMTAwJSwgY29sb3Itc3RvcCgwLjEyNSwgcmdiYSgwLCAwLCAwLCAwLjE1KSksIGNvbG9yLXN0b3AoMC4xMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC4yNSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjM3NSwgcmdiYSgwLCAwLCAwLCAwLjEpKSwgY29sb3Itc3RvcCgwLjM3NSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNSwgcmdiYSgwLCAwLCAwLCAwLjE1KSksIGNvbG9yLXN0b3AoMC42MjUsIHJnYmEoMCwgMCwgMCwgMC4xNSkpLCBjb2xvci1zdG9wKDAuNjI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC43NSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNzUsIHJnYmEoMCwgMCwgMCwgMC4xKSksIGNvbG9yLXN0b3AoMC44NzUsIHJnYmEoMCwgMCwgMCwgMC4xKSksIGNvbG9yLXN0b3AoMC44NzUsIHRyYW5zcGFyZW50KSwgdG8odHJhbnNwYXJlbnQpKSwgLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMTAwJSwgMTAwJSAwLCBjb2xvci1zdG9wKDAuMTI1LCByZ2JhKDAsIDAsIDAsIDAuMykpLCBjb2xvci1zdG9wKDAuMTI1LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC4yNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuMjUsIHJnYmEoMCwgMCwgMCwgMC4yNSkpLCBjb2xvci1zdG9wKDAuMzc1LCByZ2JhKDAsIDAsIDAsIDAuMjUpKSwgY29sb3Itc3RvcCgwLjM3NSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNSwgcmdiYSgwLCAwLCAwLCAwLjMpKSwgY29sb3Itc3RvcCgwLjYyNSwgcmdiYSgwLCAwLCAwLCAwLjMpKSwgY29sb3Itc3RvcCgwLjYyNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDAuNzUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgwLjc1LCByZ2JhKDAsIDAsIDAsIDAuMjUpKSwgY29sb3Itc3RvcCgwLjg3NSwgcmdiYSgwLCAwLCAwLCAwLjI1KSksIGNvbG9yLXN0b3AoMC44NzUsIHRyYW5zcGFyZW50KSwgdG8odHJhbnNwYXJlbnQpKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA3cmVtIDdyZW07XG4gICAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgICAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAubG9hZGluZyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDsgfVxuICAgICAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAuc3RhdHVzLWNvbnRhaW5lciAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciAubG9hZGluZyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ3Y2Y4ZDsgfVxuICAgICAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnN0YXR1cy1jb250YWluZXIgLnByb2dyZXNzLWJhci1jb250YWluZXIgLmxvYWRpbmcge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0NmMxNzI7IH1cbiAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLnVwZGF0ZS10ZXh0IHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS44cmVtO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLnVwZGF0ZS10ZXh0LnRpbWUge1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTsgfVxuICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pY29uIHtcbiAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgbWFyZ2luOiAwLjNyZW0gMCAwIDAuNnJlbTtcbiAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICBoZWlnaHQ6IDEuMnJlbTsgfVxuICAgICAgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24udXBkYXRlIHtcbiAgICAgICAgbWFzazogdXJsKC4vYXNzZXRzL2ljb25zL3VwZGF0ZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7IH1cbiAgICAgIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pY29uLnRpbWUge1xuICAgICAgICBtYXNrOiB1cmwoLi9hc3NldHMvaWNvbnMvdGltZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7IH1cbiAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuc3RhbmRhcmQge1xuICAgICAgY29sb3I6ICM0ZGIxZmY7IH1cbiAgICAudGhlbWUtZ3JheSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuc3RhbmRhcmQge1xuICAgICAgY29sb3I6ICM0MmE1ZjU7IH1cbiAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLnN0YW5kYXJkIHtcbiAgICAgIGNvbG9yOiAjMmM5NWYxOyB9XG4gICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmltcG9ydGFudCB7XG4gICAgICBjb2xvcjogI2ZmNmYwMDsgfVxuICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pbXBvcnRhbnQge1xuICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmltcG9ydGFudCB7XG4gICAgICBjb2xvcjogI2ZmNmYwMDsgfVxuICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5jcml0aWNhbCB7XG4gICAgICBjb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5jcml0aWNhbCB7XG4gICAgICBjb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuY3JpdGljYWwge1xuICAgICAgY29sb3I6ICNmZjUyNTI7IH1cbiAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAudGltZSB7XG4gICAgICBjb2xvcjogI2ZmNmYwMDsgfVxuICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC50aW1lIHtcbiAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC50aW1lIHtcbiAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24uc3RhbmRhcmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAgIC50aGVtZS1ncmF5IC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pY29uLnN0YW5kYXJkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cbiAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24uc3RhbmRhcmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuICAgIC50aGVtZS1kYXJrIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pY29uLmltcG9ydGFudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24uaW1wb3J0YW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtd2hpdGUgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24uaW1wb3J0YW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtZGFyayAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi5jcml0aWNhbCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24uY3JpdGljYWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuICAgIC50aGVtZS13aGl0ZSAuc3luY2hyb25pemF0aW9uLXN0YXR1cyAudXBkYXRlLWNvbnRhaW5lciAuaWNvbi5jcml0aWNhbCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG4gICAgLnRoZW1lLWRhcmsgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24udGltZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLWdyYXkgLnN5bmNocm9uaXphdGlvbi1zdGF0dXMgLnVwZGF0ZS1jb250YWluZXIgLmljb24udGltZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5zeW5jaHJvbml6YXRpb24tc3RhdHVzIC51cGRhdGUtY29udGFpbmVyIC5pY29uLnRpbWUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmYwMDsgfVxuXG5Aa2V5ZnJhbWVzIG1vdmUge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtN3JlbTsgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDdyZW07IH0gfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IHtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAuaGVhZGVyIGJ1dHRvbiB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLmhlYWRlciBidXR0b24ge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAuaGVhZGVyIGJ1dHRvbiB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLmhlYWRlciBidXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLmhlYWRlciBidXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC5oZWFkZXIgYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG5hcHAtd2FsbGV0IC5oZWFkZXIgYnV0dG9uOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAudGhlbWUtZGFyayBhcHAtd2FsbGV0IC5oZWFkZXIgYnV0dG9uOmRpc2FibGVkIC5pY29uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2OyB9XG4gIC50aGVtZS1ncmF5IGFwcC13YWxsZXQgLmhlYWRlciBidXR0b246ZGlzYWJsZWQgLmljb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NjVjNjI7IH1cbiAgLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLmhlYWRlciBidXR0b246ZGlzYWJsZWQgLmljb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MWJhZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAuaGVhZGVyIC5hbGlhcyAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAuaGVhZGVyIC5hbGlhcyAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLmhlYWRlciAuYWxpYXMgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLmFkZHJlc3Mge1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC5hZGRyZXNzIHtcbiAgY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLmFkZHJlc3Mge1xuICBjb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC5hZGRyZXNzIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC5hZGRyZXNzIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAuYWRkcmVzcyAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjMsIDMxLCAzOSwgMC41KTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyOCwgMzAsIDMzLCAwLjUpOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjQsIDIyNCwgMjI0LCAwLjUpOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiIC5pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmO1xuICBjb2xvcjogIzExMTkyMTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiIC5pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1O1xuICBjb2xvcjogIzFhMWExYTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYiAuaW5kaWNhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1NCwgNjgsIDAuNSk7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAudGFicyAudGFicy1oZWFkZXIgLnRhYi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM3LCA0MCwgNDMsIDAuNSk7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWIuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWI6aG92ZXI6bm90KC5hY3RpdmUpOm5vdCguZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OCwgNjksIDg1LCAwLjUpOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtaGVhZGVyIC50YWI6aG92ZXI6bm90KC5hY3RpdmUpOm5vdCguZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OCwgNjIsIDY2LCAwLjUpOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC50YWJzLWhlYWRlciAudGFiOmhvdmVyOm5vdCguYWN0aXZlKTpub3QoLmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAudGFicy1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MywgNTQsIDY4LCAwLjUpOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnRhYnMtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDQwLCA0MywgMC41KTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAudGFicyAudGFicy1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM3LCA0MCwgNDMsIDAuNSk7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24ge1xuICBib3JkZXItdG9wOiAwLjJyZW0gc29saWQgIzJiMzY0NDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24ge1xuICBib3JkZXItdG9wOiAwLjJyZW0gc29saWQgIzJmMzQzODsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIHtcbiAgYm9yZGVyLXRvcDogMC4ycmVtIHNvbGlkICNlYmViZWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYjM2NDQ7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciAucGFnaW5hdGlvbiBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmYzNDM4O1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC13YWxsZXQgLnRhYnMgLnBhZ2luYXRpb24td3JhcHBlciAucGFnaW5hdGlvbiBidXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MjAyYTtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIGJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjUyOTJkO1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIGJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24gYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhNDg1YTtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXdhbGxldCAudGFicyAucGFnaW5hdGlvbi13cmFwcGVyIC5wYWdpbmF0aW9uIGJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzODNlNDM7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtd2FsbGV0IC50YWJzIC5wYWdpbmF0aW9uLXdyYXBwZXIgLnBhZ2luYXRpb24gYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICM0MzQ1NGI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXNlbmQgLmZvcm0tc2VuZCAuc2VuZC1zZWxlY3Qge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2VuZCAuZm9ybS1zZW5kIC5zZW5kLXNlbGVjdCB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc2VuZCAuZm9ybS1zZW5kIC5zZW5kLXNlbGVjdCB7XG4gIGNvbG9yOiAjNDM0NTRiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zZW5kIC5mb3JtLXNlbmQgLnNlbmQtc2VsZWN0IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc2VuZCAuZm9ybS1zZW5kIC5zZW5kLXNlbGVjdCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zZW5kIC5mb3JtLXNlbmQgLnNlbmQtc2VsZWN0IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtc2VuZCAuZm9ybS1zZW5kIC5hZGRpdGlvbmFsLWRldGFpbHMge1xuICBib3JkZXI6IDAuMnJlbSBzb2xpZCAjMmIzNjQ0OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zZW5kIC5mb3JtLXNlbmQgLmFkZGl0aW9uYWwtZGV0YWlscyB7XG4gIGJvcmRlcjogMC4ycmVtIHNvbGlkICMyZjM0Mzg7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zZW5kIC5mb3JtLXNlbmQgLmFkZGl0aW9uYWwtZGV0YWlscyB7XG4gIGJvcmRlcjogMC4ycmVtIHNvbGlkICNlYmViZWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXJlY2VpdmUgLmJ0bi1jb3B5LWFkZHJlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1yZWNlaXZlIC5idG4tY29weS1hZGRyZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXJlY2VpdmUgLmJ0bi1jb3B5LWFkZHJlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyLmxvY2tlZC10cmFuc2FjdGlvbiB7XG4gIGNvbG9yOiAjNTU2NTc2OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyLmxvY2tlZC10cmFuc2FjdGlvbiB7XG4gIGNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ci5sb2NrZWQtdHJhbnNhY3Rpb24ge1xuICBjb2xvcjogI2EwYTVhYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rMSkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgyMDJhOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0bisxKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNTI5MmQ7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0bisxKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDRuKzIpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MjAyYTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rMikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjUyOTJkOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rMikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0biszKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCg0biszKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rMykge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4udGhlbWUtZGFyayBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rNCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoNG4rNCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDRuKzQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cyAuY29uZmlybWF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2Y0YTsgfVxuXG4udGhlbWUtZ3JheSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAuc3RhdHVzIC5jb25maXJtYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzYzYTNlOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAuc3RhdHVzIC5jb25maXJtYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMgLmNvbmZpcm1hdGlvbiAuZmlsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1Y2RhOWQ7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cyAuY29uZmlybWF0aW9uIC5maWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ3Y2Y4ZDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnN0YXR1cyAuY29uZmlybWF0aW9uIC5maWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2YzE3MjsgfVxuXG4udGhlbWUtZGFyayBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAubG9jay10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLmxvY2stdHJhbnNhY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAubG9jay10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnVubG9jay10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWhpc3RvcnkgdGFibGUgdGJvZHkgdHIgLnVubG9jay10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC51bmxvY2stdHJhbnNhY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMuc2VuZCAuc3RhdHVzLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAuc3RhdHVzLnNlbmQgLnN0YXR1cy10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMuc2VuZCAuc3RhdHVzLXRyYW5zYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtZGFyayBhcHAtaGlzdG9yeSB0YWJsZSB0Ym9keSB0ciAuc3RhdHVzLnJlY2VpdmVkIC5zdGF0dXMtdHJhbnNhY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNkYTlkOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMucmVjZWl2ZWQgLnN0YXR1cy10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0N2NmOGQ7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1oaXN0b3J5IHRhYmxlIHRib2R5IHRyIC5zdGF0dXMucmVjZWl2ZWQgLnN0YXR1cy10cmFuc2FjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NmMxNzI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24ubmV3LCAudGhlbWUtZGFyayBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5hbGVydCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24ubmV3LCAudGhlbWUtZ3JheSBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5hbGVydCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjUyNTI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLm5ldywgLnRoZW1lLXdoaXRlIGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLmFsZXJ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtZGFyayBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5wdXJjaGFzZSwgLnRoZW1lLWRhcmsgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24uc2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWNvbnRyYWN0cyAud3JhcC10YWJsZSAuY29udHJhY3QgLmljb24ucHVyY2hhc2UsIC50aGVtZS1ncmF5IGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLnNlbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtY29udHJhY3RzIC53cmFwLXRhYmxlIC5jb250cmFjdCAuaWNvbi5wdXJjaGFzZSwgLnRoZW1lLXdoaXRlIGFwcC1jb250cmFjdHMgLndyYXAtdGFibGUgLmNvbnRyYWN0IC5pY29uLnNlbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAucHVyY2hhc2Utc2VsZWN0IHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXB1cmNoYXNlIC5mb3JtLXB1cmNoYXNlIC5wdXJjaGFzZS1zZWxlY3Qge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXB1cmNoYXNlIC5mb3JtLXB1cmNoYXNlIC5wdXJjaGFzZS1zZWxlY3Qge1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXNlbGVjdCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXB1cmNoYXNlIC5mb3JtLXB1cmNoYXNlIC5wdXJjaGFzZS1zZWxlY3QgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXNlbGVjdCAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXB1cmNoYXNlIC5mb3JtLXB1cmNoYXNlIC5wdXJjaGFzZS1zdGF0ZXMge1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXN0YXRlcyB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLnB1cmNoYXNlLXN0YXRlcyB7XG4gIGNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAuYWRkaXRpb25hbC1kZXRhaWxzIHtcbiAgYm9yZGVyOiAwLjJyZW0gc29saWQgIzJiMzY0NDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHVyY2hhc2UgLmZvcm0tcHVyY2hhc2UgLmFkZGl0aW9uYWwtZGV0YWlscyB7XG4gIGJvcmRlcjogMC4ycmVtIHNvbGlkICMyZjM0Mzg7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1wdXJjaGFzZSAuZm9ybS1wdXJjaGFzZSAuYWRkaXRpb25hbC1kZXRhaWxzIHtcbiAgYm9yZGVyOiAwLjJyZW0gc29saWQgI2ViZWJlYjsgfVxuXG4udGhlbWUtZGFyayBhcHAtcHVyY2hhc2UgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDNmNGE7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXB1cmNoYXNlIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzYzYTNlOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHVyY2hhc2UgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2RjZGM7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXB1cmNoYXNlIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIC5wcm9ncmVzcy1iYXIgLnByb2dyZXNzLWJhci1mdWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjZGE5ZDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtcHVyY2hhc2UgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDdjZjhkOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtcHVyY2hhc2UgLnByb2dyZXNzLWJhci1jb250YWluZXIgLnByb2dyZXNzLWJhciAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDZjMTcyOyB9XG5cbmFwcC1tZXNzYWdlcyB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZCBzcGFuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLnRoZW1lLWRhcmsgYXBwLW1lc3NhZ2VzIHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxkIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTI1MjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtbWVzc2FnZXMgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGQgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtbWVzc2FnZXMgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGQgLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MjUyOyB9XG5cbi50aGVtZS1kYXJrIGFwcC10eXBpbmctbWVzc2FnZSAuaGVhZCAuaW50ZXJsb2N1dG9yIHtcbiAgY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXR5cGluZy1tZXNzYWdlIC5oZWFkIC5pbnRlcmxvY3V0b3Ige1xuICBjb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXR5cGluZy1tZXNzYWdlIC5oZWFkIC5pbnRlcmxvY3V0b3Ige1xuICBjb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2LmRhdGUge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2LmRhdGUge1xuICBjb2xvcjogIzU2NWM2MjsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5kYXRlIHtcbiAgY29sb3I6ICNhMGE1YWI7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5teSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYTM1NDQ7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5teSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDM2M2M7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYubXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbmFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYubXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAtMS4xcmVtO1xuICBib3JkZXI6IDEuMnJlbSBzb2xpZCB0cmFuc3BhcmVudDsgfVxuICAudGhlbWUtZGFyayBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2Lm15OmJlZm9yZSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzJhMzU0NDsgfVxuICAudGhlbWUtZ3JheSBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2Lm15OmJlZm9yZSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzMwMzYzYzsgfVxuICAudGhlbWUtd2hpdGUgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5teTpiZWZvcmUge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNmZmY7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5idWRkeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODIwMmE7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXR5cGluZy1tZXNzYWdlIC5tZXNzYWdlcy1jb250ZW50IC5tZXNzYWdlcy1saXN0IGRpdi5idWRkeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNTI5MmQ7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYuYnVkZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGVkOyB9XG5cbmFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYuYnVkZHk6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTEuMXJlbTtcbiAgdG9wOiAwO1xuICBib3JkZXI6IDEuMnJlbSBzb2xpZCB0cmFuc3BhcmVudDsgfVxuICAudGhlbWUtZGFyayBhcHAtdHlwaW5nLW1lc3NhZ2UgLm1lc3NhZ2VzLWNvbnRlbnQgLm1lc3NhZ2VzLWxpc3QgZGl2LmJ1ZGR5OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMTgyMDJhOyB9XG4gIC50aGVtZS1ncmF5IGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYuYnVkZHk6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMyNTI5MmQ7IH1cbiAgLnRoZW1lLXdoaXRlIGFwcC10eXBpbmctbWVzc2FnZSAubWVzc2FnZXMtY29udGVudCAubWVzc2FnZXMtbGlzdCBkaXYuYnVkZHk6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNlZGVkZWQ7IH1cblxuLnRoZW1lLWRhcmsgYXBwLXN0YWtpbmcgLmNoYXJ0LWhlYWRlciAuZ2VuZXJhbCAubGFiZWwge1xuICBjb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc3Rha2luZyAuY2hhcnQtaGVhZGVyIC5nZW5lcmFsIC5sYWJlbCB7XG4gIGNvbG9yOiAjNTY1YzYyOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc3Rha2luZyAuY2hhcnQtaGVhZGVyIC5nZW5lcmFsIC5sYWJlbCB7XG4gIGNvbG9yOiAjYTBhNWFiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zdGFraW5nIC5jaGFydC1oZWFkZXIgLmdlbmVyYWwgLm9wdGlvbnMge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc3Rha2luZyAuY2hhcnQtaGVhZGVyIC5nZW5lcmFsIC5vcHRpb25zIHtcbiAgY29sb3I6ICNlMGUwZTA7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zdGFraW5nIC5jaGFydC1oZWFkZXIgLmdlbmVyYWwgLm9wdGlvbnMge1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG5hcHAtc3Rha2luZyAuY2hhcnQtaGVhZGVyIC5zZWxlY3RlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZm9udC1zaXplOiAxLjZyZW07IH1cblxuLnRoZW1lLWRhcmsgYXBwLXN0YWtpbmcgLmNoYXJ0LW9wdGlvbnMgLnRpdGxlIHtcbiAgY29sb3I6ICM1NTY1NzY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLXN0YWtpbmcgLmNoYXJ0LW9wdGlvbnMgLnRpdGxlIHtcbiAgY29sb3I6ICM1NjVjNjI7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1zdGFraW5nIC5jaGFydC1vcHRpb25zIC50aXRsZSB7XG4gIGNvbG9yOiAjYTBhNWFiOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1zdGFraW5nIC5jaGFydC1vcHRpb25zIC5vcHRpb25zIGJ1dHRvbiB7XG4gIGNvbG9yOiAjZTBlMGUwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmIzNjQ0OyB9XG5cbi50aGVtZS1ncmF5IGFwcC1zdGFraW5nIC5jaGFydC1vcHRpb25zIC5vcHRpb25zIGJ1dHRvbiB7XG4gIGNvbG9yOiAjZTBlMGUwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtc3Rha2luZyAuY2hhcnQtb3B0aW9ucyAub3B0aW9ucyBidXR0b24ge1xuICBjb2xvcjogIzQzNDU0YjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsgfVxuXG4udGhlbWUtZGFyayBhcHAtc3Rha2luZyAuY2hhcnQtb3B0aW9ucyAub3B0aW9ucyBidXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NjU3NjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtc3Rha2luZyAuY2hhcnQtb3B0aW9ucyAub3B0aW9ucyBidXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUxNTk2MDsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLXN0YWtpbmcgLmNoYXJ0LW9wdGlvbnMgLm9wdGlvbnMgYnV0dG9uLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuLmlucHV0LWJsb2NrLWFsaWFzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5pbnB1dC1ibG9jay1hbGlhcyAuYWxpYXMtZHJvcGRvd24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDYuNXJlbTtcbiAgICBtYXgtaGVpZ2h0OiAxMHJlbTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC50aGVtZS1kYXJrIC5pbnB1dC1ibG9jay1hbGlhcyAuYWxpYXMtZHJvcGRvd24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE3MWUyNztcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgLmlucHV0LWJsb2NrLWFsaWFzIC5hbGlhcy1kcm9wZG93biB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxO1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtd2hpdGUgLmlucHV0LWJsb2NrLWFsaWFzIC5hbGlhcy1kcm9wZG93biB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICAuaW5wdXQtYmxvY2stYWxpYXMgLmFsaWFzLWRyb3Bkb3duIGRpdiB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIHBhZGRpbmc6IDFyZW07IH1cbiAgICAgIC50aGVtZS1kYXJrIC5pbnB1dC1ibG9jay1hbGlhcyAuYWxpYXMtZHJvcGRvd24gZGl2OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OCwgNjksIDg1LCAwLjUpOyB9XG4gICAgICAudGhlbWUtZ3JheSAuaW5wdXQtYmxvY2stYWxpYXMgLmFsaWFzLWRyb3Bkb3duIGRpdjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTgsIDYyLCA2NiwgMC41KTsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC5pbnB1dC1ibG9jay1hbGlhcyAuYWxpYXMtZHJvcGRvd24gZGl2OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjUpOyB9XG5cbmFwcC1jb250YWN0cywgYXBwLWFkZC1jb250YWN0cyxcbmFwcC1jb250YWN0LXNlbmQsIGFwcC1leHBvcnQtaW1wb3J0IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIHBhZGRpbmc6IDNyZW07XG4gIG1pbi13aWR0aDogODVyZW07IH1cbiAgYXBwLWNvbnRhY3RzIC5jb250ZW50LCBhcHAtYWRkLWNvbnRhY3RzIC5jb250ZW50LFxuICBhcHAtY29udGFjdC1zZW5kIC5jb250ZW50LCBhcHAtZXhwb3J0LWltcG9ydCAuY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDNyZW07XG4gICAgbWluLWhlaWdodDogMTAwJTsgfVxuICAgIC50aGVtZS1kYXJrIGFwcC1jb250YWN0cyAuY29udGVudCwgLnRoZW1lLWRhcmsgYXBwLWFkZC1jb250YWN0cyAuY29udGVudCwgLnRoZW1lLWRhcmtcbiAgICBhcHAtY29udGFjdC1zZW5kIC5jb250ZW50LCAudGhlbWUtZGFyayBhcHAtZXhwb3J0LWltcG9ydCAuY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1NCwgNjgsIDAuNSk7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS1ncmF5IGFwcC1jb250YWN0cyAuY29udGVudCwgLnRoZW1lLWdyYXkgYXBwLWFkZC1jb250YWN0cyAuY29udGVudCwgLnRoZW1lLWdyYXlcbiAgICBhcHAtY29udGFjdC1zZW5kIC5jb250ZW50LCAudGhlbWUtZ3JheSBhcHAtZXhwb3J0LWltcG9ydCAuY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM3LCA0MCwgNDMsIDAuNSk7XG4gICAgICBjb2xvcjogI2UwZTBlMDsgfVxuICAgIC50aGVtZS13aGl0ZSBhcHAtY29udGFjdHMgLmNvbnRlbnQsIC50aGVtZS13aGl0ZSBhcHAtYWRkLWNvbnRhY3RzIC5jb250ZW50LCAudGhlbWUtd2hpdGVcbiAgICBhcHAtY29udGFjdC1zZW5kIC5jb250ZW50LCAudGhlbWUtd2hpdGUgYXBwLWV4cG9ydC1pbXBvcnQgLmNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICBhcHAtY29udGFjdHMgLmNvbnRlbnQgLmhlYWQsIGFwcC1hZGQtY29udGFjdHMgLmNvbnRlbnQgLmhlYWQsXG4gICAgYXBwLWNvbnRhY3Qtc2VuZCAuY29udGVudCAuaGVhZCwgYXBwLWV4cG9ydC1pbXBvcnQgLmNvbnRlbnQgLmhlYWQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDsgfVxuXG4udGhlbWUtZGFyayBhcHAtY29udGFjdHMgdGFibGUgLmFsaWFzIHtcbiAgY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWNvbnRhY3RzIHRhYmxlIC5hbGlhcyB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtY29udGFjdHMgdGFibGUgLmFsaWFzIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWNvbnRhY3RzIHRhYmxlIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cblxuLnRoZW1lLWdyYXkgYXBwLWNvbnRhY3RzIHRhYmxlIGJ1dHRvbiAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250YWN0cyB0YWJsZSBidXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1jb250YWN0cyB0YWJsZSBidXR0b24gc3BhbiB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1jb250YWN0cyB0YWJsZSBidXR0b24gc3BhbiB7XG4gIGNvbG9yOiAjZTBlMGUwOyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtY29udGFjdHMgdGFibGUgYnV0dG9uIHNwYW4ge1xuICBjb2xvcjogIzQzNDU0YjsgfVxuXG4udGhlbWUtZGFyayBhcHAtY29udGFjdHMgLmZvb3RlciB7XG4gIGNvbG9yOiAjNGRiMWZmOyB9XG5cbi50aGVtZS1ncmF5IGFwcC1jb250YWN0cyAuZm9vdGVyIHtcbiAgY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250YWN0cyAuZm9vdGVyIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLnRoZW1lLWRhcmsgYXBwLWNvbnRhY3RzIC5mb290ZXIgLmltcG9ydC1idG4ge1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtY29udGFjdHMgLmZvb3RlciAuaW1wb3J0LWJ0biB7XG4gIGNvbG9yOiAjNDJhNWY1OyB9XG5cbi50aGVtZS13aGl0ZSBhcHAtY29udGFjdHMgLmZvb3RlciAuaW1wb3J0LWJ0biB7XG4gIGNvbG9yOiAjMmM5NWYxOyB9XG5cbi50aGVtZS1kYXJrIGFwcC1jb250YWN0cyAuZm9vdGVyIC5pbXBvcnQtYnRuIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtY29udGFjdHMgLmZvb3RlciAuaW1wb3J0LWJ0biAuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cblxuLnRoZW1lLXdoaXRlIGFwcC1jb250YWN0cyAuZm9vdGVyIC5pbXBvcnQtYnRuIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjOTVmMTsgfVxuXG4udGhlbWUtZGFyayBhcHAtY29udGFjdC1zZW5kIC53YWxsZXRzLXNlbGVjdGlvbiBidXR0b24ge1xuICBjb2xvcjogIzRkYjFmZjsgfVxuXG4udGhlbWUtZ3JheSBhcHAtY29udGFjdC1zZW5kIC53YWxsZXRzLXNlbGVjdGlvbiBidXR0b24ge1xuICBjb2xvcjogIzQyYTVmNTsgfVxuXG4udGhlbWUtd2hpdGUgYXBwLWNvbnRhY3Qtc2VuZCAud2FsbGV0cy1zZWxlY3Rpb24gYnV0dG9uIHtcbiAgY29sb3I6ICMyYzk1ZjE7IH1cblxuLmZvcm0tZGV0YWlscyB7XG4gIG1hcmdpbi10b3A6IDEuOHJlbTsgfVxuICAuZm9ybS1kZXRhaWxzIC5pbnB1dC1ibG9jazpmaXJzdC1jaGlsZCB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuZm9ybS1kZXRhaWxzIC53YWxsZXQtYnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIC5mb3JtLWRldGFpbHMgLndhbGxldC1idXR0b25zIGJ1dHRvbiB7XG4gICAgICBtYXJnaW46IDIuOXJlbSAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDE1cmVtOyB9XG5cbi5mb3JtLXNlZWQgbGFiZWwge1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNHJlbTsgfVxuICAudGhlbWUtZGFyayAuZm9ybS1zZWVkIGxhYmVsIHtcbiAgICBjb2xvcjogIzU1NjU3NjsgfVxuICAudGhlbWUtZ3JheSAuZm9ybS1zZWVkIGxhYmVsIHtcbiAgICBjb2xvcjogIzU2NWM2MjsgfVxuICAudGhlbWUtd2hpdGUgLmZvcm0tc2VlZCBsYWJlbCB7XG4gICAgY29sb3I6ICNhMGE1YWI7IH1cblxuLmZvcm0tc2VlZCAuZm9ybS1jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDNyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC50aGVtZS1kYXJrIC5mb3JtLXNlZWQgLmZvcm0tY29udGVudCB7XG4gICAgYm9yZGVyOiAycHggc29saWQgIzJiMzY0NDsgfVxuICAudGhlbWUtZ3JheSAuZm9ybS1zZWVkIC5mb3JtLWNvbnRlbnQge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICMyZjM0Mzg7IH1cbiAgLnRoZW1lLXdoaXRlIC5mb3JtLXNlZWQgLmZvcm0tY29udGVudCB7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2ViZWJlYjsgfVxuXG4uZm9ybS1zZWVkIC50ZXh0LWNvcmFsIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC50aGVtZS1kYXJrIC5mb3JtLXNlZWQgLnRleHQtY29yYWwge1xuICAgIGNvbG9yOiAjNGRiMWZmOyB9XG4gIC50aGVtZS1ncmF5IC5mb3JtLXNlZWQgLnRleHQtY29yYWwge1xuICAgIGNvbG9yOiAjNDJhNWY1OyB9XG4gIC50aGVtZS13aGl0ZSAuZm9ybS1zZWVkIC50ZXh0LWNvcmFsIHtcbiAgICBjb2xvcjogIzJjOTVmMTsgfVxuXG4uZm9ybS1zZWVkIC5zZWVkLXBocmFzZS1mb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1heC13aWR0aDogMzhyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5mb3JtLXNlZWQgLnNlZWQtcGhyYXNlLWZvcm0gLmlucHV0LWJsb2NrLFxuICAuZm9ybS1zZWVkIC5zZWVkLXBocmFzZS1mb3JtIGJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmZvcm0tc2VlZCAuc2VlZC1waHJhc2UtZm9ybSAuZXJyb3ItbWVzc2FnZSB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAgIC50aGVtZS1kYXJrIC5mb3JtLXNlZWQgLnNlZWQtcGhyYXNlLWZvcm0gLmVycm9yLW1lc3NhZ2Uge1xuICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtZ3JheSAuZm9ybS1zZWVkIC5zZWVkLXBocmFzZS1mb3JtIC5lcnJvci1tZXNzYWdlIHtcbiAgICAgIGNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5mb3JtLXNlZWQgLnNlZWQtcGhyYXNlLWZvcm0gLmVycm9yLW1lc3NhZ2Uge1xuICAgICAgY29sb3I6ICNmZjZmMDA7IH1cbiAgLmZvcm0tc2VlZCAuc2VlZC1waHJhc2UtZm9ybSAuc2VjdXJlZC1zZWVkIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgLnRoZW1lLWRhcmsgLmZvcm0tc2VlZCAuc2VlZC1waHJhc2UtZm9ybSAuc2VjdXJlZC1zZWVkIHtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgLmZvcm0tc2VlZCAuc2VlZC1waHJhc2UtZm9ybSAuc2VjdXJlZC1zZWVkIHtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLXdoaXRlIC5mb3JtLXNlZWQgLnNlZWQtcGhyYXNlLWZvcm0gLnNlY3VyZWQtc2VlZCB7XG4gICAgICBjb2xvcjogI2EwYTVhYjsgfVxuICAgIC5mb3JtLXNlZWQgLnNlZWQtcGhyYXNlLWZvcm0gLnNlY3VyZWQtc2VlZCAuaWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuMnJlbTsgfVxuICAuZm9ybS1zZWVkIC5zZWVkLXBocmFzZS1mb3JtIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIC5mb3JtLXNlZWQgLnNlZWQtcGhyYXNlLWZvcm0gYnV0dG9uIC5pY29uIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtOyB9XG5cbi5zZWVkLXBocmFzZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9XG4gIC5zZWVkLXBocmFzZS10aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC50aGVtZS1kYXJrIC5zZWVkLXBocmFzZS10aXRsZSB7XG4gICAgICBjb2xvcjogIzU1NjU3NjsgfVxuICAgIC50aGVtZS1ncmF5IC5zZWVkLXBocmFzZS10aXRsZSB7XG4gICAgICBjb2xvcjogIzU2NWM2MjsgfVxuICAgIC50aGVtZS13aGl0ZSAuc2VlZC1waHJhc2UtdGl0bGUge1xuICAgICAgY29sb3I6ICNhMGE1YWI7IH1cbiAgICAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgLmljb24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHdpZHRoOiAxLjdyZW07XG4gICAgICAgIGhlaWdodDogMS43cmVtOyB9XG4gICAgICAgIC5zZWVkLXBocmFzZS10aXRsZSAucmlnaHQtcGFydCAuaWNvbi5jb3B5IHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMnJlbTtcbiAgICAgICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvY29weS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7IH1cbiAgICAgICAgICAudGhlbWUtZGFyayAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgLmljb24uY29weSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG4gICAgICAgICAgLnRoZW1lLWdyYXkgLnNlZWQtcGhyYXNlLXRpdGxlIC5yaWdodC1wYXJ0IC5pY29uLmNvcHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuICAgICAgICAgIC50aGVtZS13aGl0ZSAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgLmljb24uY29weSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG4gICAgICAgICAgLnNlZWQtcGhyYXNlLXRpdGxlIC5yaWdodC1wYXJ0IC5pY29uLmNvcHk6aG92ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMC43NTsgfVxuICAgICAgICAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgLmljb24uY29waWVkIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMnJlbTtcbiAgICAgICAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvY29tcGxldGUtdGVzdHdhbGxldC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7IH1cbiAgICAgICAgICAudGhlbWUtZGFyayAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgLmljb24uY29waWVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZGIxZmY7IH1cbiAgICAgICAgICAudGhlbWUtZ3JheSAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgLmljb24uY29waWVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MmE1ZjU7IH1cbiAgICAgICAgICAudGhlbWUtd2hpdGUgLnNlZWQtcGhyYXNlLXRpdGxlIC5yaWdodC1wYXJ0IC5pY29uLmNvcGllZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM5NWYxOyB9XG4gICAgICAgIC5zZWVkLXBocmFzZS10aXRsZSAucmlnaHQtcGFydCAuaWNvbi5zZWN1cmVkLCAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgLmljb24udW5zZWN1cmVkIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMS4ycmVtOyB9XG4gICAgICAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMi40cmVtO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgICAuc2VlZC1waHJhc2UtdGl0bGUgLnJpZ2h0LXBhcnQgc3BhbiAuaWNvbiB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMnJlbTsgfVxuICAuc2VlZC1waHJhc2UtY29udGVudCB7XG4gICAgcGFkZGluZzogMXJlbSAwIDFyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICAgLnRoZW1lLWRhcmsgLnNlZWQtcGhyYXNlLWNvbnRlbnQge1xuICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMyYjM2NDQ7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzJiMzY0NDsgfVxuICAgIC50aGVtZS1ncmF5IC5zZWVkLXBocmFzZS1jb250ZW50IHtcbiAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjMmYzNDM4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMyZjM0Mzg7IH1cbiAgICAudGhlbWUtd2hpdGUgLnNlZWQtcGhyYXNlLWNvbnRlbnQge1xuICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNlYmViZWI7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ViZWJlYjsgfVxuICAgIC5zZWVkLXBocmFzZS1jb250ZW50IC5pdGVtIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcGFkZGluZzogMCAycmVtO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDcpO1xuICAgICAgbWluLWhlaWdodDogMzVweDtcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gICAgICAudGhlbWUtZGFyayAuc2VlZC1waHJhc2UtY29udGVudCAuaXRlbSB7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtZ3JheSAuc2VlZC1waHJhc2UtY29udGVudCAuaXRlbSB7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnNlZWQtcGhyYXNlLWNvbnRlbnQgLml0ZW0ge1xuICAgICAgICBjb2xvcjogIzQzNDU0YjsgfVxuICAgICAgLnRoZW1lLWRhcmsgLnNlZWQtcGhyYXNlLWNvbnRlbnQgLml0ZW0uZGFyayB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxODIwMmE7IH1cbiAgICAgIC50aGVtZS1ncmF5IC5zZWVkLXBocmFzZS1jb250ZW50IC5pdGVtLmRhcmsge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyZDMxOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnNlZWQtcGhyYXNlLWNvbnRlbnQgLml0ZW0uZGFyayB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cbiAgLnNlZWQtcGhyYXNlLWZvb3RlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLnNlZWQtcGhyYXNlLWZvb3RlciAudGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICBsaW5lLWhlaWdodDogMi40cmVtOyB9XG4gICAgICAudGhlbWUtZGFyayAuc2VlZC1waHJhc2UtZm9vdGVyIC50aXRsZSB7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtZ3JheSAuc2VlZC1waHJhc2UtZm9vdGVyIC50aXRsZSB7XG4gICAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgICAudGhlbWUtd2hpdGUgLnNlZWQtcGhyYXNlLWZvb3RlciAudGl0bGUge1xuICAgICAgICBjb2xvcjogIzQzNDU0YjsgfVxuXG4uaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogMS42cmVtO1xuICBoZWlnaHQ6IDEuNnJlbTsgfVxuICAuaWNvbi5zZWN1cmVkIHtcbiAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvc2VjdXJlZC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7IH1cbiAgICAudGhlbWUtZGFyayAuaWNvbi5zZWN1cmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2RhOWQ7IH1cbiAgICAudGhlbWUtZ3JheSAuaWNvbi5zZWN1cmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0N2NmOGQ7IH1cbiAgICAudGhlbWUtd2hpdGUgLmljb24uc2VjdXJlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDZjMTcyOyB9XG4gIC5pY29uLmluZm8ge1xuICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9pbmZvLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjsgfVxuICAgIC50aGVtZS1kYXJrIC5pY29uLmluZm8ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAgIC50aGVtZS1ncmF5IC5pY29uLmluZm8ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuICAgIC50aGVtZS13aGl0ZSAuaWNvbi5pbmZvIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cbiAgLmljb24udW5zZWN1cmVkIHtcbiAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvdW5zZWN1cmVkLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjsgfVxuICAgIC50aGVtZS1kYXJrIC5pY29uLnVuc2VjdXJlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjAwOyB9XG4gICAgLnRoZW1lLWdyYXkgLmljb24udW5zZWN1cmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cbiAgICAudGhlbWUtd2hpdGUgLmljb24udW5zZWN1cmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMDA7IH1cbiAgLmljb24uc2FmZXR5IHtcbiAgICBtYXNrOiB1cmwofnNyYy9hc3NldHMvaWNvbnMvc2FmZXR5LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjsgfVxuICAgIC50aGVtZS1kYXJrIC5pY29uLnNhZmV0eSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOTIxOyB9XG4gICAgLnRoZW1lLWdyYXkgLmljb24uc2FmZXR5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYTFhMWE7IH1cbiAgICAudGhlbWUtd2hpdGUgLmljb24uc2FmZXR5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cblxuLndyYXAtYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLndyYXAtYnV0dG9ucyAuc2VlZC1waHJhc2UtYnV0dG9uIHtcbiAgICBtYXJnaW46IDIuOHJlbSAwO1xuICAgIHdpZHRoOiAyNSU7XG4gICAgbWluLXdpZHRoOiAxLjVyZW07IH1cbiAgLndyYXAtYnV0dG9ucyAuY29weS1idXR0b24ge1xuICAgIG1hcmdpbjogMi44cmVtIDFyZW07XG4gICAgd2lkdGg6IDI1JTtcbiAgICBtaW4td2lkdGg6IDEuNXJlbTsgfVxuXG4uaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgcGFkZGluZzogMCAzcmVtO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzcmVtOyB9XG4gIC50aGVtZS1kYXJrIC5oZWFkIHtcbiAgICBjb2xvcjogIzRkYjFmZjsgfVxuICAudGhlbWUtZ3JheSAuaGVhZCB7XG4gICAgY29sb3I6ICM0MmE1ZjU7IH1cbiAgLnRoZW1lLXdoaXRlIC5oZWFkIHtcbiAgICBjb2xvcjogIzJjOTVmMTsgfVxuICAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCksIC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG91dGxpbmUtc3R5bGU6IG5vbmU7IH1cbiAgICAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIsIC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwLjVyZW07XG4gICAgICByaWdodDogLTEuNXJlbTtcbiAgICAgIHdpZHRoOiAwLjlyZW07XG4gICAgICBoZWlnaHQ6IDAuOXJlbTtcbiAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1yaWdodC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgICBtYXNrLXNpemU6IGNvdmVyOyB9XG4gICAgICAudGhlbWUtZGFyayAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIsIC50aGVtZS1kYXJrIC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGRiMWZmOyB9XG4gICAgICAudGhlbWUtZ3JheSAuaGVhZCAuYnJlYWRjcnVtYnMgPiBzcGFuOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIsIC50aGVtZS1ncmF5IC5oZWFkIC5icmVhZGNydW1icyBhOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDJhNWY1OyB9XG4gICAgICAudGhlbWUtd2hpdGUgLmhlYWQgLmJyZWFkY3J1bWJzID4gc3Bhbjpub3QoOmxhc3QtY2hpbGQpOmFmdGVyLCAudGhlbWUtd2hpdGUgLmhlYWQgLmJyZWFkY3J1bWJzIGE6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cbiAgLmhlYWQgLmJhY2stYnRuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM0ZGIxZmY7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5oZWFkIC5iYWNrLWJ0biAuaWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuN3JlbTtcbiAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9iYWNrLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAwLjlyZW07XG4gICAgICBoZWlnaHQ6IDAuOXJlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgLmhlYWQgLmJhY2stYnRuIC5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkYjFmZjsgfVxuICAgICAgLnRoZW1lLWdyYXkgLmhlYWQgLmJhY2stYnRuIC5pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyYTVmNTsgfVxuICAgICAgLnRoZW1lLXdoaXRlIC5oZWFkIC5iYWNrLWJ0biAuaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzk1ZjE7IH1cblxuLnNjcm9sbGVkLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgd2lkdGg6IDFyZW07XG4gIGhlaWdodDogMXJlbTsgfVxuXG4uc2Nyb2xsZWQtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4uc2Nyb2xsZWQtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTsgfVxuXG4uc2Nyb2xsZWQtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2OyB9XG5cbnRhYmxlIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIHRhYmxlIHRoZWFkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgLnRoZW1lLWRhcmsgdGFibGUgdGhlYWQge1xuICAgICAgY29sb3I6ICM1NTY1NzY7IH1cbiAgICAudGhlbWUtZ3JheSB0YWJsZSB0aGVhZCB7XG4gICAgICBjb2xvcjogIzU2NWM2MjsgfVxuICAgIC50aGVtZS13aGl0ZSB0YWJsZSB0aGVhZCB7XG4gICAgICBjb2xvcjogI2EwYTVhYjsgfVxuICAgIHRhYmxlIHRoZWFkIHRyIHtcbiAgICAgIGhlaWdodDogNHJlbTsgfVxuICAgICAgdGFibGUgdGhlYWQgdHIgdGgge1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyB9XG4gICAgICAgIHRhYmxlIHRoZWFkIHRyIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cbiAgICAgICAgdGFibGUgdGhlYWQgdHIgdGg6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTsgfVxuICB0YWJsZSB0Ym9keSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC50aGVtZS1kYXJrIHRhYmxlIHRib2R5IHtcbiAgICAgIGNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLnRoZW1lLWdyYXkgdGFibGUgdGJvZHkge1xuICAgICAgY29sb3I6ICNlMGUwZTA7IH1cbiAgICAudGhlbWUtd2hpdGUgdGFibGUgdGJvZHkge1xuICAgICAgY29sb3I6ICM0MzQ1NGI7IH1cbiAgICB0YWJsZSB0Ym9keSB0ciB7XG4gICAgICBoZWlnaHQ6IDMuNXJlbTsgfVxuICAgICAgLnRoZW1lLWRhcmsgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgyMDJhOyB9XG4gICAgICAudGhlbWUtZ3JheSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyNTI5MmQ7IH1cbiAgICAgIC50aGVtZS13aGl0ZSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgICAgIHRhYmxlIHRib2R5IHRyIHRkIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuN3JlbTtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBtYXgtd2lkdGg6IDIwcmVtOyB9XG4gICAgICAgIHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cbiAgICAgICAgdGFibGUgdGJvZHkgdHIgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1MaWdodC50dGYpO1xuICBmb250LXdlaWdodDogMzAwOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogT3BlblNhbnM7XG4gIHNyYzogdXJsKH5zcmMvYXNzZXRzL2ZvbnRzL09wZW5TYW5zLVJlZ3VsYXIudHRmKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1TZW1pQm9sZC50dGYpO1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogT3BlblNhbnM7XG4gIHNyYzogdXJsKH5zcmMvYXNzZXRzL2ZvbnRzL09wZW5TYW5zLUJvbGQudHRmKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1FeHRyYUJvbGQudHRmKTtcbiAgZm9udC13ZWlnaHQ6IDgwMDsgfVxuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEwcHg7IH1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBPcGVuU2Fucywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDB2aDsgfVxuICBib2R5LnRoZW1lLWRhcmsge1xuICAgIGJhY2tncm91bmQ6ICMxMzE5MjEgdXJsKFwiYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWRhcmsucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICBib2R5LnRoZW1lLWdyYXkge1xuICAgIGJhY2tncm91bmQ6ICMxMDE0MTcgdXJsKFwiYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWdyYXkucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICBib2R5LnRoZW1lLXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlZWVlIHVybChcImFzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC13aGl0ZS5wbmdcIikgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4gIGJvZHkgYXBwLXJvb3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG5cbi51cGRhdGUtdG9vbHRpcCAudG9vbHRpcC1pbm5lciAuaWNvbiB7XG4gIG1hc2s6IHVybChhc3NldHMvaWNvbnMvdXBkYXRlLWFsZXJ0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjsgfVxuIiwiLm5nLXNlbGVjdC5uZy1zZWxlY3Qtb3BlbmVkPi5uZy1zZWxlY3QtY29udGFpbmVye2JhY2tncm91bmQ6I2ZmZjtib3JkZXItY29sb3I6I2IzYjNiMyAjY2NjICNkOWQ5ZDl9Lm5nLXNlbGVjdC5uZy1zZWxlY3Qtb3BlbmVkPi5uZy1zZWxlY3QtY29udGFpbmVyOmhvdmVye2JveC1zaGFkb3c6bm9uZX0ubmctc2VsZWN0Lm5nLXNlbGVjdC1vcGVuZWQ+Lm5nLXNlbGVjdC1jb250YWluZXIgLm5nLWFycm93e3RvcDotMnB4O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjOTk5O2JvcmRlci13aWR0aDowIDVweCA1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3Qtb3BlbmVkPi5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy1hcnJvdzpob3Zlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzMzM30ubmctc2VsZWN0Lm5nLXNlbGVjdC1vcGVuZWQubmctc2VsZWN0LWJvdHRvbT4ubmctc2VsZWN0LWNvbnRhaW5lcntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1vcGVuZWQubmctc2VsZWN0LXRvcD4ubmctc2VsZWN0LWNvbnRhaW5lcntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1mb2N1c2VkOm5vdCgubmctc2VsZWN0LW9wZW5lZCk+Lm5nLXNlbGVjdC1jb250YWluZXJ7Ym9yZGVyLWNvbG9yOiMwMDdlZmY7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjA3NSksMCAwIDAgM3B4IHJnYmEoMCwxMjYsMjU1LDAuMSl9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtZGlzYWJsZWQ+Lm5nLXNlbGVjdC1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5fS5uZy1zZWxlY3QgLm5nLWhhcy12YWx1ZSAubmctcGxhY2Vob2xkZXJ7ZGlzcGxheTpub25lfS5uZy1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlcjoxcHggc29saWQgI2NjYzttaW4taGVpZ2h0OjM2cHg7YWxpZ24taXRlbXM6Y2VudGVyfS5uZy1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXI6aG92ZXJ7Ym94LXNoYWRvdzowIDFweCAwIHJnYmEoMCwwLDAsMC4wNil9Lm5nLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVye2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nLWxlZnQ6MTBweH1bZGlyPVwicnRsXCJdIC5uZy1zZWxlY3QgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lcntwYWRkaW5nLXJpZ2h0OjEwcHg7cGFkZGluZy1sZWZ0OjB9Lm5nLXNlbGVjdCAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy1wbGFjZWhvbGRlcntjb2xvcjojOTk5fS5uZy1zZWxlY3Qubmctc2VsZWN0LXNpbmdsZSAubmctc2VsZWN0LWNvbnRhaW5lcntoZWlnaHQ6MzZweH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1zaW5nbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctaW5wdXR7dG9wOjVweDtsZWZ0OjA7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDo1MHB4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3Qtc2luZ2xlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLWlucHV0e3BhZGRpbmctcmlnaHQ6MTBweDtwYWRkaW5nLWxlZnQ6NTBweH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZS5uZy1zZWxlY3QtZGlzYWJsZWQ+Lm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlcjoxcHggc29saWQgI2U2ZTZlNn0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZS5uZy1zZWxlY3QtZGlzYWJsZWQ+Lm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUgLm5nLXZhbHVlLWxhYmVse3BhZGRpbmc6MCA1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lcntwYWRkaW5nLXRvcDo1cHg7cGFkZGluZy1sZWZ0OjdweH1bZGlyPVwicnRsXCJdIC5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXJ7cGFkZGluZy1yaWdodDo3cHg7cGFkZGluZy1sZWZ0OjB9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWV7Zm9udC1zaXplOi45ZW07bWFyZ2luLWJvdHRvbTo1cHg7YmFja2dyb3VuZC1jb2xvcjojZWJmNWZmO2JvcmRlci1yYWRpdXM6MnB4O21hcmdpbi1yaWdodDo1cHh9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy12YWx1ZXttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDo1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUubmctdmFsdWUtZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5fS5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlLm5nLXZhbHVlLWRpc2FibGVkIC5uZy12YWx1ZS1sYWJlbHtwYWRkaW5nLWxlZnQ6NXB4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUubmctdmFsdWUtZGlzYWJsZWQgLm5nLXZhbHVlLWxhYmVse3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6NXB4fS5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlIC5uZy12YWx1ZS1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjFweCA1cHh9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUgLm5nLXZhbHVlLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzoxcHggNXB4fS5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlIC5uZy12YWx1ZS1pY29uOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2QxZThmZn0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy12YWx1ZSAubmctdmFsdWUtaWNvbi5sZWZ0e2JvcmRlci1yaWdodDoxcHggc29saWQgI2I4ZGJmZn1bZGlyPVwicnRsXCJdIC5uZy1zZWxlY3Qubmctc2VsZWN0LW11bHRpcGxlIC5uZy1zZWxlY3QtY29udGFpbmVyIC5uZy12YWx1ZS1jb250YWluZXIgLm5nLXZhbHVlIC5uZy12YWx1ZS1pY29uLmxlZnR7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNiOGRiZmY7Ym9yZGVyLXJpZ2h0Om5vbmV9Lm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctdmFsdWUgLm5nLXZhbHVlLWljb24ucmlnaHR7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNiOGRiZmZ9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy12YWx1ZSAubmctdmFsdWUtaWNvbi5yaWdodHtib3JkZXItbGVmdDowO2JvcmRlci1yaWdodDoxcHggc29saWQgI2I4ZGJmZn0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy1pbnB1dHtwYWRkaW5nOjAgMCAzcHggM3B4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctaW5wdXR7cGFkZGluZzowIDNweCAzcHggMH0ubmctc2VsZWN0Lm5nLXNlbGVjdC1tdWx0aXBsZSAubmctc2VsZWN0LWNvbnRhaW5lciAubmctdmFsdWUtY29udGFpbmVyIC5uZy1wbGFjZWhvbGRlcnt0b3A6NXB4O3BhZGRpbmctYm90dG9tOjVweDtwYWRkaW5nLWxlZnQ6M3B4fVtkaXI9XCJydGxcIl0gLm5nLXNlbGVjdC5uZy1zZWxlY3QtbXVsdGlwbGUgLm5nLXNlbGVjdC1jb250YWluZXIgLm5nLXZhbHVlLWNvbnRhaW5lciAubmctcGxhY2Vob2xkZXJ7cGFkZGluZy1yaWdodDozcHg7cGFkZGluZy1sZWZ0OjB9Lm5nLXNlbGVjdCAubmctY2xlYXItd3JhcHBlcntjb2xvcjojOTk5fS5uZy1zZWxlY3QgLm5nLWNsZWFyLXdyYXBwZXI6aG92ZXIgLm5nLWNsZWFye2NvbG9yOiNEMDAyMUJ9Lm5nLXNlbGVjdCAubmctc3Bpbm5lci16b25le3BhZGRpbmc6NXB4IDVweCAwIDB9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0IC5uZy1zcGlubmVyLXpvbmV7cGFkZGluZzo1cHggMCAwIDVweH0ubmctc2VsZWN0IC5uZy1hcnJvdy13cmFwcGVye3dpZHRoOjI1cHg7cGFkZGluZy1yaWdodDo1cHh9W2Rpcj1cInJ0bFwiXSAubmctc2VsZWN0IC5uZy1hcnJvdy13cmFwcGVye3BhZGRpbmctbGVmdDo1cHg7cGFkZGluZy1yaWdodDowfS5uZy1zZWxlY3QgLm5nLWFycm93LXdyYXBwZXI6aG92ZXIgLm5nLWFycm93e2JvcmRlci10b3AtY29sb3I6IzY2Nn0ubmctc2VsZWN0IC5uZy1hcnJvdy13cmFwcGVyIC5uZy1hcnJvd3tib3JkZXItY29sb3I6Izk5OSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjVweCA1cHggMi41cHh9Lm5nLWRyb3Bkb3duLXBhbmVse2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym94LXNoYWRvdzowIDFweCAwIHJnYmEoMCwwLDAsMC4wNik7bGVmdDowfS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtYm90dG9te3RvcDoxMDAlO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweDtib3JkZXItdG9wLWNvbG9yOiNlNmU2ZTY7bWFyZ2luLXRvcDotMXB4fS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtYm90dG9tIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NHB4fS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtdG9we2JvdHRvbToxMDAlO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLWNvbG9yOiNlNmU2ZTY7bWFyZ2luLWJvdHRvbTotMXB4fS5uZy1kcm9wZG93bi1wYW5lbC5uZy1zZWxlY3QtdG9wIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uOmZpcnN0LWNoaWxke2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLWhlYWRlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6NXB4IDdweH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLWZvb3Rlcntib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6NXB4IDdweH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRncm91cHt1c2VyLXNlbGVjdDpub25lO3BhZGRpbmc6OHB4IDEwcHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnJnYmEoMCwwLDAsMC41NCk7Y3Vyc29yOnBvaW50ZXJ9Lm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0Z3JvdXAubmctb3B0aW9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGdyb3VwLm5nLW9wdGlvbi1tYXJrZWR7YmFja2dyb3VuZC1jb2xvcjojZjVmYWZmfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGdyb3VwLm5nLW9wdGlvbi1zZWxlY3RlZCwubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRncm91cC5uZy1vcHRpb24tc2VsZWN0ZWQubmctb3B0aW9uLW1hcmtlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlYmY1ZmY7Zm9udC13ZWlnaHQ6NjAwfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6cmdiYSgwLDAsMCwwLjg3KTtwYWRkaW5nOjhweCAxMHB4fS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tc2VsZWN0ZWQsLm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1zZWxlY3RlZC5uZy1vcHRpb24tbWFya2Vke2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZWJmNWZmfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tc2VsZWN0ZWQgLm5nLW9wdGlvbi1sYWJlbCwubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLXNlbGVjdGVkLm5nLW9wdGlvbi1tYXJrZWQgLm5nLW9wdGlvbi1sYWJlbHtmb250LXdlaWdodDo2MDB9Lm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1tYXJrZWR7YmFja2dyb3VuZC1jb2xvcjojZjVmYWZmO2NvbG9yOiMzMzN9Lm5nLWRyb3Bkb3duLXBhbmVsIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyAubmctb3B0aW9uLm5nLW9wdGlvbi1kaXNhYmxlZHtjb2xvcjojY2NjfS5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbi5uZy1vcHRpb24tY2hpbGR7cGFkZGluZy1sZWZ0OjIycHh9W2Rpcj1cInJ0bFwiXSAubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24ubmctb3B0aW9uLWNoaWxke3BhZGRpbmctcmlnaHQ6MjJweDtwYWRkaW5nLWxlZnQ6MH0ubmctZHJvcGRvd24tcGFuZWwgLm5nLWRyb3Bkb3duLXBhbmVsLWl0ZW1zIC5uZy1vcHRpb24gLm5nLXRhZy1sYWJlbHtmb250LXNpemU6ODAlO2ZvbnQtd2VpZ2h0OjQwMDtwYWRkaW5nLXJpZ2h0OjVweH1bZGlyPVwicnRsXCJdIC5uZy1kcm9wZG93bi1wYW5lbCAubmctZHJvcGRvd24tcGFuZWwtaXRlbXMgLm5nLW9wdGlvbiAubmctdGFnLWxhYmVse3BhZGRpbmctbGVmdDo1cHg7cGFkZGluZy1yaWdodDowfVtkaXI9XCJydGxcIl0gLm5nLWRyb3Bkb3duLXBhbmVse2RpcmVjdGlvbjpydGw7dGV4dC1hbGlnbjpyaWdodH1cbiIsIi8vKiAqKioqKioqIHJlc2V0ICYgbm9ybWFsaXplICoqKioqKiogICovL1xyXG5cclxuLy8gYm94LXNpemluZyB0aGUgc2FtZSBmb3IgYWxsIGVsZW1lbnRzXHJcbmh0bWwge1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XHJcbiAgYm94LXNpemluZzogaW5oZXJpdDtcclxuICAtd2Via2l0LWJveC1zaXppbmc6IGluaGVyaXQ7XHJcbiAgLW1vei1ib3gtc2l6aW5nOiBpbmhlcml0O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIEBpbmNsdWRlIHVuU2VsZWN0O1xyXG59XHJcblxyXG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXHJcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcclxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxyXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXHJcbnNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXHJcbmIsIHUsIGksIGNlbnRlcixcclxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcclxuZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXHJcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxyXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCxcclxuZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLFxyXG5tZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcclxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIGZvbnQtc2l6ZTogMTAwJTtcclxuICAgIGZvbnQ6IGluaGVyaXQ7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSxcclxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5ib2R5IHtcclxuICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxufVxyXG5vbCwgdWwge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG5ibG9ja3F1b3RlLCBxIHtcclxuICAgIHF1b3Rlczogbm9uZTtcclxufVxyXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlcixcclxucTpiZWZvcmUsIHE6YWZ0ZXIge1xyXG4gICAgY29udGVudDogbm9uZTtcclxufVxyXG5cclxuLy90YWJsZVxyXG50YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XHJcbn1cclxudGQsXHJcbnRoIHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4vL2Zvcm1zIGVsZW1lbnRcclxuaW5wdXQge1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgICY6LXdlYmtpdC1hdXRvZmlsbCB7XHJcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMTAwMHB4IHdoaXRlIGluc2V0O1xyXG4gICAgfVxyXG59XHJcblxyXG5idXR0b24sXHJcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcclxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5idXR0b25bZGlzYWJsZWRdLFxyXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcclxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xyXG4gIGJvcmRlcjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcbmlucHV0IHtcclxuICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG59XHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG59XHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5cclxuXHJcbi8vbGlua1xyXG5hIHtcclxuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0JjphY3RpdmUsXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzIHtcclxuXHRcdG91dGxpbmU6IDA7XHJcblx0fVxyXG59XHJcblxyXG5pIHsgZm9udC1zdHlsZTogaXRhbGljOyB9XHJcbmIsIHN0cm9uZyB7IGZvbnQtd2VpZ2h0OiA3MDA7ICAgfVxyXG5cclxuLy8gaW1hZ2VzXHJcbmltZyB7XHJcblx0d2lkdGg6IGF1dG87XHJcblx0bWF4LXdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogYXV0bztcclxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG5cdGJvcmRlcjogMDtcclxufVxyXG5cclxuLmhpZGRlbiB7XHJcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcbiIsIi5hcHAtY29udGVudCB7XHJcblxyXG4gIC5wcmVsb2FkZXIge1xyXG5cclxuICAgIC5sb2FkaW5nLWJhciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYnV0dG9uIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBwYWRkaW5nOiAwIDFyZW07XHJcbiAgaGVpZ2h0OiA0LjJyZW07XHJcblxyXG4gICY6ZGlzYWJsZWQ6bm90KC50cmFuc3BhcmVudC1idXR0b24pLCBcclxuICAmLmJsdWUtYnV0dG9uX3Jlc2V0e1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZGlzYWJsZWRCdXR0b25CYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChkaXNhYmxlZEJ1dHRvbkhvdmVyQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZGlzYWJsZWRCdXR0b25Gb2N1c0NvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5ibHVlLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlQnV0dG9uQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChhbHRlcm5hdGl2ZVRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZUJ1dHRvbkhvdmVyQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZUJ1dHRvbkZvY3VzQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmdyZWVuLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChncmVlbkJ1dHRvbkJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQoYWx0ZXJuYXRpdmVUZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGdyZWVuQnV0dG9uSG92ZXJDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChncmVlbkJ1dHRvbkZvY3VzQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnR1cnF1b2lzZS1idXR0b246bm90KDpkaXNhYmxlZCkge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodHVycXVvaXNlQnV0dG9uQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChhbHRlcm5hdGl2ZVRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodHVycXVvaXNlQnV0dG9uSG92ZXJDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCh0dXJxdW9pc2VCdXR0b25Gb2N1c0NvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi50cmFuc3BhcmVudC1idXR0b24ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJvcmRlcjogMC4ycmVtIHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAuaWNvbiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcclxuICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2NvbXBsZXRlLXRlc3R3YWxsZXQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICB3aWR0aDogMS43cmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuN3JlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4uaW5wdXQtYmxvY2sge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBtYXJnaW4tYm90dG9tOiAwLjRyZW07XHJcblxyXG4gIC53cmFwLWxhYmVsIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgbWluLWhlaWdodDogMi40cmVtO1xyXG4gIH1cclxuXHJcbiAgbGFiZWwge1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlucHV0W3R5cGU9J3RleHQnXSwgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSwgc2VsZWN0IHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiA0LjJyZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnRleHRhcmVhIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICB0ZXh0YXJlYSB7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiBPcGVuU2Fucywgc2Fucy1zZXJpZjtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICBtaW4taGVpZ2h0OiA3LjVyZW07XHJcbiAgICAgIG1heC1oZWlnaHQ6IDcuNXJlbTtcclxuICAgICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICAgIHJlc2l6ZTogbm9uZTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmVycm9yLWJsb2NrIHtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjRyZW07XHJcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKHJlZFRleHRDb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zdWNjZXNzLWJsb2NrIHtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjRyZW07XHJcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGdyZWVuVGV4dENvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5lcnJvci10ZXh0IHtcclxuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgIGNvbG9yOiB0aGVtZWQocmVkVGV4dENvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9J3JhZGlvJ10uc3R5bGUtcmFkaW8ge1xyXG5cclxuICAmICsgbGFiZWwge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyLjRyZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIHVuU2VsZWN0O1xyXG4gIH1cclxuXHJcbiAgJjpub3QoY2hlY2tlZCkge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgb3BhY2l0eTogMDtcclxuXHJcbiAgICAmICsgbGFiZWwge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB9XHJcblxyXG4gICAgJiArIGxhYmVsOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMC43cmVtO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICB3aWR0aDogMS40cmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuNHJlbTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkIHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYgKyBsYWJlbDphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMXJlbTtcclxuICAgICAgbGVmdDogMC4zcmVtO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIHdpZHRoOiAwLjhyZW07XHJcbiAgICAgIGhlaWdodDogMC44cmVtO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOmNoZWNrZWQge1xyXG5cclxuICAgICYgKyBsYWJlbDphZnRlciB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dFt0eXBlPSdjaGVja2JveCddLnN0eWxlLWNoZWNrYm94IHtcclxuXHJcbiAgJiArIGxhYmVsIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIHBhZGRpbmctbGVmdDogMy42cmVtO1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSB1blNlbGVjdDtcclxuICB9XHJcblxyXG4gICY6bm90KGNoZWNrZWQpIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogMS42cmVtO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cclxuICAgICYgKyBsYWJlbCB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIH1cclxuXHJcbiAgICAmICsgbGFiZWw6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIGxlZnQ6IDEuNnJlbTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgd2lkdGg6IDEuNHJlbTtcclxuICAgICAgaGVpZ2h0OiAxLjRyZW07XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6Y2hlY2tlZCB7XHJcblxyXG4gICAgJiArIGxhYmVsOmJlZm9yZSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9jb21wbGV0ZS10ZXN0d2FsbGV0LnN2Zyk7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zd2l0Y2gge1xyXG5cclxuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChzd2l0Y2hCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gIH1cclxuXHJcbiAgLmNpcmNsZSB7XHJcblxyXG4gICAgJi5vbiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm9mZiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udGFibGUtdG9vbHRpcCB7XHJcbiAgcGFkZGluZzogMXJlbSAycmVtO1xyXG5cclxuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgIGJhY2tncm91bmQ6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKTtcclxuICAgIGJveC1zaGFkb3c6IHRoZW1lZCh0b29sdGlwU2hhZG93KTtcclxuICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgfVxyXG5cclxuICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjhyZW07XHJcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XHJcbiAgfVxyXG5cclxuICAmLm5nLXRvb2x0aXAtdG9wIHtcclxuICAgIG1hcmdpbi10b3A6IC0xcmVtO1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogLTFyZW07XHJcbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMC41cmVtKTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLXRvcC1sZWZ0IHtcclxuICAgIG1hcmdpbi10b3A6IC0xcmVtO1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogLTFyZW07XHJcbiAgICAgIGxlZnQ6IDAuN3JlbTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC10b3AtcmlnaHQge1xyXG4gICAgbWFyZ2luLXRvcDogLTFyZW07XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAtMXJlbTtcclxuICAgICAgcmlnaHQ6IDAuN3JlbTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAtMXJlbTtcclxuICAgICAgbGVmdDogY2FsYyg1MCUgLSAwLjVyZW0pO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRyYW5zcGFyZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLm5nLXRvb2x0aXAtYm90dG9tLWxlZnQge1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAtMXJlbTtcclxuICAgICAgbGVmdDogMC43cmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLWJvdHRvbS1yaWdodCB7XHJcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG5cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IC0xcmVtO1xyXG4gICAgICByaWdodDogMC43cmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLWxlZnQge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogY2FsYyg1MCUgLSAwLjVyZW0pO1xyXG4gICAgICByaWdodDogLTFyZW07XHJcbiAgICAgIGJvcmRlci13aWR0aDogMC41cmVtO1xyXG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1yaWdodCB7XHJcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiBjYWxjKDUwJSAtIDAuNXJlbSk7XHJcbiAgICAgIGxlZnQ6IC0xcmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udGFibGUtdG9vbHRpcC1kaW1lbnNpb25zIHtcclxuXHJcbiAgLnRvb2x0aXAtaW5uZXIge1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICBtYXgtd2lkdGg6IDIwcmVtO1xyXG4gICAgbWF4LWhlaWdodDogMTByZW07XHJcbiAgfVxyXG59XHJcblxyXG4uYmFsYW5jZS10b29sdGlwIHtcclxuICBwYWRkaW5nOiAxLjNyZW07XHJcblxyXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgYmFja2dyb3VuZDogdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgYm94LXNoYWRvdzogdGhlbWVkKHRvb2x0aXBTaGFkb3cpO1xyXG4gICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICB9XHJcblxyXG4gIC50b29sdGlwLWlubmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcblxyXG4gICAgLmF2YWlsYWJsZSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuN3JlbTtcclxuXHJcbiAgICAgIGIge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubG9ja2VkIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMC43cmVtO1xyXG5cclxuICAgICAgYiB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5saW5rIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5uZy10b29sdGlwLXRvcCB7XHJcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTtcclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1sZWZ0IHtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1yaWdodCB7XHJcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5hY2NvdW50LXRvb2x0aXAge1xyXG5cclxuICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgbWF4LXdpZHRoOiAxOHJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5jb21tZW50LXRvb2x0aXAge1xyXG5cclxuICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgICBtYXgtd2lkdGg6IDUwcmVtO1xyXG4gICAgbWF4LWhlaWdodDogMjVyZW07XHJcbiAgfVxyXG59XHJcblxyXG4udXBkYXRlLXRvb2x0aXAge1xyXG4gIHBhZGRpbmc6IDEuNXJlbTtcclxuXHJcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICBib3gtc2hhZG93OiB0aGVtZWQodG9vbHRpcFNoYWRvdyk7XHJcbiAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gIH1cclxuXHJcbiAgJi5pbXBvcnRhbnQge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0aGVtZWQodG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQoYWNjb3VudE1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgICYubmctdG9vbHRpcC1sZWZ0LWJvdHRvbSB7XHJcblxyXG4gICAgICAmOmFmdGVyIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRoZW1lZCh0b29sdGlwSW1wb3J0YW50QmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbSB7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcikgdGhlbWVkKHRvb2x0aXBJbXBvcnRhbnRCYWNrZ3JvdW5kQ29sb3IpIHRyYW5zcGFyZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5jcml0aWNhbCB7XHJcbiAgICBwYWRkaW5nOiAyLjVyZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lZCh0b29sdGlwQ3JpdGljYWxCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGFjY291bnRNYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAudG9vbHRpcC1pbm5lciB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJi5uZy10b29sdGlwLWxlZnQtYm90dG9tIHtcclxuXHJcbiAgICAgICY6YWZ0ZXIge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcikgdGhlbWVkKHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5uZy10b29sdGlwLXJpZ2h0LWJvdHRvbSB7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0aGVtZWQodG9vbHRpcENyaXRpY2FsQmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcENyaXRpY2FsQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50b29sdGlwLWlubmVyIHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuOHJlbTtcclxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcclxuXHJcbiAgICAuc3RhbmRhcmQtdXBkYXRlIHtcclxuICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmltcG9ydGFudC11cGRhdGUge1xyXG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDIuN3JlbTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQodG9vbHRpcEltcG9ydGFudFRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY3JpdGljYWwtdXBkYXRlIHtcclxuICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjdyZW07XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAud3JvbmctdGltZSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZCh0b29sdGlwSW1wb3J0YW50VGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFyZ2luOiAxLjVyZW0gMDtcclxuICAgICAgd2lkdGg6IDVyZW07XHJcbiAgICAgIGhlaWdodDogNXJlbTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCh0b29sdGlwQ3JpdGljYWxUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLm5nLXRvb2x0aXAtbGVmdC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAwLjZyZW07XHJcbiAgICAgIHJpZ2h0OiAtMXJlbTtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0aGVtZWQodG9vbHRpcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubmctdG9vbHRpcC1yaWdodC1ib3R0b20ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAwLjZyZW07XHJcbiAgICAgIGxlZnQ6IC0xcmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDAuNXJlbTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdGhlbWVkKHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IpIHRoZW1lZCh0b29sdGlwQmFja2dyb3VuZENvbG9yKSB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm5neC1jb250ZXh0bWVudSB7XHJcblxyXG4gIC5kcm9wZG93bi1tZW51IHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChjaGFydE9wdGlvbnNCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBib3gtc2hhZG93OiB0aGVtZWQodG9vbHRpcFNoYWRvdyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsaSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtZmFtaWx5OiBPcGVuU2Fucywgc2Fucy1zZXJpZjtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAwLjVlbSAxZW07XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY2hhcnRPcHRpb25zSG92ZXJDb2xvcik7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm5nLXNlbGVjdCB7XHJcblxyXG4gICYuY3VzdG9tLXNlbGVjdCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAmLm5nLXNlbGVjdC1zaW5nbGUge1xyXG4gICAgICAubmctc2VsZWN0LWNvbnRhaW5lciB7XHJcbiAgICAgICAgLm5nLXZhbHVlLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAubmctdmFsdWUge1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS44cmVtO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uZy1zZWxlY3QtY29udGFpbmVyIHtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICBwYWRkaW5nOiAwIDFyZW07XHJcbiAgICAgIGhlaWdodDogNC4ycmVtO1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGlucHV0QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubmctdmFsdWUtY29udGFpbmVyIHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICAgICAubmctaW5wdXQge1xyXG4gICAgICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uZy1kcm9wZG93bi1wYW5lbCB7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5uZy1kcm9wZG93bi1wYW5lbC1pdGVtcyB7XHJcblxyXG4gICAgICAgIC5uZy1vcHRpb24ge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoaW5wdXRCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYubmctb3B0aW9uLW1hcmtlZCB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoc2VsZWN0SG92ZXJDb2xvcik7XHJcbiAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYubmctb3B0aW9uLXNlbGVjdGVkIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChzZWxlY3RTZWxlY3RlZENvbG9yKTtcclxuICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgICAgICAgIHdpZHRoOiAxcmVtO1xyXG4gICAgICAgICAgaGVpZ2h0OiAxcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtbW9kYWwtY29udGFpbmVyLCBhcHAtY29uZmlybS1tb2RhbCAge1xyXG5cclxuICAubW9kYWwge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0aGVtZWQobW9kYWxCYWNrZ3JvdW5kKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAuY29udGVudCB7XHJcblxyXG4gICAgICAuaWNvbi5lcnJvciB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHJlZFRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuaWNvbi5zdWNjZXNzIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZ3JlZW5UZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmljb24uaW5mbyB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hY3Rpb24tYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jbG9zZS1idXR0b24ge1xyXG5cclxuICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChjbG9zZUJ1dHRvbkNvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC10cmFuc2FjdGlvbi1kZXRhaWxzIHtcclxuXHJcbiAgLnRhYmxlIHtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYm9yZGVyLXRvcDogMC4ycmVtIHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAucm93IHtcclxuXHJcbiAgICAgIC5jZWxsIHtcclxuXHJcbiAgICAgICAgJi5sYWJlbCB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi52YWx1ZSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmtleS12YWx1ZSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtcHJvZ3Jlc3MtY29udGFpbmVyIHtcclxuXHJcbiAgLnByb2dyZXNzLWJhci1jb250YWluZXIge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9ncmVzcy1iYXIge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnByb2dyZXNzLWJhci1mdWxsIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1vcGVuLXdhbGxldC1tb2RhbCB7XHJcblxyXG4gIC5tb2RhbCB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lZChtb2RhbEJhY2tncm91bmQpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXNlbmQtbW9kYWwge1xyXG4gIC5tb2RhbCB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lZChtb2RhbEJhY2tncm91bmQpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC50aXRsZSB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgdGhlbWVkKHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC5hY3Rpb24tYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufSIsIiR0aGVtZXM6IChcclxuICBkYXJrOiAoXHJcbiAgICBib2R5QmFja2dyb3VuZENvbG9yOiAjMTMxOTIxLFxyXG4gICAgc2lkZWJhckJhY2tncm91bmRDb2xvcjogcmdiYSgyMywgMzEsIDM5LCAxKSxcclxuICAgIHNpZGViYXJCb3JkZXJDb2xvcjogIzFmMjgzMyxcclxuICAgIG9ubGluZUNvbG9yOiAjNWNkYTlkLFxyXG4gICAgb2ZmbGluZUNvbG9yOiAjZmY1MjUyLFxyXG4gICAgY29udGVudEJhY2tncm91bmRDb2xvcjogcmdiYSg0MywgNTQsIDY4LCAwLjUpLFxyXG4gICAgbWFpblRleHRDb2xvcjogI2UwZTBlMCxcclxuICAgIGFsdGVybmF0aXZlVGV4dENvbG9yOiAjMTExOTIxLFxyXG4gICAgb3B0aW9uYWxUZXh0Q29sb3I6ICM1NTY1NzYsXHJcbiAgICBibHVlVGV4dENvbG9yOiAjNGRiMWZmLFxyXG4gICAgZ3JlZW5UZXh0Q29sb3I6ICM1Y2RhOWQsXHJcbiAgICBvcmFuZ2VUZXh0Q29sb3I6ICNmZjZmMDAsXHJcbiAgICByZWRUZXh0Q29sb3I6ICNmZjUyNTIsXHJcbiAgICBibHVlQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjNGRiMWZmLFxyXG4gICAgYmx1ZUJ1dHRvbkhvdmVyQ29sb3I6ICM4MmQ3ZmYsXHJcbiAgICBibHVlQnV0dG9uRm9jdXNDb2xvcjogIzU5YjVmZCxcclxuICAgIGRpc2FibGVkQnV0dG9uQmFja2dyb3VuZENvbG9yOiAjOWNhZGI3LFxyXG4gICAgZGlzYWJsZWRCdXR0b25Ib3ZlckNvbG9yOiAjYjdkMWUwLFxyXG4gICAgZGlzYWJsZWRCdXR0b25Gb2N1c0NvbG9yOiAjYTdiOWMyLFxyXG4gICAgZ3JlZW5CdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM1Y2RhOWQsXHJcbiAgICBncmVlbkJ1dHRvbkhvdmVyQ29sb3I6ICM4ZGZjYzYsXHJcbiAgICBncmVlbkJ1dHRvbkZvY3VzQ29sb3I6ICM2MmUwYjIsXHJcbiAgICB0dXJxdW9pc2VCdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM0ZGQwZTEsXHJcbiAgICB0dXJxdW9pc2VCdXR0b25Ib3ZlckNvbG9yOiAjODdmNGY1LFxyXG4gICAgdHVycXVvaXNlQnV0dG9uRm9jdXNDb2xvcjogIzQyZDVlOCxcclxuICAgIHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3I6ICMyYjM2NDQsXHJcbiAgICBpbnB1dEJhY2tncm91bmRDb2xvcjogIzE3MWUyNyxcclxuICAgIHNlbGVjdEhvdmVyQ29sb3I6IHJnYmEoNTgsIDY5LCA4NSwgMC41KSxcclxuICAgIHNlbGVjdFNlbGVjdGVkQ29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KSxcclxuICAgIHN3aXRjaEJhY2tncm91bmRDb2xvcjogIzAwMDAwMCxcclxuICAgIGFjY291bnRCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoNDMsIDU0LCA2OCwgMC41KSxcclxuICAgIGFjY291bnRIb3ZlckJhY2tncm91bmRDb2xvcjogcmdiYSg1OCwgNjksIDg1LCAwLjUpLFxyXG4gICAgYWNjb3VudE1haW5UZXh0Q29sb3I6ICNlMGUwZTAsXHJcbiAgICBzZWN1cmVkU2VlZDogI2UwZTBlMCxcclxuICAgIHNlZWRJdGVtVGV4dDogI2UwZTBlMCxcclxuICAgIHNlZWRJdGVtQmFja2dyb3VuZENvbG9yOiAjMTgyMDJhLFxyXG4gICAgYWNjb3VudE9wdGlvbmFsVGV4dENvbG9yOiAjNTU2NTc2LFxyXG4gICAgYWNjb3VudEluZGljYXRvclRleHRDb2xvcjogIzExMTkyMSxcclxuICAgIGFjY291bnRTd2l0Y2hCYWNrZ3JvdW5kQ29sb3I6ICMwMDAwMDAsXHJcbiAgICBhY2NvdW50SW5kaWNhdG9yQmFja2dyb3VuZENvbG9yOiAjNGRiMWZmLFxyXG4gICAgdGFiSW5hY3RpdmVCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoMjMsIDMxLCAzOSwgMC41KSxcclxuICAgIHRhYkhvdmVyQmFja2dyb3VuZENvbG9yOiByZ2JhKDU4LCA2OSwgODUsIDAuNSksXHJcbiAgICB0YWJsZUJhY2tncm91bmRDb2xvcjogIzE4MjAyYSxcclxuICAgIG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcjogIzJhMzU0NCxcclxuICAgIG1lc3NhZ2VCdWRkeUJhY2tncm91bmRDb2xvcjogIzE4MjAyYSxcclxuICAgIHByb2dyZXNzQmFyQmFja2dyb3VuZENvbG9yOiAjMzQzZjRhLFxyXG4gICAgcHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yOiAjNWNkYTlkLFxyXG4gICAgY2hhcnRPcHRpb25zQmFja2dyb3VuZENvbG9yOiAjMmIzNjQ0LFxyXG4gICAgY2hhcnRPcHRpb25zSG92ZXJDb2xvcjogIzU1NjU3NixcclxuICAgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I6ICM0MjUwNWYsXHJcbiAgICB0b29sdGlwSW1wb3J0YW50VGV4dENvbG9yOiAjZmY2ZjAwLFxyXG4gICAgdG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcjogIzVmMmIxMSxcclxuICAgIHRvb2x0aXBDcml0aWNhbFRleHRDb2xvcjogI2ZmNTI1MixcclxuICAgIHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcjogIzVmMWQxZCxcclxuICAgIHRvb2x0aXBTaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwgMCwgMCwgMC41KSxcclxuICAgIG1vZGFsQmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLWRhcmsucG5nKSxcclxuICAgIGNsb3NlQnV0dG9uQ29sb3I6ICM1NTY1NzYsXHJcbiAgICBob3ZlclBhZ2U6ICMzYTQ4NWFcclxuICApLFxyXG4gIGdyYXk6IChcclxuICAgIGJvZHlCYWNrZ3JvdW5kQ29sb3I6ICMxMDE0MTcsXHJcbiAgICBzaWRlYmFyQmFja2dyb3VuZENvbG9yOiByZ2JhKDI4LCAzMCwgMzMsIDEpLFxyXG4gICAgc2lkZWJhckJvcmRlckNvbG9yOiAjMmUzMzM3LFxyXG4gICAgb25saW5lQ29sb3I6ICM0N2NmOGQsXHJcbiAgICBvZmZsaW5lQ29sb3I6ICNmZjUyNTIsXHJcbiAgICBjb250ZW50QmFja2dyb3VuZENvbG9yOiByZ2JhKDM3LCA0MCwgNDMsIDAuNSksXHJcbiAgICBtYWluVGV4dENvbG9yOiAjZTBlMGUwLFxyXG4gICAgYWx0ZXJuYXRpdmVUZXh0Q29sb3I6ICMxYTFhMWEsXHJcbiAgICBvcHRpb25hbFRleHRDb2xvcjogIzU2NWM2MixcclxuICAgIGJsdWVUZXh0Q29sb3I6ICM0MmE1ZjUsXHJcbiAgICBncmVlblRleHRDb2xvcjogIzQ3Y2Y4ZCxcclxuICAgIG9yYW5nZVRleHRDb2xvcjogI2ZmNmYwMCxcclxuICAgIHJlZFRleHRDb2xvcjogI2ZmNTI1MixcclxuICAgIGJsdWVCdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM0MmE1ZjUsXHJcbiAgICBibHVlQnV0dG9uSG92ZXJDb2xvcjogIzg2ZDZmZixcclxuICAgIGJsdWVCdXR0b25Gb2N1c0NvbG9yOiAjNWZiNmZjLFxyXG4gICAgZGlzYWJsZWRCdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM3OTg0OGYsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbkhvdmVyQ29sb3I6ICNhMWFlYmIsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbkZvY3VzQ29sb3I6ICM4YTk1OWYsXHJcbiAgICBncmVlbkJ1dHRvbkJhY2tncm91bmRDb2xvcjogIzQ3Y2Y4ZCxcclxuICAgIGdyZWVuQnV0dG9uSG92ZXJDb2xvcjogIzdiZjZjNixcclxuICAgIGdyZWVuQnV0dG9uRm9jdXNDb2xvcjogIzVjZGM5ZSxcclxuICAgIHR1cnF1b2lzZUJ1dHRvbkJhY2tncm91bmRDb2xvcjogIzNlYzVkNyxcclxuICAgIHR1cnF1b2lzZUJ1dHRvbkhvdmVyQ29sb3I6ICM3MmVkZmUsXHJcbiAgICB0dXJxdW9pc2VCdXR0b25Gb2N1c0NvbG9yOiAjNTBkMGUxLFxyXG4gICAgdHJhbnNwYXJlbnRCdXR0b25Cb3JkZXJDb2xvcjogIzJmMzQzOCxcclxuICAgIGlucHV0QmFja2dyb3VuZENvbG9yOiAjMjkyZDMxLFxyXG4gICAgc2VsZWN0SG92ZXJDb2xvcjogcmdiYSg1OCwgNjIsIDY2LCAwLjUpLFxyXG4gICAgc2VsZWN0U2VsZWN0ZWRDb2xvcjogcmdiYSgzNywgNDAsIDQzLCAwLjUpLFxyXG4gICAgc3dpdGNoQmFja2dyb3VuZENvbG9yOiAjMDAwMDAwLFxyXG4gICAgYWNjb3VudEJhY2tncm91bmRDb2xvcjogcmdiYSgzNywgNDAsIDQzLCAwLjUpLFxyXG4gICAgYWNjb3VudEhvdmVyQmFja2dyb3VuZENvbG9yOiByZ2JhKDU4LCA2MiwgNjYsIDAuNSksXHJcbiAgICBhY2NvdW50TWFpblRleHRDb2xvcjogI2UwZTBlMCxcclxuICAgIHNlY3VyZWRTZWVkOiAjZTBlMGUwLFxyXG4gICAgc2VlZEl0ZW1UZXh0OiAjZTBlMGUwLFxyXG4gICAgc2VlZEl0ZW1CYWNrZ3JvdW5kQ29sb3I6ICMyOTJkMzEsXHJcbiAgICBhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3I6ICM1NjVjNjIsXHJcbiAgICBhY2NvdW50SW5kaWNhdG9yVGV4dENvbG9yOiAjMWExYTFhLFxyXG4gICAgYWNjb3VudFN3aXRjaEJhY2tncm91bmRDb2xvcjogIzAwMDAwMCxcclxuICAgIGFjY291bnRJbmRpY2F0b3JCYWNrZ3JvdW5kQ29sb3I6ICM0MmE1ZjUsXHJcbiAgICB0YWJJbmFjdGl2ZUJhY2tncm91bmRDb2xvcjogcmdiYSgyOCwgMzAsIDMzLCAwLjUpLFxyXG4gICAgdGFiSG92ZXJCYWNrZ3JvdW5kQ29sb3I6IHJnYmEoNTgsIDYyLCA2NiwgMC41KSxcclxuICAgIHRhYmxlQmFja2dyb3VuZENvbG9yOiAjMjUyOTJkLFxyXG4gICAgbWVzc2FnZU15QmFja2dyb3VuZENvbG9yOiAjMzAzNjNjLFxyXG4gICAgbWVzc2FnZUJ1ZGR5QmFja2dyb3VuZENvbG9yOiAjMjUyOTJkLFxyXG4gICAgcHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3I6ICMzNjNhM2UsXHJcbiAgICBwcm9ncmVzc0JhckZ1bGxCYWNrZ3JvdW5kQ29sb3I6ICM0N2NmOGQsXHJcbiAgICBjaGFydE9wdGlvbnNCYWNrZ3JvdW5kQ29sb3I6ICMyOTJkMzEsXHJcbiAgICBjaGFydE9wdGlvbnNIb3ZlckNvbG9yOiAjNTE1OTYwLFxyXG4gICAgdG9vbHRpcEJhY2tncm91bmRDb2xvcjogIzNlNDY0YyxcclxuICAgIHRvb2x0aXBJbXBvcnRhbnRUZXh0Q29sb3I6ICNmZjZmMDAsXHJcbiAgICB0b29sdGlwSW1wb3J0YW50QmFja2dyb3VuZENvbG9yOiAjNTUyNDBkLFxyXG4gICAgdG9vbHRpcENyaXRpY2FsVGV4dENvbG9yOiAjZmY1MjUyLFxyXG4gICAgdG9vbHRpcENyaXRpY2FsQmFja2dyb3VuZENvbG9yOiAjNGMxOTE5LFxyXG4gICAgdG9vbHRpcFNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjUpLFxyXG4gICAgbW9kYWxCYWNrZ3JvdW5kOiB1cmwofnNyYy9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtZ3JheS5wbmcpLFxyXG4gICAgY2xvc2VCdXR0b25Db2xvcjogIzUxNTk2MCxcclxuICAgIGhvdmVyUGFnZTogIzM4M2U0M1xyXG4gICksXHJcbiAgd2hpdGU6IChcclxuICAgIGJvZHlCYWNrZ3JvdW5kQ29sb3I6ICNlZWVlZWUsXHJcbiAgICBzaWRlYmFyQmFja2dyb3VuZENvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpLFxyXG4gICAgc2lkZWJhckJvcmRlckNvbG9yOiAjZWJlYmViLFxyXG4gICAgb25saW5lQ29sb3I6ICM0NmMxNzIsXHJcbiAgICBvZmZsaW5lQ29sb3I6ICNmZjUyNTIsXHJcbiAgICBjb250ZW50QmFja2dyb3VuZENvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSksXHJcbiAgICBtYWluVGV4dENvbG9yOiAjNDM0NTRiLFxyXG4gICAgYWx0ZXJuYXRpdmVUZXh0Q29sb3I6ICNmZWZlZmUsXHJcbiAgICBvcHRpb25hbFRleHRDb2xvcjogI2EwYTVhYixcclxuICAgIGJsdWVUZXh0Q29sb3I6ICMyYzk1ZjEsXHJcbiAgICBncmVlblRleHRDb2xvcjogIzQ2YzE3MixcclxuICAgIG9yYW5nZVRleHRDb2xvcjogI2ZmNmYwMCxcclxuICAgIHJlZFRleHRDb2xvcjogI2ZmNTI1MixcclxuICAgIGJsdWVCdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICMyYzk1ZjEsXHJcbiAgICBibHVlQnV0dG9uSG92ZXJDb2xvcjogIzVjYjNmZixcclxuICAgIGJsdWVCdXR0b25Gb2N1c0NvbG9yOiAjMzc5ZmZhLFxyXG4gICAgZGlzYWJsZWRCdXR0b25CYWNrZ3JvdW5kQ29sb3I6ICM5MGE0YWUsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbkhvdmVyQ29sb3I6ICNhZWJlYzYsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbkZvY3VzQ29sb3I6ICNhN2I5YzIsXHJcbiAgICBncmVlbkJ1dHRvbkJhY2tncm91bmRDb2xvcjogIzQ2YzE3MixcclxuICAgIGdyZWVuQnV0dG9uSG92ZXJDb2xvcjogIzVhZDU4NixcclxuICAgIGdyZWVuQnV0dG9uRm9jdXNDb2xvcjogIzUzYzc3YyxcclxuICAgIHR1cnF1b2lzZUJ1dHRvbkJhY2tncm91bmRDb2xvcjogIzI2YjZjNyxcclxuICAgIHR1cnF1b2lzZUJ1dHRvbkhvdmVyQ29sb3I6ICM1MmNiZDksXHJcbiAgICB0dXJxdW9pc2VCdXR0b25Gb2N1c0NvbG9yOiAjMzFiZWNmLFxyXG4gICAgdHJhbnNwYXJlbnRCdXR0b25Cb3JkZXJDb2xvcjogI2ViZWJlYixcclxuICAgIGlucHV0QmFja2dyb3VuZENvbG9yOiAjZTZlNmU2LFxyXG4gICAgc2VsZWN0SG92ZXJDb2xvcjogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjUpLFxyXG4gICAgc2VsZWN0U2VsZWN0ZWRDb2xvcjogcmdiYSgyMjQsIDIyNCwgMjI0LCAwLjUpLFxyXG4gICAgc3dpdGNoQmFja2dyb3VuZENvbG9yOiAjZTBlMGUwLFxyXG4gICAgYWNjb3VudEJhY2tncm91bmRDb2xvcjogcmdiYSgzMCwgMTM2LCAyMjksIDEpLFxyXG4gICAgYWNjb3VudEhvdmVyQmFja2dyb3VuZENvbG9yOiByZ2JhKDI0MCwgMjQwLCAyNDAsIDAuNSksXHJcbiAgICBhY2NvdW50TWFpblRleHRDb2xvcjogI2ZmZmZmZixcclxuICAgIHNlY3VyZWRTZWVkOiAjYTBhNWFiLFxyXG4gICAgc2VlZEl0ZW1UZXh0OiAjNDM0NTRiLFxyXG4gICAgc2VlZEl0ZW1CYWNrZ3JvdW5kQ29sb3I6ICNlNmU2ZTYsXHJcbiAgICBhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3I6ICM5MWJhZjEsXHJcbiAgICBhY2NvdW50SW5kaWNhdG9yVGV4dENvbG9yOiAjNDM0NTRiLFxyXG4gICAgYWNjb3VudFN3aXRjaEJhY2tncm91bmRDb2xvcjogI2ZmZmZmZixcclxuICAgIGFjY291bnRJbmRpY2F0b3JCYWNrZ3JvdW5kQ29sb3I6ICNmZmZmZmYsXHJcbiAgICB0YWJJbmFjdGl2ZUJhY2tncm91bmRDb2xvcjogcmdiYSgyMjQsIDIyNCwgMjI0LCAwLjUpLFxyXG4gICAgdGFiSG92ZXJCYWNrZ3JvdW5kQ29sb3I6ICNmZmZmZmYsXHJcbiAgICB0YWJsZUJhY2tncm91bmRDb2xvcjogI2ZmZmZmZixcclxuICAgIG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcjogI2ZmZixcclxuICAgIG1lc3NhZ2VCdWRkeUJhY2tncm91bmRDb2xvcjogI2VkZWRlZCxcclxuICAgIHByb2dyZXNzQmFyQmFja2dyb3VuZENvbG9yOiAjZGNkY2RjLFxyXG4gICAgcHJvZ3Jlc3NCYXJGdWxsQmFja2dyb3VuZENvbG9yOiAjNDZjMTcyLFxyXG4gICAgY2hhcnRPcHRpb25zQmFja2dyb3VuZENvbG9yOiAjZTBlMGUwLFxyXG4gICAgY2hhcnRPcHRpb25zSG92ZXJDb2xvcjogI2ZmZmZmZixcclxuICAgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I6ICNmZmZmZmYsXHJcbiAgICB0b29sdGlwSW1wb3J0YW50VGV4dENvbG9yOiAjZmZmZmZmLFxyXG4gICAgdG9vbHRpcEltcG9ydGFudEJhY2tncm91bmRDb2xvcjogI2VmNmMwMCxcclxuICAgIHRvb2x0aXBDcml0aWNhbFRleHRDb2xvcjogI2ZmZmZmZixcclxuICAgIHRvb2x0aXBDcml0aWNhbEJhY2tncm91bmRDb2xvcjogI2U1MzkzNSxcclxuICAgIHRvb2x0aXBTaGFkb3c6IDAgMCAxcmVtIHJnYmEoMTIwLCAxMjAsIDEyMCwgMC41KSxcclxuICAgIG1vZGFsQmFja2dyb3VuZDogdXJsKH5zcmMvYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kLXdoaXRlLnBuZyksXHJcbiAgICBjbG9zZUJ1dHRvbkNvbG9yOiAjNDM0NTRiLFxyXG4gICAgaG92ZXJQYWdlOiAjZmZmZmZmXHJcbiAgKVxyXG4pO1xyXG5cclxuXHJcblxyXG5cclxuXHJcbiIsImFwcC1tYWluLCBhcHAtY3JlYXRlLXdhbGxldCwgYXBwLW9wZW4td2FsbGV0LCBhcHAtcmVzdG9yZS13YWxsZXQsIGFwcC1zZWVkLXBocmFzZSwgYXBwLXdhbGxldC1kZXRhaWxzLCBhcHAtYXNzaWduLWFsaWFzLCBhcHAtZWRpdC1hbGlhcywgYXBwLXRyYW5zZmVyLWFsaWFzLCBhcHAtc2V0dGluZ3MsIGFwcC1sb2dpbiB7XHJcbiAgZmxleDogMSAxIGF1dG87XHJcbiAgcGFkZGluZzogM3JlbTtcclxuICBtaW4td2lkdGg6IDg1cmVtO1xyXG5cclxuICAuY29udGVudCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nOiAzcmVtO1xyXG4gICAgbWluLWhlaWdodDogMTAwJTtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGNvbnRlbnRCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC5oZWFkIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtbWFpbiB7XHJcblxyXG4gIC5jb250ZW50IHtcclxuXHJcbiAgICAuYWRkLXdhbGxldCB7XHJcblxyXG4gICAgICAuYWRkLXdhbGxldC1oZWxwIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtc2VlZC1waHJhc2Uge1xyXG5cclxuICAuc2VlZC1waHJhc2UtY29udGVudCB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcilcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC13YWxsZXQtZGV0YWlscyB7XHJcblxyXG4gIC5zZWVkLXBocmFzZSB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChpbnB1dEJhY2tncm91bmRDb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtc2V0dGluZ3Mge1xyXG5cclxuICAuY29udGVudCB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gICAgLnRoZW1lLXNlbGVjdGlvbiB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zY2FsZS1zZWxlY3Rpb24ge1xyXG5cclxuICAgICAgLmJ1dHRvbi1ibG9jayB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYkluYWN0aXZlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5sYWJlbCB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLmxhYmVsIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1sb2dpbiB7XHJcbiAgbWluLXdpZHRoOiBpbmhlcml0O1xyXG59XHJcbiIsImFwcC1zaWRlYmFyIHtcclxuXHJcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoc2lkZWJhckJhY2tncm91bmRDb2xvcik7XHJcbiAgfVxyXG5cclxuICAuc2lkZWJhci1hY2NvdW50cyB7XHJcblxyXG4gICAgLnNpZGViYXItYWNjb3VudHMtaGVhZGVyIHtcclxuXHJcbiAgICAgIGgzIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgYnV0dG9uIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zaWRlYmFyLWFjY291bnRzLWxpc3Qge1xyXG5cclxuICAgICAgLnNpZGViYXItYWNjb3VudCB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2lkZWJhci1hY2NvdW50LXJvdyB7XHJcblxyXG4gICAgICAgICAgLnRleHQge1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuaW5kaWNhdG9yIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlQnV0dG9uQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuXHJcbiAgICAgICAgICAgIC5wcm9ncmVzcy1iYXIge1xyXG5cclxuICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChwcm9ncmVzc0JhckJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAuZmlsbCB7XHJcblxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmLmFjY291bnQtc3luY2hyb25pemF0aW9uIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjdGl2ZSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgY29sb3I6IHRoZW1lZChhY2NvdW50TWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLnNpZGViYXItYWNjb3VudC1yb3cge1xyXG5cclxuICAgICAgICAgICAgLnRleHQge1xyXG5cclxuICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYWNjb3VudE9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5pbmRpY2F0b3Ige1xyXG5cclxuICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50SW5kaWNhdG9yQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoYWNjb3VudEluZGljYXRvclRleHRDb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc3dpdGNoIHtcclxuXHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYWNjb3VudFN3aXRjaEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5hY2NvdW50LXN5bmNocm9uaXphdGlvbiB7XHJcblxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3Zlcjpub3QoLmFjdGl2ZSkge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYWNjb3VudEhvdmVyQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmFmdGVyIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDAlLCB0aGVtZWQoc2lkZWJhckJhY2tncm91bmRDb2xvcikgMTAwJSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zaWRlYmFyLXNldHRpbmdzIHtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMC4ycmVtIHNvbGlkIHRoZW1lZChzaWRlYmFyQm9yZGVyQ29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC53cmFwLWJ1dHRvbiB7XHJcblxyXG4gICAgICBidXR0b24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuYWN0aXZlIHtcclxuXHJcbiAgICAgICAgYnV0dG9uIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGFjY291bnRCYWNrZ3JvdW5kQ29sb3IpIWltcG9ydGFudDtcclxuICAgICAgICAgICAgY29sb3I6IHRoZW1lZChhY2NvdW50TWFpblRleHRDb2xvcikhaW1wb3J0YW50O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5pY29uIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50SW5kaWNhdG9yQmFja2dyb3VuZENvbG9yKSFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIi5zeW5jaHJvbml6YXRpb24tc3RhdHVzIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGZsZXg6IDAgMCA3cmVtO1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgfVxyXG5cclxuICAuc3RhdHVzLWNvbnRhaW5lciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICAgIC5vZmZsaW5lLCAub25saW5lIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAyLjJyZW07XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgICAgIGhlaWdodDogMS4ycmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm9mZmxpbmU6YmVmb3JlIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChvZmZsaW5lQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm9ubGluZTpiZWZvcmUge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKG9ubGluZUNvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zeW5jaW5nLCAubG9hZGluZyB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA1cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIGhlaWdodDogMC43cmVtO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIC5zeW5jaW5nIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgICAucHJvZ3Jlc3MtYmFyIHtcclxuICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChwcm9ncmVzc0JhckJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAuZmlsbCB7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyRnVsbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi5kb3dubG9hZGluZyB7XHJcblxyXG4gICAgICAgICAgLnByb2dyZXNzLWJhciB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuZmlsbCB7XHJcblxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAucHJvZ3Jlc3MtcGVyY2VudCB7XHJcbiAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDAuN3JlbTtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmxvYWRpbmcge1xyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyRnVsbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFuaW1hdGlvbjogbW92ZSA1cyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTpcclxuICAgICAgICAgIC13ZWJraXQtZ3JhZGllbnQoXHJcbiAgICAgICAgICAgICAgbGluZWFyLCAwIDAsIDEwMCUgMTAwJSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4xMjUsIHJnYmEoMCwgMCwgMCwgLjE1KSksIGNvbG9yLXN0b3AoLjEyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjI1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC4yNTAsIHJnYmEoMCwgMCwgMCwgLjEwKSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMzc1LCByZ2JhKDAsIDAsIDAsIC4xMCkpLCBjb2xvci1zdG9wKC4zNzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC41MDAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNTAwLCByZ2JhKDAsIDAsIDAsIC4xNSkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjYyNSwgcmdiYSgwLCAwLCAwLCAuMTUpKSwgY29sb3Itc3RvcCguNjI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNzUwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjc1MCwgcmdiYSgwLCAwLCAwLCAuMTApKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC44NzUsIHJnYmEoMCwgMCwgMCwgLjEwKSksIGNvbG9yLXN0b3AoLjg3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIHRvKHRyYW5zcGFyZW50KVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIC13ZWJraXQtZ3JhZGllbnQoXHJcbiAgICAgICAgICAgICAgbGluZWFyLCAwIDEwMCUsIDEwMCUgMCxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC4xMjUsIHJnYmEoMCwgMCwgMCwgLjMwKSksIGNvbG9yLXN0b3AoLjEyNSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjI1MCwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC4yNTAsIHJnYmEoMCwgMCwgMCwgLjI1KSksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguMzc1LCByZ2JhKDAsIDAsIDAsIC4yNSkpLCBjb2xvci1zdG9wKC4zNzUsIHRyYW5zcGFyZW50KSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC41MDAsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNTAwLCByZ2JhKDAsIDAsIDAsIC4zMCkpLFxyXG4gICAgICAgICAgICAgIGNvbG9yLXN0b3AoLjYyNSwgcmdiYSgwLCAwLCAwLCAuMzApKSwgY29sb3Itc3RvcCguNjI1LCB0cmFuc3BhcmVudCksXHJcbiAgICAgICAgICAgICAgY29sb3Itc3RvcCguNzUwLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjc1MCwgcmdiYSgwLCAwLCAwLCAuMjUpKSxcclxuICAgICAgICAgICAgICBjb2xvci1zdG9wKC44NzUsIHJnYmEoMCwgMCwgMCwgLjI1KSksIGNvbG9yLXN0b3AoLjg3NSwgdHJhbnNwYXJlbnQpLFxyXG4gICAgICAgICAgICAgIHRvKHRyYW5zcGFyZW50KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDdyZW0gN3JlbTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC51cGRhdGUtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgIC51cGRhdGUtdGV4dCB7XHJcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuOHJlbTtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAgICYudGltZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICBtYXJnaW46IDAuM3JlbSAwIDAgMC42cmVtO1xyXG4gICAgICB3aWR0aDogMS4ycmVtO1xyXG4gICAgICBoZWlnaHQ6IDEuMnJlbTtcclxuXHJcbiAgICAgICYudXBkYXRlIHtcclxuICAgICAgICBtYXNrOiB1cmwoLi9hc3NldHMvaWNvbnMvdXBkYXRlLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi50aW1lIHtcclxuICAgICAgICBtYXNrOiB1cmwoLi9hc3NldHMvaWNvbnMvdGltZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc3RhbmRhcmQge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pbXBvcnRhbnQge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChvcmFuZ2VUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNyaXRpY2FsIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQocmVkVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50aW1lIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQob3JhbmdlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pY29uIHtcclxuXHJcbiAgICAgICYuc3RhbmRhcmQge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuaW1wb3J0YW50IHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQob3JhbmdlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuY3JpdGljYWwge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChyZWRUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi50aW1lIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQob3JhbmdlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIG1vdmUge1xyXG4gIDAlIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgLTdyZW07XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA3cmVtO1xyXG4gIH1cclxufVxyXG4iLCJhcHAtd2FsbGV0IHtcclxuXHJcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gIH1cclxuXHJcbiAgLmhlYWRlciB7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5pY29uIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICY6ZGlzYWJsZWQge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChhY2NvdW50T3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hbGlhcyB7XHJcblxyXG4gICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFkZHJlc3Mge1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC5pY29uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnRhYnMge1xyXG5cclxuICAgIC50YWJzLWhlYWRlciB7XHJcblxyXG4gICAgICAudGFiIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodGFiSW5hY3RpdmVCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaW5kaWNhdG9yIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGFjY291bnRJbmRpY2F0b3JCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKGFjY291bnRJbmRpY2F0b3JUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY29udGVudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmhvdmVyOm5vdCguYWN0aXZlKTpub3QoLmRpc2FibGVkKSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCh0YWJIb3ZlckJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYnMtY29udGVudCB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY29udGVudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucGFnaW5hdGlvbi13cmFwcGVyIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChjb250ZW50QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnBhZ2luYXRpb24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJvcmRlci10b3A6IDAuMnJlbSBzb2xpZCB0aGVtZWQodHJhbnNwYXJlbnRCdXR0b25Cb3JkZXJDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3IpO1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQodGFibGVCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICBcclxuICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoaG92ZXJQYWdlKTtcclxuICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXNlbmQge1xyXG5cclxuICAuZm9ybS1zZW5kIHtcclxuXHJcbiAgICAuc2VuZC1zZWxlY3Qge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmljb24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYWRkaXRpb25hbC1kZXRhaWxzIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGJvcmRlcjogMC4ycmVtIHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXJlY2VpdmUge1xyXG5cclxuICAuYnRuLWNvcHktYWRkcmVzcyB7XHJcblxyXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1oaXN0b3J5IHtcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuXHJcbiAgICAgICAgJi5sb2NrZWQtdHJhbnNhY3Rpb24ge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKG9wdGlvbmFsVGV4dENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKDRuKzEpIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYmxlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKDRuKzIpIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYmxlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKDRuKzMpIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOm50aC1jaGlsZCg0bis0KSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cyB7XHJcblxyXG4gICAgICAgICAgLmNvbmZpcm1hdGlvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuZmlsbCB7XHJcblxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHByb2dyZXNzQmFyRnVsbEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubG9jay10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChvcmFuZ2VUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnVubG9jay10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zdGF0dXMuc2VuZCB7XHJcblxyXG4gICAgICAgICAgLnN0YXR1cy10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocmVkVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN0YXR1cy5yZWNlaXZlZCB7XHJcblxyXG4gICAgICAgICAgLnN0YXR1cy10cmFuc2FjdGlvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoZ3JlZW5UZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtY29udHJhY3RzIHtcclxuXHJcbiAgLndyYXAtdGFibGUge1xyXG5cclxuICAgIC5jb250cmFjdCB7XHJcblxyXG4gICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgICYubmV3LCAmLmFsZXJ0IHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHJlZFRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnB1cmNoYXNlLCAmLnNlbGwge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtcHVyY2hhc2Uge1xyXG5cclxuICAuZm9ybS1wdXJjaGFzZSB7XHJcblxyXG4gICAgLnB1cmNoYXNlLXNlbGVjdCB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKG1haW5UZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wdXJjaGFzZS1zdGF0ZXMge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hZGRpdGlvbmFsLWRldGFpbHMge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgYm9yZGVyOiAwLjJyZW0gc29saWQgdGhlbWVkKHRyYW5zcGFyZW50QnV0dG9uQm9yZGVyQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XHJcblxyXG4gICAgLnByb2dyZXNzLWJhciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQocHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAucHJvZ3Jlc3MtYmFyLWZ1bGwge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChwcm9ncmVzc0JhckZ1bGxCYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLW1lc3NhZ2VzIHtcclxuXHJcbiAgdGFibGUge1xyXG5cclxuICAgIHRib2R5IHtcclxuXHJcbiAgICAgIHRyIHtcclxuXHJcbiAgICAgICAgdGQ6Zmlyc3QtY2hpbGQge1xyXG5cclxuICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LXRydW5jYXRlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5pY29uIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChyZWRUZXh0Q29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5hcHAtdHlwaW5nLW1lc3NhZ2Uge1xyXG5cclxuICAuaGVhZCB7XHJcblxyXG4gICAgLmludGVybG9jdXRvciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWVzc2FnZXMtY29udGVudCB7XHJcblxyXG4gICAgLm1lc3NhZ2VzLWxpc3Qge1xyXG5cclxuICAgICAgZGl2IHtcclxuXHJcbiAgICAgICAgJi5kYXRlIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLm15IHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjpiZWZvcmUge1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvO1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgIGxlZnQ6IC0xLjFyZW07XHJcbiAgICAgICAgICAgIGJvcmRlcjogMS4ycmVtIHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdGhlbWVkKG1lc3NhZ2VNeUJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYnVkZHkge1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQobWVzc2FnZUJ1ZGR5QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmOmFmdGVyIHtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkbztcclxuICAgICAgICAgICAgcmlnaHQ6IC0xLjFyZW07XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgYm9yZGVyOiAxLjJyZW0gc29saWQgdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0aGVtZWQobWVzc2FnZUJ1ZGR5QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuYXBwLXN0YWtpbmcge1xyXG5cclxuICAuY2hhcnQtaGVhZGVyIHtcclxuXHJcbiAgICAuZ2VuZXJhbCB7XHJcblxyXG4gICAgICAubGFiZWwge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLm9wdGlvbnMge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdGVkIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jaGFydC1vcHRpb25zIHtcclxuXHJcbiAgICAudGl0bGUge1xyXG5cclxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAub3B0aW9ucyB7XHJcblxyXG4gICAgICBidXR0b24ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY2hhcnRPcHRpb25zQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYWN0aXZlIHtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGNoYXJ0T3B0aW9uc0hvdmVyQ29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmlucHV0LWJsb2NrLWFsaWFzIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIC5hbGlhcy1kcm9wZG93biB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDYuNXJlbTtcclxuICAgIG1heC1oZWlnaHQ6IDEwcmVtO1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGlucHV0QmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXYge1xyXG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgcGFkZGluZzogMXJlbTtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHNlbGVjdEhvdmVyQ29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJhcHAtY29udGFjdHMsIGFwcC1hZGQtY29udGFjdHMsXHJcbmFwcC1jb250YWN0LXNlbmQsIGFwcC1leHBvcnQtaW1wb3J0IHtcclxuICBmbGV4OiAxIDEgYXV0bztcclxuICBwYWRkaW5nOiAzcmVtO1xyXG4gIG1pbi13aWR0aDogODVyZW07XHJcblxyXG4gIC5jb250ZW50IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDNyZW07XHJcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xyXG5cclxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoY29udGVudEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLmhlYWQge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmFwcC1jb250YWN0cyB7XHJcbiAgXHJcbiAgdGFibGUge1xyXG5cclxuICAgIC5hbGlhcyB7XHJcbiAgXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICBcclxuICAgICAgLmljb24ge1xyXG4gIFxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gIFxyXG4gICAgICBzcGFuIHtcclxuICAgICAgICBcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGNvbG9yOiB0aGVtZWQobWFpblRleHRDb2xvcilcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mb290ZXIge1xyXG4gICAgXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgIH1cclxuICBcclxuICAgIC5pbXBvcnQtYnRuIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5pY29uIHtcclxuICBcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbn1cclxuXHJcbmFwcC1jb250YWN0LXNlbmQge1xyXG4gIFxyXG4gIC53YWxsZXRzLXNlbGVjdGlvbiB7XHJcblxyXG4gICAgYnV0dG9uIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgIGNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iLCIuZm9ybS1kZXRhaWxzIHtcclxuICAgIG1hcmdpbi10b3A6IDEuOHJlbTtcclxuXHJcbiAgICAuaW5wdXQtYmxvY2sge1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLndhbGxldC1idXR0b25zIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgICBtYXJnaW46IDIuOXJlbSAwO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxNXJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb3JtLXNlZWQge1xyXG5cclxuICAgIGxhYmVsIHtcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtLWNvbnRlbnQge1xyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB0aGVtZWQodHJhbnNwYXJlbnRCdXR0b25Cb3JkZXJDb2xvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIHBhZGRpbmc6IDNyZW07XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLnRleHQtY29yYWwge1xyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKGJsdWVUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLnNlZWQtcGhyYXNlLWZvcm0ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIG1heC13aWR0aDogMzhyZW07XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAgIC5pbnB1dC1ibG9jayxcclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5lcnJvci1tZXNzYWdlIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKG9yYW5nZVRleHRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWN1cmVkLXNlZWQge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoc2VjdXJlZFNlZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAgICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogM3JlbTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuXHJcbiAgICAgICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxufVxyXG5cclxuLnNlZWQtcGhyYXNlIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cclxuICAgICYtdGl0bGUge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQob3B0aW9uYWxUZXh0Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAucmlnaHQtcGFydCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEuN3JlbTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMS43cmVtO1xyXG5cclxuICAgICAgICAgICAgICAgICYuY29weSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2NvcHkuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC43NTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJi5jb3BpZWQge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4ycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9jb21wbGV0ZS10ZXN0d2FsbGV0LnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmLnNlY3VyZWQsXHJcbiAgICAgICAgICAgICAgICAmLnVuc2VjdXJlZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMnJlbTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjRyZW07XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi1jb250ZW50IHtcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRoZW1lZCh0cmFuc3BhcmVudEJ1dHRvbkJvcmRlckNvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcGFkZGluZzogMXJlbSAwIDFyZW07XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG5cclxuICAgICAgICAuaXRlbSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChzZWVkSXRlbVRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMnJlbTtcclxuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDcpO1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzNXB4O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuXHJcbiAgICAgICAgICAgICYuZGFyayB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoc2VlZEl0ZW1CYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtZm9vdGVyIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZChzZWVkSXRlbVRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi40cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmljb24ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICB3aWR0aDogMS42cmVtO1xyXG4gICAgaGVpZ2h0OiAxLjZyZW07XHJcblxyXG4gICAgJi5zZWN1cmVkIHtcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGdyZWVuVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL3NlY3VyZWQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICYuaW5mbyB7XHJcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL2luZm8uc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICYudW5zZWN1cmVkIHtcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKG9yYW5nZVRleHRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy91bnNlY3VyZWQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICYuc2FmZXR5IHtcclxuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKGFsdGVybmF0aXZlVGV4dENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFzazogdXJsKH5zcmMvYXNzZXRzL2ljb25zL3NhZmV0eS5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICB9XHJcbn1cclxuXHJcbi53cmFwLWJ1dHRvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAuc2VlZC1waHJhc2UtYnV0dG9uIHtcclxuICAgICAgICBtYXJnaW46IDIuOHJlbSAwO1xyXG4gICAgICAgIHdpZHRoOiAyNSU7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxLjVyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmNvcHktYnV0dG9uIHtcclxuICAgICAgICBtYXJnaW46IDIuOHJlbSAxcmVtO1xyXG4gICAgICAgIHdpZHRoOiAyNSU7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxLjVyZW07XHJcbiAgICB9XHJcbn0iLCIuaGVhZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIHBhZGRpbmc6IDAgM3JlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDNyZW07XHJcblxyXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgY29sb3I6IHRoZW1lZChibHVlVGV4dENvbG9yKTtcclxuICB9XHJcblxyXG4gIC5icmVhZGNydW1icyB7XHJcblxyXG4gICAgPiBzcGFuLCBhIHtcclxuXHJcbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgb3V0bGluZS1zdHlsZTogbm9uZTtcclxuXHJcbiAgICAgICAgJjphZnRlciB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgcHNldWRvO1xyXG4gICAgICAgICAgdG9wOiAwLjVyZW07XHJcbiAgICAgICAgICByaWdodDogLTEuNXJlbTtcclxuICAgICAgICAgIHdpZHRoOiAwLjlyZW07XHJcbiAgICAgICAgICBoZWlnaHQ6IDAuOXJlbTtcclxuICAgICAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1yaWdodC5zdmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICBtYXNrLXNpemU6IGNvdmVyO1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuYmFjay1idG4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiAjNGRiMWZmO1xyXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjNyZW07XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjdyZW07XHJcbiAgICAgIG1hc2s6IHVybCh+c3JjL2Fzc2V0cy9pY29ucy9iYWNrLnN2Zykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IDAuOXJlbTtcclxuICAgICAgaGVpZ2h0OiAwLjlyZW07XHJcblxyXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoYmx1ZVRleHRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLnNjcm9sbGVkLWNvbnRlbnQge1xyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgIHdpZHRoOiAxcmVtO1xyXG4gICAgaGVpZ2h0OiAxcmVtO1xyXG4gIH1cclxuXHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU2NTc2O1xyXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcclxuICB9XHJcblxyXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTY1NzY7XHJcbiAgfVxyXG59XHJcbiIsInRhYmxlIHtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgdGhlYWQge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgY29sb3I6IHRoZW1lZChvcHRpb25hbFRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgdHIge1xyXG4gICAgICBoZWlnaHQ6IDRyZW07XHJcblxyXG4gICAgICB0aCB7XHJcbiAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogM3JlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGJvZHkge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcclxuICAgICAgY29sb3I6IHRoZW1lZChtYWluVGV4dENvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICB0ciB7XHJcbiAgICAgIGhlaWdodDogMy41cmVtO1xyXG5cclxuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKHRhYmxlQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRkIHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS43cmVtO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAyMHJlbTtcclxuXHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gQkFTRVxyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9iYXNlL21peGlucyc7XHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2Jhc2UvbnVsbCc7XHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2Jhc2UvdGhlbWUnO1xyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9iYXNlL2Jhc2UnO1xyXG5cclxuLy8gTEFZT1VUXHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2xheW91dC9tYWluJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbGF5b3V0L3NldHRpbmdzJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbGF5b3V0L3NpZGViYXInO1xyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9sYXlvdXQvc3RhdHVzJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbGF5b3V0L3dhbGxldCc7XHJcbkBpbXBvcnQgJ2Fzc2V0cy9zY3NzL2xheW91dC9jb250YWN0JztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbGF5b3V0L3NlZWQtcGhyYXNlJztcclxuXHJcbi8vIE1PRFVMRVNcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbW9kdWxlcy9oZWFkJztcclxuQGltcG9ydCAnYXNzZXRzL3Njc3MvbW9kdWxlcy9zY3JvbGwnO1xyXG5AaW1wb3J0ICdhc3NldHMvc2Nzcy9tb2R1bGVzL3RhYmxlJztcclxuXHJcbkBpbXBvcnQgXCJ+QG5nLXNlbGVjdC9uZy1zZWxlY3QvdGhlbWVzL2RlZmF1bHQudGhlbWUuY3NzXCI7XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnM7XHJcbiAgc3JjOiB1cmwofnNyYy9hc3NldHMvZm9udHMvT3BlblNhbnMtTGlnaHQudHRmKTtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnM7XHJcbiAgc3JjOiB1cmwofnNyYy9hc3NldHMvZm9udHMvT3BlblNhbnMtUmVndWxhci50dGYpO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiBPcGVuU2FucztcclxuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1TZW1pQm9sZC50dGYpO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiBPcGVuU2FucztcclxuICBzcmM6IHVybCh+c3JjL2Fzc2V0cy9mb250cy9PcGVuU2Fucy1Cb2xkLnR0Zik7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6IE9wZW5TYW5zO1xyXG4gIHNyYzogdXJsKH5zcmMvYXNzZXRzL2ZvbnRzL09wZW5TYW5zLUV4dHJhQm9sZC50dGYpO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbn1cclxuXHJcblxyXG5odG1sIHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnMsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxMHB4O1xyXG59XHJcblxyXG5ib2R5IHtcclxuICBmb250LWZhbWlseTogT3BlblNhbnMsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgd2lkdGg6IDEwMHZ3O1xyXG4gIGhlaWdodDogMTAwdmg7XHJcblxyXG4gICYudGhlbWUtZGFyayB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMTMxOTIxIHVybChcImFzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1kYXJrLnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICB9XHJcblxyXG4gICYudGhlbWUtZ3JheSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMTAxNDE3IHVybChcImFzc2V0cy9pbWFnZXMvYmFja2dyb3VuZC1ncmF5LnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICB9XHJcblxyXG4gICYudGhlbWUtd2hpdGUge1xyXG4gICAgYmFja2dyb3VuZDogI2VlZWVlZSB1cmwoXCJhc3NldHMvaW1hZ2VzL2JhY2tncm91bmQtd2hpdGUucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIH1cclxuXHJcbiAgYXBwLXJvb3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLnVwZGF0ZS10b29sdGlwIHtcclxuXHJcbiAgLnRvb2x0aXAtaW5uZXIge1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFzazogdXJsKGFzc2V0cy9pY29ucy91cGRhdGUtYWxlcnQuc3ZnKSBuby1yZXBlYXQgY2VudGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */", '', '']] - -/***/ }), - -/***/ "./node_modules/style-loader/lib/addStyles.js": -/*!****************************************************!*\ - !*** ./node_modules/style-loader/lib/addStyles.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ - -var stylesInDom = {}; - -var memoize = function (fn) { - var memo; - - return function () { - if (typeof memo === "undefined") memo = fn.apply(this, arguments); - return memo; - }; -}; - -var isOldIE = memoize(function () { - // Test for IE <= 9 as proposed by Browserhacks - // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 - // Tests for existence of standard globals is to allow style-loader - // to operate correctly into non-standard environments - // @see https://github.com/webpack-contrib/style-loader/issues/177 - return window && document && document.all && !window.atob; -}); - -var getTarget = function (target, parent) { - if (parent){ - return parent.querySelector(target); - } - return document.querySelector(target); -}; - -var getElement = (function (fn) { - var memo = {}; - - return function(target, parent) { - // If passing function in options, then use it for resolve "head" element. - // Useful for Shadow Root style i.e - // { - // insertInto: function () { return document.querySelector("#foo").shadowRoot } - // } - if (typeof target === 'function') { - return target(); - } - if (typeof memo[target] === "undefined") { - var styleTarget = getTarget.call(this, target, parent); - // Special case to return head of iframe instead of iframe itself - if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { - try { - // This will throw an exception if access to iframe is blocked - // due to cross-origin restrictions - styleTarget = styleTarget.contentDocument.head; - } catch(e) { - styleTarget = null; - } - } - memo[target] = styleTarget; - } - return memo[target] - }; -})(); - -var singleton = null; -var singletonCounter = 0; -var stylesInsertedAtTop = []; - -var fixUrls = __webpack_require__(/*! ./urls */ "./node_modules/style-loader/lib/urls.js"); - -module.exports = function(list, options) { - if (typeof DEBUG !== "undefined" && DEBUG) { - if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment"); - } - - options = options || {}; - - options.attrs = typeof options.attrs === "object" ? options.attrs : {}; - - // Force single-tag solution on IE6-9, which has a hard limit on the # of - - diff --git a/src/gui/qt-daemon/html/unlock-transaction.svg b/src/gui/qt-daemon/html/unlock-transaction.svg deleted file mode 100644 index bbbc27ad..00000000 --- a/src/gui/qt-daemon/html/unlock-transaction.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/unsecured.svg b/src/gui/qt-daemon/html/unsecured.svg deleted file mode 100644 index 1b9b18d7..00000000 --- a/src/gui/qt-daemon/html/unsecured.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/update-alert.svg b/src/gui/qt-daemon/html/update-alert.svg deleted file mode 100644 index 22fa01c7..00000000 --- a/src/gui/qt-daemon/html/update-alert.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/src/gui/qt-daemon/html/update.svg b/src/gui/qt-daemon/html/update.svg deleted file mode 100644 index c612c84e..00000000 --- a/src/gui/qt-daemon/html/update.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/src/gui/qt-daemon/html/vendor.js b/src/gui/qt-daemon/html/vendor.js deleted file mode 100644 index 60938654..00000000 --- a/src/gui/qt-daemon/html/vendor.js +++ /dev/null @@ -1,137619 +0,0 @@ -(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["vendor"],{ - -/***/ "./node_modules/@angular/cdk/esm5/a11y.es5.js": -/*!****************************************************!*\ - !*** ./node_modules/@angular/cdk/esm5/a11y.es5.js ***! - \****************************************************/ -/*! exports provided: ARIA_DESCRIBER_PROVIDER_FACTORY, MESSAGES_CONTAINER_ID, CDK_DESCRIBEDBY_ID_PREFIX, CDK_DESCRIBEDBY_HOST_ATTRIBUTE, AriaDescriber, ARIA_DESCRIBER_PROVIDER, ActiveDescendantKeyManager, FocusKeyManager, ListKeyManager, FocusTrap, FocusTrapFactory, CdkTrapFocus, InteractivityChecker, LIVE_ANNOUNCER_PROVIDER_FACTORY, LiveAnnouncer, CdkAriaLive, LIVE_ANNOUNCER_PROVIDER, LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY, LIVE_ANNOUNCER_ELEMENT_TOKEN, FOCUS_MONITOR_PROVIDER_FACTORY, TOUCH_BUFFER_MS, FocusMonitor, CdkMonitorFocus, FOCUS_MONITOR_PROVIDER, isFakeMousedownFromScreenReader, A11yModule */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ARIA_DESCRIBER_PROVIDER_FACTORY", function() { return ARIA_DESCRIBER_PROVIDER_FACTORY; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MESSAGES_CONTAINER_ID", function() { return MESSAGES_CONTAINER_ID; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDK_DESCRIBEDBY_ID_PREFIX", function() { return CDK_DESCRIBEDBY_ID_PREFIX; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDK_DESCRIBEDBY_HOST_ATTRIBUTE", function() { return CDK_DESCRIBEDBY_HOST_ATTRIBUTE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AriaDescriber", function() { return AriaDescriber; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ARIA_DESCRIBER_PROVIDER", function() { return ARIA_DESCRIBER_PROVIDER; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActiveDescendantKeyManager", function() { return ActiveDescendantKeyManager; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FocusKeyManager", function() { return FocusKeyManager; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListKeyManager", function() { return ListKeyManager; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FocusTrap", function() { return FocusTrap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FocusTrapFactory", function() { return FocusTrapFactory; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CdkTrapFocus", function() { return CdkTrapFocus; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InteractivityChecker", function() { return InteractivityChecker; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LIVE_ANNOUNCER_PROVIDER_FACTORY", function() { return LIVE_ANNOUNCER_PROVIDER_FACTORY; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LiveAnnouncer", function() { return LiveAnnouncer; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CdkAriaLive", function() { return CdkAriaLive; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LIVE_ANNOUNCER_PROVIDER", function() { return LIVE_ANNOUNCER_PROVIDER; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY", function() { return LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LIVE_ANNOUNCER_ELEMENT_TOKEN", function() { return LIVE_ANNOUNCER_ELEMENT_TOKEN; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FOCUS_MONITOR_PROVIDER_FACTORY", function() { return FOCUS_MONITOR_PROVIDER_FACTORY; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TOUCH_BUFFER_MS", function() { return TOUCH_BUFFER_MS; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FocusMonitor", function() { return FocusMonitor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CdkMonitorFocus", function() { return CdkMonitorFocus; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FOCUS_MONITOR_PROVIDER", function() { return FOCUS_MONITOR_PROVIDER; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFakeMousedownFromScreenReader", function() { return isFakeMousedownFromScreenReader; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A11yModule", function() { return A11yModule; }); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/fesm5/common.js"); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js"); -/* harmony import */ var _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/cdk/keycodes */ "./node_modules/@angular/cdk/esm5/keycodes.es5.js"); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js"); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); -/* harmony import */ var _angular_cdk_platform__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/cdk/platform */ "./node_modules/@angular/cdk/esm5/platform.es5.js"); -/* harmony import */ var _angular_cdk_coercion__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/cdk/coercion */ "./node_modules/@angular/cdk/esm5/coercion.es5.js"); -/* harmony import */ var _angular_cdk_observers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/cdk/observers */ "./node_modules/@angular/cdk/esm5/observers.es5.js"); -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - - - - - - - - - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - -/** - * IDs are deliminated by an empty space, as per the spec. - * @type {?} - */ -var ID_DELIMINATOR = ' '; -/** - * Adds the given ID to the specified ARIA attribute on an element. - * Used for attributes such as aria-labelledby, aria-owns, etc. - * @param {?} el - * @param {?} attr - * @param {?} id - * @return {?} - */ -function addAriaReferencedId(el, attr, id) { - /** @type {?} */ - var ids = getAriaReferenceIds(el, attr); - if (ids.some(function (existingId) { return existingId.trim() == id.trim(); })) { - return; - } - ids.push(id.trim()); - el.setAttribute(attr, ids.join(ID_DELIMINATOR)); -} -/** - * Removes the given ID from the specified ARIA attribute on an element. - * Used for attributes such as aria-labelledby, aria-owns, etc. - * @param {?} el - * @param {?} attr - * @param {?} id - * @return {?} - */ -function removeAriaReferencedId(el, attr, id) { - /** @type {?} */ - var ids = getAriaReferenceIds(el, attr); - /** @type {?} */ - var filteredIds = ids.filter(function (val) { return val != id.trim(); }); - el.setAttribute(attr, filteredIds.join(ID_DELIMINATOR)); -} -/** - * Gets the list of IDs referenced by the given ARIA attribute on an element. - * Used for attributes such as aria-labelledby, aria-owns, etc. - * @param {?} el - * @param {?} attr - * @return {?} - */ -function getAriaReferenceIds(el, attr) { - // Get string array of all individual ids (whitespace deliminated) in the attribute value - return (el.getAttribute(attr) || '').match(/\S+/g) || []; -} - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -/** - * ID used for the body container where all messages are appended. - * @type {?} - */ -var MESSAGES_CONTAINER_ID = 'cdk-describedby-message-container'; -/** - * ID prefix used for each created message element. - * @type {?} - */ -var CDK_DESCRIBEDBY_ID_PREFIX = 'cdk-describedby-message'; -/** - * Attribute given to each host element that is described by a message element. - * @type {?} - */ -var CDK_DESCRIBEDBY_HOST_ATTRIBUTE = 'cdk-describedby-host'; -/** - * Global incremental identifier for each registered message element. - * @type {?} - */ -var nextId = 0; -/** - * Global map of all registered message elements that have been placed into the document. - * @type {?} - */ -var messageRegistry = new Map(); -/** - * Container for all registered messages. - * @type {?} - */ -var messagesContainer = null; -/** - * Utility that creates visually hidden elements with a message content. Useful for elements that - * want to use aria-describedby to further describe themselves without adding additional visual - * content. - * \@docs-private - */ -var AriaDescriber = /** @class */ (function () { - function AriaDescriber(_document) { - this._document = _document; - } - /** - * Adds to the host element an aria-describedby reference to a hidden element that contains - * the message. If the same message has already been registered, then it will reuse the created - * message element. - */ - /** - * Adds to the host element an aria-describedby reference to a hidden element that contains - * the message. If the same message has already been registered, then it will reuse the created - * message element. - * @param {?} hostElement - * @param {?} message - * @return {?} - */ - AriaDescriber.prototype.describe = /** - * Adds to the host element an aria-describedby reference to a hidden element that contains - * the message. If the same message has already been registered, then it will reuse the created - * message element. - * @param {?} hostElement - * @param {?} message - * @return {?} - */ - function (hostElement, message) { - if (!this._canBeDescribed(hostElement, message)) { - return; - } - if (!messageRegistry.has(message)) { - this._createMessageElement(message); - } - if (!this._isElementDescribedByMessage(hostElement, message)) { - this._addMessageReference(hostElement, message); - } - }; - /** Removes the host element's aria-describedby reference to the message element. */ - /** - * Removes the host element's aria-describedby reference to the message element. - * @param {?} hostElement - * @param {?} message - * @return {?} - */ - AriaDescriber.prototype.removeDescription = /** - * Removes the host element's aria-describedby reference to the message element. - * @param {?} hostElement - * @param {?} message - * @return {?} - */ - function (hostElement, message) { - if (!this._canBeDescribed(hostElement, message)) { - return; - } - if (this._isElementDescribedByMessage(hostElement, message)) { - this._removeMessageReference(hostElement, message); - } - /** @type {?} */ - var registeredMessage = messageRegistry.get(message); - if (registeredMessage && registeredMessage.referenceCount === 0) { - this._deleteMessageElement(message); - } - if (messagesContainer && messagesContainer.childNodes.length === 0) { - this._deleteMessagesContainer(); - } - }; - /** Unregisters all created message elements and removes the message container. */ - /** - * Unregisters all created message elements and removes the message container. - * @return {?} - */ - AriaDescriber.prototype.ngOnDestroy = /** - * Unregisters all created message elements and removes the message container. - * @return {?} - */ - function () { - /** @type {?} */ - var describedElements = this._document.querySelectorAll("[" + CDK_DESCRIBEDBY_HOST_ATTRIBUTE + "]"); - for (var i = 0; i < describedElements.length; i++) { - this._removeCdkDescribedByReferenceIds(describedElements[i]); - describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE); - } - if (messagesContainer) { - this._deleteMessagesContainer(); - } - messageRegistry.clear(); - }; - /** - * Creates a new element in the visually hidden message container element with the message - * as its content and adds it to the message registry. - */ - /** - * Creates a new element in the visually hidden message container element with the message - * as its content and adds it to the message registry. - * @private - * @param {?} message - * @return {?} - */ - AriaDescriber.prototype._createMessageElement = /** - * Creates a new element in the visually hidden message container element with the message - * as its content and adds it to the message registry. - * @private - * @param {?} message - * @return {?} - */ - function (message) { - /** @type {?} */ - var messageElement = this._document.createElement('div'); - messageElement.setAttribute('id', CDK_DESCRIBEDBY_ID_PREFIX + "-" + nextId++); - messageElement.appendChild((/** @type {?} */ (this._document.createTextNode(message)))); - this._createMessagesContainer(); - (/** @type {?} */ (messagesContainer)).appendChild(messageElement); - messageRegistry.set(message, { messageElement: messageElement, referenceCount: 0 }); - }; - /** Deletes the message element from the global messages container. */ - /** - * Deletes the message element from the global messages container. - * @private - * @param {?} message - * @return {?} - */ - AriaDescriber.prototype._deleteMessageElement = /** - * Deletes the message element from the global messages container. - * @private - * @param {?} message - * @return {?} - */ - function (message) { - /** @type {?} */ - var registeredMessage = messageRegistry.get(message); - /** @type {?} */ - var messageElement = registeredMessage && registeredMessage.messageElement; - if (messagesContainer && messageElement) { - messagesContainer.removeChild(messageElement); - } - messageRegistry.delete(message); - }; - /** Creates the global container for all aria-describedby messages. */ - /** - * Creates the global container for all aria-describedby messages. - * @private - * @return {?} - */ - AriaDescriber.prototype._createMessagesContainer = /** - * Creates the global container for all aria-describedby messages. - * @private - * @return {?} - */ - function () { - if (!messagesContainer) { - /** @type {?} */ - var preExistingContainer = this._document.getElementById(MESSAGES_CONTAINER_ID); - // When going from the server to the client, we may end up in a situation where there's - // already a container on the page, but we don't have a reference to it. Clear the - // old container so we don't get duplicates. Doing this, instead of emptying the previous - // container, should be slightly faster. - if (preExistingContainer) { - (/** @type {?} */ (preExistingContainer.parentNode)).removeChild(preExistingContainer); - } - messagesContainer = this._document.createElement('div'); - messagesContainer.id = MESSAGES_CONTAINER_ID; - messagesContainer.setAttribute('aria-hidden', 'true'); - messagesContainer.style.display = 'none'; - this._document.body.appendChild(messagesContainer); - } - }; - /** Deletes the global messages container. */ - /** - * Deletes the global messages container. - * @private - * @return {?} - */ - AriaDescriber.prototype._deleteMessagesContainer = /** - * Deletes the global messages container. - * @private - * @return {?} - */ - function () { - if (messagesContainer && messagesContainer.parentNode) { - messagesContainer.parentNode.removeChild(messagesContainer); - messagesContainer = null; - } - }; - /** Removes all cdk-describedby messages that are hosted through the element. */ - /** - * Removes all cdk-describedby messages that are hosted through the element. - * @private - * @param {?} element - * @return {?} - */ - AriaDescriber.prototype._removeCdkDescribedByReferenceIds = /** - * Removes all cdk-describedby messages that are hosted through the element. - * @private - * @param {?} element - * @return {?} - */ - function (element) { - // Remove all aria-describedby reference IDs that are prefixed by CDK_DESCRIBEDBY_ID_PREFIX - /** @type {?} */ - var originalReferenceIds = getAriaReferenceIds(element, 'aria-describedby') - .filter(function (id) { return id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0; }); - element.setAttribute('aria-describedby', originalReferenceIds.join(' ')); - }; - /** - * Adds a message reference to the element using aria-describedby and increments the registered - * message's reference count. - */ - /** - * Adds a message reference to the element using aria-describedby and increments the registered - * message's reference count. - * @private - * @param {?} element - * @param {?} message - * @return {?} - */ - AriaDescriber.prototype._addMessageReference = /** - * Adds a message reference to the element using aria-describedby and increments the registered - * message's reference count. - * @private - * @param {?} element - * @param {?} message - * @return {?} - */ - function (element, message) { - /** @type {?} */ - var registeredMessage = (/** @type {?} */ (messageRegistry.get(message))); - // Add the aria-describedby reference and set the - // describedby_host attribute to mark the element. - addAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id); - element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, ''); - registeredMessage.referenceCount++; - }; - /** - * Removes a message reference from the element using aria-describedby - * and decrements the registered message's reference count. - */ - /** - * Removes a message reference from the element using aria-describedby - * and decrements the registered message's reference count. - * @private - * @param {?} element - * @param {?} message - * @return {?} - */ - AriaDescriber.prototype._removeMessageReference = /** - * Removes a message reference from the element using aria-describedby - * and decrements the registered message's reference count. - * @private - * @param {?} element - * @param {?} message - * @return {?} - */ - function (element, message) { - /** @type {?} */ - var registeredMessage = (/** @type {?} */ (messageRegistry.get(message))); - registeredMessage.referenceCount--; - removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id); - element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE); - }; - /** Returns true if the element has been described by the provided message ID. */ - /** - * Returns true if the element has been described by the provided message ID. - * @private - * @param {?} element - * @param {?} message - * @return {?} - */ - AriaDescriber.prototype._isElementDescribedByMessage = /** - * Returns true if the element has been described by the provided message ID. - * @private - * @param {?} element - * @param {?} message - * @return {?} - */ - function (element, message) { - /** @type {?} */ - var referenceIds = getAriaReferenceIds(element, 'aria-describedby'); - /** @type {?} */ - var registeredMessage = messageRegistry.get(message); - /** @type {?} */ - var messageId = registeredMessage && registeredMessage.messageElement.id; - return !!messageId && referenceIds.indexOf(messageId) != -1; - }; - /** Determines whether a message can be described on a particular element. */ - /** - * Determines whether a message can be described on a particular element. - * @private - * @param {?} element - * @param {?} message - * @return {?} - */ - AriaDescriber.prototype._canBeDescribed = /** - * Determines whether a message can be described on a particular element. - * @private - * @param {?} element - * @param {?} message - * @return {?} - */ - function (element, message) { - return element.nodeType === this._document.ELEMENT_NODE && message != null && - !!("" + message).trim(); - }; - AriaDescriber.decorators = [ - { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"], args: [{ providedIn: 'root' },] }, - ]; - /** @nocollapse */ - AriaDescriber.ctorParameters = function () { return [ - { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_0__["DOCUMENT"],] }] } - ]; }; - /** @nocollapse */ AriaDescriber.ngInjectableDef = Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["defineInjectable"])({ factory: function AriaDescriber_Factory() { return new AriaDescriber(Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["inject"])(_angular_common__WEBPACK_IMPORTED_MODULE_0__["DOCUMENT"])); }, token: AriaDescriber, providedIn: "root" }); - return AriaDescriber; -}()); -/** - * \@docs-private \@deprecated \@breaking-change 8.0.0 - * @param {?} parentDispatcher - * @param {?} _document - * @return {?} - */ -function ARIA_DESCRIBER_PROVIDER_FACTORY(parentDispatcher, _document) { - return parentDispatcher || new AriaDescriber(_document); -} -/** - * \@docs-private \@deprecated \@breaking-change 8.0.0 - * @type {?} - */ -var ARIA_DESCRIBER_PROVIDER = { - // If there is already an AriaDescriber available, use that. Otherwise, provide a new one. - provide: AriaDescriber, - deps: [ - [new _angular_core__WEBPACK_IMPORTED_MODULE_1__["Optional"](), new _angular_core__WEBPACK_IMPORTED_MODULE_1__["SkipSelf"](), AriaDescriber], - (/** @type {?} */ (_angular_common__WEBPACK_IMPORTED_MODULE_0__["DOCUMENT"])) - ], - useFactory: ARIA_DESCRIBER_PROVIDER_FACTORY -}; - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -/** - * This class manages keyboard events for selectable lists. If you pass it a query list - * of items, it will set the active item correctly when arrow events occur. - * @template T - */ -var /** - * This class manages keyboard events for selectable lists. If you pass it a query list - * of items, it will set the active item correctly when arrow events occur. - * @template T - */ -ListKeyManager = /** @class */ (function () { - function ListKeyManager(_items) { - var _this = this; - this._items = _items; - this._activeItemIndex = -1; - this._activeItem = null; - this._wrap = false; - this._letterKeyStream = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); - this._typeaheadSubscription = rxjs__WEBPACK_IMPORTED_MODULE_2__["Subscription"].EMPTY; - this._vertical = true; - this._allowedModifierKeys = []; - /** - * Predicate function that can be used to check whether an item should be skipped - * by the key manager. By default, disabled items are skipped. - */ - this._skipPredicateFn = function (item) { return item.disabled; }; - // Buffer for the letters that the user has pressed when the typeahead option is turned on. - this._pressedLetters = []; - /** - * Stream that emits any time the TAB key is pressed, so components can react - * when focus is shifted off of the list. - */ - this.tabOut = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); - /** - * Stream that emits whenever the active item of the list manager changes. - */ - this.change = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); - // We allow for the items to be an array because, in some cases, the consumer may - // not have access to a QueryList of the items they want to manage (e.g. when the - // items aren't being collected via `ViewChildren` or `ContentChildren`). - if (_items instanceof _angular_core__WEBPACK_IMPORTED_MODULE_1__["QueryList"]) { - _items.changes.subscribe(function (newItems) { - if (_this._activeItem) { - /** @type {?} */ - var itemArray = newItems.toArray(); - /** @type {?} */ - var newIndex = itemArray.indexOf(_this._activeItem); - if (newIndex > -1 && newIndex !== _this._activeItemIndex) { - _this._activeItemIndex = newIndex; - } - } - }); - } - } - /** - * Sets the predicate function that determines which items should be skipped by the - * list key manager. - * @param predicate Function that determines whether the given item should be skipped. - */ - /** - * Sets the predicate function that determines which items should be skipped by the - * list key manager. - * @template THIS - * @this {THIS} - * @param {?} predicate Function that determines whether the given item should be skipped. - * @return {THIS} - */ - ListKeyManager.prototype.skipPredicate = /** - * Sets the predicate function that determines which items should be skipped by the - * list key manager. - * @template THIS - * @this {THIS} - * @param {?} predicate Function that determines whether the given item should be skipped. - * @return {THIS} - */ - function (predicate) { - (/** @type {?} */ (this))._skipPredicateFn = predicate; - return (/** @type {?} */ (this)); - }; - /** - * Configures wrapping mode, which determines whether the active item will wrap to - * the other end of list when there are no more items in the given direction. - * @param shouldWrap Whether the list should wrap when reaching the end. - */ - /** - * Configures wrapping mode, which determines whether the active item will wrap to - * the other end of list when there are no more items in the given direction. - * @template THIS - * @this {THIS} - * @param {?=} shouldWrap Whether the list should wrap when reaching the end. - * @return {THIS} - */ - ListKeyManager.prototype.withWrap = /** - * Configures wrapping mode, which determines whether the active item will wrap to - * the other end of list when there are no more items in the given direction. - * @template THIS - * @this {THIS} - * @param {?=} shouldWrap Whether the list should wrap when reaching the end. - * @return {THIS} - */ - function (shouldWrap) { - if (shouldWrap === void 0) { shouldWrap = true; } - (/** @type {?} */ (this))._wrap = shouldWrap; - return (/** @type {?} */ (this)); - }; - /** - * Configures whether the key manager should be able to move the selection vertically. - * @param enabled Whether vertical selection should be enabled. - */ - /** - * Configures whether the key manager should be able to move the selection vertically. - * @template THIS - * @this {THIS} - * @param {?=} enabled Whether vertical selection should be enabled. - * @return {THIS} - */ - ListKeyManager.prototype.withVerticalOrientation = /** - * Configures whether the key manager should be able to move the selection vertically. - * @template THIS - * @this {THIS} - * @param {?=} enabled Whether vertical selection should be enabled. - * @return {THIS} - */ - function (enabled) { - if (enabled === void 0) { enabled = true; } - (/** @type {?} */ (this))._vertical = enabled; - return (/** @type {?} */ (this)); - }; - /** - * Configures the key manager to move the selection horizontally. - * Passing in `null` will disable horizontal movement. - * @param direction Direction in which the selection can be moved. - */ - /** - * Configures the key manager to move the selection horizontally. - * Passing in `null` will disable horizontal movement. - * @template THIS - * @this {THIS} - * @param {?} direction Direction in which the selection can be moved. - * @return {THIS} - */ - ListKeyManager.prototype.withHorizontalOrientation = /** - * Configures the key manager to move the selection horizontally. - * Passing in `null` will disable horizontal movement. - * @template THIS - * @this {THIS} - * @param {?} direction Direction in which the selection can be moved. - * @return {THIS} - */ - function (direction) { - (/** @type {?} */ (this))._horizontal = direction; - return (/** @type {?} */ (this)); - }; - /** - * Modifier keys which are allowed to be held down and whose default actions will be prevented - * as the user is pressing the arrow keys. Defaults to not allowing any modifier keys. - */ - /** - * Modifier keys which are allowed to be held down and whose default actions will be prevented - * as the user is pressing the arrow keys. Defaults to not allowing any modifier keys. - * @template THIS - * @this {THIS} - * @param {?} keys - * @return {THIS} - */ - ListKeyManager.prototype.withAllowedModifierKeys = /** - * Modifier keys which are allowed to be held down and whose default actions will be prevented - * as the user is pressing the arrow keys. Defaults to not allowing any modifier keys. - * @template THIS - * @this {THIS} - * @param {?} keys - * @return {THIS} - */ - function (keys) { - (/** @type {?} */ (this))._allowedModifierKeys = keys; - return (/** @type {?} */ (this)); - }; - /** - * Turns on typeahead mode which allows users to set the active item by typing. - * @param debounceInterval Time to wait after the last keystroke before setting the active item. - */ - /** - * Turns on typeahead mode which allows users to set the active item by typing. - * @template THIS - * @this {THIS} - * @param {?=} debounceInterval Time to wait after the last keystroke before setting the active item. - * @return {THIS} - */ - ListKeyManager.prototype.withTypeAhead = /** - * Turns on typeahead mode which allows users to set the active item by typing. - * @template THIS - * @this {THIS} - * @param {?=} debounceInterval Time to wait after the last keystroke before setting the active item. - * @return {THIS} - */ - function (debounceInterval) { - var _this = this; - if (debounceInterval === void 0) { debounceInterval = 200; } - if ((/** @type {?} */ (this))._items.length && (/** @type {?} */ (this))._items.some(function (item) { return typeof item.getLabel !== 'function'; })) { - throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.'); - } - (/** @type {?} */ (this))._typeaheadSubscription.unsubscribe(); - // Debounce the presses of non-navigational keys, collect the ones that correspond to letters - // and convert those letters back into a string. Afterwards find the first item that starts - // with that string and select it. - (/** @type {?} */ (this))._typeaheadSubscription = (/** @type {?} */ (this))._letterKeyStream.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__["tap"])(function (keyCode) { return (/** @type {?} */ (_this))._pressedLetters.push(keyCode); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__["debounceTime"])(debounceInterval), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__["filter"])(function () { return (/** @type {?} */ (_this))._pressedLetters.length > 0; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__["map"])(function () { return (/** @type {?} */ (_this))._pressedLetters.join(''); })).subscribe(function (inputString) { - /** @type {?} */ - var items = (/** @type {?} */ (_this))._getItemsArray(); - // Start at 1 because we want to start searching at the item immediately - // following the current active item. - for (var i = 1; i < items.length + 1; i++) { - /** @type {?} */ - var index = ((/** @type {?} */ (_this))._activeItemIndex + i) % items.length; - /** @type {?} */ - var item = items[index]; - if (!(/** @type {?} */ (_this))._skipPredicateFn(item) && - (/** @type {?} */ (item.getLabel))().toUpperCase().trim().indexOf(inputString) === 0) { - (/** @type {?} */ (_this)).setActiveItem(index); - break; - } - } - (/** @type {?} */ (_this))._pressedLetters = []; - }); - return (/** @type {?} */ (this)); - }; - /** - * @param {?} item - * @return {?} - */ - ListKeyManager.prototype.setActiveItem = /** - * @param {?} item - * @return {?} - */ - function (item) { - /** @type {?} */ - var previousIndex = this._activeItemIndex; - this.updateActiveItem(item); - if (this._activeItemIndex !== previousIndex) { - this.change.next(this._activeItemIndex); - } - }; - /** - * Sets the active item depending on the key event passed in. - * @param event Keyboard event to be used for determining which element should be active. - */ - /** - * Sets the active item depending on the key event passed in. - * @param {?} event Keyboard event to be used for determining which element should be active. - * @return {?} - */ - ListKeyManager.prototype.onKeydown = /** - * Sets the active item depending on the key event passed in. - * @param {?} event Keyboard event to be used for determining which element should be active. - * @return {?} - */ - function (event) { - var _this = this; - /** @type {?} */ - var keyCode = event.keyCode; - /** @type {?} */ - var modifiers = ['altKey', 'ctrlKey', 'metaKey', 'shiftKey']; - /** @type {?} */ - var isModifierAllowed = modifiers.every(function (modifier) { - return !event[modifier] || _this._allowedModifierKeys.indexOf(modifier) > -1; - }); - switch (keyCode) { - case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["TAB"]: - this.tabOut.next(); - return; - case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["DOWN_ARROW"]: - if (this._vertical && isModifierAllowed) { - this.setNextItemActive(); - break; - } - else { - return; - } - case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["UP_ARROW"]: - if (this._vertical && isModifierAllowed) { - this.setPreviousItemActive(); - break; - } - else { - return; - } - case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["RIGHT_ARROW"]: - if (this._horizontal && isModifierAllowed) { - this._horizontal === 'rtl' ? this.setPreviousItemActive() : this.setNextItemActive(); - break; - } - else { - return; - } - case _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["LEFT_ARROW"]: - if (this._horizontal && isModifierAllowed) { - this._horizontal === 'rtl' ? this.setNextItemActive() : this.setPreviousItemActive(); - break; - } - else { - return; - } - default: - if (isModifierAllowed || Object(_angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["hasModifierKey"])(event, 'shiftKey')) { - // Attempt to use the `event.key` which also maps it to the user's keyboard language, - // otherwise fall back to resolving alphanumeric characters via the keyCode. - if (event.key && event.key.length === 1) { - this._letterKeyStream.next(event.key.toLocaleUpperCase()); - } - else if ((keyCode >= _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["A"] && keyCode <= _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["Z"]) || (keyCode >= _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["ZERO"] && keyCode <= _angular_cdk_keycodes__WEBPACK_IMPORTED_MODULE_3__["NINE"])) { - this._letterKeyStream.next(String.fromCharCode(keyCode)); - } - } - // Note that we return here, in order to avoid preventing - // the default action of non-navigational keys. - return; - } - this._pressedLetters = []; - event.preventDefault(); - }; - Object.defineProperty(ListKeyManager.prototype, "activeItemIndex", { - /** Index of the currently active item. */ - get: /** - * Index of the currently active item. - * @return {?} - */ - function () { - return this._activeItemIndex; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ListKeyManager.prototype, "activeItem", { - /** The active item. */ - get: /** - * The active item. - * @return {?} - */ - function () { - return this._activeItem; - }, - enumerable: true, - configurable: true - }); - /** Sets the active item to the first enabled item in the list. */ - /** - * Sets the active item to the first enabled item in the list. - * @return {?} - */ - ListKeyManager.prototype.setFirstItemActive = /** - * Sets the active item to the first enabled item in the list. - * @return {?} - */ - function () { - this._setActiveItemByIndex(0, 1); - }; - /** Sets the active item to the last enabled item in the list. */ - /** - * Sets the active item to the last enabled item in the list. - * @return {?} - */ - ListKeyManager.prototype.setLastItemActive = /** - * Sets the active item to the last enabled item in the list. - * @return {?} - */ - function () { - this._setActiveItemByIndex(this._items.length - 1, -1); - }; - /** Sets the active item to the next enabled item in the list. */ - /** - * Sets the active item to the next enabled item in the list. - * @return {?} - */ - ListKeyManager.prototype.setNextItemActive = /** - * Sets the active item to the next enabled item in the list. - * @return {?} - */ - function () { - this._activeItemIndex < 0 ? this.setFirstItemActive() : this._setActiveItemByDelta(1); - }; - /** Sets the active item to a previous enabled item in the list. */ - /** - * Sets the active item to a previous enabled item in the list. - * @return {?} - */ - ListKeyManager.prototype.setPreviousItemActive = /** - * Sets the active item to a previous enabled item in the list. - * @return {?} - */ - function () { - this._activeItemIndex < 0 && this._wrap ? this.setLastItemActive() - : this._setActiveItemByDelta(-1); - }; - /** - * @param {?} item - * @return {?} - */ - ListKeyManager.prototype.updateActiveItem = /** - * @param {?} item - * @return {?} - */ - function (item) { - /** @type {?} */ - var itemArray = this._getItemsArray(); - /** @type {?} */ - var index = typeof item === 'number' ? item : itemArray.indexOf(item); - /** @type {?} */ - var activeItem = itemArray[index]; - // Explicitly check for `null` and `undefined` because other falsy values are valid. - this._activeItem = activeItem == null ? null : activeItem; - this._activeItemIndex = index; - }; - /** - * Allows setting of the activeItemIndex without any other effects. - * @param index The new activeItemIndex. - * @deprecated Use `updateActiveItem` instead. - * @breaking-change 8.0.0 - */ - /** - * Allows setting of the activeItemIndex without any other effects. - * @deprecated Use `updateActiveItem` instead. - * \@breaking-change 8.0.0 - * @param {?} index The new activeItemIndex. - * @return {?} - */ - ListKeyManager.prototype.updateActiveItemIndex = /** - * Allows setting of the activeItemIndex without any other effects. - * @deprecated Use `updateActiveItem` instead. - * \@breaking-change 8.0.0 - * @param {?} index The new activeItemIndex. - * @return {?} - */ - function (index) { - this.updateActiveItem(index); - }; - /** - * This method sets the active item, given a list of items and the delta between the - * currently active item and the new active item. It will calculate differently - * depending on whether wrap mode is turned on. - */ - /** - * This method sets the active item, given a list of items and the delta between the - * currently active item and the new active item. It will calculate differently - * depending on whether wrap mode is turned on. - * @private - * @param {?} delta - * @return {?} - */ - ListKeyManager.prototype._setActiveItemByDelta = /** - * This method sets the active item, given a list of items and the delta between the - * currently active item and the new active item. It will calculate differently - * depending on whether wrap mode is turned on. - * @private - * @param {?} delta - * @return {?} - */ - function (delta) { - this._wrap ? this._setActiveInWrapMode(delta) : this._setActiveInDefaultMode(delta); - }; - /** - * Sets the active item properly given "wrap" mode. In other words, it will continue to move - * down the list until it finds an item that is not disabled, and it will wrap if it - * encounters either end of the list. - */ - /** - * Sets the active item properly given "wrap" mode. In other words, it will continue to move - * down the list until it finds an item that is not disabled, and it will wrap if it - * encounters either end of the list. - * @private - * @param {?} delta - * @return {?} - */ - ListKeyManager.prototype._setActiveInWrapMode = /** - * Sets the active item properly given "wrap" mode. In other words, it will continue to move - * down the list until it finds an item that is not disabled, and it will wrap if it - * encounters either end of the list. - * @private - * @param {?} delta - * @return {?} - */ - function (delta) { - /** @type {?} */ - var items = this._getItemsArray(); - for (var i = 1; i <= items.length; i++) { - /** @type {?} */ - var index = (this._activeItemIndex + (delta * i) + items.length) % items.length; - /** @type {?} */ - var item = items[index]; - if (!this._skipPredicateFn(item)) { - this.setActiveItem(index); - return; - } - } - }; - /** - * Sets the active item properly given the default mode. In other words, it will - * continue to move down the list until it finds an item that is not disabled. If - * it encounters either end of the list, it will stop and not wrap. - */ - /** - * Sets the active item properly given the default mode. In other words, it will - * continue to move down the list until it finds an item that is not disabled. If - * it encounters either end of the list, it will stop and not wrap. - * @private - * @param {?} delta - * @return {?} - */ - ListKeyManager.prototype._setActiveInDefaultMode = /** - * Sets the active item properly given the default mode. In other words, it will - * continue to move down the list until it finds an item that is not disabled. If - * it encounters either end of the list, it will stop and not wrap. - * @private - * @param {?} delta - * @return {?} - */ - function (delta) { - this._setActiveItemByIndex(this._activeItemIndex + delta, delta); - }; - /** - * Sets the active item to the first enabled item starting at the index specified. If the - * item is disabled, it will move in the fallbackDelta direction until it either - * finds an enabled item or encounters the end of the list. - */ - /** - * Sets the active item to the first enabled item starting at the index specified. If the - * item is disabled, it will move in the fallbackDelta direction until it either - * finds an enabled item or encounters the end of the list. - * @private - * @param {?} index - * @param {?} fallbackDelta - * @return {?} - */ - ListKeyManager.prototype._setActiveItemByIndex = /** - * Sets the active item to the first enabled item starting at the index specified. If the - * item is disabled, it will move in the fallbackDelta direction until it either - * finds an enabled item or encounters the end of the list. - * @private - * @param {?} index - * @param {?} fallbackDelta - * @return {?} - */ - function (index, fallbackDelta) { - /** @type {?} */ - var items = this._getItemsArray(); - if (!items[index]) { - return; - } - while (this._skipPredicateFn(items[index])) { - index += fallbackDelta; - if (!items[index]) { - return; - } - } - this.setActiveItem(index); - }; - /** Returns the items as an array. */ - /** - * Returns the items as an array. - * @private - * @return {?} - */ - ListKeyManager.prototype._getItemsArray = /** - * Returns the items as an array. - * @private - * @return {?} - */ - function () { - return this._items instanceof _angular_core__WEBPACK_IMPORTED_MODULE_1__["QueryList"] ? this._items.toArray() : this._items; - }; - return ListKeyManager; -}()); - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -/** - * @template T - */ -var /** - * @template T - */ -ActiveDescendantKeyManager = /** @class */ (function (_super) { - Object(tslib__WEBPACK_IMPORTED_MODULE_5__["__extends"])(ActiveDescendantKeyManager, _super); - function ActiveDescendantKeyManager() { - return _super !== null && _super.apply(this, arguments) || this; - } - /** - * @param {?} index - * @return {?} - */ - ActiveDescendantKeyManager.prototype.setActiveItem = /** - * @param {?} index - * @return {?} - */ - function (index) { - if (this.activeItem) { - this.activeItem.setInactiveStyles(); - } - _super.prototype.setActiveItem.call(this, index); - if (this.activeItem) { - this.activeItem.setActiveStyles(); - } - }; - return ActiveDescendantKeyManager; -}(ListKeyManager)); - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -/** - * @template T - */ -var /** - * @template T - */ -FocusKeyManager = /** @class */ (function (_super) { - Object(tslib__WEBPACK_IMPORTED_MODULE_5__["__extends"])(FocusKeyManager, _super); - function FocusKeyManager() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._origin = 'program'; - return _this; - } - /** - * Sets the focus origin that will be passed in to the items for any subsequent `focus` calls. - * @param origin Focus origin to be used when focusing items. - */ - /** - * Sets the focus origin that will be passed in to the items for any subsequent `focus` calls. - * @template THIS - * @this {THIS} - * @param {?} origin Focus origin to be used when focusing items. - * @return {THIS} - */ - FocusKeyManager.prototype.setFocusOrigin = /** - * Sets the focus origin that will be passed in to the items for any subsequent `focus` calls. - * @template THIS - * @this {THIS} - * @param {?} origin Focus origin to be used when focusing items. - * @return {THIS} - */ - function (origin) { - (/** @type {?} */ (this))._origin = origin; - return (/** @type {?} */ (this)); - }; - /** - * @param {?} item - * @return {?} - */ - FocusKeyManager.prototype.setActiveItem = /** - * @param {?} item - * @return {?} - */ - function (item) { - _super.prototype.setActiveItem.call(this, item); - if (this.activeItem) { - this.activeItem.focus(this._origin); - } - }; - return FocusKeyManager; -}(ListKeyManager)); - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -// The InteractivityChecker leans heavily on the ally.js accessibility utilities. -// Methods like `isTabbable` are only covering specific edge-cases for the browsers which are -// supported. -/** - * Utility for checking the interactivity of an element, such as whether is is focusable or - * tabbable. - */ -var InteractivityChecker = /** @class */ (function () { - function InteractivityChecker(_platform) { - this._platform = _platform; - } - /** - * Gets whether an element is disabled. - * - * @param element Element to be checked. - * @returns Whether the element is disabled. - */ - /** - * Gets whether an element is disabled. - * - * @param {?} element Element to be checked. - * @return {?} Whether the element is disabled. - */ - InteractivityChecker.prototype.isDisabled = /** - * Gets whether an element is disabled. - * - * @param {?} element Element to be checked. - * @return {?} Whether the element is disabled. - */ - function (element) { - // This does not capture some cases, such as a non-form control with a disabled attribute or - // a form control inside of a disabled form, but should capture the most common cases. - return element.hasAttribute('disabled'); - }; - /** - * Gets whether an element is visible for the purposes of interactivity. - * - * This will capture states like `display: none` and `visibility: hidden`, but not things like - * being clipped by an `overflow: hidden` parent or being outside the viewport. - * - * @returns Whether the element is visible. - */ - /** - * Gets whether an element is visible for the purposes of interactivity. - * - * This will capture states like `display: none` and `visibility: hidden`, but not things like - * being clipped by an `overflow: hidden` parent or being outside the viewport. - * - * @param {?} element - * @return {?} Whether the element is visible. - */ - InteractivityChecker.prototype.isVisible = /** - * Gets whether an element is visible for the purposes of interactivity. - * - * This will capture states like `display: none` and `visibility: hidden`, but not things like - * being clipped by an `overflow: hidden` parent or being outside the viewport. - * - * @param {?} element - * @return {?} Whether the element is visible. - */ - function (element) { - return hasGeometry(element) && getComputedStyle(element).visibility === 'visible'; - }; - /** - * Gets whether an element can be reached via Tab key. - * Assumes that the element has already been checked with isFocusable. - * - * @param element Element to be checked. - * @returns Whether the element is tabbable. - */ - /** - * Gets whether an element can be reached via Tab key. - * Assumes that the element has already been checked with isFocusable. - * - * @param {?} element Element to be checked. - * @return {?} Whether the element is tabbable. - */ - InteractivityChecker.prototype.isTabbable = /** - * Gets whether an element can be reached via Tab key. - * Assumes that the element has already been checked with isFocusable. - * - * @param {?} element Element to be checked. - * @return {?} Whether the element is tabbable. - */ - function (element) { - // Nothing is tabbable on the server 😎 - if (!this._platform.isBrowser) { - return false; - } - /** @type {?} */ - var frameElement = getFrameElement(getWindow(element)); - if (frameElement) { - /** @type {?} */ - var frameType = frameElement && frameElement.nodeName.toLowerCase(); - // Frame elements inherit their tabindex onto all child elements. - if (getTabIndexValue(frameElement) === -1) { - return false; - } - // Webkit and Blink consider anything inside of an element as non-tabbable. - if ((this._platform.BLINK || this._platform.WEBKIT) && frameType === 'object') { - return false; - } - // Webkit and Blink disable tabbing to an element inside of an invisible frame. - if ((this._platform.BLINK || this._platform.WEBKIT) && !this.isVisible(frameElement)) { - return false; - } - } - /** @type {?} */ - var nodeName = element.nodeName.toLowerCase(); - /** @type {?} */ - var tabIndexValue = getTabIndexValue(element); - if (element.hasAttribute('contenteditable')) { - return tabIndexValue !== -1; - } - if (nodeName === 'iframe') { - // The frames may be tabbable depending on content, but it's not possibly to reliably - // investigate the content of the frames. - return false; - } - if (nodeName === 'audio') { - if (!element.hasAttribute('controls')) { - // By default an
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'BREADCRUMBS.ADD_WALLET' | translate }}\\r\\n {{ 'BREADCRUMBS.SAVE_PHRASE' | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    = variablesService.maxWalletNameLength\\\">\\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
    {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\\r\\n

    \\r\\n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }}\\r\\n \\r\\n 0\\\">{{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }}\\r\\n \\r\\n

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    = 1 && (index + 1) <= 7 || (index + 1) >= 15 && (index + 1) <= 21\\\">\\r\\n {{(index + 1) + '. ' + word}}
    \\r\\n
    \\r\\n
    \\r\\n
    0\\\">\\r\\n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    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 AWB>pF diff --git a/src/gui/qt-daemon/html/assets/fonts/OpenSans-Regular.ttf b/src/gui/qt-daemon/html/assets/fonts/OpenSans-Regular.ttf deleted file mode 100644 index 2e31d02424ed50b9e05c19b5d82500699a6edbb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 217276 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%0DHhV?N1s&&lC=`j?-^cJA^!2jed0`4 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 }c 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

    dg4umb* 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 diff --git a/src/gui/qt-daemon/html/assets/fonts/OpenSans-SemiBold.ttf b/src/gui/qt-daemon/html/assets/fonts/OpenSans-SemiBold.ttf deleted file mode 100644 index 99db86aa0282e425450c86508d42da77a9f4102b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221164 zcmbTf34Dy#{y%=sv(1{>GLy-knM@W$giIE(WspQ9K@y=EwF?cceXFXXC=yHUJH4u! zYA-_-Rn@9$sjH}~y{cNS(goG4t=p13`Mu9GlL+75d;hQh#L1cGdCv2k&-v`1&-pw- zC?O;mzXZ}cr+4>m9XEd1iSPwa6JndxEhjgRB=EZkpI44i(cOxB_10w?GjWXTq;0p} zeYzNuI_}4@j}ZQ&UcFONw@Pd32%!gXeekf+L&oiV=ePTWnD*lOf?-o8IZVsK(+G)D zm`{LaZGKQSE(V$i#6(O(O8TB3#!$@zk^tQ*Yn7KuElr&`x_RhYzXX zX=D#PALB_zB~Aq0*L;iPNjQ$H96jmjx$7Lm3E@HsF|2=b_=GWKNt)*f9d?M&eHl-U z9X4dmn*6?)AMmRBjvn&#II%7LH|}4H`yFG3j2@oU?S;vN5Brr6srk6E6DM(9Z$CwN zhl7xWq;V65k9+!!4Pyw2_!;+v5{5e(cJZUD@rMQ(JN!m8Y*~byDEe^*>(3|s?fm_+ zy2Dz#x&nt9!m+dX;6C-@x*9^XQTNN_=~}z;B>y$#H~%s_!|xzfB!oOhMBHg2DWpGc z<;k~%$5meVCs&RuL|iYraX!Z1^JmEjdKVbbsU%)4aGY?NaJN0g@i-pbj6J+f=iXfj zPSn>)F|w7+RWIhs9fWRS*Mw4WA36t~eu^AX&RFp**3!v5eg>H*CXp0j85t{GBW2=E zGML^W^SFhi6s@B$loa6FV9rIdxfLXzbK{;EV#2v{wDoBH(E6e!qD@8{h{o<=*ZZ>Z zTo%d3_rYi*SkJ#iOsW(zRxH3u^T`p>LZ*q|kR!rWv@SS4O{Pg4Il^5f1zbgag&2kN zeaR8kP;x}dK`SEDgq!|exi*4S2=hsl_%qon+yfUZBYO0La0shkPr7j1$a)4ddbdzS zqWH1(wZb7fO4tV2Ye@}%7jV_0Z6qVO?}$s7NbI7O)Nt*|daix_d|`$1y+*a2)Ufly zRb_k)yN92M`>&Cqd^}0Swar34xNIS@3Y8>G!20-eB!{NPoV|qz-ZCXK!bNci;d`6`%bt> zMl{la(V}T%e1>C2i>8gyg3+4wY~5`B|I=gbY<`A=KkXThg63@fq8{@y{4hBGN6+|K z;i>=7GhS!wK~K=@xvTXzu+B9K-rLt-MjwphcNH46C#?g04P>VP^0}VL2(HgpWC6S? zEJlO80A~&TfQOEM$N7H5!1b?}86B0mAL+#}2;X>($s2I0$X%0OwVF&*?F2p`pG*z{ z{g6QaqyV{Ovhg2#$Sji^Cc900g>M-B7!Un_=$X7LGRNed(KaCWO!k=kH|@F8So>OX zRD?BRJivIK@m<5(8eu(2t_rMuOkKiBDllCjY^Hys=v$nn#Fw_XugyRD;B`$^@yGoWS<4w3%3q6Zx zN?LqhTz^UGkMGrFES{lZ=M~vw*Kv-mQAz~7ShJV|9s)loybD+v&#Lwjwd$;YjOfCc zFrpW+Rs~lCeE?tL3Fvb?OBD~A{Xohk@HT78Jty%DW)}i@WcM@Mpy)B+iaoOtR~DT2 zk!tmLazwov-)nHM8hs2}66vCzj@}L3&2-Z@q*6E!-To5raR)X5axRS}oRCQJ#ZlmO zGzDjuh*~PfaSD!^-m#-^uqjrO#Q0H)0uxtHQ6q93sg`xk?S9b_oz?_v!yxRv2WAao+y2-aZ#646X( z`DjUKS!gL}iC8~eQUwo6&+UM{#4&{zDNMt6=6kKjiBo8S55||V#^#|5i3#)%6HY)@ z`wv*lOu%n{srGGDDFF4m+`u!)IS_eSWnJ!CT>wP|QS5po~CbuE0) zI;|ov;A@5c;4gTXGo-VG6Dx>TOeR{@H1K&m=)M*6oF#&4FOJ_(@EQZYG6Ba&r0;u+%&?i&wY3G~`1GEIFBFl`2Ge9Ck_)9Ha;oCyE#APG~sNR*@|Nn$Oj7W<+>{zXaYkHFEcfli4LXJTBSXZnfh z87AxENk5EIGGJ8|({c>r-?{3aQ5R z!BU`an5zLV!XC&^KJd!)8+f3xZ?M4uS~k)YdW-1}rstTh`9FOCM%eo!OrJ1)r|6sp z`cx`@au{q0r|2jGy$v5nRYbCmfvg{AOo{v>{b@9Kj6>f7j}fj1a`G;JL0DL20U9{M-Y zzlENn--C7^?MoaNv1_oWM|e{`#v%@-fp&x}Cx9Lw#J_0B5fFiY7X3$L7LiCE$tT^( zbL1pBO%rJ<9YTlEnRGe*3-!^TX+0OgWpanOkGT`vCGHoV@;tBMjl7Fr$XD@;__h2x z{xAG%{0{z8{xkk_AxP*Y6bt=@LBb2dQem0!p76f#sc>2hj;7Js(et7|j{YS2U(vrr z{}I!}p>xUhH`I)j}dPKPtrnc!^Y92m>R zO0mXROKf;-bZk;=e(d1b;qjl`hf`QzS6`3yIIxZa@)G$QIYXOKHyuhVu#T7LF0A7o z7pkn|Bdp^eSO;lb$6RF{OR$dh{L5I!>-<@)g9rw!qeK`W3>Fp$FAB@Cjw8Zp;Y>7% z?i4*M`laaO(I=ztME{C)5J#}X?r{gHJ%9$1ID$vP^q4uW;m z*4Nix<$Kg$t^a^KS^ohc=#%R|sP~cgK*J&R-LXnizgnIr&y}atSJn@!A6h?vJW-!h zcZS&OPS<@(G*^|HjeH&LAF}4#@^3@0KJzUy zF5k|$YWQ~g)u4ZNxpMo;PgibT`SHq?E0?cayz=Fhb5~AYIeul`l_^&y5ppH;itdW$ zpJOh|m+xQx_44t{@t0#ShhGl6Y`JW_%zyLUH)p;%_0>qkD&Nr zpr_m8{k-LU%6gZU6!+@cqo}Z;dw#dP+?=jmI(xD^b?nf-T~^!7jPy3GQ(7grY?hc1 zALoj7#)MkUCZi!pr`4!ck|^*TB`qC3Iyl$I$2-hEIms<^U3r6j zjv)>oIw8T8k1IIk8sc*dcK8y|4QX2hxE};d1y+<+vON zXupzjd|#a7@;ZFCl3&5GuOD?v{@&reBqkqw%g4Sbr72tE6p8J;VUjF&&`Q&I=#s)yZa0-JPDUb zSLKmDsjE+=Jkl`|tAb^A>~8sf)uIC?GIVf~zQR>8q<^`OAA)TwfA$t(#a!lQTmCXQX)3Z-ia+ zab111wA{%)5qY3WRaKtLkykaiYRG~5Swme8ldEdCUSBmX7w9I%Ion1!&5dL5fIq)XfEFMJ7kW|frtj~!%a#2(^FN%H!*!R*TW4OeV^*p*ogR~m00>;i2IdzV-Fg!t|iu3TWe zdWdhgf9 zjbwB!Dfgwg#`&zSE`Bb;2?kc~$lm43E&j8)K5JJWvhjhtd?~rO7p$LK#W;o4z4b40x9CTYZ*gVVl{uHdqS+^X`55x$tg5fzZT5svZ*r_bXBg}tuw;a9e`R^Ife39^7D;>2YIa{*-f@{$^H$dK#nrW`lm8a(sxNf~L8KLduG;PKFk!B22X3r#b+4#$ z^)BzAjD|j$5%CP0+d>LyVOf{tmQZb7cDv|;lHDG?9lFU*y#7~%2yA?|}NFm<1PI5>mIsp(#@6)=5ck$_5UD)|-c0SvGUSj7} zt}Z?rLUH>n$X&6I;&<8OF+K9aV-nI#ed6QtW5R;#V^l(YjKtT+6ct9s6y`<51iLMLM9TLO z+R`wlt zh1IUCza>wvza!VkoAHeQpC6WK!smT*fcVJEWF@|xBFD&Sa*(X2ZQwVvPh8;VF*1YP zr_<=q+-U9vZV&ejZ{j=ggZL?kWcKmD3l3qp@V=-P`-*$SFQjZ~v-G*jq-v`gs;W|5 zQ;$*a)TlN2nwgq?n(wsf+7a4y+V{2hbfLOIy7jut`e^-R{rf?dpp2kVK^ueqWoT*W zXIO0T8BQ5)8$*q)j6IDzP1MxhwAl1dv&($Q{D-BrWt!!H<#cdD@Sxx=!M|9$S*Kb* zw5e>JZR2bohtQDDA(KLmhJ0yHvX8^hR{O7^MWL^T)`mI5HiVrG?-9Nw{LAp#2q9u| z#LE$1M%p5KMQ(|FFG`5YjPgb;jXDtZujm%hp6EW&Pa<0RD*9Hm9Ak`e#-zqn$E=B| ziFrHblbEk!ZpFwBqr>T#=$PwR<=F1n?>O%G(y4Jybk23Ia&C7XaGpTa^<3rX*%2?nrzm@nqsx zi8mALni-mfH%n-i*{oZ$@@AFIrZrpGY<;uWo9%D*akGCk`=NRJ=9`-DZ2n&JGtI9w zzte(mVQ3N7qD70&Eqb)@wiwl7dW-ojmbW<7;_DW-Tii>MlI%&bNv)FFB~4A*mGpkn z*`!NJ-zWXiQq$7ba!AWJTE5%zRLieh{*+9T&B>FK@3+#oifq-aRa&duR()EHXf>tP z{8npPz1(V7tM^--X?3yH^;Z8*;Zw3xR;Rq0vOnc`%0E(mNcp3+u61PVR;@j)i&~er z9@+Yt*43>ywEk=B!>vDU{Y~qi+t4=VHtpI}r&?2wrGB3JUFz>{wL91y?JjaZ>t61D z-+ehPJgr;W+_X2-&ZozxXQY>>k4k?weM$P3^xf$nq@Pc}lzuIP&(LKAXGCPUGNxtB z&RCdnFyn)aPcpeoZDvYlX6Dq)nVIu5|7c6w_G1tNV`b|LlIJpjpA7f>#SJ6kI7(6&efeg&hiW3STYURd~55 zs;EcNf}+3mF!$)$V`Gm$dUowu*7M_@U-XLamE0@6SGQihdcD@Gws>IinBwP(|62S- zab1a_B)TM}#8XmQQc*Iw?dHeFk<*UlCmDhTMy)C?*y&Js$@XGx< z^y|~_`F__Q4|{yw7UbodjI+TSM-0c|MdZ?0nG;#4wyCI{ei;3J_DZ~_|2d; z|M_R|n8BY8{$}uZL!KJ)*P+2f`$Rcx==Uva$R9~IvZA3A*hh~N3UwZo5w8UwnryYDo^-RBK z)<5%)>GtW5O~R^{K@lY%wIBp^ZZ*2IxOh9V9#y9>K5EMHi;@R^0x z3pXv?S;bd9RyDHfnW{xqo2qtJ9j-c4b*1W;YN0x$IXuDx|N2N(JNc8?6R_K<%pF}udG_RaplgHM^}Ea^81y4tP)q5S4FLAzN+1-!c_xS zja@Z+)rwWGtlGco#Hx#{eqJrCwylm|ov}J^^<%3mS5I5LaP_Lye_8$4)o-u zH&@rKF|3JRld{IMrew{KHKW%|TQhIXvNc=Ryt(GXHGf}od97}3$F<|u?p|kHm$Pol zx_8%yug_mUcKz!0hu7C{NZc@T!-pHS8@(HcY^>V2eB-}1)@_=xY2l_-o9=FwHiv9Z z+?=_&X!C&0V>Zv+ylnH<&2Mi0aP#TSmp9+s{Kpo$C3s83mgFtzTRLv(xuqYhD)t0n z=e4lqJW-Kok6z$Kj_1@GfmacdlA7W+TWD66*==^WX&vk|J2TOa@ZD?oS8~(p=8OC8 z6;uk>*>mRAU!^;h=NL(IPq3Cpj)OCsC=KHHAXSMsD41j?kjpht1HZoP}yEc|xv_W-mpo*?XZ zU>=QH;#53OvfZarn}AD^<8-3Y(al#k=O*HpxUcSK&cqsnI0Y-eC+mENs{lX@%*nx161d>di@MP(&_Ne$4k|2mql4vHP+8idP zv=XHdkI|AJV)sM^#qlj#NcMQWr0?bBrKCu!-5%M?YbPm5W`fm)rnr?amMpW~9Uf{r zm1H^vVkqmwWh@a(vq~zPD?K4GJtV|#PE1HhPs_+mciTejs)R(dJtRbxhCYK@aaEFp z#J?Y(_xqN<*B>w2w&sfi^G@#TzG*|z;pI0=2KnT~ZUc(T=&@yoLN1&W^3S!%qI613 z_O97gdxC3TQ5Ej*q?cDlb>BL-U7<@p62V=~DvGC>dba&T%Ia@Q%dm5$fp;5Cnq&Qs zd0Hp8NNO1#V~ZEH#H2OF#J6ZErL>BCDUl{7Ci8=X=&m3d6x1@AZ)s6kgwR+pGiaR6 zxOu>Mw;8{gpfoI&i3<}LEX18^Ho0OYQQ_`%lQT8s&rebprS^7R=FaWXj(+gUU)H`# zvp2m)@3!wUXHJ*)^n>kN*49wZ`q$+zYR`YbCkbTLa^(6Gm#?_~-R-aGiCeW_u3AZ( z)A$!xUB76Q*a6%l3@T?cB5E{=c83({iR34V`{!&e6eR*OjjIy}oS1 z!2$A~Cr``YzA0Z?R@(bZf*2XPf{s>jU`4SeFA5yf5sWDzb4<4f@%9RUGu2|2tp&I(> z&O>tYufNI}Z||TV;kh00+|0)3YIVGzLWzOVAZQ~~)rlrK`l_jp1+J;D{B3X>-`kA^2e0O{eSOeZm23p%AcZTTEW zj~qXa(Ta_tR;(q|qmu~1D)Ct05j^i*Z&vVfF*~+8=(T70uhPumNb53R?aRV$)dHqcx3sJTXv2rty)q=ts ziG+n}Y(2ah6>sd}<-`0&(hq*%NhZz}3rlKor&_4;+pL@svVN=mwf49Bztz?SO`ku1 z#*F#%r*jwOIr0+v934;R(6RC?d5L_!o=^e0B7v%88St+M{Ca?+B~Fit2(a{&>UDyO zY9!S5GK~hS1PNhW?sS>cG9^isNZq{thT7isy(x6(hrI8#VWI6dtfC4&;6-3fCt*d~ zc*0fIaE>!rBZR0(v$luVtm48c4e#k?PsW-^R;Yq$zn;YNo$0g_=T{u6#EgI&AgNR~ zr;t_aq|;sT#RD~ zTX_R)imeKPTOv4PnZ0tSDjLp}?shZ+3~erOTUYpe^5^ocUtS$>X7G-hgCEbFO$RrQd}S)o(l0A-k5HyVmP$tJLS_P9F2#oq;1#a<;8J44y~?n4`smpofLz zdlEI28gwebBBE4`w+2(uB7!-jVhc4|Vl14+!W&WI%m@V!BW1tq@eum%hxR9Ly za&h1U30;zk3Zsu*tE=EPUOOiD)v6;q$g60!e1vAd#eY3eultfY8!e!?mu*ND7S!Db~75NC46 zf{TKgW0R4=6 zT9Zsq6t6Z|lblj&8`11^CMD^RDC^}VDqVOlukPX1Gmli61In4X+oHnUu*J*?Q!F*l z+!e;JBbEWJkzqQ z;^|@2#S`znbY))O!;|0o@^9}vbF`><&)6;R-rrL>aq5VY7qWudRrA@y`lOY1O-Y~J zv(GT55t+4SbuP2cfB3byv1ijH_jOpby8hM*7tcTa8;?;0GA70bLLaSJH zlb`LNEQ4Ll)qsyl;DT7>R>2otv z=Ool_u$FiYrbg3(pa*a=r$e!fO)ZQ$tugXxG&U;>3!2&-e)Ad@{6N=oioJXT^GU=^ zQaurR64@Pvp!hQK)2$kS|oEWeb$jra?udVIq?ZCc0EbPC=T+SI1- zXX{+trAu_@H2VEf( zY;6kNidoB#%AwQbQov|J4aaE3rX`Th9;Y)hf~bOtAvjWKmMGZmZ~@{>CT*eDB*aCR zc;gzJWW~UxAOLC_3qabKfHnBXFmryAODZTATT@y@6jw~m9XE2&)*fXizyI)hOYi6b z*|%2Y7xn1Yt%x4-j9K1uU}b(;zl;Rm`1fBcoII*e_rWE}@{u*Y^1Jme0n}sb`$~t! z!z7(#lOj(-1Zi(=rwYk1xLOf|HKbW9sk29|>u5HohPG`h=yXXjseA(7Yf)m=6lOON z#(+f|8Ab_Q{b7tENQn*d1WzQy&fBbtFmWhv5I7seE;Z98xf}$ZN}M}YuuxnN&Sbh( zI^6H&Cwon@>f5~7@8x%XKU?&6en@4n0gGh$)${VP?KFeNUi$g7f5TZBdYLZ1e}VRX z=YH+}BNlyj{;Z|k)up%QmgV>C`PrMFQW_B|r-Z)rx6Q9pevwap`ycYx^6`G#`qHIz zIQCE0{9~{Dru^y;H2$`E2QY$cY4%35>C5Fg;Bb~(xd2;ggno09?w$mz5Un$XhZ_a8&M3HI)nP~-fQ?K>sEr~o z;f>({2%aR1w-nv>s9(Z>Vu=_B>?>kvzY0fwAmE&s&4F)6=pNdN2F-nT{WAI1Z*@Q4 zzP`F@)z;JU>UA5pi2HnpXYB~lM!mlL*f)H?K@*vVAVGsr z$z&E0jf%VwROA&N;HNP&MZtbZOgRW|g3s!9h$G}N@(c14^g}v;&aIVgr+08B?gx3b zJX_o+FOXm6g6>~rmKn40wU|vuI(i(?qFOC991CwGO_3KykmJN6FUM1Dk(WN0H{dS@ zd__hPHakKcrSY}3$N2Vjd%48A3oM-cM4oV5#@hU|-NS4e(iYr^GjO|kt&YuQl&FrE zur+A$&*(eB$paJ7owxWb|14~d%#&;eP)}?F>V-4!EtCsZbL#LQ0s0G! z1;pxfrXsIS5JP~>2ZVfhIV^TV_C=9o2sJ3_iX}D{cx0NLyqyc5`^#c^ue_G7rWMyt zmF?N{qx|!4*C)-D&+=h)u}N`sAsvAl#HHmQm&#w(%fHG$L{XHCE2|f~D7bce!qmt# z!PiAPMjxc+i@a*JsFirQyG_MVNs}pp=wCRTT7;Blx7g+9x`DTEb6bDrR@5QHuiL?) zFkSJpxV6d*nVv|I)ADMaj^}uNkVcS%LNB6Mls^{wDT$;NlQE>O8hm~~9n&+-i7+xM zvz=R8x5ww>dhXh_u$_?7e&NFQ_s_N?w7x>Fq&qN+o@EKNyh>%j3JCZFKA9r9cp_{7 zlT#KsxKq;swN+9N?NZk1!=KN~m0>4rzl#g+&AfaofR!jb%|OyUkvcsk3^VW#^#&38 z$$+;RMO_obuoO%q-}xb?Dg`eYnbb*CVw8MCPG5Zc_Rt};nwsR<+qu;f>n;IDc~6g} z=j2ZB`R5cOFsG>GInb#jih@e4Ai(2n1xnz}kngk|xy?N(?z?Y4<-b?jihHf3lPAWa zGZ=!bM8m0(9F;Ude29&+Xn0Ad;)wz2#cVgzsZC&JI+f`#CNk7zv9T}(g`P+fnA0qo z2${3wa<%yaEupI=80FIIIzcUW7mmq4|5TR+5GD)N_X@akqv^o-`yB(=n*(T=KV;Wa zlZhZ_qf)C$u!YyF;e%0i14l8$`5CGa0)Su-3BZuRflT5Y`C?rgwP?5it#(S{^cRK2 zoe!?BQ)B9BcIqtQWTvB-l%0DJ$Lq0DiG+q}Y(-uq&W%N0{(*2kq@$R1Bv4aL<9P9$ zyg`0jeoNj28&*j3XvO_)Uw(f6!WZYixX4|?wMmeuQTRc{sJvdjBmY3H)QrN65cx;H zz7!S$16mRc9E2H(j*)`ctU3Xrj`v|Ls^B6o=+TgUXWFDeupsM*Zpx>9QO$Yr%6UKL#G;Z3-TYi2mDqVvq-sLXbYi zJ6Bp{0D{7byg`Dff`l*#7)qGXnLbk7VSlK|cmY5l>je`VP&tpH=i~=;pnO=qnfM=Z zbXQ(kAkU}y{{>NgOo>`xN=#Cv0k9hoW@c;*lWY>1qu|^A>gug8Z@!Jv(g;Z4w{(;Iv%HlzJp0VEPu2CWJ0R}+ z`{(lQNp;h>d~k3D?5!ReJC3BmqbE@o(PAe;LcBf-aSyb%4f`7pF%$vu8dQKnKUb6d zgpyPD+g~_dN&pwl33~bZ@4s)ZxH4qP{AWKnzKseOKRZ)&bls$83y@W381ee7pX zEDmZ@09PmqG{o&No5l9k@*n$w&(D6Y*-7!9h`0qRXm~>qa)e0MK_xI(uMv%kK7tx@p(!D6rojC!lUkX(OWTBIsDm=h z{v=-Q#LlNui;lO(9D2Oj#57MN@pzn+glaV=#MBXyL3&Yd3XK$_qfBBbuZ^(k;XU|u z&_kL~QG@|a=u~`5IG0Wy8$B%M&J0$1bdn_3{%&e5YLkt3>#RG1Nmw<&~Y_0qg?#j31P_6|c$dsFs%Ehm$k8 zzOcb}x%cb7;F{NUV78di;1Fh2BX4Y@9AZY;H4fT9t05v)@yyaUA%YS$F;#$hAWhWC z4W#|3Acy@dMk;5O9Gt~0(OUm>-76KR+_f(CYY83ry%9o!^f6k#2XoDZ%9D<)jtjI^Q2iG?6IIE~FqP zlt`k-!m*j*cJeIwgs6utvudF1KEuD%*I@<5|*3e z5lE%8$lMyj_fJt5Z=Lz_ewhmI4Xf<4F~6wa=Y!6DQFm|Fh9%qAl&>G&-S?N*cdDiK zqeiC2)}*vKaIDV$($d+3C281*f)WOQ4d7pa-I-wQFhfgdLd|?oG#><~)ag*0CFl^H zjac)%#3V)Jd0{*KfgeC;urtC03^hx}(^QL+_)m1Hm>Z1n&z*tnwhEv!J7nT6o&N5} zGoMW|CHZcsIqkSjOJ;Dhmd%(gjDR)&7gXliHFL1bv!wafkXPP+^+VGqZ+-L*9CJ!W z)ZgUy0?RfQ@dfd`+QQpIBpm=U5fgxG0IN~Gi?NCuql5+yGn*cvpTv#0FW-k_!tGkr zZPgI@%F?P$i?WwmX*`?=J8jwd-FEVvgYWb_74HCMFsD!k%vk)GG1)b|UT=uv4Zw`X zOe8%q+N5v=gy1G1{5fXCKm=-cCooIl0(}!xv9YXdNCG`v)ambUocVHs-hA^wbKUq2 z%jR+mmOcBz^H$oD8mWn<{AFq`UGc}wWv?85dB5|l@5I3aM*=Wr0WVhYUpG%;m^KuI z>i zP`s{m;0>~%gndX*Ik|K4otyji9eDTIr#n5?tGGKg@GsR4=3g3z&G$qO8^&~j zUA786fvY6amUJZ(JROs`_)cP0ygnv1xMdg-gTrFtrQDoYwYozAV!e=Nkr_r~Mjo;+ zA_04jB47OHPqQbbbj-`` z`{dQnQl1Ex!xujL{-Gxp?HN9G_>&cX8~((IkwWQgmup1U>mRC9vJ(fa8jY4{ z?IA|gorrnfV3Uqet&N#v<}NF?%dZR+P0M!XSZa+0FVF>01sQOUgvmFb7`L+e#tpr( z_3IPpa;|39bGy&fU4+BHRJGX@6r)N}af4K2 zRWnsvRJ&B)sBWuND$Ym&L^d+KfsONq>D_#jol?5u#*II6J)LrMJ9%=2QW~F~lat*c zHbl;7w}m1ViKl zOu$6QZ!xeV$++~Pn7SzpnWOS@x~;zPW?lmvvNi0WWruL?e$?we)vyML{Fq;;?3p7+ z!ts)5&;$28A{8w{Zi8AS2wF}@IHMH6zfz^s;Bo^9MOYARGhf9Yd#h;mJlc~Q<*xLC zd{f>u`-dO&T>f@iA;;G(q}N8t^CWAX<~;K%KzGV)0#8Cba7YGQ(X8v1?&8v?kt|=jEGNFTec2lA4rFzH}2d zh7gK79cH#aDa??6{C&euv#9m{&os35B7(P2`TELvToSD3nMG9kD`M_e@=5ugJR9%V zPXAD`@X&iJlodNjw#O05a(Jp}v&!s@<#hzRk$Kn&QX8=u4Flg`Ndpqy#J*$O7PcWa z(WOwq9RiZTM!?*&UATaOPfOq~d^X8oxN%q=rXTaw>F;jHzb~3SYuPh%=UCS)ik90; zonj`}D7GH(@&~u=b$#;I@wX4cmj#{xXBpts5eGaGM|21u9v-GOh8bg>;SqLYOo-lM zQRR6pCOygX>L1_?!KUJjG&mv(po){^XBCq@V0!^_CQPpxTOBTm8@O`zyp_+*J$mZ< zo2M&Z>8uVvdJ{?2%9_{z8h>i<@pt5ThhWYO_-WIleAyo#(DN;ahQAWvAfDL~P{?Cq z9K>lY;PD`>O~kqE)a)!4Wi}GB!AvnN$k>>>(5;m{HDmFv8wX4~yw`w5 zQEVlsWRK?fr8mF2^up1a3$4cteQ*A?V@G!uz4^?+Aulg{wgYXy^{-t|_M6k9ZHI({ zl~a~%>b1LIR9b#^dig{KSz`T7?q@L{eB2TH?)qSsy49MImIyL>G#0%PWq7cbc-#Ad zpQzN`u~NH$XQmj!c*PlWAy$Sd&ve^ZU;-B?r*GfH>0RVKYql0IqwVEmeRf3bHrwf7 zuB@`}k9YUf`TD?PrDQYwveC+WAFVxhYBpPSYO5MaJ<*~u5}RnqYjm&!v74V1iU2pb z)yyC<*M|9G{9dQN&0CXBd~~aF?8@q!%X*X_Kgpe|>pOGi?lWBC{he%17AfXqP8}pT z7!;?>UD1k4jS)6yV181w8?v+k?Teft!eloKlPTRM_y7G$JH1-d@yb29pHNyiV{1kJ zVQ!B9=~fgiOvKZpkgs$`5j!?Z)ha_oq*fzn4E9JdCYl7}NR z<>MR-W0HJle4Pv!zxm|F?(e2>d36WdeA0IMCC=%G7GV$kD25BSCmfbY zCM8$gX0@jEby-fFEuZUIke;(6w>g%*_=PE%o45`4Bji`j2ldA)+59>1UaK*GV>FLo zUegfGBcd}Z(R{v_SxLV?*ys`YZClf5p0BQbn@g$tg}2pR;@r#lpuOAb*iH*cMl}5c zqUlJI>q*pwS~!EsW{c!PBl+kkGshYEnb^(V#lOd&Ms|zWhKA`_aUSA)R%Y`cS;Ty0 zzqg#`OlLd}F9gmqEky8+7=1*9F??qD((qm3?}eWZm%_t?!Pvq7X)W0Fh2=po znT{Q5roGbkK z6F;WSOM8p^*6oz9RFu8fXE-1n%(WNV@Rbl=k0;KEK*S*NX0xu;i^$Q;X?U~bk=SOx z6oXf^#!3P!_e&y7m$8tEm_k1^v5Eqvk`U2RI?Q2+ohcQz$ruaGOAAt`cO15+%armt z-n1F*MlS0-qiiO(w?oJGo(hl8?9}e?*cewPvwZU)20Mj;inrU$V-Ywl@C!$Y1o_L- z1Emt6GMi74cQ~1Dh>^c!SMhR>>~zaFsI#yjzo;lbzXvz3RxP$I=-I1#ZdnOdyB${L zE^@e$q`=eM!09+KL@laKktmxIIS$1u1iO!j6*(cy5ZuG7dl9BjuR`)=Kq|{q98_={7kH=aIz;?vD*=j1J~T)ybVs>1n?{nTFk;CKuT zy(iOX$BwOH$3yK8ANgQUbUa|p2Y>WMrA-v+<7pL+jWN41nA4bo?V(akv@SF(w3kTHJ#}`+jx(pu9yV#{ym>=0hG`j~PM877 z3?Ywu+(c#KbvnHQwZ*0iwM&*@OEKH#4~_xu`QTu^O=~b3ioGhMQBQ4>zM-x!fZqVJ zn_}BvM~@txV%dReydt3d;0%{fJO3(=zbb!6!{qO-$k%9ueC@J4SdC^F$EFmvw$dWdPF+Us&|?YE%R z#QHn@Ldk_X`Yh7J(=yGT5YdX5#niA&mW0sR!y=sO_U-tvOlxWjDO#;IcK51jbX<3D zbQ3?b3DKCgtmG((TP=?m0;r83~yKCJ#x@%W2#BiNYt+O^*Y6@yG(N z#$RG%mArUsMvtmK3o3b0tENFZ^x@Y~n#9Q{iuYIlK!?%zuC3FvJ!!4G(uMfu>EdqP zRh-%>vr}fer(Jv2XJog7X=FP@QVz6B2(q9Vhy$DP#*~;uyT)j>$B1pA+yi>nF$L?PpHYejn|SFV(zGov+o< z_?qqVS4;zB;RT`<;>W!StOhHSNqV3F%dEVmz`WFS&K1>aO1JUjYigd%&F%Me#*2%qs${v_=)sTo z=M6(LGe(Z8goVn_Z#yw>#tgYL?ZA23l$Vw!F&Innci)`+739~0*jrD$qz&Q(okk-B zNrJ(s7uBd@gGy>tNCCb^LX@hI8CAMcT2Uikr{Oj7M*0CAUc=giJ_#H5h?20SK(K!=2z;qG1>0PKvN=}!&zy6Rnw0`Og*JO?ukdFn zq0{yd{I#V(eO8GQi^&G&)0&9L|M0i4@UD@oD3OdSuX4r1xrC-iSRI!CWL3asc=9;)C#TEs01Fe zL8A{>R~>$TLHWA!bt4K2MpWkKR|>P|AAP^7`rXIYdh;ru=vFiW9y5n}N6=rm0`23k zYh!O^=#5mZ6U`=lP^njM3A~-LrODeF4@&R->Kr@)da&@&MblAP+2kb+c>;fyTf2v@ zkw@Z14OvE!CAiLwH!Zfqg9yQ1Qm|yUahx8pbEsWoh~aEDiUbJ6uSs|S&U2ytZs+ykB(SiNJxn*Ix`>0+*6{*`f~+NWidPn$Y-Lhm&*XR|qzxh!rg z=5#>=#MrSk9wF8)?W5rz`ft1*asC z^95Xt8r-~+UIPam{OihRmd$wcRD463PGB;erR0=|p&-qNB2=xu`kqbT{EbSl$~QZ5@v&6=5}q zy(S~}2}R~UN-N^EJ7PmspE^9utTRYbe?vD*>y|i*sFTB%v;|ASc>kqwG^e*ccxhGD3U+Tm#JzlOArXuHP zB+1yXC8$9Xb?}p^s8$<91FEJBc&mnlqP!JvH8$!qMY}NRRdlQ=!|fENE_`ocr?P*X z{PKG)N3NA-{xO?(TkhS*UM^xh0<~K@5V@))7 zuE`rX1R3QW&{<|cYB%cH8vuILKt{0h!N_k+TKvTRgL^DxPt8{`> zURT3h$r}2E+)-X%L&N3kHTVOvcDZB-?N0{|l#9b3e1&a60f5v7SWD#W+;&hZflSBC zS}Lvs-@k4@(Y(oXW_Y^k>C6tb!r1)4*g5{OUt%no#Baq|)gI2ohO&|Hbfik?0`^q6 zu;@GRE9&-BiA)9$Xx`+g%KucXITL?tcQv9u7Cq#95+Y+sgeo{VB9?F73CCmS5sR0)!$Bk-=gn?ft_wY2p+RXtu7uqw6N#E%!D_`y!Tr736=edhV)9No=Rjj4b_RxfGNj;O zvsr5}P&L$yNT}Xq5p7m2YI{+BE16JJWHM0+DaT+5g<~j9L3z-F>RT3xHty^z_0gz0 z3WN+SJEKGnPE0Ir3S$*g(w_Ql7JH}b-ZgTDKXVT5nmE!F{nJ!(& z%?5U-K`)~U8f!`bDOBVc4)0Uq{1G_hwF+ID1?aM0!5FnQVC>NmQ%KMMK7tn3|KT6e zh;{!n7}ou>j3R=9b&fh4v7QFRu2mpu>4!xAhTMVE0nNy{;2(mPsO%o7RCbSDzMLMWkE6Ex zk6({bw|wd)&Vu^xwen1E>~U_UJYPnY8`a3&kIVf6bQ9;O7^k;k*uon2_*WXnFUu-#m3~?@$d+SaX%cR z$VrS~5|^wDNrzRMLk;-rrfXqCB0WaRiz*Gv4yTYopauy`8K7t_rp7bzQaOt>0O<+& z;0#nqcAp{dr@7PR{qmt1+&P*zQ$9%Zrpx=}12bqIhQQmMR=*cjowbnF2>4w+J;~VE zh!L!jRuZYj9|q7G#rQaTbV!Wg3^Q8PNL2;}Ia#GAk9yB0g|CE#^i9Khf9e8+^=DsL zC9FRy!>1)u_+@xw#7+^RasGI=1L#oeTsNLF=E9_t0 zP#jybaNvs{;_pGBKDKmr|3x3mFJ4(tyR!qeQuB9n_|o<$l7-wVm4^y-+Xkqcso6p9IXu1@4O3{Ui zI&7%&b=%xc>wK5tMT{FYw{IV#D4nj0nfJ~c8{gQ*tFQhlpBDH1a#^-Lw`eB3Tvo>< za;PtHlg^&lcp}Aw8CoXerJ|T*F+D9T-rOeH)}~pWw+%7d^S$PVtd73|>p?QkubJ6< zwTcb3W4r9(EKZ`oP6Js(|K=jx$~5*Wkual2mwp+^S%dmN*7Ebe9Uk3oYuER4r%kQQ z=~n1@VeHHoZcuvr3IgD31@qjw?INSy37$@a#&vt;jm{s(w^`G%yrBEDW!WRsGyAyn zOP(5ef1pJ||`!~7P=77XMdVNaKf4xo%zgMoiAG%+> z+wgo^`mJ(3<>Bi$8?KX4zu`Yef~0p)1~A*|hhSsF2wDs?#74C6kASpdgmeHqnh6B& zgOZ7!Y^O0qNKOk0Nlv%n-D0gRJXy?YYjnm13CRUsL5K@V3+e7nON$FKx5@VgsX(wG zQ*>xIZ(Q?yZ*&}p=T2ftY5ewcQ`7EYVg^cYSe6b&LrQ7|u@p1{|t2oN9y2rWY>2@paEhy-aWA_5T+0Rd?uL_nn}Vnn2gh=53wwIBf$5m8xX zSr%DDR79%ES|D@t{?2n}CKGh`{oa4SXh>$}=IPJr=XWT)$;lJKNJvsGFm1V#Lcw*g zJ?Tt?PZK|08bcqi7Zwf31|(?bp~O9Ku#_TWSbKbgf!?Qc2|rhtFbrM zVYO>~HXCA?4Tj{R3WGuNxdA3o6!DOM7^XT-@bL!Jo(xYEXCd(XTVLA@ZgS6T>*a=c zr=(tSE=nWv;>xW{$~R2=)j#gkcYfvOpic(&8}QWR3xnQW`SSJW=RQCG*#*ze7uzZq zl~0)cy9>-RUVd-Yig{ByWG^e|w{Xscr+}t?an_0rt6x~Rhwk+zP|!*I-jP#V%gR&v z+9iZnH#BSPP`P>nupzkj$^Y&1$>aa$=d3q^!SVNL4gQ|@&)a9^5a{uFQp3;bgsArfj03+pgVf!Bi*|=acBkRz#Gx0dH|xJVp=G_*^OYLj zU)}=0d1?=1h!Er6g{U^h02_wfi;rOlAH!rk5g7ySCE0~2O3VY>H+XKc*6j4e$u^ta z4uWd-z=0~*<0UUv*KSDcQDKPUx#74kt_rC!bBt_U;pkzXk1RtDolX;uErP$7E$_5` z%%?wGJa&4#Rj<8tNhh(`XAoSZOqXf~_Er9lY)u3ZKUX|NX{#5M@`ds78+N3ByqnG0 z_fB{=e7@>z#(eyz`I0`XJ%tm`^;yg%XUJj{%wSH~(r3nwxln#-PI!`1wCaQ6lV7+la`mG>WgIMp1H$w-6s* zIY^|MQG6wEOwmUPJP>^CBU&$7(0rkFV-!WShGILZ6JNuSZU`^KGQ6+yo9j5&#BUx7 z6dLTYDYC_7@n%Sp)#H`n){O(k2z;VFD_k~PvMt9Zxg>-=IfNLG){hW6;2fkN`$*E- zgoOHtIvzBDKs9iqdhawYK-dqgf;L6PiD%@gPE${=2i8k9U_37*cG|_*Prp0!uYW&m zmaG)&cX`#Snr!2^CC|*AvvS6CH*_f(00#-{j0>9%UB7MH`dgh4IR5h1)K50Nc|cha z(l(`9e%c%J_3Fd*cbp7c)V>2XhfX_}5m+B6ZqXbFD-JsYop!Z_(z-fz&&&;4;HO<} zp;YBD5gwMa~sTTm4! z^uZ&|`B}wi!P|QyT0p;3Dhr=gwFO!^wS`jQtlC0E(^Fd@I-#~u`cK|Mw}vgyol{%r zE9R&zM6`I`0$(|5fmRL-oJP?n(uUH3^03u5a3AtnGGDpdMlZH6<$qTk{yVy9g?#>S zFQVn%KtSdz7_kj)BH2c_87)KZsCo3-h2rj^J=h@a