(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/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 tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js");
var routes = [
// { path: 'brands', component: BrandListComponent },
// { path: 'categories', component: CategoryListComponent },
// { path: '', component: ProductListComponent, pathMatch: 'full' }
];
var AppRoutingModule = /** @class */ (function () {
function AppRoutingModule() {
}
AppRoutingModule = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forRoot(routes)],
exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]]
})
], AppRoutingModule);
return AppRoutingModule;
}());
/***/ }),
/***/ "./src/app/app-settings.service.ts":
/*!*****************************************!*\
!*** ./src/app/app-settings.service.ts ***!
\*****************************************/
/*! exports provided: AppSettingsService */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppSettingsService", function() { return AppSettingsService; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
var AppSettingsService = /** @class */ (function () {
function AppSettingsService() {
}
AppSettingsService = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({
providedIn: 'root'
}),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:paramtypes", [])
], AppSettingsService);
return AppSettingsService;
}());
/***/ }),
/***/ "./src/app/app-settings/app-settings.component.html":
/*!**********************************************************!*\
!*** ./src/app/app-settings/app-settings.component.html ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = "
\n \n \n data_usage \n {{formatSize(estimate.usage)}} used of {{formatSize(estimate.quota)}}\n \n = 400_000_000\" (click)=\"downloadImages()\"\n [disabled]=\"downloadProgress === 0 ? null : 'disabled'\">\n image Download Images for Offline Use\n save_alt \n \n \n image Not Enough Space Available\n info \n \n 0\">\n \n \n \n
"
/***/ }),
/***/ "./src/app/app-settings/app-settings.component.scss":
/*!**********************************************************!*\
!*** ./src/app/app-settings/app-settings.component.scss ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC1zZXR0aW5ncy9hcHAtc2V0dGluZ3MuY29tcG9uZW50LnNjc3MifQ== */"
/***/ }),
/***/ "./src/app/app-settings/app-settings.component.ts":
/*!********************************************************!*\
!*** ./src/app/app-settings/app-settings.component.ts ***!
\********************************************************/
/*! exports provided: AppSettingsComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppSettingsComponent", function() { return AppSettingsComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.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 _shared_product_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/product.service */ "./src/app/shared/product.service.ts");
/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/fesm5/http.js");
var AppSettingsComponent = /** @class */ (function () {
function AppSettingsComponent(productService, httpClient) {
this.productService = productService;
this.httpClient = httpClient;
this.downloadProgress = 0;
this.downloadsCompleted = 0;
this.estimate$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["BehaviorSubject"](null);
}
AppSettingsComponent.prototype.ngOnDestroy = function () {
throw new Error("Method not implemented.");
};
AppSettingsComponent.prototype.formatSize = function (value) {
if (!value) {
return 'unknown';
}
if (value > 1000000000) {
return (value / 1000000000).toFixed(2) + 'GB';
}
else if (value > 1000000) {
return (value / 1000000).toFixed(2) + 'MB';
}
else if (value > 1000) {
return (value / 1000).toFixed(2) + 'KB';
}
else {
return value.toFixed(2) + 'B';
}
};
AppSettingsComponent.prototype.getEstimate = function () {
return this.estimate$.asObservable();
};
AppSettingsComponent.prototype.downloadImages = function () {
if (this.downloadProgress > 0) {
// we are currently downloading
return;
}
if (window.confirm('This will attempt to fetch and store all of the product search result images. Are you sure you wish to continue?')) {
var quarterPoint = Math.round(this.products.length / 4);
this.downloadWithCallback(0, quarterPoint);
this.downloadWithCallback(quarterPoint, quarterPoint * 2);
this.downloadWithCallback(quarterPoint * 2, quarterPoint * 3);
this.downloadWithCallback(quarterPoint * 3, this.products.length);
}
};
AppSettingsComponent.prototype.downloadWithCallback = function (index, maxIndex) {
var _this = this;
var ImageURL = this.products[index].ImageURL;
if (ImageURL) {
this.httpClient.get(this.products[index].ImageURL, { responseType: 'blob' }).subscribe(function (x) {
_this.downloadsCompleted++;
_this.downloadProgress = 100 * (_this.downloadsCompleted / _this.products.length);
var nextIndex = index + 1;
if (nextIndex < maxIndex) {
setTimeout(function () { return _this.downloadWithCallback(nextIndex, maxIndex); }, 0);
}
}, function (error) {
_this.downloadsCompleted++;
_this.downloadProgress = 100 * (_this.downloadsCompleted / _this.products.length);
var nextIndex = index + 1;
if (nextIndex < maxIndex) {
setTimeout(function () { return _this.downloadWithCallback(nextIndex, maxIndex); }, 0);
}
});
}
else {
this.downloadsCompleted++;
this.downloadProgress = 100 * (this.downloadsCompleted / this.products.length);
var nextIndex_1 = index + 1;
if (nextIndex_1 < maxIndex) {
setTimeout(function () { return _this.downloadWithCallback(nextIndex_1, maxIndex); }, 0);
}
}
};
AppSettingsComponent.prototype.ngOnInit = function () {
var _this = this;
this.getEstimates(this);
var that = this;
setInterval(function () { return _this.getEstimates(that); }, 10000);
this.productService.getProductSet().subscribe(function (x) {
if (x) {
_this.products = x.Products;
}
});
};
AppSettingsComponent.prototype.getEstimates = function (ref) {
if ('storage' in navigator && 'estimate' in navigator.storage) {
var that_1 = ref;
navigator.storage.estimate()
.then(function (storageEstimate) {
if (storageEstimate) {
that_1.estimate$.next(storageEstimate);
}
});
}
};
AppSettingsComponent.prototype.ngOnChanges = function () {
this.getEstimates(this);
};
AppSettingsComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-app-settings',
template: __webpack_require__(/*! ./app-settings.component.html */ "./src/app/app-settings/app-settings.component.html"),
styles: [__webpack_require__(/*! ./app-settings.component.scss */ "./src/app/app-settings/app-settings.component.scss")]
}),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:paramtypes", [_shared_product_service__WEBPACK_IMPORTED_MODULE_3__["ProductService"], _angular_common_http__WEBPACK_IMPORTED_MODULE_4__["HttpClient"]])
], AppSettingsComponent);
return AppSettingsComponent;
}());
/***/ }),
/***/ "./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 menu \r\n \r\n \r\n \r\n \r\n search \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \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/app.component.scss":
/*!************************************!*\
!*** ./src/app/app.component.scss ***!
\************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = ".mdc-button {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 2.25rem;\n font-weight: 500;\n letter-spacing: 0.08928571em;\n text-decoration: none;\n text-transform: uppercase;\n padding: 0 8px 0 8px;\n display: inline-flex;\n position: relative;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 64px;\n height: 36px;\n border: none;\n outline: none;\n /* @alternate */\n line-height: inherit;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-appearance: none;\n overflow: hidden;\n vertical-align: middle;\n border-radius: 4px; }\n .mdc-button::-moz-focus-inner {\n padding: 0;\n border: 0; }\n .mdc-button:active {\n outline: none; }\n .mdc-button:hover {\n cursor: pointer; }\n .mdc-button:disabled {\n background-color: transparent;\n color: rgba(0, 0, 0, 0.37);\n cursor: default;\n pointer-events: none; }\n .mdc-button.mdc-button--dense {\n border-radius: 4px; }\n .mdc-button:not(:disabled) {\n background-color: transparent; }\n .mdc-button .mdc-button__icon {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 8px;\n display: inline-block;\n width: 18px;\n height: 18px;\n font-size: 18px;\n vertical-align: top; }\n [dir=\"rtl\"] .mdc-button .mdc-button__icon, .mdc-button .mdc-button__icon[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: 0; }\n .mdc-button:not(:disabled) {\n color: #6200ee;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee); }\n .mdc-button__label + .mdc-button__icon {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .mdc-button__label + .mdc-button__icon, .mdc-button__label + .mdc-button__icon[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 8px; }\n svg.mdc-button__icon {\n fill: currentColor; }\n .mdc-button--raised .mdc-button__icon,\n.mdc-button--unelevated .mdc-button__icon,\n.mdc-button--outlined .mdc-button__icon {\n /* @noflip */\n margin-left: -4px;\n /* @noflip */\n margin-right: 8px; }\n [dir=\"rtl\"] .mdc-button--raised .mdc-button__icon, .mdc-button--raised .mdc-button__icon[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-button--unelevated .mdc-button__icon,\n .mdc-button--unelevated .mdc-button__icon[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-button--outlined .mdc-button__icon,\n .mdc-button--outlined .mdc-button__icon[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: -4px; }\n .mdc-button--raised .mdc-button__label + .mdc-button__icon,\n.mdc-button--unelevated .mdc-button__label + .mdc-button__icon,\n.mdc-button--outlined .mdc-button__label + .mdc-button__icon {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: -4px; }\n [dir=\"rtl\"] .mdc-button--raised .mdc-button__label + .mdc-button__icon, .mdc-button--raised .mdc-button__label + .mdc-button__icon[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-button--unelevated .mdc-button__label + .mdc-button__icon,\n .mdc-button--unelevated .mdc-button__label + .mdc-button__icon[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-button--outlined .mdc-button__label + .mdc-button__icon,\n .mdc-button--outlined .mdc-button__label + .mdc-button__icon[dir=\"rtl\"] {\n /* @noflip */\n margin-left: -4px;\n /* @noflip */\n margin-right: 8px; }\n .mdc-button--raised,\n.mdc-button--unelevated {\n padding: 0 16px 0 16px; }\n .mdc-button--raised:disabled,\n .mdc-button--unelevated:disabled {\n background-color: rgba(0, 0, 0, 0.12);\n color: rgba(0, 0, 0, 0.37); }\n .mdc-button--raised:not(:disabled),\n .mdc-button--unelevated:not(:disabled) {\n background-color: #6200ee; }\n @supports not (-ms-ime-align: auto) {\n .mdc-button--raised:not(:disabled),\n .mdc-button--unelevated:not(:disabled) {\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); } }\n .mdc-button--raised:not(:disabled),\n .mdc-button--unelevated:not(:disabled) {\n color: #fff;\n /* @alternate */\n color: var(--mdc-theme-on-primary, #fff); }\n .mdc-button--raised {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-button--raised:hover, .mdc-button--raised:focus {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12); }\n .mdc-button--raised:active {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); }\n .mdc-button--raised:disabled {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12); }\n .mdc-button--outlined {\n border-style: solid;\n padding: 0 14px 0 14px;\n border-width: 2px; }\n .mdc-button--outlined:disabled {\n border-color: rgba(0, 0, 0, 0.37); }\n .mdc-button--outlined:not(:disabled) {\n border-color: #6200ee;\n /* @alternate */\n border-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-button--dense {\n height: 32px;\n font-size: .8125rem; }\n @-webkit-keyframes mdc-ripple-fg-radius-in {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);\n transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1); }\n to {\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); } }\n @keyframes mdc-ripple-fg-radius-in {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);\n transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1); }\n to {\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); } }\n @-webkit-keyframes mdc-ripple-fg-opacity-in {\n from {\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear;\n opacity: 0; }\n to {\n opacity: var(--mdc-ripple-fg-opacity, 0); } }\n @keyframes mdc-ripple-fg-opacity-in {\n from {\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear;\n opacity: 0; }\n to {\n opacity: var(--mdc-ripple-fg-opacity, 0); } }\n @-webkit-keyframes mdc-ripple-fg-opacity-out {\n from {\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear;\n opacity: var(--mdc-ripple-fg-opacity, 0); }\n to {\n opacity: 0; } }\n @keyframes mdc-ripple-fg-opacity-out {\n from {\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear;\n opacity: var(--mdc-ripple-fg-opacity, 0); }\n to {\n opacity: 0; } }\n .mdc-ripple-surface--test-edge-var-bug {\n --mdc-ripple-surface-test-edge-var: 1px solid #000;\n visibility: hidden; }\n .mdc-ripple-surface--test-edge-var-bug::before {\n border: var(--mdc-ripple-surface-test-edge-var); }\n .mdc-button {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n .mdc-button::before, .mdc-button::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-button::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-button.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-button.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-button.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-button.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-button.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-button::before, .mdc-button::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-button.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-button::before, .mdc-button::after {\n background-color: #6200ee; }\n @supports not (-ms-ime-align: auto) {\n .mdc-button::before, .mdc-button::after {\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); } }\n .mdc-button:hover::before {\n opacity: 0.04; }\n .mdc-button:not(.mdc-ripple-upgraded):focus::before, .mdc-button.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-button:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-button:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-button.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-button--raised::before, .mdc-button--raised::after,\n.mdc-button--unelevated::before,\n.mdc-button--unelevated::after {\n background-color: #fff; }\n @supports not (-ms-ime-align: auto) {\n .mdc-button--raised::before, .mdc-button--raised::after,\n .mdc-button--unelevated::before,\n .mdc-button--unelevated::after {\n /* @alternate */\n background-color: var(--mdc-theme-on-primary, #fff); } }\n .mdc-button--raised:hover::before,\n.mdc-button--unelevated:hover::before {\n opacity: 0.08; }\n .mdc-button--raised:not(.mdc-ripple-upgraded):focus::before, .mdc-button--raised.mdc-ripple-upgraded--background-focused::before,\n.mdc-button--unelevated:not(.mdc-ripple-upgraded):focus::before,\n.mdc-button--unelevated.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-button--raised:not(.mdc-ripple-upgraded)::after,\n.mdc-button--unelevated:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-button--raised:not(.mdc-ripple-upgraded):active::after,\n.mdc-button--unelevated:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-button--raised.mdc-ripple-upgraded,\n.mdc-button--unelevated.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .mdc-card {\n border-radius: 4px;\n background-color: #fff;\n /* @alternate */\n background-color: var(--mdc-theme-surface, #fff);\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n display: flex;\n flex-direction: column;\n box-sizing: border-box; }\n .mdc-card--outlined {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n border-width: 1px;\n border-style: solid;\n border-color: #e0e0e0; }\n .mdc-card__media {\n position: relative;\n box-sizing: border-box;\n background-repeat: no-repeat;\n background-position: center;\n background-size: cover; }\n .mdc-card__media::before {\n display: block;\n content: \"\"; }\n .mdc-card__media:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit; }\n .mdc-card__media:last-child {\n border-bottom-left-radius: inherit;\n border-bottom-right-radius: inherit; }\n .mdc-card__media--square::before {\n margin-top: 100%; }\n .mdc-card__media--16-9::before {\n margin-top: 56.25%; }\n .mdc-card__media-content {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-sizing: border-box; }\n .mdc-card__primary-action {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n position: relative;\n outline: none;\n color: inherit;\n text-decoration: none;\n cursor: pointer;\n overflow: hidden; }\n .mdc-card__primary-action:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit; }\n .mdc-card__primary-action:last-child {\n border-bottom-left-radius: inherit;\n border-bottom-right-radius: inherit; }\n .mdc-card__actions {\n display: flex;\n flex-direction: row;\n align-items: center;\n box-sizing: border-box;\n min-height: 52px;\n padding: 8px; }\n .mdc-card__actions--full-bleed {\n padding: 0; }\n .mdc-card__action-buttons,\n.mdc-card__action-icons {\n display: flex;\n flex-direction: row;\n align-items: center;\n box-sizing: border-box; }\n .mdc-card__action-icons {\n color: rgba(0, 0, 0, 0.6);\n flex-grow: 1;\n justify-content: flex-end; }\n .mdc-card__action-buttons + .mdc-card__action-icons {\n /* @noflip */\n margin-left: 16px;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .mdc-card__action-buttons + .mdc-card__action-icons, .mdc-card__action-buttons + .mdc-card__action-icons[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 16px; }\n .mdc-card__action {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n box-sizing: border-box;\n justify-content: center;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .mdc-card__action:focus {\n outline: none; }\n .mdc-card__action--button {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 8px;\n padding: 0 8px; }\n [dir=\"rtl\"] .mdc-card__action--button, .mdc-card__action--button[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: 0; }\n .mdc-card__action--button:last-child {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .mdc-card__action--button:last-child, .mdc-card__action--button:last-child[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 0; }\n .mdc-card__actions--full-bleed .mdc-card__action--button {\n justify-content: space-between;\n width: 100%;\n height: auto;\n max-height: none;\n margin: 0;\n padding: 8px 16px;\n /* @noflip */\n text-align: left; }\n [dir=\"rtl\"] .mdc-card__actions--full-bleed .mdc-card__action--button, .mdc-card__actions--full-bleed .mdc-card__action--button[dir=\"rtl\"] {\n /* @noflip */\n text-align: right; }\n .mdc-card__action--icon {\n margin: -6px 0;\n padding: 12px; }\n .mdc-card__action--icon:not(:disabled) {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-card__primary-action {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n .mdc-card__primary-action::before, .mdc-card__primary-action::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-card__primary-action::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-card__primary-action.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-card__primary-action.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-card__primary-action.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-card__primary-action.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-card__primary-action.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-card__primary-action::before, .mdc-card__primary-action::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-card__primary-action.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-card__primary-action::before, .mdc-card__primary-action::after {\n background-color: #000; }\n .mdc-card__primary-action:hover::before {\n opacity: 0.04; }\n .mdc-card__primary-action:not(.mdc-ripple-upgraded):focus::before, .mdc-card__primary-action.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-card__primary-action:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-card__primary-action:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-card__primary-action.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n @-webkit-keyframes mdc-checkbox-unchecked-checked-checkmark-path {\n 0%,\n 50% {\n stroke-dashoffset: 29.7833385; }\n 50% {\n -webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1); }\n 100% {\n stroke-dashoffset: 0; } }\n @keyframes mdc-checkbox-unchecked-checked-checkmark-path {\n 0%,\n 50% {\n stroke-dashoffset: 29.7833385; }\n 50% {\n -webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1); }\n 100% {\n stroke-dashoffset: 0; } }\n @-webkit-keyframes mdc-checkbox-unchecked-indeterminate-mixedmark {\n 0%,\n 68.2% {\n -webkit-transform: scaleX(0);\n transform: scaleX(0); }\n 68.2% {\n -webkit-animation-timing-function: cubic-bezier(0, 0, 0, 1);\n animation-timing-function: cubic-bezier(0, 0, 0, 1); }\n 100% {\n -webkit-transform: scaleX(1);\n transform: scaleX(1); } }\n @keyframes mdc-checkbox-unchecked-indeterminate-mixedmark {\n 0%,\n 68.2% {\n -webkit-transform: scaleX(0);\n transform: scaleX(0); }\n 68.2% {\n -webkit-animation-timing-function: cubic-bezier(0, 0, 0, 1);\n animation-timing-function: cubic-bezier(0, 0, 0, 1); }\n 100% {\n -webkit-transform: scaleX(1);\n transform: scaleX(1); } }\n @-webkit-keyframes mdc-checkbox-checked-unchecked-checkmark-path {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0, 1, 1);\n animation-timing-function: cubic-bezier(0.4, 0, 1, 1);\n opacity: 1;\n stroke-dashoffset: 0; }\n to {\n opacity: 0;\n stroke-dashoffset: -29.7833385; } }\n @keyframes mdc-checkbox-checked-unchecked-checkmark-path {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0, 1, 1);\n animation-timing-function: cubic-bezier(0.4, 0, 1, 1);\n opacity: 1;\n stroke-dashoffset: 0; }\n to {\n opacity: 0;\n stroke-dashoffset: -29.7833385; } }\n @-webkit-keyframes mdc-checkbox-checked-indeterminate-checkmark {\n from {\n -webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n opacity: 1; }\n to {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0; } }\n @keyframes mdc-checkbox-checked-indeterminate-checkmark {\n from {\n -webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n opacity: 1; }\n to {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0; } }\n @-webkit-keyframes mdc-checkbox-indeterminate-checked-checkmark {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0; }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n opacity: 1; } }\n @keyframes mdc-checkbox-indeterminate-checked-checkmark {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0; }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n opacity: 1; } }\n @-webkit-keyframes mdc-checkbox-checked-indeterminate-mixedmark {\n from {\n -webkit-animation-timing-function: mdc-animation-deceleration-curve-timing-function;\n animation-timing-function: mdc-animation-deceleration-curve-timing-function;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n opacity: 0; }\n to {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n opacity: 1; } }\n @keyframes mdc-checkbox-checked-indeterminate-mixedmark {\n from {\n -webkit-animation-timing-function: mdc-animation-deceleration-curve-timing-function;\n animation-timing-function: mdc-animation-deceleration-curve-timing-function;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n opacity: 0; }\n to {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n opacity: 1; } }\n @-webkit-keyframes mdc-checkbox-indeterminate-checked-mixedmark {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n opacity: 1; }\n to {\n -webkit-transform: rotate(315deg);\n transform: rotate(315deg);\n opacity: 0; } }\n @keyframes mdc-checkbox-indeterminate-checked-mixedmark {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n opacity: 1; }\n to {\n -webkit-transform: rotate(315deg);\n transform: rotate(315deg);\n opacity: 0; } }\n @-webkit-keyframes mdc-checkbox-indeterminate-unchecked-mixedmark {\n 0% {\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear;\n -webkit-transform: scaleX(1);\n transform: scaleX(1);\n opacity: 1; }\n 32.8%,\n 100% {\n -webkit-transform: scaleX(0);\n transform: scaleX(0);\n opacity: 0; } }\n @keyframes mdc-checkbox-indeterminate-unchecked-mixedmark {\n 0% {\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear;\n -webkit-transform: scaleX(1);\n transform: scaleX(1);\n opacity: 1; }\n 32.8%,\n 100% {\n -webkit-transform: scaleX(0);\n transform: scaleX(0);\n opacity: 0; } }\n .mdc-checkbox {\n display: inline-block;\n position: relative;\n flex: 0 0 18px;\n box-sizing: content-box;\n width: 18px;\n height: 18px;\n padding: 11px;\n line-height: 0;\n white-space: nowrap;\n cursor: pointer;\n vertical-align: bottom; }\n .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate) ~ .mdc-checkbox__background {\n border-color: rgba(0, 0, 0, 0.54);\n background-color: transparent; }\n .mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background {\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786);\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); }\n @-webkit-keyframes mdc-checkbox-fade-in-background-0 {\n 0% {\n border-color: rgba(0, 0, 0, 0.54);\n background-color: transparent; }\n 50% {\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786);\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n @keyframes mdc-checkbox-fade-in-background-0 {\n 0% {\n border-color: rgba(0, 0, 0, 0.54);\n background-color: transparent; }\n 50% {\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786);\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n @-webkit-keyframes mdc-checkbox-fade-out-background-0 {\n 0%,\n 80% {\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786);\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); }\n 100% {\n border-color: rgba(0, 0, 0, 0.54);\n background-color: transparent; } }\n @keyframes mdc-checkbox-fade-out-background-0 {\n 0%,\n 80% {\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786);\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); }\n 100% {\n border-color: rgba(0, 0, 0, 0.54);\n background-color: transparent; } }\n .mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background, .mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background {\n -webkit-animation-name: mdc-checkbox-fade-in-background-0;\n animation-name: mdc-checkbox-fade-in-background-0; }\n .mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background, .mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background {\n -webkit-animation-name: mdc-checkbox-fade-out-background-0;\n animation-name: mdc-checkbox-fade-out-background-0; }\n .mdc-checkbox__checkmark {\n color: #fff; }\n .mdc-checkbox__mixedmark {\n border-color: #fff; }\n .mdc-checkbox__background::before {\n background-color: #018786; }\n @supports not (-ms-ime-align: auto) {\n .mdc-checkbox__background::before {\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n .mdc-checkbox__native-control:disabled:not(:checked):not(:indeterminate) ~ .mdc-checkbox__background {\n border-color: rgba(0, 0, 0, 0.26); }\n .mdc-checkbox__native-control:disabled:checked ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:disabled:indeterminate ~ .mdc-checkbox__background {\n border-color: transparent;\n background-color: rgba(0, 0, 0, 0.26); }\n @media screen and (-ms-high-contrast: active) {\n .mdc-checkbox__mixedmark {\n margin: 0 1px; } }\n .mdc-checkbox--disabled {\n cursor: default;\n pointer-events: none; }\n .mdc-checkbox__background {\n /* @noflip */\n left: 11px;\n /* @noflip */\n right: initial;\n display: inline-flex;\n position: absolute;\n top: 11px;\n bottom: 0;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 45%;\n height: 45%;\n border: 2px solid currentColor;\n border-radius: 2px;\n background-color: transparent;\n pointer-events: none;\n will-change: background-color, border-color;\n transition: background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-checkbox[dir=\"rtl\"] .mdc-checkbox__background,\n [dir=\"rtl\"] .mdc-checkbox .mdc-checkbox__background {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 11px; }\n .mdc-checkbox__checkmark {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n opacity: 0;\n transition: opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-checkbox--upgraded .mdc-checkbox__checkmark {\n opacity: 1; }\n .mdc-checkbox__checkmark-path {\n transition: stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n stroke: currentColor;\n stroke-width: 3.12px;\n stroke-dashoffset: 29.7833385;\n stroke-dasharray: 29.7833385; }\n .mdc-checkbox__mixedmark {\n width: 100%;\n height: 0;\n -webkit-transform: scaleX(0) rotate(0deg);\n transform: scaleX(0) rotate(0deg);\n border-width: 1px;\n border-style: solid;\n opacity: 0;\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-checkbox--upgraded .mdc-checkbox__background,\n.mdc-checkbox--upgraded .mdc-checkbox__checkmark,\n.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,\n.mdc-checkbox--upgraded .mdc-checkbox__mixedmark {\n transition: none !important; }\n .mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background, .mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background, .mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background, .mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background {\n -webkit-animation-duration: 180ms;\n animation-duration: 180ms;\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear; }\n .mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path {\n -webkit-animation: mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;\n animation: mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;\n transition: none; }\n .mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark {\n -webkit-animation: mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;\n animation: mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;\n transition: none; }\n .mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path {\n -webkit-animation: mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;\n animation: mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;\n transition: none; }\n .mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark {\n -webkit-animation: mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;\n animation: mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;\n transition: none; }\n .mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark {\n -webkit-animation: mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;\n animation: mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;\n transition: none; }\n .mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark {\n -webkit-animation: mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;\n animation: mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;\n transition: none; }\n .mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark {\n -webkit-animation: mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;\n animation: mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;\n transition: none; }\n .mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark {\n -webkit-animation: mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;\n animation: mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;\n transition: none; }\n .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {\n transition: border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1), background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background .mdc-checkbox__checkmark-path,\n .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background .mdc-checkbox__checkmark-path {\n stroke-dashoffset: 0; }\n .mdc-checkbox__background::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n -webkit-transform: scale(0, 0);\n transform: scale(0, 0);\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\";\n will-change: opacity, transform;\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-checkbox__native-control:focus ~ .mdc-checkbox__background::before {\n -webkit-transform: scale(2.75, 2.75);\n transform: scale(2.75, 2.75);\n opacity: 0.12;\n transition: opacity 80ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 80ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 80ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 80ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 80ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 80ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 80ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-checkbox__native-control {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n opacity: 0;\n cursor: inherit; }\n .mdc-checkbox__native-control:disabled {\n cursor: default;\n pointer-events: none; }\n .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background .mdc-checkbox__checkmark {\n transition: opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);\n opacity: 1; }\n .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background .mdc-checkbox__mixedmark {\n -webkit-transform: scaleX(1) rotate(-45deg);\n transform: scaleX(1) rotate(-45deg); }\n .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background .mdc-checkbox__checkmark {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0;\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background .mdc-checkbox__mixedmark {\n -webkit-transform: scaleX(1) rotate(0deg);\n transform: scaleX(1) rotate(0deg);\n opacity: 1; }\n .mdc-checkbox {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n .mdc-checkbox::before, .mdc-checkbox::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-checkbox::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-checkbox.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-checkbox.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-checkbox.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-checkbox.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-checkbox.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-checkbox::before, .mdc-checkbox::after {\n background-color: #018786; }\n @supports not (-ms-ime-align: auto) {\n .mdc-checkbox::before, .mdc-checkbox::after {\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n .mdc-checkbox:hover::before {\n opacity: 0.04; }\n .mdc-checkbox:not(.mdc-ripple-upgraded):focus::before, .mdc-checkbox.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-checkbox:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-checkbox:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-checkbox.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-checkbox::before, .mdc-checkbox::after {\n top: calc(50% - 50%);\n /* @noflip */\n left: calc(50% - 50%);\n width: 100%;\n height: 100%; }\n .mdc-checkbox.mdc-ripple-upgraded::before, .mdc-checkbox.mdc-ripple-upgraded::after {\n top: var(--mdc-ripple-top, calc(50% - 50%));\n /* @noflip */\n left: var(--mdc-ripple-left, calc(50% - 50%));\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-checkbox.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-ripple-upgraded--background-focused .mdc-checkbox__background::before {\n content: none; }\n .mdc-chip {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity;\n border-radius: 16px;\n background-color: #e0e0e0;\n color: rgba(0, 0, 0, 0.87);\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit;\n height: 32px;\n display: inline-flex;\n position: relative;\n align-items: center;\n box-sizing: border-box;\n padding: 7px 12px;\n outline: none;\n cursor: pointer;\n overflow: hidden; }\n .mdc-chip::before, .mdc-chip::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-chip::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-chip.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-chip.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-chip.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-chip.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-chip.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-chip::before, .mdc-chip::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-chip.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-chip::before, .mdc-chip::after {\n background-color: rgba(0, 0, 0, 0.87); }\n .mdc-chip:hover::before {\n opacity: 0.04; }\n .mdc-chip:not(.mdc-ripple-upgraded):focus::before, .mdc-chip.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-chip:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-chip:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-chip.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-chip:hover {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-chip.mdc-chip--selected .mdc-chip__checkmark,\n .mdc-chip .mdc-chip__icon--leading:not(.mdc-chip__icon--leading-hidden) {\n /* @noflip */\n margin-left: -4px;\n /* @noflip */\n margin-right: 4px;\n margin-top: -4px;\n margin-bottom: -4px; }\n [dir=\"rtl\"] .mdc-chip.mdc-chip--selected .mdc-chip__checkmark, .mdc-chip.mdc-chip--selected .mdc-chip__checkmark[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-chip .mdc-chip__icon--leading:not(.mdc-chip__icon--leading-hidden),\n .mdc-chip .mdc-chip__icon--leading:not(.mdc-chip__icon--leading-hidden)[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 4px;\n /* @noflip */\n margin-right: -4px; }\n .mdc-chip:hover {\n color: #000;\n /* @alternate */\n color: var(--mdc-theme-on-surface, #000); }\n .mdc-chip__icon--leading {\n color: rgba(0, 0, 0, 0.54); }\n .mdc-chip__icon--trailing {\n color: rgba(0, 0, 0, 0.54); }\n .mdc-chip__icon--trailing:hover {\n color: rgba(0, 0, 0, 0.62); }\n .mdc-chip__icon--trailing:focus {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-chip__icon.mdc-chip__icon--leading:not(.mdc-chip__icon--leading-hidden) {\n width: 20px;\n height: 20px;\n font-size: 20px; }\n .mdc-chip__icon.mdc-chip__icon--trailing {\n width: 18px;\n height: 18px;\n font-size: 18px; }\n .mdc-chip__icon--trailing {\n margin: 0 -4px 0 4px; }\n .mdc-chip--exit {\n transition: opacity 75ms cubic-bezier(0.4, 0, 0.2, 1), width 150ms cubic-bezier(0, 0, 0.2, 1), padding 100ms linear, margin 100ms linear;\n opacity: 0; }\n .mdc-chip__text {\n white-space: nowrap; }\n .mdc-chip__icon {\n border-radius: 50%;\n outline: none;\n vertical-align: middle; }\n .mdc-chip__checkmark {\n height: 20px; }\n .mdc-chip__checkmark-path {\n transition: stroke-dashoffset 150ms 50ms cubic-bezier(0.4, 0, 0.6, 1);\n stroke-width: 2px;\n stroke-dashoffset: 29.7833385;\n stroke-dasharray: 29.7833385; }\n .mdc-chip--selected .mdc-chip__checkmark-path {\n stroke-dashoffset: 0; }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected::before {\n opacity: 0.08; }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected::before, .mdc-chip-set--choice .mdc-chip.mdc-chip--selected::after {\n background-color: #6200ee; }\n @supports not (-ms-ime-align: auto) {\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected::before, .mdc-chip-set--choice .mdc-chip.mdc-chip--selected::after {\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); } }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected:hover::before {\n opacity: 0.12; }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected:not(.mdc-ripple-upgraded):focus::before, .mdc-chip-set--choice .mdc-chip.mdc-chip--selected.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.2; }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.2; }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.2; }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected {\n color: #6200ee;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee); }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected .mdc-chip__icon--leading {\n color: rgba(98, 0, 238, 0.54); }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected:hover {\n color: #6200ee;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee); }\n .mdc-chip-set--choice .mdc-chip .mdc-chip__checkmark-path {\n stroke: #6200ee;\n /* @alternate */\n stroke: var(--mdc-theme-primary, #6200ee); }\n .mdc-chip-set--choice .mdc-chip--selected {\n background-color: #fff;\n /* @alternate */\n background-color: var(--mdc-theme-surface, #fff); }\n .mdc-chip__checkmark-svg {\n width: 0;\n height: 20px;\n transition: width 150ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-chip--selected .mdc-chip__checkmark-svg {\n width: 20px; }\n .mdc-chip-set--filter .mdc-chip__icon--leading {\n transition: opacity 75ms linear;\n transition-delay: -50ms;\n opacity: 1; }\n .mdc-chip-set--filter .mdc-chip__icon--leading + .mdc-chip__checkmark {\n transition: opacity 75ms linear;\n transition-delay: 80ms;\n opacity: 0; }\n .mdc-chip-set--filter .mdc-chip__icon--leading + .mdc-chip__checkmark .mdc-chip__checkmark-svg {\n transition: width 0ms; }\n .mdc-chip-set--filter .mdc-chip--selected .mdc-chip__icon--leading {\n opacity: 0; }\n .mdc-chip-set--filter .mdc-chip--selected .mdc-chip__icon--leading + .mdc-chip__checkmark {\n width: 0;\n opacity: 1; }\n .mdc-chip-set--filter .mdc-chip__icon--leading-hidden.mdc-chip__icon--leading {\n width: 0;\n opacity: 0; }\n .mdc-chip-set--filter .mdc-chip__icon--leading-hidden.mdc-chip__icon--leading + .mdc-chip__checkmark {\n width: 20px; }\n @-webkit-keyframes mdc-chip-entry {\n from {\n -webkit-transform: scale(0.8);\n transform: scale(0.8);\n opacity: .4; }\n to {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1; } }\n @keyframes mdc-chip-entry {\n from {\n -webkit-transform: scale(0.8);\n transform: scale(0.8);\n opacity: .4; }\n to {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1; } }\n .mdc-chip-set {\n padding: 4px;\n display: flex;\n flex-wrap: wrap;\n box-sizing: border-box; }\n .mdc-chip-set .mdc-chip {\n margin: 4px; }\n .mdc-chip-set--input .mdc-chip {\n -webkit-animation: mdc-chip-entry 100ms cubic-bezier(0, 0, 0.2, 1);\n animation: mdc-chip-entry 100ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-dialog,\n.mdc-dialog__scrim {\n position: fixed;\n top: 0;\n left: 0;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 100%;\n height: 100%; }\n .mdc-dialog {\n display: none;\n z-index: 7; }\n .mdc-dialog .mdc-dialog__surface {\n background-color: #fff;\n /* @alternate */\n background-color: var(--mdc-theme-surface, #fff); }\n .mdc-dialog .mdc-dialog__scrim {\n background-color: rgba(0, 0, 0, 0.32); }\n .mdc-dialog .mdc-dialog__title {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-dialog .mdc-dialog__content {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-dialog.mdc-dialog--scrollable .mdc-dialog__title,\n .mdc-dialog.mdc-dialog--scrollable .mdc-dialog__actions {\n border-color: rgba(0, 0, 0, 0.12); }\n .mdc-dialog .mdc-dialog__surface {\n min-width: 280px; }\n @media (max-width: 592px) {\n .mdc-dialog .mdc-dialog__surface {\n max-width: calc(100vw - 32px); } }\n @media (min-width: 592px) {\n .mdc-dialog .mdc-dialog__surface {\n max-width: 560px; } }\n .mdc-dialog .mdc-dialog__surface {\n max-height: calc(100vh - 32px); }\n .mdc-dialog .mdc-dialog__surface {\n border-radius: 4px; }\n .mdc-dialog__scrim {\n opacity: 0;\n z-index: -1; }\n .mdc-dialog__container {\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n box-sizing: border-box;\n -webkit-transform: scale(0.8);\n transform: scale(0.8);\n opacity: 0; }\n .mdc-dialog__surface {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n display: flex;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 0;\n box-sizing: border-box;\n max-width: 100%;\n max-height: 100%; }\n .mdc-dialog[dir=\"rtl\"] .mdc-dialog__surface,\n [dir=\"rtl\"] .mdc-dialog .mdc-dialog__surface {\n text-align: right; }\n .mdc-dialog__title {\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1.25rem;\n line-height: 2rem;\n font-weight: 500;\n letter-spacing: 0.0125em;\n text-decoration: inherit;\n text-transform: inherit;\n display: block;\n position: relative;\n flex-shrink: 0;\n box-sizing: border-box;\n margin: 0;\n padding: 0 24px 9px;\n border-bottom: 1px solid transparent; }\n .mdc-dialog__title::before {\n display: inline-block;\n width: 0;\n height: 40px;\n content: \"\";\n vertical-align: 0; }\n .mdc-dialog[dir=\"rtl\"] .mdc-dialog__title,\n [dir=\"rtl\"] .mdc-dialog .mdc-dialog__title {\n text-align: right; }\n .mdc-dialog--scrollable .mdc-dialog__title {\n padding-bottom: 15px; }\n .mdc-dialog__content {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.5rem;\n font-weight: 400;\n letter-spacing: 0.03125em;\n text-decoration: inherit;\n text-transform: inherit;\n flex-grow: 1;\n box-sizing: border-box;\n margin: 0;\n padding: 20px 24px;\n overflow: auto;\n -webkit-overflow-scrolling: touch; }\n .mdc-dialog__content > :first-child {\n margin-top: 0; }\n .mdc-dialog__content > :last-child {\n margin-bottom: 0; }\n .mdc-dialog__title + .mdc-dialog__content {\n padding-top: 0; }\n .mdc-dialog--scrollable .mdc-dialog__content {\n padding-top: 8px;\n padding-bottom: 8px; }\n .mdc-dialog__content .mdc-list:first-child:last-child {\n padding: 6px 0 0; }\n .mdc-dialog--scrollable .mdc-dialog__content .mdc-list:first-child:last-child {\n padding: 0; }\n .mdc-dialog__actions {\n display: flex;\n position: relative;\n flex-shrink: 0;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n box-sizing: border-box;\n min-height: 52px;\n margin: 0;\n padding: 8px;\n border-top: 1px solid transparent; }\n .mdc-dialog--stacked .mdc-dialog__actions {\n flex-direction: column;\n align-items: flex-end; }\n .mdc-dialog__button {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: 0;\n max-width: 100%;\n text-align: right; }\n [dir=\"rtl\"] .mdc-dialog__button, .mdc-dialog__button[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 8px; }\n .mdc-dialog__button:first-child {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .mdc-dialog__button:first-child, .mdc-dialog__button:first-child[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 0; }\n .mdc-dialog[dir=\"rtl\"] .mdc-dialog__button,\n [dir=\"rtl\"] .mdc-dialog .mdc-dialog__button {\n text-align: left; }\n .mdc-dialog--stacked .mdc-dialog__button:not(:first-child) {\n margin-top: 12px; }\n .mdc-dialog--open,\n.mdc-dialog--opening,\n.mdc-dialog--closing {\n display: flex; }\n .mdc-dialog--opening .mdc-dialog__scrim {\n transition: opacity 150ms linear; }\n .mdc-dialog--opening .mdc-dialog__container {\n transition: opacity 75ms linear, -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 75ms linear, transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 75ms linear, transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-dialog--closing .mdc-dialog__scrim,\n.mdc-dialog--closing .mdc-dialog__container {\n transition: opacity 75ms linear; }\n .mdc-dialog--closing .mdc-dialog__container {\n -webkit-transform: scale(1);\n transform: scale(1); }\n .mdc-dialog--open .mdc-dialog__scrim {\n opacity: 1; }\n .mdc-dialog--open .mdc-dialog__container {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1; }\n .mdc-dialog-scroll-lock {\n overflow: hidden; }\n .mdc-drawer {\n border-color: rgba(0, 0, 0, 0.12);\n background-color: #fff;\n /* @noflip */\n border-radius: 0 0 0 0;\n z-index: 6;\n width: 256px;\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n box-sizing: border-box;\n height: 100%;\n transition-property: -webkit-transform;\n transition-property: transform;\n transition-property: transform, -webkit-transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n /* @noflip */\n border-right-width: 1px;\n /* @noflip */\n border-right-style: solid;\n overflow: hidden; }\n .mdc-drawer .mdc-drawer__title {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-drawer .mdc-list-group__subheader {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-drawer .mdc-drawer__subtitle {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-drawer .mdc-list-item__graphic {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-drawer .mdc-list-item {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-drawer .mdc-list-item--activated .mdc-list-item__graphic {\n color: #6200ee; }\n .mdc-drawer .mdc-list-item--activated {\n color: rgba(98, 0, 238, 0.87); }\n [dir=\"rtl\"] .mdc-drawer, .mdc-drawer[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 0 0 0 0; }\n .mdc-drawer .mdc-list-item {\n border-radius: 4px; }\n .mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content {\n /* @noflip */\n margin-left: 256px;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content, .mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 256px; }\n [dir=\"rtl\"] .mdc-drawer, .mdc-drawer[dir=\"rtl\"] {\n /* @noflip */\n border-right-width: 0;\n /* @noflip */\n border-left-width: 1px;\n /* @noflip */\n border-right-style: none;\n /* @noflip */\n border-left-style: solid; }\n .mdc-drawer .mdc-list-item {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.375rem;\n font-weight: 500;\n letter-spacing: 0.00714286em;\n text-decoration: inherit;\n text-transform: inherit;\n height: calc(48px - 2 * 4px);\n margin: 8px 8px;\n padding: 0 8px; }\n .mdc-drawer .mdc-list-item:nth-child(1) {\n margin-top: 2px; }\n .mdc-drawer .mdc-list-item:nth-last-child(1) {\n margin-bottom: 0; }\n .mdc-drawer .mdc-list-group__subheader {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n margin: 0;\n padding: 0 16px; }\n .mdc-drawer .mdc-list-group__subheader::before {\n display: inline-block;\n width: 0;\n height: 24px;\n content: \"\";\n vertical-align: 0; }\n .mdc-drawer .mdc-list-divider {\n margin: 3px 0 4px 0; }\n .mdc-drawer .mdc-list-item__text,\n .mdc-drawer .mdc-list-item__graphic {\n pointer-events: none; }\n .mdc-drawer--animate {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%); }\n [dir=\"rtl\"] .mdc-drawer--animate, .mdc-drawer--animate[dir=\"rtl\"] {\n -webkit-transform: translateX(100%);\n transform: translateX(100%); }\n .mdc-drawer--opening {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n transition-duration: 250ms; }\n [dir=\"rtl\"] .mdc-drawer--opening, .mdc-drawer--opening[dir=\"rtl\"] {\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n .mdc-drawer--closing {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n transition-duration: 200ms; }\n [dir=\"rtl\"] .mdc-drawer--closing, .mdc-drawer--closing[dir=\"rtl\"] {\n -webkit-transform: translateX(100%);\n transform: translateX(100%); }\n .mdc-drawer__header {\n flex-shrink: 0;\n box-sizing: border-box;\n min-height: 64px;\n padding: 0 16px 4px; }\n .mdc-drawer__title {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1.25rem;\n line-height: 2rem;\n font-weight: 500;\n letter-spacing: 0.0125em;\n text-decoration: inherit;\n text-transform: inherit;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n margin-bottom: -20px; }\n .mdc-drawer__title::before {\n display: inline-block;\n width: 0;\n height: 36px;\n content: \"\";\n vertical-align: 0; }\n .mdc-drawer__title::after {\n display: inline-block;\n width: 0;\n height: 20px;\n content: \"\";\n vertical-align: -20px; }\n .mdc-drawer__subtitle {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n margin-bottom: 0; }\n .mdc-drawer__subtitle::before {\n display: inline-block;\n width: 0;\n height: 20px;\n content: \"\";\n vertical-align: 0; }\n .mdc-drawer__content {\n height: 100%;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch; }\n .mdc-drawer--dismissible {\n /* @noflip */\n left: 0;\n /* @noflip */\n right: initial;\n display: none;\n position: absolute; }\n [dir=\"rtl\"] .mdc-drawer--dismissible, .mdc-drawer--dismissible[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 0; }\n .mdc-drawer--dismissible.mdc-drawer--open {\n display: flex; }\n .mdc-drawer-app-content {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 0;\n position: relative; }\n [dir=\"rtl\"] .mdc-drawer-app-content, .mdc-drawer-app-content[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 0; }\n .mdc-drawer--modal {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n /* @noflip */\n left: 0;\n /* @noflip */\n right: initial;\n display: none;\n position: fixed; }\n .mdc-drawer--modal + .mdc-drawer-scrim {\n background-color: rgba(0, 0, 0, 0.32); }\n [dir=\"rtl\"] .mdc-drawer--modal, .mdc-drawer--modal[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 0; }\n .mdc-drawer--modal.mdc-drawer--open {\n display: flex; }\n .mdc-drawer-scrim {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n z-index: 5; }\n .mdc-drawer--open + .mdc-drawer-scrim {\n display: block; }\n .mdc-drawer--animate + .mdc-drawer-scrim {\n opacity: 0; }\n .mdc-drawer--opening + .mdc-drawer-scrim {\n transition-duration: 250ms;\n opacity: 1; }\n .mdc-drawer--closing + .mdc-drawer-scrim {\n transition-duration: 200ms;\n opacity: 0; }\n .mdc-elevation--z0 {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z1 {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z2 {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z3 {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z4 {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z5 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z6 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z7 {\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z8 {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z9 {\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z10 {\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z11 {\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z12 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z13 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z14 {\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z15 {\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z16 {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z17 {\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z18 {\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z19 {\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z20 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z21 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z22 {\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z23 {\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z24 {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); }\n .mdc-elevation-transition {\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);\n will-change: box-shadow; }\n .mdc-fab {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n display: inline-flex;\n position: relative;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 56px;\n height: 56px;\n padding: 0;\n border: none;\n fill: currentColor;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n overflow: hidden;\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), opacity 15ms linear 30ms, -webkit-transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), opacity 15ms linear 30ms, transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), opacity 15ms linear 30ms, transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);\n background-color: #018786;\n color: #fff;\n /* @alternate */\n color: var(--mdc-theme-on-secondary, #fff); }\n .mdc-fab:not(.mdc-fab--extended) {\n border-radius: 50%; }\n .mdc-fab::-moz-focus-inner {\n padding: 0;\n border: 0; }\n .mdc-fab:hover, .mdc-fab:focus {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); }\n .mdc-fab:active {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12); }\n .mdc-fab:active, .mdc-fab:focus {\n outline: none; }\n .mdc-fab:hover {\n cursor: pointer; }\n .mdc-fab > svg {\n width: 100%; }\n @supports not (-ms-ime-align: auto) {\n .mdc-fab {\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n .mdc-fab .mdc-fab__icon {\n width: 24px;\n height: 24px;\n font-size: 24px; }\n .mdc-fab--mini {\n width: 40px;\n height: 40px; }\n .mdc-fab--extended {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 2.25rem;\n font-weight: 500;\n letter-spacing: 0.08928571em;\n text-decoration: none;\n text-transform: uppercase;\n border-radius: 24px;\n padding: 0 20px;\n width: auto;\n max-width: 100%;\n height: 48px; }\n .mdc-fab--extended .mdc-fab__icon {\n /* @noflip */\n margin-left: -8px;\n /* @noflip */\n margin-right: 12px; }\n [dir=\"rtl\"] .mdc-fab--extended .mdc-fab__icon, .mdc-fab--extended .mdc-fab__icon[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 12px;\n /* @noflip */\n margin-right: -8px; }\n .mdc-fab--extended .mdc-fab__label + .mdc-fab__icon {\n /* @noflip */\n margin-left: 12px;\n /* @noflip */\n margin-right: -8px; }\n [dir=\"rtl\"] .mdc-fab--extended .mdc-fab__label + .mdc-fab__icon, .mdc-fab--extended .mdc-fab__label + .mdc-fab__icon[dir=\"rtl\"] {\n /* @noflip */\n margin-left: -8px;\n /* @noflip */\n margin-right: 12px; }\n .mdc-fab__label {\n justify-content: flex-start;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden; }\n .mdc-fab__icon {\n transition: -webkit-transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);\n transition: transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);\n transition: transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);\n fill: currentColor;\n will-change: transform; }\n .mdc-fab .mdc-fab__icon {\n display: inline-flex;\n align-items: center;\n justify-content: center; }\n .mdc-fab--exited {\n -webkit-transform: scale(0);\n transform: scale(0);\n opacity: 0;\n transition: opacity 15ms linear 150ms, -webkit-transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1);\n transition: opacity 15ms linear 150ms, transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1);\n transition: opacity 15ms linear 150ms, transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1); }\n .mdc-fab--exited .mdc-fab__icon {\n -webkit-transform: scale(0);\n transform: scale(0);\n transition: -webkit-transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1);\n transition: transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1);\n transition: transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1); }\n .mdc-fab {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n .mdc-fab::before, .mdc-fab::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-fab::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-fab.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-fab.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-fab.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-fab.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-fab.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-fab::before, .mdc-fab::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-fab.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-fab::before, .mdc-fab::after {\n background-color: #fff; }\n @supports not (-ms-ime-align: auto) {\n .mdc-fab::before, .mdc-fab::after {\n /* @alternate */\n background-color: var(--mdc-theme-on-secondary, #fff); } }\n .mdc-fab:hover::before {\n opacity: 0.08; }\n .mdc-fab:not(.mdc-ripple-upgraded):focus::before, .mdc-fab.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-fab:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-fab:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-fab.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .mdc-floating-label {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.75rem;\n font-weight: 400;\n letter-spacing: 0.009375em;\n text-decoration: inherit;\n text-transform: inherit;\n position: absolute;\n /* @noflip */\n left: 0;\n /* @noflip */\n -webkit-transform-origin: left top;\n transform-origin: left top;\n transition: color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), color 150ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n /* @alternate */\n line-height: 1.15rem;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: text;\n overflow: hidden;\n will-change: transform; }\n [dir=\"rtl\"] .mdc-floating-label, .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n right: 0;\n /* @noflip */\n left: auto;\n /* @noflip */\n -webkit-transform-origin: right top;\n transform-origin: right top;\n /* @noflip */\n text-align: right; }\n .mdc-floating-label--float-above {\n cursor: auto; }\n .mdc-floating-label--float-above {\n -webkit-transform: translateY(-50%) scale(0.75);\n transform: translateY(-50%) scale(0.75); }\n .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-standard 250ms 1;\n animation: mdc-floating-label-shake-float-above-standard 250ms 1; }\n @-webkit-keyframes mdc-floating-label-shake-float-above-standard {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(4% - 0%)) translateY(-50%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(-4% - 0%)) translateY(-50%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-standard {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(4% - 0%)) translateY(-50%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(-4% - 0%)) translateY(-50%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75); }\n /* clean-css ignore:end */ }\n .mdc-form-field {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit;\n color: rgba(0, 0, 0, 0.87);\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));\n display: inline-flex;\n align-items: center;\n vertical-align: middle; }\n .mdc-form-field > label {\n order: 0;\n /* @noflip */\n margin-right: auto;\n /* @noflip */\n padding-left: 4px; }\n [dir=\"rtl\"] .mdc-form-field > label, .mdc-form-field[dir=\"rtl\"] > label {\n /* @noflip */\n margin-left: auto;\n /* @noflip */\n padding-right: 4px; }\n .mdc-form-field--align-end > label {\n order: -1;\n /* @noflip */\n margin-left: auto;\n /* @noflip */\n padding-right: 4px; }\n [dir=\"rtl\"] .mdc-form-field--align-end > label, .mdc-form-field--align-end[dir=\"rtl\"] > label {\n /* @noflip */\n margin-right: auto;\n /* @noflip */\n padding-left: 4px; }\n .mdc-icon-button {\n width: 48px;\n height: 48px;\n padding: 12px;\n font-size: 24px;\n display: inline-block;\n position: relative;\n box-sizing: border-box;\n border: none;\n outline: none;\n background-color: transparent;\n fill: currentColor;\n color: inherit;\n text-decoration: none;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .mdc-icon-button svg,\n .mdc-icon-button img {\n width: 24px;\n height: 24px; }\n .mdc-icon-button:disabled {\n color: rgba(0, 0, 0, 0.38);\n /* @alternate */\n color: var(--mdc-theme-text-disabled-on-light, rgba(0, 0, 0, 0.38));\n cursor: default;\n pointer-events: none; }\n .mdc-icon-button__icon {\n display: inline-block; }\n .mdc-icon-button__icon.mdc-icon-button__icon--on {\n display: none; }\n .mdc-icon-button--on .mdc-icon-button__icon {\n display: none; }\n .mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on {\n display: inline-block; }\n .mdc-icon-button {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n .mdc-icon-button::before, .mdc-icon-button::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-icon-button::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-icon-button.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-icon-button.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-icon-button.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-icon-button.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-icon-button.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-icon-button::before, .mdc-icon-button::after {\n top: calc(50% - 50%);\n /* @noflip */\n left: calc(50% - 50%);\n width: 100%;\n height: 100%; }\n .mdc-icon-button.mdc-ripple-upgraded::before, .mdc-icon-button.mdc-ripple-upgraded::after {\n top: var(--mdc-ripple-top, calc(50% - 50%));\n /* @noflip */\n left: var(--mdc-ripple-left, calc(50% - 50%));\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-icon-button.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-icon-button::before, .mdc-icon-button::after {\n background-color: #000; }\n .mdc-icon-button:hover::before {\n opacity: 0.04; }\n .mdc-icon-button:not(.mdc-ripple-upgraded):focus::before, .mdc-icon-button.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-icon-button:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-icon-button:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-icon-button.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-image-list {\n display: flex;\n flex-wrap: wrap;\n margin: 0 auto;\n padding: 0; }\n .mdc-image-list__item,\n.mdc-image-list__image-aspect-container {\n position: relative;\n box-sizing: border-box; }\n .mdc-image-list__item {\n list-style-type: none; }\n .mdc-image-list__image {\n width: 100%; }\n .mdc-image-list__image-aspect-container .mdc-image-list__image {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n height: 100%;\n background-repeat: no-repeat;\n background-position: center;\n background-size: cover; }\n .mdc-image-list__image-aspect-container {\n padding-bottom: calc(100% / 1); }\n .mdc-image-list__image {\n border-radius: 0; }\n .mdc-image-list--with-text-protection .mdc-image-list__supporting {\n border-radius: 0 0 0 0; }\n .mdc-image-list__supporting {\n color: rgba(0, 0, 0, 0.87);\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box;\n padding: 8px 0;\n line-height: 24px; }\n .mdc-image-list__label {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.75rem;\n font-weight: 400;\n letter-spacing: 0.009375em;\n text-decoration: inherit;\n text-transform: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden; }\n .mdc-image-list--with-text-protection .mdc-image-list__supporting {\n position: absolute;\n bottom: 0;\n width: 100%;\n height: 48px;\n padding: 0 16px;\n background: rgba(0, 0, 0, 0.6);\n color: #fff; }\n .mdc-image-list--masonry {\n display: block; }\n .mdc-image-list--masonry .mdc-image-list__item {\n -webkit-column-break-inside: avoid;\n -moz-column-break-inside: avoid;\n break-inside: avoid-column; }\n .mdc-image-list--masonry .mdc-image-list__image {\n display: block;\n height: auto; }\n :root {\n --mdc-layout-grid-margin-desktop: 24px;\n --mdc-layout-grid-gutter-desktop: 24px;\n --mdc-layout-grid-column-width-desktop: 72px;\n --mdc-layout-grid-margin-tablet: 16px;\n --mdc-layout-grid-gutter-tablet: 16px;\n --mdc-layout-grid-column-width-tablet: 72px;\n --mdc-layout-grid-margin-phone: 16px;\n --mdc-layout-grid-gutter-phone: 16px;\n --mdc-layout-grid-column-width-phone: 72px; }\n @media (min-width: 840px) {\n .mdc-layout-grid {\n box-sizing: border-box;\n margin: 0 auto;\n padding: 24px;\n padding: var(--mdc-layout-grid-margin-desktop, 24px); } }\n @media (min-width: 480px) and (max-width: 839px) {\n .mdc-layout-grid {\n box-sizing: border-box;\n margin: 0 auto;\n padding: 16px;\n padding: var(--mdc-layout-grid-margin-tablet, 16px); } }\n @media (max-width: 479px) {\n .mdc-layout-grid {\n box-sizing: border-box;\n margin: 0 auto;\n padding: 16px;\n padding: var(--mdc-layout-grid-margin-phone, 16px); } }\n @media (min-width: 840px) {\n .mdc-layout-grid__inner {\n display: flex;\n flex-flow: row wrap;\n align-items: stretch;\n margin: -12px;\n margin: calc(var(--mdc-layout-grid-gutter-desktop, 24px) / 2 * -1); }\n @supports (display: grid) {\n .mdc-layout-grid__inner {\n display: grid;\n margin: 0;\n grid-gap: 24px;\n grid-gap: var(--mdc-layout-grid-gutter-desktop, 24px);\n grid-template-columns: repeat(12, minmax(0, 1fr)); } } }\n @media (min-width: 480px) and (max-width: 839px) {\n .mdc-layout-grid__inner {\n display: flex;\n flex-flow: row wrap;\n align-items: stretch;\n margin: -8px;\n margin: calc(var(--mdc-layout-grid-gutter-tablet, 16px) / 2 * -1); }\n @supports (display: grid) {\n .mdc-layout-grid__inner {\n display: grid;\n margin: 0;\n grid-gap: 16px;\n grid-gap: var(--mdc-layout-grid-gutter-tablet, 16px);\n grid-template-columns: repeat(8, minmax(0, 1fr)); } } }\n @media (max-width: 479px) {\n .mdc-layout-grid__inner {\n display: flex;\n flex-flow: row wrap;\n align-items: stretch;\n margin: -8px;\n margin: calc(var(--mdc-layout-grid-gutter-phone, 16px) / 2 * -1); }\n @supports (display: grid) {\n .mdc-layout-grid__inner {\n display: grid;\n margin: 0;\n grid-gap: 16px;\n grid-gap: var(--mdc-layout-grid-gutter-phone, 16px);\n grid-template-columns: repeat(4, minmax(0, 1fr)); } } }\n @media (min-width: 840px) {\n .mdc-layout-grid__cell {\n width: calc(33.33333333% - 24px);\n width: calc(33.33333333% - var(--mdc-layout-grid-gutter-desktop, 24px));\n box-sizing: border-box;\n margin: 12px;\n margin: calc(var(--mdc-layout-grid-gutter-desktop, 24px) / 2); }\n @supports (display: grid) {\n .mdc-layout-grid__cell {\n width: auto;\n grid-column-end: span 4; } }\n @supports (display: grid) {\n .mdc-layout-grid__cell {\n margin: 0; } }\n .mdc-layout-grid__cell--span-1,\n .mdc-layout-grid__cell--span-1-desktop {\n width: calc(8.33333333% - 24px);\n width: calc(8.33333333% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-1,\n .mdc-layout-grid__cell--span-1-desktop {\n width: auto;\n grid-column-end: span 1; } }\n .mdc-layout-grid__cell--span-2,\n .mdc-layout-grid__cell--span-2-desktop {\n width: calc(16.66666667% - 24px);\n width: calc(16.66666667% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-2,\n .mdc-layout-grid__cell--span-2-desktop {\n width: auto;\n grid-column-end: span 2; } }\n .mdc-layout-grid__cell--span-3,\n .mdc-layout-grid__cell--span-3-desktop {\n width: calc(25% - 24px);\n width: calc(25% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-3,\n .mdc-layout-grid__cell--span-3-desktop {\n width: auto;\n grid-column-end: span 3; } }\n .mdc-layout-grid__cell--span-4,\n .mdc-layout-grid__cell--span-4-desktop {\n width: calc(33.33333333% - 24px);\n width: calc(33.33333333% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-4,\n .mdc-layout-grid__cell--span-4-desktop {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-5,\n .mdc-layout-grid__cell--span-5-desktop {\n width: calc(41.66666667% - 24px);\n width: calc(41.66666667% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-5,\n .mdc-layout-grid__cell--span-5-desktop {\n width: auto;\n grid-column-end: span 5; } }\n .mdc-layout-grid__cell--span-6,\n .mdc-layout-grid__cell--span-6-desktop {\n width: calc(50% - 24px);\n width: calc(50% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-6,\n .mdc-layout-grid__cell--span-6-desktop {\n width: auto;\n grid-column-end: span 6; } }\n .mdc-layout-grid__cell--span-7,\n .mdc-layout-grid__cell--span-7-desktop {\n width: calc(58.33333333% - 24px);\n width: calc(58.33333333% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-7,\n .mdc-layout-grid__cell--span-7-desktop {\n width: auto;\n grid-column-end: span 7; } }\n .mdc-layout-grid__cell--span-8,\n .mdc-layout-grid__cell--span-8-desktop {\n width: calc(66.66666667% - 24px);\n width: calc(66.66666667% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-8,\n .mdc-layout-grid__cell--span-8-desktop {\n width: auto;\n grid-column-end: span 8; } }\n .mdc-layout-grid__cell--span-9,\n .mdc-layout-grid__cell--span-9-desktop {\n width: calc(75% - 24px);\n width: calc(75% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-9,\n .mdc-layout-grid__cell--span-9-desktop {\n width: auto;\n grid-column-end: span 9; } }\n .mdc-layout-grid__cell--span-10,\n .mdc-layout-grid__cell--span-10-desktop {\n width: calc(83.33333333% - 24px);\n width: calc(83.33333333% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-10,\n .mdc-layout-grid__cell--span-10-desktop {\n width: auto;\n grid-column-end: span 10; } }\n .mdc-layout-grid__cell--span-11,\n .mdc-layout-grid__cell--span-11-desktop {\n width: calc(91.66666667% - 24px);\n width: calc(91.66666667% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-11,\n .mdc-layout-grid__cell--span-11-desktop {\n width: auto;\n grid-column-end: span 11; } }\n .mdc-layout-grid__cell--span-12,\n .mdc-layout-grid__cell--span-12-desktop {\n width: calc(100% - 24px);\n width: calc(100% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-12,\n .mdc-layout-grid__cell--span-12-desktop {\n width: auto;\n grid-column-end: span 12; } } }\n @media (min-width: 480px) and (max-width: 839px) {\n .mdc-layout-grid__cell {\n width: calc(50% - 16px);\n width: calc(50% - var(--mdc-layout-grid-gutter-tablet, 16px));\n box-sizing: border-box;\n margin: 8px;\n margin: calc(var(--mdc-layout-grid-gutter-tablet, 16px) / 2); }\n @supports (display: grid) {\n .mdc-layout-grid__cell {\n width: auto;\n grid-column-end: span 4; } }\n @supports (display: grid) {\n .mdc-layout-grid__cell {\n margin: 0; } }\n .mdc-layout-grid__cell--span-1,\n .mdc-layout-grid__cell--span-1-tablet {\n width: calc(12.5% - 16px);\n width: calc(12.5% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-1,\n .mdc-layout-grid__cell--span-1-tablet {\n width: auto;\n grid-column-end: span 1; } }\n .mdc-layout-grid__cell--span-2,\n .mdc-layout-grid__cell--span-2-tablet {\n width: calc(25% - 16px);\n width: calc(25% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-2,\n .mdc-layout-grid__cell--span-2-tablet {\n width: auto;\n grid-column-end: span 2; } }\n .mdc-layout-grid__cell--span-3,\n .mdc-layout-grid__cell--span-3-tablet {\n width: calc(37.5% - 16px);\n width: calc(37.5% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-3,\n .mdc-layout-grid__cell--span-3-tablet {\n width: auto;\n grid-column-end: span 3; } }\n .mdc-layout-grid__cell--span-4,\n .mdc-layout-grid__cell--span-4-tablet {\n width: calc(50% - 16px);\n width: calc(50% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-4,\n .mdc-layout-grid__cell--span-4-tablet {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-5,\n .mdc-layout-grid__cell--span-5-tablet {\n width: calc(62.5% - 16px);\n width: calc(62.5% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-5,\n .mdc-layout-grid__cell--span-5-tablet {\n width: auto;\n grid-column-end: span 5; } }\n .mdc-layout-grid__cell--span-6,\n .mdc-layout-grid__cell--span-6-tablet {\n width: calc(75% - 16px);\n width: calc(75% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-6,\n .mdc-layout-grid__cell--span-6-tablet {\n width: auto;\n grid-column-end: span 6; } }\n .mdc-layout-grid__cell--span-7,\n .mdc-layout-grid__cell--span-7-tablet {\n width: calc(87.5% - 16px);\n width: calc(87.5% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-7,\n .mdc-layout-grid__cell--span-7-tablet {\n width: auto;\n grid-column-end: span 7; } }\n .mdc-layout-grid__cell--span-8,\n .mdc-layout-grid__cell--span-8-tablet {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-8,\n .mdc-layout-grid__cell--span-8-tablet {\n width: auto;\n grid-column-end: span 8; } }\n .mdc-layout-grid__cell--span-9,\n .mdc-layout-grid__cell--span-9-tablet {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-9,\n .mdc-layout-grid__cell--span-9-tablet {\n width: auto;\n grid-column-end: span 8; } }\n .mdc-layout-grid__cell--span-10,\n .mdc-layout-grid__cell--span-10-tablet {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-10,\n .mdc-layout-grid__cell--span-10-tablet {\n width: auto;\n grid-column-end: span 8; } }\n .mdc-layout-grid__cell--span-11,\n .mdc-layout-grid__cell--span-11-tablet {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-11,\n .mdc-layout-grid__cell--span-11-tablet {\n width: auto;\n grid-column-end: span 8; } }\n .mdc-layout-grid__cell--span-12,\n .mdc-layout-grid__cell--span-12-tablet {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-12,\n .mdc-layout-grid__cell--span-12-tablet {\n width: auto;\n grid-column-end: span 8; } } }\n @media (max-width: 479px) {\n .mdc-layout-grid__cell {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px));\n box-sizing: border-box;\n margin: 8px;\n margin: calc(var(--mdc-layout-grid-gutter-phone, 16px) / 2); }\n @supports (display: grid) {\n .mdc-layout-grid__cell {\n width: auto;\n grid-column-end: span 4; } }\n @supports (display: grid) {\n .mdc-layout-grid__cell {\n margin: 0; } }\n .mdc-layout-grid__cell--span-1,\n .mdc-layout-grid__cell--span-1-phone {\n width: calc(25% - 16px);\n width: calc(25% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-1,\n .mdc-layout-grid__cell--span-1-phone {\n width: auto;\n grid-column-end: span 1; } }\n .mdc-layout-grid__cell--span-2,\n .mdc-layout-grid__cell--span-2-phone {\n width: calc(50% - 16px);\n width: calc(50% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-2,\n .mdc-layout-grid__cell--span-2-phone {\n width: auto;\n grid-column-end: span 2; } }\n .mdc-layout-grid__cell--span-3,\n .mdc-layout-grid__cell--span-3-phone {\n width: calc(75% - 16px);\n width: calc(75% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-3,\n .mdc-layout-grid__cell--span-3-phone {\n width: auto;\n grid-column-end: span 3; } }\n .mdc-layout-grid__cell--span-4,\n .mdc-layout-grid__cell--span-4-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-4,\n .mdc-layout-grid__cell--span-4-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-5,\n .mdc-layout-grid__cell--span-5-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-5,\n .mdc-layout-grid__cell--span-5-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-6,\n .mdc-layout-grid__cell--span-6-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-6,\n .mdc-layout-grid__cell--span-6-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-7,\n .mdc-layout-grid__cell--span-7-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-7,\n .mdc-layout-grid__cell--span-7-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-8,\n .mdc-layout-grid__cell--span-8-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-8,\n .mdc-layout-grid__cell--span-8-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-9,\n .mdc-layout-grid__cell--span-9-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-9,\n .mdc-layout-grid__cell--span-9-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-10,\n .mdc-layout-grid__cell--span-10-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-10,\n .mdc-layout-grid__cell--span-10-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-11,\n .mdc-layout-grid__cell--span-11-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-11,\n .mdc-layout-grid__cell--span-11-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-12,\n .mdc-layout-grid__cell--span-12-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-12,\n .mdc-layout-grid__cell--span-12-phone {\n width: auto;\n grid-column-end: span 4; } } }\n .mdc-layout-grid__cell--order-1 {\n order: 1; }\n .mdc-layout-grid__cell--order-2 {\n order: 2; }\n .mdc-layout-grid__cell--order-3 {\n order: 3; }\n .mdc-layout-grid__cell--order-4 {\n order: 4; }\n .mdc-layout-grid__cell--order-5 {\n order: 5; }\n .mdc-layout-grid__cell--order-6 {\n order: 6; }\n .mdc-layout-grid__cell--order-7 {\n order: 7; }\n .mdc-layout-grid__cell--order-8 {\n order: 8; }\n .mdc-layout-grid__cell--order-9 {\n order: 9; }\n .mdc-layout-grid__cell--order-10 {\n order: 10; }\n .mdc-layout-grid__cell--order-11 {\n order: 11; }\n .mdc-layout-grid__cell--order-12 {\n order: 12; }\n .mdc-layout-grid__cell--align-top {\n align-self: flex-start; }\n @supports (display: grid) {\n .mdc-layout-grid__cell--align-top {\n align-self: start; } }\n .mdc-layout-grid__cell--align-middle {\n align-self: center; }\n .mdc-layout-grid__cell--align-bottom {\n align-self: flex-end; }\n @supports (display: grid) {\n .mdc-layout-grid__cell--align-bottom {\n align-self: end; } }\n @media (min-width: 840px) {\n .mdc-layout-grid--fixed-column-width {\n width: 1176px;\n width: calc( var(--mdc-layout-grid-column-width-desktop, 72px) * 12 + var(--mdc-layout-grid-gutter-desktop, 24px) * 11 + var(--mdc-layout-grid-margin-desktop, 24px) * 2); } }\n @media (min-width: 480px) and (max-width: 839px) {\n .mdc-layout-grid--fixed-column-width {\n width: 720px;\n width: calc( var(--mdc-layout-grid-column-width-tablet, 72px) * 8 + var(--mdc-layout-grid-gutter-tablet, 16px) * 7 + var(--mdc-layout-grid-margin-tablet, 16px) * 2); } }\n @media (max-width: 479px) {\n .mdc-layout-grid--fixed-column-width {\n width: 368px;\n width: calc( var(--mdc-layout-grid-column-width-phone, 72px) * 4 + var(--mdc-layout-grid-gutter-phone, 16px) * 3 + var(--mdc-layout-grid-margin-phone, 16px) * 2); } }\n .mdc-layout-grid--align-left {\n margin-right: auto;\n margin-left: 0; }\n .mdc-layout-grid--align-right {\n margin-right: 0;\n margin-left: auto; }\n .mdc-line-ripple {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n -webkit-transform: scaleX(0);\n transform: scaleX(0);\n transition: opacity 180ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 180ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1), opacity 180ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1), opacity 180ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 180ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n z-index: 2; }\n .mdc-line-ripple--active {\n -webkit-transform: scaleX(1);\n transform: scaleX(1);\n opacity: 1; }\n .mdc-line-ripple--deactivating {\n opacity: 0; }\n @-webkit-keyframes primary-indeterminate-translate {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 20% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 59.15% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(83.67142%);\n transform: translateX(83.67142%); }\n 100% {\n -webkit-transform: translateX(200.611057%);\n transform: translateX(200.611057%); } }\n @keyframes primary-indeterminate-translate {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 20% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 59.15% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(83.67142%);\n transform: translateX(83.67142%); }\n 100% {\n -webkit-transform: translateX(200.611057%);\n transform: translateX(200.611057%); } }\n @-webkit-keyframes primary-indeterminate-scale {\n 0% {\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); }\n 36.65% {\n -webkit-animation-timing-function: cubic-bezier(0.334731, 0.12482, 0.785844, 1);\n animation-timing-function: cubic-bezier(0.334731, 0.12482, 0.785844, 1);\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); }\n 69.15% {\n -webkit-animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\n animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\n -webkit-transform: scaleX(0.661479);\n transform: scaleX(0.661479); }\n 100% {\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); } }\n @keyframes primary-indeterminate-scale {\n 0% {\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); }\n 36.65% {\n -webkit-animation-timing-function: cubic-bezier(0.334731, 0.12482, 0.785844, 1);\n animation-timing-function: cubic-bezier(0.334731, 0.12482, 0.785844, 1);\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); }\n 69.15% {\n -webkit-animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\n animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\n -webkit-transform: scaleX(0.661479);\n transform: scaleX(0.661479); }\n 100% {\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); } }\n @-webkit-keyframes secondary-indeterminate-translate {\n 0% {\n -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 25% {\n -webkit-animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n -webkit-transform: translateX(37.651913%);\n transform: translateX(37.651913%); }\n 48.35% {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n -webkit-transform: translateX(84.386165%);\n transform: translateX(84.386165%); }\n 100% {\n -webkit-transform: translateX(160.277782%);\n transform: translateX(160.277782%); } }\n @keyframes secondary-indeterminate-translate {\n 0% {\n -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 25% {\n -webkit-animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n -webkit-transform: translateX(37.651913%);\n transform: translateX(37.651913%); }\n 48.35% {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n -webkit-transform: translateX(84.386165%);\n transform: translateX(84.386165%); }\n 100% {\n -webkit-transform: translateX(160.277782%);\n transform: translateX(160.277782%); } }\n @-webkit-keyframes secondary-indeterminate-scale {\n 0% {\n -webkit-animation-timing-function: cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);\n animation-timing-function: cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); }\n 19.15% {\n -webkit-animation-timing-function: cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);\n animation-timing-function: cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);\n -webkit-transform: scaleX(0.457104);\n transform: scaleX(0.457104); }\n 44.15% {\n -webkit-animation-timing-function: cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);\n animation-timing-function: cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);\n -webkit-transform: scaleX(0.72796);\n transform: scaleX(0.72796); }\n 100% {\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); } }\n @keyframes secondary-indeterminate-scale {\n 0% {\n -webkit-animation-timing-function: cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);\n animation-timing-function: cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); }\n 19.15% {\n -webkit-animation-timing-function: cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);\n animation-timing-function: cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);\n -webkit-transform: scaleX(0.457104);\n transform: scaleX(0.457104); }\n 44.15% {\n -webkit-animation-timing-function: cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);\n animation-timing-function: cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);\n -webkit-transform: scaleX(0.72796);\n transform: scaleX(0.72796); }\n 100% {\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); } }\n @-webkit-keyframes buffering {\n to {\n -webkit-transform: translateX(-10px);\n transform: translateX(-10px); } }\n @keyframes buffering {\n to {\n -webkit-transform: translateX(-10px);\n transform: translateX(-10px); } }\n @-webkit-keyframes primary-indeterminate-translate-reverse {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 20% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 59.15% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(-83.67142%);\n transform: translateX(-83.67142%); }\n 100% {\n -webkit-transform: translateX(-200.611057%);\n transform: translateX(-200.611057%); } }\n @keyframes primary-indeterminate-translate-reverse {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 20% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 59.15% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(-83.67142%);\n transform: translateX(-83.67142%); }\n 100% {\n -webkit-transform: translateX(-200.611057%);\n transform: translateX(-200.611057%); } }\n @-webkit-keyframes secondary-indeterminate-translate-reverse {\n 0% {\n -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 25% {\n -webkit-animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n -webkit-transform: translateX(-37.651913%);\n transform: translateX(-37.651913%); }\n 48.35% {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n -webkit-transform: translateX(-84.386165%);\n transform: translateX(-84.386165%); }\n 100% {\n -webkit-transform: translateX(-160.277782%);\n transform: translateX(-160.277782%); } }\n @keyframes secondary-indeterminate-translate-reverse {\n 0% {\n -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 25% {\n -webkit-animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n -webkit-transform: translateX(-37.651913%);\n transform: translateX(-37.651913%); }\n 48.35% {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n -webkit-transform: translateX(-84.386165%);\n transform: translateX(-84.386165%); }\n 100% {\n -webkit-transform: translateX(-160.277782%);\n transform: translateX(-160.277782%); } }\n @-webkit-keyframes buffering-reverse {\n to {\n -webkit-transform: translateX(10px);\n transform: translateX(10px); } }\n @keyframes buffering-reverse {\n to {\n -webkit-transform: translateX(10px);\n transform: translateX(10px); } }\n .mdc-linear-progress {\n position: relative;\n width: 100%;\n height: 4px;\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n transition: opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n overflow: hidden; }\n .mdc-linear-progress__bar {\n position: absolute;\n width: 100%;\n height: 100%;\n -webkit-animation: none;\n animation: none;\n -webkit-transform-origin: top left;\n transform-origin: top left;\n transition: -webkit-transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-linear-progress__bar-inner {\n display: inline-block;\n position: absolute;\n width: 100%;\n height: 100%;\n -webkit-animation: none;\n animation: none; }\n .mdc-linear-progress__buffering-dots {\n position: absolute;\n width: 100%;\n height: 100%;\n -webkit-animation: buffering 250ms infinite linear;\n animation: buffering 250ms infinite linear;\n background-repeat: repeat-x;\n background-size: 10px 4px; }\n .mdc-linear-progress__buffer {\n position: absolute;\n width: 100%;\n height: 100%;\n -webkit-transform-origin: top left;\n transform-origin: top left;\n transition: -webkit-transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-linear-progress__primary-bar {\n -webkit-transform: scaleX(0);\n transform: scaleX(0); }\n .mdc-linear-progress__secondary-bar {\n visibility: hidden; }\n .mdc-linear-progress--indeterminate .mdc-linear-progress__bar {\n transition: none; }\n .mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar {\n left: -145.166611%;\n -webkit-animation: primary-indeterminate-translate 2s infinite linear;\n animation: primary-indeterminate-translate 2s infinite linear; }\n .mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar > .mdc-linear-progress__bar-inner {\n -webkit-animation: primary-indeterminate-scale 2s infinite linear;\n animation: primary-indeterminate-scale 2s infinite linear; }\n .mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar {\n left: -54.888891%;\n -webkit-animation: secondary-indeterminate-translate 2s infinite linear;\n animation: secondary-indeterminate-translate 2s infinite linear;\n visibility: visible; }\n .mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar > .mdc-linear-progress__bar-inner {\n -webkit-animation: secondary-indeterminate-scale 2s infinite linear;\n animation: secondary-indeterminate-scale 2s infinite linear; }\n .mdc-linear-progress--reversed .mdc-linear-progress__bar,\n .mdc-linear-progress--reversed .mdc-linear-progress__buffer {\n right: 0;\n -webkit-transform-origin: center right;\n transform-origin: center right; }\n .mdc-linear-progress--reversed .mdc-linear-progress__primary-bar {\n -webkit-animation-name: primary-indeterminate-translate-reverse;\n animation-name: primary-indeterminate-translate-reverse; }\n .mdc-linear-progress--reversed .mdc-linear-progress__secondary-bar {\n -webkit-animation-name: secondary-indeterminate-translate-reverse;\n animation-name: secondary-indeterminate-translate-reverse; }\n .mdc-linear-progress--reversed .mdc-linear-progress__buffering-dots {\n -webkit-animation: buffering-reverse 250ms infinite linear;\n animation: buffering-reverse 250ms infinite linear; }\n .mdc-linear-progress--closed {\n opacity: 0; }\n .mdc-linear-progress__bar-inner {\n background-color: #6200ee;\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-linear-progress__buffering-dots {\n background-image: url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='none slice'%3E%3Ccircle cx='1' cy='1' r='1' fill='%23e6e6e6'/%3E%3C/svg%3E\"); }\n .mdc-linear-progress__buffer {\n background-color: #e6e6e6; }\n .mdc-linear-progress--indeterminate.mdc-linear-progress--reversed .mdc-linear-progress__primary-bar {\n right: -145.166611%;\n left: auto; }\n .mdc-linear-progress--indeterminate.mdc-linear-progress--reversed .mdc-linear-progress__secondary-bar {\n right: -54.888891%;\n left: auto; }\n .mdc-list {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.75rem;\n font-weight: 400;\n letter-spacing: 0.009375em;\n text-decoration: inherit;\n text-transform: inherit;\n /* @alternate */\n line-height: 1.5rem;\n margin: 0;\n padding: 8px 0;\n list-style-type: none;\n color: rgba(0, 0, 0, 0.87);\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87)); }\n .mdc-list-item__secondary-text {\n color: rgba(0, 0, 0, 0.54);\n /* @alternate */\n color: var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54)); }\n .mdc-list-item__graphic {\n background-color: transparent; }\n .mdc-list-item__graphic {\n color: rgba(0, 0, 0, 0.38);\n /* @alternate */\n color: var(--mdc-theme-text-icon-on-background, rgba(0, 0, 0, 0.38)); }\n .mdc-list-item__meta {\n color: rgba(0, 0, 0, 0.38);\n /* @alternate */\n color: var(--mdc-theme-text-hint-on-background, rgba(0, 0, 0, 0.38)); }\n .mdc-list-group__subheader {\n color: rgba(0, 0, 0, 0.87);\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87)); }\n .mdc-list--dense {\n padding-top: 4px;\n padding-bottom: 4px;\n font-size: .812rem; }\n .mdc-list-item {\n display: flex;\n position: relative;\n align-items: center;\n justify-content: flex-start;\n height: 48px;\n padding: 0 16px;\n overflow: hidden; }\n .mdc-list-item:focus {\n outline: none; }\n .mdc-list-item--selected,\n.mdc-list-item--activated {\n color: #6200ee;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee); }\n .mdc-list-item--selected .mdc-list-item__graphic,\n .mdc-list-item--activated .mdc-list-item__graphic {\n color: #6200ee;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee); }\n .mdc-list-item--disabled {\n color: rgba(0, 0, 0, 0.38);\n /* @alternate */\n color: var(--mdc-theme-text-disabled-on-background, rgba(0, 0, 0, 0.38)); }\n .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 32px;\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n fill: currentColor; }\n .mdc-list-item[dir=\"rtl\"] .mdc-list-item__graphic,\n [dir=\"rtl\"] .mdc-list-item .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 32px;\n /* @noflip */\n margin-right: 0; }\n .mdc-list .mdc-list-item__graphic {\n display: inline-flex; }\n .mdc-list-item__meta {\n /* @noflip */\n margin-left: auto;\n /* @noflip */\n margin-right: 0; }\n .mdc-list-item[dir=\"rtl\"] .mdc-list-item__meta,\n [dir=\"rtl\"] .mdc-list-item .mdc-list-item__meta {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: auto; }\n .mdc-list-item__text {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden; }\n .mdc-list-item__text[for] {\n pointer-events: none; }\n .mdc-list-item__primary-text {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n margin-bottom: -20px;\n display: block; }\n .mdc-list-item__primary-text::before {\n display: inline-block;\n width: 0;\n height: 32px;\n content: \"\";\n vertical-align: 0; }\n .mdc-list-item__primary-text::after {\n display: inline-block;\n width: 0;\n height: 20px;\n content: \"\";\n vertical-align: -20px; }\n .mdc-list--dense .mdc-list-item__primary-text {\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n margin-bottom: -20px; }\n .mdc-list--dense .mdc-list-item__primary-text::before {\n display: inline-block;\n width: 0;\n height: 24px;\n content: \"\";\n vertical-align: 0; }\n .mdc-list--dense .mdc-list-item__primary-text::after {\n display: inline-block;\n width: 0;\n height: 20px;\n content: \"\";\n vertical-align: -20px; }\n .mdc-list-item__secondary-text {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n display: block; }\n .mdc-list-item__secondary-text::before {\n display: inline-block;\n width: 0;\n height: 20px;\n content: \"\";\n vertical-align: 0; }\n .mdc-list--dense .mdc-list-item__secondary-text {\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n font-size: inherit; }\n .mdc-list--dense .mdc-list-item__secondary-text::before {\n display: inline-block;\n width: 0;\n height: 20px;\n content: \"\";\n vertical-align: 0; }\n .mdc-list--dense .mdc-list-item {\n height: 40px; }\n .mdc-list--dense .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 36px;\n width: 20px;\n height: 20px; }\n .mdc-list-item[dir=\"rtl\"] .mdc-list--dense .mdc-list-item__graphic,\n [dir=\"rtl\"] .mdc-list-item .mdc-list--dense .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 36px;\n /* @noflip */\n margin-right: 0; }\n .mdc-list--avatar-list .mdc-list-item {\n height: 56px; }\n .mdc-list--avatar-list .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 16px;\n width: 40px;\n height: 40px;\n border-radius: 50%; }\n .mdc-list-item[dir=\"rtl\"] .mdc-list--avatar-list .mdc-list-item__graphic,\n [dir=\"rtl\"] .mdc-list-item .mdc-list--avatar-list .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 16px;\n /* @noflip */\n margin-right: 0; }\n .mdc-list--two-line .mdc-list-item__text {\n align-self: flex-start; }\n .mdc-list--two-line .mdc-list-item {\n height: 72px; }\n .mdc-list--two-line.mdc-list--dense .mdc-list-item,\n.mdc-list--avatar-list.mdc-list--dense .mdc-list-item {\n height: 60px; }\n .mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 20px;\n width: 36px;\n height: 36px; }\n .mdc-list-item[dir=\"rtl\"] .mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic,\n [dir=\"rtl\"] .mdc-list-item .mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 20px;\n /* @noflip */\n margin-right: 0; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item {\n cursor: pointer; }\n a.mdc-list-item {\n color: inherit;\n text-decoration: none; }\n .mdc-list-divider {\n height: 0;\n margin: 0;\n border: none;\n border-bottom-width: 1px;\n border-bottom-style: solid; }\n .mdc-list-divider {\n border-bottom-color: rgba(0, 0, 0, 0.12); }\n .mdc-list-divider--padded {\n margin: 0 16px; }\n .mdc-list-divider--inset {\n /* @noflip */\n margin-left: 72px;\n /* @noflip */\n margin-right: 0;\n width: calc(100% - 72px); }\n .mdc-list-group[dir=\"rtl\"] .mdc-list-divider--inset,\n [dir=\"rtl\"] .mdc-list-group .mdc-list-divider--inset {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 72px; }\n .mdc-list-divider--inset.mdc-list-divider--padded {\n width: calc(100% - 72px - 16px); }\n .mdc-list-group .mdc-list {\n padding: 0; }\n .mdc-list-group__subheader {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.75rem;\n font-weight: 400;\n letter-spacing: 0.009375em;\n text-decoration: inherit;\n text-transform: inherit;\n margin: 0.75rem 16px; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {\n background-color: #000; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:hover::before {\n opacity: 0.04; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded):focus::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::before {\n opacity: 0.12; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::after {\n background-color: #6200ee; }\n @supports not (-ms-ime-align: auto) {\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::after {\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); } }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:hover::before {\n opacity: 0.16; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded):focus::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::before {\n opacity: 0.08; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::after {\n background-color: #6200ee; }\n @supports not (-ms-ime-align: auto) {\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::after {\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); } }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:hover::before {\n opacity: 0.12; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded):focus::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.2; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.2; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.2; }\n .mdc-menu {\n min-width: 112px; }\n .mdc-menu .mdc-list-item__meta {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-menu .mdc-list-item__graphic {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-menu .mdc-list {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-menu .mdc-list-divider {\n margin: 8px 0; }\n .mdc-menu .mdc-list-item {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .mdc-menu .mdc-list-item--disabled {\n cursor: auto; }\n .mdc-menu a.mdc-list-item .mdc-list-item__text,\n .mdc-menu a.mdc-list-item .mdc-list-item__graphic {\n pointer-events: none; }\n .mdc-menu__selection-group {\n padding: 0;\n fill: currentColor; }\n .mdc-menu__selection-group .mdc-list-item {\n /* @noflip */\n padding-left: 56px;\n /* @noflip */\n padding-right: 16px; }\n [dir=\"rtl\"] .mdc-menu__selection-group .mdc-list-item, .mdc-menu__selection-group .mdc-list-item[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 56px; }\n .mdc-menu__selection-group .mdc-menu__selection-group-icon {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial;\n display: none;\n position: absolute; }\n [dir=\"rtl\"] .mdc-menu__selection-group .mdc-menu__selection-group-icon, .mdc-menu__selection-group .mdc-menu__selection-group-icon[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px; }\n .mdc-menu-item--selected .mdc-menu__selection-group-icon {\n display: inline; }\n .mdc-menu-surface {\n display: none;\n position: absolute;\n box-sizing: border-box;\n max-width: calc(100vw - 32px);\n max-height: calc(100vh - 32px);\n margin: 0;\n padding: 0;\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n opacity: 0;\n overflow: auto;\n will-change: transform, opacity;\n z-index: 8;\n transition: opacity 0.03s linear, -webkit-transform 0.12s cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 0.03s linear, transform 0.12s cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 0.03s linear, transform 0.12s cubic-bezier(0, 0, 0.2, 1), -webkit-transform 0.12s cubic-bezier(0, 0, 0.2, 1);\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n background-color: #fff;\n /* @alternate */\n background-color: var(--mdc-theme-surface, #fff);\n color: #000;\n /* @alternate */\n color: var(--mdc-theme-on-surface, #000);\n border-radius: 4px;\n /* @noflip */\n transform-origin-left: top left;\n /* @noflip */\n transform-origin-right: top right; }\n .mdc-menu-surface:focus {\n outline: none; }\n .mdc-menu-surface--open {\n display: inline-block;\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1; }\n .mdc-menu-surface--animating-open {\n display: inline-block;\n -webkit-transform: scale(0.8);\n transform: scale(0.8);\n opacity: 0; }\n .mdc-menu-surface--animating-closed {\n display: inline-block;\n opacity: 0;\n transition: opacity 0.075s linear; }\n [dir=\"rtl\"] .mdc-menu-surface, .mdc-menu-surface[dir=\"rtl\"] {\n /* @noflip */\n transform-origin-left: top right;\n /* @noflip */\n transform-origin-right: top left; }\n .mdc-menu-surface--anchor {\n position: relative;\n overflow: visible; }\n .mdc-menu-surface--fixed {\n position: fixed; }\n .mdc-notched-outline {\n display: flex;\n position: absolute;\n right: 0;\n left: 0;\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n height: 100%;\n /* @noflip */\n text-align: left;\n pointer-events: none; }\n [dir=\"rtl\"] .mdc-notched-outline, .mdc-notched-outline[dir=\"rtl\"] {\n /* @noflip */\n text-align: right; }\n .mdc-notched-outline__leading, .mdc-notched-outline__notch, .mdc-notched-outline__trailing {\n box-sizing: border-box;\n height: 100%;\n transition: border 150ms cubic-bezier(0.4, 0, 0.2, 1);\n border-top: 1px solid;\n border-bottom: 1px solid;\n pointer-events: none; }\n .mdc-notched-outline__leading {\n /* @noflip */\n border-left: 1px solid;\n /* @noflip */\n border-right: none;\n width: 12px; }\n [dir=\"rtl\"] .mdc-notched-outline__leading, .mdc-notched-outline__leading[dir=\"rtl\"] {\n /* @noflip */\n border-left: none;\n /* @noflip */\n border-right: 1px solid; }\n .mdc-notched-outline__trailing {\n /* @noflip */\n border-left: none;\n /* @noflip */\n border-right: 1px solid;\n flex-grow: 1; }\n [dir=\"rtl\"] .mdc-notched-outline__trailing, .mdc-notched-outline__trailing[dir=\"rtl\"] {\n /* @noflip */\n border-left: 1px solid;\n /* @noflip */\n border-right: none; }\n .mdc-notched-outline__notch {\n flex: 0 0 auto;\n width: auto;\n max-width: calc(100% - 12px * 2); }\n .mdc-notched-outline .mdc-floating-label {\n display: inline-block;\n position: relative;\n top: 17px;\n bottom: auto;\n max-width: 100%; }\n .mdc-notched-outline .mdc-floating-label--float-above {\n text-overflow: clip; }\n .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n max-width: calc(100% / .75); }\n .mdc-notched-outline--notched .mdc-notched-outline__notch {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 8px;\n border-top: none; }\n [dir=\"rtl\"] .mdc-notched-outline--notched .mdc-notched-outline__notch, .mdc-notched-outline--notched .mdc-notched-outline__notch[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 8px;\n /* @noflip */\n padding-right: 0; }\n .mdc-notched-outline--no-label .mdc-notched-outline__notch {\n padding: 0; }\n .mdc-radio {\n display: inline-block;\n position: relative;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 40px;\n height: 40px;\n padding: 10px;\n cursor: pointer;\n /* @alternate */\n will-change: opacity, transform, border-color, color; }\n .mdc-radio .mdc-radio__native-control:enabled:not(:checked) + .mdc-radio__background .mdc-radio__outer-circle {\n border-color: rgba(0, 0, 0, 0.54); }\n .mdc-radio .mdc-radio__native-control:enabled:checked + .mdc-radio__background .mdc-radio__outer-circle {\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786); }\n .mdc-radio .mdc-radio__native-control:enabled + .mdc-radio__background .mdc-radio__inner-circle {\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786); }\n .mdc-radio .mdc-radio__background::before {\n background-color: #018786; }\n @supports not (-ms-ime-align: auto) {\n .mdc-radio .mdc-radio__background::before {\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n .mdc-radio__background {\n display: inline-block;\n position: absolute;\n left: 10px;\n box-sizing: border-box;\n width: 50%;\n height: 50%; }\n .mdc-radio__background::before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n -webkit-transform: scale(0, 0);\n transform: scale(0, 0);\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\";\n transition: opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-radio__outer-circle {\n position: absolute;\n top: 0;\n left: 0;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n border-width: 2px;\n border-style: solid;\n border-radius: 50%;\n transition: border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-radio__inner-circle {\n position: absolute;\n top: 0;\n left: 0;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n -webkit-transform: scale(0, 0);\n transform: scale(0, 0);\n border-width: 10px;\n border-style: solid;\n border-radius: 50%;\n transition: border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-radio__native-control {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n opacity: 0;\n cursor: inherit;\n z-index: 1; }\n .mdc-radio__native-control:checked + .mdc-radio__background,\n.mdc-radio__native-control:disabled + .mdc-radio__background {\n transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-radio__native-control:checked + .mdc-radio__background .mdc-radio__outer-circle,\n .mdc-radio__native-control:disabled + .mdc-radio__background .mdc-radio__outer-circle {\n transition: border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-radio__native-control:checked + .mdc-radio__background .mdc-radio__inner-circle,\n .mdc-radio__native-control:disabled + .mdc-radio__background .mdc-radio__inner-circle {\n transition: border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-radio--disabled {\n cursor: default;\n pointer-events: none; }\n .mdc-radio__native-control:checked + .mdc-radio__background .mdc-radio__inner-circle {\n -webkit-transform: scale(0.5);\n transform: scale(0.5);\n transition: border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-radio__native-control:disabled + .mdc-radio__background,\n[aria-disabled=\"true\"] .mdc-radio__native-control + .mdc-radio__background {\n cursor: default; }\n .mdc-radio__native-control:disabled + .mdc-radio__background .mdc-radio__outer-circle,\n [aria-disabled=\"true\"] .mdc-radio__native-control + .mdc-radio__background .mdc-radio__outer-circle {\n border-color: rgba(0, 0, 0, 0.26); }\n .mdc-radio__native-control:disabled + .mdc-radio__background .mdc-radio__inner-circle,\n [aria-disabled=\"true\"] .mdc-radio__native-control + .mdc-radio__background .mdc-radio__inner-circle {\n border-color: rgba(0, 0, 0, 0.26); }\n .mdc-radio__native-control:focus + .mdc-radio__background::before {\n -webkit-transform: scale(2, 2);\n transform: scale(2, 2);\n opacity: 0.12;\n transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-radio {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n .mdc-radio::before, .mdc-radio::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-radio::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-radio.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-radio.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-radio.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-radio.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-radio.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-radio::before, .mdc-radio::after {\n top: calc(50% - 50%);\n /* @noflip */\n left: calc(50% - 50%);\n width: 100%;\n height: 100%; }\n .mdc-radio.mdc-ripple-upgraded::before, .mdc-radio.mdc-ripple-upgraded::after {\n top: var(--mdc-ripple-top, calc(50% - 50%));\n /* @noflip */\n left: var(--mdc-ripple-left, calc(50% - 50%));\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-radio.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-radio::before, .mdc-radio::after {\n background-color: #018786; }\n @supports not (-ms-ime-align: auto) {\n .mdc-radio::before, .mdc-radio::after {\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n .mdc-radio:hover::before {\n opacity: 0.04; }\n .mdc-radio:not(.mdc-ripple-upgraded):focus::before, .mdc-radio.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-radio:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-radio:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-radio.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__background::before {\n content: none; }\n .mdc-ripple-surface {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity;\n position: relative;\n outline: none;\n overflow: hidden; }\n .mdc-ripple-surface::before, .mdc-ripple-surface::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-ripple-surface::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-ripple-surface.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-ripple-surface.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-ripple-surface.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-ripple-surface.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-ripple-surface.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-ripple-surface::before, .mdc-ripple-surface::after {\n background-color: #000; }\n .mdc-ripple-surface:hover::before {\n opacity: 0.04; }\n .mdc-ripple-surface:not(.mdc-ripple-upgraded):focus::before, .mdc-ripple-surface.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-ripple-surface:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-ripple-surface:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-ripple-surface.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-ripple-surface::before, .mdc-ripple-surface::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-ripple-surface.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-ripple-surface[data-mdc-ripple-is-unbounded] {\n overflow: visible; }\n .mdc-ripple-surface[data-mdc-ripple-is-unbounded]::before, .mdc-ripple-surface[data-mdc-ripple-is-unbounded]::after {\n top: calc(50% - 50%);\n /* @noflip */\n left: calc(50% - 50%);\n width: 100%;\n height: 100%; }\n .mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::before, .mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after {\n top: var(--mdc-ripple-top, calc(50% - 50%));\n /* @noflip */\n left: var(--mdc-ripple-left, calc(50% - 50%));\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-ripple-surface--primary::before, .mdc-ripple-surface--primary::after {\n background-color: #6200ee; }\n @supports not (-ms-ime-align: auto) {\n .mdc-ripple-surface--primary::before, .mdc-ripple-surface--primary::after {\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); } }\n .mdc-ripple-surface--primary:hover::before {\n opacity: 0.04; }\n .mdc-ripple-surface--primary:not(.mdc-ripple-upgraded):focus::before, .mdc-ripple-surface--primary.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-ripple-surface--primary:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-ripple-surface--primary:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-ripple-surface--primary.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-ripple-surface--accent::before, .mdc-ripple-surface--accent::after {\n background-color: #018786; }\n @supports not (-ms-ime-align: auto) {\n .mdc-ripple-surface--accent::before, .mdc-ripple-surface--accent::after {\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n .mdc-ripple-surface--accent:hover::before {\n opacity: 0.04; }\n .mdc-ripple-surface--accent:not(.mdc-ripple-upgraded):focus::before, .mdc-ripple-surface--accent.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-ripple-surface--accent:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-ripple-surface--accent:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-ripple-surface--accent.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n @-webkit-keyframes mdc-select-float-native-control {\n 0% {\n -webkit-transform: translateY(8px);\n transform: translateY(8px);\n opacity: 0; }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1; } }\n @keyframes mdc-select-float-native-control {\n 0% {\n -webkit-transform: translateY(8px);\n transform: translateY(8px);\n opacity: 0; }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1; } }\n .mdc-select--with-leading-icon:not(.mdc-select--disabled) .mdc-select__icon {\n color: #000;\n /* @alternate */\n color: var(--mdc-theme-on-surface, #000); }\n .mdc-select--with-leading-icon .mdc-select__icon {\n display: inline-block;\n position: absolute;\n bottom: 16px;\n box-sizing: border-box;\n width: 24px;\n height: 24px;\n border: none;\n background-color: transparent;\n fill: currentColor;\n opacity: 0.54;\n text-decoration: none;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .mdc-select__icon:not([tabindex]),\n.mdc-select__icon[tabindex=\"-1\"] {\n cursor: default;\n pointer-events: none; }\n .mdc-select-helper-text {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.75rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.03333333em;\n text-decoration: inherit;\n text-transform: inherit;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n margin: 0;\n transition: opacity 180ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n will-change: opacity; }\n .mdc-select-helper-text::before {\n display: inline-block;\n width: 0;\n height: 16px;\n content: \"\";\n vertical-align: 0; }\n .mdc-select-helper-text--persistent {\n transition: none;\n opacity: 1;\n will-change: initial; }\n .mdc-select {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity;\n display: inline-flex;\n position: relative;\n box-sizing: border-box;\n height: 56px;\n overflow: hidden;\n /* @alternate */\n will-change: opacity, transform, color; }\n .mdc-select:not(.mdc-select--disabled) {\n background-color: whitesmoke; }\n .mdc-select::before, .mdc-select::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-select::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-select.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-select.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-select.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-select.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-select.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-select::before, .mdc-select::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-select.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-select::before, .mdc-select::after {\n background-color: rgba(0, 0, 0, 0.87); }\n .mdc-select:hover::before {\n opacity: 0.04; }\n .mdc-select:not(.mdc-ripple-upgraded):focus::before, .mdc-select.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-select:not(.mdc-select--disabled) .mdc-select__native-control,\n .mdc-select:not(.mdc-select--disabled) .mdc-select__selected-text {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-select:not(.mdc-select--disabled) .mdc-floating-label {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-select:not(.mdc-select--disabled) .mdc-select__native-control,\n .mdc-select:not(.mdc-select--disabled) .mdc-select__selected-text {\n border-bottom-color: rgba(0, 0, 0, 0.42); }\n .mdc-select:not(.mdc-select--disabled) + .mdc-select-helper-text {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-select, .mdc-select__native-control {\n border-radius: 4px 4px 0 0; }\n .mdc-select:not(.mdc-select--disabled).mdc-select--focused .mdc-line-ripple {\n background-color: #6200ee;\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-select:not(.mdc-select--disabled).mdc-select--focused .mdc-floating-label {\n color: rgba(98, 0, 238, 0.87); }\n .mdc-select:not(.mdc-select--disabled) .mdc-select__native-control:hover {\n border-bottom-color: rgba(0, 0, 0, 0.87); }\n .mdc-select .mdc-floating-label--float-above {\n -webkit-transform: translateY(-70%) scale(0.75);\n transform: translateY(-70%) scale(0.75); }\n .mdc-select .mdc-floating-label {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial;\n top: 21px;\n pointer-events: none; }\n [dir=\"rtl\"] .mdc-select .mdc-floating-label, .mdc-select .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px; }\n .mdc-select.mdc-select--with-leading-icon .mdc-floating-label {\n /* @noflip */\n left: 48px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-select.mdc-select--with-leading-icon .mdc-floating-label, .mdc-select.mdc-select--with-leading-icon .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 48px; }\n .mdc-select.mdc-select--outlined .mdc-floating-label {\n /* @noflip */\n left: 4px;\n /* @noflip */\n right: initial;\n top: 17px; }\n [dir=\"rtl\"] .mdc-select.mdc-select--outlined .mdc-floating-label, .mdc-select.mdc-select--outlined .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 4px; }\n .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label {\n /* @noflip */\n left: 36px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label, .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 36px; }\n .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label--float-above {\n /* @noflip */\n left: 36px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label--float-above, .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label--float-above[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 36px; }\n .mdc-select__dropdown-icon {\n background: url(\"data:image/svg+xml,%3Csvg%20width%3D%2210px%22%20height%3D%225px%22%20viewBox%3D%227%2010%2010%205%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Shape%22%20stroke%3D%22none%22%20fill%3D%22%23000%22%20fill-rule%3D%22evenodd%22%20opacity%3D%220.54%22%20points%3D%227%2010%2012%2015%2017%2010%22%3E%3C%2Fpolygon%3E%0A%3C%2Fsvg%3E\") no-repeat center;\n /* @noflip */\n left: auto;\n /* @noflip */\n right: 8px;\n position: absolute;\n bottom: 16px;\n width: 24px;\n height: 24px;\n transition: -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n pointer-events: none; }\n [dir=\"rtl\"] .mdc-select__dropdown-icon, .mdc-select__dropdown-icon[dir=\"rtl\"] {\n /* @noflip */\n left: 8px;\n /* @noflip */\n right: auto; }\n .mdc-select--focused .mdc-select__dropdown-icon {\n background: url(\"data:image/svg+xml,%3Csvg%20width%3D%2210px%22%20height%3D%225px%22%20viewBox%3D%227%2010%2010%205%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Shape%22%20stroke%3D%22none%22%20fill%3D%22%236200ee%22%20fill-rule%3D%22evenodd%22%20opacity%3D%221%22%20points%3D%227%2010%2012%2015%2017%2010%22%3E%3C%2Fpolygon%3E%0A%3C%2Fsvg%3E\") no-repeat center;\n -webkit-transform: rotate(180deg) translateY(-5px);\n transform: rotate(180deg) translateY(-5px);\n transition: -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-select__native-control {\n padding-top: 20px; }\n .mdc-select.mdc-select--focused .mdc-line-ripple::after {\n -webkit-transform: scale(1, 2);\n transform: scale(1, 2);\n opacity: 1; }\n .mdc-select + .mdc-select-helper-text {\n margin-right: 12px;\n margin-left: 12px; }\n .mdc-select--outlined + .mdc-select-helper-text {\n margin-right: 16px;\n margin-left: 16px; }\n .mdc-select--focused + .mdc-select-helper-text:not(.mdc-select-helper-text--validation-msg) {\n opacity: 1; }\n .mdc-select__selected-text {\n min-width: 200px;\n padding-top: 22px; }\n .mdc-select__native-control,\n.mdc-select__selected-text {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 52px;\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.75rem;\n font-weight: 400;\n letter-spacing: 0.009375em;\n text-decoration: inherit;\n text-transform: inherit;\n box-sizing: border-box;\n width: 100%;\n height: 56px;\n padding-top: 20px;\n padding-bottom: 4px;\n border: none;\n border-bottom: 1px solid;\n outline: none;\n background-color: transparent;\n color: inherit;\n white-space: nowrap;\n cursor: pointer;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none; }\n [dir=\"rtl\"] .mdc-select__native-control, .mdc-select__native-control[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-select__selected-text,\n .mdc-select__selected-text[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 52px;\n /* @noflip */\n padding-right: 16px; }\n .mdc-select__native-control::-ms-expand,\n .mdc-select__selected-text::-ms-expand {\n display: none; }\n .mdc-select__native-control::-ms-value,\n .mdc-select__selected-text::-ms-value {\n background-color: transparent;\n color: inherit; }\n @-moz-document url-prefix(\"\") {\n .mdc-select__native-control,\n .mdc-select__selected-text {\n text-indent: -2px; } }\n .mdc-select--outlined {\n border: none;\n overflow: visible; }\n .mdc-select--outlined:not(.mdc-select--disabled) {\n background-color: transparent; }\n .mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__leading,\n .mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__notch,\n .mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.24); }\n .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,\n .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.87); }\n .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__trailing {\n border-width: 2px; }\n .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: #6200ee;\n /* @alternate */\n border-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-select--outlined .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1; }\n .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__leading {\n /* @noflip */\n border-radius: 4px 0 0 4px; }\n [dir=\"rtl\"] .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__leading, .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 0 4px 4px 0; }\n .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__trailing {\n /* @noflip */\n border-radius: 0 4px 4px 0; }\n [dir=\"rtl\"] .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__trailing, .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 4px 0 0 4px; }\n .mdc-select--outlined .mdc-select__native-control {\n border-radius: 4px; }\n .mdc-select--outlined::before, .mdc-select--outlined::after {\n content: none; }\n .mdc-select--outlined:not(.mdc-select--disabled) {\n background-color: transparent; }\n .mdc-select--outlined .mdc-floating-label--float-above {\n -webkit-transform: translateY(-144%) scale(1);\n transform: translateY(-144%) scale(1); }\n .mdc-select--outlined .mdc-floating-label--float-above {\n font-size: 0.75rem; }\n .mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n -webkit-transform: translateY(-130%) scale(0.75);\n transform: translateY(-130%) scale(0.75); }\n .mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n font-size: 1rem; }\n .mdc-select--outlined .mdc-select__native-control,\n .mdc-select--outlined .mdc-select__selected-text {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 52px;\n display: flex;\n padding-top: 12px;\n padding-bottom: 12px;\n border: none;\n background-color: transparent;\n z-index: 1; }\n [dir=\"rtl\"] .mdc-select--outlined .mdc-select__native-control, .mdc-select--outlined .mdc-select__native-control[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-select--outlined .mdc-select__selected-text,\n .mdc-select--outlined .mdc-select__selected-text[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 52px;\n /* @noflip */\n padding-right: 16px; }\n .mdc-select--outlined .mdc-select__selected-text {\n padding-top: 14px; }\n .mdc-select--outlined .mdc-select__icon {\n z-index: 2; }\n .mdc-select--outlined .mdc-floating-label {\n line-height: 1.15rem;\n pointer-events: auto; }\n .mdc-select--invalid:not(.mdc-select--disabled) .mdc-floating-label {\n color: #b00020;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid:not(.mdc-select--disabled) .mdc-select__native-control,\n.mdc-select--invalid:not(.mdc-select--disabled) .mdc-select__selected-text {\n border-bottom-color: #b00020;\n /* @alternate */\n border-bottom-color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid:not(.mdc-select--disabled).mdc-select--focused .mdc-line-ripple {\n background-color: #b00020;\n /* @alternate */\n background-color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid:not(.mdc-select--disabled).mdc-select--focused .mdc-floating-label {\n color: #b00020; }\n .mdc-select--invalid:not(.mdc-select--disabled).mdc-select--invalid + .mdc-select-helper-text--validation-msg {\n color: #b00020;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid:not(.mdc-select--disabled) .mdc-select__native-control:hover {\n border-bottom-color: #b00020;\n /* @alternate */\n border-bottom-color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__leading,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__notch,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__trailing {\n border-width: 2px; }\n .mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid .mdc-select__dropdown-icon {\n background: url(\"data:image/svg+xml,%3Csvg%20width%3D%2210px%22%20height%3D%225px%22%20viewBox%3D%227%2010%2010%205%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Shape%22%20stroke%3D%22none%22%20fill%3D%22%23b00020%22%20fill-rule%3D%22evenodd%22%20opacity%3D%221%22%20points%3D%227%2010%2012%2015%2017%2010%22%3E%3C%2Fpolygon%3E%0A%3C%2Fsvg%3E\") no-repeat center; }\n .mdc-select--invalid + .mdc-select-helper-text--validation-msg {\n opacity: 1; }\n .mdc-select--required .mdc-floating-label::after {\n content: \"*\"; }\n .mdc-select--disabled {\n background-color: #fafafa;\n cursor: default;\n pointer-events: none; }\n .mdc-select--disabled .mdc-floating-label {\n color: rgba(0, 0, 0, 0.37); }\n .mdc-select--disabled .mdc-select__dropdown-icon {\n background: url(\"data:image/svg+xml,%3Csvg%20width%3D%2210px%22%20height%3D%225px%22%20viewBox%3D%227%2010%2010%205%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Shape%22%20stroke%3D%22none%22%20fill%3D%22%23000%22%20fill-rule%3D%22evenodd%22%20opacity%3D%220.37%22%20points%3D%227%2010%2012%2015%2017%2010%22%3E%3C%2Fpolygon%3E%0A%3C%2Fsvg%3E\") no-repeat center; }\n .mdc-select--disabled .mdc-line-ripple {\n display: none; }\n .mdc-select--disabled .mdc-select__icon {\n color: rgba(0, 0, 0, 0.37); }\n .mdc-select--disabled .mdc-select__native-control,\n .mdc-select--disabled .mdc-select__selected-text {\n color: rgba(0, 0, 0, 0.37);\n border-bottom-style: dotted; }\n .mdc-select--disabled .mdc-select__selected-text {\n pointer-events: none; }\n .mdc-select--disabled.mdc-select--outlined {\n background-color: transparent; }\n .mdc-select--disabled.mdc-select--outlined .mdc-select__native-control,\n .mdc-select--disabled.mdc-select--outlined .mdc-select__selected-text {\n border-bottom-style: none; }\n .mdc-select--disabled.mdc-select--outlined .mdc-notched-outline__leading,\n .mdc-select--disabled.mdc-select--outlined .mdc-notched-outline__notch,\n .mdc-select--disabled.mdc-select--outlined .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.16); }\n .mdc-select--with-leading-icon .mdc-select__icon {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-select--with-leading-icon .mdc-select__icon, .mdc-select--with-leading-icon .mdc-select__icon[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px; }\n .mdc-select--with-leading-icon .mdc-select__native-control,\n.mdc-select--with-leading-icon .mdc-select__selected-text {\n /* @noflip */\n padding-left: 48px;\n /* @noflip */\n padding-right: 32px; }\n [dir=\"rtl\"] .mdc-select--with-leading-icon .mdc-select__native-control, .mdc-select--with-leading-icon .mdc-select__native-control[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-select--with-leading-icon .mdc-select__selected-text,\n .mdc-select--with-leading-icon .mdc-select__selected-text[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 32px;\n /* @noflip */\n padding-right: 48px; }\n .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--float-above {\n -webkit-transform: translateY(-144%) translateX(-32px) scale(1);\n transform: translateY(-144%) translateX(-32px) scale(1); }\n [dir=\"rtl\"] .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--float-above, .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--float-above[dir=\"rtl\"] {\n -webkit-transform: translateY(-144%) translateX(32px) scale(1);\n transform: translateY(-144%) translateX(32px) scale(1); }\n .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--float-above {\n font-size: 0.75rem; }\n .mdc-select--with-leading-icon.mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n.mdc-select--with-leading-icon.mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n -webkit-transform: translateY(-130%) translateX(-32px) scale(0.75);\n transform: translateY(-130%) translateX(-32px) scale(0.75); }\n [dir=\"rtl\"] .mdc-select--with-leading-icon.mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above, .mdc-select--with-leading-icon.mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-select--with-leading-icon.mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-select--with-leading-icon.mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=\"rtl\"] {\n -webkit-transform: translateY(-130%) translateX(32px) scale(0.75);\n transform: translateY(-130%) translateX(32px) scale(0.75); }\n .mdc-select--with-leading-icon.mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n.mdc-select--with-leading-icon.mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n font-size: 1rem; }\n .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-select-outlined-leading-icon 250ms 1;\n animation: mdc-floating-label-shake-float-above-select-outlined-leading-icon 250ms 1; }\n [dir=\"rtl\"] .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--shake, .mdc-select--with-leading-icon.mdc-select--outlined[dir=\"rtl\"] .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-select-outlined-leading-icon-rtl 250ms 1;\n animation: mdc-floating-label-shake-float-above-select-outlined-leading-icon-rtl 250ms 1; }\n .mdc-select--with-leading-icon.mdc-select__menu .mdc-list-item__text {\n /* @noflip */\n padding-left: 32px;\n /* @noflip */\n padding-right: 32px; }\n [dir=\"rtl\"] .mdc-select--with-leading-icon.mdc-select__menu .mdc-list-item__text, .mdc-select--with-leading-icon.mdc-select__menu .mdc-list-item__text[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 32px;\n /* @noflip */\n padding-right: 32px; }\n .mdc-select__menu .mdc-list .mdc-list-item--selected {\n color: #000;\n /* @alternate */\n color: var(--mdc-theme-on-surface, #000); }\n .mdc-select__menu .mdc-list .mdc-list-item--selected::before, .mdc-select__menu .mdc-list .mdc-list-item--selected::after {\n background-color: #000; }\n @supports not (-ms-ime-align: auto) {\n .mdc-select__menu .mdc-list .mdc-list-item--selected::before, .mdc-select__menu .mdc-list .mdc-list-item--selected::after {\n /* @alternate */\n background-color: var(--mdc-theme-on-surface, #000); } }\n .mdc-select__menu .mdc-list .mdc-list-item--selected:hover::before {\n opacity: 0.04; }\n .mdc-select__menu .mdc-list .mdc-list-item--selected:not(.mdc-ripple-upgraded):focus::before, .mdc-select__menu .mdc-list .mdc-list-item--selected.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-select__menu .mdc-list .mdc-list-item--selected:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-select__menu .mdc-list .mdc-list-item--selected:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-select__menu .mdc-list .mdc-list-item--selected.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n @-webkit-keyframes mdc-floating-label-shake-float-above-select-outlined-leading-icon {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 32px)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 32px)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-select-outlined-leading-icon {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 32px)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 32px)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-select-outlined-leading-icon-rtl {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - -32px)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - -32px)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-select-outlined-leading-icon-rtl {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - -32px)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - -32px)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-slider-emphasize {\n 0% {\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out; }\n 50% {\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n -webkit-transform: scale(0.85);\n transform: scale(0.85); }\n 100% {\n -webkit-transform: scale(0.571);\n transform: scale(0.571); } }\n @keyframes mdc-slider-emphasize {\n 0% {\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out; }\n 50% {\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n -webkit-transform: scale(0.85);\n transform: scale(0.85); }\n 100% {\n -webkit-transform: scale(0.571);\n transform: scale(0.571); } }\n .mdc-slider {\n position: relative;\n width: 100%;\n height: 48px;\n cursor: pointer;\n touch-action: pan-x;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__track {\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); }\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__track-container {\n background-color: rgba(1, 135, 134, 0.26); }\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__track-marker::after,\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__track-marker-container::after {\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); }\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__thumb {\n fill: #018786;\n /* @alternate */\n fill: var(--mdc-theme-secondary, #018786);\n stroke: #018786;\n /* @alternate */\n stroke: var(--mdc-theme-secondary, #018786); }\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__focus-ring {\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); }\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__pin {\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); }\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__pin {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .mdc-slider--disabled {\n cursor: auto; }\n .mdc-slider--disabled .mdc-slider__track {\n background-color: #9a9a9a; }\n .mdc-slider--disabled .mdc-slider__track-container {\n background-color: rgba(154, 154, 154, 0.26); }\n .mdc-slider--disabled .mdc-slider__track-marker::after,\n .mdc-slider--disabled .mdc-slider__track-marker-container::after {\n background-color: #9a9a9a; }\n .mdc-slider--disabled .mdc-slider__thumb {\n fill: #9a9a9a;\n stroke: #9a9a9a; }\n .mdc-slider--disabled .mdc-slider__thumb {\n /* @alternate */\n stroke: white;\n stroke: var(--mdc-slider-bg-color-behind-component, white); }\n .mdc-slider:focus {\n outline: none; }\n .mdc-slider__track-container {\n position: absolute;\n top: 50%;\n width: 100%;\n height: 2px;\n overflow: hidden; }\n .mdc-slider__track {\n position: absolute;\n width: 100%;\n height: 100%;\n -webkit-transform-origin: left top;\n transform-origin: left top;\n will-change: transform; }\n .mdc-slider[dir=\"rtl\"] .mdc-slider__track,\n [dir=\"rtl\"] .mdc-slider .mdc-slider__track {\n -webkit-transform-origin: right top;\n transform-origin: right top; }\n .mdc-slider__track-marker-container {\n display: flex;\n margin-right: 0;\n margin-left: -1px;\n visibility: hidden; }\n .mdc-slider[dir=\"rtl\"] .mdc-slider__track-marker-container,\n [dir=\"rtl\"] .mdc-slider .mdc-slider__track-marker-container {\n margin-right: -1px;\n margin-left: 0; }\n .mdc-slider__track-marker-container::after {\n display: block;\n width: 2px;\n height: 2px;\n content: \"\"; }\n .mdc-slider__track-marker {\n flex: 1; }\n .mdc-slider__track-marker::after {\n display: block;\n width: 2px;\n height: 2px;\n content: \"\"; }\n .mdc-slider__track-marker:first-child::after {\n width: 3px; }\n .mdc-slider__thumb-container {\n position: absolute;\n top: 15px;\n left: 0;\n width: 21px;\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n will-change: transform; }\n .mdc-slider__thumb {\n position: absolute;\n top: 0;\n left: 0;\n -webkit-transform: scale(0.571);\n transform: scale(0.571);\n transition: fill 100ms ease-out, stroke 100ms ease-out, -webkit-transform 100ms ease-out;\n transition: transform 100ms ease-out, fill 100ms ease-out, stroke 100ms ease-out;\n transition: transform 100ms ease-out, fill 100ms ease-out, stroke 100ms ease-out, -webkit-transform 100ms ease-out;\n stroke-width: 3.5; }\n .mdc-slider__focus-ring {\n width: 21px;\n height: 21px;\n transition: opacity 266.67ms ease-out, background-color 266.67ms ease-out, -webkit-transform 266.67ms ease-out;\n transition: transform 266.67ms ease-out, opacity 266.67ms ease-out, background-color 266.67ms ease-out;\n transition: transform 266.67ms ease-out, opacity 266.67ms ease-out, background-color 266.67ms ease-out, -webkit-transform 266.67ms ease-out;\n border-radius: 50%;\n opacity: 0; }\n .mdc-slider__pin {\n display: flex;\n position: absolute;\n top: 0;\n left: 0;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n margin-top: -2px;\n margin-left: -2px;\n -webkit-transform: rotate(-45deg) scale(0) translate(0, 0);\n transform: rotate(-45deg) scale(0) translate(0, 0);\n transition: -webkit-transform 100ms ease-out;\n transition: transform 100ms ease-out;\n transition: transform 100ms ease-out, -webkit-transform 100ms ease-out;\n border-radius: 50% 50% 50% 0%;\n z-index: 1; }\n .mdc-slider__pin-value-marker {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg); }\n .mdc-slider--active .mdc-slider__thumb {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1); }\n .mdc-slider--focus .mdc-slider__thumb {\n -webkit-animation: mdc-slider-emphasize 266.67ms linear;\n animation: mdc-slider-emphasize 266.67ms linear; }\n .mdc-slider--focus .mdc-slider__focus-ring {\n -webkit-transform: scale3d(1.55, 1.55, 1.55);\n transform: scale3d(1.55, 1.55, 1.55);\n opacity: .25; }\n .mdc-slider--in-transit .mdc-slider__thumb {\n transition-delay: 140ms; }\n .mdc-slider--in-transit .mdc-slider__thumb-container,\n.mdc-slider--in-transit .mdc-slider__track,\n.mdc-slider:focus:not(.mdc-slider--active) .mdc-slider__thumb-container,\n.mdc-slider:focus:not(.mdc-slider--active) .mdc-slider__track {\n transition: -webkit-transform 80ms ease;\n transition: transform 80ms ease;\n transition: transform 80ms ease, -webkit-transform 80ms ease; }\n .mdc-slider--discrete.mdc-slider--active .mdc-slider__thumb {\n -webkit-transform: scale(calc(12 / 21));\n transform: scale(calc(12 / 21)); }\n .mdc-slider--discrete.mdc-slider--active .mdc-slider__pin {\n -webkit-transform: rotate(-45deg) scale(1) translate(19px, -20px);\n transform: rotate(-45deg) scale(1) translate(19px, -20px); }\n .mdc-slider--discrete.mdc-slider--focus .mdc-slider__thumb {\n -webkit-animation: none;\n animation: none; }\n .mdc-slider--discrete.mdc-slider--display-markers .mdc-slider__track-marker-container {\n visibility: visible; }\n .mdc-snackbar {\n z-index: 8;\n margin: 8px;\n display: none;\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n pointer-events: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }\n .mdc-snackbar__surface {\n background-color: #333333; }\n .mdc-snackbar__label {\n color: rgba(255, 255, 255, 0.87); }\n .mdc-snackbar__surface {\n min-width: 344px; }\n @media (max-width: 480px), (max-width: 344px) {\n .mdc-snackbar__surface {\n min-width: 100%; } }\n .mdc-snackbar__surface {\n max-width: 672px; }\n .mdc-snackbar__surface {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12); }\n .mdc-snackbar__surface {\n border-radius: 4px; }\n .mdc-snackbar--opening,\n.mdc-snackbar--open,\n.mdc-snackbar--closing {\n display: flex; }\n .mdc-snackbar--leading {\n justify-content: flex-start; }\n .mdc-snackbar--stacked .mdc-snackbar__surface {\n flex-direction: column;\n align-items: flex-start; }\n .mdc-snackbar--stacked .mdc-snackbar__actions {\n align-self: flex-end;\n margin-bottom: 8px; }\n .mdc-snackbar__surface {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n box-sizing: border-box;\n -webkit-transform: scale(0.8);\n transform: scale(0.8);\n opacity: 0; }\n .mdc-snackbar--open .mdc-snackbar__surface {\n -webkit-transform: scale(1);\n transform: scale(1);\n transition: opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);\n opacity: 1;\n pointer-events: auto; }\n .mdc-snackbar--closing .mdc-snackbar__surface {\n -webkit-transform: scale(1);\n transform: scale(1);\n transition: opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1); }\n .mdc-snackbar__label {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit;\n flex-grow: 1;\n box-sizing: border-box;\n margin: 0;\n padding: 14px 16px; }\n .mdc-snackbar__label::before {\n display: inline;\n content: attr(data-mdc-snackbar-label-text); }\n .mdc-snackbar__actions {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 8px;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n box-sizing: border-box; }\n [dir=\"rtl\"] .mdc-snackbar__actions, .mdc-snackbar__actions[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: 0; }\n .mdc-snackbar__action:not(:disabled) {\n color: #bb86fc; }\n .mdc-snackbar__action::before, .mdc-snackbar__action::after {\n background-color: #bb86fc; }\n .mdc-snackbar__action:hover::before {\n opacity: 0.08; }\n .mdc-snackbar__action:not(.mdc-ripple-upgraded):focus::before, .mdc-snackbar__action.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-snackbar__action:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-snackbar__action:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-snackbar__action.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .mdc-snackbar__dismiss {\n color: rgba(255, 255, 255, 0.87); }\n .mdc-snackbar__dismiss::before, .mdc-snackbar__dismiss::after {\n background-color: rgba(255, 255, 255, 0.87); }\n .mdc-snackbar__dismiss:hover::before {\n opacity: 0.08; }\n .mdc-snackbar__dismiss:not(.mdc-ripple-upgraded):focus::before, .mdc-snackbar__dismiss.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-snackbar__dismiss:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-snackbar__dismiss:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-snackbar__dismiss.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .mdc-snackbar__dismiss.mdc-snackbar__dismiss {\n width: 36px;\n height: 36px;\n padding: 9px;\n font-size: 18px; }\n .mdc-snackbar__dismiss.mdc-snackbar__dismiss svg,\n .mdc-snackbar__dismiss.mdc-snackbar__dismiss img {\n width: 18px;\n height: 18px; }\n .mdc-snackbar__action + .mdc-snackbar__dismiss {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .mdc-snackbar__action + .mdc-snackbar__dismiss, .mdc-snackbar__action + .mdc-snackbar__dismiss[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 8px; }\n .mdc-switch {\n display: inline-block;\n position: relative;\n outline: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .mdc-switch.mdc-switch--checked .mdc-switch__track {\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786);\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786); }\n .mdc-switch.mdc-switch--checked .mdc-switch__thumb {\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786);\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786); }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__track {\n background-color: #000;\n border-color: #000; }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb {\n background-color: #fff;\n border-color: #fff; }\n .mdc-switch__native-control {\n /* @noflip */\n left: 0;\n /* @noflip */\n right: initial;\n position: absolute;\n top: 0;\n width: 68px;\n height: 48px;\n margin: 0;\n opacity: 0;\n cursor: pointer;\n pointer-events: auto; }\n [dir=\"rtl\"] .mdc-switch__native-control, .mdc-switch__native-control[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 0; }\n .mdc-switch__track {\n box-sizing: border-box;\n width: 32px;\n height: 14px;\n border: 1px solid;\n border-radius: 7px;\n opacity: .38;\n transition: opacity 90ms cubic-bezier(0.4, 0, 0.2, 1), background-color 90ms cubic-bezier(0.4, 0, 0.2, 1), border-color 90ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-switch__thumb-underlay {\n /* @noflip */\n left: -18px;\n /* @noflip */\n right: initial;\n display: flex;\n position: absolute;\n top: -17px;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n transition: background-color 90ms cubic-bezier(0.4, 0, 0.2, 1), border-color 90ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 90ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 90ms cubic-bezier(0.4, 0, 0.2, 1), background-color 90ms cubic-bezier(0.4, 0, 0.2, 1), border-color 90ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 90ms cubic-bezier(0.4, 0, 0.2, 1), background-color 90ms cubic-bezier(0.4, 0, 0.2, 1), border-color 90ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 90ms cubic-bezier(0.4, 0, 0.2, 1); }\n [dir=\"rtl\"] .mdc-switch__thumb-underlay, .mdc-switch__thumb-underlay[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: -18px; }\n .mdc-switch__thumb {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n box-sizing: border-box;\n width: 20px;\n height: 20px;\n border: 10px solid;\n border-radius: 50%;\n pointer-events: none;\n z-index: 1; }\n .mdc-switch--checked .mdc-switch__track {\n opacity: .54; }\n .mdc-switch--checked .mdc-switch__thumb-underlay {\n -webkit-transform: translateX(20px);\n transform: translateX(20px); }\n [dir=\"rtl\"] .mdc-switch--checked .mdc-switch__thumb-underlay, .mdc-switch--checked .mdc-switch__thumb-underlay[dir=\"rtl\"] {\n -webkit-transform: translateX(-20px);\n transform: translateX(-20px); }\n .mdc-switch--checked .mdc-switch__native-control {\n -webkit-transform: translateX(-20px);\n transform: translateX(-20px); }\n [dir=\"rtl\"] .mdc-switch--checked .mdc-switch__native-control, .mdc-switch--checked .mdc-switch__native-control[dir=\"rtl\"] {\n -webkit-transform: translateX(20px);\n transform: translateX(20px); }\n .mdc-switch--disabled {\n opacity: .38;\n pointer-events: none; }\n .mdc-switch--disabled .mdc-switch__thumb {\n border-width: 1px; }\n .mdc-switch--disabled .mdc-switch__native-control {\n cursor: default;\n pointer-events: none; }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay::before, .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay::after {\n background-color: #9e9e9e; }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay:hover::before {\n opacity: 0.08; }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded):focus::before, .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .mdc-switch__thumb-underlay {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n .mdc-switch__thumb-underlay::before, .mdc-switch__thumb-underlay::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-switch__thumb-underlay::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-switch__thumb-underlay::before, .mdc-switch__thumb-underlay::after {\n top: calc(50% - 50%);\n /* @noflip */\n left: calc(50% - 50%);\n width: 100%;\n height: 100%; }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded::before, .mdc-switch__thumb-underlay.mdc-ripple-upgraded::after {\n top: var(--mdc-ripple-top, calc(50% - 50%));\n /* @noflip */\n left: var(--mdc-ripple-left, calc(50% - 50%));\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-switch__thumb-underlay::before, .mdc-switch__thumb-underlay::after {\n background-color: #018786; }\n @supports not (-ms-ime-align: auto) {\n .mdc-switch__thumb-underlay::before, .mdc-switch__thumb-underlay::after {\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n .mdc-switch__thumb-underlay:hover::before {\n opacity: 0.04; }\n .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded):focus::before, .mdc-switch__thumb-underlay.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n /**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n .mdc-tab {\n position: relative;\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 2.25rem;\n font-weight: 500;\n letter-spacing: 0.08928571em;\n text-decoration: none;\n text-transform: uppercase;\n display: flex;\n flex: 1 0 auto;\n justify-content: center;\n box-sizing: border-box;\n height: 48px;\n padding: 0 24px;\n border: none;\n outline: none;\n background: none;\n text-align: center;\n white-space: nowrap;\n cursor: pointer;\n -webkit-appearance: none;\n z-index: 1; }\n .mdc-tab .mdc-tab__text-label {\n color: #000;\n /* @alternate */\n color: var(--mdc-theme-on-surface, #000); }\n .mdc-tab .mdc-tab__icon {\n color: #000;\n /* @alternate */\n color: var(--mdc-theme-on-surface, #000);\n fill: currentColor; }\n .mdc-tab::-moz-focus-inner {\n padding: 0;\n border: 0; }\n .mdc-tab--min-width {\n flex: 0 1 auto; }\n .mdc-tab__ripple {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: hidden; }\n .mdc-tab__ripple::before, .mdc-tab__ripple::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-tab__ripple::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-tab__ripple.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-tab__ripple.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-tab__ripple.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-tab__ripple.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-tab__ripple.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-tab__ripple::before, .mdc-tab__ripple::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-tab__ripple.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-tab__ripple::before, .mdc-tab__ripple::after {\n background-color: #6200ee; }\n @supports not (-ms-ime-align: auto) {\n .mdc-tab__ripple::before, .mdc-tab__ripple::after {\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); } }\n .mdc-tab__ripple:hover::before {\n opacity: 0.04; }\n .mdc-tab__ripple:not(.mdc-ripple-upgraded):focus::before, .mdc-tab__ripple.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-tab__ripple:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-tab__ripple:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-tab__ripple.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-tab__content {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n height: inherit;\n pointer-events: none; }\n .mdc-tab__text-label,\n.mdc-tab__icon {\n transition: 150ms color linear, 150ms opacity linear;\n z-index: 2; }\n .mdc-tab__text-label {\n display: inline-block;\n opacity: 0.6;\n line-height: 1; }\n .mdc-tab__icon {\n width: 24px;\n height: 24px;\n opacity: 0.54;\n font-size: 24px; }\n .mdc-tab--stacked {\n height: 72px; }\n .mdc-tab--stacked .mdc-tab__content {\n flex-direction: column;\n align-items: center;\n justify-content: space-between; }\n .mdc-tab--stacked .mdc-tab__icon {\n padding-top: 12px; }\n .mdc-tab--stacked .mdc-tab__text-label {\n padding-bottom: 16px; }\n .mdc-tab--active .mdc-tab__text-label {\n color: #6200ee;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee); }\n .mdc-tab--active .mdc-tab__icon {\n color: #6200ee;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee);\n fill: currentColor; }\n .mdc-tab--active .mdc-tab__text-label,\n.mdc-tab--active .mdc-tab__icon {\n transition-delay: 100ms;\n opacity: 1; }\n .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon + .mdc-tab__text-label {\n /* @noflip */\n padding-left: 8px;\n /* @noflip */\n padding-right: 0; }\n [dir=\"rtl\"] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon + .mdc-tab__text-label, .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon + .mdc-tab__text-label[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 8px; }\n /**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n /**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n .mdc-tab-bar {\n width: 100%; }\n /**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n /**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n .mdc-tab-indicator {\n display: flex;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 1; }\n .mdc-tab-indicator > .mdc-tab-indicator__content--underline {\n background-color: #6200ee;\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-tab-indicator > .mdc-tab-indicator__content--underline {\n height: 2px; }\n .mdc-tab-indicator > .mdc-tab-indicator__content--icon {\n color: #018786;\n /* @alternate */\n color: var(--mdc-theme-secondary, #018786); }\n .mdc-tab-indicator > .mdc-tab-indicator__content--icon {\n height: 34px;\n font-size: 34px; }\n .mdc-tab-indicator__content {\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0; }\n .mdc-tab-indicator__content--underline {\n align-self: flex-end;\n width: 100%; }\n .mdc-tab-indicator__content--icon {\n align-self: center;\n margin: 0 auto; }\n .mdc-tab-indicator--active > .mdc-tab-indicator__content {\n opacity: 1; }\n .mdc-tab-indicator > .mdc-tab-indicator__content {\n transition: 250ms -webkit-transform cubic-bezier(0.4, 0, 0.2, 1);\n transition: 250ms transform cubic-bezier(0.4, 0, 0.2, 1);\n transition: 250ms transform cubic-bezier(0.4, 0, 0.2, 1), 250ms -webkit-transform cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-tab-indicator--no-transition > .mdc-tab-indicator__content {\n transition: none; }\n .mdc-tab-indicator--fade > .mdc-tab-indicator__content {\n transition: 150ms opacity linear; }\n .mdc-tab-indicator--active.mdc-tab-indicator--fade > .mdc-tab-indicator__content {\n transition-delay: 100ms; }\n /**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n .mdc-tab-scroller {\n overflow-y: hidden; }\n .mdc-tab-scroller__test {\n position: absolute;\n top: -9999px;\n width: 100px;\n height: 100px;\n overflow-x: scroll; }\n .mdc-tab-scroller__scroll-area {\n -webkit-overflow-scrolling: touch;\n display: flex;\n overflow-x: hidden; }\n .mdc-tab-scroller__scroll-area::-webkit-scrollbar,\n.mdc-tab-scroller__test::-webkit-scrollbar {\n display: none; }\n .mdc-tab-scroller__scroll-area--scroll {\n overflow-x: scroll; }\n .mdc-tab-scroller__scroll-content {\n position: relative;\n display: flex;\n flex: 1 0 auto;\n -webkit-transform: none;\n transform: none;\n will-change: transform; }\n .mdc-tab-scroller--align-start .mdc-tab-scroller__scroll-content {\n justify-content: flex-start; }\n .mdc-tab-scroller--align-end .mdc-tab-scroller__scroll-content {\n justify-content: flex-end; }\n .mdc-tab-scroller--align-center .mdc-tab-scroller__scroll-content {\n justify-content: center; }\n .mdc-tab-scroller--animating .mdc-tab-scroller__scroll-area {\n -webkit-overflow-scrolling: auto; }\n .mdc-tab-scroller--animating .mdc-tab-scroller__scroll-content {\n transition: 250ms -webkit-transform cubic-bezier(0.4, 0, 0.2, 1);\n transition: 250ms transform cubic-bezier(0.4, 0, 0.2, 1);\n transition: 250ms transform cubic-bezier(0.4, 0, 0.2, 1), 250ms -webkit-transform cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-text-field-helper-text {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.75rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.03333333em;\n text-decoration: inherit;\n text-transform: inherit;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n margin: 0;\n transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n will-change: opacity; }\n .mdc-text-field-helper-text::before {\n display: inline-block;\n width: 0;\n height: 16px;\n content: \"\";\n vertical-align: 0; }\n .mdc-text-field-helper-text--persistent {\n transition: none;\n opacity: 1;\n will-change: initial; }\n .mdc-text-field-character-counter {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.75rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.03333333em;\n text-decoration: inherit;\n text-transform: inherit;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n /* @noflip */\n margin-left: auto;\n /* @noflip */\n margin-right: 0;\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 0;\n white-space: nowrap; }\n .mdc-text-field-character-counter::before {\n display: inline-block;\n width: 0;\n height: 16px;\n content: \"\";\n vertical-align: 0; }\n [dir=\"rtl\"] .mdc-text-field-character-counter, .mdc-text-field-character-counter[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: auto; }\n [dir=\"rtl\"] .mdc-text-field-character-counter, .mdc-text-field-character-counter[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 16px; }\n .mdc-text-field--with-leading-icon .mdc-text-field__icon,\n.mdc-text-field--with-trailing-icon .mdc-text-field__icon {\n position: absolute;\n bottom: 16px;\n cursor: pointer; }\n .mdc-text-field__icon:not([tabindex]),\n.mdc-text-field__icon[tabindex=\"-1\"] {\n cursor: default;\n pointer-events: none; }\n .mdc-text-field {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity;\n border-radius: 4px 4px 0 0;\n display: inline-flex;\n position: relative;\n box-sizing: border-box;\n height: 56px;\n overflow: hidden;\n /* @alternate */\n will-change: opacity, transform, color; }\n .mdc-text-field::before, .mdc-text-field::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-text-field::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-text-field.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-text-field.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-text-field.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-text-field.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-text-field.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-text-field::before, .mdc-text-field::after {\n background-color: rgba(0, 0, 0, 0.87); }\n .mdc-text-field:hover::before {\n opacity: 0.04; }\n .mdc-text-field:not(.mdc-ripple-upgraded):focus::before, .mdc-text-field.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-text-field::before, .mdc-text-field::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-text-field.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-text-field:not(.mdc-text-field--disabled) .mdc-floating-label {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__input {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-text-field .mdc-text-field__input {\n caret-color: #6200ee;\n /* @alternate */\n caret-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-text-field:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input {\n border-bottom-color: rgba(0, 0, 0, 0.42); }\n .mdc-text-field:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input:hover {\n border-bottom-color: rgba(0, 0, 0, 0.87); }\n .mdc-text-field .mdc-line-ripple {\n background-color: #6200ee;\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-text-field:not(.mdc-text-field--disabled):not(.mdc-text-field--textarea) {\n border-bottom-color: rgba(0, 0, 0, 0.12); }\n .mdc-text-field:not(.mdc-text-field--disabled) + .mdc-text-field-helper-line .mdc-text-field-helper-text {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field-character-counter,\n .mdc-text-field:not(.mdc-text-field--disabled) + .mdc-text-field-helper-line .mdc-text-field-character-counter {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__icon {\n color: rgba(0, 0, 0, 0.54); }\n .mdc-text-field:not(.mdc-text-field--disabled) {\n background-color: whitesmoke; }\n .mdc-text-field .mdc-floating-label {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial;\n top: 18px;\n pointer-events: none; }\n [dir=\"rtl\"] .mdc-text-field .mdc-floating-label, .mdc-text-field .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px; }\n .mdc-text-field--textarea .mdc-floating-label {\n /* @noflip */\n left: 4px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--textarea .mdc-floating-label, .mdc-text-field--textarea .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 4px; }\n .mdc-text-field--outlined .mdc-floating-label {\n /* @noflip */\n left: 4px;\n /* @noflip */\n right: initial;\n top: 17px; }\n [dir=\"rtl\"] .mdc-text-field--outlined .mdc-floating-label, .mdc-text-field--outlined .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 4px; }\n .mdc-text-field--outlined--with-leading-icon .mdc-floating-label {\n /* @noflip */\n left: 36px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--outlined--with-leading-icon .mdc-floating-label, .mdc-text-field--outlined--with-leading-icon .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 36px; }\n .mdc-text-field--outlined--with-leading-icon .mdc-floating-label--float-above {\n /* @noflip */\n left: 40px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--outlined--with-leading-icon .mdc-floating-label--float-above, .mdc-text-field--outlined--with-leading-icon .mdc-floating-label--float-above[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 40px; }\n .mdc-text-field__input {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.75rem;\n font-weight: 400;\n letter-spacing: 0.009375em;\n text-decoration: inherit;\n text-transform: inherit;\n align-self: flex-end;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n padding: 20px 16px 6px;\n transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);\n border: none;\n border-bottom: 1px solid;\n border-radius: 0;\n background: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none; }\n .mdc-text-field__input::-webkit-input-placeholder {\n transition: opacity 67ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n color: rgba(0, 0, 0, 0.54); }\n .mdc-text-field__input::-moz-placeholder {\n transition: opacity 67ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n color: rgba(0, 0, 0, 0.54); }\n .mdc-text-field__input::-ms-input-placeholder {\n transition: opacity 67ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n color: rgba(0, 0, 0, 0.54); }\n .mdc-text-field__input::placeholder {\n transition: opacity 67ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n color: rgba(0, 0, 0, 0.54); }\n .mdc-text-field--fullwidth .mdc-text-field__input::-webkit-input-placeholder,\n .mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,\n .mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder {\n transition-delay: 40ms;\n transition-duration: 110ms;\n opacity: 1; }\n .mdc-text-field--fullwidth .mdc-text-field__input::-moz-placeholder,\n .mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,\n .mdc-text-field--focused .mdc-text-field__input::-moz-placeholder {\n transition-delay: 40ms;\n transition-duration: 110ms;\n opacity: 1; }\n .mdc-text-field--fullwidth .mdc-text-field__input::-ms-input-placeholder,\n .mdc-text-field--no-label .mdc-text-field__input::-ms-input-placeholder,\n .mdc-text-field--focused .mdc-text-field__input::-ms-input-placeholder {\n transition-delay: 40ms;\n transition-duration: 110ms;\n opacity: 1; }\n .mdc-text-field--fullwidth .mdc-text-field__input::placeholder,\n .mdc-text-field--no-label .mdc-text-field__input::placeholder,\n .mdc-text-field--focused .mdc-text-field__input::placeholder {\n transition-delay: 40ms;\n transition-duration: 110ms;\n opacity: 1; }\n .mdc-text-field__input:focus {\n outline: none; }\n .mdc-text-field__input:invalid {\n box-shadow: none; }\n .mdc-text-field__input:-webkit-autofill {\n z-index: auto !important; }\n .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input {\n padding: 16px; }\n .mdc-text-field__input:-webkit-autofill + .mdc-floating-label {\n -webkit-transform: translateY(-50%) scale(0.75);\n transform: translateY(-50%) scale(0.75);\n cursor: auto; }\n .mdc-text-field--outlined {\n border: none;\n overflow: visible; }\n .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.24); }\n .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.87); }\n .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing {\n border-color: #6200ee;\n /* @alternate */\n border-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-text-field--outlined .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1; }\n .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading {\n /* @noflip */\n border-radius: 4px 0 0 4px; }\n [dir=\"rtl\"] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading, .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 0 4px 4px 0; }\n .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing {\n /* @noflip */\n border-radius: 0 4px 4px 0; }\n [dir=\"rtl\"] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing, .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 4px 0 0 4px; }\n .mdc-text-field--outlined .mdc-floating-label--float-above {\n -webkit-transform: translateY(-144%) scale(1);\n transform: translateY(-144%) scale(1); }\n .mdc-text-field--outlined .mdc-floating-label--float-above {\n font-size: 0.75rem; }\n .mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n -webkit-transform: translateY(-130%) scale(0.75);\n transform: translateY(-130%) scale(0.75); }\n .mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n font-size: 1rem; }\n .mdc-text-field--outlined::before, .mdc-text-field--outlined::after {\n content: none; }\n .mdc-text-field--outlined:not(.mdc-text-field--disabled) {\n background-color: transparent; }\n .mdc-text-field--outlined .mdc-text-field__input {\n display: flex;\n padding: 12px 16px 14px;\n border: none !important;\n background-color: transparent;\n z-index: 1; }\n .mdc-text-field--outlined .mdc-text-field__icon {\n z-index: 2; }\n .mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline__leading,\n.mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline__notch,\n.mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline__trailing {\n border-width: 2px; }\n .mdc-text-field--outlined.mdc-text-field--disabled {\n background-color: transparent; }\n .mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,\n .mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,\n .mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.06); }\n .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input {\n border-bottom: none; }\n .mdc-text-field--outlined.mdc-text-field--dense {\n height: 48px; }\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above {\n -webkit-transform: translateY(-134%) scale(1);\n transform: translateY(-134%) scale(1); }\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above {\n font-size: 0.8rem; }\n .mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n -webkit-transform: translateY(-120%) scale(0.8);\n transform: translateY(-120%) scale(0.8); }\n .mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n font-size: 1rem; }\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-dense 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined-dense 250ms 1; }\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-text-field__input {\n padding: 12px 12px 7px; }\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label {\n top: 14px; }\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-text-field__icon {\n top: 12px; }\n .mdc-text-field--with-leading-icon .mdc-text-field__icon {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon .mdc-text-field__icon, .mdc-text-field--with-leading-icon .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px; }\n .mdc-text-field--with-leading-icon .mdc-text-field__input {\n /* @noflip */\n padding-left: 48px;\n /* @noflip */\n padding-right: 16px; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon .mdc-text-field__input, .mdc-text-field--with-leading-icon .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 48px; }\n .mdc-text-field--with-leading-icon .mdc-floating-label {\n /* @noflip */\n left: 48px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon .mdc-floating-label, .mdc-text-field--with-leading-icon .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 48px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__icon {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__input {\n /* @noflip */\n padding-left: 48px;\n /* @noflip */\n padding-right: 16px; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__input, .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 48px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above {\n -webkit-transform: translateY(-144%) translateX(-32px) scale(1);\n transform: translateY(-144%) translateX(-32px) scale(1); }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above, .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=\"rtl\"] {\n -webkit-transform: translateY(-144%) translateX(32px) scale(1);\n transform: translateY(-144%) translateX(32px) scale(1); }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above {\n font-size: 0.75rem; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n -webkit-transform: translateY(-130%) translateX(-32px) scale(0.75);\n transform: translateY(-130%) translateX(-32px) scale(0.75); }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=\"rtl\"] {\n -webkit-transform: translateY(-130%) translateX(32px) scale(0.75);\n transform: translateY(-130%) translateX(32px) scale(0.75); }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n font-size: 1rem; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake, .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=\"rtl\"] .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl 250ms 1; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label {\n /* @noflip */\n left: 36px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label, .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 36px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above {\n -webkit-transform: translateY(-134%) translateX(-21px) scale(1);\n transform: translateY(-134%) translateX(-21px) scale(1); }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above[dir=\"rtl\"] {\n -webkit-transform: translateY(-134%) translateX(21px) scale(1);\n transform: translateY(-134%) translateX(21px) scale(1); }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above {\n font-size: 0.8rem; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n -webkit-transform: translateY(-120%) translateX(-21px) scale(0.8);\n transform: translateY(-120%) translateX(-21px) scale(0.8); }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=\"rtl\"] {\n -webkit-transform: translateY(-120%) translateX(21px) scale(0.8);\n transform: translateY(-120%) translateX(21px) scale(0.8); }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n font-size: 1rem; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense 250ms 1; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--shake, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense[dir=\"rtl\"] .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense-rtl 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense-rtl 250ms 1; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label {\n /* @noflip */\n left: 32px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 32px; }\n .mdc-text-field--with-trailing-icon .mdc-text-field__icon {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 12px; }\n [dir=\"rtl\"] .mdc-text-field--with-trailing-icon .mdc-text-field__icon, .mdc-text-field--with-trailing-icon .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: 12px;\n /* @noflip */\n right: initial; }\n .mdc-text-field--with-trailing-icon .mdc-text-field__input {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 48px; }\n [dir=\"rtl\"] .mdc-text-field--with-trailing-icon .mdc-text-field__input, .mdc-text-field--with-trailing-icon .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 48px;\n /* @noflip */\n padding-right: 16px; }\n .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__icon {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px; }\n [dir=\"rtl\"] .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__icon, .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial; }\n .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__input {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 48px; }\n [dir=\"rtl\"] .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__input, .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 48px;\n /* @noflip */\n padding-right: 16px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: auto; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: auto;\n /* @noflip */\n right: 16px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon ~ .mdc-text-field__icon {\n /* @noflip */\n right: 12px;\n /* @noflip */\n left: auto; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon ~ .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon ~ .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n right: auto;\n /* @noflip */\n left: 12px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__input {\n /* @noflip */\n padding-left: 48px;\n /* @noflip */\n padding-right: 48px; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__input, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 48px;\n /* @noflip */\n padding-right: 48px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__icon,\n.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon {\n bottom: 16px;\n -webkit-transform: scale(0.8);\n transform: scale(0.8); }\n .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__icon {\n /* @noflip */\n left: 12px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 12px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__input {\n /* @noflip */\n padding-left: 44px;\n /* @noflip */\n padding-right: 16px; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__input, .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 44px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-floating-label {\n /* @noflip */\n left: 44px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-floating-label, .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 44px; }\n .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 12px; }\n [dir=\"rtl\"] .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon, .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: 12px;\n /* @noflip */\n right: initial; }\n .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 44px; }\n [dir=\"rtl\"] .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input, .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 44px;\n /* @noflip */\n padding-right: 16px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon {\n /* @noflip */\n left: 12px;\n /* @noflip */\n right: auto; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: auto;\n /* @noflip */\n right: 12px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon ~ .mdc-text-field__icon {\n /* @noflip */\n right: 12px;\n /* @noflip */\n left: auto; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon ~ .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon ~ .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n right: auto;\n /* @noflip */\n left: 12px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input {\n /* @noflip */\n padding-left: 44px;\n /* @noflip */\n padding-right: 44px; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 44px;\n /* @noflip */\n padding-right: 44px; }\n .mdc-text-field--dense .mdc-floating-label--float-above {\n -webkit-transform: translateY(-70%) scale(0.8);\n transform: translateY(-70%) scale(0.8); }\n .mdc-text-field--dense .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-dense 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-dense 250ms 1; }\n .mdc-text-field--dense .mdc-text-field__input {\n padding: 12px 12px 0; }\n .mdc-text-field--dense .mdc-floating-label {\n font-size: .813rem; }\n .mdc-text-field--dense .mdc-floating-label--float-above {\n font-size: .813rem; }\n .mdc-text-field__input:required ~ .mdc-floating-label::after,\n.mdc-text-field__input:required ~ .mdc-notched-outline .mdc-floating-label::after {\n margin-left: 1px;\n content: \"*\"; }\n .mdc-text-field--textarea {\n display: inline-flex;\n width: auto;\n height: auto;\n transition: none;\n overflow: visible; }\n .mdc-text-field--textarea:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.24); }\n .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.87); }\n .mdc-text-field--textarea:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing {\n border-color: #6200ee;\n /* @alternate */\n border-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-text-field--textarea .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1; }\n .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__leading {\n /* @noflip */\n border-radius: 4px 0 0 4px; }\n [dir=\"rtl\"] .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__leading, .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__leading[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 0 4px 4px 0; }\n .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__trailing {\n /* @noflip */\n border-radius: 0 4px 4px 0; }\n [dir=\"rtl\"] .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__trailing, .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__trailing[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 4px 0 0 4px; }\n .mdc-text-field--textarea::before, .mdc-text-field--textarea::after {\n content: none; }\n .mdc-text-field--textarea:not(.mdc-text-field--disabled) {\n background-color: transparent; }\n .mdc-text-field--textarea .mdc-floating-label--float-above {\n -webkit-transform: translateY(-144%) scale(1);\n transform: translateY(-144%) scale(1); }\n .mdc-text-field--textarea .mdc-floating-label--float-above {\n font-size: 0.75rem; }\n .mdc-text-field--textarea.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--textarea .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n -webkit-transform: translateY(-130%) scale(0.75);\n transform: translateY(-130%) scale(0.75); }\n .mdc-text-field--textarea.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--textarea .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n font-size: 1rem; }\n .mdc-text-field--textarea .mdc-text-field-character-counter {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px;\n position: absolute;\n bottom: 13px; }\n [dir=\"rtl\"] .mdc-text-field--textarea .mdc-text-field-character-counter, .mdc-text-field--textarea .mdc-text-field-character-counter[dir=\"rtl\"] {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial; }\n .mdc-text-field--textarea .mdc-text-field__input {\n align-self: auto;\n box-sizing: border-box;\n height: auto;\n margin: 8px 1px 1px 0;\n padding: 0 16px 16px;\n border: none; }\n .mdc-text-field--textarea .mdc-text-field-character-counter + .mdc-text-field__input {\n margin-bottom: 28px;\n padding-bottom: 0; }\n .mdc-text-field--textarea .mdc-floating-label {\n top: 17px;\n bottom: auto;\n width: auto;\n pointer-events: none; }\n .mdc-text-field--textarea.mdc-text-field--focused .mdc-notched-outline__leading,\n .mdc-text-field--textarea.mdc-text-field--focused .mdc-notched-outline__notch,\n .mdc-text-field--textarea.mdc-text-field--focused .mdc-notched-outline__trailing {\n border-width: 2px; }\n .mdc-text-field--fullwidth {\n width: 100%; }\n .mdc-text-field--fullwidth:not(.mdc-text-field--textarea) {\n display: block; }\n .mdc-text-field--fullwidth:not(.mdc-text-field--textarea)::before, .mdc-text-field--fullwidth:not(.mdc-text-field--textarea)::after {\n content: none; }\n .mdc-text-field--fullwidth:not(.mdc-text-field--textarea):not(.mdc-text-field--disabled) {\n background-color: transparent; }\n .mdc-text-field--fullwidth:not(.mdc-text-field--textarea) .mdc-text-field__input {\n padding: 0; }\n .mdc-text-field--fullwidth.mdc-text-field--textarea .mdc-text-field__input {\n resize: vertical; }\n .mdc-text-field--fullwidth.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--textarea) {\n border-bottom-color: #b00020;\n /* @alternate */\n border-bottom-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field-helper-line {\n display: flex;\n justify-content: space-between;\n box-sizing: border-box; }\n .mdc-text-field--dense + .mdc-text-field-helper-line {\n margin-bottom: 4px; }\n .mdc-text-field + .mdc-text-field-helper-line {\n padding-right: 16px;\n padding-left: 16px; }\n .mdc-form-field > .mdc-text-field + label {\n align-self: flex-start; }\n .mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-floating-label {\n color: rgba(98, 0, 238, 0.87); }\n .mdc-text-field--focused .mdc-text-field__input:required ~ .mdc-floating-label::after,\n.mdc-text-field--focused .mdc-text-field__input:required ~ .mdc-notched-outline .mdc-floating-label::after {\n color: #b00020;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--focused + .mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg) {\n opacity: 1; }\n .mdc-text-field--textarea.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,\n.mdc-text-field--textarea.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,\n.mdc-text-field--textarea.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {\n border-color: #6200ee;\n /* @alternate */\n border-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input {\n border-bottom-color: #b00020;\n /* @alternate */\n border-bottom-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input:hover {\n border-bottom-color: #b00020;\n /* @alternate */\n border-bottom-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple {\n background-color: #b00020;\n /* @alternate */\n background-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label {\n color: #b00020;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--invalid + .mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg {\n color: #b00020;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid .mdc-text-field__input {\n caret-color: #b00020;\n /* @alternate */\n caret-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid.mdc-text-field--with-trailing-icon:not(.mdc-text-field--with-leading-icon):not(.mdc-text-field--disabled) .mdc-text-field__icon {\n color: #b00020;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid.mdc-text-field--with-trailing-icon.mdc-text-field--with-leading-icon:not(.mdc-text-field--disabled) .mdc-text-field__icon ~ .mdc-text-field__icon {\n color: #b00020;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid + .mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg {\n opacity: 1; }\n .mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--disabled {\n background-color: #fafafa;\n border-bottom: none;\n pointer-events: none; }\n .mdc-text-field--disabled .mdc-text-field__input {\n border-bottom-color: rgba(0, 0, 0, 0.06); }\n .mdc-text-field--disabled .mdc-text-field__input {\n color: rgba(0, 0, 0, 0.37); }\n .mdc-text-field--disabled .mdc-floating-label {\n color: rgba(0, 0, 0, 0.37); }\n .mdc-text-field--disabled + .mdc-text-field-helper-line .mdc-text-field-helper-text {\n color: rgba(0, 0, 0, 0.37); }\n .mdc-text-field--disabled .mdc-text-field-character-counter,\n .mdc-text-field--disabled + .mdc-text-field-helper-line .mdc-text-field-character-counter {\n color: rgba(0, 0, 0, 0.37); }\n .mdc-text-field--disabled .mdc-text-field__icon {\n color: rgba(0, 0, 0, 0.3); }\n .mdc-text-field--disabled:not(.mdc-text-field--textarea) {\n border-bottom-color: rgba(0, 0, 0, 0.12); }\n .mdc-text-field--disabled .mdc-floating-label {\n cursor: default; }\n .mdc-text-field--textarea.mdc-text-field--disabled {\n background-color: transparent;\n /* @alternate */\n background-color: #f9f9f9; }\n .mdc-text-field--textarea.mdc-text-field--disabled .mdc-notched-outline__leading,\n .mdc-text-field--textarea.mdc-text-field--disabled .mdc-notched-outline__notch,\n .mdc-text-field--textarea.mdc-text-field--disabled .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.06); }\n .mdc-text-field--textarea.mdc-text-field--disabled .mdc-text-field__input {\n border-bottom: none; }\n @-webkit-keyframes mdc-floating-label-shake-float-above-text-field-dense {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(4% - 0%)) translateY(-70%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(-4% - 0%)) translateY(-70%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-text-field-dense {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(4% - 0%)) translateY(-70%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(-4% - 0%)) translateY(-70%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-text-field-outlined {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-dense {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(4% - 0%)) translateY(-120%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(-4% - 0%)) translateY(-120%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-text-field-outlined-dense {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(4% - 0%)) translateY(-120%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(-4% - 0%)) translateY(-120%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(4% - 21px)) translateY(-120%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(-4% - 21px)) translateY(-120%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(4% - 21px)) translateY(-120%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(-4% - 21px)) translateY(-120%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense-rtl {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(4% - -21px)) translateY(-120%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(-4% - -21px)) translateY(-120%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense-rtl {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(4% - -21px)) translateY(-120%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(-4% - -21px)) translateY(-120%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-textarea {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-textarea {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n :root {\n --mdc-theme-primary: #6200ee;\n --mdc-theme-secondary: #018786;\n --mdc-theme-background: #fff;\n --mdc-theme-surface: #fff;\n --mdc-theme-error: #b00020;\n --mdc-theme-on-primary: #fff;\n --mdc-theme-on-secondary: #fff;\n --mdc-theme-on-surface: #000;\n --mdc-theme-on-error: #fff;\n --mdc-theme-text-primary-on-background: rgba(0, 0, 0, 0.87);\n --mdc-theme-text-secondary-on-background: rgba(0, 0, 0, 0.54);\n --mdc-theme-text-hint-on-background: rgba(0, 0, 0, 0.38);\n --mdc-theme-text-disabled-on-background: rgba(0, 0, 0, 0.38);\n --mdc-theme-text-icon-on-background: rgba(0, 0, 0, 0.38);\n --mdc-theme-text-primary-on-light: rgba(0, 0, 0, 0.87);\n --mdc-theme-text-secondary-on-light: rgba(0, 0, 0, 0.54);\n --mdc-theme-text-hint-on-light: rgba(0, 0, 0, 0.38);\n --mdc-theme-text-disabled-on-light: rgba(0, 0, 0, 0.38);\n --mdc-theme-text-icon-on-light: rgba(0, 0, 0, 0.38);\n --mdc-theme-text-primary-on-dark: white;\n --mdc-theme-text-secondary-on-dark: rgba(255, 255, 255, 0.7);\n --mdc-theme-text-hint-on-dark: rgba(255, 255, 255, 0.5);\n --mdc-theme-text-disabled-on-dark: rgba(255, 255, 255, 0.5);\n --mdc-theme-text-icon-on-dark: rgba(255, 255, 255, 0.5); }\n .mdc-theme--primary {\n color: #6200ee !important;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee) !important; }\n .mdc-theme--secondary {\n color: #018786 !important;\n /* @alternate */\n color: var(--mdc-theme-secondary, #018786) !important; }\n .mdc-theme--background {\n background-color: #fff;\n /* @alternate */\n background-color: var(--mdc-theme-background, #fff); }\n .mdc-theme--surface {\n background-color: #fff;\n /* @alternate */\n background-color: var(--mdc-theme-surface, #fff); }\n .mdc-theme--error {\n color: #b00020 !important;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020) !important; }\n .mdc-theme--on-primary {\n color: #fff !important;\n /* @alternate */\n color: var(--mdc-theme-on-primary, #fff) !important; }\n .mdc-theme--on-secondary {\n color: #fff !important;\n /* @alternate */\n color: var(--mdc-theme-on-secondary, #fff) !important; }\n .mdc-theme--on-surface {\n color: #000 !important;\n /* @alternate */\n color: var(--mdc-theme-on-surface, #000) !important; }\n .mdc-theme--on-error {\n color: #fff !important;\n /* @alternate */\n color: var(--mdc-theme-on-error, #fff) !important; }\n .mdc-theme--text-primary-on-background {\n color: rgba(0, 0, 0, 0.87) !important;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87)) !important; }\n .mdc-theme--text-secondary-on-background {\n color: rgba(0, 0, 0, 0.54) !important;\n /* @alternate */\n color: var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54)) !important; }\n .mdc-theme--text-hint-on-background {\n color: rgba(0, 0, 0, 0.38) !important;\n /* @alternate */\n color: var(--mdc-theme-text-hint-on-background, rgba(0, 0, 0, 0.38)) !important; }\n .mdc-theme--text-disabled-on-background {\n color: rgba(0, 0, 0, 0.38) !important;\n /* @alternate */\n color: var(--mdc-theme-text-disabled-on-background, rgba(0, 0, 0, 0.38)) !important; }\n .mdc-theme--text-icon-on-background {\n color: rgba(0, 0, 0, 0.38) !important;\n /* @alternate */\n color: var(--mdc-theme-text-icon-on-background, rgba(0, 0, 0, 0.38)) !important; }\n .mdc-theme--text-primary-on-light {\n color: rgba(0, 0, 0, 0.87) !important;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-light, rgba(0, 0, 0, 0.87)) !important; }\n .mdc-theme--text-secondary-on-light {\n color: rgba(0, 0, 0, 0.54) !important;\n /* @alternate */\n color: var(--mdc-theme-text-secondary-on-light, rgba(0, 0, 0, 0.54)) !important; }\n .mdc-theme--text-hint-on-light {\n color: rgba(0, 0, 0, 0.38) !important;\n /* @alternate */\n color: var(--mdc-theme-text-hint-on-light, rgba(0, 0, 0, 0.38)) !important; }\n .mdc-theme--text-disabled-on-light {\n color: rgba(0, 0, 0, 0.38) !important;\n /* @alternate */\n color: var(--mdc-theme-text-disabled-on-light, rgba(0, 0, 0, 0.38)) !important; }\n .mdc-theme--text-icon-on-light {\n color: rgba(0, 0, 0, 0.38) !important;\n /* @alternate */\n color: var(--mdc-theme-text-icon-on-light, rgba(0, 0, 0, 0.38)) !important; }\n .mdc-theme--text-primary-on-dark {\n color: white !important;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white) !important; }\n .mdc-theme--text-secondary-on-dark {\n color: rgba(255, 255, 255, 0.7) !important;\n /* @alternate */\n color: var(--mdc-theme-text-secondary-on-dark, rgba(255, 255, 255, 0.7)) !important; }\n .mdc-theme--text-hint-on-dark {\n color: rgba(255, 255, 255, 0.5) !important;\n /* @alternate */\n color: var(--mdc-theme-text-hint-on-dark, rgba(255, 255, 255, 0.5)) !important; }\n .mdc-theme--text-disabled-on-dark {\n color: rgba(255, 255, 255, 0.5) !important;\n /* @alternate */\n color: var(--mdc-theme-text-disabled-on-dark, rgba(255, 255, 255, 0.5)) !important; }\n .mdc-theme--text-icon-on-dark {\n color: rgba(255, 255, 255, 0.5) !important;\n /* @alternate */\n color: var(--mdc-theme-text-icon-on-dark, rgba(255, 255, 255, 0.5)) !important; }\n .mdc-theme--primary-bg {\n background-color: #6200ee !important;\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee) !important; }\n .mdc-theme--secondary-bg {\n background-color: #018786 !important;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786) !important; }\n .mdc-top-app-bar {\n background-color: #6200ee;\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee);\n color: white;\n display: flex;\n position: fixed;\n flex-direction: column;\n justify-content: space-between;\n box-sizing: border-box;\n width: 100%;\n z-index: 4; }\n .mdc-top-app-bar .mdc-top-app-bar__action-item,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon {\n color: #fff;\n /* @alternate */\n color: var(--mdc-theme-on-primary, #fff); }\n .mdc-top-app-bar .mdc-top-app-bar__action-item::before, .mdc-top-app-bar .mdc-top-app-bar__action-item::after,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon::before,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon::after {\n background-color: #fff; }\n @supports not (-ms-ime-align: auto) {\n .mdc-top-app-bar .mdc-top-app-bar__action-item::before, .mdc-top-app-bar .mdc-top-app-bar__action-item::after,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon::before,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon::after {\n /* @alternate */\n background-color: var(--mdc-theme-on-primary, #fff); } }\n .mdc-top-app-bar .mdc-top-app-bar__action-item:hover::before,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon:hover::before {\n opacity: 0.08; }\n .mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded):focus::before, .mdc-top-app-bar .mdc-top-app-bar__action-item.mdc-ripple-upgraded--background-focused::before,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded):focus::before,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded)::after,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded):active::after,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-top-app-bar .mdc-top-app-bar__action-item.mdc-ripple-upgraded,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .mdc-top-app-bar__row {\n display: flex;\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 64px; }\n .mdc-top-app-bar__section {\n display: inline-flex;\n flex: 1 1 auto;\n align-items: center;\n min-width: 0;\n padding: 8px 12px;\n z-index: 1; }\n .mdc-top-app-bar__section--align-start {\n justify-content: flex-start;\n order: -1; }\n .mdc-top-app-bar__section--align-end {\n justify-content: flex-end;\n order: 1; }\n .mdc-top-app-bar__title {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1.25rem;\n line-height: 2rem;\n font-weight: 500;\n letter-spacing: 0.0125em;\n text-decoration: inherit;\n text-transform: inherit;\n /* @noflip */\n padding-left: 20px;\n /* @noflip */\n padding-right: 0;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n z-index: 1; }\n [dir=\"rtl\"] .mdc-top-app-bar__title, .mdc-top-app-bar__title[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 20px; }\n .mdc-top-app-bar__action-item, .mdc-top-app-bar__navigation-icon {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity;\n display: flex;\n position: relative;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 48px;\n height: 48px;\n padding: 12px;\n border: none;\n outline: none;\n background-color: transparent;\n fill: currentColor;\n color: inherit;\n text-decoration: none;\n cursor: pointer; }\n .mdc-top-app-bar__action-item::before, .mdc-top-app-bar__action-item::after, .mdc-top-app-bar__navigation-icon::before, .mdc-top-app-bar__navigation-icon::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-top-app-bar__action-item::before, .mdc-top-app-bar__navigation-icon::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-top-app-bar__action-item.mdc-ripple-upgraded::before, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-top-app-bar__action-item.mdc-ripple-upgraded::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-top-app-bar__action-item.mdc-ripple-upgraded--unbounded::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-top-app-bar__action-item.mdc-ripple-upgraded--foreground-activation::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-top-app-bar__action-item.mdc-ripple-upgraded--foreground-deactivation::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-top-app-bar__action-item::before, .mdc-top-app-bar__action-item::after, .mdc-top-app-bar__navigation-icon::before, .mdc-top-app-bar__navigation-icon::after {\n top: calc(50% - 50%);\n /* @noflip */\n left: calc(50% - 50%);\n width: 100%;\n height: 100%; }\n .mdc-top-app-bar__action-item.mdc-ripple-upgraded::before, .mdc-top-app-bar__action-item.mdc-ripple-upgraded::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::before, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::after {\n top: var(--mdc-ripple-top, calc(50% - 50%));\n /* @noflip */\n left: var(--mdc-ripple-left, calc(50% - 50%));\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-top-app-bar__action-item.mdc-ripple-upgraded::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-top-app-bar--short-collapsed {\n /* @noflip */\n border-radius: 0 0 24px 0; }\n [dir=\"rtl\"] .mdc-top-app-bar--short-collapsed, .mdc-top-app-bar--short-collapsed[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 0 0 0 24px; }\n .mdc-top-app-bar--short {\n top: 0;\n /* @noflip */\n right: auto;\n /* @noflip */\n left: 0;\n width: 100%;\n transition: width 250ms cubic-bezier(0.4, 0, 0.2, 1); }\n [dir=\"rtl\"] .mdc-top-app-bar--short, .mdc-top-app-bar--short[dir=\"rtl\"] {\n /* @noflip */\n right: 0;\n /* @noflip */\n left: auto; }\n .mdc-top-app-bar--short .mdc-top-app-bar__row {\n height: 56px; }\n .mdc-top-app-bar--short .mdc-top-app-bar__section {\n padding: 4px; }\n .mdc-top-app-bar--short .mdc-top-app-bar__title {\n transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 1; }\n .mdc-top-app-bar--short-collapsed {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n width: 56px;\n transition: width 300ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__title {\n display: none; }\n .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__action-item {\n transition: padding 150ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item {\n width: 112px; }\n .mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 12px; }\n [dir=\"rtl\"] .mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end, .mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 12px;\n /* @noflip */\n padding-right: 0; }\n .mdc-top-app-bar--dense .mdc-top-app-bar__row {\n height: 48px; }\n .mdc-top-app-bar--dense .mdc-top-app-bar__section {\n padding: 0 4px; }\n .mdc-top-app-bar--dense .mdc-top-app-bar__title {\n /* @noflip */\n padding-left: 12px;\n /* @noflip */\n padding-right: 0; }\n [dir=\"rtl\"] .mdc-top-app-bar--dense .mdc-top-app-bar__title, .mdc-top-app-bar--dense .mdc-top-app-bar__title[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 12px; }\n .mdc-top-app-bar--prominent .mdc-top-app-bar__row {\n height: 128px; }\n .mdc-top-app-bar--prominent .mdc-top-app-bar__title {\n align-self: flex-end;\n padding-bottom: 2px; }\n .mdc-top-app-bar--prominent .mdc-top-app-bar__action-item,\n.mdc-top-app-bar--prominent .mdc-top-app-bar__navigation-icon {\n align-self: flex-start; }\n .mdc-top-app-bar--fixed {\n transition: box-shadow 200ms linear; }\n .mdc-top-app-bar--fixed-scrolled {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n transition: box-shadow 200ms linear; }\n .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__row {\n height: 96px; }\n .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__section {\n padding: 0 12px; }\n .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title {\n /* @noflip */\n padding-left: 20px;\n /* @noflip */\n padding-right: 0;\n padding-bottom: 9px; }\n [dir=\"rtl\"] .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title, .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 20px; }\n .mdc-top-app-bar--fixed-adjust {\n padding-top: 64px; }\n .mdc-top-app-bar--dense-fixed-adjust {\n padding-top: 48px; }\n .mdc-top-app-bar--short-fixed-adjust {\n padding-top: 56px; }\n .mdc-top-app-bar--prominent-fixed-adjust {\n padding-top: 128px; }\n .mdc-top-app-bar--dense-prominent-fixed-adjust {\n padding-top: 96px; }\n @media (max-width: 599px) {\n .mdc-top-app-bar__row {\n height: 56px; }\n .mdc-top-app-bar__section {\n padding: 4px; }\n .mdc-top-app-bar--short {\n transition: width 200ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-top-app-bar--short-collapsed {\n transition: width 250ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 12px; }\n [dir=\"rtl\"] .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end, .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 12px;\n /* @noflip */\n padding-right: 0; }\n .mdc-top-app-bar--prominent .mdc-top-app-bar__title {\n padding-bottom: 6px; }\n .mdc-top-app-bar--fixed-adjust {\n padding-top: 56px; } }\n .mdc-typography {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased; }\n .mdc-typography--headline1 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 6rem;\n line-height: 6rem;\n font-weight: 300;\n letter-spacing: -0.015625em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--headline2 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 3.75rem;\n line-height: 3.75rem;\n font-weight: 300;\n letter-spacing: -0.00833333em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--headline3 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 3rem;\n line-height: 3.125rem;\n font-weight: 400;\n letter-spacing: normal;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--headline4 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 2.125rem;\n line-height: 2.5rem;\n font-weight: 400;\n letter-spacing: 0.00735294em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--headline5 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1.5rem;\n line-height: 2rem;\n font-weight: 400;\n letter-spacing: normal;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--headline6 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1.25rem;\n line-height: 2rem;\n font-weight: 500;\n letter-spacing: 0.0125em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--subtitle1 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.75rem;\n font-weight: 400;\n letter-spacing: 0.009375em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--subtitle2 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.375rem;\n font-weight: 500;\n letter-spacing: 0.00714286em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--body1 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.5rem;\n font-weight: 400;\n letter-spacing: 0.03125em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--body2 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--caption {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.75rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.03333333em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--button {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 2.25rem;\n font-weight: 500;\n letter-spacing: 0.08928571em;\n text-decoration: none;\n text-transform: uppercase; }\n .mdc-typography--overline {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.75rem;\n line-height: 2rem;\n font-weight: 500;\n letter-spacing: 0.16666667em;\n text-decoration: none;\n text-transform: uppercase; }\n .ngx-mdc-form-field--fluid {\n display: flex;\n flex: auto;\n flex-direction: column; }\n .ngx-mdc-button--primary:not(:disabled) {\n background-color: #6200ee; }\n .ngx-mdc-button--primary:not(:disabled) {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-button--primary::before, .ngx-mdc-button--primary::after {\n background-color: white; }\n @supports not (-ms-ime-align: auto) {\n .ngx-mdc-button--primary::before, .ngx-mdc-button--primary::after {\n /* @alternate */\n background-color: var(--mdc-theme-text-primary-on-dark, white); } }\n .ngx-mdc-button--primary:hover::before {\n opacity: 0.08; }\n .ngx-mdc-button--primary:not(.mdc-ripple-upgraded):focus::before, .ngx-mdc-button--primary.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-button--primary:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .ngx-mdc-button--primary:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-button--primary.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .ngx-mdc-button--secondary:not(:disabled) {\n background-color: #018786; }\n .ngx-mdc-button--secondary:not(:disabled) {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-button--secondary::before, .ngx-mdc-button--secondary::after {\n background-color: white; }\n @supports not (-ms-ime-align: auto) {\n .ngx-mdc-button--secondary::before, .ngx-mdc-button--secondary::after {\n /* @alternate */\n background-color: var(--mdc-theme-text-primary-on-dark, white); } }\n .ngx-mdc-button--secondary:hover::before {\n opacity: 0.08; }\n .ngx-mdc-button--secondary:not(.mdc-ripple-upgraded):focus::before, .ngx-mdc-button--secondary.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-button--secondary:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .ngx-mdc-button--secondary:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-button--secondary.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .ngx-mdc-chip--primary {\n background-color: #6200ee;\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--primary::before, .ngx-mdc-chip--primary::after {\n background-color: white; }\n @supports not (-ms-ime-align: auto) {\n .ngx-mdc-chip--primary::before, .ngx-mdc-chip--primary::after {\n /* @alternate */\n background-color: var(--mdc-theme-text-primary-on-dark, white); } }\n .ngx-mdc-chip--primary:hover::before {\n opacity: 0.08; }\n .ngx-mdc-chip--primary:not(.mdc-ripple-upgraded):focus::before, .ngx-mdc-chip--primary.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-chip--primary:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .ngx-mdc-chip--primary:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-chip--primary.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .ngx-mdc-chip--primary:hover {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--primary.mdc-chip--selected::before {\n opacity: 0.16; }\n .ngx-mdc-chip--primary.mdc-chip--selected::before, .ngx-mdc-chip--primary.mdc-chip--selected::after {\n background-color: white; }\n @supports not (-ms-ime-align: auto) {\n .ngx-mdc-chip--primary.mdc-chip--selected::before, .ngx-mdc-chip--primary.mdc-chip--selected::after {\n /* @alternate */\n background-color: var(--mdc-theme-text-primary-on-dark, white); } }\n .ngx-mdc-chip--primary.mdc-chip--selected:hover::before {\n opacity: 0.24; }\n .ngx-mdc-chip--primary.mdc-chip--selected:not(.mdc-ripple-upgraded):focus::before, .ngx-mdc-chip--primary.mdc-chip--selected.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.4; }\n .ngx-mdc-chip--primary.mdc-chip--selected:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .ngx-mdc-chip--primary.mdc-chip--selected:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.4; }\n .ngx-mdc-chip--primary.mdc-chip--selected.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.4; }\n .ngx-mdc-chip--primary.mdc-chip--selected {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--primary.mdc-chip--selected .mdc-chip__icon--leading {\n color: rgba(255, 255, 255, 0.54); }\n .ngx-mdc-chip--primary.mdc-chip--selected:hover {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--primary .mdc-chip__checkmark-path {\n stroke: white;\n /* @alternate */\n stroke: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--primary .mdc-chip__icon--leading {\n color: rgba(255, 255, 255, 0.54); }\n .ngx-mdc-chip--primary .mdc-chip__icon--trailing {\n color: rgba(255, 255, 255, 0.54); }\n .ngx-mdc-chip--primary .mdc-chip__icon--trailing:hover {\n color: rgba(255, 255, 255, 0.62); }\n .ngx-mdc-chip--primary .mdc-chip__icon--trailing:focus {\n color: rgba(255, 255, 255, 0.87); }\n .ngx-mdc-chip--secondary {\n background-color: #018786;\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--secondary::before, .ngx-mdc-chip--secondary::after {\n background-color: white; }\n @supports not (-ms-ime-align: auto) {\n .ngx-mdc-chip--secondary::before, .ngx-mdc-chip--secondary::after {\n /* @alternate */\n background-color: var(--mdc-theme-text-primary-on-dark, white); } }\n .ngx-mdc-chip--secondary:hover::before {\n opacity: 0.08; }\n .ngx-mdc-chip--secondary:not(.mdc-ripple-upgraded):focus::before, .ngx-mdc-chip--secondary.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-chip--secondary:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .ngx-mdc-chip--secondary:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-chip--secondary.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .ngx-mdc-chip--secondary:hover {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--secondary.mdc-chip--selected::before {\n opacity: 0.16; }\n .ngx-mdc-chip--secondary.mdc-chip--selected::before, .ngx-mdc-chip--secondary.mdc-chip--selected::after {\n background-color: white; }\n @supports not (-ms-ime-align: auto) {\n .ngx-mdc-chip--secondary.mdc-chip--selected::before, .ngx-mdc-chip--secondary.mdc-chip--selected::after {\n /* @alternate */\n background-color: var(--mdc-theme-text-primary-on-dark, white); } }\n .ngx-mdc-chip--secondary.mdc-chip--selected:hover::before {\n opacity: 0.24; }\n .ngx-mdc-chip--secondary.mdc-chip--selected:not(.mdc-ripple-upgraded):focus::before, .ngx-mdc-chip--secondary.mdc-chip--selected.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.4; }\n .ngx-mdc-chip--secondary.mdc-chip--selected:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .ngx-mdc-chip--secondary.mdc-chip--selected:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.4; }\n .ngx-mdc-chip--secondary.mdc-chip--selected.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.4; }\n .ngx-mdc-chip--secondary.mdc-chip--selected {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--secondary.mdc-chip--selected .mdc-chip__icon--leading {\n color: rgba(255, 255, 255, 0.54); }\n .ngx-mdc-chip--secondary.mdc-chip--selected:hover {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--secondary .mdc-chip__checkmark-path {\n stroke: white;\n /* @alternate */\n stroke: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--secondary .mdc-chip__icon--leading {\n color: rgba(255, 255, 255, 0.54); }\n .ngx-mdc-chip--secondary .mdc-chip__icon--trailing {\n color: rgba(255, 255, 255, 0.54); }\n .ngx-mdc-chip--secondary .mdc-chip__icon--trailing:hover {\n color: rgba(255, 255, 255, 0.62); }\n .ngx-mdc-chip--secondary .mdc-chip__icon--trailing:focus {\n color: rgba(255, 255, 255, 0.87); }\n .ngx-mdc-fab-extended--fluid {\n width: 100%; }\n .ngx-mdc-fab--bottom-right {\n position: fixed;\n right: 1rem;\n bottom: 1rem; }\n @media (min-width: 1024px) {\n .ngx-mdc-fab--bottom-right {\n right: 1.5rem;\n bottom: 1.5rem; } }\n .ngx-mdc-fab--bottom-left {\n position: fixed;\n bottom: 1rem;\n left: 1rem; }\n @media (min-width: 1024px) {\n .ngx-mdc-fab--bottom-left {\n bottom: 1.5rem;\n left: 1.5rem; } }\n .ngx-mdc-icon--clickable,\na.ngx-mdc-icon {\n outline: none;\n text-decoration: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .ngx-mdc-icon--inline {\n font-size: inherit;\n height: inherit;\n line-height: inherit;\n width: inherit; }\n .mdc-image-list__item {\n display: block; }\n .mdc-linear-progress {\n display: block; }\n .mdc-linear-progress--secondary .mdc-linear-progress__bar-inner {\n background-color: #018786; }\n .mdc-list,\n.mdc-list-divider {\n display: block; }\n .ngx-mdc-list--border {\n /* Ensure adjacent borders don't collide with one another. */ }\n .ngx-mdc-list--border .mdc-list-item {\n /* Add the list side padding padding to the list item. */\n padding: 0 16px;\n /* Add a border around each element. */\n border: 1px solid rgba(0, 0, 0, 0.12); }\n .ngx-mdc-list--border .mdc-list-item:not(:first-child) {\n border-top: none; }\n .mdc-menu-surface--anchor {\n display: inline-block; }\n .mdc-select__native-control {\n -webkit-appearance: none; }\n .mdc-slider {\n display: inline-block; }\n @media (min-width: 480px) {\n .ngx-mdc-snackbar--trailing {\n justify-content: flex-end; } }\n .ngx-mdc-tab--disabled {\n cursor: default;\n pointer-events: none; }\n .ngx-mdc-tab--disabled .mdc-tab__text-label {\n color: rgba(0, 0, 0, 0.3); }\n .ngx-mdc-tab--disabled .mdc-tab__icon {\n color: rgba(0, 0, 0, 0.3);\n fill: currentColor; }\n .ngx-mdc-tab--disabled .mdc-tab-indicator > .mdc-tab-indicator__content--underline {\n background-color: rgba(0, 0, 0, 0.3); }\n .mdc-tab-bar {\n display: block; }\n .mdc-tab-scroller {\n display: block; }\n @Include mdc-tab-fixed-width(30px);\n .header {\n position: -webkit-sticky;\n position: sticky;\n top: 0; }\n .main-content {\n height: 100%; }\n .main-app-bar {\n background-color: #363640; }\n .main-app-bar .mdc-tab-bar {\n margin-top: 1em; }\n @media (max-width: 599px) {\n .main-app-bar .mdc-tab-bar {\n margin-top: .5em; } }\n .main-app-bar .mdc-tab-bar .mdc-tab .mdc-tab__text-label {\n color: #fff;\n /* @alternate */\n color: var(--mdc-theme-on-primary, #fff); }\n .main-app-bar .mdc-tab-bar .mdc-tab .mdc-tab__icon {\n color: #fff;\n /* @alternate */\n color: var(--mdc-theme-on-primary, #fff);\n fill: currentColor; }\n .main-app-bar .mdc-tab-bar .mdc-tab__ripple::before, .main-app-bar .mdc-tab-bar .mdc-tab__ripple::after {\n background-color: #1976d2; }\n .main-app-bar .mdc-tab-bar .mdc-tab__ripple:hover::before {\n opacity: 0.04; }\n .main-app-bar .mdc-tab-bar .mdc-tab__ripple:not(.mdc-ripple-upgraded):focus::before, .main-app-bar .mdc-tab-bar .mdc-tab__ripple.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .main-app-bar .mdc-tab-bar .mdc-tab__ripple:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .main-app-bar .mdc-tab-bar .mdc-tab__ripple:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .main-app-bar .mdc-tab-bar .mdc-tab__ripple.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .main-app-bar .mdc-tab-bar .mdc-tab-indicator > .mdc-tab-indicator__content--underline {\n background-color: #1976d2; }\n .main-app-bar .mdc-tab-bar .mdc-tab-indicator > .mdc-tab-indicator__content--underline {\n height: 3px; }\n .mdc-tab {\n font-size: 10px;\n width: 72px; }\n .main-drawer-container {\n overflow: hidden;\n position: relative;\n height: calc(100vh - 64px);\n margin-top: 64px; }\n .cdk-virtual-scroll-content-wrapper {\n margin-top: 20px; }\n .app-drawer-contents {\n padding: 20px; }\n @media (max-width: 499px) {\n .main-drawer {\n width: 200px;\n height: calc(100vh - 56px);\n margin-top: -8px; }\n .main-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content {\n /* @noflip */\n margin-left: 200px;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .main-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content, .main-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 200px; } }\n @media (max-width: 600px) {\n .main-drawer {\n width: 300px;\n height: calc(100vh - 56px);\n margin-top: -8px; }\n .main-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content {\n /* @noflip */\n margin-left: 300px;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .main-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content, .main-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 300px; } }\n @media (min-width: 601px) {\n .main-drawer {\n width: 500px;\n height: calc(100vh - 64px); }\n .main-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content {\n /* @noflip */\n margin-left: 500px;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .main-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content, .main-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 500px; } }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxidXR0b25cXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0eXBvZ3JhcGh5XFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdHlwb2dyYXBoeVxcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHR5cG9ncmFwaHlcXF9mdW5jdGlvbnMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxidXR0b25cXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxzaGFwZVxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHNoYXBlXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdGhlbWVcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0aGVtZVxcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHJ0bFxcX21peGlucy5zY3NzIiwic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcZWxldmF0aW9uXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcZWxldmF0aW9uXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xccmlwcGxlXFxfa2V5ZnJhbWVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcYW5pbWF0aW9uXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xccmlwcGxlXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xccmlwcGxlXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcY2FyZFxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGNhcmRcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxjaGVja2JveFxcX2tleWZyYW1lcy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGNoZWNrYm94XFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcY2hlY2tib3hcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxjaGlwc1xcY2hpcFxcbWRjLWNoaXAuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxzaGFwZVxcX2Z1bmN0aW9ucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGNoaXBzXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcY2hpcHNcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxjaGlwc1xcY2hpcC1zZXRcXG1kYy1jaGlwLXNldC5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGRpYWxvZ1xcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGRpYWxvZ1xcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGRyYXdlclxcY29tbW9uLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcZHJhd2VyXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcZHJhd2VyXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcbGlzdFxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGRyYXdlclxcZGlzbWlzc2libGVcXG1kYy1kcmF3ZXItZGlzbWlzc2libGUuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxkcmF3ZXJcXG1vZGFsXFxtZGMtZHJhd2VyLW1vZGFsLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcZmFiXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcZmFiXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcZmxvYXRpbmctbGFiZWxcXG1kYy1mbG9hdGluZy1sYWJlbC5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGZsb2F0aW5nLWxhYmVsXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcZm9ybS1maWVsZFxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGZvcm0tZmllbGRcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxpY29uLWJ1dHRvblxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGljb24tYnV0dG9uXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcaW1hZ2UtbGlzdFxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGltYWdlLWxpc3RcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxsYXlvdXQtZ3JpZFxcbWRjLWxheW91dC1ncmlkLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcbGF5b3V0LWdyaWRcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxsYXlvdXQtZ3JpZFxcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGxpbmUtcmlwcGxlXFxtZGMtbGluZS1yaXBwbGUuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxsaW5lYXItcHJvZ3Jlc3NcXF9rZXlmcmFtZXMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxsaW5lYXItcHJvZ3Jlc3NcXG1kYy1saW5lYXItcHJvZ3Jlc3Muc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxsaW5lYXItcHJvZ3Jlc3NcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxsaW5lYXItcHJvZ3Jlc3NcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxsaXN0XFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcbWVudVxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXG1lbnVcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxtZW51LXN1cmZhY2VcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxtZW51LXN1cmZhY2VcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxub3RjaGVkLW91dGxpbmVcXG1kYy1ub3RjaGVkLW91dGxpbmUuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxub3RjaGVkLW91dGxpbmVcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxyYWRpb1xcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHJhZGlvXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc2VsZWN0XFxfa2V5ZnJhbWVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc2VsZWN0XFxpY29uXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc2VsZWN0XFxpY29uXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc2VsZWN0XFxpY29uXFxtZGMtc2VsZWN0LWljb24uc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxzZWxlY3RcXGhlbHBlci10ZXh0XFxtZGMtc2VsZWN0LWhlbHBlci10ZXh0LnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc2VsZWN0XFxtZGMtc2VsZWN0LnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc2VsZWN0XFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc2VsZWN0XFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc2VsZWN0XFxoZWxwZXItdGV4dFxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXG5vdGNoZWQtb3V0bGluZVxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHNsaWRlclxcX2tleWZyYW1lcy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHNsaWRlclxcbWRjLXNsaWRlci5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHNsaWRlclxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHNuYWNrYmFyXFxtZGMtc25hY2tiYXIuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxzbmFja2JhclxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHNuYWNrYmFyXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc3dpdGNoXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc3dpdGNoXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdGFiLWluZGljYXRvclxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRhYlxcbWRjLXRhYi5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRhYlxcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRhYlxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRhYi1iYXJcXG1kYy10YWItYmFyLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdGFiLWJhclxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRhYi1pbmRpY2F0b3JcXG1kYy10YWItaW5kaWNhdG9yLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdGFiLXNjcm9sbGVyXFxtZGMtdGFiLXNjcm9sbGVyLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdGV4dGZpZWxkXFxoZWxwZXItdGV4dFxcbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0ZXh0ZmllbGRcXGNoYXJhY3Rlci1jb3VudGVyXFxtZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlci5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRleHRmaWVsZFxcaWNvblxcbWRjLXRleHQtZmllbGQtaWNvbi5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRleHRmaWVsZFxcbWRjLXRleHQtZmllbGQuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0ZXh0ZmllbGRcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0ZXh0ZmllbGRcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0ZXh0ZmllbGRcXGhlbHBlci10ZXh0XFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdGV4dGZpZWxkXFxjaGFyYWN0ZXItY291bnRlclxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRleHRmaWVsZFxcaWNvblxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRleHRmaWVsZFxcaWNvblxcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRvcC1hcHAtYmFyXFxtZGMtdG9wLWFwcC1iYXIuc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0b3AtYXBwLWJhclxcX21peGlucy5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRvcC1hcHAtYmFyXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxtZGMtZm9ybS1maWVsZC5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLWNoaXBzLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxtZGMtZmFiLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxtZGMtaWNvbi5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLWltYWdlLWxpc3Quc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxleHRlbmRcXG1kYy1saW5lYXItcHJvZ3Jlc3Muc2NzcyIsInNyYy9hcHAvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxleHRlbmRcXG1kYy1saXN0LnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxtZGMtbWVudS5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLXNlbGVjdC5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLXNsaWRlci5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLXNuYWNrYmFyLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxtZGMtdGFiLnNjc3MiLCJzcmMvYXBwL0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxtZGMtdGFiLWJhci5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLXRhYi1zY3JvbGxlci5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9zcmNcXGFwcFxcYXBwLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRoZW1lXFxfY29sb3ItcGFsZXR0ZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThDRTtFQ1lJLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLG9CQzJFa0I7RUQzRWxCLHFCQzRFb0I7RUQ1RXBCLGlCQ3RCTztFRHNCUCw2QkVnQnVDO0VGaEJ2QyxzQkMrRXFCO0VEL0Vy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VDtFQW1CRDtJQUlJLDBCQUF5QjtJQUl6QixjQzdNTSxFRCtNVDtFQVdDO0lBRUksaUNBQXdELEVBRTNEO0VBRUQ7SUFFSSwwQkM5TzBCO0lEbVAxQixjQ3RPSSxFRHdPUDtFQUdIO0lBRUksOEJBQXdCLEVBRTNCO0VPbFBIO0lmb0RNLDJCQzNDK0UsRWlCc0JsRjtFSC9CSDs7SWJrT0UsYUFBYTtJQUNiLGtCZWxOc0M7SWZtTnRDLGFBQWE7SUFDYixrQmV0TnNDO0lDb0lwQyxpQkRySW1DO0lDc0luQyxvQkRwSXNDLEVDcUl2QztFZm94QkM7OztNRGpzQkEsYUFBYTtNQUNiLGlCZTFOb0M7TWYyTnBDLGFBQWE7TUFDYixtQmUxTm9DLEVmK0JuQztFYWhETDtJZnFGTSxZQzVFK0U7SUQrRjdFLGdCQUFnQjtJQUNoQix5Q0FBNEQsRWVwRmpFO0VHd0VEO0VBQ0UsMkJqQnJGaUYsRWlCc0ZsRjtFQVFEO0VBQ0UsMkJqQi9GaUYsRWlCd0dsRjtFQVZEO0lBSUksMkJqQmxHK0UsRWlCbUdoRjtFQUxIO0lBUUksMkJqQnRHK0UsRWlCdUdoRjtFQVNIO0VBWUEsWURsSStCO0VDbUkvQixhRG5JK0I7RUNvSS9CLGdCRHBJK0IsRUN3SDlCO0VBSUQ7RUFNQSxZRGpJZ0M7RUNrSWhDLGFEbElnQztFQ21JaEMsZ0JEbklnQyxFQzZIL0I7RUE0QkQ7RUFDRSxxQkR4SW9DLEVDeUlyQztFSC9ISDtFQUNFLHlJRUxtQjtFRk1uQixXQUFVLEVBQ1g7RUFFRDtFQUNFLG9CQUFtQixFQUNwQjtFQUVEO0VBQ0UsbUJBQWtCO0VBQ2xCLGNBQWE7RUFDYix1QkFBc0IsRUFDdkI7RUFFRDtFQUNFLGFFN0MrQixFRjhDaEM7RUFFRDtFQUNFLHNFUjNEb0U7RVFpRXBFLGtCQUFpQjtFQUNqQiw4QkZuRHlDO0VFb0R6Qyw2QkZwRHlDLEVFcUQxQztFQUVEO0VBQ0UscUJBQW9CLEVBQ3JCO0VQME5HO0VBR0ksY0MxUk8sRUQ0UlY7RUFuSUg7RVJ4RUksMEJDdkZxQixFTzBLeEI7RVIzRTBDO0lBRWpDO01BQ0UsZ0JBQWdCO01BQ2hC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K0UsRXdCaVZsRjtFSHhWSDtJdEJrRE0sMEJDM0MrRSxFc0JvQ2xGO0VEM0NIO0l0QmtETSwwQkMzQytFLEV3QjZTbEY7RUhwVEg7SXRCa0RNLDJCQzNDK0UsRXNCNEVsRjtFRG5GSDtJdEJrRE0sZUN0RHFCLEV3QndUeEI7RUhwVEg7SXRCa0RNLDhCQ3REcUIsRXNCK0V4QjtFcEJ1dUNEO0lMMXlDTSxhQUFhO0lBQ2IsdUJDbEI0QixFR3VEL0I7RW9COUNMO0l4QklJLG1Cd0JNdUMsRUcwVHhDO0VIcFVIO0lwQmdPRSxhQUFhO0lBQ2IsbUJzQnpOc0I7SXRCME50QixhQUFhO0lBQ2IsZ0JBdEhlLEVxQkFkO0VwQitzQ0M7TUR0bENBLGFBQWE7TUFDYixlQTFIYTtNQTJIYixhQUFhO01BQ2Isb0JzQmpPb0IsRXRCc0NuQjtFQ214Q0g7SW1CcnlDRSxhQUFhO0lBQ2Isc0JBQXFCO0lBQ3JCLGFBQWE7SUFDYix1QkFBc0I7SUFDdEIsYUFBYTtJQUNiLHlCQUF3QjtJQUN4QixhQUFhO0lBQ2IseUJBQXdCLEVwQld2QjtFb0I5Q0w7STVCd0JNLGdDQ2xDeUM7SURrQ3pDLG1DQzlCOEI7SUQ4QjlCLG9DQzdCK0I7SUQ2Qi9CLG9CQzJDa0I7SUQzQ2xCLHNCQzRDcUI7SUQ1Q3JCLGlCQ3RCTztJRHNCUCw2QkVnQnVDO0lGaEJ2Qyx5QkMrQ3dCO0lEL0N4Qix3QkNnRHVCO0kyQjlCekIsNkJBQXlEO0lBRXpELGdCQUErQztJQUMvQyxlQUEwQyxFQUMzQztFQTlDSDtJQWtESSxnQkFBZSxFQUNoQjtFQW5ESDtJQXVESSxpQkFBZ0IsRUFDakI7RUF4REg7STVCd0JNLGdDQ2xDeUM7SURrQ3pDLG1DQzlCOEI7SUQ4QjlCLG9DQzdCK0I7SUQ2Qi9CLG9CQzJEa0I7SUQzRGxCLHFCQzREb0I7SUQ1RHBCLGlCQ3ZCUTtJRHVCUiw2QkVnQnVDO0lGaEJ2Qyx5QkMrRHdCO0lEL0R4Qix3QkNnRXVCO0lENUN6QixlQUFjO0lBQ2QsY0FBYTtJQUNiLGdCQUFnQjtJQUNoQixvQkFBbUI7STRCZ0JuQixVQUFTO0lBQ1QsZ0JF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O0lBSE87O01DbUJkLHlCQUFxQztNQUNyQyw4REFBc0csRURqQi9GO01DbUJrQjtRRHRCWDs7VUN1QlosWUFBVztVQUNYLHdCQzdETSxFRndDRCxFQUFBO0lBSE87O01DbUJkLHlCQUFxQztNQUNyQyw4REFBc0csRURqQi9GO01DbUJrQjtRRHRCWDs7VUN1QlosWUFBVztVQUNYLHdCQzdETSxFRndDRCxFQUFBO0lBSE87O01DbUJkLHlCQUFxQztNQUNyQyw4REFBc0csRURqQi9GO01DbUJrQjtRRHRCWDs7VUN1QlosWUFBVztVQUNYLHdCQzdETSxFRndDRCxFQUFBO0lBSE87O01DbUJkLHlCQUFxQztNQUNyQyw4REFBc0csRURqQi9GO01DbUJrQjtRRHRCWDs7VUN1QlosWUFBVztVQUNYLHdCQzdETSxFRndDRCxFQUFBO0lBSE87O01DbUJkLHlCQUFxQztNQUNyQyw4REFBc0csRURqQi9GO01DbUJrQjtRRHRCWDs7VUN1QlosWUFBVztVQUNYLHdCQzdETSxFRndDRCxFQUFBO0lBSE87O01DbUJkLHlCQUFxQztNQUNyQyw4REFBc0csRURqQi9GO01DbUJrQjtRRHRCWDs7VUN1QlosWUFBVztVQUNYLHdCQzdETSxFRndDRCxFQUFBLEVBQUE7RUFRTDtFQ3NFRixTRHZFYyxFQUdYO0VBRkQ7RUNzRUYsU0R2RWMsRUFHWDtFQUZEO0VDc0VGLFNEdkVjLEVBR1g7RUFGRDtFQ3NFRixTRHZFYyxFQUdYO0VBRkQ7RUNzRUYsU0R2RWMsRUFHWDtFQUZEO0VDc0VGLFNEdkVjLEVBR1g7RUFGRDtFQ3NFRixTRHZFYyxFQUdYO0VBRkQ7RUNzRUYsU0R2RWMsRUFHWDtFQUZEO0VDc0VGLFNEdkVjLEVBR1g7RUFGRDtFQ3NFRixVRHZFYyxFQUdYO0VBRkQ7RUNzRUYsVUR2RWMsRUFHWDtFQUZEO0VDc0VGLFVEdkVjLEVBR1g7RUFJSDtFQ3FFRSx1QkFBc0IsRURuRXZCO0VDcUUwQjtJRHZFM0I7TUN3RUksa0JBQWlCLEVEdEVwQixFQUFBO0VBRUQ7RUN5RUUsbUJBQWtCLEVEdkVuQjtFQUVEO0VDeUVFLHFCQUFvQixF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U0kscUJBQW9CO0lBQ3BCLHFCQUFvQixFQUNyQjtFRnBTSDtFNURVTSxlQzFFbUI7RUQ2RmpCLGdCQUFnQjtFQUNoQix1Q0FBNEQsRThEOURqRTtFRmdDSDs7RTVEVU0sNkJDMUVtQjtFRDZGakIsZ0JBQWdCO0VBQ2hCLHFEQUE0RCxFOEQwQ2pFO0VGeEVIO0U1RFVNLDBCQzFFbUI7RUQ2RmpCLGdCQUFnQjtFQUNoQixrREFBNEQsRThEV2pFO0VGekNIO0U1RHZCTSxlQ3pDbUIsRTZET3BCO0VGeURMO0U1RFVNLGVDMUVtQjtFRDZGakIsZ0JBQWdCO0VBQ2hCLHVDQUE0RCxFK0QzRmpFO0VINkRIO0U1RFVNLDZCQzFFbUI7RUQ2RmpCLGdCQUFnQjtFQUNoQixxREFBNEQsRThEaEZqRTtFRTVCRDs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsOENBQTRELEVnRXhHakU7RUFKRDs7Ozs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsOENBQTRELEVnRXhHakU7RUFJRDs7O0VBR0Usa0JGaUg2QyxFRWhIOUM7RUFaRDs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsOENBQTRELEVnRXhHakU7RUowRUg7RUUwRkUsZ2ZBR1EsRUYzRVA7RUFsQkg7RUFzQkksV0FBVSxFQUNYO0VBR0g7RUFHSSxhQUFZLEVBQ2I7RUFHSDtFNUR4RE0sMEI2RHBDbUc7RUNzVHZHLGdCQUFlO0VBQ2YscUJBQW9CLEVGek5yQjtFQUZEO0k1RHhETSwyQkMzQytFLEU2RHlSbEY7RUZ0TEg7SUV5REUsZ2ZBR1EsRUE4SFA7RUYxTEg7SUU2TEksY0FBYSxFQUNkO0VGOUxIO0k1RHhETSwyQkMzQytFLEU2RHFTbEY7RUZsTUg7O0k1RHhETSwyQkMzQytFO0k2RDJTakYsNEJBQTJCLEVBQzVCO0VGek1IO0lFNE1JLHFCQUFvQixFQUNyQjtFRjdNSDtJNUR4RE0sOEI4RHdRbUQsRUFRdEQ7RUZ4Tkg7O01Fb05NLDBCQUF5QixFQUMxQjtFRXBVSDs7O01oRXVESSxrQ0MzQytFLEUr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QixhQUFtQixFQUV0QjtFQUVEO0lBRUksdUNBQXlDO0lBQ3pDLHdDQUEwQyxFQUU3QztFNEVoVEg7SXBGMkNNLDBCQzNDK0UsRXFGcWpCbEY7RUZyakJIO0lwRjJDTSwyQkMzQytFLEVxRjJnQmxGO0VGM2dCSDtJcEY0RU0scUJDdkZxQjtJRDBHbkIsZ0JBQWdCO0lBQ2hCLCtDQUE0RCxFc0ZUakU7RUZ2Rkg7SXBGMkNNLHlDQzNDK0UsRXFGbWlCbEY7RUZuaUJIO0lwRjJDTSx5Q0MzQytFLEVxRnlpQmxGO0VGemlCSDtJcEY0RU0sMEJDdkZxQjtJRDBHbkIsZ0JBQWdCO0lBQ2hCLG9EQUE0RCxFc0YrY2pFO0VGL2lCSDtJcEYyQ00seUNDM0MrRSxFcUY2aEJsRjtFRjdoQkg7SXBGMkNNLDBCQzNDK0UsRXNGQWxGO0VIQUg7O0lwRjJDTSwwQkMzQytFLEV1RlFsRjtFSlJIO0lwRjJDTSwyQkMzQytFLEV3RnNDbEY7RUx0Q0g7SXBGMkNNLDZCcUY3QzhGLEVDdUJqRztFRnJCSDtJbEZ5TkUsYUFBYTtJQUNiLFdtRjNNZ0M7SW5GNE1oQyxhQUFhO0lBQ2IsZUE1Q3FCO0lvRjRCbkIsVUFBUztJQUNULHFCQUFvQixFQUNyQjtFbkZnaEtDO01ELy9KQSxhQUFhO01BQ2IsY0FoRG1CO01BaURuQixhQUFhO01BQ2IsWW1Gbk44QixFbkZ3QjdCO0VvRnlLRjtJcEZTRCxhQUFhO0lBQ2IsVWtEdE8rQjtJbER1Ty9CLGFBQWE7SUFDYixlQTVDcUIsRW9GbUNsQjtFbkZxaEtEO01EemdLQSxhQUFhO01BQ2IsY0FoRG1CO01BaURuQixhQUFhO01BQ2IsV2tEOU82QixFbERtRDVCO0VvRitLRjtJcEZHRCxhQUFhO0lBQ2IsVWtEdE8rQjtJbER1Ty9CLGFBQWE7SUFDYixlQTVDcUI7SW9GMENqQixVQUFTLEVBQ1Y7RW5Gd2hLRDtNRHBoS0EsYUFBYTtNQUNiLGNBaERtQjtNQWlEbkIsYUFBYTtNQUNiLFdrRDlPNkIsRWxEbUQ1QjtFb0ZzTEE7SXBGSkgsYUFBYTtJQUNiLFdvRkttSDtJcEZKbkgsYUFBYTtJQUNiLGVB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O0VBdUN0QixhQUFhO0VBQ2IsWXdGOU8wQyxFRFl6QztFdEZtaUxEO0lEOXpLRSxhQUFhO0lBQ2IsV3dGbFB3QztJeEZtUHhDLGFBQWE7SUFDYixlQTlDb0IsRUE3SW5CO0VrRnVGTDtFbEYyRkUsYUFBYTtFQUNiLG1CbUZsTWlDO0VuRm1NakMsYUFBYTtFQUNiLG9Cd0Y3T2dDLEVEcUI3QjtFdEZvaUxIO0lEejBLRSxhQUFhO0lBQ2IsbUJ3RmpQOEI7SXhGa1A5QixhQUFhO0lBQ2Isb0JtRjFNK0IsRW5GZTlCO0VrRnVGTDtFbEYyRkUsYUFBYTtFQUNiLGNBdENzQjtFQXVDdEIsYUFBYTtFQUNiLFl3Ri9PaUMsRURhaEM7RXRGeWpMRDtJRHAxS0UsYUFBYTtJQUNiLFd3Rm5QK0I7SXhGb1AvQixhQUFhO0lBQ2IsZUE5Q29CLEVBN0luQjtFa0Z1Rkw7RWxGMkZFLGFBQWE7RUFDYixtQm1GbE1pQztFbkZtTWpDLGFBQWE7RUFDYixvQndGN09nQyxFRHFCN0I7RXRGMGpMSDtJRC8xS0UsYUFBYTtJQUNiLG1Cd0ZqUDhCO0l4RmtQOUIsYUFBYTtJQUNiLG9CbUYxTStCLEVuRmU5QjtFa0YyRkw7RWxGdUZFLGFBQWE7RUFDYixXd0Y3T2lDO0V4RjhPakMsYUFBYTtFQUNiLFl1RjdNOEQsRUFLN0Q7RXRGcWpMRDtJRDEyS0UsYUFBYTtJQUNiLFd1RmpONEQ7SXZGa041RCxhQUFhO0lBQ2IsWXdGclArQixFeEYwRDlCO0VrRjJGTDtJbEZ1RkUsYUFBYTtJQUNiLFl3RjVPMEM7SXhGNk8xQyxhQUFhO0lBQ2IsV3VGMU1pRSxFQUM5RDtFdEZna0xEO01EcDNLQSxhQUFhO01BQ2IsWXVGOU0rRDtNdkYrTS9ELGFBQWE7TUFDYixXd0ZwUHdDLEV4RnlEdkM7RWtGMkZMO0VsRnVGRSxhQUFhO0VBQ2IsbUJ3RjNPZ0M7RXhGNE9oQyxhQUFhO0VBQ2Isb0J3RjdPZ0MsRUQwQy9CO0V0RnFrTEQ7SUQvM0tFLGFBQWE7SUFDYixtQndGalA4QjtJeEZrUDlCLGFBQWE7SUFDYixvQndGblA4QixFeEZ3RDdCO0VrRmdHTDs7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akU7RW9CeU5IO0VwRnJJTSw2QkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIscURBQTRELEVzRm1jakU7RUZsVkg7RXBGcklNLDZCQzFFbUI7RUQ2RmpCLGdCQUFnQjtFQUNoQixxREFBNEQsRXNGeWNqRTtFRnhWSDtFcEZySU0sMEJDMUVtQjtFRDZGakIsZ0JBQWdCO0VBQ2hCLGtEQUE0RCxFc0YrY2pFO0VGOVZIO0VwRnJJTSxlQzFFbUI7RUQ2RmpCLGdCQUFnQjtFQUNoQix1Q0FBNEQsRXNGcWRqRTtFRnBXSDtFcEZySU0sZUMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsdUNBQTRELEV1RjFGakU7RUgyTUg7RXBGcklNLHFCQzFFbUI7RUQ2RmpCLGdCQUFnQjtFQUNoQiw2Q0FBNEQsRXNGVGpFO0VGMEhIO0VwRnJJTSxlQzFFbUI7RUQ2RmpCLGdCQUFnQjtFQUNoQix1Q0FBNEQsRXlGMURqRTtFTDJLSDtFcEZySU0sZUMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsdUNBQTRELEV5RjlEN0Q7RUwrS1A7RUU5RUksV0FBVSxFQUNYO0V0QmhKRDs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsOENBQTRELEVnRXhHakU7RUFKRDs7Ozs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsOENBQTRELEVnRXhHakU7RUFKRDs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsOENBQTRELEVnRXhHakU7RUFKRDs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsOENBQTRELEVnRXhHakU7RUFKRDs7Ozs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsOENBQTRELEVnRXhHakU7RUFKRDs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsOENBQTRELEVnRXhHakU7RW9CcU9IO0VwRmxMTSwwQnFGNUN1RztFQ3lHM0csb0JBQW1CO0VBQ25CLHFCQUFvQixFRnNIckI7RUFGRDtJcEZsTE0seUNDM0MrRSxFcUZt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QkF6SGMsRUFsRWI7RTBGY0Q7SUFFSSxvQkNqRG1ELEVEa0RwRDtFQUdIO0lBQ0Usa0JDbkVrQyxFRG9FbkMsRUFBQTtFbEczRUg7RUFnQkksZ0NDbkJ5QztFRG1CekMsbUNDZjhCO0VEZTlCLG9DQ2QrQixFREFsQztFQUdDO0VBMEJFLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLGdCQ2JlO0VEYWYsa0JDWmlCO0VEWWpCLGlCQ3hCTTtFRHdCTiw0QkVnQnVDO0VGaEJ2Qyx5QkNUd0I7RURTeEIsd0JDUnVCLEVEaEJ4QjtFQUZEO0VBMEJFLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLG1CQ0xrQjtFREtsQixxQkNKb0I7RURJcEIsaUJDeEJNO0VEd0JOLDhCRWdCdUM7RUZoQnZDLHlCQ0R3QjtFREN4Qix3QkNBdUIsRUR4QnhCO0VBRkQ7RUEwQkUsZ0NDbEN5QztFRGtDekMsbUNDOUI4QjtFRDhCOUIsb0NDN0IrQjtFRDZCL0IsZ0JDR2U7RURIZixzQkNJcUI7RURKckIsaUJDdkJRO0VEdUJSLHVCQ01zQjtFRE50Qix5QkNPd0I7RURQeEIsd0JDUXVCLEVEaEN4QjtFQUZEO0VBMEJFLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLG9CQ1dtQjtFRFhuQixvQkNZbUI7RURabkIsaUJDdkJRO0VEdUJSLDZCRWdCdUM7RUZoQnZDLHlCQ2V3QjtFRGZ4Qix3QkNnQnVCLEVEeEN4QjtFQUZEO0VBMEJFLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLGtCQ21CaUI7RURuQmpCLGtCQ29CaUI7RURwQmpCLGlCQ3ZCUTtFRHVCUix1QkNzQnNCO0VEdEJ0Qix5QkN1QndCO0VEdkJ4Qix3QkN3QnVCLEVEaER4QjtFQUZEO0VBMEJFLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLG1CQzJCa0I7RUQzQmxCLGtCQzRCaUI7RUQ1QmpCLGlCQ3RCTztFRHNCUCx5QkVnQnVDO0VGaEJ2Qyx5QkMrQndCO0VEL0J4Qix3QkNnQ3VCLEVEeER4QjtFQUZEO0VBMEJFLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLGdCQ21DZTtFRG5DZixxQkNvQ29CO0VEcENwQixpQkN2QlE7RUR1QlIsMkJFZ0J1QztFRmhCdkMseUJDdUN3QjtFRHZDeEIsd0JDd0N1QixFRGhFeEI7RUFGRDtFQTBCRSxnQ0NsQ3lDO0VEa0N6QyxtQ0M5QjhCO0VEOEI5QixvQ0M3QitCO0VENkIvQixvQkMyQ2tCO0VEM0NsQixzQkM0Q3FCO0VENUNyQixpQkN0Qk87RURzQlAsNkJFZ0J1QztFRmhCdkMseUJDK0N3QjtFRC9DeEIsd0JDZ0R1QixFRHhFeEI7RUFGRDtFQTBCRSxnQ0NsQ3lDO0VEa0N6QyxtQ0M5QjhCO0VEOEI5QixvQ0M3QitCO0VENkIvQixnQkNtRGU7RURuRGYsb0JDb0RtQjtFRHBEbkIsaUJDdkJRO0VEdUJSLDBCRWdCdUM7RUZoQnZDLHlCQ3VEd0I7RUR2RHhCLHdCQ3dEdUIsRURoRnhCO0VBRkQ7RUEwQkUsZ0NDbEN5QztFRGtDekMsbUNDOUI4QjtFRDhCOUIsb0NDN0IrQjtFRDZCL0Isb0JDMkRrQjtFRDNEbEIscUJDNERvQjtFRDVEcEIsaUJDdkJRO0VEdUJSLDZCRWdCdUM7RUZoQnZDLHlCQytEd0I7RUQvRHhCLHdCQ2dFdUIsRUR4RnhCO0VBRkQ7RUEwQkUsZ0NDbEN5QztFRGtDekMsbUNDOUI4QjtFRDhCOUIsb0NDN0IrQjtFRDZCL0IsbUJDbUVpQjtFRG5FakIscUJDb0VvQjtFRHBFcEIsaUJDdkJRO0VEdUJSLDZCRWdCdUM7RUZoQnZDLHlCQ3VFd0I7RUR2RXhCLHdCQ3dFdUIsRURoR3hCO0VBRkQ7RUEwQkUsZ0NDbEN5QztFRGtDekMsbUNDOUI4QjtFRDhCOUIsb0NDN0IrQjtFRDZCL0Isb0JDMkVrQjtFRDNFbEIscUJDNEVvQjtFRDVFcEIsaUJDdEJPO0VEc0JQLDZCRWdCdUM7RUZoQnZDLHNCQytFcUI7RUQvRXJCLDBCQ2dGeUIsRUR4RzFCO0VBRkQ7RUEwQkUsZ0NDbEN5QztFRGtDekMsbUNDOUI4QjtFRDhCOUIsb0NDN0IrQjtFRDZCL0IsbUJDbUZpQjtFRG5GakIsa0JDb0ZpQjtFRHBGakIsaUJDdEJPO0VEc0JQLDZCRWdCdUM7RUZoQnZDLHNCQ3VGcUI7RUR2RnJCLDBCQ3dGeUIsRURoSDFCO0VvR2xDTDtFQUNFLGNBQWE7RUFDYixXQUFVO0VBQ1YsdUJBQXNCLEVBQ3ZCO0VyR3VKQztFT3ZFSSwwQkN0RHFCLEVSaUl4QjtFQTBCRDtFT3BFSSxhQzFEWTtFRDZFVixnQkFBZ0I7RUFDaEIsb0RBQTRELEVQb0RqRTtFZUFEO0VSeEVJLHdCQzFEWSxFTzZJZjtFUjNFMEM7SUFFakM7TUFDRSxnQkFBZ0I7TUFDaEIsK0RBQTRELEVBQzdELEVBQUE7RVE2RVg7RUFHSSxjQ3pLTSxFRDJLVDtFQW1CRDtFQUlJLDBCQUF5QjtFQUl6QixjQ3JNTSxFRHVNVDtFQVdDO0VBRUksaUNBQXdELEVBRTNEO0VBRUQ7RUFFSSwwQkM5TzBCO0VEbVAxQixjQzlOSSxFRGdPUDtFQUdIO0VBRUksOEJBQXdCLEVBRTNCO0VmdkhEO0VPdkVJLDBCQ2pEb0IsRVI0SHZCO0VBMEJEO0VPcEVJLGFDMURZO0VENkVWLGdCQUFnQjtFQUNoQixvREFBNEQsRVBvRGpFO0VlQUQ7RVJ4RUksd0JDMURZLEVPNklmO0VSM0UwQztJQUVqQztNQUNFLGdCQUFnQjtNQUNoQiwrREFBNEQsRUFDN0QsRUFBQTtFUTZFWDtFQUdJLGNDektNLEVEMktUO0VBbUJEO0VBSUksMEJBQXlCO0VBSXpCLGNDck1NLEVEdU1UO0VBV0M7RUFFSSxpQ0FBd0QsRUFFM0Q7RUFFRDtFQUVJLDBCQzlPMEI7RURtUDFCLGNDOU5JLEVEZ09QO0VBR0g7RUFFSSw4QkFBd0IsRUFFM0I7RXVGbFJIO0UvRm9GTSwwQkN0RHFCO0VEdUZyQixhQzFEWTtFRDZFVixnQkFBZ0I7RUFDaEIsb0RBQTRELEUrRnZJbkU7RXZGMkxDO0lSeEVJLHdCQzFEWSxFTzZJZjtFUjNFMEM7TUFFakM7UUFD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QUFhO1FBQ2IsZUExSGE7UUEySGIsYUFBYTtRQUNiLG9CMEcvTGlDLEUxR0loQyxFQUFBIiwiZmlsZSI6InNyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcmlwcGxlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90eXBvZ3JhcGh5L21peGluc1wiO1xuQGltcG9ydCBcIi4uL3NoYXBlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3NoYXBlL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtYnV0dG9uLWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi13aXRob3V0LXJpcHBsZSgkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtYnV0dG9uLXJpcHBsZSgkcXVlcnkpO1xufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBidXR0b24gc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtYnV0dG9uLWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIG1kYy1idXR0b24td2l0aG91dC1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBidXR0b25cbiAgLm1kYy1idXR0b24ge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tYmFzZV8oJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLXNoYXBlLXJhZGl1cyhzbWFsbCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IodHJhbnNwYXJlbnQsICRxdWVyeSk7XG5cbiAgICAvLyBUaGUgaWNvbiBDU1MgY2xhc3Mgb3ZlcnJpZGVzIHN0eWxlcyBkZWZpbmVkIGluIHRoZSAubWF0ZXJpYWwtaWNvbnMgQ1NTXG4gICAgLy8gY2xhc3MsIHdoaWNoIGlzIGxvYWRlZCBzZXBhcmF0ZWx5IHNvIHRoZSBvcmRlciBvZiBDU1MgZGVmaW5pdGlvbnMgaXMgbm90XG4gICAgLy8gZ3VhcmFudGVlZC4gVGhlcmVmb3JlLCBpbmNyZWFzZSBzcGVjaWZpdHkgYnkgbmVzdGluZyB0aGlzIGNsYXNzIHRvIGVuc3VyZVxuICAgIC8vIG92ZXJyaWRlcyBhcHBseS5cbiAgICAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtYnV0dG9uX19pY29uXztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWluay1jb2xvcihwcmltYXJ5LCAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtYnV0dG9uX19pY29uLXRyYWlsaW5nXztcbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG4gIHN2Zy5tZGMtYnV0dG9uX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWJ1dHRvbl9faWNvbi1zdmdfO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQsXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkLFxuICAubWRjLWJ1dHRvbi0tb3V0bGluZWQge1xuICAgIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIC8vIEljb25zIGluc2lkZSBjb250YWluZWQgYnV0dG9ucyBoYXZlIGRpZmZlcmVudCBzdHlsZXMgZHVlIHRvIGluY3JlYXNlZCBidXR0b24gcGFkZGluZ1xuICAgICAgICBAaW5jbHVkZSBtZGMtYnV0dG9uX19pY29uLWNvbnRhaW5lZF87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb24ge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWJ1dHRvbl9faWNvbi1jb250YWluZWQtdHJhaWxpbmdfO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQsXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLS1maWxsZWRfKCRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1jb250YWluZXItZmlsbC1jb2xvcihwcmltYXJ5LCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24taW5rLWNvbG9yKG9uLXByaW1hcnksICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWJ1dHRvbi0tcmFpc2VkIHtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLS1yYWlzZWRfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLWJ1dHRvbi0tb3V0bGluZWQge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tLW91dGxpbmVkXygkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tb3V0bGluZS13aWR0aCgycHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLW91dGxpbmUtY29sb3IocHJpbWFyeSwgJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtYnV0dG9uLS1kZW5zZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1idXR0b24tLWRlbnNlXztcbiAgICB9XG4gIH1cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gYnV0dG9uIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLWJ1dHRvbi1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiBtZGMtYnV0dG9uLXJpcHBsZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtY29tbW9uKCRxdWVyeSk7XG5cbiAgLm1kYy1idXR0b24ge1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZSgkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQoJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMocHJpbWFyeSwgZmFsc2UsICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWJ1dHRvbi0tcmFpc2VkLFxuICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCB7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcyhvbi1wcmltYXJ5LCBmYWxzZSwgJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1maWxsZWQtYWNjZXNzaWJsZSgkY29udGFpbmVyLWZpbGwtY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZpbGwtdG9uZTogbWRjLXRoZW1lLXRvbmUoJGNvbnRhaW5lci1maWxsLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKCRjb250YWluZXItZmlsbC1jb2xvciwgJHF1ZXJ5KTtcblxuICBAaWYgKCRmaWxsLXRvbmUgPT0gXCJkYXJrXCIpIHtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWluay1jb2xvcih0ZXh0LXByaW1hcnktb24tZGFyaywgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKHRleHQtcHJpbWFyeS1vbi1kYXJrLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24taW5rLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1saWdodCwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKHRleHQtcHJpbWFyeS1vbi1saWdodCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAvLyA6bm90KDpkaXNhYmxlZCkgaXMgdXNlZCB0byBzdXBwb3J0IGxpbmsgc3R5bGVkIGFzIGJ1dHRvblxuICAvLyBhcyBsaW5rIGRvZXMgbm90IHN1cHBvcnQgOmVuYWJsZWQgc3R5bGVcbiAgJjpub3QoOmRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yLCAkZWRnZU9wdE91dDogdHJ1ZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLW91dGxpbmUtY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gICY6bm90KDpkaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24taWNvbi1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgJjpub3QoOmRpc2FibGVkKSAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLWluay1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgJjpub3QoOmRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cyhcbiAgICBtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cygkbWRjLWJ1dHRvbi1oZWlnaHQsICRyYWRpdXMpLFxuICAgICRydGwtcmVmbGV4aXZlLFxuICAgICRxdWVyeTogJHF1ZXJ5XG4gICk7XG5cbiAgJi5tZGMtYnV0dG9uLS1kZW5zZSB7XG4gICAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cyhcbiAgICAgIG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtZGVuc2UtYnV0dG9uLWhlaWdodCwgJHJhZGl1cyksXG4gICAgICAkcnRsLXJlZmxleGl2ZSxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1ob3Jpem9udGFsLXBhZGRpbmcoJHBhZGRpbmcsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC8vICRwYWRkaW5nIHNob3VsZCBiZSBhIHNpbmdsZSB2YWx1ZTsgZW5mb3JjZSBpdCBieSBzcGVjaWZ5aW5nIGFsbCA0IHNpZGVzIGluIHRoZSBvdXRwdXRcbiAgICBwYWRkaW5nOiAwICRwYWRkaW5nIDAgJHBhZGRpbmc7XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tb3V0bGluZS13aWR0aChcbiAgJG91dGxpbmUtd2lkdGgsXG4gICRwYWRkaW5nOiAkbWRjLWJ1dHRvbi1jb250YWluZWQtaG9yaXpvbnRhbC1wYWRkaW5nLFxuICAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpXG4pIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgLy8gTm90ZTogQWRqdXN0IHBhZGRpbmcgdG8gbWFpbnRhaW4gY29uc2lzdGVudCB3aWR0aCB3aXRoIG5vbi1vdXRsaW5lZCBidXR0b25zXG4gICRwYWRkaW5nLXZhbHVlOiBtYXgoJHBhZGRpbmcgLSAkb3V0bGluZS13aWR0aCwgMCk7XG5cbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1ob3Jpem9udGFsLXBhZGRpbmcoJHBhZGRpbmctdmFsdWUsICRxdWVyeSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBib3JkZXItd2lkdGg6ICRvdXRsaW5lLXdpZHRoO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLWJhc2VfKCRxdWVyeSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShidXR0b24sICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nKCRtZGMtYnV0dG9uLWhvcml6b250YWwtcGFkZGluZywgJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLXdpZHRoOiA2NHB4O1xuICAgIGhlaWdodDogJG1kYy1idXR0b24taGVpZ2h0O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBpZ25vcmVcbiAgJjphY3RpdmUge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgdHJhbnNwYXJlbnQpO1xuXG4gICAgICBjb2xvcjogJG1kYy1idXR0b24tZGlzYWJsZWQtaW5rLWNvbG9yO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b25fX2ljb25fIHtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgcmlnaHQsIDhweCk7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uX19pY29uLXRyYWlsaW5nXyB7XG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIGxlZnQsIDhweCk7XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uX19pY29uLXN2Z18ge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uX19pY29uLWNvbnRhaW5lZF8ge1xuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sIC00cHgsIDhweCk7XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uX19pY29uLWNvbnRhaW5lZC10cmFpbGluZ18ge1xuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sIDhweCwgLTRweCk7XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLS1vdXRsaW5lZF8oJHF1ZXJ5KSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJG1kYy1idXR0b24tZGlzYWJsZWQtaW5rLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi0tZmlsbGVkXygkcXVlcnkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1ob3Jpem9udGFsLXBhZGRpbmcoJG1kYy1idXR0b24tY29udGFpbmVkLWhvcml6b250YWwtcGFkZGluZywgJHF1ZXJ5KTtcblxuICAmOmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMTIpO1xuICAgICAgY29sb3I6ICRtZGMtYnV0dG9uLWRpc2FibGVkLWluay1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tLXJhaXNlZF8oJHF1ZXJ5KSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oMiwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oNCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oOCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbigwLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246IG1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbi12YWx1ZSgpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLS1kZW5zZV8oKSB7XG4gIGhlaWdodDogJG1kYy1kZW5zZS1idXR0b24taGVpZ2h0O1xuICBmb250LXNpemU6IC44MTI1cmVtOyAvLyAxM3NwXG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtdHlwb2dyYXBoeS1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIC5tZGMtdHlwb2dyYXBoeSB7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZSgkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICBAZWFjaCAkc3R5bGUgaW4gbWFwLWtleXMoJG1kYy10eXBvZ3JhcGh5LXN0eWxlcykge1xuICAgIC5tZGMtdHlwb2dyYXBoeS0tI3skc3R5bGV9IHtcbiAgICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KCRzdHlsZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHktYmFzZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXR5cG9ncmFwaHk6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCB0eXBvZ3JhcGh5KTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXR5cG9ncmFwaHkpIHtcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1kYy10eXBvZ3JhcGh5LWJhc2Uge1xuICAgICAgI3ska2V5fTogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHkoJHN0eWxlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXR5cG9ncmFwaHk6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCB0eXBvZ3JhcGh5KTtcbiAgJHN0eWxlLXByb3BzOiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSk7XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWRjLXR5cG9ncmFwaHktc3R5bGVzLCAkc3R5bGUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHN0eWxlIHNwZWNpZmllZCEgI3skc3R5bGV9IGRvZXNuJ3QgZXhpc3QuIENob29zZSBvbmUgb2YgI3ttYXAta2V5cygkbWRjLXR5cG9ncmFwaHktc3R5bGVzKX1cIjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtdHlwb2dyYXBoeSkge1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkc3R5bGUtcHJvcHMge1xuICAgICAgI3ska2V5fTogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuXG4vLyBFbGVtZW50IG11c3QgYmUgYGRpc3BsYXk6IGJsb2NrYCBvciBgZGlzcGxheTogaW5saW5lLWJsb2NrYCBmb3IgdGhpcyB0byB3b3JrLlxuQG1peGluIG1kYy10eXBvZ3JhcGh5LW92ZXJmbG93LWVsbGlwc2lzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKCRkaXN0YW5jZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXN0cnV0XygkZGlzdGFuY2UpO1xuXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLWJvdHRvbSgkZGlzdGFuY2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIG1hcmdpbi1ib3R0b206IC0xICogJGRpc3RhbmNlO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS1zdHJ1dF8oJGRpc3RhbmNlKTtcblxuICAgICAgdmVydGljYWwtYWxpZ246IC0xICogJGRpc3RhbmNlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtc3RydXRfKCRkaXN0YW5jZSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6ICRkaXN0YW5jZTtcbiAgY29udGVudDogXCJcIjtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi9mdW5jdGlvbnNcIjtcblxuJG1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbiRtZGMtdHlwb2dyYXBoeS1iYXNlOiAoXG4gIGZvbnQtZmFtaWx5OiAkbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGUsXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkLFxuKSAhZGVmYXVsdDtcblxuJG1kYy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXZhbHVlczogKFxuICB0aGluOiAxMDAsXG4gIGxpZ2h0OiAzMDAsXG4gIHJlZ3VsYXI6IDQwMCxcbiAgbWVkaXVtOiA1MDAsXG4gIGJvbGQ6IDcwMCxcbiAgYmxhY2s6IDkwMFxuKSAhZGVmYXVsdDtcblxuJG1kYy10eXBvZ3JhcGh5LXN0eWxlczogbWRjLXR5cG9ncmFwaHktc2V0LXN0eWxlc18oXG4gICRtZGMtdHlwb2dyYXBoeS1iYXNlLFxuICAoXG4gICAgaGVhZGxpbmUxOiAoXG4gICAgICBmb250LXNpemU6IDZyZW0sIC8vIDk2c3BcbiAgICAgIGxpbmUtaGVpZ2h0OiA2cmVtLFxuICAgICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXZhbHVlcywgbGlnaHQpLFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG1kYy10eXBvZ3JhcGh5LWdldC1sZXR0ZXItc3BhY2luZ18oLTEuNSwgNiksXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQsXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdFxuICAgICksXG4gICAgaGVhZGxpbmUyOiAoXG4gICAgICBmb250LXNpemU6IDMuNzVyZW0sIC8vIDYwc3BcbiAgICAgIGxpbmUtaGVpZ2h0OiAzLjc1cmVtLFxuICAgICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXZhbHVlcywgbGlnaHQpLFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG1kYy10eXBvZ3JhcGh5LWdldC1sZXR0ZXItc3BhY2luZ18oLS41LCAzLjc1KSxcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdCxcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0XG4gICAgKSxcbiAgICBoZWFkbGluZTM6IChcbiAgICAgIGZvbnQtc2l6ZTogM3JlbSwgLy8gNDhweFxuICAgICAgbGluZS1oZWlnaHQ6IDMuMTI1cmVtLCAvLyA1MHB4XG4gICAgICBmb250LXdlaWdodDogbWFwLWdldCgkbWRjLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdmFsdWVzLCByZWd1bGFyKSxcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWwsXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQsXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdFxuICAgICksXG4gICAgaGVhZGxpbmU0OiAoXG4gICAgICBmb250LXNpemU6IDIuMTI1cmVtLCAvLyAzNHNwXG4gICAgICBsaW5lLWhlaWdodDogMi41cmVtLCAvLyA0MHNwXG4gICAgICBmb250LXdlaWdodDogbWFwLWdldCgkbWRjLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdmFsdWVzLCByZWd1bGFyKSxcbiAgICAgIGxldHRlci1zcGFjaW5nOiBtZGMtdHlwb2dyYXBoeS1nZXQtbGV0dGVyLXNwYWNpbmdfKC4yNSwgMi4xMjUpLFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0LFxuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXRcbiAgICApLFxuICAgIGhlYWRsaW5lNTogKFxuICAgICAgZm9udC1zaXplOiAxLjVyZW0sIC8vIDI0c3BcbiAgICAgIGxpbmUtaGVpZ2h0OiAycmVtLCAvLyAzMnNwXG4gICAgICBmb250LXdlaWdodDogbWFwLWdldCgkbWRjLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdmFsdWVzLCByZWd1bGFyKSxcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWwsXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQsXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdFxuICAgICksXG4gICAgaGVhZGxpbmU2OiAoXG4gICAgICBmb250LXNpemU6IDEuMjVyZW0sIC8vIDIwc3BcbiAgICAgIGxpbmUtaGVpZ2h0OiAycmVtLCAvLyAzMnNwXG4gICAgICBmb250LXdlaWdodDogbWFwLWdldCgkbWRjLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdmFsdWVzLCBtZWRpdW0pLFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG1kYy10eXBvZ3JhcGh5LWdldC1sZXR0ZXItc3BhY2luZ18oLjI1LCAxLjI1KSxcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdCxcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0XG4gICAgKSxcbiAgICBzdWJ0aXRsZTE6IChcbiAgICAgIGZvbnQtc2l6ZTogMXJlbSwgLy8gMTZzcFxuICAgICAgbGluZS1oZWlnaHQ6IDEuNzVyZW0sIC8vIDI4c3BcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIHJlZ3VsYXIpLFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG1kYy10eXBvZ3JhcGh5LWdldC1sZXR0ZXItc3BhY2luZ18oLjE1LCAxKSxcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdCxcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0XG4gICAgKSxcbiAgICBzdWJ0aXRsZTI6IChcbiAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbSwgLy8gMTRzcFxuICAgICAgbGluZS1oZWlnaHQ6IDEuMzc1cmVtLCAvLyAyMnNwXG4gICAgICBmb250LXdlaWdodDogbWFwLWdldCgkbWRjLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdmFsdWVzLCBtZWRpdW0pLFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG1kYy10eXBvZ3JhcGh5LWdldC1sZXR0ZXItc3BhY2luZ18oLjEsIC44NzUpLFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0LFxuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXRcbiAgICApLFxuICAgIGJvZHkxOiAoXG4gICAgICBmb250LXNpemU6IDFyZW0sIC8vIDE2c3BcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW0sIC8vIDI0c3BcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIHJlZ3VsYXIpLFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG1kYy10eXBvZ3JhcGh5LWdldC1sZXR0ZXItc3BhY2luZ18oLjUsIDEpLFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0LFxuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXRcbiAgICApLFxuICAgIGJvZHkyOiAoXG4gICAgICBmb250LXNpemU6IC44NzVyZW0sIC8vIDE0c3BcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1cmVtLCAvLyAyMHNwXG4gICAgICBmb250LXdlaWdodDogbWFwLWdldCgkbWRjLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdmFsdWVzLCByZWd1bGFyKSxcbiAgICAgIGxldHRlci1zcGFjaW5nOiBtZGMtdHlwb2dyYXBoeS1nZXQtbGV0dGVyLXNwYWNpbmdfKC4yNSwgLjg3NSksXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQsXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdFxuICAgICksXG4gICAgY2FwdGlvbjogKFxuICAgICAgZm9udC1zaXplOiAuNzVyZW0sIC8vIDEyc3BcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1cmVtLCAvLyAyMHNwXG4gICAgICBmb250LXdlaWdodDogbWFwLWdldCgkbWRjLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdmFsdWVzLCByZWd1bGFyKSxcbiAgICAgIGxldHRlci1zcGFjaW5nOiBtZGMtdHlwb2dyYXBoeS1nZXQtbGV0dGVyLXNwYWNpbmdfKC40LCAuNzUpLFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0LFxuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXRcbiAgICApLFxuICAgIGJ1dHRvbjogKFxuICAgICAgZm9udC1zaXplOiAuODc1cmVtLCAvLyAxNHNwXG4gICAgICBsaW5lLWhlaWdodDogMi4yNXJlbSwgLy8gMzZzcFxuICAgICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXZhbHVlcywgbWVkaXVtKSxcbiAgICAgIGxldHRlci1zcGFjaW5nOiBtZGMtdHlwb2dyYXBoeS1nZXQtbGV0dGVyLXNwYWNpbmdfKDEuMjUsIC44NzUpLFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lLFxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZVxuICAgICksXG4gICAgb3ZlcmxpbmU6IChcbiAgICAgIGZvbnQtc2l6ZTogLjc1cmVtLCAvLyAxMnNwXG4gICAgICBsaW5lLWhlaWdodDogMnJlbSwgLy8gMzJzcFxuICAgICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXZhbHVlcywgbWVkaXVtKSxcbiAgICAgIGxldHRlci1zcGFjaW5nOiBtZGMtdHlwb2dyYXBoeS1nZXQtbGV0dGVyLXNwYWNpbmdfKDIsIC43NSksXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUsXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlXG4gICAgKSxcbiAgKVxuKSAhZGVmYXVsdDtcbiIsIlxuLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBmdW5jdGlvbiBtZGMtdHlwb2dyYXBoeS1nZXQtZ2xvYmFsLXZhcmlhYmxlXygkc3R5bGUpIHtcbiAgQGlmICRzdHlsZSA9PSBcImhlYWRsaW5lMVwiIHtcbiAgICBAcmV0dXJuICRtZGMtdHlwb2dyYXBoeS1zdHlsZXMtaGVhZGxpbmUxO1xuICB9IEBlbHNlIGlmICRzdHlsZSA9PSBcImhlYWRsaW5lMlwiIHtcbiAgICBAcmV0dXJuICRtZGMtdHlwb2dyYXBoeS1zdHlsZXMtaGVhZGxpbmUyO1xuICB9IEBlbHNlIGlmICRzdHlsZSA9PSBcImhlYWRsaW5lM1wiIHtcbiAgICBAcmV0dXJuICRtZGMtdHlwb2dyYXBoeS1zdHlsZXMtaGVhZGxpbmUzO1xuICB9IEBlbHNlIGlmICRzdHlsZSA9PSBcImhlYWRsaW5lNFwiIHtcbiAgICBAcmV0dXJuICRtZGMtdHlwb2dyYXBoeS1zdHlsZXMtaGVhZGxpbmU0O1xuICB9IEBlbHNlIGlmICRzdHlsZSA9PSBcImhlYWRsaW5lNVwiIHtcbiAgICBAcmV0dXJuICRtZGMtdHlwb2dyYXBoeS1zdHlsZXMtaGVhZGxpbmU1O1xuICB9IEBlbHNlIGlmICRzdHlsZSA9PSBcImhlYWRsaW5lNlwiIHtcbiAgICBAcmV0dXJuICRtZGMtdHlwb2dyYXBoeS1zdHlsZXMtaGVhZGxpbmU2O1xuICB9IEBlbHNlIGlmICRzdHlsZSA9PSBcInN1YnRpdGxlMVwiIHtcbiAgICBAcmV0dXJuICRtZGMtdHlwb2dyYXBoeS1zdHlsZXMtc3VidGl0bGUxO1xuICB9IEBlbHNlIGlmICRzdHlsZSA9PSBcInN1YnRpdGxlMlwiIHtcbiAgICBAcmV0dXJuICRtZGMtdHlwb2dyYXBoeS1zdHlsZXMtc3VidGl0bGUyO1xuICB9IEBlbHNlIGlmICRzdHlsZSA9PSBcImJvZHkxXCIge1xuICAgIEByZXR1cm4gJG1kYy10eXBvZ3JhcGh5LXN0eWxlcy1ib2R5MTtcbiAgfSBAZWxzZSBpZiAkc3R5bGUgPT0gXCJib2R5MlwiIHtcbiAgICBAcmV0dXJuICRtZGMtdHlwb2dyYXBoeS1zdHlsZXMtYm9keTI7XG4gIH0gQGVsc2UgaWYgJHN0eWxlID09IFwiY2FwdGlvblwiIHtcbiAgICBAcmV0dXJuICRtZGMtdHlwb2dyYXBoeS1zdHlsZXMtY2FwdGlvbjtcbiAgfSBAZWxzZSBpZiAkc3R5bGUgPT0gXCJidXR0b25cIiB7XG4gICAgQHJldHVybiAkbWRjLXR5cG9ncmFwaHktc3R5bGVzLWJ1dHRvbjtcbiAgfSBAZWxzZSBpZiAkc3R5bGUgPT0gXCJvdmVybGluZVwiIHtcbiAgICBAcmV0dXJuICRtZGMtdHlwb2dyYXBoeS1zdHlsZXMtb3ZlcmxpbmU7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gKCk7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIG1kYy10eXBvZ3JhcGh5LXNldC1zdHlsZXNfKCRiYXNlLXN0eWxlcywgJHNjYWxlLXN0eWxlcykge1xuICBAZWFjaCAkc3R5bGUsICRzdHlsZS1wcm9wcyBpbiAkc2NhbGUtc3R5bGVzIHtcblxuICAgIC8vIE1lcmdlIGJhc2UgcHJvcGVydGllcyBmb3IgYWxsIHN0eWxlcy5cbiAgICAkc3R5bGUtcHJvcHM6IG1hcC1tZXJnZSgkYmFzZS1zdHlsZXMsICRzdHlsZS1wcm9wcyk7XG5cbiAgICAvLyBNZXJnZSBnbG9iYWwgb3ZlcnJpZGVzIG9udG8gZWFjaCBzdHlsZS5cbiAgICBAaWYgZ2xvYmFsX3ZhcmlhYmxlX2V4aXN0cyh1bnF1b3RlKFwibWRjLXR5cG9ncmFwaHktc3R5bGVzLSN7JHN0eWxlfVwiKSkge1xuICAgICAgJHN0eWxlLXByb3BzOiBtYXAtbWVyZ2UoJHN0eWxlLXByb3BzLCBtZGMtdHlwb2dyYXBoeS1nZXQtZ2xvYmFsLXZhcmlhYmxlXygjeyRzdHlsZX0pKTtcbiAgICB9XG5cbiAgICAvLyBPdmVycmlkZSBvcmlnaW5hbCBzdHlsZXMgd2l0aCBuZXcgc3R5bGVzLlxuICAgICRzY2FsZS1zdHlsZXM6IG1hcC1tZXJnZSgkc2NhbGUtc3R5bGVzLCAoI3skc3R5bGV9OiAkc3R5bGUtcHJvcHMpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHNjYWxlLXN0eWxlcztcbn1cblxuQGZ1bmN0aW9uIG1kYy10eXBvZ3JhcGh5LWdldC1sZXR0ZXItc3BhY2luZ18oJHRyYWNraW5nLCAkZm9udC1zaXplKSB7XG4gIEByZXR1cm4gJHRyYWNraW5nIC8gKCRmb250LXNpemUgKiAxNikgKiAxZW07XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy1idXR0b24taGVpZ2h0OiAzNnB4ICFkZWZhdWx0O1xuJG1kYy1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG4kbWRjLWJ1dHRvbi1jb250YWluZWQtaG9yaXpvbnRhbC1wYWRkaW5nOiAxNnB4ICFkZWZhdWx0O1xuJG1kYy1kZW5zZS1idXR0b24taGVpZ2h0OiAzMnB4ICFkZWZhdWx0O1xuXG4kbWRjLWJ1dHRvbi1kaXNhYmxlZC1pbmstY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4zNykgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi9mdW5jdGlvbnNcIjtcblxuQG1peGluIG1kYy1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAvLyBFdmVuIGlmICRydGwtcmVmbGV4aXZlIGlzIHRydWUsIG9ubHkgZW1pdCBSVEwgc3R5bGVzIGlmIHdlIGNhbid0IGVhc2lseSB0ZWxsIHRoYXQgdGhlIGdpdmVuIHJhZGl1cyBpcyBzeW1tZXRyaWNhbFxuICAgICRuZWVkcy1mbGlwOiAkcnRsLXJlZmxleGl2ZSBhbmQgbGVuZ3RoKCRyYWRpdXMpID4gMTtcblxuICAgIEBpZiAoJG5lZWRzLWZsaXApIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICB9XG5cbiAgICBib3JkZXItcmFkaXVzOiBtZGMtc2hhcGUtcHJvcC12YWx1ZSgkcmFkaXVzKTtcblxuICAgIEBpZiAoJG5lZWRzLWZsaXApIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IG1kYy1zaGFwZS1mbGlwLXJhZGl1cyhtZGMtc2hhcGUtcHJvcC12YWx1ZSgkcmFkaXVzKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuLy8gU2hhcGUgY2F0ZWdvcmllc1xuJG1kYy1zaGFwZS1zbWFsbC1jb21wb25lbnQtcmFkaXVzOiA0cHggIWRlZmF1bHQ7XG4kbWRjLXNoYXBlLW1lZGl1bS1jb21wb25lbnQtcmFkaXVzOiA0cHggIWRlZmF1bHQ7XG4kbWRjLXNoYXBlLWxhcmdlLWNvbXBvbmVudC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vIFNoYXBlIGNhdGVnb3J5IG1hcHBpbmcuXG4kbWRjLXNoYXBlLWNhdGVnb3J5LXZhbHVlczogKFxuICBzbWFsbDogJG1kYy1zaGFwZS1zbWFsbC1jb21wb25lbnQtcmFkaXVzLFxuICBtZWRpdW06ICRtZGMtc2hhcGUtbWVkaXVtLWNvbXBvbmVudC1yYWRpdXMsXG4gIGxhcmdlOiAkbWRjLXNoYXBlLWxhcmdlLWNvbXBvbmVudC1yYWRpdXMsXG4pICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vZnVuY3Rpb25zXCI7XG5cbkBtaXhpbiBtZGMtdGhlbWUtY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICA6cm9vdCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGVhY2ggJHN0eWxlIGluIG1hcC1rZXlzKCRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzKSB7XG4gICAgICAgIC0tbWRjLXRoZW1lLSN7JHN0eWxlfTogI3ttYXAtZ2V0KCRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzLCAkc3R5bGUpfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkc3R5bGUgaW4gbWFwLWtleXMoJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMpIHtcbiAgICBAaWYgJHN0eWxlICE9IFwiYmFja2dyb3VuZFwiIGFuZCAkc3R5bGUgIT0gXCJzdXJmYWNlXCIge1xuICAgICAgLm1kYy10aGVtZS0tI3skc3R5bGV9IHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkc3R5bGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAubWRjLXRoZW1lLS0jeyRzdHlsZX0ge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJHN0eWxlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENTUyBydWxlcyBmb3IgdXNpbmcgcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IChwbHVzIGxpZ2h0L2RhcmsgdmFyaWFudHMpIGFzIGJhY2tncm91bmQgY29sb3JzLlxuICBAZWFjaCAkc3R5bGUgaW4gKFwicHJpbWFyeVwiLCBcInNlY29uZGFyeVwiKSB7XG4gICAgLm1kYy10aGVtZS0tI3skc3R5bGV9LWJnIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJHN0eWxlLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgY29ycmVjdCB0aGVtZSBjb2xvciBzdHlsZSB0byB0aGUgc3BlY2lmaWVkIHByb3BlcnR5LlxuLy8gJHByb3BlcnR5IGlzIHR5cGljYWxseSBjb2xvciBvciBiYWNrZ3JvdW5kLWNvbG9yLCBidXQgY2FuIGJlIGFueSBDU1MgcHJvcGVydHkgdGhhdCBhY2NlcHRzIGNvbG9yIHZhbHVlcy5cbi8vICRzdHlsZSBzaG91bGQgYmUgb25lIG9mIHRoZSBtYXAga2V5cyBpbiAkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcyAoX3ZhcmlhYmxlcy5zY3NzKSwgb3IgYSBjb2xvciB2YWx1ZS5cbi8vICRlZGdlT3B0T3V0IGNvbnRyb2xzIHdoZXRoZXIgdG8gZmVhdHVyZS1kZXRlY3QgYXJvdW5kIEVkZ2UgdG8gYXZvaWQgZW1pdHRpbmcgQ1NTIHZhcmlhYmxlcyBmb3IgaXQsXG4vLyBpbnRlbmRlZCBmb3IgdXNlIGluIGNhc2VzIHdoZXJlIGludGVyYWN0aW9ucyB3aXRoIHBzZXVkby1lbGVtZW50IHN0eWxlcyBjYXVzZSBwcm9ibGVtcyBkdWUgdG8gRWRnZSBidWdzLlxuQG1peGluIG1kYy10aGVtZS1wcm9wKCRwcm9wZXJ0eSwgJHN0eWxlLCAkaW1wb3J0YW50OiBmYWxzZSwgJGVkZ2VPcHRPdXQ6IGZhbHNlKSB7XG4gIEBpZiBtZGMtdGhlbWUtaXMtdmFyLXdpdGgtZmFsbGJhY2tfKCRzdHlsZSkge1xuICAgIEBpZiAkaW1wb3J0YW50IHtcbiAgICAgICN7JHByb3BlcnR5fTogbWRjLXRoZW1lLWdldC12YXItZmFsbGJhY2tfKCRzdHlsZSkgIWltcG9ydGFudDtcbiAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICN7JHByb3BlcnR5fTogbWRjLXRoZW1lLXZhcl8oJHN0eWxlKSAhaW1wb3J0YW50O1xuICAgIH0gQGVsc2Uge1xuICAgICAgI3skcHJvcGVydHl9OiBtZGMtdGhlbWUtZ2V0LXZhci1mYWxsYmFja18oJHN0eWxlKTtcbiAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICN7JHByb3BlcnR5fTogbWRjLXRoZW1lLXZhcl8oJHN0eWxlKTtcbiAgICB9XG4gIH0gQGVsc2UgaWYgbWRjLXRoZW1lLWlzLXZhbGlkLXRoZW1lLXByb3AtdmFsdWVfKCRzdHlsZSkge1xuICAgIEBpZiAkaW1wb3J0YW50IHtcbiAgICAgICN7JHByb3BlcnR5fTogJHN0eWxlICFpbXBvcnRhbnQ7XG4gICAgfSBAZWxzZSB7XG4gICAgICAjeyRwcm9wZXJ0eX06ICRzdHlsZTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMsICRzdHlsZSkge1xuICAgICAgQGVycm9yIFwiSW52YWxpZCBzdHlsZTogJyN7JHN0eWxlfScuIENob29zZSBvbmUgb2Y6ICN7bWFwLWtleXMoJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMpfVwiO1xuICAgIH1cblxuICAgICR2YWx1ZTogbWFwLWdldCgkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcywgJHN0eWxlKTtcblxuICAgIEBpZiAkaW1wb3J0YW50IHtcbiAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlICFpbXBvcnRhbnQ7XG5cbiAgICAgIEBpZiAkZWRnZU9wdE91dCB7XG4gICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG1heC1uZXN0aW5nLWRlcHRoXG4gICAgICAgIEBhdC1yb290IHtcbiAgICAgICAgICAvLyBJRSAxMSBkb2Vzbid0IHVuZGVyc3RhbmQgdGhpcyBzeW50YXggYW5kIGlnbm9yZXMgdGhlIGVudGlyZSBibG9jay5cbiAgICAgICAgICAvLyBFZGdlIHVuZGVyc3RhbmRzIHRoaXMgc3ludGF4IGFuZCBza2lwcyB0aGUgZW50aXJlIGJsb2NrIHRvIGF2b2lkIGEgbmFzdHkgOmJlZm9yZS86YWZ0ZXIgcHNldWRvLWVsZW1lbnQgYnVnLlxuICAgICAgICAgIC8vIEFsbCBvdGhlciBicm93c2VycyBhcHBseSB0aGUgc3R5bGVzIHdpdGhpbiB0aGUgYmxvY2suXG4gICAgICAgICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9zZWxlY3Rvci1uby1yZWR1bmRhbnQtbmVzdGluZy1zZWxlY3RvclxuICAgICAgICAgICAgJiB7XG4gICAgICAgICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgICAgICAgI3skcHJvcGVydHl9OiB2YXIoLS1tZGMtdGhlbWUtI3skc3R5bGV9LCAkdmFsdWUpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIHNjc3Mvc2VsZWN0b3Itbm8tcmVkdW5kYW50LW5lc3Rpbmctc2VsZWN0b3JcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gc3R5bGVsaW50LWVuYWJsZSBtYXgtbmVzdGluZy1kZXB0aFxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgI3skcHJvcGVydHl9OiB2YXIoLS1tZGMtdGhlbWUtI3skc3R5bGV9LCAkdmFsdWUpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcblxuICAgICAgQGlmICRlZGdlT3B0T3V0IHtcbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbWF4LW5lc3RpbmctZGVwdGhcbiAgICAgICAgQGF0LXJvb3Qge1xuICAgICAgICAgIC8vIElFIDExIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGlzIHN5bnRheCBhbmQgaWdub3JlcyB0aGUgZW50aXJlIGJsb2NrLlxuICAgICAgICAgIC8vIEVkZ2UgdW5kZXJzdGFuZHMgdGhpcyBzeW50YXggYW5kIHNraXBzIHRoZSBlbnRpcmUgYmxvY2sgdG8gYXZvaWQgYSBuYXN0eSA6YmVmb3JlLzphZnRlciBwc2V1ZG8tZWxlbWVudCBidWcuXG4gICAgICAgICAgLy8gQWxsIG90aGVyIGJyb3dzZXJzIGFwcGx5IHRoZSBzdHlsZXMgd2l0aGluIHRoZSBibG9jay5cbiAgICAgICAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL3NlbGVjdG9yLW5vLXJlZHVuZGFudC1uZXN0aW5nLXNlbGVjdG9yXG4gICAgICAgICAgICAmIHtcbiAgICAgICAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICAgICAgICAjeyRwcm9wZXJ0eX06IHZhcigtLW1kYy10aGVtZS0jeyRzdHlsZX0sICR2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIHNjc3Mvc2VsZWN0b3Itbm8tcmVkdW5kYW50LW5lc3Rpbmctc2VsZWN0b3JcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gc3R5bGVsaW50LWVuYWJsZSBtYXgtbmVzdGluZy1kZXB0aFxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgI3skcHJvcGVydHl9OiB2YXIoLS1tZGMtdGhlbWUtI3skc3R5bGV9LCAkdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xuXG4vL1xuLy8gTWFpbiB0aGVtZSBjb2xvcnMgZm9yIHlvdXIgYnJhbmQuXG4vL1xuLy8gSWYgeW91J3JlIGEgdXNlciBjdXN0b21pemluZyB5b3VyIGNvbG9yIHNjaGVtZSBpbiBTQVNTLCB0aGVzZSBhcmUgcHJvYmFibHkgdGhlIG9ubHkgdmFyaWFibGVzIHlvdSBuZWVkIHRvIGNoYW5nZS5cbi8vXG5cbiRtZGMtdGhlbWUtcHJpbWFyeTogIzYyMDBlZSAhZGVmYXVsdDsgLy8gYmFzZWxpbmUgcHVycGxlLCA1MDAgdG9uZVxuJG1kYy10aGVtZS1vbi1wcmltYXJ5OiBpZihtZGMtdGhlbWUtY29udHJhc3QtdG9uZSgkbWRjLXRoZW1lLXByaW1hcnkpID09IFwiZGFya1wiLCAjMDAwLCAjZmZmKSAhZGVmYXVsdDtcblxuLy8gVGhlICRtZGMtdGhlbWUtYWNjZW50IHZhcmlhYmxlIGlzIERFUFJFQ0FURUQgLSBpdCBleGlzdHMgcHVyZWx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuLy8gVGhlICRtZGMtdGhlbWUtc2Vjb25kYXJ5KiB2YXJpYWJsZXMgc2hvdWxkIGJlIHVzZWQgZm9yIGFsbCBuZXcgcHJvamVjdHMuXG4kbWRjLXRoZW1lLWFjY2VudDogIzAxODc4NiAhZGVmYXVsdDsgLy8gYmFzZWxpbmUgdGVhbCwgNjAwIHRvbmVcbiRtZGMtdGhlbWUtc2Vjb25kYXJ5OiAkbWRjLXRoZW1lLWFjY2VudCAhZGVmYXVsdDtcbiRtZGMtdGhlbWUtb24tc2Vjb25kYXJ5OiBpZihtZGMtdGhlbWUtY29udHJhc3QtdG9uZSgkbWRjLXRoZW1lLXNlY29uZGFyeSkgPT0gXCJkYXJrXCIsICMwMDAsICNmZmYpICFkZWZhdWx0O1xuJG1kYy10aGVtZS1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0OyAvLyBXaGl0ZVxuXG4kbWRjLXRoZW1lLXN1cmZhY2U6ICNmZmYgIWRlZmF1bHQ7XG4kbWRjLXRoZW1lLW9uLXN1cmZhY2U6IGlmKG1kYy10aGVtZS1jb250cmFzdC10b25lKCRtZGMtdGhlbWUtc3VyZmFjZSkgPT0gXCJkYXJrXCIsICMwMDAsICNmZmYpICFkZWZhdWx0O1xuXG4kbWRjLXRoZW1lLWVycm9yOiAjYjAwMDIwICFkZWZhdWx0O1xuJG1kYy10aGVtZS1vbi1lcnJvcjogaWYobWRjLXRoZW1lLWNvbnRyYXN0LXRvbmUoJG1kYy10aGVtZS1lcnJvcikgPT0gXCJkYXJrXCIsICMwMDAsICNmZmYpICFkZWZhdWx0O1xuXG4vL1xuLy8gVGV4dCBjb2xvcnMgYWNjb3JkaW5nIHRvIGxpZ2h0IHZzIGRhcmsgYW5kIHRleHQgdHlwZS5cbi8vXG5cbiRtZGMtdGhlbWUtdGV4dC1jb2xvcnM6IChcbiAgZGFyazogKFxuICAgIHByaW1hcnk6IHJnYmEoYmxhY2ssIC44NyksXG4gICAgc2Vjb25kYXJ5OiByZ2JhKGJsYWNrLCAuNTQpLFxuICAgIGhpbnQ6IHJnYmEoYmxhY2ssIC4zOCksXG4gICAgZGlzYWJsZWQ6IHJnYmEoYmxhY2ssIC4zOCksXG4gICAgaWNvbjogcmdiYShibGFjaywgLjM4KVxuICApLFxuICBsaWdodDogKFxuICAgIHByaW1hcnk6IHdoaXRlLFxuICAgIHNlY29uZGFyeTogcmdiYSh3aGl0ZSwgLjcpLFxuICAgIGhpbnQ6IHJnYmEod2hpdGUsIC41KSxcbiAgICBkaXNhYmxlZDogcmdiYSh3aGl0ZSwgLjUpLFxuICAgIGljb246IHJnYmEod2hpdGUsIC41KVxuICApXG4pICFkZWZhdWx0O1xuXG4kbWRjLXRoZW1lLXRleHQtZW1waGFzaXM6IChcbiAgaGlnaDogLjg3LFxuICBtZWRpdW06IC42LFxuICBkaXNhYmxlZDogLjM4LFxuKSAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKCR0ZXh0LXN0eWxlLCAkZmlsbC1jb2xvcikge1xuICAkY29udHJhc3QtdG9uZTogbWRjLXRoZW1lLWNvbnRyYXN0LXRvbmUoJGZpbGwtY29sb3IpO1xuXG4gIEByZXR1cm4gbWFwLWdldChtYXAtZ2V0KCRtZGMtdGhlbWUtdGV4dC1jb2xvcnMsICRjb250cmFzdC10b25lKSwgJHRleHQtc3R5bGUpO1xufVxuXG4vL1xuLy8gUHJpbWFyeSB0ZXh0IGNvbG9ycyBmb3IgZWFjaCBvZiB0aGUgdGhlbWUgY29sb3JzLlxuLy9cblxuJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXM6IChcbiAgLy8gUHJpbWFyeVxuICBwcmltYXJ5OiAkbWRjLXRoZW1lLXByaW1hcnksXG4gIC8vIFNlY29uZGFyeVxuICBzZWNvbmRhcnk6ICRtZGMtdGhlbWUtc2Vjb25kYXJ5LFxuICAvLyBCYWNrZ3JvdW5kXG4gIGJhY2tncm91bmQ6ICRtZGMtdGhlbWUtYmFja2dyb3VuZCxcbiAgLy8gU3VyZmFjZVxuICBzdXJmYWNlOiAkbWRjLXRoZW1lLXN1cmZhY2UsXG4gIC8vIEVycm9yXG4gIGVycm9yOiAkbWRjLXRoZW1lLWVycm9yLFxuICBvbi1wcmltYXJ5OiAkbWRjLXRoZW1lLW9uLXByaW1hcnksXG4gIG9uLXNlY29uZGFyeTogJG1kYy10aGVtZS1vbi1zZWNvbmRhcnksXG4gIG9uLXN1cmZhY2U6ICRtZGMtdGhlbWUtb24tc3VyZmFjZSxcbiAgb24tZXJyb3I6ICRtZGMtdGhlbWUtb24tZXJyb3IsXG4gIC8vIFRleHQtcHJpbWFyeSBvbiBcImJhY2tncm91bmRcIiBiYWNrZ3JvdW5kXG4gIHRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kOiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhwcmltYXJ5LCAkbWRjLXRoZW1lLWJhY2tncm91bmQpLFxuICB0ZXh0LXNlY29uZGFyeS1vbi1iYWNrZ3JvdW5kOiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhzZWNvbmRhcnksICRtZGMtdGhlbWUtYmFja2dyb3VuZCksXG4gIHRleHQtaGludC1vbi1iYWNrZ3JvdW5kOiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhoaW50LCAkbWRjLXRoZW1lLWJhY2tncm91bmQpLFxuICB0ZXh0LWRpc2FibGVkLW9uLWJhY2tncm91bmQ6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKGRpc2FibGVkLCAkbWRjLXRoZW1lLWJhY2tncm91bmQpLFxuICB0ZXh0LWljb24tb24tYmFja2dyb3VuZDogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oaWNvbiwgJG1kYy10aGVtZS1iYWNrZ3JvdW5kKSxcbiAgLy8gVGV4dC1wcmltYXJ5IG9uIFwibGlnaHRcIiBiYWNrZ3JvdW5kXG4gIHRleHQtcHJpbWFyeS1vbi1saWdodDogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8ocHJpbWFyeSwgbGlnaHQpLFxuICB0ZXh0LXNlY29uZGFyeS1vbi1saWdodDogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oc2Vjb25kYXJ5LCBsaWdodCksXG4gIHRleHQtaGludC1vbi1saWdodDogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oaGludCwgbGlnaHQpLFxuICB0ZXh0LWRpc2FibGVkLW9uLWxpZ2h0OiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhkaXNhYmxlZCwgbGlnaHQpLFxuICB0ZXh0LWljb24tb24tbGlnaHQ6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKGljb24sIGxpZ2h0KSxcbiAgLy8gVGV4dC1wcmltYXJ5IG9uIFwiZGFya1wiIGJhY2tncm91bmRcbiAgdGV4dC1wcmltYXJ5LW9uLWRhcms6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKHByaW1hcnksIGRhcmspLFxuICB0ZXh0LXNlY29uZGFyeS1vbi1kYXJrOiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhzZWNvbmRhcnksIGRhcmspLFxuICB0ZXh0LWhpbnQtb24tZGFyazogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oaGludCwgZGFyayksXG4gIHRleHQtZGlzYWJsZWQtb24tZGFyazogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oZGlzYWJsZWQsIGRhcmspLFxuICB0ZXh0LWljb24tb24tZGFyazogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oaWNvbiwgZGFyaylcbikgIWRlZmF1bHQ7XG5cbi8vIElmIGAkc3R5bGVgIGlzIGEgY29sb3IgKGEgbGl0ZXJhbCBjb2xvciB2YWx1ZSwgYGN1cnJlbnRDb2xvcmAsIG9yIGEgQ1NTIGN1c3RvbSBwcm9wZXJ0eSksIGl0IGlzIHJldHVybmVkIHZlcmJhdGltLlxuLy8gT3RoZXJ3aXNlLCBgJHN0eWxlYCBpcyB0cmVhdGVkIGFzIGEgdGhlbWUgcHJvcGVydHkgbmFtZSwgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGZyb21cbi8vIGAkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlc2AgaXMgcmV0dXJuZWQuIElmIHRoaXMgYWxzbyBmYWlscywgYW4gZXJyb3IgaXMgdGhyb3duLlxuLy9cbi8vIFRoaXMgaXMgbWFpbmx5IHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIGBtZGMtdGhlbWUtcHJvcGAgY2Fubm90IGJlIHVzZWQgZGlyZWN0bHkgKGUuZy4sIGBib3gtc2hhZG93YCkuXG4vL1xuLy8gRXhhbXBsZXM6XG4vL1xuLy8gMS4gbWRjLXRoZW1lLXByb3AtdmFsdWUocHJpbWFyeSkgPT4gXCIjNjIwMGVlXCJcbi8vIDIuIG1kYy10aGVtZS1wcm9wLXZhbHVlKGJsdWUpICAgID0+IFwiYmx1ZVwiXG4vL1xuLy8gTk9URTogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGRlZmluZWQgaW4gX3ZhcmlhYmxlcy5zY3NzIGluc3RlYWQgb2YgX2Z1bmN0aW9ucy5zY3NzIHRvIGF2b2lkIGNpcmN1bGFyIGltcG9ydHMuXG5AZnVuY3Rpb24gbWRjLXRoZW1lLXByb3AtdmFsdWUoJHN0eWxlKSB7XG4gIEBpZiBtZGMtdGhlbWUtaXMtdmFyLXdpdGgtZmFsbGJhY2tfKCRzdHlsZSkge1xuICAgIEByZXR1cm4gbWRjLXRoZW1lLWdldC12YXItZmFsbGJhY2tfKCRzdHlsZSk7XG4gIH1cblxuICBAaWYgbWRjLXRoZW1lLWlzLXZhbGlkLXRoZW1lLXByb3AtdmFsdWVfKCRzdHlsZSkge1xuICAgIEByZXR1cm4gJHN0eWxlO1xuICB9XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcywgJHN0eWxlKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCB0aGVtZSBwcm9wZXJ0eTogJyN7JHN0eWxlfScuIENob29zZSBvbmUgb2Y6ICN7bWFwLWtleXMoJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMpfVwiO1xuICB9XG5cbiAgQHJldHVybiBtYXAtZ2V0KCRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzLCAkc3R5bGUpO1xufVxuXG4vLyBOT1RFOiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgZGVmaW5lZCBpbiBfdmFyaWFibGVzLnNjc3MgaW5zdGVhZCBvZiBfZnVuY3Rpb25zLnNjc3MgdG8gYXZvaWQgY2lyY3VsYXIgaW1wb3J0cy5cbkBmdW5jdGlvbiBtZGMtdGhlbWUtYWNjZXNzaWJsZS1pbmstY29sb3IoJGZpbGwtY29sb3IsICR0ZXh0LXN0eWxlOiBwcmltYXJ5KSB7XG4gICRmaWxsLWNvbG9yLXZhbHVlOiBtZGMtdGhlbWUtcHJvcC12YWx1ZSgkZmlsbC1jb2xvcik7XG4gICRjb2xvci1tYXAtZm9yLXRvbmU6IG1hcC1nZXQoJG1kYy10aGVtZS10ZXh0LWNvbG9ycywgbWRjLXRoZW1lLWNvbnRyYXN0LXRvbmUoJGZpbGwtY29sb3ItdmFsdWUpKTtcblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRjb2xvci1tYXAtZm9yLXRvbmUsICR0ZXh0LXN0eWxlKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCAkdGV4dC1zdHlsZTogJyN7JHRleHQtc3R5bGV9Jy4gQ2hvb3NlIG9uZSBvZjogI3ttYXAta2V5cygkY29sb3ItbWFwLWZvci10b25lKX1cIjtcbiAgfVxuXG4gIEByZXR1cm4gbWFwLWdldCgkY29sb3ItbWFwLWZvci10b25lLCAkdGV4dC1zdHlsZSk7XG59XG5cbi8vIE5PVEU6IFRoaXMgZnVuY3Rpb24gaXMgZGVwZW5kZWQgdXBvbiBieSBtZGMtdGhlbWUtcHJvcC12YWx1ZSAoYWJvdmUpIGFuZCB0aHVzIG11c3QgYmUgZGVmaW5lZCBpbiB0aGlzIGZpbGUuXG5AZnVuY3Rpb24gbWRjLXRoZW1lLWlzLXZhbGlkLXRoZW1lLXByb3AtdmFsdWVfKCRzdHlsZSkge1xuICBAcmV0dXJuIHR5cGUtb2YoJHN0eWxlKSA9PSBcImNvbG9yXCIgb3IgJHN0eWxlID09IFwiY3VycmVudENvbG9yXCIgb3Igc3RyX3NsaWNlKCRzdHlsZSwgMSwgNCkgPT0gXCJ2YXIoXCI7XG59XG5cbkBmdW5jdGlvbiBtZGMtdGhlbWUtdGV4dC1lbXBoYXNpcygkZW1waGFzaXMpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCRtZGMtdGhlbWUtdGV4dC1lbXBoYXNpcywgJGVtcGhhc2lzKTtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4vLyBDcmVhdGVzIGEgcnVsZSB0aGF0IHdpbGwgYmUgYXBwbGllZCB3aGVuIGFuIE1EQyBXZWIgY29tcG9uZW50IGlzIHdpdGhpbiB0aGUgY29udGV4dCBvZiBhbiBSVEwgbGF5b3V0LlxuLy9cbi8vIFVzYWdlIEV4YW1wbGU6XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIGxlZnQ6IDA7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICBsZWZ0OiBhdXRvO1xuLy8gICAgIHJpZ2h0OiAwO1xuLy8gICB9XG4vL1xuLy8gICAmX19iYXIge1xuLy8gICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4vLyAgICAgQGluY2x1ZGUgbWRjLXJ0bChcIi5tZGMtZm9vXCIpIHtcbi8vICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8gICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4vLyAgICAgfVxuLy8gICB9XG4vLyB9XG4vL1xuLy8gLm1kYy1mb28tLW1vZCB7XG4vLyAgIHBhZGRpbmctbGVmdDogNHB4O1xuLy9cbi8vICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4vLyAgICAgcGFkZGluZy1sZWZ0OiBhdXRvO1xuLy8gICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcbi8vICAgfVxuLy8gfVxuLy8gYGBgXG4vL1xuLy8gTm90ZSB0aGF0IHRoaXMgbWl4aW4gd29ya3MgYnkgY2hlY2tpbmcgZm9yIGFuIGFuY2VzdG9yIGVsZW1lbnQgd2l0aCBgW2Rpcj1cInJ0bFwiXWAuXG4vLyBBcyBhIHJlc3VsdCwgbmVzdGVkIGBkaXJgIHZhbHVlcyBhcmUgbm90IHN1cHBvcnRlZDpcbi8vXG4vLyBgYGBodG1sXG4vLyA8aHRtbCBkaXI9XCJydGxcIj5cbi8vICAgPCEtLSAuLi4gLS0+XG4vLyAgIDxkaXYgZGlyPVwibHRyXCI+XG4vLyAgICAgPGRpdiBjbGFzcz1cIm1kYy1mb29cIj5TdHlsZWQgaW5jb3JyZWN0bHkgYXMgUlRMITwvZGl2PlxuLy8gICA8L2Rpdj5cbi8vIDwvaHRtbD5cbi8vIGBgYFxuLy9cbi8vIEluIHRoZSBmdXR1cmUsIHNlbGVjdG9ycyBzdWNoIGFzIHRoZSBgOmRpcmAgcHNldWRvLWNsYXNzIChodHRwOi8vbWRuLmlvL2Nzcy86ZGlyKSB3aWxsIGhlbHAgdXMgbWl0aWdhdGUgdGhpcy5cbkBtaXhpbiBtZGMtcnRsKCRyb290LXNlbGVjdG9yOiBudWxsKSB7XG4gIEBpZiAoJHJvb3Qtc2VsZWN0b3IpIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICAjeyRyb290LXNlbGVjdG9yfVtkaXI9XCJydGxcIl0gJixcbiAgICAgIFtkaXI9XCJydGxcIl0gI3skcm9vdC1zZWxlY3Rvcn0gJiB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgW2Rpcj1cInJ0bFwiXSAmLFxuICAgICZbZGlyPVwicnRsXCJdIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBUYWtlcyBhIGJhc2UgYm94LW1vZGVsIHByb3BlcnR5IG5hbWUgKGBtYXJnaW5gLCBgYm9yZGVyYCwgYHBhZGRpbmdgLCBldGMuKSBhbG9uZyB3aXRoIGFcbi8vIGRlZmF1bHQgZGlyZWN0aW9uIChgbGVmdGAgb3IgYHJpZ2h0YCkgYW5kIHZhbHVlLCBhbmQgZW1pdHMgcnVsZXMgd2hpY2ggYXBwbHkgdGhlIGdpdmVuIHZhbHVlIHRvIHRoZVxuLy8gc3BlY2lmaWVkIGRpcmVjdGlvbiBieSBkZWZhdWx0IGFuZCB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIGluIFJUTC5cbi8vXG4vLyBGb3IgZXhhbXBsZTpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIGxlZnQsIDhweCk7XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBpcyBlcXVpdmFsZW50IHRvOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgbWFyZ2luLWxlZnQ6IDhweDtcbi8vICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy9cbi8vICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4vLyAgICAgbWFyZ2luLWxlZnQ6IDA7XG4vLyAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4vLyAgIH1cbi8vIH1cbi8vIGBgYFxuLy9cbi8vIHdoZXJlYXM6XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCByaWdodCwgOHB4KTtcbi8vIH1cbi8vIGBgYFxuLy9cbi8vIGlzIGVxdWl2YWxlbnQgdG86XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBtYXJnaW4tbGVmdDogMDtcbi8vICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICBtYXJnaW4tbGVmdDogOHB4O1xuLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vICAgfVxuLy8gfVxuLy8gYGBgXG4vL1xuLy8gWW91IGNhbiBhbHNvIHBhc3MgYW4gb3B0aW9uYWwgNHRoIGAkcm9vdC1zZWxlY3RvcmAgYXJndW1lbnQgd2hpY2ggd2lsbCBiZSBmb3J3YXJkZWQgdG8gYG1kYy1ydGxgLFxuLy8gZS5nLiBgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgOHB4LCBcIi5tZGMtY29tcG9uZW50XCIpYC5cbi8vXG4vLyBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIGFsd2F5cyB6ZXJvIG91dCB0aGUgb3JpZ2luYWwgdmFsdWUgaW4gYW4gUlRMIGNvbnRleHQuXG4vLyBJZiB5b3UncmUgdHJ5aW5nIHRvIGZsaXAgdGhlIHZhbHVlcywgdXNlIGBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eSgpYCBpbnN0ZWFkLlxuQG1peGluIG1kYy1ydGwtcmVmbGV4aXZlLWJveCgkYmFzZS1wcm9wZXJ0eSwgJGRlZmF1bHQtZGlyZWN0aW9uLCAkdmFsdWUsICRyb290LXNlbGVjdG9yOiBudWxsKSB7XG4gIEBpZiAoaW5kZXgoKHJpZ2h0LCBsZWZ0KSwgJGRlZmF1bHQtZGlyZWN0aW9uKSA9PSBudWxsKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCBkZWZhdWx0IGRpcmVjdGlvbjogJyN7JGRlZmF1bHQtZGlyZWN0aW9ufScuIFBsZWFzZSBzcGVjaWZpeSBlaXRoZXIgJ3JpZ2h0JyBvciAnbGVmdCcuXCI7XG4gIH1cblxuICAkbGVmdC12YWx1ZTogJHZhbHVlO1xuICAkcmlnaHQtdmFsdWU6IDA7XG5cbiAgQGlmICgkZGVmYXVsdC1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICAkbGVmdC12YWx1ZTogMDtcbiAgICAkcmlnaHQtdmFsdWU6ICR2YWx1ZTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KCRiYXNlLXByb3BlcnR5LCAkbGVmdC12YWx1ZSwgJHJpZ2h0LXZhbHVlLCAkcm9vdC1zZWxlY3Rvcik7XG59XG5cbi8vIFRha2VzIGEgYmFzZSBwcm9wZXJ0eSBhbmQgZW1pdHMgcnVsZXMgdGhhdCBhc3NpZ24gPGJhc2UtcHJvcGVydHk+LWxlZnQgdG8gPGxlZnQtdmFsdWU+IGFuZFxuLy8gPGJhc2UtcHJvcGVydHk+LXJpZ2h0IHRvIDxyaWdodC12YWx1ZT4gaW4gYSBMVFIgY29udGV4dCwgYW5kIHZpY2UgdmVyc2EgaW4gYSBSVEwgY29udGV4dC5cbi8vIEZvciBleGFtcGxlOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCBhdXRvLCAxMnB4KTtcbi8vIH1cbi8vIGBgYFxuLy9cbi8vIGlzIGVxdWl2YWxlbnQgdG86XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBtYXJnaW4tbGVmdDogYXV0bztcbi8vICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuLy9cbi8vICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4vLyAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4vLyAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuLy8gICB9XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBBbiBvcHRpb25hbCA0dGggYCRyb290LXNlbGVjdG9yYCBhcmd1bWVudCBjYW4gYmUgZ2l2ZW4sIHdoaWNoIHdpbGwgYmUgcGFzc2VkIHRvIGBtZGMtcnRsYC5cbkBtaXhpbiBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eSgkYmFzZS1wcm9wZXJ0eSwgJGxlZnQtdmFsdWUsICRyaWdodC12YWx1ZSwgJHJvb3Qtc2VsZWN0b3I6IG51bGwpIHtcbiAgJHByb3AtbGVmdDogI3skYmFzZS1wcm9wZXJ0eX0tbGVmdDtcbiAgJHByb3AtcmlnaHQ6ICN7JGJhc2UtcHJvcGVydHl9LXJpZ2h0O1xuXG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlKCRwcm9wLWxlZnQsICRsZWZ0LXZhbHVlLCAkcHJvcC1yaWdodCwgJHJpZ2h0LXZhbHVlLCAkcm9vdC1zZWxlY3Rvcik7XG59XG5cbi8vIFRha2VzIGFuIGFyZ3VtZW50IHNwZWNpZnlpbmcgYSBob3Jpem9udGFsIHBvc2l0aW9uIHByb3BlcnR5IChlaXRoZXIgXCJsZWZ0XCIgb3IgXCJyaWdodFwiKSBhcyB3ZWxsXG4vLyBhcyBhIHZhbHVlLCBhbmQgYXBwbGllcyB0aGF0IHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gYSBMVFIgY29udGV4dCwgYW5kIGZsaXBzIGl0IGluIGFcbi8vIFJUTCBjb250ZXh0LiBGb3IgZXhhbXBsZTpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsIDApO1xuLy8gfVxuLy8gYGBgXG4vL1xuLy8gaXMgZXF1aXZhbGVudCB0bzpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIGxlZnQ6IDA7XG4vLyAgIHJpZ2h0OiBpbml0aWFsO1xuLy9cbi8vICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4vLyAgICAgbGVmdDogaW5pdGlhbDtcbi8vICAgICByaWdodDogMDtcbi8vICAgfVxuLy8gfVxuLy8gYGBgXG4vL1xuLy8gQW4gb3B0aW9uYWwgdGhpcmQgJHJvb3Qtc2VsZWN0b3IgYXJndW1lbnQgbWF5IGFsc28gYmUgZ2l2ZW4sIHdoaWNoIGlzIHBhc3NlZCB0byBgbWRjLXJ0bGAuXG5AbWl4aW4gbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24oJHBvc2l0aW9uLXByb3BlcnR5LCAkdmFsdWUsICRyb290LXNlbGVjdG9yOiBudWxsKSB7XG4gIEBpZiAoaW5kZXgoKHJpZ2h0LCBsZWZ0KSwgJHBvc2l0aW9uLXByb3BlcnR5KSA9PSBudWxsKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCBwb3NpdGlvbiAje3Bvc2l0aW9uLXByb3BlcnR5fS4gUGxlYXNlIHNwZWNpZml5IGVpdGhlciByaWdodCBvciBsZWZ0XCI7XG4gIH1cblxuICAvLyBUT0RPOiBcImluaXRpYWxcIiBpcyBub3Qgc3VwcG9ydGVkIGluIElFIDExLiBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy1pbml0aWFsLXZhbHVlXG4gICRsZWZ0LXZhbHVlOiAkdmFsdWU7XG4gICRyaWdodC12YWx1ZTogaW5pdGlhbDtcblxuICBAaWYgKCRwb3NpdGlvbi1wcm9wZXJ0eSA9PSByaWdodCkge1xuICAgICRyaWdodC12YWx1ZTogJHZhbHVlO1xuICAgICRsZWZ0LXZhbHVlOiBpbml0aWFsO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUobGVmdCwgJGxlZnQtdmFsdWUsIHJpZ2h0LCAkcmlnaHQtdmFsdWUsICRyb290LXNlbGVjdG9yKTtcbn1cblxuLy8gVGFrZXMgcGFpciBvZiBwcm9wZXJ0aWVzIHdpdGggdmFsdWVzIGFzIGFyZ3VtZW50cyBhbmQgZmxpcHMgaXQgaW4gUlRMIGNvbnRleHQuXG4vLyBGb3IgZXhhbXBsZTpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlKGxlZnQsIDJweCwgcmlnaHQsIDVweCk7XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBpcyBlcXVpdmFsZW50IHRvOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgbGVmdDogMnB4O1xuLy8gICByaWdodDogNXB4O1xuLy9cbi8vICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4vLyAgICAgcmlnaHQ6IDJweDtcbi8vICAgICBsZWZ0OiA1cHg7XG4vLyAgIH1cbi8vIH1cbi8vIGBgYFxuLy9cbi8vIEFuIG9wdGlvbmFsIGZpZnRoIGAkcm9vdC1zZWxlY3RvcmAgYXJndW1lbnQgbWF5IGFsc28gYmUgZ2l2ZW4sIHdoaWNoIGlzIHBhc3NlZCB0byBgbWRjLXJ0bGAuXG5AbWl4aW4gbWRjLXJ0bC1yZWZsZXhpdmUoXG4gICRsZWZ0LXByb3BlcnR5LFxuICAkbGVmdC12YWx1ZSxcbiAgJHJpZ2h0LXByb3BlcnR5LFxuICAkcmlnaHQtdmFsdWUsXG4gICRyb290LXNlbGVjdG9yOiBudWxsXG4pIHtcbiAgLyogQG5vZmxpcCAqL1xuICAjeyRsZWZ0LXByb3BlcnR5fTogJGxlZnQtdmFsdWU7XG4gIC8qIEBub2ZsaXAgKi9cbiAgI3skcmlnaHQtcHJvcGVydHl9OiAkcmlnaHQtdmFsdWU7XG5cbiAgQGluY2x1ZGUgbWRjLXJ0bCgkcm9vdC1zZWxlY3Rvcikge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICAjeyRsZWZ0LXByb3BlcnR5fTogJHJpZ2h0LXZhbHVlO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICAjeyRyaWdodC1wcm9wZXJ0eX06ICRsZWZ0LXZhbHVlO1xuICB9XG59XG4iLCIubWRjLWJ1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMi4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDg5Mjg1NzFlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwYWRkaW5nOiAwIDhweCAwIDhweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi13aWR0aDogNjRweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDsgfVxuICAubWRjLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7IH1cbiAgLm1kYy1idXR0b246YWN0aXZlIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5tZGMtYnV0dG9uOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm1kYy1idXR0b246ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzcpO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAubWRjLWJ1dHRvbi5tZGMtYnV0dG9uLS1kZW5zZSB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG4gIC5tZGMtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9faWNvbiwgLm1kYy1idXR0b24gLm1kYy1idXR0b25fX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLm1kYy1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGNvbG9yOiAjNjIwMGVlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9XG5cbi5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uLCAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cblxuc3ZnLm1kYy1idXR0b25fX2ljb24ge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cblxuLm1kYy1idXR0b24tLXJhaXNlZCAubWRjLWJ1dHRvbl9faWNvbixcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIC5tZGMtYnV0dG9uX19pY29uLFxuLm1kYy1idXR0b24tLW91dGxpbmVkIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogLTRweDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtYnV0dG9uLS1yYWlzZWQgLm1kYy1idXR0b25fX2ljb24sIC5tZGMtYnV0dG9uLS1yYWlzZWQgLm1kYy1idXR0b25fX2ljb25bZGlyPVwicnRsXCJdLCBbZGlyPVwicnRsXCJdXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIC5tZGMtYnV0dG9uX19pY29uLFxuICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCAubWRjLWJ1dHRvbl9faWNvbltkaXI9XCJydGxcIl0sIFtkaXI9XCJydGxcIl1cbiAgLm1kYy1idXR0b24tLW91dGxpbmVkIC5tZGMtYnV0dG9uX19pY29uLFxuICAubWRjLWJ1dHRvbi0tb3V0bGluZWQgLm1kYy1idXR0b25fX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiAtNHB4OyB9XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb24sXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbixcbi5tZGMtYnV0dG9uLS1vdXRsaW5lZCAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbiB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IC00cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWJ1dHRvbi0tcmFpc2VkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uLCAubWRjLWJ1dHRvbi0tcmFpc2VkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbixcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb25bZGlyPVwicnRsXCJdLCBbZGlyPVwicnRsXCJdXG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZCAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbixcbiAgLm1kYy1idXR0b24tLW91dGxpbmVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQge1xuICBwYWRkaW5nOiAwIDE2cHggMCAxNnB4OyB9XG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQ6ZGlzYWJsZWQsXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzcpOyB9XG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQ6bm90KDpkaXNhYmxlZCksXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy1idXR0b24tLXJhaXNlZDpub3QoOmRpc2FibGVkKSxcbiAgICAgIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH0gfVxuICAubWRjLWJ1dHRvbi0tcmFpc2VkOm5vdCg6ZGlzYWJsZWQpLFxuICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDpub3QoOmRpc2FibGVkKSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tcHJpbWFyeSwgI2ZmZik7IH1cblxuLm1kYy1idXR0b24tLXJhaXNlZCB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICAubWRjLWJ1dHRvbi0tcmFpc2VkOmhvdmVyLCAubWRjLWJ1dHRvbi0tcmFpc2VkOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuICAubWRjLWJ1dHRvbi0tcmFpc2VkOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQ6ZGlzYWJsZWQge1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWJ1dHRvbi0tb3V0bGluZWQge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBwYWRkaW5nOiAwIDE0cHggMCAxNHB4O1xuICBib3JkZXItd2lkdGg6IDJweDsgfVxuICAubWRjLWJ1dHRvbi0tb3V0bGluZWQ6ZGlzYWJsZWQge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM3KTsgfVxuICAubWRjLWJ1dHRvbi0tb3V0bGluZWQ6bm90KDpkaXNhYmxlZCkge1xuICAgIGJvcmRlci1jb2xvcjogIzYyMDBlZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH1cblxuLm1kYy1idXR0b24tLWRlbnNlIHtcbiAgaGVpZ2h0OiAzMnB4O1xuICBmb250LXNpemU6IC44MTI1cmVtOyB9XG5cbkBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4ge1xuICBmcm9tIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0LCAwKSkgc2NhbGUoMSk7IH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIHtcbiAgZnJvbSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IHZhcigtLW1kYy1yaXBwbGUtZmctb3BhY2l0eSwgMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQge1xuICBmcm9tIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgb3BhY2l0eTogdmFyKC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5LCAwKTsgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbi5tZGMtcmlwcGxlLXN1cmZhY2UtLXRlc3QtZWRnZS12YXItYnVnIHtcbiAgLS1tZGMtcmlwcGxlLXN1cmZhY2UtdGVzdC1lZGdlLXZhcjogMXB4IHNvbGlkICMwMDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS10ZXN0LWVkZ2UtdmFyLWJ1Zzo6YmVmb3JlIHtcbiAgICBib3JkZXI6IHZhcigtLW1kYy1yaXBwbGUtc3VyZmFjZS10ZXN0LWVkZ2UtdmFyKTsgfVxuXG4ubWRjLWJ1dHRvbiB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OyB9XG4gIC5tZGMtYnV0dG9uOjpiZWZvcmUsIC5tZGMtYnV0dG9uOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLm1kYy1idXR0b246OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgLm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7IH1cbiAgLm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtYnV0dG9uOjpiZWZvcmUsIC5tZGMtYnV0dG9uOjphZnRlciB7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDEwMCUpO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDEwMCUpO1xuICAgIHdpZHRoOiAyMDAlO1xuICAgIGhlaWdodDogMjAwJTsgfVxuICAubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtYnV0dG9uOjpiZWZvcmUsIC5tZGMtYnV0dG9uOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBlZTsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIC5tZGMtYnV0dG9uOjpiZWZvcmUsIC5tZGMtYnV0dG9uOjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9IH1cbiAgLm1kYy1idXR0b246aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICAubWRjLWJ1dHRvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1idXR0b246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtYnV0dG9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyOyB9XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQ6OmJlZm9yZSwgLm1kYy1idXR0b24tLXJhaXNlZDo6YWZ0ZXIsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDo6YmVmb3JlLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgLm1kYy1idXR0b24tLXJhaXNlZDo6YmVmb3JlLCAubWRjLWJ1dHRvbi0tcmFpc2VkOjphZnRlcixcbiAgICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDo6YmVmb3JlLFxuICAgIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOjphZnRlciB7XG4gICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tcHJpbWFyeSwgI2ZmZik7IH0gfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkOmhvdmVyOjpiZWZvcmUsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDpob3Zlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4wODsgfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1idXR0b24tLXJhaXNlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSxcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSxcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlcixcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMjQ7IH1cblxuLm1kYy1idXR0b24tLXJhaXNlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjI0OyB9XG5cbi5tZGMtY2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgI2ZmZik7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1kYy1jYXJkLS1vdXRsaW5lZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogI2UwZTBlMDsgfVxuXG4ubWRjLWNhcmRfX21lZGlhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cbiAgLm1kYy1jYXJkX19tZWRpYTo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiBcIlwiOyB9XG5cbi5tZGMtY2FyZF9fbWVkaWE6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDsgfVxuXG4ubWRjLWNhcmRfX21lZGlhOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDsgfVxuXG4ubWRjLWNhcmRfX21lZGlhLS1zcXVhcmU6OmJlZm9yZSB7XG4gIG1hcmdpbi10b3A6IDEwMCU7IH1cblxuLm1kYy1jYXJkX19tZWRpYS0tMTYtOTo6YmVmb3JlIHtcbiAgbWFyZ2luLXRvcDogNTYuMjUlOyB9XG5cbi5tZGMtY2FyZF9fbWVkaWEtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaGVyaXQ7IH1cblxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7IH1cblxuLm1kYy1jYXJkX19hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLWhlaWdodDogNTJweDtcbiAgcGFkZGluZzogOHB4OyB9XG5cbi5tZGMtY2FyZF9fYWN0aW9ucy0tZnVsbC1ibGVlZCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLm1kYy1jYXJkX19hY3Rpb24tYnV0dG9ucyxcbi5tZGMtY2FyZF9fYWN0aW9uLWljb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4ubWRjLWNhcmRfX2FjdGlvbi1pY29ucyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIGZsZXgtZ3JvdzogMTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4ubWRjLWNhcmRfX2FjdGlvbi1idXR0b25zICsgLm1kYy1jYXJkX19hY3Rpb24taWNvbnMge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtY2FyZF9fYWN0aW9uLWJ1dHRvbnMgKyAubWRjLWNhcmRfX2FjdGlvbi1pY29ucywgLm1kYy1jYXJkX19hY3Rpb24tYnV0dG9ucyArIC5tZGMtY2FyZF9fYWN0aW9uLWljb25zW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7IH1cblxuLm1kYy1jYXJkX19hY3Rpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLm1kYy1jYXJkX19hY3Rpb246Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cblxuLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbiB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIHBhZGRpbmc6IDAgOHB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbiwgLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbjpsYXN0LWNoaWxkLCAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uOmxhc3QtY2hpbGRbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5tZGMtY2FyZF9fYWN0aW9ucy0tZnVsbC1ibGVlZCAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWNhcmRfX2FjdGlvbnMtLWZ1bGwtYmxlZWQgLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbiwgLm1kYy1jYXJkX19hY3Rpb25zLS1mdWxsLWJsZWVkIC5tZGMtY2FyZF9fYWN0aW9uLS1idXR0b25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLm1kYy1jYXJkX19hY3Rpb24tLWljb24ge1xuICBtYXJnaW46IC02cHggMDtcbiAgcGFkZGluZzogMTJweDsgfVxuXG4ubWRjLWNhcmRfX2FjdGlvbi0taWNvbjpub3QoOmRpc2FibGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7IH1cblxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbiB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246OmJlZm9yZSwgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb24ubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOjpiZWZvcmUsIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgd2lkdGg6IDIwMCU7XG4gICAgaGVpZ2h0OiAyMDAlOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOjpiZWZvcmUsIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjsgfVxuXG5Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC11bmNoZWNrZWQtY2hlY2tlZC1jaGVja21hcmstcGF0aCB7XG4gIDAlLFxuICA1MCUge1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAyOS43ODMzMzg1OyB9XG4gIDUwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7IH1cbiAgMTAwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmsge1xuICAwJSxcbiAgNjguMiUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApOyB9XG4gIDY4LjIlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMCwgMSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aCB7XG4gIGZyb20ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0yOS43ODMzMzg1OyB9IH1cblxuQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLWNoZWNrbWFyayB7XG4gIGZyb20ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWNoZWNrbWFyayB7XG4gIGZyb20ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE0LCAwLCAwLCAxKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgb3BhY2l0eTogMDsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFyayB7XG4gIGZyb20ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IG1kYy1hbmltYXRpb24tZGVjZWxlcmF0aW9uLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtbWl4ZWRtYXJrIHtcbiAgZnJvbSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTQsIDAsIDAsIDEpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDMxNWRlZyk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkLW1peGVkbWFyayB7XG4gIDAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAzMi44JSxcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbi5tZGMtY2hlY2tib3gge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMCAwIDE4cHg7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBwYWRkaW5nOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6bm90KDpjaGVja2VkKTpub3QoOmluZGV0ZXJtaW5hdGUpIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDpjaGVja2VkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCxcbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6aW5kZXRlcm1pbmF0ZSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICBib3JkZXItY29sb3I6ICMwMTg3ODY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAxODc4NjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfVxuXG5Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1mYWRlLWluLWJhY2tncm91bmQtMCB7XG4gIDAlIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgNTAlIHtcbiAgICBib3JkZXItY29sb3I6ICMwMTg3ODY7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxODc4NjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1mYWRlLW91dC1iYWNrZ3JvdW5kLTAge1xuICAwJSxcbiAgODAlIHtcbiAgICBib3JkZXItY29sb3I6ICMwMTg3ODY7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxODc4NjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7IH1cbiAgMTAwJSB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9IH1cblxuLm1kYy1jaGVja2JveC0tYW5pbS11bmNoZWNrZWQtY2hlY2tlZCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCwgLm1kYy1jaGVja2JveC0tYW5pbS11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBtZGMtY2hlY2tib3gtZmFkZS1pbi1iYWNrZ3JvdW5kLTA7IH1cblxuLm1kYy1jaGVja2JveC0tYW5pbS1jaGVja2VkLXVuY2hlY2tlZCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCwgLm1kYy1jaGVja2JveC0tYW5pbS1pbmRldGVybWluYXRlLXVuY2hlY2tlZCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBtZGMtY2hlY2tib3gtZmFkZS1vdXQtYmFja2dyb3VuZC0wOyB9XG5cbi5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gIGJvcmRlci1jb2xvcjogI2ZmZjsgfVxuXG4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2OyB9XG4gIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7IH0gfVxuXG4ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpkaXNhYmxlZDpub3QoOmNoZWNrZWQpOm5vdCg6aW5kZXRlcm1pbmF0ZSkgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpOyB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmRpc2FibGVkOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWQ6aW5kZXRlcm1pbmF0ZSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgbWFyZ2luOiAwIDFweDsgfSB9XG5cbi5tZGMtY2hlY2tib3gtLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAxMXB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDExcHg7XG4gIGJvdHRvbTogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiA0NSU7XG4gIGhlaWdodDogNDUlO1xuICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWxsLWNoYW5nZTogYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDkwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSksIGJvcmRlci1jb2xvciA5MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpOyB9XG4gIC5tZGMtY2hlY2tib3hbZGlyPVwicnRsXCJdIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsXG4gIFtkaXI9XCJydGxcIl0gLm1kYy1jaGVja2JveCAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDExcHg7IH1cblxuLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE4MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpOyB9XG4gIC5tZGMtY2hlY2tib3gtLXVwZ3JhZGVkIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4ubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aCB7XG4gIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDE4MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpO1xuICBzdHJva2U6IGN1cnJlbnRDb2xvcjtcbiAgc3Ryb2tlLXdpZHRoOiAzLjEycHg7XG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAyOS43ODMzMzg1O1xuICBzdHJva2UtZGFzaGFycmF5OiAyOS43ODMzMzg1OyB9XG5cbi5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDApIHJvdGF0ZSgwZGVnKTtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSwgdHJhbnNmb3JtIDkwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSk7IH1cblxuLm1kYy1jaGVja2JveC0tdXBncmFkZWQgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCxcbi5tZGMtY2hlY2tib3gtLXVwZ3JhZGVkIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayxcbi5tZGMtY2hlY2tib3gtLXVwZ3JhZGVkIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoLFxuLm1kYy1jaGVja2JveC0tdXBncmFkZWQgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCwgLm1kYy1jaGVja2JveC0tYW5pbS11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLCAubWRjLWNoZWNrYm94LS1hbmltLWNoZWNrZWQtdW5jaGVja2VkIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsIC5tZGMtY2hlY2tib3gtLWFuaW0taW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMTgwbXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsgfVxuXG4ubWRjLWNoZWNrYm94LS1hbmltLXVuY2hlY2tlZC1jaGVja2VkIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoIHtcbiAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtdW5jaGVja2VkLWNoZWNrZWQtY2hlY2ttYXJrLXBhdGggMTgwbXMgbGluZWFyIDBzO1xuICB0cmFuc2l0aW9uOiBub25lOyB9XG5cbi5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrIDkwbXMgbGluZWFyIDBzO1xuICB0cmFuc2l0aW9uOiBub25lOyB9XG5cbi5tZGMtY2hlY2tib3gtLWFuaW0tY2hlY2tlZC11bmNoZWNrZWQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgge1xuICBhbmltYXRpb246IG1kYy1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aCA5MG1zIGxpbmVhciAwcztcbiAgdHJhbnNpdGlvbjogbm9uZTsgfVxuXG4ubWRjLWNoZWNrYm94LS1hbmltLWNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWRjLWNoZWNrYm94X19jaGVja21hcmsge1xuICBhbmltYXRpb246IG1kYy1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtY2hlY2ttYXJrIDkwbXMgbGluZWFyIDBzO1xuICB0cmFuc2l0aW9uOiBub25lOyB9XG5cbi5tZGMtY2hlY2tib3gtLWFuaW0tY2hlY2tlZC1pbmRldGVybWluYXRlIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmsgOTBtcyBsaW5lYXIgMHM7XG4gIHRyYW5zaXRpb246IG5vbmU7IH1cblxuLm1kYy1jaGVja2JveC0tYW5pbS1pbmRldGVybWluYXRlLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWNoZWNrbWFyayA1MDBtcyBsaW5lYXIgMHM7XG4gIHRyYW5zaXRpb246IG5vbmU7IH1cblxuLm1kYy1jaGVja2JveC0tYW5pbS1pbmRldGVybWluYXRlLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLW1peGVkbWFyayA1MDBtcyBsaW5lYXIgMHM7XG4gIHRyYW5zaXRpb246IG5vbmU7IH1cblxuLm1kYy1jaGVja2JveC0tYW5pbS1pbmRldGVybWluYXRlLXVuY2hlY2tlZCAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICBhbmltYXRpb246IG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLXVuY2hlY2tlZC1taXhlZG1hcmsgMzAwbXMgbGluZWFyIDBzO1xuICB0cmFuc2l0aW9uOiBub25lOyB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6aW5kZXRlcm1pbmF0ZSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIGJhY2tncm91bmQtY29sb3IgOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7IH1cbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgsXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmluZGV0ZXJtaW5hdGUgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDsgfVxuXG4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29udGVudDogXCJcIjtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA5MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpLCB0cmFuc2Zvcm0gOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTsgfVxuXG4ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpmb2N1cyB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMi43NSwgMi43NSk7XG4gIG9wYWNpdHk6IDAuMTI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgODBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIHRyYW5zZm9ybSA4MG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogaW5oZXJpdDsgfVxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTgwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCB0cmFuc2Zvcm0gMTgwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDEpIHJvdGF0ZSgtNDVkZWcpOyB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmluZGV0ZXJtaW5hdGUgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA5MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpLCB0cmFuc2Zvcm0gOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTsgfVxuXG4ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDppbmRldGVybWluYXRlIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgxKSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLm1kYy1jaGVja2JveCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OyB9XG4gIC5tZGMtY2hlY2tib3g6OmJlZm9yZSwgLm1kYy1jaGVja2JveDo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtY2hlY2tib3g6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWNoZWNrYm94Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLWNoZWNrYm94Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWNoZWNrYm94OjpiZWZvcmUsIC5tZGMtY2hlY2tib3g6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2OyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy1jaGVja2JveDo6YmVmb3JlLCAubWRjLWNoZWNrYm94OjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7IH0gfVxuICAubWRjLWNoZWNrYm94OmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy1jaGVja2JveDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWNoZWNrYm94Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubWRjLWNoZWNrYm94Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1jaGVja2JveDo6YmVmb3JlLCAubWRjLWNoZWNrYm94OjphZnRlciB7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDUwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUsIC5tZGMtY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIGNhbGMoNTAlIC0gNTAlKSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgY2FsYyg1MCUgLSA1MCUpKTtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG5cbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgY29udGVudDogbm9uZTsgfVxuXG4ubWRjLWNoaXAge1xuICAtLW1kYy1yaXBwbGUtZmctc2l6ZTogMDtcbiAgLS1tZGMtcmlwcGxlLWxlZnQ6IDA7XG4gIC0tbWRjLXJpcHBsZS10b3A6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy1zY2FsZTogMTtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQ6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQ6IDA7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDE3ODU3MTRlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiA3cHggMTJweDtcbiAgb3V0bGluZTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGMtY2hpcDo6YmVmb3JlLCAubWRjLWNoaXA6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAubWRjLWNoaXA6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtY2hpcC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtY2hpcC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgdG9wOiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsgfVxuICAubWRjLWNoaXAubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy1jaGlwLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzOyB9XG4gIC5tZGMtY2hpcC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCAxNTBtcztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1jaGlwOjpiZWZvcmUsIC5tZGMtY2hpcDo6YWZ0ZXIge1xuICAgIHRvcDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICB3aWR0aDogMjAwJTtcbiAgICBoZWlnaHQ6IDIwMCU7IH1cbiAgLm1kYy1jaGlwLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1jaGlwOjpiZWZvcmUsIC5tZGMtY2hpcDo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7IH1cbiAgLm1kYy1jaGlwOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy1jaGlwOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1jaGlwLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1jaGlwOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubWRjLWNoaXA6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1jaGlwLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtY2hpcDpob3ZlciB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7IH1cbiAgLm1kYy1jaGlwLm1kYy1jaGlwLS1zZWxlY3RlZCAubWRjLWNoaXBfX2NoZWNrbWFyayxcbiAgLm1kYy1jaGlwIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZzpub3QoLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nLWhpZGRlbikge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogLTRweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtNHB4OyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLWNoaXAubWRjLWNoaXAtLXNlbGVjdGVkIC5tZGMtY2hpcF9fY2hlY2ttYXJrLCAubWRjLWNoaXAubWRjLWNoaXAtLXNlbGVjdGVkIC5tZGMtY2hpcF9fY2hlY2ttYXJrW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAgIC5tZGMtY2hpcCAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmc6bm90KC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZy1oaWRkZW4pLFxuICAgIC5tZGMtY2hpcCAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmc6bm90KC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZy1oaWRkZW4pW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4OyB9XG4gIC5tZGMtY2hpcDpob3ZlciB7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCk7IH1cblxuLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7IH1cblxuLm1kYy1jaGlwX19pY29uLS10cmFpbGluZyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpOyB9XG4gIC5tZGMtY2hpcF9faWNvbi0tdHJhaWxpbmc6aG92ZXIge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNjIpOyB9XG4gIC5tZGMtY2hpcF9faWNvbi0tdHJhaWxpbmc6Zm9jdXMge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpOyB9XG5cbi5tZGMtY2hpcF9faWNvbi5tZGMtY2hpcF9faWNvbi0tbGVhZGluZzpub3QoLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nLWhpZGRlbikge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmb250LXNpemU6IDIwcHg7IH1cblxuLm1kYy1jaGlwX19pY29uLm1kYy1jaGlwX19pY29uLS10cmFpbGluZyB7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMThweDsgfVxuXG4ubWRjLWNoaXBfX2ljb24tLXRyYWlsaW5nIHtcbiAgbWFyZ2luOiAwIC00cHggMCA0cHg7IH1cblxuLm1kYy1jaGlwLS1leGl0IHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA3NW1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIHdpZHRoIDE1MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCBwYWRkaW5nIDEwMG1zIGxpbmVhciwgbWFyZ2luIDEwMG1zIGxpbmVhcjtcbiAgb3BhY2l0eTogMDsgfVxuXG4ubWRjLWNoaXBfX3RleHQge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5tZGMtY2hpcF9faWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4ubWRjLWNoaXBfX2NoZWNrbWFyayB7XG4gIGhlaWdodDogMjBweDsgfVxuXG4ubWRjLWNoaXBfX2NoZWNrbWFyay1wYXRoIHtcbiAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMTUwbXMgNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpO1xuICBzdHJva2Utd2lkdGg6IDJweDtcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDI5Ljc4MzMzODU7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDI5Ljc4MzMzODU7IH1cblxuLm1kYy1jaGlwLS1zZWxlY3RlZCAubWRjLWNoaXBfX2NoZWNrbWFyay1wYXRoIHtcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IH1cblxuLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMDg7IH1cblxuLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmJlZm9yZSwgLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBlZTsgfVxuICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmJlZm9yZSwgLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmFmdGVyIHtcbiAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfSB9XG5cbi5tZGMtY2hpcC1zZXQtLWNob2ljZSAubWRjLWNoaXAubWRjLWNoaXAtLXNlbGVjdGVkOmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwLjEyOyB9XG5cbi5tZGMtY2hpcC1zZXQtLWNob2ljZSAubWRjLWNoaXAubWRjLWNoaXAtLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI7IH1cblxuLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuXG4ubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwLm1kYy1jaGlwLS1zZWxlY3RlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI7IH1cblxuLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjI7IH1cblxuLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQge1xuICBjb2xvcjogIzYyMDBlZTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9XG4gIC5tZGMtY2hpcC1zZXQtLWNob2ljZSAubWRjLWNoaXAubWRjLWNoaXAtLXNlbGVjdGVkIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZyB7XG4gICAgY29sb3I6IHJnYmEoOTgsIDAsIDIzOCwgMC41NCk7IH1cbiAgLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6aG92ZXIge1xuICAgIGNvbG9yOiAjNjIwMGVlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9XG5cbi5tZGMtY2hpcC1zZXQtLWNob2ljZSAubWRjLWNoaXAgLm1kYy1jaGlwX19jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogIzYyMDBlZTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBzdHJva2U6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfVxuXG4ubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwLS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UsICNmZmYpOyB9XG5cbi5tZGMtY2hpcF9fY2hlY2ttYXJrLXN2ZyB7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHRyYW5zaXRpb246IHdpZHRoIDE1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cblxuLm1kYy1jaGlwLS1zZWxlY3RlZCAubWRjLWNoaXBfX2NoZWNrbWFyay1zdmcge1xuICB3aWR0aDogMjBweDsgfVxuXG4ubWRjLWNoaXAtc2V0LS1maWx0ZXIgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA3NW1zIGxpbmVhcjtcbiAgdHJhbnNpdGlvbi1kZWxheTogLTUwbXM7XG4gIG9wYWNpdHk6IDE7IH1cbiAgLm1kYy1jaGlwLXNldC0tZmlsdGVyIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZyArIC5tZGMtY2hpcF9fY2hlY2ttYXJrIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDc1bXMgbGluZWFyO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDgwbXM7XG4gICAgb3BhY2l0eTogMDsgfVxuICAgIC5tZGMtY2hpcC1zZXQtLWZpbHRlciAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcgKyAubWRjLWNoaXBfX2NoZWNrbWFyayAubWRjLWNoaXBfX2NoZWNrbWFyay1zdmcge1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggMG1zOyB9XG5cbi5tZGMtY2hpcC1zZXQtLWZpbHRlciAubWRjLWNoaXAtLXNlbGVjdGVkIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZyB7XG4gIG9wYWNpdHk6IDA7IH1cbiAgLm1kYy1jaGlwLXNldC0tZmlsdGVyIC5tZGMtY2hpcC0tc2VsZWN0ZWQgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nICsgLm1kYy1jaGlwX19jaGVja21hcmsge1xuICAgIHdpZHRoOiAwO1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLm1kYy1jaGlwLXNldC0tZmlsdGVyIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZy1oaWRkZW4ubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcge1xuICB3aWR0aDogMDtcbiAgb3BhY2l0eTogMDsgfVxuICAubWRjLWNoaXAtc2V0LS1maWx0ZXIgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nLWhpZGRlbi5tZGMtY2hpcF9faWNvbi0tbGVhZGluZyArIC5tZGMtY2hpcF9fY2hlY2ttYXJrIHtcbiAgICB3aWR0aDogMjBweDsgfVxuXG5Aa2V5ZnJhbWVzIG1kYy1jaGlwLWVudHJ5IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICAgIG9wYWNpdHk6IC40OyB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4ubWRjLWNoaXAtc2V0IHtcbiAgcGFkZGluZzogNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLm1kYy1jaGlwLXNldCAubWRjLWNoaXAge1xuICAgIG1hcmdpbjogNHB4OyB9XG5cbi5tZGMtY2hpcC1zZXQtLWlucHV0IC5tZGMtY2hpcCB7XG4gIGFuaW1hdGlvbjogbWRjLWNoaXAtZW50cnkgMTAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7IH1cblxuLm1kYy1kaWFsb2csXG4ubWRjLWRpYWxvZ19fc2NyaW0ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuLm1kYy1kaWFsb2cge1xuICBkaXNwbGF5OiBub25lO1xuICB6LWluZGV4OiA3OyB9XG4gIC5tZGMtZGlhbG9nIC5tZGMtZGlhbG9nX19zdXJmYWNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgI2ZmZik7IH1cbiAgLm1kYy1kaWFsb2cgLm1kYy1kaWFsb2dfX3NjcmltIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzIpOyB9XG4gIC5tZGMtZGlhbG9nIC5tZGMtZGlhbG9nX190aXRsZSB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7IH1cbiAgLm1kYy1kaWFsb2cgLm1kYy1kaWFsb2dfX2NvbnRlbnQge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7IH1cbiAgLm1kYy1kaWFsb2cubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fdGl0bGUsXG4gIC5tZGMtZGlhbG9nLm1kYy1kaWFsb2ctLXNjcm9sbGFibGUgLm1kYy1kaWFsb2dfX2FjdGlvbnMge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuICAubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgbWluLXdpZHRoOiAyODBweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNTkycHgpIHtcbiAgICAubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA1OTJweCkge1xuICAgIC5tZGMtZGlhbG9nIC5tZGMtZGlhbG9nX19zdXJmYWNlIHtcbiAgICAgIG1heC13aWR0aDogNTYwcHg7IH0gfVxuICAubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDMycHgpOyB9XG4gIC5tZGMtZGlhbG9nIC5tZGMtZGlhbG9nX19zdXJmYWNlIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7IH1cblxuLm1kYy1kaWFsb2dfX3NjcmltIHtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogLTE7IH1cblxuLm1kYy1kaWFsb2dfX2NvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZ3JvdzogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTsgfVxuICAubWRjLWRpYWxvZ1tkaXI9XCJydGxcIl0gLm1kYy1kaWFsb2dfX3N1cmZhY2UsXG4gIFtkaXI9XCJydGxcIl0gLm1kYy1kaWFsb2cgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi5tZGMtZGlhbG9nX190aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMTI1ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMjRweCA5cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuICAubWRjLWRpYWxvZ19fdGl0bGU6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHZlcnRpY2FsLWFsaWduOiAwOyB9XG4gIC5tZGMtZGlhbG9nW2Rpcj1cInJ0bFwiXSAubWRjLWRpYWxvZ19fdGl0bGUsXG4gIFtkaXI9XCJydGxcIl0gLm1kYy1kaWFsb2cgLm1kYy1kaWFsb2dfX3RpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4ubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fdGl0bGUge1xuICBwYWRkaW5nLWJvdHRvbTogMTVweDsgfVxuXG4ubWRjLWRpYWxvZ19fY29udGVudCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzMTI1ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGZsZXgtZ3JvdzogMTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAyMHB4IDI0cHg7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cbiAgLm1kYy1kaWFsb2dfX2NvbnRlbnQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLm1kYy1kaWFsb2dfX2NvbnRlbnQgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ubWRjLWRpYWxvZ19fdGl0bGUgKyAubWRjLWRpYWxvZ19fY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX19jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDsgfVxuXG4ubWRjLWRpYWxvZ19fY29udGVudCAubWRjLWxpc3Q6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmc6IDZweCAwIDA7IH1cblxuLm1kYy1kaWFsb2ctLXNjcm9sbGFibGUgLm1kYy1kaWFsb2dfX2NvbnRlbnQgLm1kYy1saXN0OmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nOiAwOyB9XG5cbi5tZGMtZGlhbG9nX19hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LXNocmluazogMDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiA1MnB4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG4gIC5tZGMtZGlhbG9nLS1zdGFja2VkIC5tZGMtZGlhbG9nX19hY3Rpb25zIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4ubWRjLWRpYWxvZ19fYnV0dG9uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtZGlhbG9nX19idXR0b24sIC5tZGMtZGlhbG9nX19idXR0b25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogOHB4OyB9XG4gIC5tZGMtZGlhbG9nX19idXR0b246Zmlyc3QtY2hpbGQge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLWRpYWxvZ19fYnV0dG9uOmZpcnN0LWNoaWxkLCAubWRjLWRpYWxvZ19fYnV0dG9uOmZpcnN0LWNoaWxkW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAubWRjLWRpYWxvZ1tkaXI9XCJydGxcIl0gLm1kYy1kaWFsb2dfX2J1dHRvbixcbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fYnV0dG9uIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZGMtZGlhbG9nLS1zdGFja2VkIC5tZGMtZGlhbG9nX19idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG1hcmdpbi10b3A6IDEycHg7IH1cblxuLm1kYy1kaWFsb2ctLW9wZW4sXG4ubWRjLWRpYWxvZy0tb3BlbmluZyxcbi5tZGMtZGlhbG9nLS1jbG9zaW5nIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4ubWRjLWRpYWxvZy0tb3BlbmluZyAubWRjLWRpYWxvZ19fc2NyaW0ge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuXG4ubWRjLWRpYWxvZy0tb3BlbmluZyAubWRjLWRpYWxvZ19fY29udGFpbmVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA3NW1zIGxpbmVhciwgdHJhbnNmb3JtIDE1MG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRjLWRpYWxvZy0tY2xvc2luZyAubWRjLWRpYWxvZ19fc2NyaW0sXG4ubWRjLWRpYWxvZy0tY2xvc2luZyAubWRjLWRpYWxvZ19fY29udGFpbmVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA3NW1zIGxpbmVhcjsgfVxuXG4ubWRjLWRpYWxvZy0tY2xvc2luZyAubWRjLWRpYWxvZ19fY29udGFpbmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuXG4ubWRjLWRpYWxvZy0tb3BlbiAubWRjLWRpYWxvZ19fc2NyaW0ge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtZGlhbG9nLS1vcGVuIC5tZGMtZGlhbG9nX19jb250YWluZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtZGlhbG9nLXNjcm9sbC1sb2NrIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ubWRjLWRyYXdlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgLyogQG5vZmxpcCAqL1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwO1xuICB6LWluZGV4OiA2O1xuICB3aWR0aDogMjU2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIC8qIEBub2ZsaXAgKi9cbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAubWRjLWRyYXdlciAubWRjLWRyYXdlcl9fdGl0bGUge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpOyB9XG4gIC5tZGMtZHJhd2VyIC5tZGMtbGlzdC1ncm91cF9fc3ViaGVhZGVyIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gIC5tZGMtZHJhd2VyIC5tZGMtZHJhd2VyX19zdWJ0aXRsZSB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuICAubWRjLWRyYXdlciAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuICAubWRjLWRyYXdlciAubWRjLWxpc3QtaXRlbSB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7IH1cbiAgLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgY29sb3I6ICM2MjAwZWU7IH1cbiAgLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCB7XG4gICAgY29sb3I6IHJnYmEoOTgsIDAsIDIzOCwgMC44Nyk7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWRyYXdlciwgLm1kYy1kcmF3ZXJbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuICAubWRjLWRyYXdlciAubWRjLWxpc3QtaXRlbSB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG4gIC5tZGMtZHJhd2VyLm1kYy1kcmF3ZXItLW9wZW46bm90KC5tZGMtZHJhd2VyLS1jbG9zaW5nKSArIC5tZGMtZHJhd2VyLWFwcC1jb250ZW50IHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDI1NnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtZHJhd2VyLm1kYy1kcmF3ZXItLW9wZW46bm90KC5tZGMtZHJhd2VyLS1jbG9zaW5nKSArIC5tZGMtZHJhd2VyLWFwcC1jb250ZW50LCAubWRjLWRyYXdlci5tZGMtZHJhd2VyLS1vcGVuOm5vdCgubWRjLWRyYXdlci0tY2xvc2luZykgKyAubWRjLWRyYXdlci1hcHAtY29udGVudFtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1NnB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1kcmF3ZXIsIC5tZGMtZHJhd2VyW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBub25lO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7IH1cbiAgLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW0ge1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM3NXJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAwNzE0Mjg2ZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAgIGhlaWdodDogY2FsYyg0OHB4IC0gMiAqIDRweCk7XG4gICAgbWFyZ2luOiA4cHggOHB4O1xuICAgIHBhZGRpbmc6IDAgOHB4OyB9XG4gIC5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtOm50aC1jaGlsZCgxKSB7XG4gICAgbWFyZ2luLXRvcDogMnB4OyB9XG4gIC5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtOm50aC1sYXN0LWNoaWxkKDEpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5tZGMtZHJhd2VyIC5tZGMtbGlzdC1ncm91cF9fc3ViaGVhZGVyIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxNzg1NzE0ZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMTZweDsgfVxuICAgIC5tZGMtZHJhd2VyIC5tZGMtbGlzdC1ncm91cF9fc3ViaGVhZGVyOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgdmVydGljYWwtYWxpZ246IDA7IH1cbiAgLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWRpdmlkZXIge1xuICAgIG1hcmdpbjogM3B4IDAgNHB4IDA7IH1cbiAgLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW1fX3RleHQsXG4gIC5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWRjLWRyYXdlci0tYW5pbWF0ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWRyYXdlci0tYW5pbWF0ZSwgLm1kYy1kcmF3ZXItLWFuaW1hdGVbZGlyPVwicnRsXCJdIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cblxuLm1kYy1kcmF3ZXItLW9wZW5pbmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1kcmF3ZXItLW9wZW5pbmcsIC5tZGMtZHJhd2VyLS1vcGVuaW5nW2Rpcj1cInJ0bFwiXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG5cbi5tZGMtZHJhd2VyLS1jbG9zaW5nIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjAwbXM7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWRyYXdlci0tY2xvc2luZywgLm1kYy1kcmF3ZXItLWNsb3NpbmdbZGlyPVwicnRsXCJdIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cblxuLm1kYy1kcmF3ZXJfX2hlYWRlciB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiA2NHB4O1xuICBwYWRkaW5nOiAwIDE2cHggNHB4OyB9XG5cbi5tZGMtZHJhd2VyX190aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMTI1ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IC0yMHB4OyB9XG4gIC5tZGMtZHJhd2VyX190aXRsZTo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgdmVydGljYWwtYWxpZ246IDA7IH1cbiAgLm1kYy1kcmF3ZXJfX3RpdGxlOjphZnRlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHZlcnRpY2FsLWFsaWduOiAtMjBweDsgfVxuXG4ubWRjLWRyYXdlcl9fc3VidGl0bGUge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxNzg1NzE0ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLm1kYy1kcmF3ZXJfX3N1YnRpdGxlOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogMDsgfVxuXG4ubWRjLWRyYXdlcl9fY29udGVudCB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG5cbi5tZGMtZHJhd2VyLS1kaXNtaXNzaWJsZSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogaW5pdGlhbDtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1kcmF3ZXItLWRpc21pc3NpYmxlLCAubWRjLWRyYXdlci0tZGlzbWlzc2libGVbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDA7IH1cbiAgLm1kYy1kcmF3ZXItLWRpc21pc3NpYmxlLm1kYy1kcmF3ZXItLW9wZW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cblxuLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQsIC5tZGMtZHJhd2VyLWFwcC1jb250ZW50W2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLm1kYy1kcmF3ZXItLW1vZGFsIHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogaW5pdGlhbDtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkOyB9XG4gIC5tZGMtZHJhd2VyLS1tb2RhbCArIC5tZGMtZHJhd2VyLXNjcmltIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzIpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1kcmF3ZXItLW1vZGFsLCAubWRjLWRyYXdlci0tbW9kYWxbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDA7IH1cbiAgLm1kYy1kcmF3ZXItLW1vZGFsLm1kYy1kcmF3ZXItLW9wZW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cblxuLm1kYy1kcmF3ZXItc2NyaW0ge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHotaW5kZXg6IDU7IH1cbiAgLm1kYy1kcmF3ZXItLW9wZW4gKyAubWRjLWRyYXdlci1zY3JpbSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1kYy1kcmF3ZXItLWFuaW1hdGUgKyAubWRjLWRyYXdlci1zY3JpbSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAubWRjLWRyYXdlci0tb3BlbmluZyArIC5tZGMtZHJhd2VyLXNjcmltIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcztcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5tZGMtZHJhd2VyLS1jbG9zaW5nICsgLm1kYy1kcmF3ZXItc2NyaW0ge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zO1xuICAgIG9wYWNpdHk6IDA7IH1cblxuLm1kYy1lbGV2YXRpb24tLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoyIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16NCB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16NSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejcge1xuICBib3gtc2hhZG93OiAwcHggNHB4IDVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDdweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMnB4IDE2cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXo4IHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejEwIHtcbiAgYm94LXNoYWRvdzogMHB4IDZweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMHB4IDE0cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA0cHggMThweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejExIHtcbiAgYm94LXNoYWRvdzogMHB4IDZweCA3cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMXB4IDE1cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA0cHggMjBweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejEzIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxM3B4IDE5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjRweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejE0IHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA5cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNHB4IDIxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjZweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejE2IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoxNyB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE3cHggMjZweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejE5IHtcbiAgYm94LXNoYWRvdzogMHB4IDlweCAxMnB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTlweCAyOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM2cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoyMCB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMHB4IDMxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggMzhweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MjIge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxNHB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjJweCAzNXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDQycHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoyMyB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE0cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyM3B4IDM2cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLXRyYW5zaXRpb24ge1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHdpbGwtY2hhbmdlOiBib3gtc2hhZG93OyB9XG5cbi5tZGMtZmFiIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDU2cHg7XG4gIGhlaWdodDogNTZweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG9wYWNpdHkgMTVtcyBsaW5lYXIgMzBtcywgdHJhbnNmb3JtIDI3MG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAxODc4NjtcbiAgY29sb3I6ICNmZmY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1zZWNvbmRhcnksICNmZmYpOyB9XG4gIC5tZGMtZmFiOm5vdCgubWRjLWZhYi0tZXh0ZW5kZWQpIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgLm1kYy1mYWI6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwOyB9XG4gIC5tZGMtZmFiOmhvdmVyLCAubWRjLWZhYjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG4gIC5tZGMtZmFiOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuICAubWRjLWZhYjphY3RpdmUsIC5tZGMtZmFiOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5tZGMtZmFiOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm1kYy1mYWIgPiBzdmcge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAubWRjLWZhYiB7XG4gICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfSB9XG4gIC5tZGMtZmFiIC5tZGMtZmFiX19pY29uIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgZm9udC1zaXplOiAyNHB4OyB9XG5cbi5tZGMtZmFiLS1taW5pIHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDsgfVxuXG4ubWRjLWZhYi0tZXh0ZW5kZWQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4OTI4NTcxZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgcGFkZGluZzogMCAyMHB4O1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQ4cHg7IH1cbiAgLm1kYy1mYWItLWV4dGVuZGVkIC5tZGMtZmFiX19pY29uIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IC04cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMTJweDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1mYWItLWV4dGVuZGVkIC5tZGMtZmFiX19pY29uLCAubWRjLWZhYi0tZXh0ZW5kZWQgLm1kYy1mYWJfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OyB9XG4gIC5tZGMtZmFiLS1leHRlbmRlZCAubWRjLWZhYl9fbGFiZWwgKyAubWRjLWZhYl9faWNvbiB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IC04cHg7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtZmFiLS1leHRlbmRlZCAubWRjLWZhYl9fbGFiZWwgKyAubWRjLWZhYl9faWNvbiwgLm1kYy1mYWItLWV4dGVuZGVkIC5tZGMtZmFiX19sYWJlbCArIC5tZGMtZmFiX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tbGVmdDogLThweDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1yaWdodDogMTJweDsgfVxuXG4ubWRjLWZhYl9fbGFiZWwge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5tZGMtZmFiX19pY29uIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE4MG1zIDkwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgfVxuXG4ubWRjLWZhYiAubWRjLWZhYl9faWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4ubWRjLWZhYi0tZXhpdGVkIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciAxNTBtcywgdHJhbnNmb3JtIDE4MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTsgfVxuICAubWRjLWZhYi0tZXhpdGVkIC5tZGMtZmFiX19pY29uIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMzVtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7IH1cblxuLm1kYy1mYWIge1xuICAtLW1kYy1yaXBwbGUtZmctc2l6ZTogMDtcbiAgLS1tZGMtcmlwcGxlLWxlZnQ6IDA7XG4gIC0tbWRjLXJpcHBsZS10b3A6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy1zY2FsZTogMTtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQ6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQ6IDA7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTsgfVxuICAubWRjLWZhYjo6YmVmb3JlLCAubWRjLWZhYjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtZmFiOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTVtcyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMTVtcyBsaW5lYXI7XG4gICAgei1pbmRleDogMTsgfVxuICAubWRjLWZhYi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtZmFiLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtZmFiLm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZDo6YWZ0ZXIge1xuICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIDApO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIDApOyB9XG4gIC5tZGMtZmFiLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzOyB9XG4gIC5tZGMtZmFiLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWZhYjo6YmVmb3JlLCAubWRjLWZhYjo6YWZ0ZXIge1xuICAgIHRvcDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICB3aWR0aDogMjAwJTtcbiAgICBoZWlnaHQ6IDIwMCU7IH1cbiAgLm1kYy1mYWIubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLWZhYjo6YmVmb3JlLCAubWRjLWZhYjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAubWRjLWZhYjo6YmVmb3JlLCAubWRjLWZhYjo6YWZ0ZXIge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1zZWNvbmRhcnksICNmZmYpOyB9IH1cbiAgLm1kYy1mYWI6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wODsgfVxuICAubWRjLWZhYjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtZmFiLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMjQ7IH1cbiAgLm1kYy1mYWI6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtZmFiOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjI0OyB9XG4gIC5tZGMtZmFiLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjI0OyB9XG5cbi5tZGMtZmxvYXRpbmctbGFiZWwge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA5Mzc1ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgY29sb3IgMTUwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogMS4xNXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogdGV4dDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGF1dG87XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICBjdXJzb3I6IGF1dG87IH1cblxuLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMC43NSk7IH1cblxuLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2Uge1xuICBhbmltYXRpb246IG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS1zdGFuZGFyZCAyNTBtcyAxOyB9XG5cbkBrZXlmcmFtZXMgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXN0YW5kYXJkIHtcbiAgLyogY2xlYW4tY3NzIGlnbm9yZTpzdGFydCAqL1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDAlKSkgdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgwLjc1KTsgfVxuICAzMyUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMyLCAwLjQ5NTgxOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoNCUgLSAwJSkpIHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMC43NSk7IH1cbiAgNjYlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0MzUsIDAuMzgxMzUyLCAwLjU1LCAwLjk1NjM1Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTQlIC0gMCUpKSB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDAuNzUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwJSkpIHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMC43NSk7IH1cbiAgLyogY2xlYW4tY3NzIGlnbm9yZTplbmQgKi8gfVxuXG4ubWRjLWZvcm0tZmllbGQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxNzg1NzE0ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAubWRjLWZvcm0tZmllbGQgPiBsYWJlbCB7XG4gICAgb3JkZXI6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiA0cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWZvcm0tZmllbGQgPiBsYWJlbCwgLm1kYy1mb3JtLWZpZWxkW2Rpcj1cInJ0bFwiXSA+IGxhYmVsIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweDsgfVxuXG4ubWRjLWZvcm0tZmllbGQtLWFsaWduLWVuZCA+IGxhYmVsIHtcbiAgb3JkZXI6IC0xO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDRweDsgfVxuXG5bZGlyPVwicnRsXCJdIC5tZGMtZm9ybS1maWVsZC0tYWxpZ24tZW5kID4gbGFiZWwsIC5tZGMtZm9ybS1maWVsZC0tYWxpZ24tZW5kW2Rpcj1cInJ0bFwiXSA+IGxhYmVsIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiA0cHg7IH1cblxuLm1kYy1pY29uLWJ1dHRvbiB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIHBhZGRpbmc6IDEycHg7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAubWRjLWljb24tYnV0dG9uIHN2ZyxcbiAgLm1kYy1pY29uLWJ1dHRvbiBpbWcge1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDsgfVxuICAubWRjLWljb24tYnV0dG9uOmRpc2FibGVkIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LWRpc2FibGVkLW9uLWxpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMzgpKTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLm1kYy1pY29uLWJ1dHRvbl9faWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAubWRjLWljb24tYnV0dG9uX19pY29uLm1kYy1pY29uLWJ1dHRvbl9faWNvbi0tb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1kYy1pY29uLWJ1dHRvbi0tb24gLm1kYy1pY29uLWJ1dHRvbl9faWNvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1kYy1pY29uLWJ1dHRvbi0tb24gLm1kYy1pY29uLWJ1dHRvbl9faWNvbi5tZGMtaWNvbi1idXR0b25fX2ljb24tLW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLm1kYy1pY29uLWJ1dHRvbiB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OyB9XG4gIC5tZGMtaWNvbi1idXR0b246OmJlZm9yZSwgLm1kYy1pY29uLWJ1dHRvbjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtaWNvbi1idXR0b246OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWljb24tYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy1pY29uLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLWljb24tYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWljb24tYnV0dG9uOjpiZWZvcmUsIC5tZGMtaWNvbi1idXR0b246OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogY2FsYyg1MCUgLSA1MCUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAubWRjLWljb24tYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSwgLm1kYy1pY29uLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgY2FsYyg1MCUgLSA1MCUpKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCBjYWxjKDUwJSAtIDUwJSkpO1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLWljb24tYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1pY29uLWJ1dHRvbjo6YmVmb3JlLCAubWRjLWljb24tYnV0dG9uOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsgfVxuICAubWRjLWljb24tYnV0dG9uOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy1pY29uLWJ1dHRvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWljb24tYnV0dG9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubWRjLWljb24tYnV0dG9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cblxuLm1kYy1pbWFnZS1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMDsgfVxuXG4ubWRjLWltYWdlLWxpc3RfX2l0ZW0sXG4ubWRjLWltYWdlLWxpc3RfX2ltYWdlLWFzcGVjdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1kYy1pbWFnZS1saXN0X19pdGVtIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG5cbi5tZGMtaW1hZ2UtbGlzdF9faW1hZ2Uge1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubWRjLWltYWdlLWxpc3RfX2ltYWdlLWFzcGVjdC1jb250YWluZXIgLm1kYy1pbWFnZS1saXN0X19pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuXG4ubWRjLWltYWdlLWxpc3RfX2ltYWdlLWFzcGVjdC1jb250YWluZXIge1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlIC8gMSk7IH1cblxuLm1kYy1pbWFnZS1saXN0X19pbWFnZSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLm1kYy1pbWFnZS1saXN0LS13aXRoLXRleHQtcHJvdGVjdGlvbiAubWRjLWltYWdlLWxpc3RfX3N1cHBvcnRpbmcge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5tZGMtaW1hZ2UtbGlzdF9fc3VwcG9ydGluZyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBsaW5lLWhlaWdodDogMjRweDsgfVxuXG4ubWRjLWltYWdlLWxpc3RfX2xhYmVsIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwOTM3NWVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ubWRjLWltYWdlLWxpc3QtLXdpdGgtdGV4dC1wcm90ZWN0aW9uIC5tZGMtaW1hZ2UtbGlzdF9fc3VwcG9ydGluZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0OHB4O1xuICBwYWRkaW5nOiAwIDE2cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgY29sb3I6ICNmZmY7IH1cblxuLm1kYy1pbWFnZS1saXN0LS1tYXNvbnJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1kYy1pbWFnZS1saXN0LS1tYXNvbnJ5IC5tZGMtaW1hZ2UtbGlzdF9faXRlbSB7XG4gICAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47IH1cbiAgLm1kYy1pbWFnZS1saXN0LS1tYXNvbnJ5IC5tZGMtaW1hZ2UtbGlzdF9faW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG46cm9vdCB7XG4gIC0tbWRjLWxheW91dC1ncmlkLW1hcmdpbi1kZXNrdG9wOiAyNHB4O1xuICAtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcDogMjRweDtcbiAgLS1tZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoLWRlc2t0b3A6IDcycHg7XG4gIC0tbWRjLWxheW91dC1ncmlkLW1hcmdpbi10YWJsZXQ6IDE2cHg7XG4gIC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQ6IDE2cHg7XG4gIC0tbWRjLWxheW91dC1ncmlkLWNvbHVtbi13aWR0aC10YWJsZXQ6IDcycHg7XG4gIC0tbWRjLWxheW91dC1ncmlkLW1hcmdpbi1waG9uZTogMTZweDtcbiAgLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lOiAxNnB4O1xuICAtLW1kYy1sYXlvdXQtZ3JpZC1jb2x1bW4td2lkdGgtcGhvbmU6IDcycHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDg0MHB4KSB7XG4gIC5tZGMtbGF5b3V0LWdyaWQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMjRweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLWRlc2t0b3AsIDI0cHgpOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSBhbmQgKG1heC13aWR0aDogODM5cHgpIHtcbiAgLm1kYy1sYXlvdXQtZ3JpZCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIHBhZGRpbmc6IHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1tYXJnaW4tdGFibGV0LCAxNnB4KTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0NzlweCkge1xuICAubWRjLWxheW91dC1ncmlkIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgcGFkZGluZzogdmFyKC0tbWRjLWxheW91dC1ncmlkLW1hcmdpbi1waG9uZSwgMTZweCk7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODQwcHgpIHtcbiAgLm1kYy1sYXlvdXQtZ3JpZF9faW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBtYXJnaW46IC0xMnB4O1xuICAgIG1hcmdpbjogY2FsYyh2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLWRlc2t0b3AsIDI0cHgpIC8gMiAqIC0xKTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9faW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGdyaWQtZ2FwOiAyNHB4O1xuICAgICAgICBncmlkLWdhcDogdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIG1pbm1heCgwLCAxZnIpKTsgfSB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSBhbmQgKG1heC13aWR0aDogODM5cHgpIHtcbiAgLm1kYy1sYXlvdXQtZ3JpZF9faW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBtYXJnaW46IC04cHg7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSAvIDIgKiAtMSk7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2lubmVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBncmlkLWdhcDogMTZweDtcbiAgICAgICAgZ3JpZC1nYXA6IHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoOCwgbWlubWF4KDAsIDFmcikpOyB9IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLm1kYy1sYXlvdXQtZ3JpZF9faW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBtYXJnaW46IC04cHg7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpIC8gMiAqIC0xKTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9faW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGdyaWQtZ2FwOiAxNnB4O1xuICAgICAgICBncmlkLWdhcDogdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCk7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTsgfSB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDg0MHB4KSB7XG4gIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzJSAtIDI0cHgpO1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luOiAxMnB4O1xuICAgIG1hcmdpbjogY2FsYyh2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLWRlc2t0b3AsIDI0cHgpIC8gMik7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbCB7XG4gICAgICAgIG1hcmdpbjogMDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMS1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDguMzMzMzMzMzMlIC0gMjRweCk7XG4gICAgICB3aWR0aDogY2FsYyg4LjMzMzMzMzMzJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEtZGVza3RvcCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDE7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMixcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTItZGVza3RvcCB7XG4gICAgICB3aWR0aDogY2FsYygxNi42NjY2NjY2NyUgLSAyNHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY2NjY3JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0yLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTItZGVza3RvcCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMyxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTMtZGVza3RvcCB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAyNHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0zLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTMtZGVza3RvcCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDM7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNCxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTQtZGVza3RvcCB7XG4gICAgICB3aWR0aDogY2FsYygzMy4zMzMzMzMzMyUgLSAyNHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi00LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTQtZGVza3RvcCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTUtZGVza3RvcCB7XG4gICAgICB3aWR0aDogY2FsYyg0MS42NjY2NjY2NyUgLSAyNHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDQxLjY2NjY2NjY3JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi01LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTUtZGVza3RvcCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDU7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNixcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTYtZGVza3RvcCB7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAyNHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi02LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTYtZGVza3RvcCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDY7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNyxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTctZGVza3RvcCB7XG4gICAgICB3aWR0aDogY2FsYyg1OC4zMzMzMzMzMyUgLSAyNHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDU4LjMzMzMzMzMzJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi03LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTctZGVza3RvcCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDc7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOCxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTgtZGVza3RvcCB7XG4gICAgICB3aWR0aDogY2FsYyg2Ni42NjY2NjY2NyUgLSAyNHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDY2LjY2NjY2NjY3JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi04LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTgtZGVza3RvcCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDg7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTktZGVza3RvcCB7XG4gICAgICB3aWR0aDogY2FsYyg3NSUgLSAyNHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDc1JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi05LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTktZGVza3RvcCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDk7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTAsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDgzLjMzMzMzMzMzJSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoODMuMzMzMzMzMzMlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEwLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEwLWRlc2t0b3Age1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAxMDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTExLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IGNhbGMoOTEuNjY2NjY2NjclIC0gMjRweCk7XG4gICAgICB3aWR0aDogY2FsYyg5MS42NjY2NjY2NyUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLWRlc2t0b3AsIDI0cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTEsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTEtZGVza3RvcCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDExOyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEyLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTItZGVza3RvcCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjRweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEyLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEyLWRlc2t0b3Age1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAxMjsgfSB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSBhbmQgKG1heC13aWR0aDogODM5cHgpIHtcbiAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbjogOHB4O1xuICAgIG1hcmdpbjogY2FsYyh2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXRhYmxldCwgMTZweCkgLyAyKTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsIHtcbiAgICAgICAgbWFyZ2luOiAwOyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xLXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYygxMi41JSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTIuNSUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXRhYmxldCwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEtdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMTsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0yLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMi10YWJsZXQge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXRhYmxldCwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0yLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTItdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMjsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0zLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMy10YWJsZXQge1xuICAgICAgd2lkdGg6IGNhbGMoMzcuNSUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDM3LjUlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMyxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0zLXRhYmxldCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDM7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNCxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTQtdGFibGV0IHtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNCxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi00LXRhYmxldCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTUtdGFibGV0IHtcbiAgICAgIHdpZHRoOiBjYWxjKDYyLjUlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYyg2Mi41JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTUsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNS10YWJsZXQge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA1OyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTYsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi02LXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYyg3NSUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDc1JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTYsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNi10YWJsZXQge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA2OyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTcsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi03LXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYyg4Ny41JSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoODcuNSUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXRhYmxldCwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi03LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTctdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNzsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi04LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOC10YWJsZXQge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTgsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOC10YWJsZXQge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA4OyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTksXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi05LXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOSxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi05LXRhYmxldCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDg7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTAsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMC10YWJsZXQge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEwLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEwLXRhYmxldCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDg7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTEsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMS10YWJsZXQge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTExLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTExLXRhYmxldCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDg7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTIsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMi10YWJsZXQge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEyLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEyLXRhYmxldCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDg7IH0gfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0NzlweCkge1xuICAubWRjLWxheW91dC1ncmlkX19jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbjogOHB4O1xuICAgIG1hcmdpbjogY2FsYyh2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSAvIDIpOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0OyB9IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwge1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEtcGhvbmUge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMS1waG9uZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDE7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMixcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTItcGhvbmUge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTIsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMi1waG9uZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMyxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTMtcGhvbmUge1xuICAgICAgd2lkdGg6IGNhbGMoNzUlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYyg3NSUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTMsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMy1waG9uZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDM7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNCxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTQtcGhvbmUge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNCxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi00LXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi01LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNS1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi01LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTUtcGhvbmUge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0OyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTYsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi02LXBob25lIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTYsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNi1waG9uZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNyxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTctcGhvbmUge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNyxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi03LXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi04LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOC1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi04LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTgtcGhvbmUge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0OyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTksXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi05LXBob25lIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTksXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOS1waG9uZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTAsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMC1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMCxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMC1waG9uZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTEsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMS1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMSxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMS1waG9uZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTIsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMi1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMixcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMi1waG9uZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfSB9XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLW9yZGVyLTEge1xuICBvcmRlcjogMTsgfVxuXG4ubWRjLWxheW91dC1ncmlkX19jZWxsLS1vcmRlci0yIHtcbiAgb3JkZXI6IDI7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItMyB7XG4gIG9yZGVyOiAzOyB9XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLW9yZGVyLTQge1xuICBvcmRlcjogNDsgfVxuXG4ubWRjLWxheW91dC1ncmlkX19jZWxsLS1vcmRlci01IHtcbiAgb3JkZXI6IDU7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItNiB7XG4gIG9yZGVyOiA2OyB9XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLW9yZGVyLTcge1xuICBvcmRlcjogNzsgfVxuXG4ubWRjLWxheW91dC1ncmlkX19jZWxsLS1vcmRlci04IHtcbiAgb3JkZXI6IDg7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItOSB7XG4gIG9yZGVyOiA5OyB9XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLW9yZGVyLTEwIHtcbiAgb3JkZXI6IDEwOyB9XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLW9yZGVyLTExIHtcbiAgb3JkZXI6IDExOyB9XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLW9yZGVyLTEyIHtcbiAgb3JkZXI6IDEyOyB9XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLWFsaWduLXRvcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tYWxpZ24tdG9wIHtcbiAgICAgIGFsaWduLXNlbGY6IHN0YXJ0OyB9IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tYWxpZ24tbWlkZGxlIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyOyB9XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLWFsaWduLWJvdHRvbSB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLWFsaWduLWJvdHRvbSB7XG4gICAgICBhbGlnbi1zZWxmOiBlbmQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODQwcHgpIHtcbiAgLm1kYy1sYXlvdXQtZ3JpZC0tZml4ZWQtY29sdW1uLXdpZHRoIHtcbiAgICB3aWR0aDogMTE3NnB4O1xuICAgIHdpZHRoOiBjYWxjKCB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoLWRlc2t0b3AsIDcycHgpICogMTIgKyB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLWRlc2t0b3AsIDI0cHgpICogMTEgKyB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLWRlc2t0b3AsIDI0cHgpICogMik7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA4MzlweCkge1xuICAubWRjLWxheW91dC1ncmlkLS1maXhlZC1jb2x1bW4td2lkdGgge1xuICAgIHdpZHRoOiA3MjBweDtcbiAgICB3aWR0aDogY2FsYyggdmFyKC0tbWRjLWxheW91dC1ncmlkLWNvbHVtbi13aWR0aC10YWJsZXQsIDcycHgpICogOCArIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSAqIDcgKyB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLXRhYmxldCwgMTZweCkgKiAyKTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0NzlweCkge1xuICAubWRjLWxheW91dC1ncmlkLS1maXhlZC1jb2x1bW4td2lkdGgge1xuICAgIHdpZHRoOiAzNjhweDtcbiAgICB3aWR0aDogY2FsYyggdmFyKC0tbWRjLWxheW91dC1ncmlkLWNvbHVtbi13aWR0aC1waG9uZSwgNzJweCkgKiA0ICsgdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCkgKiAzICsgdmFyKC0tbWRjLWxheW91dC1ncmlkLW1hcmdpbi1waG9uZSwgMTZweCkgKiAyKTsgfSB9XG5cbi5tZGMtbGF5b3V0LWdyaWQtLWFsaWduLWxlZnQge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5tZGMtbGF5b3V0LWdyaWQtLWFsaWduLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuXG4ubWRjLWxpbmUtcmlwcGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDJweDtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBvcGFjaXR5IDE4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDI7IH1cblxuLm1kYy1saW5lLXJpcHBsZS0tYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLm1kYy1saW5lLXJpcHBsZS0tZGVhY3RpdmF0aW5nIHtcbiAgb3BhY2l0eTogMDsgfVxuXG5Aa2V5ZnJhbWVzIHByaW1hcnktaW5kZXRlcm1pbmF0ZS10cmFuc2xhdGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDIwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MzIsIDAuNDk1ODE5KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgNTkuMTUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0MzUsIDAuMzgxMzUyLCAwLjU1LCAwLjk1NjM1Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDgzLjY3MTQyJSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMC42MTEwNTclKTsgfSB9XG5cbkBrZXlmcmFtZXMgcHJpbWFyeS1pbmRldGVybWluYXRlLXNjYWxlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMDgpOyB9XG4gIDM2LjY1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzM0NzMxLCAwLjEyNDgyLCAwLjc4NTg0NCwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wOCk7IH1cbiAgNjkuMTUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4wNiwgMC4xMSwgMC42LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjY2MTQ3OSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wOCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHNlY29uZGFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZSB7XG4gIDAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNSwgMCwgMC41MTUwNTgsIDAuNDA5Njg1KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMjUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMTAzMywgMC4yODQwNTgsIDAuOCwgMC43MzM3MTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzNy42NTE5MTMlKTsgfVxuICA0OC4zNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAuNjI3MDM1LCAwLjYsIDAuOTAyMDI2KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoODQuMzg2MTY1JSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2MC4yNzc3ODIlKTsgfSB9XG5cbkBrZXlmcmFtZXMgc2Vjb25kYXJ5LWluZGV0ZXJtaW5hdGUtc2NhbGUge1xuICAwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjA1MDI4LCAwLjA1NzA1MSwgMC41NzY2MSwgMC40NTM5NzEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMDgpOyB9XG4gIDE5LjE1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTUyMzEzLCAwLjE5NjQzMiwgMC42NDgzNzQsIDEuMDA0MzE1KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjQ1NzEwNCk7IH1cbiAgNDQuMTUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNTc3NTksIC0wLjAwMzE2MywgMC4yMTE3NjIsIDEuMzgxNzkpO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNzI3OTYpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMDgpOyB9IH1cblxuQGtleWZyYW1lcyBidWZmZXJpbmcge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTsgfSB9XG5cbkBrZXlmcmFtZXMgcHJpbWFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZS1yZXZlcnNlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAyMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMyLCAwLjQ5NTgxOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDU5LjE1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzAyNDM1LCAwLjM4MTM1MiwgMC41NSwgMC45NTYzNTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtODMuNjcxNDIlKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMC42MTEwNTclKTsgfSB9XG5cbkBrZXlmcmFtZXMgc2Vjb25kYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlLXJldmVyc2Uge1xuICAwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTUsIDAsIDAuNTE1MDU4LCAwLjQwOTY4NSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDI1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzEwMzMsIDAuMjg0MDU4LCAwLjgsIDAuNzMzNzEyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTM3LjY1MTkxMyUpOyB9XG4gIDQ4LjM1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC42MjcwMzUsIDAuNiwgMC45MDIwMjYpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtODQuMzg2MTY1JSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNjAuMjc3NzgyJSk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGJ1ZmZlcmluZy1yZXZlcnNlIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTsgfSB9XG5cbi5tZGMtbGluZWFyLXByb2dyZXNzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAyNTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAubWRjLWxpbmVhci1wcm9ncmVzc19fYmFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSk7IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2Jhci1pbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYW5pbWF0aW9uOiBub25lOyB9XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXJpbmctZG90cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBhbmltYXRpb246IGJ1ZmZlcmluZyAyNTBtcyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTBweCA0cHg7IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2J1ZmZlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSk7IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3ByaW1hcnktYmFyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTsgfVxuICAubWRjLWxpbmVhci1wcm9ncmVzc19fc2Vjb25kYXJ5LWJhciB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzLS1pbmRldGVybWluYXRlIC5tZGMtbGluZWFyLXByb2dyZXNzX19iYXIge1xuICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3ByaW1hcnktYmFyIHtcbiAgICBsZWZ0OiAtMTQ1LjE2NjYxMSU7XG4gICAgYW5pbWF0aW9uOiBwcmltYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlIDJzIGluZmluaXRlIGxpbmVhcjsgfVxuICAgIC5tZGMtbGluZWFyLXByb2dyZXNzLS1pbmRldGVybWluYXRlIC5tZGMtbGluZWFyLXByb2dyZXNzX19wcmltYXJ5LWJhciA+IC5tZGMtbGluZWFyLXByb2dyZXNzX19iYXItaW5uZXIge1xuICAgICAgYW5pbWF0aW9uOiBwcmltYXJ5LWluZGV0ZXJtaW5hdGUtc2NhbGUgMnMgaW5maW5pdGUgbGluZWFyOyB9XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzLS1pbmRldGVybWluYXRlIC5tZGMtbGluZWFyLXByb2dyZXNzX19zZWNvbmRhcnktYmFyIHtcbiAgICBsZWZ0OiAtNTQuODg4ODkxJTtcbiAgICBhbmltYXRpb246IHNlY29uZGFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZSAycyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5tZGMtbGluZWFyLXByb2dyZXNzLS1pbmRldGVybWluYXRlIC5tZGMtbGluZWFyLXByb2dyZXNzX19zZWNvbmRhcnktYmFyID4gLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2Jhci1pbm5lciB7XG4gICAgICBhbmltYXRpb246IHNlY29uZGFyeS1pbmRldGVybWluYXRlLXNjYWxlIDJzIGluZmluaXRlIGxpbmVhcjsgfVxuICAubWRjLWxpbmVhci1wcm9ncmVzcy0tcmV2ZXJzZWQgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2JhcixcbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLXJldmVyc2VkIC5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXIge1xuICAgIHJpZ2h0OiAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDsgfVxuICAubWRjLWxpbmVhci1wcm9ncmVzcy0tcmV2ZXJzZWQgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3ByaW1hcnktYmFyIHtcbiAgICBhbmltYXRpb24tbmFtZTogcHJpbWFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZS1yZXZlcnNlOyB9XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzLS1yZXZlcnNlZCAubWRjLWxpbmVhci1wcm9ncmVzc19fc2Vjb25kYXJ5LWJhciB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHNlY29uZGFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZS1yZXZlcnNlOyB9XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzLS1yZXZlcnNlZCAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyaW5nLWRvdHMge1xuICAgIGFuaW1hdGlvbjogYnVmZmVyaW5nLXJldmVyc2UgMjUwbXMgaW5maW5pdGUgbGluZWFyOyB9XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzLS1jbG9zZWQge1xuICAgIG9wYWNpdHk6IDA7IH1cblxuLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2Jhci1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MjAwZWU7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9XG5cbi5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXJpbmctZG90cyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgZW5hYmxlLWJhY2tncm91bmQ9J25ldyAwIDAgNSAyJyB4bWw6c3BhY2U9J3ByZXNlcnZlJyB2aWV3Qm94PScwIDAgNSAyJyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSdub25lIHNsaWNlJyUzRSUzQ2NpcmNsZSBjeD0nMScgY3k9JzEnIHI9JzEnIGZpbGw9JyUyM2U2ZTZlNicvJTNFJTNDL3N2ZyUzRVwiKTsgfVxuXG4ubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsgfVxuXG4ubWRjLWxpbmVhci1wcm9ncmVzcy0taW5kZXRlcm1pbmF0ZS5tZGMtbGluZWFyLXByb2dyZXNzLS1yZXZlcnNlZCAubWRjLWxpbmVhci1wcm9ncmVzc19fcHJpbWFyeS1iYXIge1xuICByaWdodDogLTE0NS4xNjY2MTElO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5tZGMtbGluZWFyLXByb2dyZXNzLS1pbmRldGVybWluYXRlLm1kYy1saW5lYXItcHJvZ3Jlc3MtLXJldmVyc2VkIC5tZGMtbGluZWFyLXByb2dyZXNzX19zZWNvbmRhcnktYmFyIHtcbiAgcmlnaHQ6IC01NC44ODg4OTElO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5tZGMtbGlzdCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMDkzNzVlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpOyB9XG5cbi5tZGMtbGlzdC1pdGVtX19zZWNvbmRhcnktdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1zZWNvbmRhcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjU0KSk7IH1cblxuLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4ubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1pY29uLW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpOyB9XG5cbi5tZGMtbGlzdC1pdGVtX19tZXRhIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjM4KSk7IH1cblxuLm1kYy1saXN0LWdyb3VwX19zdWJoZWFkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKTsgfVxuXG4ubWRjLWxpc3QtLWRlbnNlIHtcbiAgcGFkZGluZy10b3A6IDRweDtcbiAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgZm9udC1zaXplOiAuODEycmVtOyB9XG5cbi5tZGMtbGlzdC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGMtbGlzdC1pdGVtOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG5cbi5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCxcbi5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQge1xuICBjb2xvcjogIzYyMDBlZTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9XG4gIC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyxcbiAgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgY29sb3I6ICM2MjAwZWU7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH1cblxuLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LWRpc2FibGVkLW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpOyB9XG5cbi5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDMycHg7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmlsbDogY3VycmVudENvbG9yOyB9XG4gIC5tZGMtbGlzdC1pdGVtW2Rpcj1cInJ0bFwiXSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyxcbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWxpc3QtaXRlbSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAzMnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cblxuLm1kYy1saXN0LWl0ZW1fX21ldGEge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDsgfVxuICAubWRjLWxpc3QtaXRlbVtkaXI9XCJydGxcIl0gLm1kYy1saXN0LWl0ZW1fX21ldGEsXG4gIFtkaXI9XCJydGxcIl0gLm1kYy1saXN0LWl0ZW0gLm1kYy1saXN0LWl0ZW1fX21ldGEge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG5cbi5tZGMtbGlzdC1pdGVtX190ZXh0IHtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm1kYy1saXN0LWl0ZW1fX3RleHRbZm9yXSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQge1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQ6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMzJweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHZlcnRpY2FsLWFsaWduOiAwOyB9XG4gIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQ6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgdmVydGljYWwtYWxpZ246IC0yMHB4OyB9XG4gIC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMjBweDsgfVxuICAgIC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dDo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiAwOyB9XG4gICAgLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0OjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogLTIwcHg7IH1cblxuLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMTc4NTcxNGVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0OjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogMDsgfVxuICAubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19zZWNvbmRhcnktdGV4dCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7IH1cbiAgICAubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19zZWNvbmRhcnktdGV4dDo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiAwOyB9XG5cbi5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW0ge1xuICBoZWlnaHQ6IDQwcHg7IH1cblxuLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAzNnB4O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4OyB9XG4gIC5tZGMtbGlzdC1pdGVtW2Rpcj1cInJ0bFwiXSAubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljLFxuICBbZGlyPVwicnRsXCJdIC5tZGMtbGlzdC1pdGVtIC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogMzZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5tZGMtbGlzdC0tYXZhdGFyLWxpc3QgLm1kYy1saXN0LWl0ZW0ge1xuICBoZWlnaHQ6IDU2cHg7IH1cblxuLm1kYy1saXN0LS1hdmF0YXItbGlzdCAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgLm1kYy1saXN0LWl0ZW1bZGlyPVwicnRsXCJdIC5tZGMtbGlzdC0tYXZhdGFyLWxpc3QgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMsXG4gIFtkaXI9XCJydGxcIl0gLm1kYy1saXN0LWl0ZW0gLm1kYy1saXN0LS1hdmF0YXItbGlzdCAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLm1kYy1saXN0LS10d28tbGluZSAubWRjLWxpc3QtaXRlbV9fdGV4dCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLm1kYy1saXN0LS10d28tbGluZSAubWRjLWxpc3QtaXRlbSB7XG4gIGhlaWdodDogNzJweDsgfVxuXG4ubWRjLWxpc3QtLXR3by1saW5lLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbSxcbi5tZGMtbGlzdC0tYXZhdGFyLWxpc3QubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtIHtcbiAgaGVpZ2h0OiA2MHB4OyB9XG5cbi5tZGMtbGlzdC0tYXZhdGFyLWxpc3QubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7IH1cbiAgLm1kYy1saXN0LWl0ZW1bZGlyPVwicnRsXCJdIC5tZGMtbGlzdC0tYXZhdGFyLWxpc3QubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljLFxuICBbZGlyPVwicnRsXCJdIC5tZGMtbGlzdC1pdGVtIC5tZGMtbGlzdC0tYXZhdGFyLWxpc3QubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuXG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbmEubWRjLWxpc3QtaXRlbSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLm1kYy1saXN0LWRpdmlkZXIge1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyB9XG5cbi5tZGMtbGlzdC1kaXZpZGVyIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWxpc3QtZGl2aWRlci0tcGFkZGVkIHtcbiAgbWFyZ2luOiAwIDE2cHg7IH1cblxuLm1kYy1saXN0LWRpdmlkZXItLWluc2V0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogNzJweDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA3MnB4KTsgfVxuICAubWRjLWxpc3QtZ3JvdXBbZGlyPVwicnRsXCJdIC5tZGMtbGlzdC1kaXZpZGVyLS1pbnNldCxcbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWxpc3QtZ3JvdXAgLm1kYy1saXN0LWRpdmlkZXItLWluc2V0IHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogNzJweDsgfVxuXG4ubWRjLWxpc3QtZGl2aWRlci0taW5zZXQubWRjLWxpc3QtZGl2aWRlci0tcGFkZGVkIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDcycHggLSAxNnB4KTsgfVxuXG4ubWRjLWxpc3QtZ3JvdXAgLm1kYy1saXN0IHtcbiAgcGFkZGluZzogMDsgfVxuXG4ubWRjLWxpc3QtZ3JvdXBfX3N1YmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMDkzNzVlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgbWFyZ2luOiAwLjc1cmVtIDE2cHg7IH1cblxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbSB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgd2lkdGg6IDIwMCU7XG4gICAgaGVpZ2h0OiAyMDAlOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBlZTsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZDo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6OmFmdGVyIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH0gfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4xNjsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4yNDsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4yNDsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjQ7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wODsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2MjAwZWU7IH1cbiAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YWZ0ZXIge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfSB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjsgfVxuXG4ubWRjLW1lbnUge1xuICBtaW4td2lkdGg6IDExMnB4OyB9XG4gIC5tZGMtbWVudSAubWRjLWxpc3QtaXRlbV9fbWV0YSB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7IH1cbiAgLm1kYy1tZW51IC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxuICAubWRjLW1lbnUgLm1kYy1saXN0IHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxuICAubWRjLW1lbnUgLm1kYy1saXN0LWRpdmlkZXIge1xuICAgIG1hcmdpbjogOHB4IDA7IH1cbiAgLm1kYy1tZW51IC5tZGMtbGlzdC1pdGVtIHtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAubWRjLW1lbnUgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIHtcbiAgICBjdXJzb3I6IGF1dG87IH1cbiAgLm1kYy1tZW51IGEubWRjLWxpc3QtaXRlbSAubWRjLWxpc3QtaXRlbV9fdGV4dCxcbiAgLm1kYy1tZW51IGEubWRjLWxpc3QtaXRlbSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLm1kYy1tZW51X19zZWxlY3Rpb24tZ3JvdXAge1xuICBwYWRkaW5nOiAwO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cbiAgLm1kYy1tZW51X19zZWxlY3Rpb24tZ3JvdXAgLm1kYy1saXN0LWl0ZW0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDU2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtbWVudV9fc2VsZWN0aW9uLWdyb3VwIC5tZGMtbGlzdC1pdGVtLCAubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cCAubWRjLWxpc3QtaXRlbVtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcGFkZGluZy1yaWdodDogNTZweDsgfVxuICAubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cCAubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cC1pY29uIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMTZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtbWVudV9fc2VsZWN0aW9uLWdyb3VwIC5tZGMtbWVudV9fc2VsZWN0aW9uLWdyb3VwLWljb24sIC5tZGMtbWVudV9fc2VsZWN0aW9uLWdyb3VwIC5tZGMtbWVudV9fc2VsZWN0aW9uLWdyb3VwLWljb25bZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogMTZweDsgfVxuXG4ubWRjLW1lbnUtaXRlbS0tc2VsZWN0ZWQgLm1kYy1tZW51X19zZWxlY3Rpb24tZ3JvdXAtaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZTsgfVxuXG4ubWRjLW1lbnUtc3VyZmFjZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzMnB4KTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgb3BhY2l0eTogMDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHotaW5kZXg6IDg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4wM3MgbGluZWFyLCB0cmFuc2Zvcm0gMC4xMnMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgI2ZmZik7XG4gIGNvbG9yOiAjMDAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLyogQG5vZmxpcCAqL1xuICB0cmFuc2Zvcm0tb3JpZ2luLWxlZnQ6IHRvcCBsZWZ0O1xuICAvKiBAbm9mbGlwICovXG4gIHRyYW5zZm9ybS1vcmlnaW4tcmlnaHQ6IHRvcCByaWdodDsgfVxuICAubWRjLW1lbnUtc3VyZmFjZTpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICAubWRjLW1lbnUtc3VyZmFjZS0tb3BlbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAubWRjLW1lbnUtc3VyZmFjZS0tYW5pbWF0aW5nLW9wZW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gICAgb3BhY2l0eTogMDsgfVxuICAubWRjLW1lbnUtc3VyZmFjZS0tYW5pbWF0aW5nLWNsb3NlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjA3NXMgbGluZWFyOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1tZW51LXN1cmZhY2UsIC5tZGMtbWVudS1zdXJmYWNlW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHRyYW5zZm9ybS1vcmlnaW4tbGVmdDogdG9wIHJpZ2h0O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICB0cmFuc2Zvcm0tb3JpZ2luLXJpZ2h0OiB0b3AgbGVmdDsgfVxuXG4ubWRjLW1lbnUtc3VyZmFjZS0tYW5jaG9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4ubWRjLW1lbnUtc3VyZmFjZS0tZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7IH1cblxuLm1kYy1ub3RjaGVkLW91dGxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC8qIEBub2ZsaXAgKi9cbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLW5vdGNoZWQtb3V0bGluZSwgLm1kYy1ub3RjaGVkLW91dGxpbmVbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXIgMTUwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIHdpZHRoOiAxMnB4OyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmdbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQ7IH1cbiAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkO1xuICAgIGZsZXgtZ3JvdzogMTsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nLCAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmdbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQ7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7IH1cbiAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDEycHggKiAyKTsgfVxuICAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMTdweDtcbiAgICBib3R0b206IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICB0ZXh0LW92ZXJmbG93OiBjbGlwOyB9XG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLyAuNzUpOyB9XG5cbi5tZGMtbm90Y2hlZC1vdXRsaW5lLS1ub3RjaGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgYm9yZGVyLXRvcDogbm9uZTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS1ub3RjaGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCwgLm1kYy1ub3RjaGVkLW91dGxpbmUtLW5vdGNoZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5tZGMtbm90Y2hlZC1vdXRsaW5lLS1uby1sYWJlbCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gge1xuICBwYWRkaW5nOiAwOyB9XG5cbi5tZGMtcmFkaW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMCAwIGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtLCBib3JkZXItY29sb3IsIGNvbG9yOyB9XG4gIC5tZGMtcmFkaW8gLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDpub3QoOmNoZWNrZWQpICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCAubWRjLXJhZGlvX19vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTsgfVxuICAubWRjLXJhZGlvIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6Y2hlY2tlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6ICMwMTg3ODY7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7IH1cbiAgLm1kYy1yYWRpbyAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDplbmFibGVkICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCAubWRjLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogIzAxODc4NjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfVxuICAubWRjLXJhZGlvIC5tZGMtcmFkaW9fX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxODc4NjsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIC5tZGMtcmFkaW8gLm1kYy1yYWRpb19fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfSB9XG4gIC5tZGMtcmFkaW9fX2JhY2tncm91bmQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiA1MCU7XG4gICAgaGVpZ2h0OiA1MCU7IH1cbiAgICAubWRjLXJhZGlvX19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpLCB0cmFuc2Zvcm0gMTIwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSk7IH1cbiAgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXdpZHRoOiAycHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDEyMG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpOyB9XG4gIC5tZGMtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XG4gICAgYm9yZGVyLXdpZHRoOiAxMHB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMjBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSwgYm9yZGVyLWNvbG9yIDEyMG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpOyB9XG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgY3Vyc29yOiBpbmhlcml0O1xuICAgIHotaW5kZXg6IDE7IH1cblxuLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQsXG4ubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpkaXNhYmxlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgdHJhbnNmb3JtIDEyMG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpjaGVja2VkICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCAubWRjLXJhZGlvX19vdXRlci1jaXJjbGUsXG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmRpc2FibGVkICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCAubWRjLXJhZGlvX19vdXRlci1jaXJjbGUge1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMjBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7IH1cbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlLFxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpkaXNhYmxlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTIwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCBib3JkZXItY29sb3IgMTIwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpOyB9XG5cbi5tZGMtcmFkaW8tLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpjaGVja2VkICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCAubWRjLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMjBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIGJvcmRlci1jb2xvciAxMjBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7IH1cblxuLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWQgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kLFxuW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCB7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpkaXNhYmxlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlLFxuICBbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0gLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2wgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX291dGVyLWNpcmNsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpOyB9XG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmRpc2FibGVkICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCAubWRjLXJhZGlvX19pbm5lci1jaXJjbGUsXG4gIFthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7IH1cblxuLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6Zm9jdXMgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDIsIDIpO1xuICBvcGFjaXR5OiAwLjEyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgdHJhbnNmb3JtIDEyMG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRjLXJhZGlvIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7IH1cbiAgLm1kYy1yYWRpbzo6YmVmb3JlLCAubWRjLXJhZGlvOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLm1kYy1yYWRpbzo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy1yYWRpby5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtcmFkaW8ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgLm1kYy1yYWRpby5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLXJhZGlvLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzOyB9XG4gIC5tZGMtcmFkaW8ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtcmFkaW86OmJlZm9yZSwgLm1kYy1yYWRpbzo6YWZ0ZXIge1xuICAgIHRvcDogY2FsYyg1MCUgLSA1MCUpO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDUwJSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5tZGMtcmFkaW8ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlLCAubWRjLXJhZGlvLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCBjYWxjKDUwJSAtIDUwJSkpO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIGNhbGMoNTAlIC0gNTAlKSk7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtcmFkaW8ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLXJhZGlvOjpiZWZvcmUsIC5tZGMtcmFkaW86OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2OyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy1yYWRpbzo6YmVmb3JlLCAubWRjLXJhZGlvOjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7IH0gfVxuICAubWRjLXJhZGlvOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy1yYWRpbzpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtcmFkaW8ubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXJhZGlvOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubWRjLXJhZGlvOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtcmFkaW8ubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1yYWRpby5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQgLm1kYy1yYWRpb19fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lOyB9XG5cbi5tZGMtcmlwcGxlLXN1cmZhY2Uge1xuICAtLW1kYy1yaXBwbGUtZmctc2l6ZTogMDtcbiAgLS1tZGMtcmlwcGxlLWxlZnQ6IDA7XG4gIC0tbWRjLXJpcHBsZS10b3A6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy1zY2FsZTogMTtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQ6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQ6IDA7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdXRsaW5lOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2U6OmJlZm9yZSwgLm1kYy1yaXBwbGUtc3VyZmFjZTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2U6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlOjpiZWZvcmUsIC5tZGMtcmlwcGxlLXN1cmZhY2U6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2U6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1yaXBwbGUtc3VyZmFjZS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2U6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2U6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlOjpiZWZvcmUsIC5tZGMtcmlwcGxlLXN1cmZhY2U6OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgd2lkdGg6IDIwMCU7XG4gICAgaGVpZ2h0OiAyMDAlOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlW2RhdGEtbWRjLXJpcHBsZS1pcy11bmJvdW5kZWRdIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuICAgIC5tZGMtcmlwcGxlLXN1cmZhY2VbZGF0YS1tZGMtcmlwcGxlLWlzLXVuYm91bmRlZF06OmJlZm9yZSwgLm1kYy1yaXBwbGUtc3VyZmFjZVtkYXRhLW1kYy1yaXBwbGUtaXMtdW5ib3VuZGVkXTo6YWZ0ZXIge1xuICAgICAgdG9wOiBjYWxjKDUwJSAtIDUwJSk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtIDUwJSk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgIC5tZGMtcmlwcGxlLXN1cmZhY2VbZGF0YS1tZGMtcmlwcGxlLWlzLXVuYm91bmRlZF0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlLCAubWRjLXJpcHBsZS1zdXJmYWNlW2RhdGEtbWRjLXJpcHBsZS1pcy11bmJvdW5kZWRdLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIGNhbGMoNTAlIC0gNTAlKSk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIGNhbGMoNTAlIC0gNTAlKSk7XG4gICAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAgIC5tZGMtcmlwcGxlLXN1cmZhY2VbZGF0YS1tZGMtcmlwcGxlLWlzLXVuYm91bmRlZF0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tcHJpbWFyeTo6YmVmb3JlLCAubWRjLXJpcHBsZS1zdXJmYWNlLS1wcmltYXJ5OjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBlZTsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIC5tZGMtcmlwcGxlLXN1cmZhY2UtLXByaW1hcnk6OmJlZm9yZSwgLm1kYy1yaXBwbGUtc3VyZmFjZS0tcHJpbWFyeTo6YWZ0ZXIge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfSB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UtLXByaW1hcnk6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS1wcmltYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1yaXBwbGUtc3VyZmFjZS0tcHJpbWFyeS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UtLXByaW1hcnk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UtLXByaW1hcnk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tcHJpbWFyeS5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS1hY2NlbnQ6OmJlZm9yZSwgLm1kYy1yaXBwbGUtc3VyZmFjZS0tYWNjZW50OjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxODc4NjsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIC5tZGMtcmlwcGxlLXN1cmZhY2UtLWFjY2VudDo6YmVmb3JlLCAubWRjLXJpcHBsZS1zdXJmYWNlLS1hY2NlbnQ6OmFmdGVyIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfSB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UtLWFjY2VudDpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UtLWFjY2VudDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtcmlwcGxlLXN1cmZhY2UtLWFjY2VudC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UtLWFjY2VudDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tYWNjZW50Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UtLWFjY2VudC5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjsgfVxuXG5Aa2V5ZnJhbWVzIG1kYy1zZWxlY3QtZmxvYXQtbmF0aXZlLWNvbnRyb2wge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLXNlbGVjdF9faWNvbiB7XG4gIGNvbG9yOiAjMDAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCk7IH1cblxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtc2VsZWN0X19pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTZweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICBvcGFjaXR5OiAwLjU0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuLm1kYy1zZWxlY3RfX2ljb246bm90KFt0YWJpbmRleF0pLFxuLm1kYy1zZWxlY3RfX2ljb25bdGFiaW5kZXg9XCItMVwiXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLm1kYy1zZWxlY3QtaGVscGVyLXRleHQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDMzMzMzMzNlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luOiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIG9wYWNpdHk6IDA7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5OyB9XG4gIC5tZGMtc2VsZWN0LWhlbHBlci10ZXh0OjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogMDsgfVxuXG4ubWRjLXNlbGVjdC1oZWxwZXItdGV4dC0tcGVyc2lzdGVudCB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIG9wYWNpdHk6IDE7XG4gIHdpbGwtY2hhbmdlOiBpbml0aWFsOyB9XG5cbi5tZGMtc2VsZWN0IHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogNTZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtLCBjb2xvcjsgfVxuICAubWRjLXNlbGVjdDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGVzbW9rZTsgfVxuICAubWRjLXNlbGVjdDo6YmVmb3JlLCAubWRjLXNlbGVjdDo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtc2VsZWN0OjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTVtcyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMTVtcyBsaW5lYXI7XG4gICAgei1pbmRleDogMTsgfVxuICAubWRjLXNlbGVjdC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtc2VsZWN0Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtc2VsZWN0Lm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZDo6YWZ0ZXIge1xuICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIDApO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIDApOyB9XG4gIC5tZGMtc2VsZWN0Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzOyB9XG4gIC5tZGMtc2VsZWN0Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXNlbGVjdDo6YmVmb3JlLCAubWRjLXNlbGVjdDo6YWZ0ZXIge1xuICAgIHRvcDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICB3aWR0aDogMjAwJTtcbiAgICBoZWlnaHQ6IDIwMCU7IH1cbiAgLm1kYy1zZWxlY3QubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLXNlbGVjdDo6YmVmb3JlLCAubWRjLXNlbGVjdDo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7IH1cbiAgLm1kYy1zZWxlY3Q6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICAubWRjLXNlbGVjdDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtc2VsZWN0Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1zZWxlY3Q6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxuICAubWRjLXNlbGVjdDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7IH1cbiAgLm1kYy1zZWxlY3Q6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuICAubWRjLXNlbGVjdDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4gIC5tZGMtc2VsZWN0Om5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpOyB9XG4gIC5tZGMtc2VsZWN0Om5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpICsgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7IH1cbiAgLm1kYy1zZWxlY3QsIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7IH1cbiAgLm1kYy1zZWxlY3Q6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLWxpbmUtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH1cbiAgLm1kYy1zZWxlY3Q6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBjb2xvcjogcmdiYSg5OCwgMCwgMjM4LCAwLjg3KTsgfVxuICAubWRjLXNlbGVjdDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2w6aG92ZXIge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7IH1cbiAgLm1kYy1zZWxlY3QgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNzAlKSBzY2FsZSgwLjc1KTsgfVxuICAubWRjLXNlbGVjdCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMTZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgdG9wOiAyMXB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdCAubWRjLWZsb2F0aW5nLWxhYmVsLCAubWRjLXNlbGVjdCAubWRjLWZsb2F0aW5nLWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IDE2cHg7IH1cbiAgLm1kYy1zZWxlY3QubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDQ4cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiBpbml0aWFsOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsLCAubWRjLXNlbGVjdC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IDQ4cHg7IH1cbiAgLm1kYy1zZWxlY3QubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDRweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgdG9wOiAxN3B4OyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLCAubWRjLXNlbGVjdC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IDRweDsgfVxuICAubWRjLXNlbGVjdC5tZGMtc2VsZWN0LS1vdXRsaW5lZC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMzZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtc2VsZWN0Lm1kYy1zZWxlY3QtLW91dGxpbmVkLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtc2VsZWN0Lm1kYy1zZWxlY3QtLW91dGxpbmVkLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogMzZweDsgfVxuICAgIC5tZGMtc2VsZWN0Lm1kYy1zZWxlY3QtLW91dGxpbmVkLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IDM2cHg7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogaW5pdGlhbDsgfVxuICAgICAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC5tZGMtc2VsZWN0LS1vdXRsaW5lZC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSwgLm1kYy1zZWxlY3QubWRjLXNlbGVjdC0tb3V0bGluZWQubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmVbZGlyPVwicnRsXCJdIHtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHJpZ2h0OiAzNnB4OyB9XG4gIC5tZGMtc2VsZWN0X19kcm9wZG93bi1pY29uIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIwd2lkdGglM0QlMjIxMHB4JTIyJTIwaGVpZ2h0JTNEJTIyNXB4JTIyJTIwdmlld0JveCUzRCUyMjclMjAxMCUyMDEwJTIwNSUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBpZCUzRCUyMlNoYXBlJTIyJTIwc3Ryb2tlJTNEJTIybm9uZSUyMiUyMGZpbGwlM0QlMjIlMjMwMDAlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTIwb3BhY2l0eSUzRCUyMjAuNTQlMjIlMjBwb2ludHMlM0QlMjI3JTIwMTAlMjAxMiUyMDE1JTIwMTclMjAxMCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEElM0MlMkZzdmclM0VcIikgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogYXV0bztcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDhweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAxNnB4O1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3RfX2Ryb3Bkb3duLWljb24sIC5tZGMtc2VsZWN0X19kcm9wZG93bi1pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiA4cHg7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogYXV0bzsgfVxuICAgIC5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtc2VsZWN0X19kcm9wZG93bi1pY29uIHtcbiAgICAgIGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB3aWR0aCUzRCUyMjEwcHglMjIlMjBoZWlnaHQlM0QlMjI1cHglMjIlMjB2aWV3Qm94JTNEJTIyNyUyMDEwJTIwMTAlMjA1JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGlkJTNEJTIyU2hhcGUlMjIlMjBzdHJva2UlM0QlMjJub25lJTIyJTIwZmlsbCUzRCUyMiUyMzYyMDBlZSUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlMjBvcGFjaXR5JTNEJTIyMSUyMiUyMHBvaW50cyUzRCUyMjclMjAxMCUyMDEyJTIwMTUlMjAxNyUyMDEwJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwQSUzQyUyRnN2ZyUzRVwiKSBuby1yZXBlYXQgY2VudGVyO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGVZKC01cHgpO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cbiAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sIHtcbiAgICBwYWRkaW5nLXRvcDogMjBweDsgfVxuICAubWRjLXNlbGVjdC5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbGluZS1yaXBwbGU6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDIpO1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLm1kYy1zZWxlY3QgKyAubWRjLXNlbGVjdC1oZWxwZXItdGV4dCB7XG4gIG1hcmdpbi1yaWdodDogMTJweDtcbiAgbWFyZ2luLWxlZnQ6IDEycHg7IH1cblxuLm1kYy1zZWxlY3QtLW91dGxpbmVkICsgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQge1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4OyB9XG5cbi5tZGMtc2VsZWN0LS1mb2N1c2VkICsgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQ6bm90KC5tZGMtc2VsZWN0LWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZykge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgcGFkZGluZy10b3A6IDIycHg7IH1cblxuLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxuLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiA1MnB4O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA5Mzc1ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDU2cHg7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGFwcGVhcmFuY2U6IG5vbmU7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbFtkaXI9XCJydGxcIl0sIFtkaXI9XCJydGxcIl1cbiAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQsXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0W2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogNTJweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuICAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2w6Oi1tcy1leHBhbmQsXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0OjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbDo6LW1zLXZhbHVlLFxuICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dDo6LW1zLXZhbHVlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuXG5ALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KFwiXCIpIHtcbiAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxuICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgdGV4dC1pbmRlbnQ6IC0ycHg7IH0gfVxuXG4ubWRjLXNlbGVjdC0tb3V0bGluZWQge1xuICBib3JkZXI6IG5vbmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNCk7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpOm5vdCgubWRjLXNlbGVjdC0tZm9jdXNlZCkgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKTpub3QoLm1kYy1zZWxlY3QtLWZvY3VzZWQpIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpOm5vdCgubWRjLXNlbGVjdC0tZm9jdXNlZCkgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpOm5vdCgubWRjLXNlbGVjdC0tZm9jdXNlZCkgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJvcmRlci13aWR0aDogMnB4OyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNjIwMGVlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2Uge1xuICAgIGFuaW1hdGlvbjogbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHQtZmllbGQtb3V0bGluZWQgMjUwbXMgMTsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLCAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmdbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZywgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ1tkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDo6YmVmb3JlLCAubWRjLXNlbGVjdC0tb3V0bGluZWQ6OmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0NCUpIHNjYWxlKDEpOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDUycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgei1pbmRleDogMTsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCwgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbFtkaXI9XCJydGxcIl0sIFtkaXI9XCJydGxcIl1cbiAgICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQsXG4gICAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0W2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IDUycHg7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgcGFkZGluZy10b3A6IDE0cHg7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtc2VsZWN0X19pY29uIHtcbiAgICB6LWluZGV4OiAyOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBsaW5lLWhlaWdodDogMS4xNXJlbTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuXG4ubWRjLXNlbGVjdC0taW52YWxpZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxuLm1kYy1zZWxlY3QtLWludmFsaWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLWxpbmUtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtc2VsZWN0LS1pbnZhbGlkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gIGNvbG9yOiAjYjAwMDIwOyB9XG5cbi5tZGMtc2VsZWN0LS1pbnZhbGlkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpLm1kYy1zZWxlY3QtLWludmFsaWQgKyAubWRjLXNlbGVjdC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2cge1xuICBjb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXNlbGVjdC0taW52YWxpZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2w6aG92ZXIge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXNlbGVjdC0taW52YWxpZC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4ubWRjLXNlbGVjdC0taW52YWxpZC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICBib3JkZXItY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtc2VsZWN0LS1pbnZhbGlkLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpOm5vdCgubWRjLXNlbGVjdC0tZm9jdXNlZCkgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXNlbGVjdC0taW52YWxpZC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKTpub3QoLm1kYy1zZWxlY3QtLWZvY3VzZWQpIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbi5tZGMtc2VsZWN0LS1pbnZhbGlkLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpOm5vdCgubWRjLXNlbGVjdC0tZm9jdXNlZCkgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nLFxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbi5tZGMtc2VsZWN0LS1pbnZhbGlkLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpOm5vdCgubWRjLXNlbGVjdC0tZm9jdXNlZCkgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICBib3JkZXItY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtc2VsZWN0LS1pbnZhbGlkLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXNlbGVjdC0taW52YWxpZC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbi5tZGMtc2VsZWN0LS1pbnZhbGlkLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgYm9yZGVyLXdpZHRoOiAycHg7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtc2VsZWN0LS1pbnZhbGlkLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICBib3JkZXItY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtc2VsZWN0LS1pbnZhbGlkIC5tZGMtc2VsZWN0X19kcm9wZG93bi1pY29uIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTBweCUyMiUyMGhlaWdodCUzRCUyMjVweCUyMiUyMHZpZXdCb3glM0QlMjI3JTIwMTAlMjAxMCUyMDUlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwaWQlM0QlMjJTaGFwZSUyMiUyMHN0cm9rZSUzRCUyMm5vbmUlMjIlMjBmaWxsJTNEJTIyJTIzYjAwMDIwJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUyMG9wYWNpdHklM0QlMjIxJTIyJTIwcG9pbnRzJTNEJTIyNyUyMDEwJTIwMTIlMjAxNSUyMDE3JTIwMTAlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBBJTNDJTJGc3ZnJTNFXCIpIG5vLXJlcGVhdCBjZW50ZXI7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQgKyAubWRjLXNlbGVjdC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2cge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtc2VsZWN0LS1yZXF1aXJlZCAubWRjLWZsb2F0aW5nLWxhYmVsOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiKlwiOyB9XG5cbi5tZGMtc2VsZWN0LS1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLm1kYy1zZWxlY3QtLWRpc2FibGVkIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzcpOyB9XG4gIC5tZGMtc2VsZWN0LS1kaXNhYmxlZCAubWRjLXNlbGVjdF9fZHJvcGRvd24taWNvbiB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTBweCUyMiUyMGhlaWdodCUzRCUyMjVweCUyMiUyMHZpZXdCb3glM0QlMjI3JTIwMTAlMjAxMCUyMDUlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwaWQlM0QlMjJTaGFwZSUyMiUyMHN0cm9rZSUzRCUyMm5vbmUlMjIlMjBmaWxsJTNEJTIyJTIzMDAwJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUyMG9wYWNpdHklM0QlMjIwLjM3JTIyJTIwcG9pbnRzJTNEJTIyNyUyMDEwJTIwMTIlMjAxNSUyMDE3JTIwMTAlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBBJTNDJTJGc3ZnJTNFXCIpIG5vLXJlcGVhdCBjZW50ZXI7IH1cbiAgLm1kYy1zZWxlY3QtLWRpc2FibGVkIC5tZGMtbGluZS1yaXBwbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1kYy1zZWxlY3QtLWRpc2FibGVkIC5tZGMtc2VsZWN0X19pY29uIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM3KTsgfVxuICAubWRjLXNlbGVjdC0tZGlzYWJsZWQgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxuICAubWRjLXNlbGVjdC0tZGlzYWJsZWQgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzcpO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDsgfVxuICAubWRjLXNlbGVjdC0tZGlzYWJsZWQgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5tZGMtc2VsZWN0LS1kaXNhYmxlZC5tZGMtc2VsZWN0LS1vdXRsaW5lZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAubWRjLXNlbGVjdC0tZGlzYWJsZWQubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxuICAgIC5tZGMtc2VsZWN0LS1kaXNhYmxlZC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBub25lOyB9XG4gICAgLm1kYy1zZWxlY3QtLWRpc2FibGVkLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAgIC5tZGMtc2VsZWN0LS1kaXNhYmxlZC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gICAgLm1kYy1zZWxlY3QtLWRpc2FibGVkLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNik7IH1cblxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtc2VsZWN0X19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAxNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtc2VsZWN0X19pY29uLCAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1zZWxlY3RfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDE2cHg7IH1cblxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCxcbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDMycHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLCAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQsXG4gIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7IH1cblxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNDQlKSB0cmFuc2xhdGVYKC0zMnB4KSBzY2FsZSgxKTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSwgLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlW2Rpcj1cInJ0bFwiXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNDQlKSB0cmFuc2xhdGVYKDMycHgpIHNjYWxlKDEpOyB9XG5cbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWQubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMzAlKSB0cmFuc2xhdGVYKC0zMnB4KSBzY2FsZSgwLjc1KTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSwgLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuICAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlW2Rpcj1cInJ0bFwiXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMzAlKSB0cmFuc2xhdGVYKDMycHgpIHNjYWxlKDAuNzUpOyB9XG5cbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICBmb250LXNpemU6IDFyZW07IH1cblxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlIHtcbiAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtc2VsZWN0LW91dGxpbmVkLWxlYWRpbmctaWNvbiAyNTBtcyAxOyB9XG5cbltkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlLCAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWRbZGlyPVwicnRsXCJdIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlIHtcbiAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtc2VsZWN0LW91dGxpbmVkLWxlYWRpbmctaWNvbi1ydGwgMjUwbXMgMTsgfVxuXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QtaXRlbV9fdGV4dCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDMycHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QtaXRlbV9fdGV4dCwgLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3RfX21lbnUgLm1kYy1saXN0LWl0ZW1fX3RleHRbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4OyB9XG5cbi5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQge1xuICBjb2xvcjogIzAwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApOyB9XG4gIC5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6OmJlZm9yZSwgLm1kYy1zZWxlY3RfX21lbnUgLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7IH1cbiAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOjpiZWZvcmUsIC5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6OmFmdGVyIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCk7IH0gfVxuICAubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy1zZWxlY3RfX21lbnUgLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cblxuQGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtc2VsZWN0LW91dGxpbmVkLWxlYWRpbmctaWNvbiB7XG4gIC8qIGNsZWFuLWNzcyBpZ25vcmU6c3RhcnQgKi9cbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAzMnB4KSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgMzMlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjcwMTczMiwgMC40OTU4MTkpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDQlIC0gMzJweCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDY2JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzAyNDM1LCAwLjM4MTM1MiwgMC41NSwgMC45NTYzNTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC00JSAtIDMycHgpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMzJweCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIC8qIGNsZWFuLWNzcyBpZ25vcmU6ZW5kICovIH1cblxuQGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtc2VsZWN0LW91dGxpbmVkLWxlYWRpbmctaWNvbi1ydGwge1xuICAvKiBjbGVhbi1jc3MgaWdub3JlOnN0YXJ0ICovXG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gLTMycHgpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAzMyUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMyLCAwLjQ5NTgxOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoNCUgLSAtMzJweCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDY2JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzAyNDM1LCAwLjM4MTM1MiwgMC41NSwgMC45NTYzNTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC00JSAtIC0zMnB4KSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIC0zMnB4KSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgLyogY2xlYW4tY3NzIGlnbm9yZTplbmQgKi8gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1zbGlkZXItZW1waGFzaXplIHtcbiAgMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0OyB9XG4gIDUwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuODUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC41NzEpOyB9IH1cblxuLm1kYy1zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyB9XG4gIC5tZGMtc2xpZGVyOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIC5tZGMtc2xpZGVyX190cmFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxODc4NjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7IH1cbiAgLm1kYy1zbGlkZXI6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkgLm1kYy1zbGlkZXJfX3RyYWNrLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxLCAxMzUsIDEzNCwgMC4yNik7IH1cbiAgLm1kYy1zbGlkZXI6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlcjo6YWZ0ZXIsXG4gIC5tZGMtc2xpZGVyOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIC5tZGMtc2xpZGVyX190cmFjay1tYXJrZXItY29udGFpbmVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxODc4NjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7IH1cbiAgLm1kYy1zbGlkZXI6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICBmaWxsOiAjMDE4Nzg2O1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBmaWxsOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTtcbiAgICBzdHJva2U6ICMwMTg3ODY7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIHN0cm9rZTogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7IH1cbiAgLm1kYy1zbGlkZXI6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkgLm1kYy1zbGlkZXJfX2ZvY3VzLXJpbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTg3ODY7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpOyB9XG4gIC5tZGMtc2xpZGVyOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIC5tZGMtc2xpZGVyX19waW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTg3ODY7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpOyB9XG4gIC5tZGMtc2xpZGVyOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIC5tZGMtc2xpZGVyX19waW4ge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9XG4gIC5tZGMtc2xpZGVyLS1kaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgLm1kYy1zbGlkZXItLWRpc2FibGVkIC5tZGMtc2xpZGVyX190cmFjayB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWE5YTlhOyB9XG4gICAgLm1kYy1zbGlkZXItLWRpc2FibGVkIC5tZGMtc2xpZGVyX190cmFjay1jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTQsIDE1NCwgMTU0LCAwLjI2KTsgfVxuICAgIC5tZGMtc2xpZGVyLS1kaXNhYmxlZCAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyOjphZnRlcixcbiAgICAubWRjLXNsaWRlci0tZGlzYWJsZWQgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlci1jb250YWluZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5YTlhOWE7IH1cbiAgICAubWRjLXNsaWRlci0tZGlzYWJsZWQgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICAgIGZpbGw6ICM5YTlhOWE7XG4gICAgICBzdHJva2U6ICM5YTlhOWE7IH1cbiAgICAubWRjLXNsaWRlci0tZGlzYWJsZWQgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgIHN0cm9rZTogd2hpdGU7XG4gICAgICBzdHJva2U6IHZhcigtLW1kYy1zbGlkZXItYmctY29sb3ItYmVoaW5kLWNvbXBvbmVudCwgd2hpdGUpOyB9XG4gIC5tZGMtc2xpZGVyOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5tZGMtc2xpZGVyX190cmFjay1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGMtc2xpZGVyX190cmFjayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyB9XG4gICAgLm1kYy1zbGlkZXJbZGlyPVwicnRsXCJdIC5tZGMtc2xpZGVyX190cmFjayxcbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190cmFjayB7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7IH1cbiAgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlci1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgIC5tZGMtc2xpZGVyW2Rpcj1cInJ0bFwiXSAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyLWNvbnRhaW5lcixcbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190cmFjay1tYXJrZXItY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTFweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlci1jb250YWluZXI6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDJweDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgY29udGVudDogXCJcIjsgfVxuICAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyIHtcbiAgICBmbGV4OiAxOyB9XG4gICAgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlcjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMnB4O1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICBjb250ZW50OiBcIlwiOyB9XG4gICAgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlcjpmaXJzdC1jaGlsZDo6YWZ0ZXIge1xuICAgICAgd2lkdGg6IDNweDsgfVxuICAubWRjLXNsaWRlcl9fdGh1bWItY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNXB4O1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDIxcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IH1cbiAgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjU3MSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEwMG1zIGVhc2Utb3V0LCBmaWxsIDEwMG1zIGVhc2Utb3V0LCBzdHJva2UgMTAwbXMgZWFzZS1vdXQ7XG4gICAgc3Ryb2tlLXdpZHRoOiAzLjU7IH1cbiAgLm1kYy1zbGlkZXJfX2ZvY3VzLXJpbmcge1xuICAgIHdpZHRoOiAyMXB4O1xuICAgIGhlaWdodDogMjFweDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjY2LjY3bXMgZWFzZS1vdXQsIG9wYWNpdHkgMjY2LjY3bXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMjY2LjY3bXMgZWFzZS1vdXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLm1kYy1zbGlkZXJfX3BpbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjZweDtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICBtYXJnaW4tbGVmdDogLTJweDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDApIHRyYW5zbGF0ZSgwLCAwKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZS1vdXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlIDUwJSA1MCUgMCU7XG4gICAgei1pbmRleDogMTsgfVxuICAubWRjLXNsaWRlcl9fcGluLXZhbHVlLW1hcmtlciB7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMTc4NTcxNGVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cblxuLm1kYy1zbGlkZXItLWFjdGl2ZSAubWRjLXNsaWRlcl9fdGh1bWIge1xuICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7IH1cblxuLm1kYy1zbGlkZXItLWZvY3VzIC5tZGMtc2xpZGVyX190aHVtYiB7XG4gIGFuaW1hdGlvbjogbWRjLXNsaWRlci1lbXBoYXNpemUgMjY2LjY3bXMgbGluZWFyOyB9XG5cbi5tZGMtc2xpZGVyLS1mb2N1cyAubWRjLXNsaWRlcl9fZm9jdXMtcmluZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUzZCgxLjU1LCAxLjU1LCAxLjU1KTtcbiAgb3BhY2l0eTogLjI1OyB9XG5cbi5tZGMtc2xpZGVyLS1pbi10cmFuc2l0IC5tZGMtc2xpZGVyX190aHVtYiB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDE0MG1zOyB9XG5cbi5tZGMtc2xpZGVyLS1pbi10cmFuc2l0IC5tZGMtc2xpZGVyX190aHVtYi1jb250YWluZXIsXG4ubWRjLXNsaWRlci0taW4tdHJhbnNpdCAubWRjLXNsaWRlcl9fdHJhY2ssXG4ubWRjLXNsaWRlcjpmb2N1czpub3QoLm1kYy1zbGlkZXItLWFjdGl2ZSkgLm1kYy1zbGlkZXJfX3RodW1iLWNvbnRhaW5lcixcbi5tZGMtc2xpZGVyOmZvY3VzOm5vdCgubWRjLXNsaWRlci0tYWN0aXZlKSAubWRjLXNsaWRlcl9fdHJhY2sge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gODBtcyBlYXNlOyB9XG5cbi5tZGMtc2xpZGVyLS1kaXNjcmV0ZS5tZGMtc2xpZGVyLS1hY3RpdmUgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgdHJhbnNmb3JtOiBzY2FsZShjYWxjKDEyIC8gMjEpKTsgfVxuXG4ubWRjLXNsaWRlci0tZGlzY3JldGUubWRjLXNsaWRlci0tYWN0aXZlIC5tZGMtc2xpZGVyX19waW4ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpIHRyYW5zbGF0ZSgxOXB4LCAtMjBweCk7IH1cblxuLm1kYy1zbGlkZXItLWRpc2NyZXRlLm1kYy1zbGlkZXItLWZvY3VzIC5tZGMtc2xpZGVyX190aHVtYiB7XG4gIGFuaW1hdGlvbjogbm9uZTsgfVxuXG4ubWRjLXNsaWRlci0tZGlzY3JldGUubWRjLXNsaWRlci0tZGlzcGxheS1tYXJrZXJzIC5tZGMtc2xpZGVyX190cmFjay1tYXJrZXItY29udGFpbmVyIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG4ubWRjLXNuYWNrYmFyIHtcbiAgei1pbmRleDogODtcbiAgbWFyZ2luOiA4cHg7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IH1cblxuLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7IH1cblxuLm1kYy1zbmFja2Jhcl9fbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTsgfVxuXG4ubWRjLXNuYWNrYmFyX19zdXJmYWNlIHtcbiAgbWluLXdpZHRoOiAzNDRweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDgwcHgpLCAobWF4LXdpZHRoOiAzNDRweCkge1xuICAgIC5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICAgICAgbWluLXdpZHRoOiAxMDAlOyB9IH1cblxuLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gIG1heC13aWR0aDogNjcycHg7IH1cblxuLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLXNuYWNrYmFyX19zdXJmYWNlIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG5cbi5tZGMtc25hY2tiYXItLW9wZW5pbmcsXG4ubWRjLXNuYWNrYmFyLS1vcGVuLFxuLm1kYy1zbmFja2Jhci0tY2xvc2luZyB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLm1kYy1zbmFja2Jhci0tbGVhZGluZyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4ubWRjLXNuYWNrYmFyLS1zdGFja2VkIC5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4ubWRjLXNuYWNrYmFyLS1zdGFja2VkIC5tZGMtc25hY2tiYXJfX2FjdGlvbnMge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG5cbi5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgb3BhY2l0eTogMDsgfVxuICAubWRjLXNuYWNrYmFyLS1vcGVuIC5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIHRyYW5zZm9ybSAxNTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuICAubWRjLXNuYWNrYmFyLS1jbG9zaW5nIC5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA3NW1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTsgfVxuXG4ubWRjLXNuYWNrYmFyX19sYWJlbCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDE3ODU3MTRlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgZmxleC1ncm93OiAxO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDE0cHggMTZweDsgfVxuXG4ubWRjLXNuYWNrYmFyX19sYWJlbDo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBjb250ZW50OiBhdHRyKGRhdGEtbWRjLXNuYWNrYmFyLWxhYmVsLXRleHQpOyB9XG5cbi5tZGMtc25hY2tiYXJfX2FjdGlvbnMge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXNocmluazogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtc25hY2tiYXJfX2FjdGlvbnMsIC5tZGMtc25hY2tiYXJfX2FjdGlvbnNbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5tZGMtc25hY2tiYXJfX2FjdGlvbjpub3QoOmRpc2FibGVkKSB7XG4gIGNvbG9yOiAjYmI4NmZjOyB9XG5cbi5tZGMtc25hY2tiYXJfX2FjdGlvbjo6YmVmb3JlLCAubWRjLXNuYWNrYmFyX19hY3Rpb246OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiODZmYzsgfVxuXG4ubWRjLXNuYWNrYmFyX19hY3Rpb246aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMDg7IH1cblxuLm1kYy1zbmFja2Jhcl9fYWN0aW9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1zbmFja2Jhcl9fYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLXNuYWNrYmFyX19hY3Rpb246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuXG4ubWRjLXNuYWNrYmFyX19hY3Rpb246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLXNuYWNrYmFyX19hY3Rpb24ubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjI0OyB9XG5cbi5tZGMtc25hY2tiYXJfX2Rpc21pc3Mge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTsgfVxuICAubWRjLXNuYWNrYmFyX19kaXNtaXNzOjpiZWZvcmUsIC5tZGMtc25hY2tiYXJfX2Rpc21pc3M6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpOyB9XG4gIC5tZGMtc25hY2tiYXJfX2Rpc21pc3M6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wODsgfVxuICAubWRjLXNuYWNrYmFyX19kaXNtaXNzOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1zbmFja2Jhcl9fZGlzbWlzcy5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjI0OyB9XG4gIC5tZGMtc25hY2tiYXJfX2Rpc21pc3M6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtc25hY2tiYXJfX2Rpc21pc3M6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMjQ7IH1cbiAgLm1kYy1zbmFja2Jhcl9fZGlzbWlzcy5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLXNuYWNrYmFyX19kaXNtaXNzLm1kYy1zbmFja2Jhcl9fZGlzbWlzcyB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIHBhZGRpbmc6IDlweDtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG4gIC5tZGMtc25hY2tiYXJfX2Rpc21pc3MubWRjLXNuYWNrYmFyX19kaXNtaXNzIHN2ZyxcbiAgLm1kYy1zbmFja2Jhcl9fZGlzbWlzcy5tZGMtc25hY2tiYXJfX2Rpc21pc3MgaW1nIHtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7IH1cblxuLm1kYy1zbmFja2Jhcl9fYWN0aW9uICsgLm1kYy1zbmFja2Jhcl9fZGlzbWlzcyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXNuYWNrYmFyX19hY3Rpb24gKyAubWRjLXNuYWNrYmFyX19kaXNtaXNzLCAubWRjLXNuYWNrYmFyX19hY3Rpb24gKyAubWRjLXNuYWNrYmFyX19kaXNtaXNzW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuXG4ubWRjLXN3aXRjaCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdXRsaW5lOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAubWRjLXN3aXRjaC5tZGMtc3dpdGNoLS1jaGVja2VkIC5tZGMtc3dpdGNoX190cmFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxODc4NjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDE4Nzg2O1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpOyB9XG4gIC5tZGMtc3dpdGNoLm1kYy1zd2l0Y2gtLWNoZWNrZWQgLm1kYy1zd2l0Y2hfX3RodW1iIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2O1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTtcbiAgICBib3JkZXItY29sb3I6ICMwMTg3ODY7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7IH1cbiAgLm1kYy1zd2l0Y2g6bm90KC5tZGMtc3dpdGNoLS1jaGVja2VkKSAubWRjLXN3aXRjaF9fdHJhY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDAwOyB9XG4gIC5tZGMtc3dpdGNoOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RodW1iIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1jb2xvcjogI2ZmZjsgfVxuXG4ubWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2wge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogNjhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBtYXJnaW46IDA7XG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2wsIC5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMDsgfVxuXG4ubWRjLXN3aXRjaF9fdHJhY2sge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xuICBvcGFjaXR5OiAuMzg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgOTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDkwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYm9yZGVyLWNvbG9yIDkwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IC0xOHB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTE3cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA5MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJhY2tncm91bmQtY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBib3JkZXItY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5LCAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXlbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IC0xOHB4OyB9XG5cbi5tZGMtc3dpdGNoX190aHVtYiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlcjogMTBweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTsgfVxuXG4ubWRjLXN3aXRjaC0tY2hlY2tlZCAubWRjLXN3aXRjaF9fdHJhY2sge1xuICBvcGFjaXR5OiAuNTQ7IH1cblxuLm1kYy1zd2l0Y2gtLWNoZWNrZWQgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1zd2l0Y2gtLWNoZWNrZWQgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5LCAubWRjLXN3aXRjaC0tY2hlY2tlZCAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXlbZGlyPVwicnRsXCJdIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpOyB9XG5cbi5tZGMtc3dpdGNoLS1jaGVja2VkIC5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXN3aXRjaC0tY2hlY2tlZCAubWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2wsIC5tZGMtc3dpdGNoLS1jaGVja2VkIC5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbFtkaXI9XCJydGxcIl0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsgfVxuXG4ubWRjLXN3aXRjaC0tZGlzYWJsZWQge1xuICBvcGFjaXR5OiAuMzg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5tZGMtc3dpdGNoLS1kaXNhYmxlZCAubWRjLXN3aXRjaF9fdGh1bWIge1xuICAgIGJvcmRlci13aWR0aDogMXB4OyB9XG4gIC5tZGMtc3dpdGNoLS1kaXNhYmxlZCAubWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2wge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWRjLXN3aXRjaDpub3QoLm1kYy1zd2l0Y2gtLWNoZWNrZWQpIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTo6YmVmb3JlLCAubWRjLXN3aXRjaDpub3QoLm1kYy1zd2l0Y2gtLWNoZWNrZWQpIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWU5ZTllOyB9XG5cbi5tZGMtc3dpdGNoOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwLjA4OyB9XG5cbi5tZGMtc3dpdGNoOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1zd2l0Y2g6bm90KC5tZGMtc3dpdGNoLS1jaGVja2VkKSAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI0OyB9XG5cbi5tZGMtc3dpdGNoOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cblxuLm1kYy1zd2l0Y2g6bm90KC5tZGMtc3dpdGNoLS1jaGVja2VkKSAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLXN3aXRjaDpub3QoLm1kYy1zd2l0Y2gtLWNoZWNrZWQpIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheS5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjQ7IH1cblxuLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5IHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OjpiZWZvcmUsIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6OmJlZm9yZSwgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OjphZnRlciB7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDUwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSwgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCBjYWxjKDUwJSAtIDUwJSkpO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIGNhbGMoNTAlIC0gNTAlKSk7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTo6YmVmb3JlLCAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2OyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OjpiZWZvcmUsIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTo6YWZ0ZXIge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpOyB9IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyOyB9XG5cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuLm1kYy10YWIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMi4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDg5Mjg1NzFlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxIDAgYXV0bztcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMCAyNHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHotaW5kZXg6IDE7IH1cbiAgLm1kYy10YWIgLm1kYy10YWJfX3RleHQtbGFiZWwge1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApOyB9XG4gIC5tZGMtdGFiIC5tZGMtdGFiX19pY29uIHtcbiAgICBjb2xvcjogIzAwMDtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKTtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cbiAgLm1kYy10YWI6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwOyB9XG5cbi5tZGMtdGFiLS1taW4td2lkdGgge1xuICBmbGV4OiAwIDEgYXV0bzsgfVxuXG4ubWRjLXRhYl9fcmlwcGxlIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSwgLm1kYy10YWJfX3JpcHBsZTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtdGFiX19yaXBwbGUubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXRhYl9fcmlwcGxlLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtdGFiX19yaXBwbGUubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy10YWJfX3JpcHBsZS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLXRhYl9fcmlwcGxlLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXRhYl9fcmlwcGxlOjpiZWZvcmUsIC5tZGMtdGFiX19yaXBwbGU6OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgd2lkdGg6IDIwMCU7XG4gICAgaGVpZ2h0OiAyMDAlOyB9XG4gIC5tZGMtdGFiX19yaXBwbGUubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLXRhYl9fcmlwcGxlOjpiZWZvcmUsIC5tZGMtdGFiX19yaXBwbGU6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy10YWJfX3JpcHBsZTo6YmVmb3JlLCAubWRjLXRhYl9fcmlwcGxlOjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9IH1cbiAgLm1kYy10YWJfX3JpcHBsZTpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIC5tZGMtdGFiX19yaXBwbGU6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLXRhYl9fcmlwcGxlLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy10YWJfX3JpcHBsZTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm1kYy10YWJfX3JpcHBsZTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXRhYl9fcmlwcGxlLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyOyB9XG5cbi5tZGMtdGFiX19jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWRjLXRhYl9fdGV4dC1sYWJlbCxcbi5tZGMtdGFiX19pY29uIHtcbiAgdHJhbnNpdGlvbjogMTUwbXMgY29sb3IgbGluZWFyLCAxNTBtcyBvcGFjaXR5IGxpbmVhcjtcbiAgei1pbmRleDogMjsgfVxuXG4ubWRjLXRhYl9fdGV4dC1sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3BhY2l0eTogMC42O1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4ubWRjLXRhYl9faWNvbiB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIG9wYWNpdHk6IDAuNTQ7XG4gIGZvbnQtc2l6ZTogMjRweDsgfVxuXG4ubWRjLXRhYi0tc3RhY2tlZCB7XG4gIGhlaWdodDogNzJweDsgfVxuXG4ubWRjLXRhYi0tc3RhY2tlZCAubWRjLXRhYl9fY29udGVudCB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4ubWRjLXRhYi0tc3RhY2tlZCAubWRjLXRhYl9faWNvbiB7XG4gIHBhZGRpbmctdG9wOiAxMnB4OyB9XG5cbi5tZGMtdGFiLS1zdGFja2VkIC5tZGMtdGFiX190ZXh0LWxhYmVsIHtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7IH1cblxuLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9fdGV4dC1sYWJlbCB7XG4gIGNvbG9yOiAjNjIwMGVlO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH1cblxuLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9faWNvbiB7XG4gIGNvbG9yOiAjNjIwMGVlO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjsgfVxuXG4ubWRjLXRhYi0tYWN0aXZlIC5tZGMtdGFiX190ZXh0LWxhYmVsLFxuLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9faWNvbiB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDEwMG1zO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtdGFiOm5vdCgubWRjLXRhYi0tc3RhY2tlZCkgLm1kYy10YWJfX2ljb24gKyAubWRjLXRhYl9fdGV4dC1sYWJlbCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGFiOm5vdCgubWRjLXRhYi0tc3RhY2tlZCkgLm1kYy10YWJfX2ljb24gKyAubWRjLXRhYl9fdGV4dC1sYWJlbCwgLm1kYy10YWI6bm90KC5tZGMtdGFiLS1zdGFja2VkKSAubWRjLXRhYl9faWNvbiArIC5tZGMtdGFiX190ZXh0LWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogOHB4OyB9XG5cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG4ubWRjLXRhYi1iYXIge1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuLm1kYy10YWItaW5kaWNhdG9yIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtdGFiLWluZGljYXRvciA+IC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5lIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH1cbiAgLm1kYy10YWItaW5kaWNhdG9yID4gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUge1xuICAgIGhlaWdodDogMnB4OyB9XG4gIC5tZGMtdGFiLWluZGljYXRvciA+IC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0taWNvbiB7XG4gICAgY29sb3I6ICMwMTg3ODY7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfVxuICAubWRjLXRhYi1pbmRpY2F0b3IgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLWljb24ge1xuICAgIGhlaWdodDogMzRweDtcbiAgICBmb250LXNpemU6IDM0cHg7IH1cblxuLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgb3BhY2l0eTogMDsgfVxuXG4ubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLWljb24ge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi5tZGMtdGFiLWluZGljYXRvci0tYWN0aXZlID4gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgb3BhY2l0eTogMTsgfVxuXG4ubWRjLXRhYi1pbmRpY2F0b3IgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICB0cmFuc2l0aW9uOiAyNTBtcyB0cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRjLXRhYi1pbmRpY2F0b3ItLW5vLXRyYW5zaXRpb24gPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICB0cmFuc2l0aW9uOiBub25lOyB9XG5cbi5tZGMtdGFiLWluZGljYXRvci0tZmFkZSA+IC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudCB7XG4gIHRyYW5zaXRpb246IDE1MG1zIG9wYWNpdHkgbGluZWFyOyB9XG5cbi5tZGMtdGFiLWluZGljYXRvci0tYWN0aXZlLm1kYy10YWItaW5kaWNhdG9yLS1mYWRlID4gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMTAwbXM7IH1cblxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG4ubWRjLXRhYi1zY3JvbGxlciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fdGVzdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMTAwcHg7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWFyZWEge1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWFyZWE6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuLm1kYy10YWItc2Nyb2xsZXJfX3Rlc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWFyZWEtLXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IH1cblxuLm1kYy10YWItc2Nyb2xsZXItLWFsaWduLXN0YXJ0IC5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtY29udGVudCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlci0tYWxpZ24tZW5kIC5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtY29udGVudCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLm1kYy10YWItc2Nyb2xsZXItLWFsaWduLWNlbnRlciAubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWNvbnRlbnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlci0tYW5pbWF0aW5nIC5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtYXJlYSB7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiBhdXRvOyB9XG5cbi5tZGMtdGFiLXNjcm9sbGVyLS1hbmltYXRpbmcgLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogMjUwbXMgdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzMzMzMzMzZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbjogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBvcGFjaXR5OiAwO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTsgfVxuICAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQ6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMTZweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHZlcnRpY2FsLWFsaWduOiAwOyB9XG5cbi5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC0tcGVyc2lzdGVudCB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIG9wYWNpdHk6IDE7XG4gIHdpbGwtY2hhbmdlOiBpbml0aWFsOyB9XG5cbi5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMzMzMzMzM2VtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXI6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMTZweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHZlcnRpY2FsLWFsaWduOiAwOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLCAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXJbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlciwgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbixcbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLm1kYy10ZXh0LWZpZWxkX19pY29uOm5vdChbdGFiaW5kZXhdKSxcbi5tZGMtdGV4dC1maWVsZF9faWNvblt0YWJpbmRleD1cIi0xXCJdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWRjLXRleHQtZmllbGQge1xuICAtLW1kYy1yaXBwbGUtZmctc2l6ZTogMDtcbiAgLS1tZGMtcmlwcGxlLWxlZnQ6IDA7XG4gIC0tbWRjLXJpcHBsZS10b3A6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy1zY2FsZTogMTtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQ6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQ6IDA7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogNTZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtLCBjb2xvcjsgfVxuICAubWRjLXRleHQtZmllbGQ6OmJlZm9yZSwgLm1kYy10ZXh0LWZpZWxkOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLm1kYy10ZXh0LWZpZWxkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTVtcyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMTVtcyBsaW5lYXI7XG4gICAgei1pbmRleDogMTsgfVxuICAubWRjLXRleHQtZmllbGQubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXRleHQtZmllbGQubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZDo6YWZ0ZXIge1xuICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIDApO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIDApOyB9XG4gIC5tZGMtdGV4dC1maWVsZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLXRleHQtZmllbGQubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDo6YmVmb3JlLCAubWRjLXRleHQtZmllbGQ6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtdGV4dC1maWVsZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtdGV4dC1maWVsZDo6YmVmb3JlLCAubWRjLXRleHQtZmllbGQ6OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgd2lkdGg6IDIwMCU7XG4gICAgaGVpZ2h0OiAyMDAlOyB9XG4gIC5tZGMtdGV4dC1maWVsZC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuICAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpOyB9XG4gIC5tZGMtdGV4dC1maWVsZCAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBjYXJldC1jb2xvcjogIzYyMDBlZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY2FyZXQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfVxuICAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTsgfVxuICAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxuICAubWRjLXRleHQtZmllbGQgLm1kYy1saW5lLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBlZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0IHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLFxuICAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpICsgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlciB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuICAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGVzbW9rZTsgfVxuICAubWRjLXRleHQtZmllbGQgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDE2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiBpbml0aWFsO1xuICAgIHRvcDogMThweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtdGV4dC1maWVsZCAubWRjLWZsb2F0aW5nLWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IDE2cHg7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogNHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogaW5pdGlhbDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLWZsb2F0aW5nLWxhYmVsLCAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogNHB4OyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDRweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgdG9wOiAxN3B4OyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbFtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHJpZ2h0OiA0cHg7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDM2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiBpbml0aWFsOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsLCAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IDM2cHg7IH1cbiAgICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiA0MHB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICByaWdodDogNDBweDsgfVxuXG4ubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwOTM3NWVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMjBweCAxNnB4IDZweDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTsgfVxuICAubWRjLXRleHQtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA2N21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTsgfVxuICAubWRjLXRleHQtZmllbGRfX2lucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCkgIWltcG9ydGFudDsgfVxuICAubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aCAubWRjLXRleHQtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlcixcbiAgLm1kYy10ZXh0LWZpZWxkLS1uby1sYWJlbCAubWRjLXRleHQtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlcixcbiAgLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiA0MG1zO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDExMG1zO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICAubWRjLXRleHQtZmllbGRfX2lucHV0OmludmFsaWQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDotd2Via2l0LWF1dG9maWxsIHtcbiAgICB6LWluZGV4OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1uby1sYWJlbDpub3QoLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIHBhZGRpbmc6IDE2cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkX19pbnB1dDotd2Via2l0LWF1dG9maWxsICsgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgwLjc1KTtcbiAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQge1xuICBib3JkZXI6IG5vbmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjQpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbjpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3JkZXItY29sb3I6ICM2MjAwZWU7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2Uge1xuICAgIGFuaW1hdGlvbjogbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHQtZmllbGQtb3V0bGluZWQgMjUwbXMgMTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmdbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nLCAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ1tkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNDQlKSBzY2FsZSgxKTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOjpiZWZvcmUsIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6OmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDE0cHg7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgei1pbmRleDogMTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gICAgei1pbmRleDogMjsgfVxuXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gIGJvcmRlci13aWR0aDogMnB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNik7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSB7XG4gIGhlaWdodDogNDhweDsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMzQlKSBzY2FsZSgxKTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgZm9udC1zaXplOiAwLjhyZW07IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gICAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZSAyNTBtcyAxOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIHBhZGRpbmc6IDEycHggMTJweCA3cHg7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgdG9wOiAxNHB4OyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gICAgdG9wOiAxMnB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAxNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2ljb24sIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiAxNnB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faW5wdXQsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiA0OHB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsLCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDQ4cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAxNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19pY29uLCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDE2cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2lucHV0LCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2lucHV0W2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogNDhweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTQ0JSkgdHJhbnNsYXRlWCgtMzJweCkgc2NhbGUoMSk7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmVbZGlyPVwicnRsXCJdIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0NCUpIHRyYW5zbGF0ZVgoMzJweCkgc2NhbGUoMSk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICBmb250LXNpemU6IDAuNzVyZW07IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEzMCUpIHRyYW5zbGF0ZVgoLTMycHgpIHNjYWxlKDAuNzUpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4gIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZVtkaXI9XCJydGxcIl0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTMwJSkgdHJhbnNsYXRlWCgzMnB4KSBzY2FsZSgwLjc1KTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gIGFuaW1hdGlvbjogbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uIDI1MG1zIDE7IH1cblxuW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWRbZGlyPVwicnRsXCJdIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlIHtcbiAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tcnRsIDI1MG1zIDE7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMzZweDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogaW5pdGlhbDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDM2cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMzQlKSB0cmFuc2xhdGVYKC0yMXB4KSBzY2FsZSgxKTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlW2Rpcj1cInJ0bFwiXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMzQlKSB0cmFuc2xhdGVYKDIxcHgpIHNjYWxlKDEpOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIGZvbnQtc2l6ZTogMC44cmVtOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZS5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEyMCUpIHRyYW5zbGF0ZVgoLTIxcHgpIHNjYWxlKDAuOCk7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZS5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZVtkaXI9XCJydGxcIl0sIFtkaXI9XCJydGxcIl1cbiAgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbiAgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZVtkaXI9XCJydGxcIl0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTIwJSkgdHJhbnNsYXRlWCgyMXB4KSBzY2FsZSgwLjgpOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZS5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICBmb250LXNpemU6IDFyZW07IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlIHtcbiAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tZGVuc2UgMjUwbXMgMTsgfVxuXG5bZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlW2Rpcj1cInJ0bFwiXSAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gIGFuaW1hdGlvbjogbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uLWRlbnNlLXJ0bCAyNTBtcyAxOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAzMnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiAzMnB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogaW5pdGlhbDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogMTJweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbiwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDEycHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiBpbml0aWFsOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiA0OHB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dCwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogaW5pdGlhbDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogMTZweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2ljb24sIC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMTZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IGluaXRpYWw7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiA0OHB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQsIC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2lucHV0W2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogNDhweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAxNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBhdXRvOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbiwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBhdXRvO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMTZweDsgfVxuICAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uIH4gLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDEycHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2ljb24gfiAubWRjLXRleHQtZmllbGRfX2ljb24sIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2ljb24gfiAubWRjLXRleHQtZmllbGRfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogMTJweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDQ4cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dCwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faW5wdXRbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbixcbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICBib3R0b206IDE2cHg7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC44KTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDEycHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24sIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMTJweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDQ0cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faW5wdXQsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faW5wdXRbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiA0NHB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDQ0cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiA0NHB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IGluaXRpYWw7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IDEycHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pY29uLCAubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDEycHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiBpbml0aWFsOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogNDRweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2lucHV0LCAubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pbnB1dFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDQ0cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDEycHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGF1dG87IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbiwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogYXV0bztcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDEycHg7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24gfiAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMTJweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogYXV0bzsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24gfiAubWRjLXRleHQtZmllbGRfX2ljb24sIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pY29uIH4gLm1kYy10ZXh0LWZpZWxkX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogYXV0bztcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IDEycHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDQ0cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogNDRweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2lucHV0W2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogNDRweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogNDRweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC03MCUpIHNjYWxlKDAuOCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gIGFuaW1hdGlvbjogbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHQtZmllbGQtZGVuc2UgMjUwbXMgMTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICBwYWRkaW5nOiAxMnB4IDEycHggMDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICBmb250LXNpemU6IC44MTNyZW07IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgZm9udC1zaXplOiAuODEzcmVtOyB9XG5cbi5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWQgfiAubWRjLWZsb2F0aW5nLWxhYmVsOjphZnRlcixcbi5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWQgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLWZsb2F0aW5nLWxhYmVsOjphZnRlciB7XG4gIG1hcmdpbi1sZWZ0OiAxcHg7XG4gIGNvbnRlbnQ6IFwiKlwiOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYTpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWE6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYTpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNCk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYTpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2ljb246aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYTpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2ljb246aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYTpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJvcmRlci1jb2xvcjogIzYyMDBlZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gICAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZCAyNTBtcyAxOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZ1tkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcsIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOjpiZWZvcmUsIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWE6OmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWE6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0NCUpIHNjYWxlKDEpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDE2cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTNweDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIsIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiAxNnB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBhbGlnbi1zZWxmOiBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogOHB4IDFweCAxcHggMDtcbiAgICBwYWRkaW5nOiAwIDE2cHggMTZweDtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIgKyAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgdG9wOiAxN3B4O1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJvcmRlci13aWR0aDogMnB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tZnVsbHdpZHRoIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1mdWxsd2lkdGg6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5tZGMtdGV4dC1maWVsZC0tZnVsbHdpZHRoOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKTo6YmVmb3JlLCAubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aDpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSk6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgICAubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aDpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSk6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLm1kYy10ZXh0LWZpZWxkLS1mdWxsd2lkdGg6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAubWRjLXRleHQtZmllbGQtLWRlbnNlICsgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7IH1cbiAgLm1kYy10ZXh0LWZpZWxkICsgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICAgIHBhZGRpbmctbGVmdDogMTZweDsgfVxuXG4ubWRjLWZvcm0tZmllbGQgPiAubWRjLXRleHQtZmllbGQgKyBsYWJlbCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoOTgsIDAsIDIzOCwgMC44Nyk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWQgfiAubWRjLWZsb2F0aW5nLWxhYmVsOjphZnRlcixcbi5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLXRleHQtZmllbGRfX2lucHV0OnJlcXVpcmVkIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1mbG9hdGluZy1sYWJlbDo6YWZ0ZXIge1xuICBjb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0Om5vdCgubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnKSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICBib3JkZXItY29sb3I6ICM2MjAwZWU7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWxpbmUtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gIGNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWludmFsaWQgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZyB7XG4gIGNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0taW52YWxpZCAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgY2FyZXQtY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY2FyZXQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb246bm90KC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24pOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICBjb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWludmFsaWQubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb246bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbiB+IC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIGNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0taW52YWxpZCArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gIGJvcmRlci1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcsXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2ljb246aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbjpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbjpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gIGJvcmRlci1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICBib3JkZXItY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyxcbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbjpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gIGJvcmRlci1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA2KTsgfVxuICAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzcpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zNyk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzcpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLFxuICAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkICsgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlciB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zNyk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZDpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDYpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuQGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1kZW5zZSB7XG4gIC8qIGNsZWFuLWNzcyBpZ25vcmU6c3RhcnQgKi9cbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwJSkpIHRyYW5zbGF0ZVkoLTcwJSkgc2NhbGUoMC44KTsgfVxuICAzMyUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMyLCAwLjQ5NTgxOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoNCUgLSAwJSkpIHRyYW5zbGF0ZVkoLTcwJSkgc2NhbGUoMC44KTsgfVxuICA2NiUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjMwMjQzNSwgMC4zODEzNTIsIDAuNTUsIDAuOTU2MzUyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNCUgLSAwJSkpIHRyYW5zbGF0ZVkoLTcwJSkgc2NhbGUoMC44KTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMCUpKSB0cmFuc2xhdGVZKC03MCUpIHNjYWxlKDAuOCk7IH1cbiAgLyogY2xlYW4tY3NzIGlnbm9yZTplbmQgKi8gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLW91dGxpbmVkIHtcbiAgLyogY2xlYW4tY3NzIGlnbm9yZTpzdGFydCAqL1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDAlKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgMzMlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjcwMTczMiwgMC40OTU4MTkpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDQlIC0gMCUpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICA2NiUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjMwMjQzNSwgMC4zODEzNTIsIDAuNTUsIDAuOTU2MzUyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNCUgLSAwJSkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwJSkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIC8qIGNsZWFuLWNzcyBpZ25vcmU6ZW5kICovIH1cblxuQGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZSB7XG4gIC8qIGNsZWFuLWNzcyBpZ25vcmU6c3RhcnQgKi9cbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwJSkpIHRyYW5zbGF0ZVkoLTEyMCUpIHNjYWxlKDAuOCk7IH1cbiAgMzMlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjcwMTczMiwgMC40OTU4MTkpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDQlIC0gMCUpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIDY2JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzAyNDM1LCAwLjM4MTM1MiwgMC41NSwgMC45NTYzNTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC00JSAtIDAlKSkgdHJhbnNsYXRlWSgtMTIwJSkgc2NhbGUoMC44KTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMCUpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIC8qIGNsZWFuLWNzcyBpZ25vcmU6ZW5kICovIH1cblxuQGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24ge1xuICAvKiBjbGVhbi1jc3MgaWdub3JlOnN0YXJ0ICovXG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDMzJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MzIsIDAuNDk1ODE5KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyg0JSAtIDApKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICA2NiUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjMwMjQzNSwgMC4zODEzNTIsIDAuNTUsIDAuOTU2MzUyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNCUgLSAwKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDApKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAvKiBjbGVhbi1jc3MgaWdub3JlOmVuZCAqLyB9XG5cbkBrZXlmcmFtZXMgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uLWRlbnNlIHtcbiAgLyogY2xlYW4tY3NzIGlnbm9yZTpzdGFydCAqL1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDIxcHgpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIDMzJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MzIsIDAuNDk1ODE5KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyg0JSAtIDIxcHgpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIDY2JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzAyNDM1LCAwLjM4MTM1MiwgMC41NSwgMC45NTYzNTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC00JSAtIDIxcHgpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAyMXB4KSkgdHJhbnNsYXRlWSgtMTIwJSkgc2NhbGUoMC44KTsgfVxuICAvKiBjbGVhbi1jc3MgaWdub3JlOmVuZCAqLyB9XG5cbkBrZXlmcmFtZXMgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uLXJ0bCB7XG4gIC8qIGNsZWFuLWNzcyBpZ25vcmU6c3RhcnQgKi9cbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgMzMlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjcwMTczMiwgMC40OTU4MTkpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDQlIC0gMCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDY2JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzAyNDM1LCAwLjM4MTM1MiwgMC41NSwgMC45NTYzNTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC00JSAtIDApKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIC8qIGNsZWFuLWNzcyBpZ25vcmU6ZW5kICovIH1cblxuQGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tZGVuc2UtcnRsIHtcbiAgLyogY2xlYW4tY3NzIGlnbm9yZTpzdGFydCAqL1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIC0yMXB4KSkgdHJhbnNsYXRlWSgtMTIwJSkgc2NhbGUoMC44KTsgfVxuICAzMyUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMyLCAwLjQ5NTgxOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoNCUgLSAtMjFweCkpIHRyYW5zbGF0ZVkoLTEyMCUpIHNjYWxlKDAuOCk7IH1cbiAgNjYlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0MzUsIDAuMzgxMzUyLCAwLjU1LCAwLjk1NjM1Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTQlIC0gLTIxcHgpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAtMjFweCkpIHRyYW5zbGF0ZVkoLTEyMCUpIHNjYWxlKDAuOCk7IH1cbiAgLyogY2xlYW4tY3NzIGlnbm9yZTplbmQgKi8gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0YXJlYSB7XG4gIC8qIGNsZWFuLWNzcyBpZ25vcmU6c3RhcnQgKi9cbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwJSkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDMzJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MzIsIDAuNDk1ODE5KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyg0JSAtIDAlKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgNjYlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0MzUsIDAuMzgxMzUyLCAwLjU1LCAwLjk1NjM1Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTQlIC0gMCUpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMCUpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAvKiBjbGVhbi1jc3MgaWdub3JlOmVuZCAqLyB9XG5cbjpyb290IHtcbiAgLS1tZGMtdGhlbWUtcHJpbWFyeTogIzYyMDBlZTtcbiAgLS1tZGMtdGhlbWUtc2Vjb25kYXJ5OiAjMDE4Nzg2O1xuICAtLW1kYy10aGVtZS1iYWNrZ3JvdW5kOiAjZmZmO1xuICAtLW1kYy10aGVtZS1zdXJmYWNlOiAjZmZmO1xuICAtLW1kYy10aGVtZS1lcnJvcjogI2IwMDAyMDtcbiAgLS1tZGMtdGhlbWUtb24tcHJpbWFyeTogI2ZmZjtcbiAgLS1tZGMtdGhlbWUtb24tc2Vjb25kYXJ5OiAjZmZmO1xuICAtLW1kYy10aGVtZS1vbi1zdXJmYWNlOiAjMDAwO1xuICAtLW1kYy10aGVtZS1vbi1lcnJvcjogI2ZmZjtcbiAgLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIC0tbWRjLXRoZW1lLXRleHQtc2Vjb25kYXJ5LW9uLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuICAtLW1kYy10aGVtZS10ZXh0LWRpc2FibGVkLW9uLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gIC0tbWRjLXRoZW1lLXRleHQtaWNvbi1vbi1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuICAtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tbGlnaHQ6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIC0tbWRjLXRoZW1lLXRleHQtc2Vjb25kYXJ5LW9uLWxpZ2h0OiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICAtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tbGlnaHQ6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gIC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tbGlnaHQ6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gIC0tbWRjLXRoZW1lLXRleHQtaWNvbi1vbi1saWdodDogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbiAgLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWRhcms6IHdoaXRlO1xuICAtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1kYXJrOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1kYXJrOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tZGFyazogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAtLW1kYy10aGVtZS10ZXh0LWljb24tb24tZGFyazogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG5cbi5tZGMtdGhlbWUtLXByaW1hcnkge1xuICBjb2xvcjogIzYyMDBlZSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS1zZWNvbmRhcnkge1xuICBjb2xvcjogIzAxODc4NiAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1iYWNrZ3JvdW5kLCAjZmZmKTsgfVxuXG4ubWRjLXRoZW1lLS1zdXJmYWNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgI2ZmZik7IH1cblxuLm1kYy10aGVtZS0tZXJyb3Ige1xuICBjb2xvcjogI2IwMDAyMCAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tb24tcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1wcmltYXJ5LCAjZmZmKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLW9uLXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1zZWNvbmRhcnksICNmZmYpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tb24tc3VyZmFjZSB7XG4gIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLW9uLWVycm9yIHtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLWVycm9yLCAjZmZmKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NykgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtc2Vjb25kYXJ5LW9uLWJhY2tncm91bmQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1zZWNvbmRhcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjU0KSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS10ZXh0LWhpbnQtb24tYmFja2dyb3VuZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjM4KSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS10ZXh0LWRpc2FibGVkLW9uLWJhY2tncm91bmQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1kaXNhYmxlZC1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtaWNvbi1vbi1iYWNrZ3JvdW5kIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCkgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtaWNvbi1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtcHJpbWFyeS1vbi1saWdodCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tbGlnaHQsIHJnYmEoMCwgMCwgMCwgMC44NykpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1zZWNvbmRhcnktb24tbGlnaHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1zZWNvbmRhcnktb24tbGlnaHQsIHJnYmEoMCwgMCwgMCwgMC41NCkpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1oaW50LW9uLWxpZ2h0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCkgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1saWdodCwgcmdiYSgwLCAwLCAwLCAwLjM4KSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS10ZXh0LWRpc2FibGVkLW9uLWxpZ2h0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCkgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tbGlnaHQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1pY29uLW9uLWxpZ2h0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCkgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtaWNvbi1vbi1saWdodCwgcmdiYSgwLCAwLCAwLCAwLjM4KSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS10ZXh0LXByaW1hcnktb24tZGFyayB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWRhcmssIHdoaXRlKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtc2Vjb25kYXJ5LW9uLWRhcmsge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1kYXJrLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1oaW50LW9uLWRhcmsge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tZGFyaywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtZGlzYWJsZWQtb24tZGFyayB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tZGFyaywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtaWNvbi1vbi1kYXJrIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1pY29uLW9uLWRhcmssIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS1wcmltYXJ5LWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBlZSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXNlY29uZGFyeS1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMTg3ODYgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDQ7IH1cbiAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbSxcbiAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXByaW1hcnksICNmZmYpOyB9XG4gICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTo6YmVmb3JlLCAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtOjphZnRlcixcbiAgICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbjo6YmVmb3JlLFxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06OmJlZm9yZSwgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTo6YWZ0ZXIsXG4gICAgICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOjpiZWZvcmUsXG4gICAgICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOjphZnRlciB7XG4gICAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1wcmltYXJ5LCAjZmZmKTsgfSB9XG4gICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTpob3Zlcjo6YmVmb3JlLFxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOmhvdmVyOjpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogMC4wODsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlLFxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSxcbiAgICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgICAgb3BhY2l0eTogMC4yNDsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIsXG4gICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlcixcbiAgICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICAgIG9wYWNpdHk6IDAuMjQ7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQsXG4gICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4yNDsgfVxuICAubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA2NHB4OyB9XG4gIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1zdGFydCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBvcmRlcjogLTE7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1lbmQge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIG9yZGVyOiAxOyB9XG4gIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRvcC1hcHAtYmFyX190aXRsZSwgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGVbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cbiAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0sIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbiB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gICAgLS1tZGMtcmlwcGxlLWxlZnQ6IDA7XG4gICAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQ6IDA7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTo6YmVmb3JlLCAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTo6YWZ0ZXIsIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbjo6YmVmb3JlLCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb246OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTo6YmVmb3JlLCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb246OmJlZm9yZSB7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgICAgei1pbmRleDogMTsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSwgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyLCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgICAgdG9wOiAwO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gICAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciwgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZDo6YWZ0ZXIge1xuICAgICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIDApOyB9XG4gICAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciwgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIsIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gICAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06OmJlZm9yZSwgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06OmFmdGVyLCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb246OmJlZm9yZSwgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOjphZnRlciB7XG4gICAgICB0b3A6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlLCAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciwgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSwgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIGNhbGMoNTAlIC0gNTAlKSk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIGNhbGMoNTAlIC0gNTAlKSk7XG4gICAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyLCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkIHtcbiAgLyogQG5vZmxpcCAqL1xuICBib3JkZXItcmFkaXVzOiAwIDAgMjRweCAwOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkLCAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWRbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMjRweDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1zaG9ydCB7XG4gIHRvcDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogYXV0bztcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMjUwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LCAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogYXV0bzsgfVxuICAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydCAubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICAgIGhlaWdodDogNTZweDsgfVxuICAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydCAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiA0cHg7IH1cbiAgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZCB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICB3aWR0aDogNTZweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMzAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtIHtcbiAgICB0cmFuc2l0aW9uOiBwYWRkaW5nIDE1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtaGFzLWFjdGlvbi1pdGVtIHtcbiAgd2lkdGg6IDExMnB4OyB9XG4gIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWhhcy1hY3Rpb24taXRlbSAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1lbmQge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWhhcy1hY3Rpb24taXRlbSAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1lbmQsIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWhhcy1hY3Rpb24taXRlbSAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1lbmRbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgaGVpZ2h0OiA0OHB4OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLWRlbnNlIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24ge1xuICBwYWRkaW5nOiAwIDRweDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZSAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRvcC1hcHAtYmFyLS1kZW5zZSAubWRjLXRvcC1hcHAtYmFyX190aXRsZSwgLm1kYy10b3AtYXBwLWJhci0tZGVuc2UgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGVbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICBoZWlnaHQ6IDEyOHB4OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICBwYWRkaW5nLWJvdHRvbTogMnB4OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbSxcbi5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLWZpeGVkIHtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBsaW5lYXI7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tZml4ZWQtc2Nyb2xsZWQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBsaW5lYXI7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgaGVpZ2h0OiA5NnB4OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLWRlbnNlLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24ge1xuICBwYWRkaW5nOiAwIDEycHg7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogOXB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10b3AtYXBwLWJhci0tZGVuc2UubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUsIC5tZGMtdG9wLWFwcC1iYXItLWRlbnNlLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogMjBweDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1maXhlZC1hZGp1c3Qge1xuICBwYWRkaW5nLXRvcDogNjRweDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZS1maXhlZC1hZGp1c3Qge1xuICBwYWRkaW5nLXRvcDogNDhweDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1maXhlZC1hZGp1c3Qge1xuICBwYWRkaW5nLXRvcDogNTZweDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQtZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6IDEyOHB4OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLWRlbnNlLXByb21pbmVudC1maXhlZC1hZGp1c3Qge1xuICBwYWRkaW5nLXRvcDogOTZweDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgICBoZWlnaHQ6IDU2cHg7IH1cbiAgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbiB7XG4gICAgcGFkZGluZzogNHB4OyB9XG4gIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0IHtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZCB7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMjUwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZCAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1lbmQge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcGFkZGluZy1yaWdodDogMTJweDsgfVxuICAgICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbi0tYWxpZ24tZW5kLCAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbi0tYWxpZ24tZW5kW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnB4OyB9XG4gIC5tZGMtdG9wLWFwcC1iYXItLWZpeGVkLWFkanVzdCB7XG4gICAgcGFkZGluZy10b3A6IDU2cHg7IH0gfVxuXG4ubWRjLXR5cG9ncmFwaHkge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgfVxuXG4ubWRjLXR5cG9ncmFwaHktLWhlYWRsaW5lMSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDZyZW07XG4gIGxpbmUtaGVpZ2h0OiA2cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDE1NjI1ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1oZWFkbGluZTIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAzLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMy43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwODMzMzMzZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1oZWFkbGluZTMge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBsaW5lLWhlaWdodDogMy4xMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1oZWFkbGluZTQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAyLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA3MzUyOTRlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDsgfVxuXG4ubWRjLXR5cG9ncmFwaHktLWhlYWRsaW5lNSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1oZWFkbGluZTYge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0OyB9XG5cbi5tZGMtdHlwb2dyYXBoeS0tc3VidGl0bGUxIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwOTM3NWVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0OyB9XG5cbi5tZGMtdHlwb2dyYXBoeS0tc3VidGl0bGUyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA3MTQyODZlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDsgfVxuXG4ubWRjLXR5cG9ncmFwaHktLWJvZHkxIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDMxMjVlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDsgfVxuXG4ubWRjLXR5cG9ncmFwaHktLWJvZHkyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMTc4NTcxNGVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0OyB9XG5cbi5tZGMtdHlwb2dyYXBoeS0tY2FwdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMzMzMzMzM2VtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0OyB9XG5cbi5tZGMtdHlwb2dyYXBoeS0tYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wODkyODU3MWVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1vdmVybGluZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4xNjY2NjY2N2VtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLm5neC1tZGMtZm9ybS1maWVsZC0tZmx1aWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiBhdXRvO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG5cbi5uZ3gtbWRjLWJ1dHRvbi0tcHJpbWFyeTpub3QoOmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MjAwZWU7IH1cblxuLm5neC1tZGMtYnV0dG9uLS1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpIHtcbiAgY29sb3I6IHdoaXRlO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWRhcmssIHdoaXRlKTsgfVxuXG4ubmd4LW1kYy1idXR0b24tLXByaW1hcnk6OmJlZm9yZSwgLm5neC1tZGMtYnV0dG9uLS1wcmltYXJ5OjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG4gIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAubmd4LW1kYy1idXR0b24tLXByaW1hcnk6OmJlZm9yZSwgLm5neC1tZGMtYnV0dG9uLS1wcmltYXJ5OjphZnRlciB7XG4gICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWRhcmssIHdoaXRlKTsgfSB9XG5cbi5uZ3gtbWRjLWJ1dHRvbi0tcHJpbWFyeTpob3Zlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4wODsgfVxuXG4ubmd4LW1kYy1idXR0b24tLXByaW1hcnk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubmd4LW1kYy1idXR0b24tLXByaW1hcnkubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI0OyB9XG5cbi5uZ3gtbWRjLWJ1dHRvbi0tcHJpbWFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG5cbi5uZ3gtbWRjLWJ1dHRvbi0tcHJpbWFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI0OyB9XG5cbi5uZ3gtbWRjLWJ1dHRvbi0tcHJpbWFyeS5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjQ7IH1cblxuLm5neC1tZGMtYnV0dG9uLS1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2OyB9XG5cbi5uZ3gtbWRjLWJ1dHRvbi0tc2Vjb25kYXJ5Om5vdCg6ZGlzYWJsZWQpIHtcbiAgY29sb3I6IHdoaXRlO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWRhcmssIHdoaXRlKTsgfVxuXG4ubmd4LW1kYy1idXR0b24tLXNlY29uZGFyeTo6YmVmb3JlLCAubmd4LW1kYy1idXR0b24tLXNlY29uZGFyeTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgLm5neC1tZGMtYnV0dG9uLS1zZWNvbmRhcnk6OmJlZm9yZSwgLm5neC1tZGMtYnV0dG9uLS1zZWNvbmRhcnk6OmFmdGVyIHtcbiAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9IH1cblxuLm5neC1tZGMtYnV0dG9uLS1zZWNvbmRhcnk6aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMDg7IH1cblxuLm5neC1tZGMtYnV0dG9uLS1zZWNvbmRhcnk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubmd4LW1kYy1idXR0b24tLXNlY29uZGFyeS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMjQ7IH1cblxuLm5neC1tZGMtYnV0dG9uLS1zZWNvbmRhcnk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuXG4ubmd4LW1kYy1idXR0b24tLXNlY29uZGFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI0OyB9XG5cbi5uZ3gtbWRjLWJ1dHRvbi0tc2Vjb25kYXJ5Lm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4yNDsgfVxuXG4ubmd4LW1kYy1jaGlwLS1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBlZTtcbiAgY29sb3I6IHdoaXRlO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWRhcmssIHdoaXRlKTsgfVxuICAubmd4LW1kYy1jaGlwLS1wcmltYXJ5OjpiZWZvcmUsIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnk6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnk6OmJlZm9yZSwgLm5neC1tZGMtY2hpcC0tcHJpbWFyeTo6YWZ0ZXIge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9IH1cbiAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeTpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA4OyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubmd4LW1kYy1jaGlwLS1wcmltYXJ5Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMjQ7IH1cbiAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4yNDsgfVxuICAubmd4LW1kYy1jaGlwLS1wcmltYXJ5Lm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjI0OyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnk6aG92ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnkubWRjLWNoaXAtLXNlbGVjdGVkOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMTY7IH1cbiAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmJlZm9yZSwgLm5neC1tZGMtY2hpcC0tcHJpbWFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnkubWRjLWNoaXAtLXNlbGVjdGVkOjpiZWZvcmUsIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnkubWRjLWNoaXAtLXNlbGVjdGVkOjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1kYXJrLCB3aGl0ZSk7IH0gfVxuICAubmd4LW1kYy1jaGlwLS1wcmltYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZDpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjI0OyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnkubWRjLWNoaXAtLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm5neC1tZGMtY2hpcC0tcHJpbWFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC40OyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnkubWRjLWNoaXAtLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubmd4LW1kYy1jaGlwLS1wcmltYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC40OyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnkubWRjLWNoaXAtLXNlbGVjdGVkLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjQ7IH1cbiAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9XG4gICAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nIHtcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpOyB9XG4gICAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6aG92ZXIge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnkgLm1kYy1jaGlwX19jaGVja21hcmstcGF0aCB7XG4gICAgc3Ryb2tlOiB3aGl0ZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgc3Ryb2tlOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWRhcmssIHdoaXRlKTsgfVxuICAubmd4LW1kYy1jaGlwLS1wcmltYXJ5IC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZyB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCk7IH1cbiAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeSAubWRjLWNoaXBfX2ljb24tLXRyYWlsaW5nIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KTsgfVxuICAgIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnkgLm1kYy1jaGlwX19pY29uLS10cmFpbGluZzpob3ZlciB7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYyKTsgfVxuICAgIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnkgLm1kYy1jaGlwX19pY29uLS10cmFpbGluZzpmb2N1cyB7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTsgfVxuXG4ubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2O1xuICBjb2xvcjogd2hpdGU7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeTo6YmVmb3JlLCAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnk6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeTo6YmVmb3JlLCAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnk6OmFmdGVyIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWRhcmssIHdoaXRlKTsgfSB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeTpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA4OyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjI0OyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjI0OyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeS5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4yNDsgfVxuICAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnk6aG92ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4xNjsgfVxuICAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkubWRjLWNoaXAtLXNlbGVjdGVkOjpiZWZvcmUsIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmJlZm9yZSwgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZDo6YWZ0ZXIge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9IH1cbiAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZDpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjI0OyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkubWRjLWNoaXAtLXNlbGVjdGVkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuNDsgfVxuICAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkubWRjLWNoaXAtLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkubWRjLWNoaXAtLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjQ7IH1cbiAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC40OyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9XG4gICAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZCAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcge1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCk7IH1cbiAgICAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkubWRjLWNoaXAtLXNlbGVjdGVkOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWRhcmssIHdoaXRlKTsgfVxuICAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkgLm1kYy1jaGlwX19jaGVja21hcmstcGF0aCB7XG4gICAgc3Ryb2tlOiB3aGl0ZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgc3Ryb2tlOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWRhcmssIHdoaXRlKTsgfVxuICAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KTsgfVxuICAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkgLm1kYy1jaGlwX19pY29uLS10cmFpbGluZyB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCk7IH1cbiAgICAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkgLm1kYy1jaGlwX19pY29uLS10cmFpbGluZzpob3ZlciB7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYyKTsgfVxuICAgIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeSAubWRjLWNoaXBfX2ljb24tLXRyYWlsaW5nOmZvY3VzIHtcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpOyB9XG5cbi5uZ3gtbWRjLWZhYi1leHRlbmRlZC0tZmx1aWQge1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubmd4LW1kYy1mYWItLWJvdHRvbS1yaWdodCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDFyZW07XG4gIGJvdHRvbTogMXJlbTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5uZ3gtbWRjLWZhYi0tYm90dG9tLXJpZ2h0IHtcbiAgICByaWdodDogMS41cmVtO1xuICAgIGJvdHRvbTogMS41cmVtOyB9IH1cblxuLm5neC1tZGMtZmFiLS1ib3R0b20tbGVmdCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAxcmVtO1xuICBsZWZ0OiAxcmVtOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm5neC1tZGMtZmFiLS1ib3R0b20tbGVmdCB7XG4gICAgYm90dG9tOiAxLjVyZW07XG4gICAgbGVmdDogMS41cmVtOyB9IH1cblxuLm5neC1tZGMtaWNvbi0tY2xpY2thYmxlLFxuYS5uZ3gtbWRjLWljb24ge1xuICBvdXRsaW5lOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuLm5neC1tZGMtaWNvbi0taW5saW5lIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB3aWR0aDogaW5oZXJpdDsgfVxuXG4ubWRjLWltYWdlLWxpc3RfX2l0ZW0ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ubWRjLWxpbmVhci1wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5tZGMtbGluZWFyLXByb2dyZXNzLS1zZWNvbmRhcnkgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2Jhci1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMTg3ODY7IH1cblxuLm1kYy1saXN0LFxuLm1kYy1saXN0LWRpdmlkZXIge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ubmd4LW1kYy1saXN0LS1ib3JkZXIge1xuICAvKiBFbnN1cmUgYWRqYWNlbnQgYm9yZGVycyBkb24ndCBjb2xsaWRlIHdpdGggb25lIGFub3RoZXIuICovIH1cbiAgLm5neC1tZGMtbGlzdC0tYm9yZGVyIC5tZGMtbGlzdC1pdGVtIHtcbiAgICAvKiBBZGQgdGhlIGxpc3Qgc2lkZSBwYWRkaW5nIHBhZGRpbmcgdG8gdGhlIGxpc3QgaXRlbS4gKi9cbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgLyogQWRkIGEgYm9yZGVyIGFyb3VuZCBlYWNoIGVsZW1lbnQuICovXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuICAubmd4LW1kYy1saXN0LS1ib3JkZXIgLm1kYy1saXN0LWl0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGJvcmRlci10b3A6IG5vbmU7IH1cblxuLm1kYy1tZW51LXN1cmZhY2UtLWFuY2hvciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4ubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLm1kYy1zbGlkZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5uZ3gtbWRjLXNuYWNrYmFyLS10cmFpbGluZyB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfSB9XG5cbi5uZ3gtbWRjLXRhYi0tZGlzYWJsZWQge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5uZ3gtbWRjLXRhYi0tZGlzYWJsZWQgLm1kYy10YWJfX3RleHQtbGFiZWwge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cbiAgLm5neC1tZGMtdGFiLS1kaXNhYmxlZCAubWRjLXRhYl9faWNvbiB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cbiAgLm5neC1tZGMtdGFiLS1kaXNhYmxlZCAubWRjLXRhYi1pbmRpY2F0b3IgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpOyB9XG5cbi5tZGMtdGFiLWJhciB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5tZGMtdGFiLXNjcm9sbGVyIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuQEluY2x1ZGUgbWRjLXRhYi1maXhlZC13aWR0aCgzMHB4KTtcbi5oZWFkZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7IH1cblxuLm1haW4tY29udGVudCB7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4ubWFpbi1hcHAtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM2MzY0MDsgfVxuICAubWFpbi1hcHAtYmFyIC5tZGMtdGFiLWJhciB7XG4gICAgbWFyZ2luLXRvcDogMWVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAubWFpbi1hcHAtYmFyIC5tZGMtdGFiLWJhciB7XG4gICAgICAgIG1hcmdpbi10b3A6IC41ZW07IH0gfVxuICAgIC5tYWluLWFwcC1iYXIgLm1kYy10YWItYmFyIC5tZGMtdGFiIC5tZGMtdGFiX190ZXh0LWxhYmVsIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1wcmltYXJ5LCAjZmZmKTsgfVxuICAgIC5tYWluLWFwcC1iYXIgLm1kYy10YWItYmFyIC5tZGMtdGFiIC5tZGMtdGFiX19pY29uIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1wcmltYXJ5LCAjZmZmKTtcbiAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsgfVxuICAgIC5tYWluLWFwcC1iYXIgLm1kYy10YWItYmFyIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSwgLm1haW4tYXBwLWJhciAubWRjLXRhYi1iYXIgLm1kYy10YWJfX3JpcHBsZTo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE5NzZkMjsgfVxuICAgIC5tYWluLWFwcC1iYXIgLm1kYy10YWItYmFyIC5tZGMtdGFiX19yaXBwbGU6aG92ZXI6OmJlZm9yZSB7XG4gICAgICBvcGFjaXR5OiAwLjA0OyB9XG4gICAgLm1haW4tYXBwLWJhciAubWRjLXRhYi1iYXIgLm1kYy10YWJfX3JpcHBsZTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tYWluLWFwcC1iYXIgLm1kYy10YWItYmFyIC5tZGMtdGFiX19yaXBwbGUubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgICAubWFpbi1hcHAtYmFyIC5tZGMtdGFiLWJhciAubWRjLXRhYl9fcmlwcGxlOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gICAgLm1haW4tYXBwLWJhciAubWRjLXRhYi1iYXIgLm1kYy10YWJfX3JpcHBsZTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgICAubWFpbi1hcHAtYmFyIC5tZGMtdGFiLWJhciAubWRjLXRhYl9fcmlwcGxlLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cbiAgICAubWFpbi1hcHAtYmFyIC5tZGMtdGFiLWJhciAubWRjLXRhYi1pbmRpY2F0b3IgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NmQyOyB9XG4gICAgLm1haW4tYXBwLWJhciAubWRjLXRhYi1iYXIgLm1kYy10YWItaW5kaWNhdG9yID4gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUge1xuICAgICAgaGVpZ2h0OiAzcHg7IH1cblxuLm1kYy10YWIge1xuICBmb250LXNpemU6IDEwcHg7XG4gIHdpZHRoOiA3MnB4OyB9XG5cbi5tYWluLWRyYXdlci1jb250YWluZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDY0cHgpO1xuICBtYXJnaW4tdG9wOiA2NHB4OyB9XG5cbi5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4uYXBwLWRyYXdlci1jb250ZW50cyB7XG4gIHBhZGRpbmc6IDIwcHg7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ5OXB4KSB7XG4gIC5tYWluLWRyYXdlciB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDU2cHgpO1xuICAgIG1hcmdpbi10b3A6IC04cHg7IH1cbiAgICAubWFpbi1kcmF3ZXIubWRjLWRyYXdlci0tb3Blbjpub3QoLm1kYy1kcmF3ZXItLWNsb3NpbmcpICsgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IDIwMHB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICBbZGlyPVwicnRsXCJdIC5tYWluLWRyYXdlci5tZGMtZHJhd2VyLS1vcGVuOm5vdCgubWRjLWRyYXdlci0tY2xvc2luZykgKyAubWRjLWRyYXdlci1hcHAtY29udGVudCwgLm1haW4tZHJhd2VyLm1kYy1kcmF3ZXItLW9wZW46bm90KC5tZGMtZHJhd2VyLS1jbG9zaW5nKSArIC5tZGMtZHJhd2VyLWFwcC1jb250ZW50W2Rpcj1cInJ0bFwiXSB7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMDBweDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAubWFpbi1kcmF3ZXIge1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA1NnB4KTtcbiAgICBtYXJnaW4tdG9wOiAtOHB4OyB9XG4gICAgLm1haW4tZHJhd2VyLm1kYy1kcmF3ZXItLW9wZW46bm90KC5tZGMtZHJhd2VyLS1jbG9zaW5nKSArIC5tZGMtZHJhd2VyLWFwcC1jb250ZW50IHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1sZWZ0OiAzMDBweDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgICAgW2Rpcj1cInJ0bFwiXSAubWFpbi1kcmF3ZXIubWRjLWRyYXdlci0tb3Blbjpub3QoLm1kYy1kcmF3ZXItLWNsb3NpbmcpICsgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQsIC5tYWluLWRyYXdlci5tZGMtZHJhd2VyLS1vcGVuOm5vdCgubWRjLWRyYXdlci0tY2xvc2luZykgKyAubWRjLWRyYXdlci1hcHAtY29udGVudFtkaXI9XCJydGxcIl0ge1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIG1hcmdpbi1yaWdodDogMzAwcHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAxcHgpIHtcbiAgLm1haW4tZHJhd2VyIHtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNjRweCk7IH1cbiAgICAubWFpbi1kcmF3ZXIubWRjLWRyYXdlci0tb3Blbjpub3QoLm1kYy1kcmF3ZXItLWNsb3NpbmcpICsgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IDUwMHB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICBbZGlyPVwicnRsXCJdIC5tYWluLWRyYXdlci5tZGMtZHJhd2VyLS1vcGVuOm5vdCgubWRjLWRyYXdlci0tY2xvc2luZykgKyAubWRjLWRyYXdlci1hcHAtY29udGVudCwgLm1haW4tZHJhd2VyLm1kYy1kcmF3ZXItLW9wZW46bm90KC5tZGMtZHJhd2VyLS1jbG9zaW5nKSArIC5tZGMtZHJhd2VyLWFwcC1jb250ZW50W2Rpcj1cInJ0bFwiXSB7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1MDBweDsgfSB9XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtZWxldmF0aW9uLWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAZm9yICR6LXZhbHVlIGZyb20gMCB0aHJvdWdoIDI0IHtcbiAgICAubWRjLWVsZXZhdGlvbi0teiN7JHotdmFsdWV9IHtcbiAgICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oJHotdmFsdWUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICB9XG4gIH1cblxuICAubWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXZhbHVlKCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHdpbGwtY2hhbmdlOiAkbWRjLWVsZXZhdGlvbi1wcm9wZXJ0eTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgY29ycmVjdCBDU1MgcnVsZXMgdG8gYW4gZWxlbWVudCB0byBnaXZlIGl0IHRoZSBlbGV2YXRpb24gc3BlY2lmaWVkIGJ5ICR6LXZhbHVlLlxuLy8gVGhlICR6LXZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbi8vIElmICRjb2xvciBoYXMgYW4gYWxwaGEgY2hhbm5lbCwgaXQgd2lsbCBiZSBpZ25vcmVkIGFuZCBvdmVycmlkZGVuLiBUbyBpbmNyZWFzZSB0aGUgb3BhY2l0eSBvZiB0aGUgc2hhZG93LCB1c2Vcbi8vICRvcGFjaXR5LWJvb3N0LlxuQG1peGluIG1kYy1lbGV2YXRpb24oJHotdmFsdWUsICRjb2xvcjogJG1kYy1lbGV2YXRpb24tYmFzZWxpbmUtY29sb3IsICRvcGFjaXR5LWJvb3N0OiAwLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpZiB0eXBlLW9mKCR6LXZhbHVlKSAhPSBudW1iZXIgb3Igbm90IHVuaXRsZXNzKCR6LXZhbHVlKSB7XG4gICAgQGVycm9yIFwiJHotdmFsdWUgbXVzdCBiZSBhIHVuaXRsZXNzIG51bWJlciwgYnV0IHJlY2VpdmVkICcjeyR6LXZhbHVlfSdcIjtcbiAgfVxuXG4gIEBpZiAkei12YWx1ZSA8IDAgb3IgJHotdmFsdWUgPiAyNCB7XG4gICAgQGVycm9yIFwiJHotdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0LCBidXQgcmVjZWl2ZWQgJyN7JHotdmFsdWV9J1wiO1xuICB9XG5cbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgJGNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpO1xuXG4gICR1bWJyYS16LXZhbHVlOiBtYXAtZ2V0KCRtZGMtZWxldmF0aW9uLXVtYnJhLW1hcCwgJHotdmFsdWUpO1xuICAkcGVudW1icmEtei12YWx1ZTogbWFwLWdldCgkbWRjLWVsZXZhdGlvbi1wZW51bWJyYS1tYXAsICR6LXZhbHVlKTtcbiAgJGFtYmllbnQtei12YWx1ZTogbWFwLWdldCgkbWRjLWVsZXZhdGlvbi1hbWJpZW50LW1hcCwgJHotdmFsdWUpO1xuXG4gICR1bWJyYS1jb2xvcjogcmdiYSgkY29sb3IsICRtZGMtZWxldmF0aW9uLXVtYnJhLW9wYWNpdHkgKyAkb3BhY2l0eS1ib29zdCk7XG4gICRwZW51bWJyYS1jb2xvcjogcmdiYSgkY29sb3IsICRtZGMtZWxldmF0aW9uLXBlbnVtYnJhLW9wYWNpdHkgKyAkb3BhY2l0eS1ib29zdCk7XG4gICRhbWJpZW50LWNvbG9yOiByZ2JhKCRjb2xvciwgJG1kYy1lbGV2YXRpb24tYW1iaWVudC1vcGFjaXR5ICsgJG9wYWNpdHktYm9vc3QpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBib3gtc2hhZG93OlxuICAgICAgI3tcIiN7JHVtYnJhLXotdmFsdWV9ICN7JHVtYnJhLWNvbG9yfVwifSxcbiAgICAgICN7XCIjeyRwZW51bWJyYS16LXZhbHVlfSAjeyRwZW51bWJyYS1jb2xvcn1cIn0sXG4gICAgICAjeyRhbWJpZW50LXotdmFsdWV9ICRhbWJpZW50LWNvbG9yO1xuICB9XG59XG5cbi8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgdmFsdWUgZm9yIGEgYHRyYW5zaXRpb25gIHByb3BlcnR5IGZvciBlbGV2YXRpb24uXG4vLyBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gZGlyZWN0bHkgaXMgdXNlZnVsIGluIHNpdHVhdGlvbnMgd2hlcmUgYSBjb21wb25lbnQgbmVlZHMgdG8gdHJhbnNpdGlvblxuLy8gbW9yZSB0aGFuIG9uZSBwcm9wZXJ0eS5cbi8vXG4vLyBgYGBzY3NzXG4vLyAuZm9vIHtcbi8vICAgdHJhbnNpdGlvbjogbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXZhbHVlKCksIG9wYWNpdHkgMTAwbXMgZWFzZTtcbi8vICAgd2lsbC1jaGFuZ2U6ICRtZGMtZWxldmF0aW9uLXByb3BlcnR5LCBvcGFjaXR5O1xuLy8gfVxuLy8gYGBgXG5AZnVuY3Rpb24gbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXZhbHVlKFxuICAkZHVyYXRpb246ICRtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICRlYXNpbmc6ICRtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uXG4pIHtcbiAgQHJldHVybiAjeyRtZGMtZWxldmF0aW9uLXByb3BlcnR5fSAjeyRkdXJhdGlvbn0gI3skZWFzaW5nfTtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuXG4kbWRjLWVsZXZhdGlvbi1iYXNlbGluZS1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG4kbWRjLWVsZXZhdGlvbi11bWJyYS1vcGFjaXR5OiAuMiAhZGVmYXVsdDtcbiRtZGMtZWxldmF0aW9uLXBlbnVtYnJhLW9wYWNpdHk6IC4xNCAhZGVmYXVsdDtcbiRtZGMtZWxldmF0aW9uLWFtYmllbnQtb3BhY2l0eTogLjEyICFkZWZhdWx0O1xuXG4kbWRjLWVsZXZhdGlvbi11bWJyYS1tYXA6IChcbiAgMDogXCIwcHggMHB4IDBweCAwcHhcIixcbiAgMTogXCIwcHggMnB4IDFweCAtMXB4XCIsXG4gIDI6IFwiMHB4IDNweCAxcHggLTJweFwiLFxuICAzOiBcIjBweCAzcHggM3B4IC0ycHhcIixcbiAgNDogXCIwcHggMnB4IDRweCAtMXB4XCIsXG4gIDU6IFwiMHB4IDNweCA1cHggLTFweFwiLFxuICA2OiBcIjBweCAzcHggNXB4IC0xcHhcIixcbiAgNzogXCIwcHggNHB4IDVweCAtMnB4XCIsXG4gIDg6IFwiMHB4IDVweCA1cHggLTNweFwiLFxuICA5OiBcIjBweCA1cHggNnB4IC0zcHhcIixcbiAgMTA6IFwiMHB4IDZweCA2cHggLTNweFwiLFxuICAxMTogXCIwcHggNnB4IDdweCAtNHB4XCIsXG4gIDEyOiBcIjBweCA3cHggOHB4IC00cHhcIixcbiAgMTM6IFwiMHB4IDdweCA4cHggLTRweFwiLFxuICAxNDogXCIwcHggN3B4IDlweCAtNHB4XCIsXG4gIDE1OiBcIjBweCA4cHggOXB4IC01cHhcIixcbiAgMTY6IFwiMHB4IDhweCAxMHB4IC01cHhcIixcbiAgMTc6IFwiMHB4IDhweCAxMXB4IC01cHhcIixcbiAgMTg6IFwiMHB4IDlweCAxMXB4IC01cHhcIixcbiAgMTk6IFwiMHB4IDlweCAxMnB4IC02cHhcIixcbiAgMjA6IFwiMHB4IDEwcHggMTNweCAtNnB4XCIsXG4gIDIxOiBcIjBweCAxMHB4IDEzcHggLTZweFwiLFxuICAyMjogXCIwcHggMTBweCAxNHB4IC02cHhcIixcbiAgMjM6IFwiMHB4IDExcHggMTRweCAtN3B4XCIsXG4gIDI0OiBcIjBweCAxMXB4IDE1cHggLTdweFwiXG4pICFkZWZhdWx0O1xuXG4kbWRjLWVsZXZhdGlvbi1wZW51bWJyYS1tYXA6IChcbiAgMDogXCIwcHggMHB4IDBweCAwcHhcIixcbiAgMTogXCIwcHggMXB4IDFweCAwcHhcIixcbiAgMjogXCIwcHggMnB4IDJweCAwcHhcIixcbiAgMzogXCIwcHggM3B4IDRweCAwcHhcIixcbiAgNDogXCIwcHggNHB4IDVweCAwcHhcIixcbiAgNTogXCIwcHggNXB4IDhweCAwcHhcIixcbiAgNjogXCIwcHggNnB4IDEwcHggMHB4XCIsXG4gIDc6IFwiMHB4IDdweCAxMHB4IDFweFwiLFxuICA4OiBcIjBweCA4cHggMTBweCAxcHhcIixcbiAgOTogXCIwcHggOXB4IDEycHggMXB4XCIsXG4gIDEwOiBcIjBweCAxMHB4IDE0cHggMXB4XCIsXG4gIDExOiBcIjBweCAxMXB4IDE1cHggMXB4XCIsXG4gIDEyOiBcIjBweCAxMnB4IDE3cHggMnB4XCIsXG4gIDEzOiBcIjBweCAxM3B4IDE5cHggMnB4XCIsXG4gIDE0OiBcIjBweCAxNHB4IDIxcHggMnB4XCIsXG4gIDE1OiBcIjBweCAxNXB4IDIycHggMnB4XCIsXG4gIDE2OiBcIjBweCAxNnB4IDI0cHggMnB4XCIsXG4gIDE3OiBcIjBweCAxN3B4IDI2cHggMnB4XCIsXG4gIDE4OiBcIjBweCAxOHB4IDI4cHggMnB4XCIsXG4gIDE5OiBcIjBweCAxOXB4IDI5cHggMnB4XCIsXG4gIDIwOiBcIjBweCAyMHB4IDMxcHggM3B4XCIsXG4gIDIxOiBcIjBweCAyMXB4IDMzcHggM3B4XCIsXG4gIDIyOiBcIjBweCAyMnB4IDM1cHggM3B4XCIsXG4gIDIzOiBcIjBweCAyM3B4IDM2cHggM3B4XCIsXG4gIDI0OiBcIjBweCAyNHB4IDM4cHggM3B4XCJcbikgIWRlZmF1bHQ7XG5cbiRtZGMtZWxldmF0aW9uLWFtYmllbnQtbWFwOiAoXG4gIDA6IFwiMHB4IDBweCAwcHggMHB4XCIsXG4gIDE6IFwiMHB4IDFweCAzcHggMHB4XCIsXG4gIDI6IFwiMHB4IDFweCA1cHggMHB4XCIsXG4gIDM6IFwiMHB4IDFweCA4cHggMHB4XCIsXG4gIDQ6IFwiMHB4IDFweCAxMHB4IDBweFwiLFxuICA1OiBcIjBweCAxcHggMTRweCAwcHhcIixcbiAgNjogXCIwcHggMXB4IDE4cHggMHB4XCIsXG4gIDc6IFwiMHB4IDJweCAxNnB4IDFweFwiLFxuICA4OiBcIjBweCAzcHggMTRweCAycHhcIixcbiAgOTogXCIwcHggM3B4IDE2cHggMnB4XCIsXG4gIDEwOiBcIjBweCA0cHggMThweCAzcHhcIixcbiAgMTE6IFwiMHB4IDRweCAyMHB4IDNweFwiLFxuICAxMjogXCIwcHggNXB4IDIycHggNHB4XCIsXG4gIDEzOiBcIjBweCA1cHggMjRweCA0cHhcIixcbiAgMTQ6IFwiMHB4IDVweCAyNnB4IDRweFwiLFxuICAxNTogXCIwcHggNnB4IDI4cHggNXB4XCIsXG4gIDE2OiBcIjBweCA2cHggMzBweCA1cHhcIixcbiAgMTc6IFwiMHB4IDZweCAzMnB4IDVweFwiLFxuICAxODogXCIwcHggN3B4IDM0cHggNnB4XCIsXG4gIDE5OiBcIjBweCA3cHggMzZweCA2cHhcIixcbiAgMjA6IFwiMHB4IDhweCAzOHB4IDdweFwiLFxuICAyMTogXCIwcHggOHB4IDQwcHggN3B4XCIsXG4gIDIyOiBcIjBweCA4cHggNDJweCA3cHhcIixcbiAgMjM6IFwiMHB4IDlweCA0NHB4IDhweFwiLFxuICAyNDogXCIwcHggOXB4IDQ2cHggOHB4XCJcbikgIWRlZmF1bHQ7XG5cbi8vIFRoZSBjc3MgcHJvcGVydHkgdXNlZCBmb3IgZWxldmF0aW9uLiBJbiBtb3N0IGNhc2VzIHRoaXMgc2hvdWxkIG5vdCBiZSBjaGFuZ2VkLiBJdCBpcyBleHBvc2VkXG4vLyBhcyBhIHZhcmlhYmxlIGZvciBhYnN0cmFjdGlvbiAvIGVhc3kgdXNlIHdoZW4gbmVlZGluZyB0byByZWZlcmVuY2UgdGhlIHByb3BlcnR5IGRpcmVjdGx5LCBmb3Jcbi8vIGV4YW1wbGUgaW4gYSBgd2lsbC1jaGFuZ2VgIHJ1bGUuXG4kbWRjLWVsZXZhdGlvbi1wcm9wZXJ0eTogYm94LXNoYWRvdyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZHVyYXRpb24gdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb246IDI4MG1zICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBlYXNpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuLy8gTURDIFJpcHBsZSBrZXlmcmFtZXMgYXJlIHNwbGl0IGludG8gdGhlaXIgb3duIGZpbGUgc28gdGhhdCBfbWl4aW5zLnNjc3MgY2FuIHJlbHkgb24gdGhlbS5cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLXJpcHBsZS1rZXlmcmFtZXNfIHtcbiAgQGtleWZyYW1lcyBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgICAvLyBOT1RFOiBGb3IgdGhlc2Uga2V5ZnJhbWVzLCB3ZSBkbyBub3QgbmVlZCBjdXN0b20gcHJvcGVydHkgZmFsbGJhY2tzIGJlY2F1c2UgdGhleSBhcmUgb25seVxuICAgICAgLy8gdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGAubWRjLXJpcHBsZS11cGdyYWRlZGAuIFNpbmNlIE1EQ1JpcHBsZUZvdW5kYXRpb24gY2hlY2tzIHRvIGVuc3VyZVxuICAgICAgLy8gdGhhdCBjdXN0b20gcHJvcGVydGllcyBhcmUgc3VwcG9ydGVkIHdpdGhpbiB0aGUgYnJvd3NlciBiZWZvcmUgYWRkaW5nIHRoaXMgY2xhc3MsIHdlIGNhblxuICAgICAgLy8gc2FmZWx5IHVzZSB0aGVtIHdpdGhvdXQgYSBmYWxsYmFjay5cbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0LCAwKSkgc2NhbGUoMSk7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIHtcbiAgICBmcm9tIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgb3BhY2l0eTogdmFyKC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5LCAwKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgb3BhY2l0eTogdmFyKC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5LCAwKTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtYW5pbWF0aW9uLWRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAuMiwgMSkgIWRlZmF1bHQ7XG4kbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpICFkZWZhdWx0O1xuJG1kYy1hbmltYXRpb24tYWNjZWxlcmF0aW9uLWN1cnZlLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC40LCAwLCAxLCAxKSAhZGVmYXVsdDtcbiRtZGMtYW5pbWF0aW9uLXNoYXJwLWN1cnZlLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC40LCAwLCAuNiwgMSkgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTYgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vYmFzZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4va2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1yaXBwbGUtY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSByaXBwbGUtc3VyZmFjZVxuXG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkKCRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAmW2RhdGEtbWRjLXJpcHBsZS1pcy11bmJvdW5kZWRdIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLXVuYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcyhwcmltYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuXG4gICAgJi0tYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMoc2Vjb25kYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuQG1peGluIG1kYy1yaXBwbGUtY29tbW9uKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBFbnN1cmUgdGhhdCBzdHlsZXMgbmVlZGVkIGJ5IGFueSBjb21wb25lbnQgdXNpbmcgTURDIFJpcHBsZSBhcmUgZW1pdHRlZCwgYnV0IG9ubHkgb25jZS5cbiAgLy8gKEV2ZXJ5IGNvbXBvbmVudCB1c2luZyBNREMgUmlwcGxlIGltcG9ydHMgdGhlc2UgbWl4aW5zLCBidXQgZG9lc24ndCBuZWNlc3NhcmlseSBpbXBvcnRcbiAgLy8gbWRjLXJpcHBsZS5zY3NzLilcbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICBAaW5jbHVkZSBtZGMtYmFzZS1lbWl0LW9uY2UoXCJtZGMtcmlwcGxlL2NvbW1vbi9hbmltYXRpb25cIikge1xuICAgICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1rZXlmcmFtZXNfO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgQGluY2x1ZGUgbWRjLWJhc2UtZW1pdC1vbmNlKFwibWRjLXJpcHBsZS9jb21tb24vc3RydWN0dXJlXCIpIHtcbiAgICAgIC8vIFN0eWxlcyB1c2VkIHRvIGRldGVjdCBidWdneSBiZWhhdmlvciBvZiBDU1MgY3VzdG9tIHByb3BlcnRpZXMgaW4gRWRnZS5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9lbi11cy9taWNyb3NvZnQtZWRnZS9wbGF0Zm9ybS9pc3N1ZXMvMTE0OTU0NDgvXG4gICAgICAvLyBUaGlzIGlzIGluY2x1ZGVkIGluIF9taXhpbnMuc2NzcyByYXRoZXIgdGhhbiBtZGMtcmlwcGxlLnNjc3Mgc28gdGhhdCBpdCB3aWxsIGJlXG4gICAgICAvLyBwcmVzZW50IGZvciBvdGhlciBjb21wb25lbnRzIHdoaWNoIHJlbHkgb24gcmlwcGxlIGFzIHdlbGwgYXMgbWRjLXJpcHBsZSBpdHNlbGYuXG4gICAgICAubWRjLXJpcHBsZS1zdXJmYWNlLS10ZXN0LWVkZ2UtdmFyLWJ1ZyB7XG4gICAgICAgIC0tbWRjLXJpcHBsZS1zdXJmYWNlLXRlc3QtZWRnZS12YXI6IDFweCBzb2xpZCAjMDAwO1xuXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGJvcmRlcjogdmFyKC0tbWRjLXJpcHBsZS1zdXJmYWNlLXRlc3QtZWRnZS12YXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gICAgLS1tZGMtcmlwcGxlLWxlZnQ6IDA7XG4gICAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQ6IDA7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcblxuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB9XG5cbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgLy8gQWxzbyB0cmFuc2l0aW9uIGJhY2tncm91bmQtY29sb3IgdG8gYXZvaWQgdW5uYXR1cmFsIGNvbG9yIGZsYXNoZXMgd2hlbiB0b2dnbGluZyBhY3RpdmF0ZWQvc2VsZWN0ZWQgc3RhdGVcbiAgICAgIHRyYW5zaXRpb246XG4gICAgICAgIG9wYWNpdHkgJG1kYy1zdGF0ZXMtd2FzaC1kdXJhdGlvbiBsaW5lYXIsXG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgJG1kYy1zdGF0ZXMtd2FzaC1kdXJhdGlvbiBsaW5lYXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHotaW5kZXg6IDE7IC8vIEVuc3VyZSB0aGF0IHRoZSByaXBwbGUgd2FzaCBmb3IgaG92ZXIvZm9jdXMgc3RhdGVzIGlzIGRpc3BsYXllZCBvbiB0b3Agb2YgcG9zaXRpb25lZCBjaGlsZCBlbGVtZW50c1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbW1vbiBzdHlsZXMgZm9yIHVwZ3JhZGVkIHN1cmZhY2VzIChzb21lIG9mIHRoZXNlIGRlcGVuZCBvbiBjdXN0b20gcHJvcGVydGllcyBzZXQgdmlhIEpTIG9yIG90aGVyIG1peGlucylcblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB0b3A6IDA7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIDApO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIGFuaW1hdGlvbjpcbiAgICAgICAgbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gJG1kYy1yaXBwbGUtdHJhbnNsYXRlLWR1cmF0aW9uIGZvcndhcmRzLFxuICAgICAgICBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gJG1kYy1yaXBwbGUtZmFkZS1pbi1kdXJhdGlvbiBmb3J3YXJkcztcbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCAkbWRjLXJpcHBsZS1mYWRlLW91dC1kdXJhdGlvbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gUmV0YWluIHRyYW5zZm9ybSBmcm9tIG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIGFjdGl2YXRpb25cbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGlmIGFscGhhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvcikpID4gMCB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvciwgJGVkZ2VPcHRPdXQ6IHRydWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIElmIGEgY29sb3Igd2l0aCAwIGFscGhhIGlzIHNwZWNpZmllZCwgZG9uJ3QgcmVuZGVyIHRoZSByaXBwbGUgcHNldWRvLWVsZW1lbnRzIGF0IGFsbC5cbiAgICAgICAgLy8gVGhpcyBhdm9pZHMgdW5uZWNlc3NhcnkgdHJhbnNpdGlvbnMgYW5kIG92ZXJmbG93LlxuICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN0YXRlcy1ob3Zlci1vcGFjaXR5KCRvcGFjaXR5LCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIEJhY2tncm91bmQgd2FzaCBzdHlsZXMsIGZvciBib3RoIENTUy1vbmx5IGFuZCB1cGdyYWRlZCBzdGF0ZWZ1bCBzdXJmYWNlc1xuICAmOmhvdmVyOjpiZWZvcmUge1xuICAgIC8vIE9wYWNpdHkgZmFsbHMgdW5kZXIgY29sb3IgYmVjYXVzZSB0aGUgY2hvc2VuIG9wYWNpdHkgaXMgY29sb3ItZGVwZW5kZW50IGluIHR5cGljYWwgdXNhZ2VcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdGF0ZXMtZm9jdXMtb3BhY2l0eSgkb3BhY2l0eSwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6IGZhbHNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gIC8vIE9wYWNpdHkgZmFsbHMgdW5kZXIgY29sb3IgYmVjYXVzZSB0aGUgY2hvc2VuIG9wYWNpdHkgaXMgY29sb3ItZGVwZW5kZW50IGluIHR5cGljYWwgdXNhZ2VcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLy8gRm9jdXMgb3ZlcnJpZGVzIGhvdmVyIGJ5IHJldXNpbmcgdGhlIDo6YmVmb3JlIHBzZXVkby1lbGVtZW50LlxuICAvLyA6Zm9jdXMtd2l0aGluIGdlbmVyYWxseSB3b3JrcyBvbiBub24tTVMgYnJvd3NlcnMgYW5kIG1hdGNoZXMgd2hlbiBhICpjaGlsZCogb2YgdGhlIGVsZW1lbnQgaGFzIGZvY3VzLlxuICAvLyBJdCBpcyB1c2VmdWwgZm9yIGNhc2VzIHdoZXJlIGEgY29tcG9uZW50IGhhcyBhIGZvY3VzYWJsZSBlbGVtZW50IHdpdGhpbiB0aGUgcm9vdCBub2RlLCBlLmcuIHRleHQgZmllbGQsXG4gIC8vIGJ1dCB1bmRlc2lyYWJsZSBpbiBnZW5lcmFsIGluIGNhc2Ugb2YgbmVzdGVkIHN0YXRlZnVsIGNvbXBvbmVudHMuXG4gIC8vIFdlIHVzZSBhIG1vZGlmaWVyIGNsYXNzIGZvciBKUy1lbmFibGVkIHN1cmZhY2VzIHRvIHN1cHBvcnQgYWxsIHVzZSBjYXNlcyBpbiBhbGwgYnJvd3NlcnMuXG4gICRjc3NPbmx5Rm9jdXNTZWxlY3RvcjogaWYoXG4gICAgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsXG4gICAgXCImOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgJjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzLXdpdGhpbjo6YmVmb3JlXCIsXG4gICAgXCImOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZVwiXG4gICk7XG5cbiAgI3skY3NzT25seUZvY3VzU2VsZWN0b3J9LFxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICAvLyBOb3RlIHRoYXQgdGhpcyBkdXJhdGlvbiBpcyBvbmx5IGVmZmVjdGl2ZSBvbiBmb2N1cywgbm90IGJsdXJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdGF0ZXMtcHJlc3Mtb3BhY2l0eSgkb3BhY2l0eSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAvLyBTdHlsZXMgZm9yIG5vbi11cGdyYWRlZCAoQ1NTLW9ubHkpIHN0YXRlZnVsIHN1cmZhY2VzXG5cbiAgJjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpIHtcbiAgICAvLyBBcHBseSBwcmVzcyBhZGRpdGl2ZWx5IGJ5IHVzaW5nIHRoZSA6OmFmdGVyIHBzZXVkby1lbGVtZW50XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkbWRjLXJpcHBsZS1mYWRlLW91dC1kdXJhdGlvbiBsaW5lYXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjphY3RpdmU6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICRtZGMtcmlwcGxlLWZhZGUtaW4tZHVyYXRpb247XG4gICAgICB9XG5cbiAgICAgIC8vIE9wYWNpdHkgZmFsbHMgdW5kZXIgY29sb3IgYmVjYXVzZSB0aGUgY2hvc2VuIG9wYWNpdHkgaXMgY29sb3ItZGVwZW5kZW50IGluIHR5cGljYWwgdXNhZ2VcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogI3skb3BhY2l0eX07XG4gICAgfVxuICB9XG59XG5cbi8vIFNpbXBsZSBtaXhpbiBmb3IgYmFzZSBzdGF0ZXMgd2hpY2ggYXV0b21hdGljYWxseSBzZWxlY3RzIG9wYWNpdHkgdmFsdWVzIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGluayBjb2xvciBpc1xuLy8gbGlnaHQgb3IgZGFyay5cbkBtaXhpbiBtZGMtc3RhdGVzKFxuICAkY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLFxuICAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogZmFsc2UsXG4gICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKClcbikge1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWludGVyYWN0aW9uc18oJGNvbG9yLCAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudCwgMCwgJHF1ZXJ5KTtcbn1cblxuLy8gU2ltcGxlIG1peGluIGZvciBhY3RpdmF0ZWQgc3RhdGVzIHdoaWNoIGF1dG9tYXRpY2FsbHkgc2VsZWN0cyBvcGFjaXR5IHZhbHVlcyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBpbmsgY29sb3IgaXNcbi8vIGxpZ2h0IG9yIGRhcmsuXG5AbWl4aW4gbWRjLXN0YXRlcy1hY3RpdmF0ZWQoJGNvbG9yLCAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogZmFsc2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRhY3RpdmF0ZWQtb3BhY2l0eTogbWRjLXN0YXRlcy1vcGFjaXR5KCRjb2xvciwgYWN0aXZhdGVkKTtcblxuICAmLS1hY3RpdmF0ZWQge1xuICAgIC8vIFN0eWxlbGludCBzZWVtcyB0byB0aGluayB0aGF0ICcmJyBxdWFsaWZpZXMgYXMgYSB0eXBlIHNlbGVjdG9yIGhlcmU/XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIC8vIE9wYWNpdHkgZmFsbHMgdW5kZXIgY29sb3IgYmVjYXVzZSB0aGUgY2hvc2VuIG9wYWNpdHkgaXMgY29sb3ItZGVwZW5kZW50LlxuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICBvcGFjaXR5OiAkYWN0aXZhdGVkLW9wYWNpdHk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1pbnRlcmFjdGlvbnNfKCRjb2xvciwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsICRhY3RpdmF0ZWQtb3BhY2l0eSwgJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLyBTaW1wbGUgbWl4aW4gZm9yIHNlbGVjdGVkIHN0YXRlcyB3aGljaCBhdXRvbWF0aWNhbGx5IHNlbGVjdHMgb3BhY2l0eSB2YWx1ZXMgYmFzZWQgb24gd2hldGhlciB0aGUgaW5rIGNvbG9yIGlzXG4vLyBsaWdodCBvciBkYXJrLlxuQG1peGluIG1kYy1zdGF0ZXMtc2VsZWN0ZWQoJGNvbG9yLCAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogZmFsc2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRzZWxlY3RlZC1vcGFjaXR5OiBtZGMtc3RhdGVzLW9wYWNpdHkoJGNvbG9yLCBzZWxlY3RlZCk7XG5cbiAgJi0tc2VsZWN0ZWQge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAgICY6OmJlZm9yZSB7XG4gICAgICAvLyBPcGFjaXR5IGZhbGxzIHVuZGVyIGNvbG9yIGJlY2F1c2UgdGhlIGNob3NlbiBvcGFjaXR5IGlzIGNvbG9yLWRlcGVuZGVudC5cbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgb3BhY2l0eTogJHNlbGVjdGVkLW9wYWNpdHk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1pbnRlcmFjdGlvbnNfKCRjb2xvciwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsICRzZWxlY3RlZC1vcGFjaXR5LCAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkKCRyYWRpdXM6IDEwMCUsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydXR1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydXR1cmUpIHtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSAjeyRyYWRpdXN9KTtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skcmFkaXVzfSk7XG4gICAgICB3aWR0aDogJHJhZGl1cyAqIDI7XG4gICAgICBoZWlnaHQ6ICRyYWRpdXMgKiAyO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydXR1cmUpIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXJpcHBsZS1yYWRpdXMtdW5ib3VuZGVkKCRyYWRpdXM6IDEwMCUsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydXR1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydXR1cmUpIHtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSAjeyRyYWRpdXMgLyAyfSk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHJhZGl1cyAvIDJ9KTtcbiAgICAgIHdpZHRoOiAkcmFkaXVzO1xuICAgICAgaGVpZ2h0OiAkcmFkaXVzO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlLFxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnV0dXJlKSB7XG4gICAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCBjYWxjKDUwJSAtICN7JHJhZGl1cyAvIDJ9KSk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIGNhbGMoNTAlIC0gI3skcmFkaXVzIC8gMn0pKTtcbiAgICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydXR1cmUpIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN0YXRlcy1pbnRlcmFjdGlvbnNfKFxuICAkY29sb3IsXG4gICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LFxuICAkb3BhY2l0eS1tb2RpZmllcjogMCxcbiAgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKVxuKSB7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkY29sb3IsICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaG92ZXItb3BhY2l0eShtZGMtc3RhdGVzLW9wYWNpdHkoJGNvbG9yLCBob3ZlcikgKyAkb3BhY2l0eS1tb2RpZmllciwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1mb2N1cy1vcGFjaXR5KFxuICAgIG1kYy1zdGF0ZXMtb3BhY2l0eSgkY29sb3IsIGZvY3VzKSArICRvcGFjaXR5LW1vZGlmaWVyLFxuICAgICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LFxuICAgICRxdWVyeVxuICApO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLXByZXNzLW9wYWNpdHkobWRjLXN0YXRlcy1vcGFjaXR5KCRjb2xvciwgcHJlc3MpICsgJG9wYWNpdHktbW9kaWZpZXIsICRxdWVyeSk7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTYgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy1yaXBwbGUtZmFkZS1pbi1kdXJhdGlvbjogNzVtcyAhZGVmYXVsdDtcbiRtZGMtcmlwcGxlLWZhZGUtb3V0LWR1cmF0aW9uOiAxNTBtcyAhZGVmYXVsdDtcbiRtZGMtcmlwcGxlLXRyYW5zbGF0ZS1kdXJhdGlvbjogMjI1bXMgIWRlZmF1bHQ7XG4kbWRjLXN0YXRlcy13YXNoLWR1cmF0aW9uOiAxNW1zICFkZWZhdWx0O1xuXG4vLyBOb3RlcyBvbiBzdGF0ZXM6XG4vLyAqIGZvY3VzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBob3ZlciAoaS5lLiBpZiBhbiBlbGVtZW50IGlzIGJvdGggZm9jdXNlZCBhbmQgaG92ZXJlZCwgb25seSBmb2N1cyB2YWx1ZSBhcHBsaWVzKVxuLy8gKiBwcmVzcyBzdGF0ZSBhcHBsaWVzIHRvIGEgc2VwYXJhdGUgcHNldWRvLWVsZW1lbnQsIHNvIGl0IGhhcyBhbiBhZGRpdGl2ZSBlZmZlY3Qgb24gdG9wIG9mIG90aGVyIHN0YXRlc1xuLy8gKiBzZWxlY3RlZC9hY3RpdmF0ZWQgYXJlIGFwcGxpZWQgYWRkaXRpdmVseSB0byBob3Zlci9mb2N1cyB2aWEgY2FsY3VsYXRpb25zIGF0IHByZXByb2Nlc3NpbmcgdGltZVxuXG4kbWRjLXJpcHBsZS1kYXJrLWluay1vcGFjaXRpZXM6IChcbiAgaG92ZXI6IC4wNCxcbiAgZm9jdXM6IC4xMixcbiAgcHJlc3M6IC4xMixcbiAgc2VsZWN0ZWQ6IC4wOCxcbiAgYWN0aXZhdGVkOiAuMTJcbikgIWRlZmF1bHQ7XG5cbiRtZGMtcmlwcGxlLWxpZ2h0LWluay1vcGFjaXRpZXM6IChcbiAgaG92ZXI6IC4wOCxcbiAgZm9jdXM6IC4yNCxcbiAgcHJlc3M6IC4yNCxcbiAgc2VsZWN0ZWQ6IC4xNixcbiAgYWN0aXZhdGVkOiAuMjRcbikgIWRlZmF1bHQ7XG5cbi8vIExlZ2FjeVxuXG4kbWRjLXJpcHBsZS1wcmVzc2VkLWRhcmstaW5rLW9wYWNpdHk6IC4xNiAhZGVmYXVsdDtcbiRtZGMtcmlwcGxlLXByZXNzZWQtbGlnaHQtaW5rLW9wYWNpdHk6IC4zMiAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vZWxldmF0aW9uL21peGluc1wiO1xuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy9cbi8vIFB1YmxpY1xuLy9cblxuQG1peGluIG1kYy1jYXJkLWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLWNhcmQtd2l0aG91dC1yaXBwbGUoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWNhcmQtcmlwcGxlKCRxdWVyeSk7XG59XG5cbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcbi8vIGNhcmQgc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtY2FyZC1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiBtZGMtY2FyZC13aXRob3V0LXJpcHBsZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGNhcmRcblxuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLWNhcmQge1xuICAgIEBpbmNsdWRlIG1kYy1jYXJkLXNoYXBlLXJhZGl1cyhtZWRpdW0sICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtY2FyZC1maWxsLWNvbG9yKHN1cmZhY2UsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbigxLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWNhcmQtY29udGFpbmVyLWxheW91dF87XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkLS1vdXRsaW5lZCB7XG4gICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbigwLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWNhcmQtb3V0bGluZSgkbWRjLWNhcmQtb3V0bGluZS1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLy9cbiAgLy8gTWVkaWFcbiAgLy9cblxuICAubWRjLWNhcmRfX21lZGlhIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBDaGlsZCBlbGVtZW50IGBfX21lZGlhLWNvbnRlbnRgIGhhcyBgcG9zaXRpb246IGFic29sdXRlYFxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWNhcmRfX21lZGlhOmZpcnN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fbWVkaWE6bGFzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcbiAgICB9XG4gIH1cblxuICAubWRjLWNhcmRfX21lZGlhLS1zcXVhcmUge1xuICAgIEBpbmNsdWRlIG1kYy1jYXJkLW1lZGlhLWFzcGVjdC1yYXRpbygxLCAxLCAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1jYXJkX19tZWRpYS0tMTYtOSB7XG4gICAgQGluY2x1ZGUgbWRjLWNhcmQtbWVkaWEtYXNwZWN0LXJhdGlvKDE2LCA5LCAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1jYXJkX19tZWRpYS1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG4gIH1cblxuICAvL1xuICAvLyBQcmltYXJ5IGFjdGlvblxuICAvL1xuXG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtY2FyZC1jb250YWluZXItbGF5b3V0XztcblxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBOZWVkZWQgdG8gcHJldmVudCB0aGUgcmlwcGxlIHdhc2ggZnJvbSBvdmVyZmxvd2luZyB0aGUgY29udGFpbmVyIGluIElFIGFuZCBFZGdlXG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246Zmlyc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjpsYXN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xuICAgIH1cbiAgfVxuXG4gIC8vXG4gIC8vIEFjdGlvbiByb3dcbiAgLy9cblxuICAubWRjLWNhcmRfX2FjdGlvbnMge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtY2FyZC1hY3Rpb25zLWxheW91dF87XG5cbiAgICAgIG1pbi1oZWlnaHQ6IDUycHg7XG4gICAgICBwYWRkaW5nOiA4cHg7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19hY3Rpb25zLS1mdWxsLWJsZWVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cblxuICAubWRjLWNhcmRfX2FjdGlvbi1idXR0b25zLFxuICAubWRjLWNhcmRfX2FjdGlvbi1pY29ucyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1jYXJkLWFjdGlvbnMtbGF5b3V0XztcbiAgICB9XG4gIH1cblxuICAubWRjLWNhcmRfX2FjdGlvbi1pY29ucyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRtZGMtY2FyZC1hY3Rpb24taWNvbi1jb2xvcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19hY3Rpb24tYnV0dG9ucyArIC5tZGMtY2FyZF9fYWN0aW9uLWljb25zIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgMTZweCk7XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gQWN0aW9uIGl0ZW1zXG4gIC8vXG5cbiAgLm1kYy1jYXJkX19hY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtY2FyZC1hY3Rpb25zLWxheW91dF8oaW5saW5lLWZsZXgpO1xuXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvL1xuICAvLyBBY3Rpb24gYnV0dG9uc1xuICAvL1xuXG4gIC5tZGMtY2FyZF9fYWN0aW9uLS1idXR0b24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCByaWdodCwgOHB4KTtcblxuICAgICAgcGFkZGluZzogMCA4cHg7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIHJpZ2h0LCAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWNhcmRfX2FjdGlvbnMtLWZ1bGwtYmxlZWQgLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gQWN0aW9uIGljb25zXG4gIC8vXG5cbiAgLm1kYy1jYXJkX19hY3Rpb24tLWljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBJY29uIGJ1dHRvbnMgYXJlIHRhbGxlciB0aGFuIGJ1dHRvbnMsIHNvIHdlIG5lZWQgdG8gYWRqdXN0IHRoZWlyIG1hcmdpbnMgdG8gcHJldmVudCB0aGUgYWN0aW9uIHJvdyBmcm9tXG4gICAgICAvLyBleHBhbmRpbmcuXG4gICAgICBtYXJnaW46IC02cHggMDtcblxuICAgICAgLy8gU2FtZSBwYWRkaW5nIGFzIG1kYy1pY29uLWJ1dHRvbi5cbiAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19hY3Rpb24tLWljb246bm90KDpkaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkbWRjLWNhcmQtYWN0aW9uLWljb24tY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG59XG5cbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcbi8vIGNhcmQgc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtY2FyZC1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiBtZGMtY2FyZC1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtcmlwcGxlLWNvbW1vbigkcXVlcnkpO1xuXG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZSgkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQoJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2FyZC1maWxsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNhcmQtb3V0bGluZSgkY29sb3IsICR0aGlja25lc3M6ICRtZGMtY2FyZC1vdXRsaW5lLXdpZHRoLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgYm9yZGVyLXdpZHRoOiAkdGhpY2tuZXNzO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2FyZC1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmUsICRxdWVyeTogJHF1ZXJ5KTtcbn1cblxuQG1peGluIG1kYy1jYXJkLW1lZGlhLWFzcGVjdC1yYXRpbygkeCwgJHksICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBUaGlzIGNsZXZlciB0cmljayBicm91Z2h0IHRvIHlvdSBieTogaHR0cDovL3d3dy5tYWRlbXlkYXkuZGUvY3NzLWhlaWdodC1lcXVhbHMtd2lkdGgtd2l0aC1wdXJlLWNzcy5odG1sXG4gICAgICBtYXJnaW4tdG9wOiBwZXJjZW50YWdlKCR5IC8gJHgpO1xuICAgIH1cbiAgfVxufVxuXG4vL1xuLy8gUHJpdmF0ZVxuLy9cblxuQG1peGluIG1kYy1jYXJkLWNvbnRhaW5lci1sYXlvdXRfIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuQG1peGluIG1kYy1jYXJkLWFjdGlvbnMtbGF5b3V0XygkZGlzcGxheTogZmxleCkge1xuICBkaXNwbGF5OiAkZGlzcGxheTtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvdmFyaWFibGVzXCI7XG5cbiRtZGMtY2FyZC1hY3Rpb24taWNvbi1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgbWRjLXRoZW1lLXRleHQtZW1waGFzaXMobWVkaXVtKSkgIWRlZmF1bHQ7XG4kbWRjLWNhcmQtb3V0bGluZS1jb2xvcjogbWl4KG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCBtZGMtdGhlbWUtcHJvcC12YWx1ZShzdXJmYWNlKSwgMTIlKSAhZGVmYXVsdDtcbiRtZGMtY2FyZC1vdXRsaW5lLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLWNoZWNrYm94LWNvbnRhaW5lci1rZXlmcmFtZXNfKFxuICAkZnJvbS1zdHJva2UtY29sb3IsXG4gICR0by1zdHJva2UtY29sb3IsXG4gICRmcm9tLWZpbGwtY29sb3IsXG4gICR0by1maWxsLWNvbG9yLFxuICAkdWlkKSB7XG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZC0jeyR1aWR9IHtcbiAgICAwJSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICRmcm9tLXN0cm9rZS1jb2xvcik7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkZnJvbS1maWxsLWNvbG9yKTtcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkdG8tc3Ryb2tlLWNvbG9yKTtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICR0by1maWxsLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1mYWRlLW91dC1iYWNrZ3JvdW5kLSN7JHVpZH0ge1xuICAgIDAlLFxuICAgIDgwJSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICR0by1zdHJva2UtY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJHRvLWZpbGwtY29sb3IpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkZnJvbS1zdHJva2UtY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGZyb20tZmlsbC1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtbWFyay1rZXlmcmFtZXNfIHtcbiAgQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtdW5jaGVja2VkLWNoZWNrZWQtY2hlY2ttYXJrLXBhdGgge1xuICAgIDAlLFxuICAgIDUwJSB7XG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogJG1kYy1jaGVja2JveC1tYXJrLXBhdGgtbGVuZ3RoXztcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1kYy1hbmltYXRpb24tZGVjZWxlcmF0aW9uLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LXVuY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFyayB7XG4gICAgMCUsXG4gICAgNjguMiUge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgfVxuXG4gICAgNjguMiUge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAsIDEpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtY2hlY2tlZC11bmNoZWNrZWQtY2hlY2ttYXJrLXBhdGgge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1kYy1hbmltYXRpb24tYWNjZWxlcmF0aW9uLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6ICRtZGMtY2hlY2tib3gtbWFyay1wYXRoLWxlbmd0aF8gKiAtMTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtY2hlY2ttYXJrIHtcbiAgICBmcm9tIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICRtZGMtYW5pbWF0aW9uLWRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtY2hlY2ttYXJrIHtcbiAgICBmcm9tIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICRtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWVhc2luZy1mdW5jdGlvbl87XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmsge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbWRjLWFuaW1hdGlvbi1kZWNlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1taXhlZG1hcmsge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtZWFzaW5nLWZ1bmN0aW9uXztcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLXVuY2hlY2tlZC1taXhlZG1hcmsge1xuICAgIDAlIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAzMi44JSxcbiAgICAxMDAlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vcmlwcGxlL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL3ZhcmlhYmxlc1wiO1xuXG4kbWRjLWNoZWNrYm94LW1hcmstY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXByaW1hcnkpICFkZWZhdWx0O1xuJG1kYy1jaGVja2JveC1ib3JkZXItY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC41NCkgIWRlZmF1bHQ7XG4kbWRjLWNoZWNrYm94LWRpc2FibGVkLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMjYpICFkZWZhdWx0O1xuJG1kYy1jaGVja2JveC1iYXNlbGluZS10aGVtZS1jb2xvcjogc2Vjb25kYXJ5ICFkZWZhdWx0O1xuXG4kbWRjLWNoZWNrYm94LXRvdWNoLWFyZWE6IDQwcHggIWRlZmF1bHQ7XG4kbWRjLWNoZWNrYm94LXNpemU6IDE4cHggIWRlZmF1bHQ7XG4kbWRjLWNoZWNrYm94LXVpLXBjdDogcGVyY2VudGFnZSgkbWRjLWNoZWNrYm94LXNpemUgLyAkbWRjLWNoZWNrYm94LXRvdWNoLWFyZWEpICFkZWZhdWx0O1xuJG1kYy1jaGVja2JveC1tYXJrLXN0cm9rZS1zaXplOiAyLzE1ICogJG1kYy1jaGVja2JveC1zaXplICFkZWZhdWx0O1xuJG1kYy1jaGVja2JveC1ib3JkZXItd2lkdGg6IDJweCAhZGVmYXVsdDtcbiRtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbjogOTBtcyAhZGVmYXVsdDtcbiRtZGMtY2hlY2tib3gtaXRlbS1zcGFjaW5nOiA0cHggIWRlZmF1bHQ7XG4kbWRjLWNoZWNrYm94LWZvY3VzLWluZGljYXRvci1vcGFjaXR5OiBtYXAtZ2V0KCRtZGMtcmlwcGxlLWRhcmstaW5rLW9wYWNpdGllcywgZm9jdXMpICFkZWZhdWx0O1xuXG4vLyBNYW51YWwgY2FsY3VsYXRpb24gZG9uZSBvbiBTVkdcbiRtZGMtY2hlY2tib3gtbWFyay1wYXRoLWxlbmd0aF86IDI5Ljc4MzMzODUgIWRlZmF1bHQ7XG4kbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1lYXNpbmctZnVuY3Rpb25fOiBjdWJpYy1iZXppZXIoLjE0LCAwLCAwLCAxKSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vYW5pbWF0aW9uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vXG4vLyBQdWJsaWNcbi8vXG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtY2hlY2tib3gtd2l0aG91dC1yaXBwbGUoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LXJpcHBsZSgkcXVlcnkpO1xufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBjaGVja2JveCBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1jaGVja2JveC1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiBtZGMtY2hlY2tib3gtd2l0aG91dC1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBjaGVja2JveFxuXG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LW1hcmsta2V5ZnJhbWVzXztcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3gge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3gtYmFzZV87XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LWNvbnRhaW5lci1jb2xvcnMoJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtY2hlY2tib3gtaW5rLWNvbG9yKCRtZGMtY2hlY2tib3gtbWFyay1jb2xvciwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LWZvY3VzLWluZGljYXRvci1jb2xvcigkbWRjLWNoZWNrYm94LWJhc2VsaW5lLXRoZW1lLWNvbG9yLCAkcXVlcnkpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3gtZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yXztcbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG1hcmdpbjogMCAxcHg7IC8vIEV4dHJhIGhvcml6b250YWwgc3BhY2UgYXJvdW5kIG1peGVkbWFyayBzeW1ib2wuXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTmVlZGVkIHRvIGRpc2FibGUgaG92ZXIgZWZmZWN0cyBvbiBDU1Mtb25seSAobm9uLUpTKSBjaGVja2JveGVzXG4gIC5tZGMtY2hlY2tib3gtLWRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LS1kaXNhYmxlZF87XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3hfX2NoZWNrbWFya18oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoIHtcbiAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3hfX21peGVkbWFya18oJHF1ZXJ5KTtcbiAgfVxuXG4gIC8vIEpTIGNoZWNrYm94XG4gIC5tZGMtY2hlY2tib3gtLXVwZ3JhZGVkIHtcbiAgICAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuICAgIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayxcbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aCxcbiAgICAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19jaGlsZC0tdXBncmFkZWRfO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hlY2tib3gtLWFuaW0ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3gtLWFuaW1fO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDppbmRldGVybWluYXRlIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fYmFja2dyb3VuZC0tbWFya2VkXztcbiAgICB9XG5cbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoLS1tYXJrZWRfO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSBmcmFtZSdzIDo6YmVmb3JlIGVsZW1lbnQgaXMgdXNlZCBhcyBhIGZvY3VzIGluZGljYXRvciBmb3IgdGhlIGNoZWNrYm94XG4gIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19mb2N1cy1pbmRpY2F0b3JfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpmb2N1cyB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19mb2N1cy1pbmRpY2F0b3ItLWZvY3VzZWRfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xfO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LS1kaXNhYmxlZF87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gICAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3hfX2NoZWNrbWFyay0tY2hlY2tlZF8oJHF1ZXJ5KTtcbiAgICB9XG5cbiAgICAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19taXhlZG1hcmstLWNoZWNrZWRfO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmluZGV0ZXJtaW5hdGUgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmsge1xuICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19jaGVja21hcmstLWluZGV0ZXJtaW5hdGVfKCRxdWVyeSk7XG4gICAgfVxuXG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fbWl4ZWRtYXJrLS1pbmRldGVybWluYXRlXztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBjaGVja2JveCBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1jaGVja2JveC1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiBtZGMtY2hlY2tib3gtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtcmlwcGxlLWNvbW1vbigkcXVlcnkpO1xuXG4gIC5tZGMtY2hlY2tib3gge1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZSgkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJG1kYy1jaGVja2JveC1iYXNlbGluZS10aGVtZS1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLXVuYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtY29udGFpbmVyLWNvbG9ycyhcbiAgJHVubWFya2VkLXN0cm9rZS1jb2xvcjogJG1kYy1jaGVja2JveC1ib3JkZXItY29sb3IsXG4gICR1bm1hcmtlZC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudCxcbiAgJG1hcmtlZC1zdHJva2UtY29sb3I6ICRtZGMtY2hlY2tib3gtYmFzZWxpbmUtdGhlbWUtY29sb3IsXG4gICRtYXJrZWQtZmlsbC1jb2xvcjogJG1kYy1jaGVja2JveC1iYXNlbGluZS10aGVtZS1jb2xvcixcbiAgJGdlbmVyYXRlLWtleWZyYW1lczogdHJ1ZSxcbiAgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKVxuKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy1jaGVja2JveC11bm1hcmtlZC1iYWNrZ3JvdW5kLXNlbGVjdG9yLWVuYWJsZWRfIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICR1bm1hcmtlZC1zdHJva2UtY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJHVubWFya2VkLWZpbGwtY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1jaGVja2JveC1tYXJrZWQtYmFja2dyb3VuZC1zZWxlY3Rvci1lbmFibGVkXyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkbWFya2VkLXN0cm9rZS1jb2xvcik7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkbWFya2VkLWZpbGwtY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZ2VuZXJhdGUta2V5ZnJhbWVzIHtcbiAgICAkdWlkOiBtZGMtY2hlY2tib3gtY29udGFpbmVyLWtleWZyYW1lcy11aWRfKCk7XG4gICAgJGFuaW0tc2VsZWN0b3I6IGlmKCYsIFwiJi5tZGMtY2hlY2tib3gtLWFuaW1cIiwgXCIubWRjLWNoZWNrYm94LS1hbmltXCIpO1xuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24sICRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3gtY29udGFpbmVyLWtleWZyYW1lc18oXG4gICAgICAgICRmcm9tLXN0cm9rZS1jb2xvcjogJHVubWFya2VkLXN0cm9rZS1jb2xvcixcbiAgICAgICAgJHRvLXN0cm9rZS1jb2xvcjogJG1hcmtlZC1zdHJva2UtY29sb3IsXG4gICAgICAgICRmcm9tLWZpbGwtY29sb3I6ICR1bm1hcmtlZC1maWxsLWNvbG9yLFxuICAgICAgICAkdG8tZmlsbC1jb2xvcjogJG1hcmtlZC1maWxsLWNvbG9yLFxuICAgICAgICAkdWlkOiAkdWlkXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG1heC1uZXN0aW5nLWRlcHRoXG5cbiAgICAjeyRhbmltLXNlbGVjdG9yfSB7XG4gICAgICAmLXVuY2hlY2tlZC1jaGVja2VkLFxuICAgICAgJi11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSB7XG4gICAgICAgIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IG1kYy1jaGVja2JveC1mYWRlLWluLWJhY2tncm91bmQtI3skdWlkfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi1jaGVja2VkLXVuY2hlY2tlZCxcbiAgICAgICYtaW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQge1xuICAgICAgICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBtZGMtY2hlY2tib3gtZmFkZS1vdXQtYmFja2dyb3VuZC0jeyR1aWR9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHN0eWxlbGludC1lbmFibGUgbWF4LW5lc3RpbmctZGVwdGhcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoZWNrYm94LWluay1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGVja2JveC1mb2N1cy1pbmRpY2F0b3ItY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIFRoZSA6OmJlZm9yZSBlbGVtZW50IGlzIHVzZWQgYXMgYSBmb2N1cyBpbmRpY2F0b3IgZm9yIHRoZSBjaGVja2JveFxuICAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvciwgJGVkZ2VPcHRPdXQ6IHRydWUpO1xuICAgIH1cbiAgfVxufVxuXG4vL1xuLy8gUHJpdmF0ZVxuLy9cblxuQG1peGluIG1kYy1jaGVja2JveC1iYXNlXyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiAwIDAgJG1kYy1jaGVja2JveC1zaXplO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgd2lkdGg6ICRtZGMtY2hlY2tib3gtc2l6ZTtcbiAgaGVpZ2h0OiAkbWRjLWNoZWNrYm94LXNpemU7XG4gIHBhZGRpbmc6ICgkbWRjLWNoZWNrYm94LXRvdWNoLWFyZWEgLSAkbWRjLWNoZWNrYm94LXNpemUpIC8gMjtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuQG1peGluIG1kYy1jaGVja2JveC1kaXNhYmxlZC1jb250YWluZXItY29sb3JfIHtcbiAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LXVubWFya2VkLWJhY2tncm91bmQtc2VsZWN0b3ItZGlzYWJsZWRfIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICRtZGMtY2hlY2tib3gtZGlzYWJsZWQtY29sb3IpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LW1hcmtlZC1iYWNrZ3JvdW5kLXNlbGVjdG9yLWRpc2FibGVkXyB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCB0cmFuc3BhcmVudCk7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJG1kYy1jaGVja2JveC1kaXNhYmxlZC1jb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGVja2JveC0tZGlzYWJsZWRfIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQG1peGluIG1kYy1jaGVja2JveF9fY2hpbGQtLWNvdmVyLXBhcmVudF8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbn1cblxuQG1peGluIG1kYy1jaGVja2JveF9fY2hpbGQtLXVwZ3JhZGVkXyB7XG4gIC8vIER1ZSB0byB0aGUgbXlyaWFkIG9mIHNlbGVjdG9yIGNvbWJvcyB1c2VkIHRvIHByb3Blcmx5IHN0eWxlIGEgQ1NTLW9ubHkgY2hlY2tib3gsIGFsbCBvZlxuICAvLyB3aGljaCBoYXZlIHZhcnlpbmcgc2VsZWN0b3IgcHJlY2VkZW5jZSBhbmQgbWFrZSB1c2Ugb2YgdHJhbnNpdGlvbnMsIGl0IGlzIGNsZWFuZXIgYW5kIG1vcmVcbiAgLy8gZWZmaWNpZW50IGhlcmUgdG8gc2ltcGx5IHVzZSAhaW1wb3J0YW50LCBzaW5jZSB0aGUgbWRjLWNoZWNrYm94LS1hbmltLSogY2xhc3NlcyB3aWxsIHRha2VcbiAgLy8gb3ZlciBmcm9tIGhlcmUuXG4gIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLy8gQW5pbWF0aW9uXG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtLWFuaW1fIHtcbiAgJG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoYW5nZS1kdXJhdGlvbl86IDUwMG1zO1xuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC10eXBlXG5cbiAgJi11bmNoZWNrZWQtY2hlY2tlZCxcbiAgJi11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSxcbiAgJi1jaGVja2VkLXVuY2hlY2tlZCxcbiAgJi1pbmRldGVybWluYXRlLXVuY2hlY2tlZCB7XG4gICAgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgICBhbmltYXRpb24tZHVyYXRpb246ICRtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDI7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgfVxuICB9XG5cbiAgJi11bmNoZWNrZWQtY2hlY2tlZCB7XG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgge1xuICAgICAgLy8gSW5zdGVhZCBvZiBkZWxheWluZyB0aGUgYW5pbWF0aW9uLCB3ZSBzaW1wbHkgbXVsdGlwbHkgaXRzIGxlbmd0aCBieSAyIGFuZCBiZWdpbiB0aGVcbiAgICAgIC8vIGFuaW1hdGlvbiBhdCA1MCUgaW4gb3JkZXIgdG8gcHJldmVudCBhIGZsYXNoIG9mIHN0eWxlcyBhcHBsaWVkIHRvIGEgY2hlY2tlZCBjaGVja21hcmtcbiAgICAgIC8vIGFzIHRoZSBiYWNrZ3JvdW5kIGlzIGZhZGluZyBpbiBiZWZvcmUgdGhlIGFuaW1hdGlvbiBiZWdpbnMuXG4gICAgICBhbmltYXRpb246IG1kYy1jaGVja2JveC11bmNoZWNrZWQtY2hlY2tlZC1jaGVja21hcmstcGF0aCAkbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZHVyYXRpb24gKiAyIGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSB7XG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LXVuY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFyayAkbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZHVyYXRpb24gbGluZWFyIDBzO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLWNoZWNrZWQtdW5jaGVja2VkIHtcbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aCB7XG4gICAgICBhbmltYXRpb246IG1kYy1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aCAkbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZHVyYXRpb24gbGluZWFyIDBzO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLWNoZWNrZWQtaW5kZXRlcm1pbmF0ZSB7XG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgICAgIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1jaGVja21hcmsgJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uIGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmsgJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uIGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi1pbmRldGVybWluYXRlLWNoZWNrZWQge1xuICAgIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gICAgICBhbmltYXRpb246IG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtY2hlY2ttYXJrICRtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGFuZ2UtZHVyYXRpb25fIGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1taXhlZG1hcmsgJG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoYW5nZS1kdXJhdGlvbl8gbGluZWFyIDBzO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIHtcbiAgICAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLWNvbG9uLXNwYWNlLWFmdGVyXG4gICAgICBhbmltYXRpb246XG4gICAgICAgIG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLXVuY2hlY2tlZC1taXhlZG1hcmsgJG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoYW5nZS1kdXJhdGlvbl8gKiAuNiBsaW5lYXIgMHM7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1lbmFibGUgc2VsZWN0b3ItbWF4LXR5cGVcbn1cblxuLy8gQmFja2dyb3VuZFxuXG5AbWl4aW4gbWRjLWNoZWNrYm94LXVubWFya2VkLWJhY2tncm91bmQtc2VsZWN0b3ItZW5hYmxlZF8ge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5XG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6bm90KDpjaGVja2VkKTpub3QoOmluZGV0ZXJtaW5hdGUpIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGVja2JveC11bm1hcmtlZC1iYWNrZ3JvdW5kLXNlbGVjdG9yLWRpc2FibGVkXyB7XG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHlcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWQ6bm90KDpjaGVja2VkKTpub3QoOmluZGV0ZXJtaW5hdGUpIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGVja2JveC1tYXJrZWQtYmFja2dyb3VuZC1zZWxlY3Rvci1lbmFibGVkXyB7XG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6Y2hlY2tlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6aW5kZXRlcm1pbmF0ZSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtbWFya2VkLWJhY2tncm91bmQtc2VsZWN0b3ItZGlzYWJsZWRfIHtcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWQ6Y2hlY2tlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmRpc2FibGVkOmluZGV0ZXJtaW5hdGUgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAoJG1kYy1jaGVja2JveC10b3VjaC1hcmVhIC0gJG1kYy1jaGVja2JveC1zaXplKSAvIDIsIFwiLm1kYy1jaGVja2JveFwiKTtcblxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6ICgkbWRjLWNoZWNrYm94LXRvdWNoLWFyZWEgLSAkbWRjLWNoZWNrYm94LXNpemUpIC8gMjtcbiAgICBib3R0b206IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAkbWRjLWNoZWNrYm94LXVpLXBjdDtcbiAgICBoZWlnaHQ6ICRtZGMtY2hlY2tib3gtdWktcGN0O1xuICAgIC8vIGJvcmRlci1jb2xvciBpcyBvdmVycmlkZGVuIGJ5IHRoZSBtZGMtY2hlY2tib3gtdW5tYXJrZWQtc3Ryb2tlLWNvbG9yKCkgbWl4aW5cbiAgICBib3JkZXI6ICRtZGMtY2hlY2tib3gtYm9yZGVyLXdpZHRoIHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgd2lsbC1jaGFuZ2U6IGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWV4aXQoYmFja2dyb3VuZC1jb2xvciksXG4gICAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1leGl0KGJvcmRlci1jb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGVja2JveF9fYmFja2dyb3VuZC0tbWFya2VkXyB7XG4gIHRyYW5zaXRpb246XG4gICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZW50ZXIoYm9yZGVyLWNvbG9yKSxcbiAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1lbnRlcihiYWNrZ3JvdW5kLWNvbG9yKTtcbn1cblxuLy8gRm9jdXMgaW5kaWNhdG9yXG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX2ZvY3VzLWluZGljYXRvcl8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19jaGlsZC0tY292ZXItcGFyZW50XztcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWV4aXQob3BhY2l0eSksXG4gICAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1leGl0KHRyYW5zZm9ybSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGVja2JveF9fZm9jdXMtaW5kaWNhdG9yLS1mb2N1c2VkXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDIuNzUsIDIuNzUpO1xuICAgIG9wYWNpdHk6ICRtZGMtY2hlY2tib3gtZm9jdXMtaW5kaWNhdG9yLW9wYWNpdHk7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1lbnRlcihvcGFjaXR5LCAwbXMsIDgwbXMpLFxuICAgICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZW50ZXIodHJhbnNmb3JtLCAwbXMsIDgwbXMpO1xuICB9XG59XG5cbi8vIE5hdGl2ZSBpbnB1dFxuXG5AbWl4aW4gbWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbF8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBvcGFjaXR5OiAwO1xuICBjdXJzb3I6IGluaGVyaXQ7XG59XG5cbi8vIENoZWNrIG1hcmtcblxuQG1peGluIG1kYy1jaGVja2JveF9fY2hlY2ttYXJrXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3hfX2NoaWxkLS1jb3Zlci1wYXJlbnRfO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZXhpdChvcGFjaXR5LCAwbXMsICRtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDIpO1xuICB9XG5cbiAgLm1kYy1jaGVja2JveC0tdXBncmFkZWQgJiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX2NoZWNrbWFyay0tY2hlY2tlZF8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWVudGVyKG9wYWNpdHksIDBtcywgJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uICogMiksXG4gICAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1lbnRlcih0cmFuc2Zvcm0sIDBtcywgJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uICogMik7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGVja2JveF9fY2hlY2ttYXJrLS1pbmRldGVybWluYXRlXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWV4aXQob3BhY2l0eSwgMG1zLCAkbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZHVyYXRpb24pLFxuICAgICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZXhpdCh0cmFuc2Zvcm0sIDBtcywgJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgfVxufVxuXG4vLyBDaGVjayBtYXJrIHBhdGhcblxuQG1peGluIG1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGhfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246IG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWV4aXQoc3Ryb2tlLWRhc2hvZmZzZXQsIDBtcywgJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uICogMik7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHN0cm9rZTogY3VycmVudENvbG9yO1xuICAgIHN0cm9rZS13aWR0aDogJG1kYy1jaGVja2JveC1tYXJrLXN0cm9rZS1zaXplICogMS4zO1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAkbWRjLWNoZWNrYm94LW1hcmstcGF0aC1sZW5ndGhfO1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6ICRtZGMtY2hlY2tib3gtbWFyay1wYXRoLWxlbmd0aF87XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgtLW1hcmtlZF8ge1xuICBzdHJva2UtZGFzaG9mZnNldDogMDtcbn1cblxuLy8gTWl4ZWQgbWFya1xuXG5AbWl4aW4gbWRjLWNoZWNrYm94X19taXhlZG1hcmtfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKSByb3RhdGUoMGRlZyk7XG4gICAgYm9yZGVyLXdpZHRoOiBmbG9vcigkbWRjLWNoZWNrYm94LW1hcmstc3Ryb2tlLXNpemUpIC8gMjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1leGl0KG9wYWNpdHkpLFxuICAgICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZXhpdCh0cmFuc2Zvcm0pO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX21peGVkbWFyay0tY2hlY2tlZF8ge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgxKSByb3RhdGUoLTQ1ZGVnKTtcbn1cblxuQG1peGluIG1kYy1jaGVja2JveF9fbWl4ZWRtYXJrLS1pbmRldGVybWluYXRlXyB7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDEpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vLi4vYW5pbWF0aW9uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uLy4uL2NoZWNrYm94L2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uLy4uL2NoZWNrYm94L3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uLy4uL3JpcHBsZS9jb21tb25cIjtcbkBpbXBvcnQgXCIuLi8uLi9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLm1kYy1jaGlwIHtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlO1xuICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkO1xuICBAaW5jbHVkZSBtZGMtY2hpcC1zaGFwZS1yYWRpdXMoNTAlKTtcbiAgQGluY2x1ZGUgbWRjLWNoaXAtZmlsbC1jb2xvcigkbWRjLWNoaXAtZmlsbC1jb2xvci1kZWZhdWx0KTtcbiAgQGluY2x1ZGUgbWRjLWNoaXAtaW5rLWNvbG9yKCRtZGMtY2hpcC1pbmstY29sb3ItZGVmYXVsdCk7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGJvZHkyKTtcbiAgQGluY2x1ZGUgbWRjLWNoaXAtaGVpZ2h0KCRtZGMtY2hpcC1oZWlnaHQtZGVmYXVsdCk7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLWxlYWRpbmctaWNvbi1tYXJnaW4oKTtcblxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAkbWRjLWNoaXAtdmVydGljYWwtcGFkZGluZyAkbWRjLWNoaXAtaG9yaXpvbnRhbC1wYWRkaW5nO1xuICBvdXRsaW5lOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjpob3ZlciB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsIG9uLXN1cmZhY2UpO1xuICB9XG59XG5cbkBhdC1yb290IHtcbiAgQGluY2x1ZGUgbWRjLWNoaXAtbGVhZGluZy1pY29uLWNvbG9yKCRtZGMtY2hpcC1pY29uLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1jb2xvcigkbWRjLWNoaXAtaWNvbi1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLWxlYWRpbmctaWNvbi1zaXplKCRtZGMtY2hpcC1sZWFkaW5nLWljb24tc2l6ZSk7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLXRyYWlsaW5nLWljb24tc2l6ZSgkbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1zaXplKTtcbiAgQGluY2x1ZGUgbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1tYXJnaW4oKTtcbn1cblxuLm1kYy1jaGlwLS1leGl0IHtcbiAgdHJhbnNpdGlvbjogJG1kYy1jaGlwLWV4aXQtdHJhbnNpdGlvbjtcbiAgb3BhY2l0eTogMDtcbn1cblxuLm1kYy1jaGlwX190ZXh0IHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1kYy1jaGlwX19pY29uIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdXRsaW5lOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubWRjLWNoaXBfX2NoZWNrbWFyayB7XG4gIGhlaWdodDogJG1kYy1jaGlwLWxlYWRpbmctaWNvbi1zaXplO1xufVxuXG4ubWRjLWNoaXBfX2NoZWNrbWFyay1wYXRoIHtcbiAgdHJhbnNpdGlvbjpcbiAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1leGl0KFxuICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQsXG4gICAgICAkbWRjLWNoaXAtY2hlY2ttYXJrLWFuaW1hdGlvbi1kZWxheSxcbiAgICAgICRtZGMtY2hpcC1jaGVja21hcmstYW5pbWF0aW9uLWR1cmF0aW9uXG4gICAgKTtcbiAgc3Ryb2tlLXdpZHRoOiAycHg7XG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAkbWRjLWNoZWNrYm94LW1hcmstcGF0aC1sZW5ndGhfO1xuICBzdHJva2UtZGFzaGFycmF5OiAkbWRjLWNoZWNrYm94LW1hcmstcGF0aC1sZW5ndGhfO1xufVxuXG4ubWRjLWNoaXAtLXNlbGVjdGVkIC5tZGMtY2hpcF9fY2hlY2ttYXJrLXBhdGgge1xuICBzdHJva2UtZGFzaG9mZnNldDogMDtcbn1cblxuLy8gQ2hhbmdlIGNvbG9yIG9mIHNlbGVjdGVkIGNob2ljZSBjaGlwc1xuXG4ubWRjLWNoaXAtc2V0LS1jaG9pY2Uge1xuICAubWRjLWNoaXAge1xuICAgIEBpbmNsdWRlIG1kYy1jaGlwLXNlbGVjdGVkLWluay1jb2xvcihwcmltYXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2hpcC0tc2VsZWN0ZWQge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsIHN1cmZhY2UpO1xuICB9XG59XG5cbi8vIEFkZCBsZWFkaW5nIGNoZWNrbWFyayB0byBmaWx0ZXIgY2hpcHMgd2l0aCBubyBsZWFkaW5nIGljb25cblxuLm1kYy1jaGlwX19jaGVja21hcmstc3ZnIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogJG1kYy1jaGlwLWxlYWRpbmctaWNvbi1zaXplO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAkbWRjLWNoaXAtd2lkdGgtYW5pbWF0aW9uLWR1cmF0aW9uICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbn1cblxuLm1kYy1jaGlwLS1zZWxlY3RlZCAubWRjLWNoaXBfX2NoZWNrbWFyay1zdmcge1xuICB3aWR0aDogJG1kYy1jaGlwLWxlYWRpbmctaWNvbi1zaXplO1xufVxuXG4vLyBBZGQgbGVhZGluZyBjaGVja21hcmsgdG8gZmlsdGVyIGNoaXBzIHdpdGggYSBsZWFkaW5nIGljb25cblxuLm1kYy1jaGlwLXNldC0tZmlsdGVyIHtcbiAgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRtZGMtY2hpcC1vcGFjaXR5LWFuaW1hdGlvbi1kdXJhdGlvbiBsaW5lYXI7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogJG1kYy1jaGlwLWxlYWRpbmctaWNvbi1kZWxheTtcbiAgICBvcGFjaXR5OiAxO1xuXG4gICAgKyAubWRjLWNoaXBfX2NoZWNrbWFyayB7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRtZGMtY2hpcC1vcGFjaXR5LWFuaW1hdGlvbi1kdXJhdGlvbiBsaW5lYXI7XG5cbiAgICAgIC8vIERlbGF5IHRoZSBjaGVja21hcmsgdHJhbnNpdGlvbi5cbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6ICRtZGMtY2hpcC1jaGVja21hcmstd2l0aC1sZWFkaW5nLWljb24tZGVsYXk7XG4gICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICAubWRjLWNoaXBfX2NoZWNrbWFyay1zdmcge1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwbXM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jaGlwLS1zZWxlY3RlZCAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcge1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICArIC5tZGMtY2hpcF9fY2hlY2ttYXJrIHtcbiAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBjaGVja21hcmsgaGFzIHplcm8gd2lkdGggd2hpbGUgdGhlIGxlYWRpbmcgaWNvbiBpcyBzdGlsbCBhbmltYXRpbmcuXG4gICAgICB3aWR0aDogMDtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nLWhpZGRlbi5tZGMtY2hpcF9faWNvbi0tbGVhZGluZyB7XG4gICAgd2lkdGg6IDA7XG5cbiAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgbGVhZGluZyBpY29uIGRvZXNuJ3QgZmFkZSBpbiB3aGlsZSB0aGUgY2hlY2ttYXJrIGlzIGZhZGluZyBvdXQuXG4gICAgb3BhY2l0eTogMDtcblxuICAgICsgLm1kYy1jaGlwX19jaGVja21hcmsge1xuICAgICAgd2lkdGg6ICRtZGMtY2hpcC1sZWFkaW5nLWljb24tc2l6ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXHJcbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXHJcbi8vXHJcbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcclxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxyXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXHJcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcclxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXHJcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XHJcbi8vXHJcbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXHJcbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxyXG4vL1xyXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXHJcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxyXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcclxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxyXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxyXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXHJcbi8vIFRIRSBTT0ZUV0FSRS5cclxuLy9cclxuXHJcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xyXG5cclxuLy9cclxuLy8gRmxpcHMgdGhlIHJhZGl1cyB2YWx1ZXMgYmFzZWQgb24gUlRMIGNvbnRleHQuXHJcbi8vXHJcbi8vIEV4YW1wbGVzOlxyXG4vL1xyXG4vLyAxLiBtZGMtc2hhcGUtZmxpcC1yYWRpdXMoKDAsIDRweCwgNHB4LCAwKSkgPT4gNHB4IDAgMCA0cHhcclxuLy8gMi4gbWRjLXNoYXBlLWZsaXAtcmFkaXVzKCgwLCA4cHgpKSA9PiA4cHggMFxyXG4vL1xyXG5AZnVuY3Rpb24gbWRjLXNoYXBlLWZsaXAtcmFkaXVzKCRyYWRpdXMpIHtcclxuICBAaWYgdHlwZS1vZigkcmFkaXVzKSA9PSBcImxpc3RcIiB7XHJcbiAgICBAaWYgbGVuZ3RoKCRyYWRpdXMpID4gNCB7XHJcbiAgICAgIEBlcnJvciBcIkludmFsaWQgcmFkaXVzOiAnI3skcmFkaXVzfScgaXMgbW9yZSB0aGFuIDQgdmFsdWVzXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgbGVuZ3RoKCRyYWRpdXMpID09IDQge1xyXG4gICAgQHJldHVybiBudGgoJHJhZGl1cywgMikgbnRoKCRyYWRpdXMsIDEpIG50aCgkcmFkaXVzLCA0KSBudGgoJHJhZGl1cywgMyk7XHJcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHJhZGl1cykgPT0gMyB7XHJcbiAgICBAcmV0dXJuIG50aCgkcmFkaXVzLCAyKSBudGgoJHJhZGl1cywgMSkgbnRoKCRyYWRpdXMsIDIpIG50aCgkcmFkaXVzLCAzKTtcclxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcmFkaXVzKSA9PSAyIHtcclxuICAgIEByZXR1cm4gbnRoKCRyYWRpdXMsIDIpIG50aCgkcmFkaXVzLCAxKTtcclxuICB9IEBlbHNlIHtcclxuICAgIEByZXR1cm4gJHJhZGl1cztcclxuICB9XHJcbn1cclxuXHJcbi8vXHJcbi8vIFJlc29sdmVzIHRoZSBwZXJjZW50YWdlIHVuaXQgcmFkaXVzIHRvIGFwcHJvcHJpYXRlIGFic29sdXRlIHJhZGl1cyB2YWx1ZSBiYXNlZCBvbiBjb21wb25lbnQgaGVpZ2h0LlxyXG4vLyBVc2UgdGhpcyBmb3IgZml4ZWQgaGVpZ2h0IGNvbXBvbmVudHMgb25seS5cclxuLy9cclxuLy8gRXhhbXBsZXM6XHJcbi8vXHJcbi8vIG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKDM2cHgsIDUwJSkgPT4gYDE4cHhgIChpLmUuLCAzNnB4IC8gMilcclxuLy9cclxuQGZ1bmN0aW9uIG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRjb21wb25lbnQtaGVpZ2h0LCAkcmFkaXVzKSB7XHJcbiAgJHJhZGl1czogbWRjLXNoYXBlLXByb3AtdmFsdWUoJHJhZGl1cyk7XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRyYWRpdXMpID09IFwibGlzdFwiIHtcclxuICAgICRyYWRpdXMtdmFsdWU6ICgpO1xyXG5cclxuICAgIEBlYWNoICRjb3JuZXIgaW4gJHJhZGl1cyB7XHJcbiAgICAgICRyYWRpdXMtdmFsdWU6IGFwcGVuZCgkcmFkaXVzLXZhbHVlLCBtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLWZvci1jb3JuZXJfKCRjb21wb25lbnQtaGVpZ2h0LCAkY29ybmVyKSk7XHJcbiAgICB9XHJcblxyXG4gICAgQHJldHVybiAkcmFkaXVzLXZhbHVlO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHJldHVybiBtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLWZvci1jb3JuZXJfKCRjb21wb25lbnQtaGVpZ2h0LCAkcmFkaXVzKTtcclxuICB9XHJcbn1cclxuXHJcbi8vXHJcbi8vIFJldHVybnMgJHJhZGl1cyB2YWx1ZSBvZiBzaGFwZSBjYXRlZ29yeSAtIGBsYXJnZWAsIGBtZWRpdW1gIG9yIGBzbWFsbGAuXHJcbi8vIE90aGVyd2lzZSwgaXQgcmV0dXJucyB0aGUgJHJhZGl1cyBpdHNlbGYgaWYgdmFsaWQuXHJcbi8vICRyYWRpdXMgY2FuIGJlIGEgc2luZ2xlIHZhbHVlLCBvciBhIGxpc3Qgb2YgdXAgdG8gNCB2YWx1ZXMuXHJcbi8vXHJcbi8vIEV4YW1wbGVzOlxyXG4vL1xyXG4vLyBtZGMtc2hhcGUtcHJvcC12YWx1ZShzbWFsbCkgPT4gNHB4XHJcbi8vIG1kYy1zaGFwZS1wcm9wLXZhbHVlKHNtYWxsIHNtYWxsIDAgMCkgPT4gNHB4IDRweCAwIDBcclxuLy9cclxuQGZ1bmN0aW9uIG1kYy1zaGFwZS1wcm9wLXZhbHVlKCRyYWRpdXMpIHtcclxuICBAaWYgdHlwZS1vZigkcmFkaXVzKSA9PSBcImxpc3RcIiB7XHJcbiAgICBAaWYgbGVuZ3RoKCRyYWRpdXMpID4gNCB7XHJcbiAgICAgIEBlcnJvciBcIkludmFsaWQgcmFkaXVzOiAnI3skcmFkaXVzfScgaXMgbW9yZSB0aGFuIDQgdmFsdWVzXCI7XHJcbiAgICB9XHJcblxyXG4gICAgJHJhZGl1cy12YWx1ZXM6ICgpO1xyXG5cclxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRyYWRpdXMpIHtcclxuICAgICAgJGNvcm5lcjogbnRoKCRyYWRpdXMsICRpKTtcclxuXHJcbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkbWRjLXNoYXBlLWNhdGVnb3J5LXZhbHVlcywgJGNvcm5lcikge1xyXG4gICAgICAgIC8vIElmIGEgY2F0ZWdvcnkgaXMgZW5jb3VudGVyZWQgd2l0aGluIGEgbGlzdCBvZiByYWRpaSwgYXBwbHkgdGhlIGNhdGVnb3J5J3MgdmFsdWUgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGNvcm5lclxyXG4gICAgICAgICRyYWRpdXMtdmFsdWVzOlxyXG4gICAgICAgICAgYXBwZW5kKCRyYWRpdXMtdmFsdWVzLCBudGgobWRjLXNoYXBlLXVucGFjay1yYWRpdXNfKG1hcC1nZXQoJG1kYy1zaGFwZS1jYXRlZ29yeS12YWx1ZXMsICRjb3JuZXIpKSwgJGkpKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHJhZGl1cy12YWx1ZXM6IGFwcGVuZCgkcmFkaXVzLXZhbHVlcywgbWRjLXNoYXBlLXZhbGlkYXRlLXJhZGl1cy12YWx1ZV8oJGNvcm5lcikpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQHJldHVybiAkcmFkaXVzLXZhbHVlcztcclxuICB9IEBlbHNlIHtcclxuICAgIEBpZiBtYXAtaGFzLWtleSgkbWRjLXNoYXBlLWNhdGVnb3J5LXZhbHVlcywgJHJhZGl1cykge1xyXG4gICAgICBAcmV0dXJuIG1hcC1nZXQoJG1kYy1zaGFwZS1jYXRlZ29yeS12YWx1ZXMsICRyYWRpdXMpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEByZXR1cm4gbWRjLXNoYXBlLXZhbGlkYXRlLXJhZGl1cy12YWx1ZV8oJHJhZGl1cyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vL1xyXG4vLyBBY2NlcHRzIHJhZGl1cyBudW1iZXIgb3IgbGlzdCBvZiAyLTQgcmFkaXVzIHZhbHVlcyBhbmQgcmV0dXJucyA0IHZhbHVlIGxpc3Qgd2l0aFxyXG4vLyBtYXNrZWQgY29ybmVycyBhcyBtZW50aW9uZWQgaW4gYCRtYXNrZWQtY29ybmVyc2BcclxuLy9cclxuLy8gRXhhbXBsZTpcclxuLy9cclxuLy8gMS4gbWRjLXNoYXBlLW1hc2stcmFkaXVzKDJweCAzcHgsIDEgMSAwIDApID0+IDJweCAzcHggMCAwXHJcbi8vIDIuIG1kYy1zaGFwZS1tYXNrLXJhZGl1cyg4cHgsIDAgMCAxIDEpID0+IDAgMCA4cHggOHB4XHJcbi8vIDMuIG1kYy1zaGFwZS1tYXNrLXJhZGl1cyg0cHggNHB4IDRweCA0cHgsIDAgMSAxIDApID0+IDAgNHB4IDRweCAwXHJcbi8vXHJcbkBmdW5jdGlvbiBtZGMtc2hhcGUtbWFzay1yYWRpdXMoJHJhZGl1cywgJG1hc2tlZC1jb3JuZXJzKSB7XHJcbiAgQGlmIHR5cGUtb2YoJHJhZGl1cykgPT0gXCJsaXN0XCIge1xyXG4gICAgQGlmIGxlbmd0aCgkcmFkaXVzKSA+IDQge1xyXG4gICAgICBAZXJyb3IgXCJJbnZhbGlkIHJhZGl1czogJyN7JHJhZGl1c30nIGlzIG1vcmUgdGhhbiA0IHZhbHVlc1wiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmIGxlbmd0aCgkbWFza2VkLWNvcm5lcnMpICE9IDQge1xyXG4gICAgQGVycm9yIFwiRXhwZWN0ZWQgbWFza2VkLWNvcm5lcnMgb2YgbGVuZ3RoIDQgYnV0IGdvdCAnI3tsZW5ndGgoJG1hc2tlZC1jb3JuZXJzKX0nLlwiO1xyXG4gIH1cclxuXHJcbiAgJHJhZGl1czogbWRjLXNoYXBlLXVucGFjay1yYWRpdXNfKCRyYWRpdXMpO1xyXG5cclxuICBAcmV0dXJuIGlmKG50aCgkbWFza2VkLWNvcm5lcnMsIDEpID09IDEsIG50aCgkcmFkaXVzLCAxKSwgMClcclxuICAgIGlmKG50aCgkbWFza2VkLWNvcm5lcnMsIDIpID09IDEsIG50aCgkcmFkaXVzLCAyKSwgMClcclxuICAgIGlmKG50aCgkbWFza2VkLWNvcm5lcnMsIDMpID09IDEsIG50aCgkcmFkaXVzLCAzKSwgMClcclxuICAgIGlmKG50aCgkbWFza2VkLWNvcm5lcnMsIDQpID09IDEsIG50aCgkcmFkaXVzLCA0KSwgMCk7XHJcbn1cclxuXHJcbi8vXHJcbi8vIFVucGFja3Mgc2hvcnRoYW5kIHZhbHVlcyBmb3IgYm9yZGVyLXJhZGl1cyAoaS5lLiBsaXN0cyBvZiAxLTMgdmFsdWVzKS5cclxuLy8gSWYgYSBsaXN0IG9mIDQgdmFsdWVzIGlzIGdpdmVuLCBpdCBpcyByZXR1cm5lZCBhcy1pcy5cclxuLy9cclxuLy8gRXhhbXBsZXM6XHJcbi8vXHJcbi8vIDEuIG1kYy1zaGFwZS11bnBhY2stcmFkaXVzXyg0cHgpID0+IDRweCA0cHggNHB4IDRweFxyXG4vLyAyLiBtZGMtc2hhcGUtdW5wYWNrLXJhZGl1c18oNHB4IDJweCkgPT4gNHB4IDJweCA0cHggMnB4XHJcbi8vIDMuIG1kYy1zaGFwZS11bnBhY2stcmFkaXVzXyg0cHggMnB4IDJweCkgPT4gNHB4IDJweCAycHggMnB4XHJcbi8vIDIuIG1kYy1zaGFwZS11bnBhY2stcmFkaXVzXyg0cHggMnB4IDAgMnB4KSA9PiA0cHggMnB4IDAgMnB4XHJcbi8vXHJcbi8vIFRPRE86IFRoaXMgaXMgcHJpdmF0ZSBmb3IgcHVycG9zZXMgb2YgZ2V0dGluZyBpdCBpbnRvIGEgcGF0Y2g7IG1ha2UgaXQgcHVibGljIGZvciBhIGZ1dHVyZSBtaW5vci9tYWpvciByZWxlYXNlLlxyXG4vL1xyXG5AZnVuY3Rpb24gbWRjLXNoYXBlLXVucGFjay1yYWRpdXNfKCRyYWRpdXMpIHtcclxuICBAaWYgbGVuZ3RoKCRyYWRpdXMpID09IDQge1xyXG4gICAgQHJldHVybiAkcmFkaXVzO1xyXG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRyYWRpdXMpID09IDMge1xyXG4gICAgQHJldHVybiBudGgoJHJhZGl1cywgMSkgbnRoKCRyYWRpdXMsIDIpIG50aCgkcmFkaXVzLCAzKSBudGgoJHJhZGl1cywgMik7XHJcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHJhZGl1cykgPT0gMiB7XHJcbiAgICBAcmV0dXJuIG50aCgkcmFkaXVzLCAxKSBudGgoJHJhZGl1cywgMikgbnRoKCRyYWRpdXMsIDEpIG50aCgkcmFkaXVzLCAyKTtcclxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcmFkaXVzKSA9PSAxIHtcclxuICAgIEByZXR1cm4gJHJhZGl1cyAkcmFkaXVzICRyYWRpdXMgJHJhZGl1cztcclxuICB9XHJcblxyXG4gIEBlcnJvciBcIkludmFsaWQgcmFkaXVzOiAnI3skcmFkaXVzfScgaXMgbW9yZSB0aGFuIDQgdmFsdWVzXCI7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLWZvci1jb3JuZXJfKCRjb21wb25lbnQtaGVpZ2h0LCAkcmFkaXVzKSB7XHJcbiAgQGlmIHR5cGUtb2YoJHJhZGl1cykgPT0gXCJudW1iZXJcIiBhbmQgdW5pdCgkcmFkaXVzKSA9PSBcIiVcIiB7XHJcbiAgICAvLyBDb252ZXJ0cyB0aGUgcGVyY2VudGFnZSB0byBudW1iZXIgd2l0aG91dCB1bml0LiBFeGFtcGxlOiA1MCUgPT4gNTAuXHJcbiAgICAkcGVyY2VudGFnZTogJHJhZGl1cyAvICgkcmFkaXVzICogMCArIDEpO1xyXG5cclxuICAgIEByZXR1cm4gJGNvbXBvbmVudC1oZWlnaHQgKiAoJHBlcmNlbnRhZ2UgLyAxMDApO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHJldHVybiAkcmFkaXVzO1xyXG4gIH1cclxufVxyXG5cclxuQGZ1bmN0aW9uIG1kYy1zaGFwZS12YWxpZGF0ZS1yYWRpdXMtdmFsdWVfKCRyYWRpdXMpIHtcclxuICAkaXMtbnVtYmVyOiB0eXBlLW9mKCRyYWRpdXMpID09IFwibnVtYmVyXCI7XHJcblxyXG4gIEBpZiBub3QgKCRpcy1udW1iZXIgb3Igc3RyX2luZGV4KCRyYWRpdXMsIFwidmFyKFwiKSBvciBzdHJfaW5kZXgoJHJhZGl1cywgXCJjYWxjKFwiKSkge1xyXG4gICAgQGVycm9yIFwiSW52YWxpZCByYWRpdXM6ICN7JHJhZGl1c31cIjtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHJhZGl1cztcclxufVxyXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS92YXJpYWJsZXNcIjtcblxuJG1kYy1jaGlwLWZpbGwtY29sb3ItZGVmYXVsdDogbWl4KG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCBtZGMtdGhlbWUtcHJvcC12YWx1ZShzdXJmYWNlKSwgMTIlKSAhZGVmYXVsdDtcbiRtZGMtY2hpcC1pbmstY29sb3ItZGVmYXVsdDogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjg3KSAhZGVmYXVsdDtcbiRtZGMtY2hpcC1ob3Jpem9udGFsLXBhZGRpbmc6IDEycHggIWRlZmF1bHQ7XG4kbWRjLWNoaXAtdmVydGljYWwtcGFkZGluZzogN3B4ICFkZWZhdWx0O1xuJG1kYy1jaGlwLWhlaWdodC1kZWZhdWx0OiAzMnB4ICFkZWZhdWx0O1xuXG4kbWRjLWNoaXAtaWNvbi1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG4kbWRjLWNoaXAtaWNvbi1vcGFjaXR5OiAuNTQgIWRlZmF1bHQ7XG4kbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1ob3Zlci1vcGFjaXR5OiAuNjIgIWRlZmF1bHQ7XG4kbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1mb2N1cy1vcGFjaXR5OiAuODcgIWRlZmF1bHQ7XG4kbWRjLWNoaXAtbGVhZGluZy1pY29uLXNpemU6IDIwcHggIWRlZmF1bHQ7XG4kbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1zaXplOiAxOHB4ICFkZWZhdWx0O1xuLy8gU3BlZWQgdXAgZGVsYXkgdG8gYnJpZGdlIGdhcCBiZXR3ZWVuIGxlYWRpbmcgaWNvbiBhbmQgY2hlY2ttYXJrIHRyYW5zaXRpb24uXG4kbWRjLWNoaXAtbGVhZGluZy1pY29uLWRlbGF5OiAtNTBtcyAhZGVmYXVsdDtcbiRtZGMtY2hpcC1jaGVja21hcmstd2l0aC1sZWFkaW5nLWljb24tZGVsYXk6IDgwbXMgIWRlZmF1bHQ7XG5cbiRtZGMtY2hpcC1jaGVja21hcmstYW5pbWF0aW9uLWRlbGF5OiA1MG1zICFkZWZhdWx0O1xuJG1kYy1jaGlwLWNoZWNrbWFyay1hbmltYXRpb24tZHVyYXRpb246IDE1MG1zICFkZWZhdWx0O1xuJG1kYy1jaGlwLXdpZHRoLWFuaW1hdGlvbi1kdXJhdGlvbjogMTUwbXMgIWRlZmF1bHQ7XG4kbWRjLWNoaXAtb3BhY2l0eS1hbmltYXRpb24tZHVyYXRpb246IDc1bXMgIWRlZmF1bHQ7XG5cbiRtZGMtY2hpcC1sZWFkaW5nLWljb24tbWFyZ2luLXRvcDogLTRweCAhZGVmYXVsdDtcbiRtZGMtY2hpcC1sZWFkaW5nLWljb24tbWFyZ2luLXJpZ2h0OiA0cHggIWRlZmF1bHQ7XG4kbWRjLWNoaXAtbGVhZGluZy1pY29uLW1hcmdpbi1ib3R0b206IC00cHggIWRlZmF1bHQ7XG4kbWRjLWNoaXAtbGVhZGluZy1pY29uLW1hcmdpbi1sZWZ0OiAtNHB4ICFkZWZhdWx0O1xuXG4kbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1tYXJnaW4tdG9wOiAwICFkZWZhdWx0O1xuJG1kYy1jaGlwLXRyYWlsaW5nLWljb24tbWFyZ2luLXJpZ2h0OiAtNHB4ICFkZWZhdWx0O1xuJG1kYy1jaGlwLXRyYWlsaW5nLWljb24tbWFyZ2luLWJvdHRvbTogMCAhZGVmYXVsdDtcbiRtZGMtY2hpcC10cmFpbGluZy1pY29uLW1hcmdpbi1sZWZ0OiA0cHggIWRlZmF1bHQ7XG5cbiRtZGMtY2hpcC1leGl0LXRyYW5zaXRpb246XG4gIG9wYWNpdHkgNzVtcyAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb24sXG4gIHdpZHRoIDE1MG1zICRtZGMtYW5pbWF0aW9uLWRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb24sXG4gIHBhZGRpbmcgMTAwbXMgbGluZWFyLFxuICBtYXJnaW4gMTAwbXMgbGluZWFyICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcmlwcGxlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9zaGFwZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9zaGFwZS9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLWNoaXAtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSkge1xuICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtY2hpcC1oZWlnaHQtZGVmYXVsdCwgJHJhZGl1cyksICRydGwtcmVmbGV4aXZlKTtcbn1cblxuQG1peGluIG1kYy1jaGlwLWZpbGwtY29sb3ItYWNjZXNzaWJsZSgkY29sb3IpIHtcbiAgJGZpbGwtdG9uZTogbWRjLXRoZW1lLXRvbmUoJGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtY2hpcC1maWxsLWNvbG9yKCRjb2xvcik7XG5cbiAgQGlmICgkZmlsbC10b25lID09IFwiZGFya1wiKSB7XG4gICAgQGluY2x1ZGUgbWRjLWNoaXAtaW5rLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1kYXJrKTtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1zZWxlY3RlZC1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWRhcmspO1xuICAgIEBpbmNsdWRlIG1kYy1jaGlwLWxlYWRpbmctaWNvbi1jb2xvcih0ZXh0LXByaW1hcnktb24tZGFyayk7XG4gICAgQGluY2x1ZGUgbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1jb2xvcih0ZXh0LXByaW1hcnktb24tZGFyayk7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIG1kYy1jaGlwLWluay1jb2xvcih0ZXh0LXByaW1hcnktb24tbGlnaHQpO1xuICAgIEBpbmNsdWRlIG1kYy1jaGlwLXNlbGVjdGVkLWluay1jb2xvcih0ZXh0LXByaW1hcnktb24tbGlnaHQpO1xuICAgIEBpbmNsdWRlIG1kYy1jaGlwLWxlYWRpbmctaWNvbi1jb2xvcih0ZXh0LXByaW1hcnktb24tbGlnaHQpO1xuICAgIEBpbmNsdWRlIG1kYy1jaGlwLXRyYWlsaW5nLWljb24tY29sb3IodGV4dC1wcmltYXJ5LW9uLWxpZ2h0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoaXAtZmlsbC1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbn1cblxuQG1peGluIG1kYy1jaGlwLWluay1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcygkY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcblxuICAmOmhvdmVyIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoaXAtc2VsZWN0ZWQtaW5rLWNvbG9yKCRjb2xvcikge1xuICAmLm1kYy1jaGlwIHtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLXNlbGVjdGVkKCRjb2xvcik7XG4gIH1cblxuICAmLm1kYy1jaGlwLS1zZWxlY3RlZCB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gICAgQGluY2x1ZGUgbWRjLWNoaXAtbGVhZGluZy1pY29uLWNvbG9yKCRjb2xvcik7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hpcF9fY2hlY2ttYXJrLXBhdGgge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKHN0cm9rZSwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoaXAtb3V0bGluZSgkd2lkdGg6IDFweCwgJHN0eWxlOiBzb2xpZCwgJGNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSkge1xuICBAaW5jbHVkZSBtZGMtY2hpcC1vdXRsaW5lLXdpZHRoKCR3aWR0aCk7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLW91dGxpbmUtc3R5bGUoJHN0eWxlKTtcbiAgQGluY2x1ZGUgbWRjLWNoaXAtb3V0bGluZS1jb2xvcigkY29sb3IpO1xufVxuXG5AbWl4aW4gbWRjLWNoaXAtb3V0bGluZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xufVxuXG5AbWl4aW4gbWRjLWNoaXAtb3V0bGluZS1zdHlsZSgkc3R5bGUpIHtcbiAgYm9yZGVyLXN0eWxlOiAkc3R5bGU7XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1vdXRsaW5lLXdpZHRoKCR3aWR0aCwgJGhvcml6b250YWwtcGFkZGluZzogJG1kYy1jaGlwLWhvcml6b250YWwtcGFkZGluZykge1xuICAvLyBOb3RlOiBBZGp1c3QgcGFkZGluZyB0byBtYWludGFpbiBjb25zaXN0ZW50IHdpZHRoIHdpdGggbm9uLW91dGxpbmVkIGNoaXBzXG4gICRob3Jpem9udGFsLXBhZGRpbmctdmFsdWU6IG1heCgkaG9yaXpvbnRhbC1wYWRkaW5nIC0gJHdpZHRoLCAwKTtcbiAgJHZlcnRpY2FsLXBhZGRpbmctdmFsdWU6IG1heCgkbWRjLWNoaXAtdmVydGljYWwtcGFkZGluZyAtICR3aWR0aCwgMCk7XG5cbiAgcGFkZGluZzogJHZlcnRpY2FsLXBhZGRpbmctdmFsdWUgJGhvcml6b250YWwtcGFkZGluZy12YWx1ZTtcbiAgYm9yZGVyLXdpZHRoOiAkd2lkdGg7XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1ob3Jpem9udGFsLXBhZGRpbmcoJHBhZGRpbmcpIHtcbiAgcGFkZGluZzogJG1kYy1jaGlwLXZlcnRpY2FsLXBhZGRpbmcgJHBhZGRpbmc7XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1oZWlnaHQoJGhlaWdodCkge1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1zZXQtc3BhY2luZygkZ2FwLXNpemUpIHtcbiAgcGFkZGluZzogJGdhcC1zaXplIC8gMjtcblxuICAubWRjLWNoaXAge1xuICAgIG1hcmdpbjogJGdhcC1zaXplIC8gMjtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoaXAtbGVhZGluZy1pY29uLWNvbG9yKCRjb2xvciwgJG9wYWNpdHk6ICRtZGMtY2hpcC1pY29uLW9wYWNpdHkpIHtcbiAgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nIHtcbiAgICBjb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkb3BhY2l0eSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLXRyYWlsaW5nLWljb24tY29sb3IoXG4gICRjb2xvcixcbiAgJG9wYWNpdHk6ICRtZGMtY2hpcC1pY29uLW9wYWNpdHksXG4gICRob3Zlci1vcGFjaXR5OiAkbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1ob3Zlci1vcGFjaXR5LFxuICAkZm9jdXMtb3BhY2l0eTogJG1kYy1jaGlwLXRyYWlsaW5nLWljb24tZm9jdXMtb3BhY2l0eSkge1xuICAubWRjLWNoaXBfX2ljb24tLXRyYWlsaW5nIHtcbiAgICBjb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkb3BhY2l0eSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRob3Zlci1vcGFjaXR5KTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRmb2N1cy1vcGFjaXR5KTtcbiAgICB9XG4gIH1cbn1cblxuLy8gRm9yIGN1c3RvbWl6aW5nIGljb24gc2l6ZSwgd2UgbmVlZCB0byBpbmNyZWFzZSBzcGVjaWZpdHkgdG8gZW5zdXJlXG4vLyBvdmVycmlkZXMgYXBwbHkuIFN0eWxlcyBkZWZpbmVkIGluIHRoZSAubWF0ZXJpYWwtaWNvbnMgQ1NTIGNsYXNzIGFyZVxuLy8gbG9hZGVkIHNlcGFyYXRlbHksIHNvIHRoZSBvcmRlciBvZiBDU1MgZGVmaW5pdGlvbnMgaXMgbm90IGd1YXJhbnRlZWQuXG5cbkBtaXhpbiBtZGMtY2hpcC1sZWFkaW5nLWljb24tc2l6ZSgkc2l6ZSkge1xuICAubWRjLWNoaXBfX2ljb24ubWRjLWNoaXBfX2ljb24tLWxlYWRpbmc6bm90KC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZy1oaWRkZW4pIHtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1pY29uLXNpemVfKCRzaXplKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1zaXplKCRzaXplKSB7XG4gIC5tZGMtY2hpcF9faWNvbi5tZGMtY2hpcF9faWNvbi0tdHJhaWxpbmcge1xuICAgIEBpbmNsdWRlIG1kYy1jaGlwLWljb24tc2l6ZV8oJHNpemUpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1pY29uLXNpemVfKCRzaXplKSB7XG4gIHdpZHRoOiAkc2l6ZTtcbiAgaGVpZ2h0OiAkc2l6ZTtcbiAgZm9udC1zaXplOiAkc2l6ZTtcbn1cblxuQG1peGluIG1kYy1jaGlwLWxlYWRpbmctaWNvbi1tYXJnaW4oXG4gICR0b3A6ICRtZGMtY2hpcC1sZWFkaW5nLWljb24tbWFyZ2luLXRvcCxcbiAgJHJpZ2h0OiAkbWRjLWNoaXAtbGVhZGluZy1pY29uLW1hcmdpbi1yaWdodCxcbiAgJGJvdHRvbTogJG1kYy1jaGlwLWxlYWRpbmctaWNvbi1tYXJnaW4tYm90dG9tLFxuICAkbGVmdDogJG1kYy1jaGlwLWxlYWRpbmctaWNvbi1tYXJnaW4tbGVmdCkge1xuICAmLm1kYy1jaGlwLS1zZWxlY3RlZCAubWRjLWNoaXBfX2NoZWNrbWFyayxcbiAgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nOm5vdCgubWRjLWNoaXBfX2ljb24tLWxlYWRpbmctaGlkZGVuKSB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCAkbGVmdCwgJHJpZ2h0KTtcblxuICAgIG1hcmdpbi10b3A6ICR0b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJvdHRvbTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1tYXJnaW4oXG4gICR0b3A6ICRtZGMtY2hpcC10cmFpbGluZy1pY29uLW1hcmdpbi10b3AsXG4gICRyaWdodDogJG1kYy1jaGlwLXRyYWlsaW5nLWljb24tbWFyZ2luLXJpZ2h0LFxuICAkYm90dG9tOiAkbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1tYXJnaW4tYm90dG9tLFxuICAkbGVmdDogJG1kYy1jaGlwLXRyYWlsaW5nLWljb24tbWFyZ2luLWxlZnQpIHtcbiAgLm1kYy1jaGlwX19pY29uLS10cmFpbGluZyB7XG4gICAgbWFyZ2luOiAkdG9wICRyaWdodCAkYm90dG9tICRsZWZ0O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1lbGV2YXRpb24tdHJhbnNpdGlvbigpIHtcbiAgdHJhbnNpdGlvbjogbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXZhbHVlKCk7XG5cbiAgJi5tZGMtY2hpcC0tZXhpdCB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIG1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbi12YWx1ZSgpLFxuICAgICAgJG1kYy1jaGlwLWV4aXQtdHJhbnNpdGlvbjtcbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi8uLi9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5cbkBrZXlmcmFtZXMgbWRjLWNoaXAtZW50cnkge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC44KTtcbiAgICBvcGFjaXR5OiAuNDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLm1kYy1jaGlwLXNldCB7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLXNldC1zcGFjaW5nKDhweCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubWRjLWNoaXAtc2V0LS1pbnB1dCAubWRjLWNoaXAge1xuICBhbmltYXRpb246IG1kYy1jaGlwLWVudHJ5IDEwMG1zICRtZGMtYW5pbWF0aW9uLWRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3NoYXBlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL3ZhcmlhYmxlc1wiOyAvLyBmb3IgbWRjLXRoZW1lLXByb3AtdmFsdWVcbkBpbXBvcnQgXCIuLi90eXBvZ3JhcGh5L21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtZGlhbG9nLWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBkaWFsb2dcblxuICAubWRjLWRpYWxvZyxcbiAgLm1kYy1kaWFsb2dfX3NjcmltIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZyB7XG4gICAgQGluY2x1ZGUgbWRjLWRpYWxvZy1jb250YWluZXItZmlsbC1jb2xvcihzdXJmYWNlLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWRpYWxvZy1zY3JpbS1jb2xvcigkbWRjLWRpYWxvZy1zY3JpbS1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1kaWFsb2ctdGl0bGUtaW5rLWNvbG9yKCRtZGMtZGlhbG9nLXRpdGxlLWluay1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1kaWFsb2ctY29udGVudC1pbmstY29sb3IoJG1kYy1kaWFsb2ctY29udGVudC1pbmstY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtZGlhbG9nLXNjcm9sbC1kaXZpZGVyLWNvbG9yKCRtZGMtZGlhbG9nLXNjcm9sbC1kaXZpZGVyLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWRpYWxvZy1taW4td2lkdGgoJG1kYy1kaWFsb2ctbWluLXdpZHRoLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWRpYWxvZy1tYXgtd2lkdGgoJG1kYy1kaWFsb2ctbWF4LXdpZHRoLCAkbWRjLWRpYWxvZy1tYXJnaW4sICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtZGlhbG9nLW1heC1oZWlnaHQobnVsbCwgJG1kYy1kaWFsb2ctbWFyZ2luLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWRpYWxvZy1zaGFwZS1yYWRpdXMobWVkaXVtLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gVXNlIGBkaXNwbGF5OiBub25lYCBpbnN0ZWFkIG9mIGB2aXNpYmlsaXR5OiBoaWRkZW5gIHRvIGF2b2lkIHJlY2FsY3VsYXRpbmcgbGF5b3V0IHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgei1pbmRleDogJG1kYy1kaWFsb2ctei1pbmRleDtcbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZ19fc2NyaW0ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhpcyB3cmFwcGVyIGVsZW1lbnQgaXMgbmVlZGVkIHRvIG1ha2UgbWF4LWhlaWdodCB3b3JrIGluIElFIDExLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncy9pc3N1ZXMvMjE2XG4gIC5tZGMtZGlhbG9nX19jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgLy8gSUUgMTFcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyAvLyBFbnN1cmUgU2FmYXJpIGNlbnRlcnMgdGhlIGRpYWxvZyAoYmVjYXVzZSBpdCB0cmVhdHMgdGhlIGNvbnRhaW5lcidzIHdpZHRoIG9kZGx5KVxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoLjgpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbigyNCwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleC1ncm93OiAwOyAvLyBJRSAxMVxuICAgICAgZmxleC1zaHJpbms6IDA7IC8vIElFIDExXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvLyBJRSAxMVxuICAgICAgbWF4LWhlaWdodDogMTAwJTsgLy8gSUUgMTFcblxuICAgICAgQGluY2x1ZGUgbWRjLXJ0bChcIi5tZGMtZGlhbG9nXCIpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2dfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS10b3AoNDBweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGhlYWRsaW5lNiwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMCAyNHB4ICRtZGMtZGlhbG9nLXRpdGxlLWJvdHRvbS1wYWRkaW5nO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgICBAaW5jbHVkZSBtZGMtcnRsKFwiLm1kYy1kaWFsb2dcIikge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gIC5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX190aXRsZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIEFkanVzdCBib3R0b20gcGFkZGluZyB0byBtYWtlIHRpdGxlIGhlaWdodCBhbGlnbiB0byBzcGVjIHdoZW4gZGl2aWRlciBpcyBwcmVzZW50LlxuICAgICAgLy8gKFRpdGxlcyBmb3IgYWxlcnQgZGlhbG9ncyB3L28gZGl2aWRlcnMgYWxpZ24gYmFzZWQgb24gdGV4dCBiYXNlbGluZS4gQWxsIHNwZWMgdmFsdWVzIGFyZSBkaXZpc2libGUgYnkgNC4pXG4gICAgICBwYWRkaW5nLWJvdHRvbTogJG1kYy1kaWFsb2ctdGl0bGUtYm90dG9tLXBhZGRpbmcgKyA2cHg7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2dfX2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGJvZHkxLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDIwcHggMjRweDsgLy8gTm90ZTogdGhlIHRvcCBwYWRkaW5nIGlzIG9ubHkgMjBweCBmb3IgZGlhbG9ncyB3aXRob3V0IHRpdGxlczsgc2VlIGJlbG93IGZvciBvdmVycmlkZVxuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgfVxuXG4gICAgLy8gVGhlIGNvbnRlbnQgZWxlbWVudCBhbHJlYWR5IGhhcyB0b3AvYm90dG9tIHBhZGRpbmcsIHNvIHdlIG5lZWQgdG8gc3VwcHJlc3MgbWFyZ2lucyBvbiBpdHMgZmlyc3QvbGFzdCBjaGlsZHJlbi5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZSBjb250ZW50IGVsZW1lbnQgYWxyZWFkeSBoYXMgdG9wL2JvdHRvbSBwYWRkaW5nLCBzbyB3ZSBuZWVkIHRvIHN1cHByZXNzIG1hcmdpbnMgb24gaXRzIGZpcnN0L2xhc3QgY2hpbGRyZW4uXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbiAgLm1kYy1kaWFsb2dfX3RpdGxlICsgLm1kYy1kaWFsb2dfX2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBFbGltaW5hdGUgcGFkZGluZyB0byBicmluZyBhcyBjbG9zZSB0byBzcGVjIGFzIHBvc3NpYmxlLCByZWx5aW5nIG9uIHRpdGxlIHBhZGRpbmcuXG4gICAgICAvLyAoU3BlYyBzZWVtcyBpbmNvbnNpc3RlbnQgUkUgdGl0bGUvYm9keSBzcGFjaW5nIG9uIGFsZXJ0IHZzLiBzaW1wbGUgdmFyaWFudHMuKVxuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fY29udGVudCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIFJlZHVjZSBhbmQgZXF1YWxpemUgdmVydGljYWwgcGFkZGluZ3Mgd2hlbiBzY3JvbGxhYmxlIGRpdmlkZXJzIGFyZSBwcmVzZW50XG4gICAgICAvLyAoTm90ZTogdGhpcyBpcyBpbnRlbnRpb25hbGx5IGFmdGVyIHRpdGxlICsgY29udGVudCB0byB0YWtlIHByZWNlZGVuY2UpXG4gICAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gIC5tZGMtZGlhbG9nX19jb250ZW50IC5tZGMtbGlzdDpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gT3ZlcnJpZGUgZGVmYXVsdCAubWRjLWxpc3QgcGFkZGluZyBmb3IgY29udGVudCBjb25zaXN0aW5nIGV4Y2x1c2l2ZWx5IG9mIGEgTURDIExpc3RcbiAgICAgIHBhZGRpbmc6IDZweCAwIDA7IC8vIFRvcCBwYWRkaW5nIGJhbGFuY2VzIHdpdGggdGl0bGUgaGVpZ2h0XG4gICAgfVxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVybiwgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5XG4gIC5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX19jb250ZW50IC5tZGMtbGlzdDpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gT3ZlcnJpZGUgZGVmYXVsdCAubWRjLWxpc3QgcGFkZGluZyBmb3IgY29udGVudCBjb25zaXN0aW5nIGV4Y2x1c2l2ZWx5IG9mIGEgTURDIExpc3RcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2dfX2FjdGlvbnMge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBtaW4taGVpZ2h0OiA1MnB4O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC5tZGMtZGlhbG9nLS1zdGFja2VkICYge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtZGlhbG9nX19idXR0b24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCA4cHgpO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgLy8gUHJldmVudCBsb25nIHRleHQgZnJvbSBvdmVyZmxvd2luZyBwYXJlbnQgZWxlbWVudCBpbiBJRSAxMVxuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwoXCIubWRjLWRpYWxvZ1wiKSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1kaWFsb2ctLXN0YWNrZWQgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtZGlhbG9nLS1vcGVuLFxuICAubWRjLWRpYWxvZy0tb3BlbmluZyxcbiAgLm1kYy1kaWFsb2ctLWNsb3Npbmcge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZGlhbG9nLS1vcGVuaW5nIHtcbiAgICAubWRjLWRpYWxvZ19fc2NyaW0ge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1kaWFsb2dfX2NvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDc1bXMgbGluZWFyLCBtZGMtYW5pbWF0aW9uLWVudGVyKHRyYW5zZm9ybSwgMTUwbXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtZGlhbG9nLS1jbG9zaW5nIHtcbiAgICAubWRjLWRpYWxvZ19fc2NyaW0sXG4gICAgLm1kYy1kaWFsb2dfX2NvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDc1bXMgbGluZWFyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtZGlhbG9nX19jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgLy8gRGlhbG9nIGNvbnRhaW5lciBzY2FsZXMgdXAgd2hpbGUgb3BlbmluZywgYnV0IHNob3VsZCByZW1haW4gc2NhbGVkIHVwIHdoaWxlIGNsb3NpbmdcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZy0tb3BlbiB7XG4gICAgLm1kYy1kaWFsb2dfX3NjcmltIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1kaWFsb2dfX2NvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG5cbiAgLy8gQ2xhc3MgYXBwbGllZCB0byBib2R5IHdoaWxlIGRpYWxvZyBpcyBvcGVuLCB0byBwcmV2ZW50IHNjcm9sbGluZyBiZWhpbmQgdGhlIGRpYWxvZ1xuICAubWRjLWRpYWxvZy1zY3JvbGwtbG9jayB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtZGlhbG9nLWNvbnRhaW5lci1maWxsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1kaWFsb2ctc2NyaW0tY29sb3IoJGNvbG9yLCAkb3BhY2l0eTogJG1kYy1kaWFsb2ctc2NyaW0tb3BhY2l0eSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWRpYWxvZ19fc2NyaW0ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG9wYWNpdHkpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRpYWxvZy10aXRsZS1pbmstY29sb3IoJGNvbG9yLCAkb3BhY2l0eTogJG1kYy1kaWFsb2ctdGl0bGUtaW5rLW9wYWNpdHksICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1kaWFsb2dfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBjb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkb3BhY2l0eSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtZGlhbG9nLWNvbnRlbnQtaW5rLWNvbG9yKCRjb2xvciwgJG9wYWNpdHk6ICRtZGMtZGlhbG9nLWNvbnRlbnQtaW5rLW9wYWNpdHksICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1kaWFsb2dfX2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIGNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRvcGFjaXR5KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1kaWFsb2ctc2Nyb2xsLWRpdmlkZXItY29sb3IoXG4gICRjb2xvcixcbiAgJG9wYWNpdHk6ICRtZGMtZGlhbG9nLXNjcm9sbC1kaXZpZGVyLW9wYWNpdHksXG4gICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKClcbikge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmLm1kYy1kaWFsb2ctLXNjcm9sbGFibGUgLm1kYy1kaWFsb2dfX3RpdGxlLFxuICAmLm1kYy1kaWFsb2ctLXNjcm9sbGFibGUgLm1kYy1kaWFsb2dfX2FjdGlvbnMge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkb3BhY2l0eSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtZGlhbG9nLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZGlhbG9nLW1pbi13aWR0aCgkbWluLXdpZHRoLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBtaW4td2lkdGg6ICRtaW4td2lkdGg7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtZGlhbG9nLW1heC13aWR0aCgkbWF4LXdpZHRoLCAkbWFyZ2luLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRtYXgtc2l6ZS1jYWxjLWV4cHI6IGNhbGMoMTAwdncgLSAjeyRtYXJnaW4gKiAyfSk7XG5cbiAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaWYgJG1heC13aWR0aCB7XG4gICAgICAgICRtYXgtd2lkdGgtYnJlYWtwb2ludDogJG1heC13aWR0aCArICgkbWFyZ2luICogMik7XG5cbiAgICAgICAgLy8gRml0IHNudWdseSB3aXRoaW4gdGhlIHZpZXdwb3J0IGF0IHNtYWxsZXIgc2NyZWVuIHNpemVzLlxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heC13aWR0aC1icmVha3BvaW50KSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAkbWF4LXNpemUtY2FsYy1leHByO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25jZSB0aGUgc2NyZWVuIGdldHMgYmlnIGVub3VnaCwgYXBwbHkgYSBmaXhlZCBtYXhpbXVtIHdpZHRoLlxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1heC13aWR0aC1icmVha3BvaW50KSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkbWF4LXNpemUtY2FsYy1leHByO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRpYWxvZy1tYXgtaGVpZ2h0KCRtYXgtaGVpZ2h0LCAkbWFyZ2luLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRtYXgtc2l6ZS1jYWxjLWV4cHI6IGNhbGMoMTAwdmggLSAjeyRtYXJnaW4gKiAyfSk7XG5cbiAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaWYgJG1heC1oZWlnaHQge1xuICAgICAgICAkbWF4LWhlaWdodC1icmVha3BvaW50OiAkbWF4LWhlaWdodCArICgkbWFyZ2luICogMik7XG5cbiAgICAgICAgLy8gRml0IHNudWdseSB3aXRoaW4gdGhlIHZpZXdwb3J0IGF0IHNtYWxsZXIgc2NyZWVuIHNpemVzLlxuICAgICAgICBAbWVkaWEgKG1heC1oZWlnaHQ6ICRtYXgtaGVpZ2h0LWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiAkbWF4LXNpemUtY2FsYy1leHByO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25jZSB0aGUgc2NyZWVuIGdldHMgYmlnIGVub3VnaCwgYXBwbHkgYSBmaXhlZCBtYXhpbXVtIGhlaWdodC5cbiAgICAgICAgQG1lZGlhIChtaW4taGVpZ2h0OiAkbWF4LWhlaWdodC1icmVha3BvaW50KSB7XG4gICAgICAgICAgbWF4LWhlaWdodDogJG1heC1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBtYXgtaGVpZ2h0OiAkbWF4LXNpemUtY2FsYy1leHByO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtZGlhbG9nLXNjcmltLWNvbG9yOiBvbi1zdXJmYWNlICFkZWZhdWx0O1xuJG1kYy1kaWFsb2ctdGl0bGUtaW5rLWNvbG9yOiBvbi1zdXJmYWNlICFkZWZhdWx0O1xuJG1kYy1kaWFsb2ctY29udGVudC1pbmstY29sb3I6IG9uLXN1cmZhY2UgIWRlZmF1bHQ7XG4kbWRjLWRpYWxvZy1zY3JvbGwtZGl2aWRlci1jb2xvcjogb24tc3VyZmFjZSAhZGVmYXVsdDtcblxuJG1kYy1kaWFsb2ctc2NyaW0tb3BhY2l0eTogLjMyICFkZWZhdWx0O1xuJG1kYy1kaWFsb2ctdGl0bGUtaW5rLW9wYWNpdHk6IC44NyAhZGVmYXVsdDtcbiRtZGMtZGlhbG9nLWNvbnRlbnQtaW5rLW9wYWNpdHk6IC42ICFkZWZhdWx0O1xuJG1kYy1kaWFsb2ctc2Nyb2xsLWRpdmlkZXItb3BhY2l0eTogLjEyICFkZWZhdWx0O1xuXG4kbWRjLWRpYWxvZy1taW4td2lkdGg6IDI4MHB4ICFkZWZhdWx0O1xuJG1kYy1kaWFsb2ctbWF4LXdpZHRoOiA1NjBweCAhZGVmYXVsdDtcbiRtZGMtZGlhbG9nLW1hcmdpbjogMTZweCAhZGVmYXVsdDtcbiRtZGMtZGlhbG9nLXRpdGxlLWJvdHRvbS1wYWRkaW5nOiA5cHggIWRlZmF1bHQ7XG5cbiRtZGMtZGlhbG9nLXotaW5kZXg6IDcgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdHlwb2dyYXBoeS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGRyYXdlclxuXG4ubWRjLWRyYXdlciB7XG4gIEBpbmNsdWRlIG1kYy1kcmF3ZXItdGl0bGUtaW5rLWNvbG9yKCRtZGMtZHJhd2VyLXRpdGxlLWluay1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1kcmF3ZXItc3VidGl0bGUtaW5rLWNvbG9yKCRtZGMtZHJhd2VyLXN1YnRpdGxlLWluay1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1kcmF3ZXItYm9yZGVyLWNvbG9yKCRtZGMtZHJhd2VyLWRpdmlkZXItY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLXN1cmZhY2UtZmlsbC1jb2xvcigkbWRjLWRyYXdlci1zdXJmYWNlLWZpbGwtY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLWl0ZW0taWNvbi1pbmstY29sb3IoJG1kYy1kcmF3ZXItaXRlbS1pbmFjdGl2ZS1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLWl0ZW0tdGV4dC1pbmstY29sb3IoJG1kYy1kcmF3ZXItaXRlbS1pbmFjdGl2ZS1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLWl0ZW0tYWN0aXZhdGVkLWljb24taW5rLWNvbG9yKCRtZGMtZHJhd2VyLWl0ZW0tYWN0aXZhdGVkLWluay1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1kcmF3ZXItaXRlbS1hY3RpdmF0ZWQtdGV4dC1pbmstY29sb3IoJG1kYy1kcmF3ZXItaXRlbS1hY3RpdmF0ZWQtaW5rLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1zaGFwZS1yYWRpdXMobGFyZ2UpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLWl0ZW0tc2hhcGUtcmFkaXVzKDRweCk7XG4gIEBpbmNsdWRlIG1kYy1kcmF3ZXItei1pbmRleCgkbWRjLWRyYXdlci16LWluZGV4KTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci13aWR0aCgkbWRjLWRyYXdlci13aWR0aCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAvKiBAbm9mbGlwICovXG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICAvKiBAbm9mbGlwICovXG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBub25lO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuICAubWRjLWxpc3QtaXRlbSB7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoc3VidGl0bGUyKTtcblxuICAgIGhlaWdodDogY2FsYyg0OHB4IC0gMiAqICN7JG1kYy1kcmF3ZXItbGlzdC1pdGVtLXNwYWNpbmd9KTtcbiAgICAvLyBUbyBhY2NvbW9kYXRlIG1hcmdpbiBjb25mbGljdC5cbiAgICBtYXJnaW46ICgkbWRjLWRyYXdlci1saXN0LWl0ZW0tc3BhY2luZyAqIDIpIDhweDtcbiAgICBwYWRkaW5nOiAwICRtZGMtZHJhd2VyLXN1cmZhY2UtcGFkZGluZyAvIDI7XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuICAubWRjLWxpc3QtaXRlbTpudGgtY2hpbGQoMSkge1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogaWdub3JlXG4gIC5tZGMtbGlzdC1pdGVtOm50aC1sYXN0LWNoaWxkKDEpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBpZ25vcmVcbiAgLm1kYy1saXN0LWdyb3VwX19zdWJoZWFkZXIge1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGJvZHkyKTtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS10b3AoMjRweCk7XG5cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAkbWRjLWRyYXdlci1zdXJmYWNlLXBhZGRpbmc7XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuICAubWRjLWxpc3QtZGl2aWRlciB7XG4gICAgbWFyZ2luOiAzcHggMCA0cHggMDtcbiAgfVxuXG4gIC8vIFByZXZlbnRzIGxpc3QgaXRlbSBjaGlsZHJlbiBmcm9tIGJlaW5nIGluY2x1ZGVkIGluIHRoZSBjbGljayB0YXJnZXQuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogaWdub3JlXG4gIC5tZGMtbGlzdC1pdGVtX190ZXh0LFxuICAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cblxuLm1kYy1kcmF3ZXItLWFuaW1hdGUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuXG4gIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgfVxufVxuXG4ubWRjLWRyYXdlci0tb3BlbmluZyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJG1kYy1kcmF3ZXItYW5pbWF0aW9uLWVudGVyO1xuXG4gIC8vIFJlcXVpcmVkIHRvIGxldmVsIHRoZSBzcGVjaWZpY2l0eSB3aXRoIGFuaW1hdGUgY2xhc3MuXG4gIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG4ubWRjLWRyYXdlci0tY2xvc2luZyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRtZGMtZHJhd2VyLWFuaW1hdGlvbi1leGl0O1xuXG4gIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgfVxufVxuXG4ubWRjLWRyYXdlcl9faGVhZGVyIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi1oZWlnaHQ6IDY0cHg7IC8vIHNhbWUgYXMgJG1kYy10b3AtYXBwLWJhci1yb3ctaGVpZ2h0XG4gIHBhZGRpbmc6IDAgJG1kYy1kcmF3ZXItc3VyZmFjZS1wYWRkaW5nIDRweDtcbn1cblxuLm1kYy1kcmF3ZXJfX3RpdGxlIHtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoaGVhZGxpbmU2KTtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKDM2cHgpO1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS1ib3R0b20oMjBweCk7XG59XG5cbi5tZGMtZHJhd2VyX19zdWJ0aXRsZSB7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGJvZHkyKTtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKDIwcHgpO1xuXG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tZGMtZHJhd2VyX19jb250ZW50IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4uL2xpc3QvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcmlwcGxlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3NoYXBlL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtZHJhd2VyLWFjdGl2YXRlZC1vdmVybGF5LWNvbG9yKCRjb2xvcikge1xuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtIHtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLWFjdGl2YXRlZCgkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLWJvcmRlci1jb2xvcigkY29sb3IpIHtcbiAgJHZhbHVlOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRtZGMtZHJhd2VyLWRpdmlkZXItb3BhY2l0eSk7XG5cbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gbWRjLWRyYXdlci1pdGVtLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogdHJ1ZSkge1xuICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSk7XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLXNoYXBlLXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiBsZW5ndGgoJHJhZGl1cykgPiAyIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHJhZGl1czogJyN7JHJhZGl1c30nIGNvbXBvbmVudCBkb2Vzbid0IGFsbG93IGN1c3RvbWl6aW5nIGFsbCBjb3JuZXJzXCI7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRyYWRpdXMpID09IDIge1xuICAgICRyYWRpdXM6IDAgbnRoKCRyYWRpdXMsIDEpIG50aCgkcmFkaXVzLCAyKSAwO1xuICB9IEBlbHNlIHtcbiAgICAkcmFkaXVzOiAwICRyYWRpdXMgJHJhZGl1cyAwO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogdHJ1ZSk7XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLWRpdmlkZXItY29sb3IoJGNvbG9yKSB7XG4gICR2YWx1ZTogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkbWRjLWRyYXdlci1kaXZpZGVyLW9wYWNpdHkpO1xuXG4gIEBpbmNsdWRlIG1kYy1saXN0LWRpdmlkZXItY29sb3IoJHZhbHVlKTtcbn1cblxuQG1peGluIG1kYy1kcmF3ZXItdGl0bGUtaW5rLWNvbG9yKCRjb2xvcikge1xuICAkdmFsdWU6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG1kYy1kcmF3ZXItdGl0bGUtaW5rLW9wYWNpdHkpO1xuXG4gIC5tZGMtZHJhd2VyX190aXRsZSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICR2YWx1ZSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1kcmF3ZXItc3VidGl0bGUtaW5rLWNvbG9yKCRjb2xvcikge1xuICAkdmFsdWU6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG1kYy1kcmF3ZXItc3VidGl0bGUtaW5rLW9wYWNpdHkpO1xuXG4gIEBpbmNsdWRlIG1kYy1saXN0LWdyb3VwLXN1YmhlYWRlci1pbmstY29sb3IoJHZhbHVlKTtcblxuICAubWRjLWRyYXdlcl9fc3VidGl0bGUge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkdmFsdWUpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLWZpbGwtY29sb3ItYWNjZXNzaWJsZSgkY29sb3IpIHtcbiAgJGFjY2Vzc2libGVDb2xvcjogbWRjLXRoZW1lLWFjY2Vzc2libGUtaW5rLWNvbG9yKCRjb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWRyYXdlci10aXRsZS1pbmstY29sb3IoJGFjY2Vzc2libGVDb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1kcmF3ZXItc3VidGl0bGUtaW5rLWNvbG9yKCRhY2Nlc3NpYmxlQ29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLWl0ZW0tdGV4dC1pbmstY29sb3IoJGFjY2Vzc2libGVDb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1kcmF3ZXItaXRlbS1pY29uLWluay1jb2xvcigkYWNjZXNzaWJsZUNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1zdXJmYWNlLWZpbGwtY29sb3IoJGNvbG9yKTtcbn1cblxuQG1peGluIG1kYy1kcmF3ZXItaXRlbS1pY29uLWluay1jb2xvcigkY29sb3IpIHtcbiAgJHZhbHVlOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRtZGMtZHJhd2VyLWl0ZW0taW5hY3RpdmUtaWNvbi1pbmstb3BhY2l0eSk7XG5cbiAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1ncmFwaGljLWluay1jb2xvcigkdmFsdWUpO1xufVxuXG5AbWl4aW4gbWRjLWRyYXdlci1pdGVtLWFjdGl2YXRlZC1pY29uLWluay1jb2xvcigkY29sb3IpIHtcbiAgJHZhbHVlOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRtZGMtZHJhd2VyLWl0ZW0tYWN0aXZlLWljb24taW5rLW9wYWNpdHkpO1xuXG4gIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQge1xuICAgIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0tZ3JhcGhpYy1pbmstY29sb3IoJHZhbHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRyYXdlci1pdGVtLWFjdGl2YXRlZC10ZXh0LWluay1jb2xvcigkY29sb3IpIHtcbiAgJHZhbHVlOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRtZGMtZHJhd2VyLWl0ZW0tYWN0aXZlLXRleHQtaW5rLW9wYWNpdHkpO1xuXG4gIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQge1xuICAgIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0tcHJpbWFyeS10ZXh0LWluay1jb2xvcigkdmFsdWUpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLWl0ZW0tdGV4dC1pbmstY29sb3IoJGNvbG9yKSB7XG4gICR2YWx1ZTogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkbWRjLWRyYXdlci1pdGVtLWluYWN0aXZlLXRleHQtaW5rLW9wYWNpdHkpO1xuXG4gIC5tZGMtbGlzdC1pdGVtIHtcbiAgICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLXByaW1hcnktdGV4dC1pbmstY29sb3IoJHZhbHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRyYXdlci1zdXJmYWNlLWZpbGwtY29sb3IoJGNvbG9yKSB7XG4gICR2YWx1ZTogbWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gbWRjLWRyYXdlci1zY3JpbS1maWxsLWNvbG9yKCRjb2xvcikge1xuICAkdmFsdWU6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG1kYy1kcmF3ZXItbW9kYWwtc2NyaW0tb3BhY2l0eSk7XG5cbiAgKyAubWRjLWRyYXdlci1zY3JpbSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJHZhbHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRyYXdlci16LWluZGV4KCR2YWx1ZSkge1xuICB6LWluZGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLXdpZHRoKCR3aWR0aCkge1xuICB3aWR0aDogJHdpZHRoO1xuXG4gICYubWRjLWRyYXdlci0tb3Blbjpub3QoLm1kYy1kcmF3ZXItLWNsb3NpbmcpICsgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIGxlZnQsICR3aWR0aCk7XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vdGhlbWUvdmFyaWFibGVzXCI7XG5cbi8vIENvbG9yc1xuJG1kYy1kcmF3ZXItdGl0bGUtaW5rLWNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSAhZGVmYXVsdDtcbiRtZGMtZHJhd2VyLXN1YnRpdGxlLWluay1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1pdGVtLWluYWN0aXZlLWluay1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1pdGVtLWFjdGl2YXRlZC1pbmstY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKHByaW1hcnkpICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItZGl2aWRlci1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1zdXJmYWNlLWZpbGwtY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKHN1cmZhY2UpICFkZWZhdWx0O1xuXG4vLyBPcGFjaXR5XG4kbWRjLWRyYXdlci10aXRsZS1pbmstb3BhY2l0eTogbWRjLXRoZW1lLXRleHQtZW1waGFzaXMoaGlnaCkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1zdWJ0aXRsZS1pbmstb3BhY2l0eTogbWRjLXRoZW1lLXRleHQtZW1waGFzaXMobWVkaXVtKSAhZGVmYXVsdDtcbiRtZGMtZHJhd2VyLWl0ZW0taW5hY3RpdmUtaWNvbi1pbmstb3BhY2l0eTogbWRjLXRoZW1lLXRleHQtZW1waGFzaXMobWVkaXVtKSAhZGVmYXVsdDtcbiRtZGMtZHJhd2VyLWl0ZW0taW5hY3RpdmUtdGV4dC1pbmstb3BhY2l0eTogbWRjLXRoZW1lLXRleHQtZW1waGFzaXMoaGlnaCkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1pdGVtLWFjdGl2ZS1pY29uLWluay1vcGFjaXR5OiAxICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItaXRlbS1hY3RpdmUtdGV4dC1pbmstb3BhY2l0eTogbWRjLXRoZW1lLXRleHQtZW1waGFzaXMoaGlnaCkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1kaXZpZGVyLW9wYWNpdHk6IC4xMiAhZGVmYXVsdDtcblxuLy8gV2lkdGhzXG4kbWRjLWRyYXdlci13aWR0aDogMjU2cHggIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1saXN0LWl0ZW0tc3BhY2luZzogNHB4ICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItc3VyZmFjZS1wYWRkaW5nOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBBbmltYXRpb25zXG4kbWRjLWRyYXdlci1hbmltYXRpb24tZW50ZXI6IDI1MG1zICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItYW5pbWF0aW9uLWV4aXQ6IDIwMG1zICFkZWZhdWx0O1xuXG4vLyBTY3JpbVxuJG1kYy1kcmF3ZXItbW9kYWwtc2NyaW0tY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItbW9kYWwtc2NyaW0tb3BhY2l0eTogLjMyICFkZWZhdWx0O1xuXG4kbWRjLWRyYXdlci16LWluZGV4OiA2ICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItbW9kYWwtZWxldmF0aW9uOiAxNiAhZGVmYXVsdDtcbiIsIi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXHJcbi8vXHJcbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcclxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxyXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXHJcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcclxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXHJcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XHJcbi8vXHJcbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXHJcbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxyXG4vL1xyXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXHJcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxyXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcclxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxyXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxyXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXHJcbi8vIFRIRSBTT0ZUV0FSRS5cclxuXHJcbkBpbXBvcnQgXCIuLi9ydGwvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL3NoYXBlL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vcmlwcGxlL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vdGhlbWUvZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCIuLi90eXBvZ3JhcGh5L21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vdHlwb2dyYXBoeS92YXJpYWJsZXNcIjtcclxuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xyXG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xyXG5cclxuLy9cclxuLy8gUHVibGljXHJcbi8vXHJcblxyXG5AbWl4aW4gbWRjLWxpc3QtY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xyXG4gIEBpbmNsdWRlIG1kYy1saXN0LXdpdGhvdXQtcmlwcGxlKCRxdWVyeSk7XHJcbiAgQGluY2x1ZGUgbWRjLWxpc3QtcmlwcGxlKCRxdWVyeSk7XHJcbn1cclxuXHJcbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcclxuLy8gbGlzdCBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1saXN0LWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxyXG5AbWl4aW4gbWRjLWxpc3Qtd2l0aG91dC1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xyXG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xyXG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XHJcbiAgJGZlYXQtdHlwb2dyYXBoeTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHR5cG9ncmFwaHkpO1xyXG5cclxuICAkaXRlbS1wcmltYXJ5LXRleHQtYmFzZWxpbmUtaGVpZ2h0OiAzMnB4O1xyXG4gICRpdGVtLXNlY29uZGFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodDogMjBweDtcclxuICAkZGVuc2UtaXRlbS1wcmltYXJ5LXRleHQtYmFzZWxpbmUtaGVpZ2h0OiAyNHB4O1xyXG4gICRkaXZpZGVyLWNvbG9yOiBpZihcclxuICAgIG1kYy10aGVtZS10b25lKCRtZGMtdGhlbWUtYmFja2dyb3VuZCkgPT0gXCJkYXJrXCIsXHJcbiAgICAkbWRjLWxpc3QtZGl2aWRlci1jb2xvci1vbi1kYXJrLWJnLFxyXG4gICAgJG1kYy1saXN0LWRpdmlkZXItY29sb3Itb24tbGlnaHQtYmdcclxuICApO1xyXG5cclxuICAubWRjLWxpc3Qge1xyXG4gICAgQGluY2x1ZGUgbWRjLWxpc3QtYmFzZV8oJHF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0tc2Vjb25kYXJ5LXRleHQtaW5rLWNvbG9yKHRleHQtc2Vjb25kYXJ5LW9uLWJhY2tncm91bmQsICRxdWVyeSk7XHJcbiAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1ncmFwaGljLWZpbGwtY29sb3IodHJhbnNwYXJlbnQsICRxdWVyeSk7XHJcbiAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1ncmFwaGljLWluay1jb2xvcih0ZXh0LWljb24tb24tYmFja2dyb3VuZCwgJHF1ZXJ5KTtcclxuICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLW1ldGEtaW5rLWNvbG9yKHRleHQtaGludC1vbi1iYWNrZ3JvdW5kLCAkcXVlcnkpO1xyXG4gIEBpbmNsdWRlIG1kYy1saXN0LWdyb3VwLXN1YmhlYWRlci1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsICRxdWVyeSk7XHJcblxyXG4gIC5tZGMtbGlzdC0tZGVuc2Uge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgcGFkZGluZy10b3A6IDRweDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcclxuICAgICAgZm9udC1zaXplOiAuODEycmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1kYy1saXN0LWl0ZW0ge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1iYXNlXztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFwiU2VsZWN0ZWRcIiBpcyBlcGhlbWVyYWwgYW5kIGxpa2VseSB0byBjaGFuZ2Ugc29vbi4gRS5nLiwgc2VsZWN0aW5nIG9uZSBvciBtb3JlIHBob3RvcyB0byBzaGFyZSBpbiBHb29nbGUgUGhvdG9zLlxyXG4gIC8vIFwiQWN0aXZhdGVkXCIgaXMgbW9yZSBwZXJtYW5lbnQuIEUuZy4sIHRoZSBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgbmF2aWdhdGlvbiBkZXN0aW5hdGlvbiBpbiBhIGRyYXdlci5cclxuICAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQsXHJcbiAgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLXByaW1hcnktdGV4dC1pbmstY29sb3IocHJpbWFyeSwgJHF1ZXJ5KTtcclxuICAgIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0tZ3JhcGhpYy1pbmstY29sb3IocHJpbWFyeSwgJHF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLXByaW1hcnktdGV4dC1pbmstY29sb3IodGV4dC1kaXNhYmxlZC1vbi1iYWNrZ3JvdW5kLCAkcXVlcnkpO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLWxpc3QtZ3JhcGhpYy1zaXplXygyNHB4KTtcclxuXHJcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgZmlsbDogY3VycmVudENvbG9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gRXh0cmEgc3BlY2lmaWNpdHkgaXMgdG8gb3ZlcnJpZGUgLm1hdGVyaWFsLWljb25zIGRpc3BsYXkgc3R5bGUgaWYgdXNlZCBpblxyXG4gIC8vIGNvbmp1bmN0aW9uIHdpdGggbWRjLWxpc3QtaXRlbV9fZ3JhcGhpY1xyXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxyXG4gIC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gc3R5bGVsaW50LWVuYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cclxuXHJcbiAgLm1kYy1saXN0LWl0ZW1fX21ldGEge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCBhdXRvLCAwLCBcIi5tZGMtbGlzdC1pdGVtXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1kYy1saXN0LWl0ZW1fX3RleHQge1xyXG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktb3ZlcmZsb3ctZWxsaXBzaXMoJHF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIC8vIERpc2FibGUgaW50ZXJhY3Rpb24gb24gbGFiZWwgZWxlbWVudHMgdGhhdCBtYXkgYXV0b21hdGljYWxseVxyXG4gIC8vIHRvZ2dsZSBjb3JyZXNwb25kaW5nIGNoZWNrYm94IC8gcmFkaW8gaW5wdXQuXHJcbiAgLm1kYy1saXN0LWl0ZW1fX3RleHRbZm9yXSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQge1xyXG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktb3ZlcmZsb3ctZWxsaXBzaXMoJHF1ZXJ5KTtcclxuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXRvcCgkaXRlbS1wcmltYXJ5LXRleHQtYmFzZWxpbmUtaGVpZ2h0LCAkcXVlcnkpO1xyXG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtYm90dG9tKCRpdGVtLXNlY29uZGFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodCwgJHF1ZXJ5KTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cclxuICAgIC5tZGMtbGlzdC0tZGVuc2UgJiB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXRvcCgkZGVuc2UtaXRlbS1wcmltYXJ5LXRleHQtYmFzZWxpbmUtaGVpZ2h0LCAkcXVlcnkpO1xyXG4gICAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS1ib3R0b20oJGl0ZW0tc2Vjb25kYXJ5LXRleHQtYmFzZWxpbmUtaGVpZ2h0LCAkcXVlcnkpO1xyXG4gICAgfVxyXG4gICAgLy8gc3R5bGVsaW50LWVuYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cclxuICB9XHJcblxyXG4gIC5tZGMtbGlzdC1pdGVtX19zZWNvbmRhcnktdGV4dCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShib2R5MiwgJHF1ZXJ5KTtcclxuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LW92ZXJmbG93LWVsbGlwc2lzKCRxdWVyeSk7XHJcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS10b3AoJGl0ZW0tc2Vjb25kYXJ5LXRleHQtYmFzZWxpbmUtaGVpZ2h0LCAkcXVlcnkpO1xyXG5cclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxyXG4gICAgLm1kYy1saXN0LS1kZW5zZSAmIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKCRpdGVtLXNlY29uZGFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodCwgJHF1ZXJ5KTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxyXG4gIH1cclxuXHJcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXHJcbiAgLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1saXN0LWdyYXBoaWMtc2l6ZV8oMjBweCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWRjLWxpc3QtLWF2YXRhci1saXN0IC5tZGMtbGlzdC1pdGVtIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIGhlaWdodDogNTZweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZGMtbGlzdC0tYXZhdGFyLWxpc3QgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLWxpc3QtZ3JhcGhpYy1zaXplXyg0MHB4KTtcclxuXHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZGMtbGlzdC0tdHdvLWxpbmUgLm1kYy1saXN0LWl0ZW1fX3RleHQge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZGMtbGlzdC0tdHdvLWxpbmUgLm1kYy1saXN0LWl0ZW0ge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgaGVpZ2h0OiA3MnB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1kYy1saXN0LS10d28tbGluZS5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW0sXHJcbiAgLm1kYy1saXN0LS1hdmF0YXItbGlzdC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW0ge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1kYy1saXN0LS1hdmF0YXItbGlzdC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLWxpc3QtZ3JhcGhpYy1zaXplXygzNnB4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIE9ubHkgY2hhbmdlIG1vdXNlIGN1cnNvciBmb3IgaW50ZXJhY3RpdmUgbGlzdCBpdGVtcyB3aGljaCBhcmUgbm90IGRpc2FibGVkLlxyXG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0ge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gT3ZlcnJpZGUgYW5jaG9yIHRhZyBzdHlsZXMgZm9yIHRoZSB1c2UtY2FzZSBvZiBhIGxpc3QgYmVpbmcgdXNlZCBmb3IgbmF2aWdhdGlvblxyXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC10eXBlLHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxyXG4gIGEubWRjLWxpc3QtaXRlbSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC10eXBlLHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxyXG5cclxuICAubWRjLWxpc3QtZGl2aWRlciB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICBoZWlnaHQ6IDA7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XHJcbiAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTm90ZTogaWRlYWxseSB3ZSdkIGJlIGFibGUgdG8gaG9pc3QgdGhpcyB0byB0aGUgdG9wLWxldmVsIGAkZmVhdC1jb2xvcmAsIGJ1dCBkb2luZyBzb1xyXG4gIC8vIHdpbGwgY2F1c2UgdGhlIGBib3JkZXJgIGRlY2xhcmF0aW9uIG9uIGAubWRjLWxpc3QtZGl2aWRlcmAgYWJvdmUgdG8gb3ZlcnJpZGUgaXQuXHJcbiAgQGluY2x1ZGUgbWRjLWxpc3QtZGl2aWRlci1jb2xvcigkZGl2aWRlci1jb2xvciwgJHF1ZXJ5KTtcclxuXHJcbiAgLm1kYy1saXN0LWRpdmlkZXItLXBhZGRlZCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICAvLyBMZWF2ZSBnYXBzIG9uIGVhY2ggc2lkZSB0byBtYXRjaCB0aGUgcGFkZGluZyBvbiBsaXN0IGl0ZW1zXHJcbiAgICAgIG1hcmdpbjogMCAkbWRjLWxpc3Qtc2lkZS1wYWRkaW5nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1kYy1saXN0LWRpdmlkZXItLWluc2V0IHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIGxlZnQsICRtZGMtbGlzdC10ZXh0LW9mZnNldCwgXCIubWRjLWxpc3QtZ3JvdXBcIik7XHJcblxyXG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skbWRjLWxpc3QtdGV4dC1vZmZzZXR9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZGMtbGlzdC1kaXZpZGVyLS1pbnNldC5tZGMtbGlzdC1kaXZpZGVyLS1wYWRkZWQge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JG1kYy1saXN0LXRleHQtb2Zmc2V0fSAtICN7JG1kYy1saXN0LXNpZGUtcGFkZGluZ30pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1kYy1saXN0LWdyb3VwIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIC8vIENhbmNlbCB0b3AvYm90dG9tIHBhZGRpbmcgb24gaW5kaXZpZHVhbCBsaXN0cyB3aXRoaW4gZ3JvdXBcclxuICAgICAgLm1kYy1saXN0IHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWRjLWxpc3QtZ3JvdXBfX3N1YmhlYWRlciB7XHJcbiAgICAkbWRjLWxpc3Qtc3ViaGVhZGVyLXZpcnR1YWwtaGVpZ2h0OiAzcmVtO1xyXG4gICAgJG1kYy1saXN0LXN1YmhlYWRlci1sZWFkaW5nOiBtYXAtZ2V0KG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LXN0eWxlcywgYm9keTEpLCBsaW5lLWhlaWdodCk7XHJcbiAgICAkbWRjLWxpc3Qtc3ViaGVhZGVyLW1hcmdpbjogKCRtZGMtbGlzdC1zdWJoZWFkZXItdmlydHVhbC1oZWlnaHQgLSAkbWRjLWxpc3Qtc3ViaGVhZGVyLWxlYWRpbmcpIC8gMjtcclxuXHJcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShzdWJ0aXRsZTEsICRxdWVyeSk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgbWFyZ2luOiAkbWRjLWxpc3Qtc3ViaGVhZGVyLW1hcmdpbiAkbWRjLWxpc3Qtc2lkZS1wYWRkaW5nO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxyXG4vLyBsaXN0IHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLWxpc3QtY29yZS1zdHlsZXNgIGluc3RlYWQuXHJcbkBtaXhpbiBtZGMtbGlzdC1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xyXG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtY29tbW9uKCRxdWVyeSk7XHJcblxyXG4gIC8vIExpc3QgaXRlbXMgc2hvdWxkIHN1cHBvcnQgc3RhdGVzIGJ5IGRlZmF1bHQsIGJ1dCBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gb3B0IG91dC5cclxuICAvLyBEaXJlY3QgY2hpbGQgY29tYmluYXRvciBpcyBuZWNlc3NhcnkgZm9yIG5vbi1pbnRlcmFjdGl2ZSBtb2RpZmllciBvbiBwYXJlbnQgdG8gbm90XHJcbiAgLy8gbWF0Y2ggdGhpcyBzZWxlY3Rvci5cclxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtIHtcclxuICAgIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0taW50ZXJhY3RpdmUtcmlwcGxlXygkcXVlcnkpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1saXN0LWl0ZW0tcHJpbWFyeS10ZXh0LWluay1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcclxuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcclxuXHJcbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLWxpc3QtaXRlbS1zZWNvbmRhcnktdGV4dC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XHJcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XHJcblxyXG4gIC5tZGMtbGlzdC1pdGVtX19zZWNvbmRhcnktdGV4dCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1saXN0LWl0ZW0tZ3JhcGhpYy1maWxsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xyXG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xyXG5cclxuICAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLWxpc3QtaXRlbS1ncmFwaGljLWluay1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcclxuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcclxuXHJcbiAgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtbGlzdC1pdGVtLW1ldGEtaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xyXG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xyXG5cclxuICAubWRjLWxpc3QtaXRlbV9fbWV0YSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1saXN0LWl0ZW0tc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xyXG4gIC5tZGMtbGlzdC1pdGVtIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmUsICRxdWVyeTogJHF1ZXJ5KTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtbGlzdC1kaXZpZGVyLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xyXG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xyXG5cclxuICAubWRjLWxpc3QtZGl2aWRlciB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1ib3R0b20tY29sb3IsICRjb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLWxpc3QtZ3JvdXAtc3ViaGVhZGVyLWluay1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcclxuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcclxuXHJcbiAgLm1kYy1saXN0LWdyb3VwX19zdWJoZWFkZXIge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vXHJcbi8vIFByaXZhdGVcclxuLy9cclxuXHJcbkBtaXhpbiBtZGMtbGlzdC1iYXNlXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XHJcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XHJcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcclxuICAkZmVhdC10eXBvZ3JhcGh5OiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgdHlwb2dyYXBoeSk7XHJcblxyXG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KHN1YnRpdGxlMSwgJHF1ZXJ5KTtcclxuXHJcbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC10eXBvZ3JhcGh5KSB7XHJcbiAgICAvLyBBY2NvcmRpbmcgdG8gdGhlIG1vY2tzIGFuZCBzdGlja2Vyc2hlZXQsIHRoZSBsaW5lLWhlaWdodCBpc1xyXG4gICAgLy8gYWRqdXN0ZWQgdG8gMjRweCBmb3IgdGV4dCBjb250ZW50LCBzYW1lIGFzIGZvciBib2R5MS5cclxuICAgIC8qIEBhbHRlcm5hdGUgKi9cclxuICAgIGxpbmUtaGVpZ2h0OiBtYXAtZ2V0KG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LXN0eWxlcywgYm9keTEpLCBsaW5lLWhlaWdodCk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogOHB4IDA7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLXByaW1hcnktdGV4dC1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsICRxdWVyeSk7XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtbGlzdC1pdGVtLWJhc2VfIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBoZWlnaHQ6IDQ4cHg7XHJcbiAgcGFkZGluZzogMCAkbWRjLWxpc3Qtc2lkZS1wYWRkaW5nO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICY6Zm9jdXMge1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFJpcHBsZSBzdHlsZXMgZm9yIGFuIGludGVyYWN0aXZlIGxpc3QgaXRlbSAob25lIHRoYXQgaXMgZW5hYmxlZCBhbmQgaW5zaWRlIGFuIGludGVyYWN0aXZlIGxpc3QpLlxyXG5AbWl4aW4gbWRjLWxpc3QtaXRlbS1pbnRlcmFjdGl2ZS1yaXBwbGVfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcclxuICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5KTtcclxuICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkKCRxdWVyeTogJHF1ZXJ5KTtcclxuICBAaW5jbHVkZSBtZGMtc3RhdGVzKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCBmYWxzZSwgJHF1ZXJ5KTtcclxuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWFjdGl2YXRlZChwcmltYXJ5LCBmYWxzZSwgJHF1ZXJ5KTtcclxuICBAaW5jbHVkZSBtZGMtc3RhdGVzLXNlbGVjdGVkKHByaW1hcnksIGZhbHNlLCAkcXVlcnkpO1xyXG59XHJcblxyXG4vLyBTZXRzIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBncmFwaGljIGVsZW1lbnQsIGFzIHdlbGwgYXMgY2FsY3VsYXRlcyB0aGUgbWFyZ2lucyBmb3JcclxuLy8gdGhlIGdyYXBoaWMgZWxlbWVudCBzdWNoIHRoYXQgdGhlIHRleHQgaXMgYWx3YXlzIG9mZnNldCBieSA3MnB4LCB3aGljaCBpcyBkZWZpbmVkIHdpdGhpblxyXG4vLyB0aGUgc3BlYy5cclxuQG1peGluIG1kYy1saXN0LWdyYXBoaWMtc2l6ZV8oJHNpemUpIHtcclxuICAkdGV4dC1vZmZzZXQ6IDcycHg7XHJcbiAgJHNpZGUtcGFkZGluZzogJG1kYy1saXN0LXNpZGUtcGFkZGluZztcclxuICAkbWFyZ2luLXZhbHVlOiAkdGV4dC1vZmZzZXQgLSAkc2lkZS1wYWRkaW5nIC0gJHNpemU7XHJcblxyXG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIHJpZ2h0LCAkbWFyZ2luLXZhbHVlLCBcIi5tZGMtbGlzdC1pdGVtXCIpO1xyXG5cclxuICB3aWR0aDogJHNpemU7XHJcbiAgaGVpZ2h0OiAkc2l6ZTtcclxufVxyXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uLy4uL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5cbi5tZGMtZHJhd2VyLS1kaXNtaXNzaWJsZSB7XG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsIDApO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAmLm1kYy1kcmF3ZXItLW9wZW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cblxuLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQge1xuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCAwKTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uLy4uL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG4ubWRjLWRyYXdlci0tbW9kYWwge1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLXNjcmltLWZpbGwtY29sb3IoJG1kYy1kcmF3ZXItbW9kYWwtc2NyaW0tY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKCRtZGMtZHJhd2VyLW1vZGFsLWVsZXZhdGlvbik7XG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsIDApO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcblxuICAmLm1kYy1kcmF3ZXItLW9wZW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cblxuLm1kYy1kcmF3ZXItc2NyaW0ge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgei1pbmRleDogJG1kYy1kcmF3ZXItei1pbmRleCAtIDE7XG5cbiAgLm1kYy1kcmF3ZXItLW9wZW4gKyAmIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5tZGMtZHJhd2VyLS1hbmltYXRlICsgJiB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIC5tZGMtZHJhd2VyLS1vcGVuaW5nICsgJiB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJG1kYy1kcmF3ZXItYW5pbWF0aW9uLWVudGVyO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAubWRjLWRyYXdlci0tY2xvc2luZyArICYge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICRtZGMtZHJhd2VyLWFuaW1hdGlvbi1leGl0O1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbiIsIi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vZWxldmF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9yaXBwbGUvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vc2hhcGUvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1mYWItY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtZmFiLXdpdGhvdXQtcmlwcGxlKCRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1mYWItcmlwcGxlKCRxdWVyeSk7XG59XG5cbkBtaXhpbiBtZGMtZmFiLXdpdGhvdXQtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgZmFiXG5cbiAgLm1kYy1mYWIge1xuICAgIEBpbmNsdWRlIG1kYy1mYWItYmFzZV8oJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1mYWItY29udGFpbmVyLWNvbG9yKHNlY29uZGFyeSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1mYWItaWNvbi1zaXplKDI0cHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtZmFiLWluay1jb2xvcihvbi1zZWNvbmRhcnksICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtZmFiLS1taW5pIHtcbiAgICBAaW5jbHVkZSBtZGMtZmFiLS1taW5pXygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWZhYi0tZXh0ZW5kZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mYWItLWV4dGVuZGVkXygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWZhYl9fbGFiZWwge1xuICAgIEBpbmNsdWRlIG1kYy1mYWItLWxhYmVsXygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWZhYl9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZhYl9faWNvbl8oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLy8gSW5jcmVhc2Ugc3BlY2lmaWNpdHkgZm9yIEZBQiBpY29uIHN0eWxlcyB0aGF0IG5lZWQgdG8gb3ZlcnJpZGUgc3R5bGVzIGRlZmluZWQgZm9yIC5tYXRlcmlhbC1pY29uc1xuICAvLyAod2hpY2ggaXMgbG9hZGVkIHNlcGFyYXRlbHkgc28gdGhlIG9yZGVyIG9mIENTUyBkZWZpbml0aW9ucyBpcyBub3QgZ3VhcmFudGVlZClcbiAgLm1kYy1mYWIgLm1kYy1mYWJfX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mYWJfX2ljb24tb3ZlcnJpZGVzXygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWZhYi0tZXhpdGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmFiLS1leGl0ZWRfKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG59XG5cbkBtaXhpbiBtZGMtZmFiLXJpcHBsZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtY29tbW9uKCRxdWVyeSk7XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgZmFiXG5cbiAgLm1kYy1mYWIge1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZSgkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcyhvbi1zZWNvbmRhcnksICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG59XG5cbkBtaXhpbiBtZGMtZmFiLWFjY2Vzc2libGUoJGNvbnRhaW5lci1jb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtZmFiLWNvbnRhaW5lci1jb2xvcigkY29udGFpbmVyLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgJGZpbGwtdG9uZTogbWRjLXRoZW1lLXRvbmUoJGNvbnRhaW5lci1jb2xvcik7XG5cbiAgQGlmICgkZmlsbC10b25lID09IFwiZGFya1wiKSB7XG4gICAgQGluY2x1ZGUgbWRjLWZhYi1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWRhcmssICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKHRleHQtcHJpbWFyeS1vbi1kYXJrLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIG1kYy1mYWItaW5rLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1saWdodCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXModGV4dC1wcmltYXJ5LW9uLWxpZ2h0LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWItY29udGFpbmVyLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yLCAkZWRnZU9wdE91dDogdHJ1ZSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWItaWNvbi1zaXplKCR3aWR0aCwgJGhlaWdodDogJHdpZHRoLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1mYWJfX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgZm9udC1zaXplOiAkaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZhYi1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZhYi1leHRlbmRlZC1mbHVpZCgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZhYi1leHRlbmRlZC1wYWRkaW5nKCRpY29uLXBhZGRpbmcsICRsYWJlbC1wYWRkaW5nLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZhYi1leHRlbmRlZC1sYWJlbC1wYWRkaW5nKCRsYWJlbC1wYWRkaW5nLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgLy8gT2Zmc2V0cyB0aGUgb3V0ZXIgbGFiZWwgcGFkZGluZyBieSBkZWR1Y3RpbmcgaXQgZnJvbSBpY29uIHBhZGRpbmcuXG4gIC5tZGMtZmFiX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCAkaWNvbi1wYWRkaW5nIC0gJGxhYmVsLXBhZGRpbmcsICRpY29uLXBhZGRpbmcpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvciBFeHRlbmRlZCBGQUIgd2l0aCB0ZXh0IGxhYmVsIGZvbGxvd2VkIGJ5IGljb24uXG4gIC5tZGMtZmFiX19sYWJlbCArIC5tZGMtZmFiX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCAkaWNvbi1wYWRkaW5nLCAkaWNvbi1wYWRkaW5nIC0gJGxhYmVsLXBhZGRpbmcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZhYi1leHRlbmRlZC1sYWJlbC1wYWRkaW5nKCRsYWJlbC1wYWRkaW5nLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBwYWRkaW5nOiAwICRsYWJlbC1wYWRkaW5nO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZmFiLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJjpub3QoLm1kYy1mYWItLWV4dGVuZGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZmFiLWV4dGVuZGVkLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cyhcbiAgICBtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cygkbWRjLWZhYi1leHRlbmRlZC1oZWlnaHQsICRyYWRpdXMpLFxuICAgICRydGwtcmVmbGV4aXZlLFxuICAgICRxdWVyeTogJHF1ZXJ5XG4gICk7XG59XG5cbiRtZGMtZmFiLWljb24tZW50ZXItZGVsYXlfOiA5MG1zO1xuJG1kYy1mYWItaWNvbi1lbnRlci1kdXJhdGlvbl86IDE4MG1zO1xuXG5AbWl4aW4gbWRjLWZhYi1iYXNlXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oNiwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtZmFiLXNoYXBlLXJhZGl1cyg1MCUsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogJG1kYy1mYWItaGVpZ2h0O1xuICAgIGhlaWdodDogJG1kYy1mYWItaGVpZ2h0O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgYm94LXNoYWRvdyAkbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uICRtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLFxuICAgICAgb3BhY2l0eSAxNW1zIGxpbmVhciAzMG1zLFxuICAgICAgbWRjLWFuaW1hdGlvbi1lbnRlcih0cmFuc2Zvcm0sICRtZGMtZmFiLWljb24tZW50ZXItZHVyYXRpb25fICsgJG1kYy1mYWItaWNvbi1lbnRlci1kZWxheV8pO1xuICB9XG5cbiAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbig4LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbigxMiwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIC8vIFRPRE8oYWNkdm9yYWspOiBTaG91bGQgdGhpcyBiZSBwYWlyZWQgd2l0aCBzdGF0ZXMgYW5kL29yIHJpcHBsZT8gV2UgZG9uJ3Qgd2FudCB0byBkaXNhYmxlIG91dGxpbmVcbiAgICAvLyAoYW4gYWNjZXNzaWJpbGl0eS91c2FiaWxpdHkgZmVhdHVyZSkgdW5sZXNzIHdlJ3JlIGNvbmZpZGVudCB0aGF0IHRoZXJlIGlzIGFsc28gYSB2aXN1YWwgaW5kaWNhdGlvbiB0aGF0IHRoZVxuICAgIC8vIGVsZW1lbnQgaGFzIGZvY3VzLiBJZiB0aGUgY2xpZW50IGhhcyBjdXN0b21pemVkIHRoZSBET00gaW4gc29tZSB1bmV4cGVjdGVkIHdheSwgYW5kIGlzIGNlcnRhaW4gdGhhdCBhbm90aGVyXG4gICAgLy8gZWxlbWVudCB3aWxsIHJlY2VpdmUgZm9jdXMgaW5zdGVhZCwgdGhleSBjYW4gYWx3YXlzIG92ZXJyaWRlIHRoaXMgcHJvcGVydHkgbWFudWFsbHkgaW4gdGhlaXIgQ1NTLlxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhpcyBhbGxvd3MgZm9yIHVzaW5nIFNWR3Mgd2l0aGluIHRoZW0gdG8gYWxpZ24gcHJvcGVybHkgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyBDYW4gcmVtb3ZlIG9uY2U6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTQ1MTUgaXMgcmVzb2x2ZWQuXG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXR5cGVcbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBpZ25vcmVcbiAgPiBzdmcge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbiAgLy8gc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1tYXgtdHlwZVxufVxuXG5AbWl4aW4gbWRjLWZhYi0tbWluaV8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgd2lkdGg6ICRtZGMtZmFiLW1pbmktaGVpZ2h0O1xuICAgIGhlaWdodDogJG1kYy1mYWItbWluaS1oZWlnaHQ7XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWItLWV4dGVuZGVkXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGJ1dHRvbiwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtZmFiLWV4dGVuZGVkLXNoYXBlLXJhZGl1cyg1MCUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWZhYi1leHRlbmRlZC1wYWRkaW5nKCRtZGMtZmFiLWV4dGVuZGVkLWljb24tcGFkZGluZywgJG1kYy1mYWItZXh0ZW5kZWQtbGFiZWwtcGFkZGluZywgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkbWRjLWZhYi1leHRlbmRlZC1oZWlnaHQ7XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWJfX2ljb25fKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246IG1kYy1hbmltYXRpb24tZW50ZXIodHJhbnNmb3JtLCAkbWRjLWZhYi1pY29uLWVudGVyLWR1cmF0aW9uXywgJG1kYy1mYWItaWNvbi1lbnRlci1kZWxheV8pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZhYl9fbGFiZWxfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWJfX2ljb24tb3ZlcnJpZGVzXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZmFiLS1leGl0ZWRfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIG9wYWNpdHkgMTVtcyBsaW5lYXIgMTUwbXMsXG4gICAgICBtZGMtYW5pbWF0aW9uLWV4aXQtcGVybWFuZW50KHRyYW5zZm9ybSwgMTgwbXMpO1xuICB9XG5cbiAgLm1kYy1mYWJfX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiBtZGMtYW5pbWF0aW9uLWV4aXQtcGVybWFuZW50KHRyYW5zZm9ybSwgMTM1bXMpO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtZmFiLWV4dGVuZGVkLWljb24tcGFkZGluZzogMTJweCAhZGVmYXVsdDtcbiRtZGMtZmFiLWV4dGVuZGVkLWxhYmVsLXBhZGRpbmc6IDIwcHggIWRlZmF1bHQ7XG4kbWRjLWZhYi1oZWlnaHQ6IDU2cHggIWRlZmF1bHQ7XG4kbWRjLWZhYi1taW5pLWhlaWdodDogNDBweCAhZGVmYXVsdDtcbiRtZGMtZmFiLWV4dGVuZGVkLWhlaWdodDogNDhweCAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL2Jhc2UvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vLyBGbG9hdGluZyBMYWJlbCBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IG11bHRpcGxlIGNvbXBvbmVudHMsIGJ1dCBpdHMgc3R5bGVzIHNob3VsZCBvbmx5IGJlIGVtaXR0ZWQgb25jZSB3aGVuIGJ1bmRsZWRcbkBpbmNsdWRlIG1kYy1iYXNlLWVtaXQtb25jZShcIm1kYy1mbG9hdGluZy1sYWJlbFwiKSB7XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGZsb2F0aW5nLWxhYmVsXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KHN1YnRpdGxlMSk7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAgIHRyYW5zaXRpb246XG4gICAgICB0cmFuc2Zvcm0gJG1kYy1mbG9hdGluZy1sYWJlbC10cmFuc2l0aW9uLWR1cmF0aW9uICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbixcbiAgICAgIGNvbG9yICRtZGMtZmxvYXRpbmctbGFiZWwtdHJhbnNpdGlvbi1kdXJhdGlvbiAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1cmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHRleHQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvLyBGb3JjZSB0aGUgbGFiZWwgaW50byBpdHMgb3duIGxheWVyIHRvIHByZXZlbnQgdmlzaWJsZSBsYXllciBwcm9tb3Rpb24gYWRqdXN0bWVudHNcbiAgICAvLyB3aGVuIHRoZSByaXBwbGUgaXMgYWN0aXZhdGVkIGJlaGluZCBpdC5cbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuXG4gICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogMDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICB9XG5cbiAgQGF0LXJvb3Qge1xuICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbigkbWRjLWZsb2F0aW5nLWxhYmVsLXBvc2l0aW9uLXkpO1xuICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24oc3RhbmRhcmQpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWtleWZyYW1lcyhzdGFuZGFyZCwgJG1kYy1mbG9hdGluZy1sYWJlbC1wb3NpdGlvbi15KTtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtZmxvYXRpbmctbGFiZWwtaW5rLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbn1cblxuLy8gVXNlZCBmb3IgdGV4dGFyZWEgaW4gY2FzZSBvZiBzY3JvbGxpbmdcbkBtaXhpbiBtZGMtZmxvYXRpbmctbGFiZWwtZmlsbC1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbn1cblxuQG1peGluIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1rZXlmcmFtZXMoJG1vZGlmaWVyLCAkcG9zaXRpb25ZLCAkcG9zaXRpb25YOiAwJSwgJHNjYWxlOiAuNzUpIHtcbiAgQGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtI3skbW9kaWZpZXJ9IHtcbiAgICAvKiBjbGVhbi1jc3MgaWdub3JlOnN0YXJ0ICovXG4gICAgMCUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtICN7JHBvc2l0aW9uWH0pKSB0cmFuc2xhdGVZKC0jeyRwb3NpdGlvbll9KSBzY2FsZSgjeyRzY2FsZX0pO1xuICAgIH1cblxuICAgIDMzJSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjUsIDAsIC43MDE3MzIsIC40OTU4MTkpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoNCUgLSAjeyRwb3NpdGlvblh9KSkgdHJhbnNsYXRlWSgtI3skcG9zaXRpb25ZfSkgc2NhbGUoI3skc2NhbGV9KTtcbiAgICB9XG5cbiAgICA2NiUge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4zMDI0MzUsIC4zODEzNTIsIC41NSwgLjk1NjM1Mik7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNCUgLSAjeyRwb3NpdGlvblh9KSkgdHJhbnNsYXRlWSgtI3skcG9zaXRpb25ZfSkgc2NhbGUoI3skc2NhbGV9KTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAjeyRwb3NpdGlvblh9KSkgdHJhbnNsYXRlWSgtI3skcG9zaXRpb25ZfSkgc2NhbGUoI3skc2NhbGV9KTtcbiAgICB9XG4gICAgLyogY2xlYW4tY3NzIGlnbm9yZTplbmQgKi9cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uKCRwb3NpdGlvblksICRwb3NpdGlvblg6IDAlLCAkc2NhbGU6IC43NSkge1xuICAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgQGlmICRwb3NpdGlvblggPiAwIG9yICRwb3NpdGlvblggPCAwIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMSAqICRwb3NpdGlvblkpIHRyYW5zbGF0ZVgoLTEgKiAkcG9zaXRpb25YKSBzY2FsZSgkc2NhbGUpO1xuXG4gICAgICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xICogJHBvc2l0aW9uWSkgdHJhbnNsYXRlWCgkcG9zaXRpb25YKSBzY2FsZSgkc2NhbGUpO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xICogJHBvc2l0aW9uWSkgc2NhbGUoJHNjYWxlKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24oJG1vZGlmaWVyKSB7XG4gIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlIHtcbiAgICBhbmltYXRpb246IG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS0jeyRtb2RpZmllcn0gMjUwbXMgMTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZsb2F0aW5nLWxhYmVsLW1heC13aWR0aCgkbWF4LXdpZHRoKSB7XG4gIG1heC13aWR0aDogJG1heC13aWR0aDtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOSBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1mb3JtLWZpZWxkLWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1mb3JtLWZpZWxkIHtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShib2R5MiwgJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCB0ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gICAgPiBsYWJlbCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBvcmRlcjogMDtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkbWRjLWZvcm0tZmllbGQtaXRlbS1zcGFjaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gICAgICA+IGxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRtZGMtZm9ybS1maWVsZC1pdGVtLXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWZvcm0tZmllbGQtLWFsaWduLWVuZCB7XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gICAgPiBsYWJlbCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgcGFkZGluZy1yaWdodDogJG1kYy1mb3JtLWZpZWxkLWl0ZW0tc3BhY2luZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAgICAgPiBsYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbWRjLWZvcm0tZmllbGQtaXRlbS1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTkgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy1mb3JtLWZpZWxkLWl0ZW0tc3BhY2luZzogNHB4ICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1pY29uLWJ1dHRvbi1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi13aXRob3V0LXJpcHBsZSgkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtaWNvbi1idXR0b24tcmlwcGxlKCRxdWVyeSk7XG59XG5cbkBtaXhpbiBtZGMtaWNvbi1idXR0b24td2l0aG91dC1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGljb24tYnV0dG9uXG4gIC5tZGMtaWNvbi1idXR0b24ge1xuICAgIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi1iYXNlXygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWljb24tYnV0dG9uX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbiAgICAmLm1kYy1pY29uLWJ1dHRvbl9faWNvbi0tb24ge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWljb24tYnV0dG9uLS1vbiB7XG4gICAgLm1kYy1pY29uLWJ1dHRvbl9faWNvbiB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gICAgICAmLm1kYy1pY29uLWJ1dHRvbl9faWNvbi0tb24ge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG5AbWl4aW4gbWRjLWljb24tYnV0dG9uLXJpcHBsZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtY29tbW9uKCRxdWVyeSk7XG5cbiAgLm1kYy1pY29uLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy11bmJvdW5kZWQoJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtaWNvbi1idXR0b24tc2l6ZSgkd2lkdGgsICRoZWlnaHQ6ICR3aWR0aCwgJHBhZGRpbmc6IG1heCgkd2lkdGgsICRoZWlnaHQpLzIsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHdpZHRoOiAkd2lkdGggKyAkcGFkZGluZyAqIDI7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0ICsgJHBhZGRpbmcgKiAyO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGZvbnQtc2l6ZTogbWF4KCR3aWR0aCwgJGhlaWdodCk7XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXR5cGVcbiAgc3ZnLFxuICBpbWcge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWljb24tYnV0dG9uLWluay1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLXN0YXRlcygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbn1cblxuQG1peGluIG1kYy1pY29uLWJ1dHRvbi1iYXNlXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi1zaXplKCRtZGMtaWNvbi1idXR0b24tc2l6ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsIHRleHQtZGlzYWJsZWQtb24tbGlnaHQpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4kbWRjLWljb24tYnV0dG9uLXNpemU6IDI0cHggIWRlZmF1bHQ7XG4iLCIvLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9zaGFwZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9zaGFwZS9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90eXBvZ3JhcGh5L21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtaW1hZ2UtbGlzdC1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGltYWdlLWxpc3RcbiAgLm1kYy1pbWFnZS1saXN0IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIC8vIE1hcmdpbiBhbmQgcGFkZGluZyBhcmUgc2V0IHRvIG92ZXJyaWRlIGRlZmF1bHQgdXNlciBhZ2VudCBzdHlsZXMgZm9yIGxpc3RzLCBhbmQgYWxzbyB0byBjZW50ZXIgdGhlIEltYWdlIExpc3RcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cblxuICAubWRjLWltYWdlLWxpc3RfX2l0ZW0sXG4gIC5tZGMtaW1hZ2UtbGlzdF9faW1hZ2UtYXNwZWN0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIFN1cHBvcnRzIGFic29sdXRlIHBvc2l0aW9uaW5nIG9mIHByb3RlY3RlZCBzdXBwb3J0aW5nIGNvbnRlbnQgZm9yIGl0ZW0sIGFuZCBpbWFnZSBmb3IgaW1hZ2UtYXNwZWN0LWNvbnRhaW5lclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG4gIH1cblxuICAubWRjLWltYWdlLWxpc3RfX2l0ZW0ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1pbWFnZS1saXN0X19pbWFnZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlc2NlbmRhbnQgc2VsZWN0b3IgYWxsb3dzIGltYWdlLWFzcGVjdC1jb250YWluZXIgdG8gYmUgb3B0aW9uYWwgaW4gRE9NIHN0cnVjdHVyZVxuICAubWRjLWltYWdlLWxpc3RfX2ltYWdlLWFzcGVjdC1jb250YWluZXIgLm1kYy1pbWFnZS1saXN0X19pbWFnZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIC8vIEJhY2tncm91bmQgc3R5bGVzIHRvIHN1cHBvcnQgZGl2IGluc3RlYWQgb2YgaW1nXG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtaW1hZ2UtbGlzdC1hc3BlY3QoMSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtaW1hZ2UtbGlzdC1zaGFwZS1yYWRpdXMoMCwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIC5tZGMtaW1hZ2UtbGlzdF9fc3VwcG9ydGluZyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsIHRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgICBsaW5lLWhlaWdodDogJG1kYy1pbWFnZS1saXN0LWljb24tc2l6ZTtcbiAgICB9XG4gIH1cblxuICAubWRjLWltYWdlLWxpc3RfX2xhYmVsIHtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShzdWJ0aXRsZTEsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1vdmVyZmxvdy1lbGxpcHNpcygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAvLyBNb2RpZmllciBmb3IgbGFiZWxzL2ljb25zIHdpdGggdGV4dCBwcm90ZWN0aW9uLCBvdmVybGF5aW5nIGltYWdlcy5cblxuICAubWRjLWltYWdlLWxpc3QtLXdpdGgtdGV4dC1wcm90ZWN0aW9uIC5tZGMtaW1hZ2UtbGlzdF9fc3VwcG9ydGluZyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAkbWRjLWltYWdlLWxpc3QtdGV4dC1wcm90ZWN0aW9uLWhlaWdodDtcbiAgICAgIHBhZGRpbmc6IDAgJG1kYy1pbWFnZS1saXN0LXRleHQtcHJvdGVjdGlvbi1ob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgYmFja2dyb3VuZDogJG1kYy1pbWFnZS1saXN0LXRleHQtcHJvdGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTWFzb25yeSBJbWFnZSBMaXN0LCB1c2luZyBDU1MgY29sdW1ucyAoaS5lLiByZW5kZXJzIGRvd24gdGhlbiBhY3Jvc3MpXG5cbiAgLm1kYy1pbWFnZS1saXN0LS1tYXNvbnJ5IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7IC8vIE92ZXJyaWRlIGZsZXhcbiAgICB9XG5cbiAgICAubWRjLWltYWdlLWxpc3RfX2l0ZW0ge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1pbWFnZS1saXN0X19pbWFnZSB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG5AbWl4aW4gbWRjLWltYWdlLWxpc3QtYXNwZWN0KCR3aWR0aC1oZWlnaHQtcmF0aW8sICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLWltYWdlLWxpc3RfX2ltYWdlLWFzcGVjdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlIC8gI3skd2lkdGgtaGVpZ2h0LXJhdGlvfSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtaW1hZ2UtbGlzdC1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIC5tZGMtaW1hZ2UtbGlzdF9faW1hZ2Uge1xuICAgIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gICRzZWxlY3RvcjogaWYoJiwgXCImLm1kYy1pbWFnZS1saXN0LS13aXRoLXRleHQtcHJvdGVjdGlvblwiLCBcIi5tZGMtaW1hZ2UtbGlzdC0td2l0aC10ZXh0LXByb3RlY3Rpb25cIik7XG5cbiAgI3skc2VsZWN0b3J9IC5tZGMtaW1hZ2UtbGlzdF9fc3VwcG9ydGluZyB7XG4gICAgJG1hc2tlZC1yYWRpdXM6IG1kYy1zaGFwZS1tYXNrLXJhZGl1cygkcmFkaXVzLCAwIDAgMSAxKTtcblxuICAgIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoJG1hc2tlZC1yYWRpdXMsICRydGwtcmVmbGV4aXZlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8gU3RhbmRhcmQgSW1hZ2UgTGlzdFxuXG5AbWl4aW4gbWRjLWltYWdlLWxpc3Qtc3RhbmRhcmQtY29sdW1ucyhcbiAgJGNvbHVtbi1jb3VudCxcbiAgJGd1dHRlci1zaXplOiAkbWRjLWltYWdlLWxpc3Qtc3RhbmRhcmQtZ3V0dGVyLXNpemUsXG4gICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKClcbikge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC8vIFRoaXMgdXNlcyBtYXJnaW4gcmF0aGVyIHRoYW4gcGFkZGluZyB0byBmYWNpbGl0YXRlIHByb3Blcmx5IHBvc2l0aW9uaW5nIHRoZSBzdXBwb3J0aW5nIGNvbnRlbnQgZWxlbWVudCB3aGVuXG4gIC8vIC0td2l0aC10ZXh0LXByb3RlY3Rpb24gaXMgdXNlZC5cbiAgLm1kYy1pbWFnZS1saXN0X19pdGVtIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gU3VidHJhY3QgZXh0cmEgZnJhY3Rpb24gZnJvbSBlYWNoIGl0ZW0ncyB3aWR0aCB0byBlbnN1cmUgY29ycmVjdCB3cmFwcGluZyBpbiBJRS9FZGdlIHdoaWNoIHJvdW5kIGRpZmZlcmVudGx5XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC8gI3skY29sdW1uLWNvdW50fSAtICN7JGd1dHRlci1zaXplICsgMSAvICRjb2x1bW4tY291bnR9KTtcbiAgICAgIG1hcmdpbjogJGd1dHRlci1zaXplIC8gMjtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWFzb25yeSBJbWFnZSBMaXN0XG5cbkBtaXhpbiBtZGMtaW1hZ2UtbGlzdC1tYXNvbnJ5LWNvbHVtbnMoXG4gICRjb2x1bW4tY291bnQsXG4gICRndXR0ZXItc2l6ZTogJG1kYy1pbWFnZS1saXN0LW1hc29ucnktZ3V0dGVyLXNpemUsXG4gICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKClcbikge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgY29sdW1uLWNvdW50OiAkY29sdW1uLWNvdW50O1xuICAgIGNvbHVtbi1nYXA6ICRndXR0ZXItc2l6ZTtcbiAgfVxuXG4gIC5tZGMtaW1hZ2UtbGlzdF9faXRlbSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRndXR0ZXItc2l6ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuJG1kYy1pbWFnZS1saXN0LXN0YW5kYXJkLWd1dHRlci1zaXplOiA0cHggIWRlZmF1bHQ7XG4kbWRjLWltYWdlLWxpc3QtbWFzb25yeS1ndXR0ZXItc2l6ZTogMTZweCAhZGVmYXVsdDtcbiRtZGMtaW1hZ2UtbGlzdC1pY29uLXNpemU6IDI0cHggIWRlZmF1bHQ7XG4kbWRjLWltYWdlLWxpc3QtdGV4dC1wcm90ZWN0aW9uLWJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgLjYpICFkZWZhdWx0O1xuJG1kYy1pbWFnZS1saXN0LXRleHQtcHJvdGVjdGlvbi1oZWlnaHQ6IDQ4cHggIWRlZmF1bHQ7XG4kbWRjLWltYWdlLWxpc3QtdGV4dC1wcm90ZWN0aW9uLWhvcml6b250YWwtcGFkZGluZzogMTZweCAhZGVmYXVsdDtcbiIsIi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi9taXhpbnNcIjtcblxuOnJvb3Qge1xuICBAZWFjaCAkc2l6ZSBpbiBtYXAta2V5cygkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMpIHtcbiAgICAtLW1kYy1sYXlvdXQtZ3JpZC1tYXJnaW4tI3skc2l6ZX06ICN7bWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWRlZmF1bHQtbWFyZ2luLCAkc2l6ZSl9O1xuICAgIC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci0jeyRzaXplfTogI3ttYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtZGVmYXVsdC1ndXR0ZXIsICRzaXplKX07XG4gICAgLS1tZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoLSN7JHNpemV9OiAje21hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW4td2lkdGgsICRzaXplKX07XG4gIH1cbn1cblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgbGF5b3V0LWdyaWRcbi5tZGMtbGF5b3V0LWdyaWQge1xuICBAZWFjaCAkc2l6ZSBpbiBtYXAta2V5cygkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMpIHtcbiAgICBAaW5jbHVkZSBtZGMtbGF5b3V0LWdyaWQtbWVkaWEtcXVlcnlfKCRzaXplKSB7XG4gICAgICAkbWFyZ2luOiBtYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtZGVmYXVsdC1tYXJnaW4sICRzaXplKTtcblxuICAgICAgQGluY2x1ZGUgbWRjLWxheW91dC1ncmlkKCRzaXplLCAkbWFyZ2luLCAkbWRjLWxheW91dC1ncmlkLW1heC13aWR0aCk7XG4gICAgfVxuICB9XG59XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2lubmVyIHtcbiAgQGVhY2ggJHNpemUgaW4gbWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKSB7XG4gICAgQGluY2x1ZGUgbWRjLWxheW91dC1ncmlkLW1lZGlhLXF1ZXJ5Xygkc2l6ZSkge1xuICAgICAgJG1hcmdpbjogbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWRlZmF1bHQtbWFyZ2luLCAkc2l6ZSk7XG4gICAgICAkZ3V0dGVyOiBtYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtZGVmYXVsdC1ndXR0ZXIsICRzaXplKTtcblxuICAgICAgQGluY2x1ZGUgbWRjLWxheW91dC1ncmlkLWlubmVyKCRzaXplLCAkbWFyZ2luLCAkZ3V0dGVyKTtcbiAgICB9XG4gIH1cbn1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbCB7XG4gIC8vIHNlbGVjdCB0aGUgdXBwZXIgYnJlYWtwb2ludFxuICAkdXBwZXItYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucyksIDEpO1xuXG4gIEBlYWNoICRzaXplIGluIG1hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucykge1xuICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1tZWRpYS1xdWVyeV8oJHNpemUpIHtcbiAgICAgICRndXR0ZXI6IG1hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1kZWZhdWx0LWd1dHRlciwgJHNpemUpO1xuXG4gICAgICBAaW5jbHVkZSBtZGMtbGF5b3V0LWdyaWQtY2VsbCgkc2l6ZSwgJG1kYy1sYXlvdXQtZ3JpZC1kZWZhdWx0LWNvbHVtbi1zcGFuLCAkZ3V0dGVyKTtcblxuICAgICAgQGZvciAkc3BhbiBmcm9tIDEgdGhyb3VnaCBtYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucywgJHVwcGVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgLy8gU3BhbiBjbGFzc2VzLlxuICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBtYXgtbmVzdGluZy1kZXB0aFxuICAgICAgICBAYXQtcm9vdCAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLSN7JHNwYW59LFxuICAgICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tI3skc3Bhbn0tI3skc2l6ZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1jZWxsLXNwYW5fKCRzaXplLCAkc3BhbiwgJGd1dHRlcik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gc3R5bGVsaW50LWVuYWJsZSBtYXgtbmVzdGluZy1kZXB0aFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE9yZGVyIG92ZXJyaWRlIGNsYXNzZXMuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMsICR1cHBlci1icmVha3BvaW50KSB7XG4gICAgJi0tb3JkZXItI3skaX0ge1xuICAgICAgQGluY2x1ZGUgbWRjLWxheW91dC1ncmlkLWNlbGwtb3JkZXIoJGkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFsaWdubWVudCBjbGFzc2VzLlxuICAmLS1hbGlnbi10b3Age1xuICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1jZWxsLWFsaWduKHRvcCk7XG4gIH1cblxuICAmLS1hbGlnbi1taWRkbGUge1xuICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1jZWxsLWFsaWduKG1pZGRsZSk7XG4gIH1cblxuICAmLS1hbGlnbi1ib3R0b20ge1xuICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1jZWxsLWFsaWduKGJvdHRvbSk7XG4gIH1cbn1cblxuLm1kYy1sYXlvdXQtZ3JpZC0tZml4ZWQtY29sdW1uLXdpZHRoIHtcbiAgQGVhY2ggJHNpemUgaW4gbWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKSB7XG4gICAgQGluY2x1ZGUgbWRjLWxheW91dC1ncmlkLW1lZGlhLXF1ZXJ5Xygkc2l6ZSkge1xuICAgICAgJG1hcmdpbjogbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWRlZmF1bHQtbWFyZ2luLCAkc2l6ZSk7XG4gICAgICAkZ3V0dGVyOiBtYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtZGVmYXVsdC1ndXR0ZXIsICRzaXplKTtcbiAgICAgICRjb2x1bW4td2lkdGg6IG1hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW4td2lkdGgsICRzaXplKTtcblxuICAgICAgQGluY2x1ZGUgbWRjLWxheW91dC1ncmlkLWZpeGVkLWNvbHVtbi13aWR0aCgkc2l6ZSwgJG1hcmdpbiwgJGd1dHRlciwgJGNvbHVtbi13aWR0aCk7XG4gICAgfVxuICB9XG59XG5cbi5tZGMtbGF5b3V0LWdyaWQtLWFsaWduLWxlZnQge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4ubWRjLWxheW91dC1ncmlkLS1hbGlnbi1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxuIiwiLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy8gcmV0dXJucyB0aGUgbG93ZXIgZ3JpZCBib3VuZGFyeSBvciBudWxsIGlmIHRoZSBzbWFsbGVzdCBncmlkIGlzIHNlbGVjdGVkXG5AZnVuY3Rpb24gbWRjLWxheW91dC1ncmlkLWJyZWFrcG9pbnQtbWluKCRzaXplKSB7XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSkge1xuICAgIEBlcnJvciBcIkludmFsaWQgc3R5bGUgc3BlY2lmaWVkISBDaG9vc2Ugb25lIG9mICN7bWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKX1cIjtcbiAgfVxuICAkbWluOiBtYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtYnJlYWtwb2ludHMsICRzaXplKTtcblxuICBAcmV0dXJuIGlmKCRtaW4gPiAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gcmV0dXJucyB0aGUgdXBwZXIgZ3JpZCBib3VuZGFyeSBvciBudWxsIGlmIHRoZSBsYXJnZXN0IGdyaWQgaXMgc2VsZWN0ZWRcbkBmdW5jdGlvbiBtZGMtbGF5b3V0LWdyaWQtYnJlYWtwb2ludC1tYXgoJHNpemUpIHtcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMsICRzaXplKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCBzdHlsZSBzcGVjaWZpZWQhIENob29zZSBvbmUgb2YgI3ttYXAta2V5cygkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMpfVwiO1xuICB9XG4gICRuYW1lczogbWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKTtcbiAgJG46IGluZGV4KCRuYW1lcywgJHNpemUpO1xuICAkcHJldjogaWYoJG4gPiAxLCBudGgoJG5hbWVzLCAkbiAtIDEpLCBudWxsKTtcblxuICBAcmV0dXJuIGlmKCRwcmV2LCAobWRjLWxheW91dC1ncmlkLWJyZWFrcG9pbnQtbWluKCRwcmV2KSAtIDFweCksIG51bGwpO1xufVxuXG4vLyBQcml2YXRlIG1peGlucywgbWVhbnQgZm9yIGludGVybmFsIHVzZS5cbkBtaXhpbiBtZGMtbGF5b3V0LWdyaWQtbWVkaWEtcXVlcnlfKCRzaXplKSB7XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSkge1xuICAgIEBlcnJvciBcIkludmFsaWQgc3R5bGUgc3BlY2lmaWVkISBDaG9vc2Ugb25lIG9mICN7bWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKX1cIjtcbiAgfVxuXG4gICRtaW46IG1kYy1sYXlvdXQtZ3JpZC1icmVha3BvaW50LW1pbigkc2l6ZSk7XG4gICRtYXg6IG1kYy1sYXlvdXQtZ3JpZC1icmVha3BvaW50LW1heCgkc2l6ZSk7XG5cbiAgQGlmICRtaW4gPT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICAvLyBQaG9uZVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIC8vIFRhYmxldFxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCA9PSBudWxsIHtcbiAgICAvLyBEZXNrdG9wXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgLy8gRmFsbGJhY2sgLSBubyBicmVha3BvaW50cyBkZWZpbmVkXG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG1kYy1sYXlvdXQtZ3JpZC1jZWxsLXNwYW5fKCRzaXplLCAkc3BhbiwgJGd1dHRlcikge1xuICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucywgJHNpemUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHN0eWxlIHNwZWNpZmllZCEgQ2hvb3NlIG9uZSBvZiAje21hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucyl9XCI7XG4gIH1cblxuICAkcGVyY2VudDogcGVyY2VudGFnZSgkc3BhbiAvIG1hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSkpO1xuXG4gIEBpZiAkcGVyY2VudCA+IDEwMCUge1xuICAgICRwZXJjZW50OiAxMDAlO1xuICB9XG5cbiAgd2lkdGg6IGNhbGMoI3skcGVyY2VudH0gLSAjeyRndXR0ZXJ9KTtcbiAgd2lkdGg6IGNhbGMoI3skcGVyY2VudH0gLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLSN7JHNpemV9LCAjeyRndXR0ZXJ9KSk7XG5cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIG1pbigkc3BhbiwgbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMsICRzaXplKSk7XG4gIH1cbn1cblxuLy8gUHVibGljIG1peGlucywgbWVhbnQgZm9yIGRldmVsb3BlciB1c2FnZS5cbkBtaXhpbiBtZGMtbGF5b3V0LWdyaWQoJHNpemUsICRtYXJnaW4sICRtYXgtd2lkdGg6IG51bGwpIHtcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMsICRzaXplKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCBzdHlsZSBzcGVjaWZpZWQhIENob29zZSBvbmUgb2YgI3ttYXAta2V5cygkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMpfVwiO1xuICB9XG5cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6ICRtYXJnaW47XG4gIHBhZGRpbmc6IHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1tYXJnaW4tI3skc2l6ZX0sICN7JG1hcmdpbn0pO1xuXG4gIEBpZiAkbWF4LXdpZHRoIHtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gIH1cbn1cblxuQG1peGluIG1kYy1sYXlvdXQtZ3JpZC1pbm5lcigkc2l6ZSwgJG1hcmdpbiwgJGd1dHRlcikge1xuICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucywgJHNpemUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHN0eWxlIHNwZWNpZmllZCEgQ2hvb3NlIG9uZSBvZiAje21hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucyl9XCI7XG4gIH1cblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgbWFyZ2luOiAtJGd1dHRlciAvIDI7XG4gIG1hcmdpbjogY2FsYyh2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLSN7JHNpemV9LCAjeyRndXR0ZXJ9KSAvIDIgKiAtMSk7XG5cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBtYXJnaW46IDA7XG4gICAgZ3JpZC1nYXA6ICRndXR0ZXI7XG4gICAgZ3JpZC1nYXA6IHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItI3skc2l6ZX0sICRndXR0ZXIpO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KG1hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSksIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWxheW91dC1ncmlkLWNlbGwoJHNpemUsICRkZWZhdWx0LXNwYW4sICRndXR0ZXIpIHtcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMsICRzaXplKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCBzdHlsZSBzcGVjaWZpZWQhIENob29zZSBvbmUgb2YgI3ttYXAta2V5cygkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMpfVwiO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWxheW91dC1ncmlkLWNlbGwtc3Bhbl8oJHNpemUsICRkZWZhdWx0LXNwYW4sICRndXR0ZXIpO1xuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogJGd1dHRlciAvIDI7XG4gIG1hcmdpbjogY2FsYyh2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLSN7JHNpemV9LCAjeyRndXR0ZXJ9KSAvIDIpO1xuXG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWxheW91dC1ncmlkLWNlbGwtb3JkZXIoJG9yZGVyKSB7XG4gIG9yZGVyOiAkb3JkZXI7XG59XG5cbkBtaXhpbiBtZGMtbGF5b3V0LWdyaWQtY2VsbC1hbGlnbigkcG9zaXRpb24pIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBcInRvcFwiIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuXG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICB9XG4gIH1cblxuICBAaWYgJHBvc2l0aW9uID09IFwibWlkZGxlXCIge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgfVxuXG4gIEBpZiAkcG9zaXRpb24gPT0gXCJib3R0b21cIiB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICB9XG4gIH1cblxuICBAaWYgJHBvc2l0aW9uID09IFwic3RyZXRjaFwiIHtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtbGF5b3V0LWdyaWQtZml4ZWQtY29sdW1uLXdpZHRoKCRzaXplLCAkbWFyZ2luLCAkZ3V0dGVyLCAkY29sdW1uLXdpZHRoKSB7XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSkge1xuICAgIEBlcnJvciBcIkludmFsaWQgc3R5bGUgc3BlY2lmaWVkISBDaG9vc2Ugb25lIG9mICN7bWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKX1cIjtcbiAgfVxuXG4gICRjb2x1bW5Db3VudDogbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMsICRzaXplKTtcbiAgJGd1dHRlci1udW1iZXI6ICRjb2x1bW5Db3VudCAtIDE7XG4gICRtYXJnaW4tbnVtYmVyOiAyO1xuXG4gIHdpZHRoOiAkY29sdW1uLXdpZHRoICogJGNvbHVtbkNvdW50ICsgJGd1dHRlciAqICRndXR0ZXItbnVtYmVyICsgJG1hcmdpbiAqICRtYXJnaW4tbnVtYmVyO1xuICB3aWR0aDpcbiAgICBjYWxjKFxuICAgICAgdmFyKC0tbWRjLWxheW91dC1ncmlkLWNvbHVtbi13aWR0aC0jeyRzaXplfSwgI3skY29sdW1uLXdpZHRofSkgKiAjeyRjb2x1bW5Db3VudH0gK1xuICAgICAgdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci0jeyRzaXplfSwgI3skZ3V0dGVyfSkgKiAjeyRndXR0ZXItbnVtYmVyfSArXG4gICAgICB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLSN7JHNpemV9LCAjeyRtYXJnaW59KSAqICN7JG1hcmdpbi1udW1iZXJ9XG4gICAgKTtcbn1cbiIsIi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuJG1kYy1sYXlvdXQtZ3JpZC1icmVha3BvaW50czogKFxuICBkZXNrdG9wOiA4NDBweCxcbiAgdGFibGV0OiA0ODBweCxcbiAgcGhvbmU6IDBweFxuKSAhZGVmYXVsdDtcblxuJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zOiAoXG4gIGRlc2t0b3A6IDEyLFxuICB0YWJsZXQ6IDgsXG4gIHBob25lOiA0XG4pICFkZWZhdWx0O1xuXG4kbWRjLWxheW91dC1ncmlkLWRlZmF1bHQtbWFyZ2luOiAoXG4gIGRlc2t0b3A6IDI0cHgsXG4gIHRhYmxldDogMTZweCxcbiAgcGhvbmU6IDE2cHhcbikgIWRlZmF1bHQ7XG5cbiRtZGMtbGF5b3V0LWdyaWQtZGVmYXVsdC1ndXR0ZXI6IChcbiAgZGVza3RvcDogMjRweCxcbiAgdGFibGV0OiAxNnB4LFxuICBwaG9uZTogMTZweFxuKSAhZGVmYXVsdDtcblxuJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW4td2lkdGg6IChcbiAgZGVza3RvcDogNzJweCxcbiAgdGFibGV0OiA3MnB4LFxuICBwaG9uZTogNzJweFxuKSAhZGVmYXVsdDtcblxuJG1kYy1sYXlvdXQtZ3JpZC1kZWZhdWx0LWNvbHVtbi1zcGFuOiA0ICFkZWZhdWx0O1xuXG4kbWRjLWxheW91dC1ncmlkLW1heC13aWR0aDogbnVsbCAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vYmFzZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5cbi8vIExpbmUgUmlwcGxlIGlzIGludGVuZGVkIGZvciB1c2UgYnkgbXVsdGlwbGUgY29tcG9uZW50cywgYnV0IGl0cyBzdHlsZXMgc2hvdWxkIG9ubHkgYmUgZW1pdHRlZCBvbmNlIHdoZW4gYnVuZGxlZFxuQGluY2x1ZGUgbWRjLWJhc2UtZW1pdC1vbmNlKFwibWRjLWxpbmUtcmlwcGxlXCIpIHtcbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgbGluZS1yaXBwbGVcbiAgLm1kYy1saW5lLXJpcHBsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgIHRyYW5zaXRpb246IG1kYy1saW5lLXJpcHBsZS10cmFuc2l0aW9uLXZhbHVlKHRyYW5zZm9ybSksIG1kYy1saW5lLXJpcHBsZS10cmFuc2l0aW9uLXZhbHVlKG9wYWNpdHkpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgei1pbmRleDogMjtcbiAgfVxuXG4gIC5tZGMtbGluZS1yaXBwbGUtLWFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIC5tZGMtbGluZS1yaXBwbGUtLWRlYWN0aXZhdGluZyB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBrZXlmcmFtZXMgcHJpbWFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAyMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNSwgMCwgLjcwMTczMiwgLjQ5NTgxOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgNTkuMTUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjMwMjQzNSwgLjM4MTM1MiwgLjU1LCAuOTU2MzUyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoODMuNjcxNDIlKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDAuNjExMDU3JSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBwcmltYXJ5LWluZGV0ZXJtaW5hdGUtc2NhbGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoLjA4KTtcbiAgfVxuXG4gIDM2LjY1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4zMzQ3MzEsIC4xMjQ4MiwgLjc4NTg0NCwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoLjA4KTtcbiAgfVxuXG4gIDY5LjE1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4wNiwgLjExLCAuNiwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoLjY2MTQ3OSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCguMDgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2Vjb25kYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlIHtcbiAgMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMTUsIDAsIC41MTUwNTgsIC40MDk2ODUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gIDI1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4zMTAzMywgLjI4NDA1OCwgLjgsIC43MzM3MTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzNy42NTE5MTMlKTtcbiAgfVxuXG4gIDQ4LjM1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC40LCAuNjI3MDM1LCAuNiwgLjkwMjAyNik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDg0LjM4NjE2NSUpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2MC4yNzc3ODIlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNlY29uZGFyeS1pbmRldGVybWluYXRlLXNjYWxlIHtcbiAgMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMjA1MDI4LCAuMDU3MDUxLCAuNTc2NjEsIC40NTM5NzEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKC4wOCk7XG4gIH1cblxuICAxOS4xNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMTUyMzEzLCAuMTk2NDMyLCAuNjQ4Mzc0LCAxLjAwNDMxNSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoLjQ1NzEwNCk7XG4gIH1cblxuICA0NC4xNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMjU3NzU5LCAtLjAwMzE2MywgLjIxMTc2MiwgMS4zODE3OSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoLjcyNzk2KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKC4wOCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBidWZmZXJpbmcge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHByaW1hcnktaW5kZXRlcm1pbmF0ZS10cmFuc2xhdGUtcmV2ZXJzZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAyMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNSwgMCwgLjcwMTczMiwgLjQ5NTgxOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgNTkuMTUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjMwMjQzNSwgLjM4MTM1MiwgLjU1LCAuOTU2MzUyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTgzLjY3MTQyJSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMC42MTEwNTclKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNlY29uZGFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZS1yZXZlcnNlIHtcbiAgMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMTUsIDAsIC41MTUwNTgsIC40MDk2ODUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gIDI1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4zMTAzMywgLjI4NDA1OCwgLjgsIC43MzM3MTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzcuNjUxOTEzJSk7XG4gIH1cblxuICA0OC4zNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNCwgLjYyNzAzNSwgLjYsIC45MDIwMjYpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtODQuMzg2MTY1JSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE2MC4yNzc3ODIlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJ1ZmZlcmluZy1yZXZlcnNlIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTtcbiAgfVxufVxuIiwiLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5AaW1wb3J0IFwiLi4vYW5pbWF0aW9uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4va2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4ubWRjLWxpbmVhci1wcm9ncmVzcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gIHRyYW5zaXRpb246IG1kYy1hbmltYXRpb24tZXhpdC10ZW1wb3Jhcnkob3BhY2l0eSwgMjUwbXMpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICZfX2JhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgdHJhbnNpdGlvbjogbWRjLWFuaW1hdGlvbi1leGl0LXRlbXBvcmFyeSh0cmFuc2Zvcm0sIDI1MG1zKTtcbiAgfVxuXG4gICZfX2Jhci1pbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG5cbiAgJl9fYnVmZmVyaW5nLWRvdHMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYW5pbWF0aW9uOiBidWZmZXJpbmcgMjUwbXMgaW5maW5pdGUgbGluZWFyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwcHggNHB4O1xuICB9XG5cbiAgJl9fYnVmZmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIHRyYW5zaXRpb246IG1kYy1hbmltYXRpb24tZXhpdC10ZW1wb3JhcnkodHJhbnNmb3JtLCAyNTBtcyk7XG4gIH1cblxuICAmX19wcmltYXJ5LWJhciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gIH1cblxuICAmX19zZWNvbmRhcnktYmFyIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAmLS1pbmRldGVybWluYXRlIHtcbiAgICAubWRjLWxpbmVhci1wcm9ncmVzc19fYmFyIHtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3ByaW1hcnktYmFyIHtcbiAgICAgIGxlZnQ6IC0xNDUuMTY2NjExJTtcbiAgICAgIGFuaW1hdGlvbjogcHJpbWFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZSAycyBpbmZpbml0ZSBsaW5lYXI7XG5cbiAgICAgID4gLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2Jhci1pbm5lciB7XG4gICAgICAgIGFuaW1hdGlvbjogcHJpbWFyeS1pbmRldGVybWluYXRlLXNjYWxlIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWxpbmVhci1wcm9ncmVzc19fc2Vjb25kYXJ5LWJhciB7XG4gICAgICBsZWZ0OiAtNTQuODg4ODkxJTtcbiAgICAgIGFuaW1hdGlvbjogc2Vjb25kYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgICAgID4gLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2Jhci1pbm5lciB7XG4gICAgICAgIGFuaW1hdGlvbjogc2Vjb25kYXJ5LWluZGV0ZXJtaW5hdGUtc2NhbGUgMnMgaW5maW5pdGUgbGluZWFyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLXJldmVyc2VkIHtcbiAgICAubWRjLWxpbmVhci1wcm9ncmVzc19fYmFyLFxuICAgIC5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXIge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgcmlnaHQ7XG4gICAgfVxuXG4gICAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3ByaW1hcnktYmFyIHtcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBwcmltYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlLXJldmVyc2U7XG4gICAgfVxuXG4gICAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3NlY29uZGFyeS1iYXIge1xuICAgICAgYW5pbWF0aW9uLW5hbWU6IHNlY29uZGFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZS1yZXZlcnNlO1xuICAgIH1cblxuICAgIC5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXJpbmctZG90cyB7XG4gICAgICBhbmltYXRpb246IGJ1ZmZlcmluZy1yZXZlcnNlIDI1MG1zIGluZmluaXRlIGxpbmVhcjtcbiAgICB9XG4gIH1cblxuICAmLS1jbG9zZWQge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGF0LXJvb3Qge1xuICBAaW5jbHVkZSBtZGMtbGluZWFyLXByb2dyZXNzLWJhci1jb2xvcihwcmltYXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWxpbmVhci1wcm9ncmVzcy1idWZmZXItY29sb3IoJG1kYy1saW5lYXItcHJvZ3Jlc3MtYmFzZWxpbmUtYnVmZmVyLWNvbG9yKTtcbn1cblxuLm1kYy1saW5lYXItcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUubWRjLWxpbmVhci1wcm9ncmVzcy0tcmV2ZXJzZWQge1xuICAubWRjLWxpbmVhci1wcm9ncmVzc19fcHJpbWFyeS1iYXIge1xuICAgIHJpZ2h0OiAtMTQ1LjE2NjYxMSU7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gIC5tZGMtbGluZWFyLXByb2dyZXNzX19zZWNvbmRhcnktYmFyIHtcbiAgICByaWdodDogLTU0Ljg4ODg5MSU7XG4gICAgbGVmdDogYXV0bztcbiAgfVxufVxuIiwiLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvdmFyaWFibGVzXCI7IC8vIGZvciBtZGMtdGhlbWUtcHJvcC12YWx1ZVxuXG5AbWl4aW4gbWRjLWxpbmVhci1wcm9ncmVzcy1iYXItY29sb3IoJGNvbG9yKSB7XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzX19iYXItaW5uZXIge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1saW5lYXItcHJvZ3Jlc3MtYnVmZmVyLWNvbG9yKCRjb2xvcikge1xuICAvLyBXZSBuZWVkIHRvIGVzY2FwZSB0aGUgJyMnIGNoYXJhY3RlciBhcyBcIiUyM1wiIGZvciBTVkcgYmVjYXVzZSAnIycgaXMgYSByZXNlcnZlZCBjaGFyYWN0ZXIgaW4gVVJJcy5cbiAgJGNvbG9yLXZhbHVlLWZvci1jc3M6IG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvcik7XG4gICRjb2xvci12YWx1ZS1mb3Itc3ZnOiBtZGMtbGluZWFyLXByb2dyZXNzLXN0ci1yZXBsYWNlXyh1bnF1b3RlKFwiI3skY29sb3ItdmFsdWUtZm9yLWNzc31cIiksIFwiI1wiLCBcIiUyM1wiKTtcblxuICAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyaW5nLWRvdHMge1xuICAgIC8vIFNWRyBpcyBvcHRpbWl6ZWQgZm9yIGRhdGEgVVJJIChodHRwczovL2NvZGVwZW4uaW8vdGlndC9wb3N0L29wdGltaXppbmctc3Zncy1pbi1kYXRhLXVyaXMpXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmN0aW9uLXVybC1xdW90ZXNcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHZlcnNpb249JzEuMScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgeD0nMHB4JyB5PScwcHgnIGVuYWJsZS1iYWNrZ3JvdW5kPSduZXcgMCAwIDUgMicgeG1sOnNwYWNlPSdwcmVzZXJ2ZScgdmlld0JveD0nMCAwIDUgMicgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZSBzbGljZSclM0UlM0NjaXJjbGUgY3g9JzEnIGN5PScxJyByPScxJyBmaWxsPScjeyRjb2xvci12YWx1ZS1mb3Itc3ZnfScvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgfVxuXG4gIC5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci12YWx1ZS1mb3ItY3NzO1xuICB9XG59XG5cbi8vIEJhc2VkIG9uIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvc2Fzcy9zdHItcmVwbGFjZS1mdW5jdGlvbi9cbkBmdW5jdGlvbiBtZGMtbGluZWFyLXByb2dyZXNzLXN0ci1yZXBsYWNlXygkc3RyaW5nLCAkc2VhcmNoLCAkcmVwbGFjZSkge1xuICAkaW5kZXg6IHN0ci1pbmRleCgkc3RyaW5nLCAkc2VhcmNoKTtcblxuICBAaWYgJGluZGV4IHtcbiAgICAkaGVhZDogc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpO1xuICAgICR0YWlsOiBtZGMtbGluZWFyLXByb2dyZXNzLXN0ci1yZXBsYWNlXyhzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcblxuICAgIEByZXR1cm4gJGhlYWQgKyAkcmVwbGFjZSArICR0YWlsO1xuICB9XG5cbiAgQHJldHVybiAkc3RyaW5nO1xufVxuIiwiLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG4kbWRjLWxpbmVhci1wcm9ncmVzcy1iYXNlbGluZS1idWZmZXItY29sb3I6ICNlNmU2ZTYgIWRlZmF1bHQ7XG4iLCIvLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbiRtZGMtbGlzdC1kaXZpZGVyLWNvbG9yLW9uLWxpZ2h0LWJnOiByZ2JhKDAsIDAsIDAsIC4xMikgIWRlZmF1bHQ7XG4kbWRjLWxpc3QtZGl2aWRlci1jb2xvci1vbi1kYXJrLWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4yKSAhZGVmYXVsdDtcbiRtZGMtbGlzdC1zaWRlLXBhZGRpbmc6IDE2cHggIWRlZmF1bHQ7XG4kbWRjLWxpc3QtdGV4dC1vZmZzZXQ6IDcycHggIWRlZmF1bHQ7XG4iLCIvL1xyXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxyXG4vL1xyXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XHJcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcclxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xyXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXHJcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xyXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxyXG4vL1xyXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxyXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cclxuLy9cclxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxyXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcclxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXHJcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcclxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcclxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxyXG4vLyBUSEUgU09GVFdBUkUuXHJcbi8vXHJcblxyXG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL3J0bC9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL2xpc3QvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9saXN0L3ZhcmlhYmxlc1wiO1xyXG5AaW1wb3J0IFwiLi4vcmlwcGxlL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcclxuXHJcbkBtaXhpbiBtZGMtbWVudS1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XHJcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XHJcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcclxuXHJcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1jb21tb24oJHF1ZXJ5KTtcclxuXHJcbiAgLy8gQ3VzdG9taXplIHRoZSBtZW51LXN1cmZhY2UgYW5kIGNvbnRhaW5lZCBsaXN0IHRvIG1hdGNoIHRoZSBtZGMtbWVudSBzdHlsZXMuXHJcbiAgLm1kYy1tZW51IHtcclxuICAgIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0tbWV0YS1pbmstY29sb3IoJG1kYy1tZW51LWluay1jb2xvciwgJHF1ZXJ5KTtcclxuICAgIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0tZ3JhcGhpYy1pbmstY29sb3IoJG1kYy1tZW51LWluay1jb2xvciwgJHF1ZXJ5KTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICBtaW4td2lkdGg6ICRtZGMtbWVudS1taW4td2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSW5jbHVkZSBtZGMtbGlzdCBzZWxlY3RvciB0byBlbnN1cmUgbGlzdC1pbnNpZGUtbWVudSBvdmVycmlkZXMgZGVmYXVsdCBsaXN0IHN0eWxlc1xyXG4gICAgLm1kYy1saXN0IHtcclxuICAgICAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1wcmltYXJ5LXRleHQtaW5rLWNvbG9yKCRtZGMtbWVudS1pbmstY29sb3IsICRxdWVyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLm1kYy1saXN0LWRpdmlkZXIge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICAgIG1hcmdpbjogOHB4IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubWRjLWxpc3QtaXRlbSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICAgIGN1cnNvcjogYXV0bztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXHJcbiAgICBhLm1kYy1saXN0LWl0ZW0gLm1kYy1saXN0LWl0ZW1fX3RleHQsXHJcbiAgICBhLm1kYy1saXN0LWl0ZW0gLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxyXG4gIH1cclxuXHJcbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgbWVudVxyXG4gIC5tZGMtbWVudV9fc2VsZWN0aW9uLWdyb3VwIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcclxuICAgIH1cclxuXHJcbiAgICAubWRjLWxpc3QtaXRlbSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkocGFkZGluZywgNTZweCwgJG1kYy1saXN0LXNpZGUtcGFkZGluZyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBFeHRyYSBzcGVjaWZpY2l0eSByZXF1aXJlZCB0byBvdmVycmlkZSBgZGlzcGxheWAgcHJvcGVydHkgb24gYG1kYy1saXN0LWl0ZW1fX2dyYXBoaWNgLlxyXG4gICAgLm1kYy1tZW51X19zZWxlY3Rpb24tZ3JvdXAtaWNvbiB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgMTZweCk7XHJcblxyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXHJcblxyXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cclxuICAubWRjLW1lbnUtaXRlbS0tc2VsZWN0ZWQgLm1kYy1tZW51X19zZWxlY3Rpb24tZ3JvdXAtaWNvbiB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLW1lbnUtd2lkdGgoJHdpZHRoLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XHJcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xyXG5cclxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgQGlmIHVuaXRsZXNzKCR3aWR0aCkge1xyXG4gICAgICB3aWR0aDogJHdpZHRoICogJG1kYy1tZW51LXdpZHRoLWJhc2U7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgd2lkdGg6ICR3aWR0aDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS92YXJpYWJsZXNcIjtcblxuJG1kYy1tZW51LWluay1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgbWRjLXRoZW1lLXRleHQtZW1waGFzaXMoaGlnaCkpICFkZWZhdWx0O1xuXG4kbWRjLW1lbnUtd2lkdGgtYmFzZTogNTZweCAhZGVmYXVsdDtcbiRtZGMtbWVudS1taW4td2lkdGg6IDIgKiAkbWRjLW1lbnUtd2lkdGgtYmFzZSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL2VsZXZhdGlvbi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy9cbi8vIFB1YmxpY1xuLy9cblxuQG1peGluIG1kYy1tZW51LXN1cmZhY2UtY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIG1lbnUtc3VyZmFjZVxuICAubWRjLW1lbnUtc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgbWRjLW1lbnUtc3VyZmFjZS1iYXNlXygkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oJHotdmFsdWU6IDgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtbWVudS1zdXJmYWNlLWZpbGwtY29sb3Ioc3VyZmFjZSwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtbWVudS1zdXJmYWNlLWluay1jb2xvcihvbi1zdXJmYWNlLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1tZW51LXN1cmZhY2Utc2hhcGUtcmFkaXVzKG1lZGl1bSwgZmFsc2UsICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkodHJhbnNmb3JtLW9yaWdpbiwgdG9wIGxlZnQsIHRvcCByaWdodCk7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1tZW51LXN1cmZhY2UtLWFuY2hvciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbWVudS1zdXJmYWNlLS1maXhlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuQG1peGluIG1kYy1tZW51LXN1cmZhY2UtaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1tZW51LXN1cmZhY2UtZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1tZW51LXN1cmZhY2Utc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbi8vXG4vLyBQcml2YXRlXG4vL1xuXG5AbWl4aW4gbWRjLW1lbnUtc3VyZmFjZS1iYXNlXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtICN7JG1kYy1tZW51LXN1cmZhY2UtbWluLWRpc3RhbmNlLWZyb20tZWRnZX0pO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRtZGMtbWVudS1zdXJmYWNlLW1pbi1kaXN0YW5jZS1mcm9tLWVkZ2V9KTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB6LWluZGV4OiAkbWRjLW1lbnUtc3VyZmFjZS16LWluZGV4O1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgb3BhY2l0eSAkbWRjLW1lbnUtc3VyZmFjZS1mYWRlLWluLWR1cmF0aW9uIGxpbmVhcixcbiAgICAgIHRyYW5zZm9ybSAkbWRjLW1lbnUtc3VyZmFjZS1zY2FsZS1kdXJhdGlvbiAkbWRjLWFuaW1hdGlvbi1kZWNlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gICYtLW9wZW4ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICAmLS1hbmltYXRpbmctb3BlbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoLjgpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICAmLS1hbmltYXRpbmctY2xvc2VkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkbWRjLW1lbnUtc3VyZmFjZS1mYWRlLW91dC1kdXJhdGlvbiBsaW5lYXI7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy1tZW51LXN1cmZhY2UtZmFkZS1pbi1kdXJhdGlvbjogLjAzcyAhZGVmYXVsdDtcbiRtZGMtbWVudS1zdXJmYWNlLWZhZGUtb3V0LWR1cmF0aW9uOiAuMDc1cyAhZGVmYXVsdDtcbiRtZGMtbWVudS1zdXJmYWNlLXNjYWxlLWR1cmF0aW9uOiAuMTJzICFkZWZhdWx0O1xuJG1kYy1tZW51LXN1cmZhY2UtbWluLWRpc3RhbmNlLWZyb20tZWRnZTogMzJweCAhZGVmYXVsdDtcbiRtZGMtbWVudS1zdXJmYWNlLXotaW5kZXg6IDggIWRlZmF1bHQ7IC8vIE9uZSBhYm92ZSBtZGMtZGlhbG9nXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9iYXNlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIE5vdGNoZWQgT3V0bGluZSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IG11bHRpcGxlIGNvbXBvbmVudHMsIGJ1dCBpdHMgc3R5bGVzIHNob3VsZCBvbmx5IGJlIGVtaXR0ZWQgb25jZSB3aGVuIGJ1bmRsZWRcbkBpbmNsdWRlIG1kYy1iYXNlLWVtaXQtb25jZShcIm1kYy1ub3RjaGVkLW91dGxpbmVcIikge1xuICAubWRjLW5vdGNoZWQtb3V0bGluZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgICZfX2xlYWRpbmcsXG4gICAgJl9fbm90Y2gsXG4gICAgJl9fdHJhaWxpbmcge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlciAkbWRjLW5vdGNoZWQtb3V0bGluZS10cmFuc2l0aW9uLWR1cmF0aW9uICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgICZfX2xlYWRpbmcge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkoYm9yZGVyLCAxcHggc29saWQsIG5vbmUpO1xuXG4gICAgICB3aWR0aDogJG1kYy1ub3RjaGVkLW91dGxpbmUtbGVhZGluZy13aWR0aDtcbiAgICB9XG5cbiAgICAmX190cmFpbGluZyB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShib3JkZXIsIG5vbmUsIDFweCBzb2xpZCk7XG5cbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAmX19ub3RjaCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAjeyRtZGMtbm90Y2hlZC1vdXRsaW5lLWxlYWRpbmctd2lkdGh9ICogMik7XG4gICAgfVxuXG4gICAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDE3cHg7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgICAgdGV4dC1vdmVyZmxvdzogY2xpcDtcbiAgICB9XG5cbiAgICAmLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAvIC43NSk7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1ub3RjaGVkLW91dGxpbmUtLW5vdGNoZWQge1xuICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gocGFkZGluZywgcmlnaHQsIDhweCk7XG5cbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1ub3RjaGVkLW91dGxpbmUtLW5vLWxhYmVsIHtcbiAgICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4kbWRjLW5vdGNoZWQtb3V0bGluZS10cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcyAhZGVmYXVsdDtcbi8vIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggY29uc3RhbnRzLm51bWJlcnMuTUlOX0xFQURJTkdfU1RST0tFX0VER0VfUE9TSVRJT05cbiRtZGMtbm90Y2hlZC1vdXRsaW5lLW1pbi1sZWFkaW5nLXN0cm9rZS1lZGdlLXBvc2l0aW9uOiAxMnB4ICFkZWZhdWx0O1xuLy8gVGhlIGdhcCBiZXR3ZWVuIHRoZSBzdHJva2UgZW5kIGFuZCBmbG9hdGluZyBsYWJlbFxuLy8gS2VlcCB0aGlzIGluIHN5bmMgd2l0aCBjb25zdGFudHMubnVtYmVycy5OT1RDSF9HVVRURVJfU0laRVxuJG1kYy1ub3RjaGVkLW91dGxpbmUtbm90Y2gtZ3V0dGVyLXNpemU6IDRweCAhZGVmYXVsdDtcbiRtZGMtbm90Y2hlZC1vdXRsaW5lLWxlYWRpbmctd2lkdGg6IDEycHggIWRlZmF1bHQ7XG4kbWRjLW5vdGNoZWQtb3V0bGluZS1wYWRkaW5nOiA0cHggIWRlZmF1bHQ7XG4vLyBUaGlzIHZhcmlhYmxlIGtlZXBzIHRoZSBiZWZvcmUvYWZ0ZXIgSlMgbGFiZWwgY2VudGVyZWQgaW4gdGhlIG5vdGNoIHdoZW4gdGhlIGZvbnQtc2l6ZSBpcyBjaGFuZ2VkLlxuJG1kYy1ub3RjaGVkLW91dGxpbmUtbGFiZWwtYWRqdXN0OiAxNCUgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTYgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcmlwcGxlL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1yYWRpby1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1yYWRpby13aXRob3V0LXJpcHBsZSgkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtcmFkaW8tcmlwcGxlKCRxdWVyeSk7XG59XG5cbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcbi8vIHJhZGlvIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLXJhZGlvLWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIG1kYy1yYWRpby13aXRob3V0LXJpcHBsZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHJhZGlvXG5cbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1yYWRpbyB7XG4gICAgQGluY2x1ZGUgbWRjLXJhZGlvLXVuY2hlY2tlZC1zdHJva2UtY29sb3IoJG1kYy1yYWRpby11bmNoZWNrZWQtY29sb3IsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXJhZGlvLWNoZWNrZWQtc3Ryb2tlLWNvbG9yKCRtZGMtcmFkaW8tYmFzZWxpbmUtdGhlbWUtY29sb3IsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXJhZGlvLWluay1jb2xvcigkbWRjLXJhZGlvLWJhc2VsaW5lLXRoZW1lLWNvbG9yLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1yYWRpby1mb2N1cy1pbmRpY2F0b3ItY29sb3IoJG1kYy1yYWRpby1iYXNlbGluZS10aGVtZS1jb2xvciwgJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB3aWR0aDogJG1kYy1yYWRpby10b3VjaC1hcmVhO1xuICAgICAgaGVpZ2h0OiAkbWRjLXJhZGlvLXRvdWNoLWFyZWE7XG4gICAgICBwYWRkaW5nOiAoJG1kYy1yYWRpby10b3VjaC1hcmVhIC0gJG1kYy1yYWRpby11aS1zaXplKSAvIDI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtLCBib3JkZXItY29sb3IsIGNvbG9yO1xuICAgIH1cblxuICAgIC8vIENvbnRhaW5lciBmb3IgcmFkaW8gY2lyY2xlcyBhbmQgcmlwcGxlLlxuICAgICZfX2JhY2tncm91bmQge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6ICgkbWRjLXJhZGlvLXRvdWNoLWFyZWEgLSAkbWRjLXJhZGlvLXVpLXNpemUpIC8gMjtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6ICRtZGMtcmFkaW8tdWktcGN0O1xuICAgICAgICBoZWlnaHQ6ICRtZGMtcmFkaW8tdWktcGN0O1xuICAgICAgfVxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBtZGMtcmFkaW8tZXhpdChvcGFjaXR5KSwgbWRjLXJhZGlvLWV4aXQodHJhbnNmb3JtKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICZfX291dGVyLWNpcmNsZSB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAycHg7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbWRjLXJhZGlvLWV4aXQoYm9yZGVyLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbm5lci1jaXJjbGUge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMTBweDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG1kYy1yYWRpby1leGl0KHRyYW5zZm9ybSksXG4gICAgICAgICAgbWRjLXJhZGlvLWV4aXQoYm9yZGVyLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uYXRpdmUtY29udHJvbCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBjdXJzb3I6IGluaGVyaXQ7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCxcbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWQge1xuICAgICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG1kYy1yYWRpby1lbnRlcihvcGFjaXR5KSxcbiAgICAgICAgICBtZGMtcmFkaW8tZW50ZXIodHJhbnNmb3JtKTtcbiAgICAgIH1cblxuICAgICAgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBtZGMtcmFkaW8tZW50ZXIoYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWRjLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgICBtZGMtcmFkaW8tZW50ZXIodHJhbnNmb3JtKSxcbiAgICAgICAgICAgIG1kYy1yYWRpby1lbnRlcihib3JkZXItY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1yYWRpby0tZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpjaGVja2VkIHtcbiAgICArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQge1xuICAgICAgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIG1kYy1yYWRpby1lbnRlcih0cmFuc2Zvcm0pLFxuICAgICAgICAgICAgbWRjLXJhZGlvLWVudGVyKGJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpkaXNhYmxlZCxcbiAgW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sIHtcbiAgICArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuXG4gICAgICAubWRjLXJhZGlvX19vdXRlci1jaXJjbGUge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWRjLXJhZGlvLWNpcmNsZS1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWRjLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWRjLXJhZGlvLWNpcmNsZS1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmZvY3VzIHtcbiAgICArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDIsIDIpO1xuICAgICAgICBvcGFjaXR5OiBtYXAtZ2V0KCRtZGMtcmlwcGxlLWRhcmstaW5rLW9wYWNpdGllcywgZm9jdXMpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG1kYy1yYWRpby1lbnRlcihvcGFjaXR5KSxcbiAgICAgICAgICBtZGMtcmFkaW8tZW50ZXIodHJhbnNmb3JtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyByYWRpbyBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1yYWRpby1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiBtZGMtcmFkaW8tcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtcmlwcGxlLWNvbW1vbigkcXVlcnkpO1xuXG4gIC5tZGMtcmFkaW8ge1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZSgkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLXVuYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcygkbWRjLXJhZGlvLWJhc2VsaW5lLXRoZW1lLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCB7XG4gICAgICAubWRjLXJhZGlvX19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1yYWRpby11bmNoZWNrZWQtc3Ryb2tlLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5XG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6bm90KDpjaGVja2VkKSArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtcmFkaW8tY2hlY2tlZC1zdHJva2UtY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHlcbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDpjaGVja2VkICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCAubWRjLXJhZGlvX19vdXRlci1jaXJjbGUge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1yYWRpby1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHlcbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtcmFkaW8tZm9jdXMtaW5kaWNhdG9yLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLXJhZGlvX19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvciwgJGVkZ2VPcHRPdXQ6IHRydWUpO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi90aGVtZS92YXJpYWJsZXNcIjtcblxuJG1kYy1yYWRpby10b3VjaC1hcmVhOiA0MHB4ICFkZWZhdWx0O1xuJG1kYy1yYWRpby11aS1zaXplOiAyMHB4ICFkZWZhdWx0O1xuJG1kYy1yYWRpby11aS1wY3Q6IHBlcmNlbnRhZ2UoJG1kYy1yYWRpby11aS1zaXplIC8gJG1kYy1yYWRpby10b3VjaC1hcmVhKSAhZGVmYXVsdDtcbiRtZGMtcmFkaW8tdHJhbnNpdGlvbi1kdXJhdGlvbjogMTIwbXMgIWRlZmF1bHQ7XG4kbWRjLXJhZGlvLXJpcHBsZS1vcGFjaXR5OiAuMTQgIWRlZmF1bHQ7XG4kbWRjLXJhZGlvLWJhc2VsaW5lLXRoZW1lLWNvbG9yOiBzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kbWRjLXJhZGlvLXVuY2hlY2tlZC1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjU0KSAhZGVmYXVsdDtcbiRtZGMtcmFkaW8tY2lyY2xlLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMjYpICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBrZXlmcmFtZXMgbWRjLXNlbGVjdC1mbG9hdC1uYXRpdmUtY29udHJvbCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbiIsIi8vICBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vICB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyAgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyAgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczovXG4vL1xuLy8gIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuL1xuLy9cbi8vICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyAgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyAgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyAgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi8uLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vLyBQdWJsaWMgbWl4aW5zXG5cbkBtaXhpbiBtZGMtc2VsZWN0LWljb24tY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtaWNvbi1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG4vLyBQcml2YXRlIG1peGluc1xuXG5AbWl4aW4gbWRjLXNlbGVjdC1pY29uXyB7XG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtaWNvbi1jb2xvcihvbi1zdXJmYWNlKTtcblxuICAubWRjLXNlbGVjdF9faWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDE2cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogJG1kYy1zZWxlY3QtaWNvbi1zaXplO1xuICAgIGhlaWdodDogJG1kYy1zZWxlY3QtaWNvbi1zaXplO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgb3BhY2l0eTogJG1kYy1zZWxlY3QtaWNvbi1vcGFjaXR5O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zZWxlY3QtaWNvbi1jb2xvcl8oJGNvbG9yKSB7XG4gIC5tZGMtc2VsZWN0X19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC1pY29uLWhvcml6b250YWwtcG9zaXRpb25fKCRpY29uUG9zaXRpb24sICRpbnB1dFBhZGRpbmcpIHtcbiAgLm1kYy1zZWxlY3RfX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICRpY29uUG9zaXRpb24pO1xuICB9XG5cbiAgLy8gTW92ZSB0aGUgaW5wdXQncyBwb3NpdGlvbiwgdG8gYWxsb3cgcm9vbSBmb3IgdGhlIGljb25cbiAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxuICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkocGFkZGluZywgJGlucHV0UGFkZGluZyAvKiBsZWZ0ICovLCAkbWRjLXNlbGVjdC1pY29uLXJpZ2h0LXBhZGRpbmcgLyogcmlnaHQgKi8pO1xuICB9XG59XG4iLCIvLyAgQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vICBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyAgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6L1xuLy9cbi8vICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLi9cbi8vXG4vLyAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vICBUSEUgU09GVFdBUkUuXG4vL1xuXG4kbWRjLXNlbGVjdC1pY29uLXNpemU6IDI0cHggIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1pY29uLW9wYWNpdHk6IC41NCAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWljb24tY29sb3I6IG9uLXN1cmZhY2UgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1pY29uLXJpZ2h0LXBhZGRpbmc6IDMycHggIWRlZmF1bHQ7XG4iLCIvLyAgQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vICBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyAgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6L1xuLy9cbi8vICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLi9cbi8vXG4vLyAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vICBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi9taXhpbnNcIjtcblxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIHtcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1pY29uXztcbn1cblxuLm1kYy1zZWxlY3RfX2ljb246bm90KFt0YWJpbmRleF0pLFxuLm1kYy1zZWxlY3RfX2ljb25bdGFiaW5kZXg9XCItMVwiXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIvLyAgQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vICBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyAgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6L1xuLy9cbi8vICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLi9cbi8vXG4vLyAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vICBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vdHlwb2dyYXBoeS9taXhpbnNcIjtcblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgc2VsZWN0LWhlbHBlci10ZXh0XG4ubWRjLXNlbGVjdC1oZWxwZXItdGV4dCB7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGNhcHRpb24pO1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS10b3AoMTZweCk7XG5cbiAgbWFyZ2luOiAwO1xuICB0cmFuc2l0aW9uOiBtZGMtc2VsZWN0LXRyYW5zaXRpb24ob3BhY2l0eSk7XG4gIG9wYWNpdHk6IDA7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xufVxuXG4ubWRjLXNlbGVjdC1oZWxwZXItdGV4dC0tcGVyc2lzdGVudCB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIG9wYWNpdHk6IDE7XG4gIHdpbGwtY2hhbmdlOiBpbml0aWFsO1xufVxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbiIsIi8vXHJcbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXHJcbi8vXHJcbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcclxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxyXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXHJcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcclxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXHJcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XHJcbi8vXHJcbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXHJcbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxyXG4vL1xyXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXHJcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxyXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcclxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxyXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxyXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXHJcbi8vIFRIRSBTT0ZUV0FSRS5cclxuLy9cclxuXHJcbkBpbXBvcnQgXCIuL2tleWZyYW1lc1wiO1xyXG5AaW1wb3J0IFwiLi9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCIuLi9saW5lLXJpcHBsZS9tZGMtbGluZS1yaXBwbGVcIjtcclxuQGltcG9ydCBcIi4uL25vdGNoZWQtb3V0bGluZS9tZGMtbm90Y2hlZC1vdXRsaW5lXCI7XHJcbkBpbXBvcnQgXCIuLi9mbG9hdGluZy1sYWJlbC9tZGMtZmxvYXRpbmctbGFiZWxcIjtcclxuQGltcG9ydCBcIi4uL3R5cG9ncmFwaHkvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9yaXBwbGUvY29tbW9uXCI7XHJcbkBpbXBvcnQgXCIuLi9yaXBwbGUvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9ydGwvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuL2ljb24vbWRjLXNlbGVjdC1pY29uXCI7XHJcbkBpbXBvcnQgXCIuL2hlbHBlci10ZXh0L21kYy1zZWxlY3QtaGVscGVyLXRleHRcIjtcclxuQGltcG9ydCBcIi4vaGVscGVyLXRleHQvbWl4aW5zXCI7XHJcblxyXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBzZWxlY3RcclxuLm1kYy1zZWxlY3Qge1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtY29udGFpbmVyLWZpbGwtY29sb3IoJG1kYy1zZWxlY3QtZmlsbC1jb2xvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlO1xyXG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQ7XHJcbiAgLy8gU2VsZWN0IGludGVudGlvbmFsbHkgb21pdHMgcHJlc3MgcmlwcGxlLCBzbyBlYWNoIHN0YXRlIG5lZWRzIHRvIGJlIHNwZWNpZmllZCBpbmRpdmlkdWFsbHkuXHJcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKCRtZGMtc2VsZWN0LWluay1jb2xvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1ob3Zlci1vcGFjaXR5KG1kYy1zdGF0ZXMtb3BhY2l0eSgkbWRjLXNlbGVjdC1pbmstY29sb3IsIGhvdmVyKSk7XHJcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1mb2N1cy1vcGFjaXR5KG1kYy1zdGF0ZXMtb3BhY2l0eSgkbWRjLXNlbGVjdC1pbmstY29sb3IsIGZvY3VzKSk7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1pbmstY29sb3IoJG1kYy1zZWxlY3QtaW5rLWNvbG9yKTtcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWxhYmVsLWNvbG9yKCRtZGMtc2VsZWN0LWxhYmVsLWNvbG9yKTtcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWJvdHRvbS1saW5lLWNvbG9yKCRtZGMtc2VsZWN0LWJvdHRvbS1saW5lLWlkbGUtY29sb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtaGVscGVyLXRleHQtY29sb3IoJG1kYy1zZWxlY3QtaGVscGVyLXRleHQtY29sb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3Qtc2hhcGUtcmFkaXVzKHNtYWxsKTtcclxuXHJcbiAgLy8gRm9jdXNlZCBzdGF0ZSBjb2xvcnNcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWZvY3VzZWQtYm90dG9tLWxpbmUtY29sb3IocHJpbWFyeSk7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1mb2N1c2VkLWxhYmVsLWNvbG9yKCRtZGMtc2VsZWN0LWZvY3VzZWQtbGFiZWwtY29sb3IpO1xyXG5cclxuICAvLyBIb3ZlciBzdGF0ZSBjb2xvcnNcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWhvdmVyLWJvdHRvbS1saW5lLWNvbG9yKCRtZGMtc2VsZWN0LWJvdHRvbS1saW5lLWhvdmVyLWNvbG9yKTtcclxuICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oJG1kYy1zZWxlY3QtbGFiZWwtcG9zaXRpb24teSk7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1mbG9hdGluZy1sYWJlbF87XHJcblxyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIGhlaWdodDogJG1kYy1zZWxlY3QtaGVpZ2h0O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgLyogQGFsdGVybmF0ZSAqL1xyXG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm0sIGNvbG9yO1xyXG5cclxuICAmX19kcm9wZG93bi1pY29uIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtZGQtYXJyb3ctc3ZnLWJnXygkbWRjLXNlbGVjdC1kcm9wZG93bi1jb2xvciwgJG1kYy1zZWxlY3QtZHJvcGRvd24tb3BhY2l0eSk7XHJcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZShsZWZ0LCBhdXRvLCByaWdodCwgOHB4KTtcclxuXHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDE2cHg7XHJcbiAgICB3aWR0aDogMjRweDtcclxuICAgIGhlaWdodDogMjRweDtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkbWRjLXNlbGVjdC1kcm9wZG93bi10cmFuc2l0aW9uLWR1cmF0aW9uICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuICAgIC5tZGMtc2VsZWN0LS1mb2N1c2VkICYge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWRkLWFycm93LXN2Zy1iZ18obWRjLXRoZW1lLXByb3AtdmFsdWUocHJpbWFyeSksIDEpO1xyXG5cclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGVZKC01cHgpO1xyXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG1kYy1zZWxlY3QtZHJvcGRvd24tdHJhbnNpdGlvbi1kdXJhdGlvbiAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19uYXRpdmUtY29udHJvbCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtZm9jdXNlZC1saW5lLXJpcHBsZV8ge1xyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDIpO1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgbWRjLXNlbGVjdC1oZWxwZXItdGV4dF87XHJcbkBpbmNsdWRlIG1kYy1zZWxlY3QtdGV4dC1hbmQtY29udHJvbF8oKTtcclxuXHJcbi5tZGMtc2VsZWN0LS1vdXRsaW5lZCB7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1vdXRsaW5lZF87XHJcbn1cclxuXHJcbi5tZGMtc2VsZWN0LS1pbnZhbGlkIHtcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWxhYmVsLWNvbG9yKCRtZGMtc2VsZWN0LWVycm9yLWNvbG9yKTtcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWJvdHRvbS1saW5lLWNvbG9yKCRtZGMtc2VsZWN0LWVycm9yLWNvbG9yKTtcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWZvY3VzZWQtYm90dG9tLWxpbmUtY29sb3IoJG1kYy1zZWxlY3QtZXJyb3ItY29sb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtZm9jdXNlZC1sYWJlbC1jb2xvcigkbWRjLXNlbGVjdC1lcnJvci1jb2xvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1oZWxwZXItdGV4dC12YWxpZGF0aW9uLWNvbG9yKCRtZGMtc2VsZWN0LWVycm9yLWNvbG9yKTtcclxuXHJcbiAgLy8gSG92ZXIgc3RhdGUgY29sb3JzXHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1ob3Zlci1ib3R0b20tbGluZS1jb2xvcigkbWRjLXNlbGVjdC1lcnJvci1jb2xvcik7XHJcblxyXG4gICYubWRjLXNlbGVjdC0tb3V0bGluZWQge1xyXG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1vdXRsaW5lLWNvbG9yKCRtZGMtc2VsZWN0LWVycm9yLWNvbG9yKTtcclxuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtaG92ZXItb3V0bGluZS1jb2xvcigkbWRjLXNlbGVjdC1lcnJvci1jb2xvcik7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWZvY3VzZWQtb3V0bGluZS1jb2xvcigkbWRjLXNlbGVjdC1lcnJvci1jb2xvcik7XHJcbiAgfVxyXG5cclxuICAubWRjLXNlbGVjdF9fZHJvcGRvd24taWNvbiB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWRkLWFycm93LXN2Zy1iZ18oJG1kYy1zZWxlY3QtZXJyb3ItY29sb3IsIDEpO1xyXG4gIH1cclxuXHJcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxyXG4gICsgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG59XHJcblxyXG4ubWRjLXNlbGVjdC0tcmVxdWlyZWQge1xyXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cclxuICAubWRjLWZsb2F0aW5nLWxhYmVsOjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIipcIjtcclxuICB9XHJcbn1cclxuXHJcbi5tZGMtc2VsZWN0LS1kaXNhYmxlZCB7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1kaXNhYmxlZF87XHJcbn1cclxuXHJcbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiB7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC13aXRoLWxlYWRpbmctaWNvbl87XHJcbn1cclxuXHJcbi5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQge1xyXG4gIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCBvbi1zdXJmYWNlKTtcclxuICBAaW5jbHVkZSBtZGMtc3RhdGVzKG9uLXN1cmZhY2UpO1xyXG59XHJcblxyXG5AaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2Uta2V5ZnJhbWVzKFxyXG4gIHNlbGVjdC1vdXRsaW5lZC1sZWFkaW5nLWljb24sXHJcbiAgJG1kYy1zZWxlY3Qtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teSxcclxuICAkbWRjLXNlbGVjdC1vdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbi1sYWJlbC1wb3NpdGlvbi14XHJcbik7XHJcbkBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1rZXlmcmFtZXMoXHJcbiAgc2VsZWN0LW91dGxpbmVkLWxlYWRpbmctaWNvbi1ydGwsXHJcbiAgJG1kYy1zZWxlY3Qtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teSxcclxuICAtJG1kYy1zZWxlY3Qtb3V0bGluZWQtd2l0aC1sZWFkaW5nLWljb24tbGFiZWwtcG9zaXRpb24teFxyXG4pO1xyXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS92YXJpYWJsZXNcIjtcblxuJG1kYy1zZWxlY3QtYXJyb3ctcGFkZGluZzogNTJweCAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWxhYmVsLXBhZGRpbmc6IDE2cHggIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1oZWlnaHQ6IDU2cHggIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1pY29uLXBhZGRpbmc6IDQ4cHggIWRlZmF1bHQ7XG5cbiRtZGMtc2VsZWN0LWluay1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjg3KSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWRyb3Bkb3duLWNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWljb24tY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC41NCkgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1sYWJlbC1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjYpICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtZm9jdXNlZC1sYWJlbC1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShwcmltYXJ5KSwgLjg3KSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWJvdHRvbS1saW5lLWlkbGUtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC40MikgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1ib3R0b20tbGluZS1ob3Zlci1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjg3KSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWhlbHBlci10ZXh0LWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuNikgIWRlZmF1bHQ7XG5cbiRtZGMtc2VsZWN0LWZpbGwtY29sb3I6IG1peChtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgbWRjLXRoZW1lLXByb3AtdmFsdWUoc3VyZmFjZSksIDQlKSAhZGVmYXVsdDtcblxuJG1kYy1zZWxlY3Qtb3V0bGluZWQtaWRsZS1ib3JkZXI6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4yNCkgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1kcm9wZG93bi1vcGFjaXR5OiAuNTQgIWRlZmF1bHQ7XG5cbi8vIERpc2FibGVkIFN0eWxlc1xuJG1kYy1zZWxlY3QtZGlzYWJsZWQtbGFiZWwtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4zNykgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1kaXNhYmxlZC1pY29uLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMzcpICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtZGlzYWJsZWQtaW5rLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMzcpICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtZGlzYWJsZWQtZmlsbC1jb2xvcjogbWl4KG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCBtZGMtdGhlbWUtcHJvcC12YWx1ZShzdXJmYWNlKSwgMiUpICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtZGlzYWJsZWQtZHJvcGRvd24tb3BhY2l0eTogLjM3ICFkZWZhdWx0O1xuXG4vLyBzaG91bGQgYmUgLjA2IGFmdGVyIG1kYy1zZWxlY3Qgb3BhY2l0eSBpcyBhcHBsaWVkXG4kbWRjLXNlbGVjdC1vdXRsaW5lZC1kaXNhYmxlZC1ib3JkZXI6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4xNikgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1vdXRsaW5lZC1ob3Zlci1ib3JkZXI6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC44NykgIWRlZmF1bHQ7XG5cbiRtZGMtc2VsZWN0LWxhYmVsLXBvc2l0aW9uLXk6IDcwJSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LW91dGxpbmUtbGFiZWwtb2Zmc2V0OiAxNnB4ICFkZWZhdWx0O1xuJG1kYy1zZWxlY3Qtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teTogMTMwJSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LW91dGxpbmVkLWRlbnNlLWxhYmVsLXBvc2l0aW9uLXk6IDExMCUgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1vdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbi1sYWJlbC1wb3NpdGlvbi14OiAzMnB4ICFkZWZhdWx0O1xuXG4kbWRjLXNlbGVjdC1kcm9wZG93bi10cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcyAhZGVmYXVsdDtcblxuLy8gRXJyb3IgY29sb3JzXG4kbWRjLXNlbGVjdC1lcnJvci1jb2xvcjogZXJyb3IgIWRlZmF1bHQ7XG4iLCIvL1xyXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxyXG4vL1xyXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XHJcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcclxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xyXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXHJcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xyXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxyXG4vL1xyXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxyXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cclxuLy9cclxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxyXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcclxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXHJcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcclxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcclxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxyXG4vLyBUSEUgU09GVFdBUkUuXHJcbi8vXHJcblxyXG5AaW1wb3J0IFwiLi4vZmxvYXRpbmctbGFiZWwvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL3NoYXBlL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vc2hhcGUvZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCIuLi9saW5lLXJpcHBsZS9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL25vdGNoZWQtb3V0bGluZS9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL25vdGNoZWQtb3V0bGluZS92YXJpYWJsZXNcIjtcclxuQGltcG9ydCBcIi4vaWNvbi9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XHJcblxyXG4vLyBQdWJsaWNcclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LWluay1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtaW5rLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtY29udGFpbmVyLWZpbGwtY29sb3IoJGNvbG9yKSB7XHJcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWNvbnRhaW5lci1maWxsLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtZm9jdXNlZC1sYWJlbC1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcclxuICAgICYubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLWluay1jb2xvcihtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LWhvdmVyLWJvdHRvbS1saW5lLWNvbG9yKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sOmhvdmVyIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtbmF0aXZlLWNvbnRyb2wtYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1ib3R0b20tbGluZS1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1mb2N1c2VkLWJvdHRvbS1saW5lLWNvbG9yKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkge1xyXG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1mb2N1c2VkLWxpbmUtcmlwcGxlLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtbGFiZWwtY29sb3IoJGNvbG9yKSB7XHJcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1pbmstY29sb3IoJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LW91dGxpbmUtY29sb3IoJGNvbG9yKSB7XHJcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LW91dGxpbmUtY29sb3JfKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1ob3Zlci1vdXRsaW5lLWNvbG9yKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkge1xyXG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1ob3Zlci1vdXRsaW5lLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtZm9jdXNlZC1vdXRsaW5lLWNvbG9yKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkge1xyXG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1mb2N1c2VkLW91dGxpbmUtY29sb3JfKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlKSB7XHJcbiAgQGlmIGxlbmd0aCgkcmFkaXVzKSA+IDIge1xyXG4gICAgQGVycm9yIFwiSW52YWxpZCByYWRpdXM6ICcjeyRyYWRpdXN9JyBjb21wb25lbnQgZG9lc24ndCBhbGxvdyBjdXN0b21pemluZyBhbGwgY29ybmVyc1wiO1xyXG4gIH1cclxuXHJcbiAgJG1hc2tlZC1yYWRpdXM6IG1kYy1zaGFwZS1tYXNrLXJhZGl1cygkcmFkaXVzLCAxIDEgMCAwKTtcclxuXHJcbiAgJixcclxuICAmX19uYXRpdmUtY29udHJvbCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtc2VsZWN0LWhlaWdodCwgJG1hc2tlZC1yYWRpdXMpLCAkcnRsLXJlZmxleGl2ZSk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1vdXRsaW5lLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UpIHtcclxuICAkcmVzb2x2ZWQtcmFkaXVzOiBudGgobWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1yYWRpdXMoJG1kYy1zZWxlY3QtaGVpZ2h0LCBtZGMtc2hhcGUtcHJvcC12YWx1ZSgkcmFkaXVzKSksIDEpO1xyXG5cclxuICBAaWYgKGxlbmd0aChtZGMtc2hhcGUtcHJvcC12YWx1ZSgkcmFkaXVzKSkgPiAxKSB7XHJcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxpbmUtbGVuZ3RoXHJcbiAgICBAd2FybiBcIm1kYy1zZWxlY3Qtb3V0bGluZS1zaGFwZS1yYWRpdXMgb25seSBzdXBwb3J0cyBhIHNpbmdsZSByYWRpdXM7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWF0ZXJpYWwtY29tcG9uZW50cy9tYXRlcmlhbC1jb21wb25lbnRzLXdlYi9pc3N1ZXMvNDE0MFwiO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1ub3RjaGVkLW91dGxpbmUge1xyXG4gICAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1zaGFwZS1yYWRpdXMoJHJlc29sdmVkLXJhZGl1cywgJHJ0bC1yZWZsZXhpdmUpO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoJHJlc29sdmVkLXJhZGl1cywgJHJ0bC1yZWZsZXhpdmUpO1xyXG4gIH1cclxuXHJcbiAgQGlmICgkcmVzb2x2ZWQtcmFkaXVzID4gJG1kYy1ub3RjaGVkLW91dGxpbmUtbGVhZGluZy13aWR0aCkge1xyXG4gICAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkoXHJcbiAgICAgICAgcGFkZGluZyxcclxuICAgICAgICAkcmVzb2x2ZWQtcmFkaXVzICsgJG1kYy1ub3RjaGVkLW91dGxpbmUtcGFkZGluZyxcclxuICAgICAgICAkbWRjLXNlbGVjdC1hcnJvdy1wYWRkaW5nXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgKyAubWRjLXNlbGVjdC1oZWxwZXItdGV4dCB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KFxyXG4gICAgICAgIG1hcmdpbixcclxuICAgICAgICAkcmVzb2x2ZWQtcmFkaXVzICsgJG1kYy1ub3RjaGVkLW91dGxpbmUtcGFkZGluZyxcclxuICAgICAgICAkbWRjLXNlbGVjdC1vdXRsaW5lLWxhYmVsLW9mZnNldFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gUHJpdmF0ZVxyXG5AbWl4aW4gbWRjLXNlbGVjdC1mb2N1c2VkLWxpbmUtcmlwcGxlXyB7XHJcbiAgJi5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbGluZS1yaXBwbGUge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1mb2N1c2VkLW91dGxpbmVfIHtcclxuICAmLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUge1xyXG4gICAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1zdHJva2Utd2lkdGgoMnB4KTtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtZm9jdXNlZC1vdXRsaW5lLWlkbGVfIHtcclxuICAmLm1kYy1zZWxlY3QtLWZvY3VzZWQge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1pbmstY29sb3JfKCRjb2xvcikge1xyXG4gIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCxcclxuICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LWNvbnRhaW5lci1maWxsLWNvbG9yXygkY29sb3IpIHtcclxuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1ib3R0b20tbGluZS1jb2xvcl8oJGNvbG9yKSB7XHJcbiAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxyXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcclxuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtbmF0aXZlLWNvbnRyb2wtYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1uYXRpdmUtY29udHJvbC1ib3R0b20tbGluZS1jb2xvcl8oJGNvbG9yKSB7XHJcbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWJvdHRvbS1jb2xvciwgJGNvbG9yKTtcclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtZm9jdXNlZC1saW5lLXJpcHBsZS1jb2xvcl8oJGNvbG9yKSB7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1mb2N1c2VkLWxpbmUtcmlwcGxlXyB7XHJcbiAgICBAaW5jbHVkZSBtZGMtbGluZS1yaXBwbGUtY29sb3IoJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LWRkLWFycm93LXN2Zy1iZ18oJGZpbGwtaGV4LW51bWJlciwgJG9wYWNpdHkpIHtcclxuICAvLyBMb29rdXAgY29sb3IgYW5kIHJlbW92ZSBsZWFkaW5nICMuXHJcbiAgJGZpbGwtaGV4LW51bWJlcjogbWRjLXRoZW1lLXByb3AtdmFsdWUoJGZpbGwtaGV4LW51bWJlcik7XHJcbiAgJGZpbGwtaGV4LW51bWJlcjogc3RyLXNsaWNlKHVucXVvdGUoXCIjeyRmaWxsLWhleC1udW1iZXJ9XCIpLCAyKTtcclxuXHJcbiAgYmFja2dyb3VuZDpcclxuICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB3aWR0aCUzRCUyMjEwcHglMjIlMjBoZWlnaHQlM0QlMjI1cHglMjIlMjB2aWV3Qm94JTNEJTIyNyUyMDEwJTIwMTAlMjA1JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGlkJTNEJTIyU2hhcGUlMjIlMjBzdHJva2UlM0QlMjJub25lJTIyJTIwZmlsbCUzRCUyMiUyMyN7JGZpbGwtaGV4LW51bWJlcn0lMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTIwb3BhY2l0eSUzRCUyMiN7JG9wYWNpdHl9JTIyJTIwcG9pbnRzJTNEJTIyNyUyMDEwJTIwMTIlMjAxNSUyMDE3JTIwMTAlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBBJTNDJTJGc3ZnJTNFXCIpXHJcbiAgICBuby1yZXBlYXRcclxuICAgIGNlbnRlcjtcclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3Qtb3V0bGluZS1jb2xvcl8oJGNvbG9yKSB7XHJcbiAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1jb2xvcigkY29sb3IpO1xyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1ob3Zlci1vdXRsaW5lLWNvbG9yXygkY29sb3IpIHtcclxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItY29tYmluYXRvci1zcGFjZS1hZnRlclxyXG4gICY6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2w6aG92ZXIgfixcclxuICAmOm5vdCgubWRjLXNlbGVjdC0tZm9jdXNlZCkgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQ6aG92ZXIgfiB7XHJcbiAgICAubWRjLW5vdGNoZWQtb3V0bGluZSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtY29sb3IoJGNvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LWZvY3VzZWQtb3V0bGluZS1jb2xvcl8oJGNvbG9yKSB7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1mb2N1c2VkLW91dGxpbmVfIHtcclxuICAgIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtY29sb3IoJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LWZsb2F0aW5nLWxhYmVsXyB7XHJcbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLXNlbGVjdC1vdXRsaW5lLWxhYmVsLW9mZnNldCk7XHJcblxyXG4gICAgdG9wOiAyMXB4O1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIHtcclxuICAgIC5tZGMtZmxvYXRpbmctbGFiZWwge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLXNlbGVjdC1pY29uLXBhZGRpbmcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5tZGMtc2VsZWN0LS1vdXRsaW5lZCB7XHJcbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgJG1kYy1ub3RjaGVkLW91dGxpbmUtcGFkZGluZyk7XHJcblxyXG4gICAgICB0b3A6IDE3cHg7XHJcbiAgICB9XHJcblxyXG4gICAgJi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiB7XHJcbiAgICAgIC5tZGMtZmxvYXRpbmctbGFiZWwge1xyXG4gICAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICRtZGMtc2VsZWN0LWljb24tcGFkZGluZyAtICRtZGMtbm90Y2hlZC1vdXRsaW5lLWxlYWRpbmctd2lkdGgpO1xyXG5cclxuICAgICAgICAmLS1mbG9hdC1hYm92ZSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLXNlbGVjdC1pY29uLXBhZGRpbmcgLSAkbWRjLW5vdGNoZWQtb3V0bGluZS1sZWFkaW5nLXdpZHRoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LXdpdGgtbGVhZGluZy1pY29uXyB7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1pY29uLWhvcml6b250YWwtcG9zaXRpb25fKDE2cHgsICRtZGMtc2VsZWN0LWljb24tcGFkZGluZyk7XHJcblxyXG4gICYubWRjLXNlbGVjdC0tb3V0bGluZWQge1xyXG4gICAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbihcclxuICAgICAgJG1kYy1zZWxlY3Qtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teSxcclxuICAgICAgJG1kYy1zZWxlY3Qtb3V0bGluZWQtd2l0aC1sZWFkaW5nLWljb24tbGFiZWwtcG9zaXRpb24teFxyXG4gICAgKTtcclxuICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24oc2VsZWN0LW91dGxpbmVkLWxlYWRpbmctaWNvbik7XHJcblxyXG4gICAgQGluY2x1ZGUgbWRjLXJ0bCB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24oc2VsZWN0LW91dGxpbmVkLWxlYWRpbmctaWNvbi1ydGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdC1pdGVtX190ZXh0IHtcclxuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsIDMycHggLyogbGVmdC12YWx1ZSAqLywgMzJweCAvKiByaWdodC12YWx1ZSAqLyk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC10ZXh0LWFuZC1jb250cm9sXyB7XHJcbiAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xyXG4gICAgbWluLXdpZHRoOiAyMDBweDtcclxuICAgIHBhZGRpbmctdG9wOiAyMnB4O1xyXG4gIH1cclxuXHJcbiAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxyXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcclxuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRtZGMtc2VsZWN0LWxhYmVsLXBhZGRpbmcsICRtZGMtc2VsZWN0LWFycm93LXBhZGRpbmcpO1xyXG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoc3VidGl0bGUxKTtcclxuXHJcbiAgICAmOjotbXMtZXhwYW5kIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAmOjotbXMtdmFsdWUge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gY291bnRlcmFjdHMgdGhlIGV4dHJhIHRleHQgcGFkZGluZyB0aGF0IEZpcmVmb3ggYWRkcyBieSBkZWZhdWx0XHJcbiAgICBALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KFwiXCIpIHtcclxuICAgICAgdGV4dC1pbmRlbnQ6IC0ycHg7XHJcbiAgICB9XHJcblxyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAkbWRjLXNlbGVjdC1oZWlnaHQ7XHJcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBjb2xvcjogaW5oZXJpdDsgLy8gT3ZlcnJpZGUgZGVmYXVsdCB1c2VyIGFnZW50IHN0eWxlc2hlZXRcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBhcHBlYXJhbmNlOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtZGlzYWJsZWRfIHtcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWNvbnRhaW5lci1maWxsLWNvbG9yXygkbWRjLXNlbGVjdC1kaXNhYmxlZC1maWxsLWNvbG9yKTtcclxuXHJcbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtaW5rLWNvbG9yKCRtZGMtc2VsZWN0LWRpc2FibGVkLWxhYmVsLWNvbG9yKTtcclxuICB9XHJcblxyXG4gIC5tZGMtc2VsZWN0X19kcm9wZG93bi1pY29uIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtZGQtYXJyb3ctc3ZnLWJnXygkbWRjLXNlbGVjdC1kcm9wZG93bi1jb2xvciwgJG1kYy1zZWxlY3QtZGlzYWJsZWQtZHJvcGRvd24tb3BhY2l0eSk7XHJcbiAgfVxyXG5cclxuICAubWRjLWxpbmUtcmlwcGxlIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAubWRjLXNlbGVjdF9faWNvbiB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJG1kYy1zZWxlY3QtZGlzYWJsZWQtaWNvbi1jb2xvcik7XHJcbiAgfVxyXG5cclxuICAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXHJcbiAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRtZGMtc2VsZWN0LWRpc2FibGVkLWluay1jb2xvcik7XHJcblxyXG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmLm1kYy1zZWxlY3QtLW91dGxpbmVkIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtY29udGFpbmVyLWZpbGwtY29sb3JfKHRyYW5zcGFyZW50KTtcclxuXHJcbiAgICAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXHJcbiAgICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1vdXRsaW5lLWNvbG9yXygkbWRjLXNlbGVjdC1vdXRsaW5lZC1kaXNhYmxlZC1ib3JkZXIpO1xyXG4gIH1cclxuXHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1vdXRsaW5lZF8ge1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtY29udGFpbmVyLWZpbGwtY29sb3IodHJhbnNwYXJlbnQpO1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3Qtb3V0bGluZS1jb2xvcigkbWRjLXNlbGVjdC1vdXRsaW5lZC1pZGxlLWJvcmRlcik7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1ob3Zlci1vdXRsaW5lLWNvbG9yKCRtZGMtc2VsZWN0LW91dGxpbmVkLWhvdmVyLWJvcmRlcik7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1mb2N1c2VkLW91dGxpbmUtY29sb3IocHJpbWFyeSk7XHJcbiAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWFuaW1hdGlvbih0ZXh0LWZpZWxkLW91dGxpbmVkKTtcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LW91dGxpbmUtc2hhcGUtcmFkaXVzKHNtYWxsKTtcclxuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWJhc2UtY29sb3IodHJhbnNwYXJlbnQpO1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtY29udGFpbmVyLWZpbGwtY29sb3IodHJhbnNwYXJlbnQpO1xyXG4gIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oJG1kYy1zZWxlY3Qtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teSwgMCk7XHJcblxyXG4gIGJvcmRlcjogbm9uZTtcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxuXHJcbiAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxyXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcclxuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRtZGMtc2VsZWN0LWxhYmVsLXBhZGRpbmcsICRtZGMtc2VsZWN0LWFycm93LXBhZGRpbmcpO1xyXG5cclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xyXG4gICAgcGFkZGluZy10b3A6IDE0cHg7XHJcbiAgfVxyXG5cclxuICAubWRjLXNlbGVjdF9faWNvbiB7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICBsaW5lLWhlaWdodDogMS4xNXJlbTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtaGVscGVyLXRleHRfIHtcclxuICAubWRjLXNlbGVjdC1oZWxwZXItdGV4dCB7XHJcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cclxuICAgIC5tZGMtc2VsZWN0ICsgJiB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XHJcbiAgICB9XHJcblxyXG4gICAgLm1kYy1zZWxlY3QtLW91dGxpbmVkICsgJiB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbiAgICB9XHJcbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxyXG4gIH1cclxuXHJcbiAgLm1kYy1zZWxlY3QtLWZvY3VzZWQgKyAubWRjLXNlbGVjdC1oZWxwZXItdGV4dDpub3QoLm1kYy1zZWxlY3QtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnKSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxufVxyXG4iLCIvLyAgQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vICBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyAgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6L1xuLy9cbi8vICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLi9cbi8vXG4vLyAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vICBUSEUgU09GVFdBUkUuXG4vL1xuXG4vLyBQdWJsaWMgbWl4aW5zXG5cbkBtaXhpbiBtZGMtc2VsZWN0LWhlbHBlci10ZXh0LWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWhlbHBlci10ZXh0LWNvbG9yXygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2VsZWN0LWhlbHBlci10ZXh0LXZhbGlkYXRpb24tY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtaGVscGVyLXRleHQtdmFsaWRhdGlvbi1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG4vLyBQcml2YXRlIG1peGluc1xuXG5AbWl4aW4gbWRjLXNlbGVjdC1oZWxwZXItdGV4dC1jb2xvcl8oJGNvbG9yKSB7XG4gICsgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2VsZWN0LWhlbHBlci10ZXh0LXZhbGlkYXRpb24tY29sb3JfKCRjb2xvcikge1xuICAmLm1kYy1zZWxlY3QtLWludmFsaWQgKyAubWRjLXNlbGVjdC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2cge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG4iLCIvL1xyXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxyXG4vL1xyXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XHJcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcclxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xyXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXHJcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xyXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxyXG4vL1xyXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxyXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cclxuLy9cclxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxyXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcclxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXHJcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcclxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcclxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxyXG4vLyBUSEUgU09GVFdBUkUuXHJcbi8vXHJcblxyXG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9zaGFwZS9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL3NoYXBlL2Z1bmN0aW9uc1wiO1xyXG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcclxuXHJcbkBtaXhpbiBtZGMtbm90Y2hlZC1vdXRsaW5lLWNvbG9yKCRjb2xvcikge1xyXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxyXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcclxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1ub3RjaGVkLW91dGxpbmUtc3Ryb2tlLXdpZHRoKCR3aWR0aCkge1xyXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxyXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcclxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGg7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLW5vdGNoZWQtb3V0bGluZS1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlKSB7XHJcbiAgJHJhZGl1czogbWRjLXNoYXBlLXByb3AtdmFsdWUoJHJhZGl1cyk7XHJcblxyXG4gIEBpZiAobGVuZ3RoKCRyYWRpdXMpID4gMSkge1xyXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1saW5lLWxlbmd0aFxyXG4gICAgQHdhcm4gXCJtZGMtbm90Y2hlZC1vdXRsaW5lLXNoYXBlLXJhZGl1cyBvbmx5IHN1cHBvcnRzIGEgc2luZ2xlIHJhZGl1czsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRlcmlhbC1jb21wb25lbnRzL21hdGVyaWFsLWNvbXBvbmVudHMtd2ViL2lzc3Vlcy80MTQwXCI7XHJcbiAgfVxyXG5cclxuICAkcmFkaXVzOiBudGgoJHJhZGl1cywgMSk7XHJcblxyXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMobWRjLXNoYXBlLW1hc2stcmFkaXVzKCRyYWRpdXMsIDEgMCAwIDEpLCAkcnRsLXJlZmxleGl2ZTogdHJ1ZSk7XHJcblxyXG4gICAgQGlmICgkcmFkaXVzID4gJG1kYy1ub3RjaGVkLW91dGxpbmUtbGVhZGluZy13aWR0aCkge1xyXG4gICAgICB3aWR0aDogJHJhZGl1cztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAoJHJhZGl1cyA+ICRtZGMtbm90Y2hlZC1vdXRsaW5lLWxlYWRpbmctd2lkdGgpIHtcclxuICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCB7XHJcbiAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gI3skcmFkaXVzfSAqIDIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMobWRjLXNoYXBlLW1hc2stcmFkaXVzKCRyYWRpdXMsIDAgMSAxIDApLCAkcnRsLXJlZmxleGl2ZTogdHJ1ZSk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLW5vdGNoZWQtb3V0bGluZS1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbigkcG9zaXRpb25ZLCAkcG9zaXRpb25YOiAwJSwgJHNjYWxlOiAuNzUpIHtcclxuICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oJHBvc2l0aW9uWSArICRtZGMtbm90Y2hlZC1vdXRsaW5lLWxhYmVsLWFkanVzdCwgJHBvc2l0aW9uWCwgMSk7XHJcblxyXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcclxuICAgIGZvbnQtc2l6ZTogKCRzY2FsZSAqIDFyZW0pO1xyXG4gIH1cclxuXHJcbiAgLy8gVHdvIHNlbGVjdG9ycyB0byBlbnN1cmUgd2Ugc2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBjbGFzcyB3aGVuIGFwcGxpZWQgZnJvbSB0aGlzIGNvbXBvbmVudCBvciBhIHBhcmVudCBjb21wb25lbnQuXHJcbiAgJi5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCxcclxuICAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uKCRwb3NpdGlvblksICRwb3NpdGlvblgsICRzY2FsZSk7XHJcblxyXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcclxuICAgIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcclxuICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGtleWZyYW1lcyBtZGMtc2xpZGVyLWVtcGhhc2l6ZSB7XG4gIDAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgfVxuXG4gIDUwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC44NSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC41NzEpO1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4va2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBzbGlkZXJcblxuLm1kYy1zbGlkZXIge1xuICBAaW5jbHVkZSBtZGMtc2xpZGVyLWNvbG9yLWFjY2Vzc2libGUoc2Vjb25kYXJ5KTtcblxuICAmLS1kaXNhYmxlZCB7XG4gICAgJGRpc2FibGVkLWNvbG9yOiAjOWE5YTlhO1xuXG4gICAgQGluY2x1ZGUgbWRjLXNsaWRlci1oaWdobGlnaHQtY29sb3JfKCRkaXNhYmxlZC1jb2xvcik7XG4gICAgQGluY2x1ZGUgbWRjLXNsaWRlci1yYWlsLWNvbG9yXygkZGlzYWJsZWQtY29sb3IpO1xuICAgIEBpbmNsdWRlIG1kYy1zbGlkZXItcmFpbC10aWNrLW1hcmstY29sb3JfKCRkaXNhYmxlZC1jb2xvcik7XG4gICAgQGluY2x1ZGUgbWRjLXNsaWRlci10aHVtYi1jb2xvcl8oJGRpc2FibGVkLWNvbG9yKTtcbiAgICBAaW5jbHVkZSBtZGMtc2xpZGVyLXRodW1iLXN0cm9rZS1jdXRvdXRfKHdoaXRlKTtcblxuICAgIGN1cnNvcjogYXV0bztcbiAgfVxuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3VjaC1hY3Rpb246IHBhbi14O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoYmxhY2ssIDApO1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAmX190cmFjay1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fdHJhY2sge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcblxuICAgIEBpbmNsdWRlIG1kYy1ydGwoXCIubWRjLXNsaWRlclwiKSB7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7XG4gICAgfVxuICB9XG5cbiAgJl9fdHJhY2stbWFya2VyLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgQGluY2x1ZGUgbWRjLXJ0bChcIi5tZGMtc2xpZGVyXCIpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTFweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC8vIExhc3QgbWFya2VyIGF0IHRoZSB2ZXJ5IGVuZCBvZiB0aGUgc2xpZGVyIChyaWdodC1tb3N0IGluIExUUiwgbGVmdC1tb3N0IGluIFJUTClcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAycHg7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuICB9XG5cbiAgJl9fdHJhY2stbWFya2VyIHtcbiAgICBmbGV4OiAxO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMnB4O1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQ6OmFmdGVyIHtcbiAgICAgIHdpZHRoOiAzcHg7XG4gICAgfVxuICB9XG5cbiAgJl9fdGh1bWItY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNXB4O1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDIxcHg7XG4gICAgLy8gRW5zdXJlIHRoYXQgdG91Y2hpbmcgYW55d2hlcmUgd2l0aGluIHRoZSBZLWNvb3JkaW5hdGUgc3BhY2Ugb2YgdGh1bWJcbiAgICAvLyBpcyBjb25zaWRlcmVkIFwiY2xpY2tpbmcgb24gdGhlIHRodW1iXCIuXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIH1cblxuICAmX190aHVtYiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLjU3MSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEwMG1zIGVhc2Utb3V0LCBmaWxsIDEwMG1zIGVhc2Utb3V0LCBzdHJva2UgMTAwbXMgZWFzZS1vdXQ7XG4gICAgc3Ryb2tlLXdpZHRoOiAzLjU7XG4gIH1cblxuICAmX19mb2N1cy1yaW5nIHtcbiAgICB3aWR0aDogMjFweDtcbiAgICBoZWlnaHQ6IDIxcHg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI2Ni42N21zIGVhc2Utb3V0LCBvcGFjaXR5IDI2Ni42N21zIGVhc2Utb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIDI2Ni42N21zIGVhc2Utb3V0O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgJl9fcGluIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMCkgdHJhbnNsYXRlKDAsIDApO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMDBtcyBlYXNlLW91dDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCUgNTAlIDUwJSAwJTtcblxuICAgIC8vIEVuc3VyaW5nIHRoYXQgdGhlIHBpbiBpcyBoaWdoZXIgdGhhbiB0aGUgdGh1bWIgaW4gdGhlIHN0YWNraW5nIG9yZGVyXG4gICAgLy8gcmVtb3ZlcyBzb21lIHJlbmRlcmluZyBqYW5rIG9ic2VydmVkIGluIENocm9tZS5cbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgJl9fcGluLXZhbHVlLW1hcmtlciB7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoYm9keTIpO1xuXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB9XG59XG5cbi5tZGMtc2xpZGVyLS1hY3RpdmUge1xuICAubWRjLXNsaWRlcl9fdGh1bWIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG4ubWRjLXNsaWRlci0tZm9jdXMge1xuICAubWRjLXNsaWRlcl9fdGh1bWIge1xuICAgIGFuaW1hdGlvbjogbWRjLXNsaWRlci1lbXBoYXNpemUgMjY2LjY3bXMgbGluZWFyO1xuICB9XG5cbiAgLm1kYy1zbGlkZXJfX2ZvY3VzLXJpbmcge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjU1LCAxLjU1LCAxLjU1KTtcbiAgICBvcGFjaXR5OiAuMjU7XG4gIH1cbn1cblxuLm1kYy1zbGlkZXItLWluLXRyYW5zaXQge1xuICAubWRjLXNsaWRlcl9fdGh1bWIge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDE0MG1zO1xuICB9XG59XG5cbi8vIE5PVEUodHJhdmlza2F1Zm1hbik6IFRoZXJlIGFyZSBtdWx0aXBsZSBjYXNlcyB3aGVyZSB3ZSB3YW50IHRoZSBzbGlkZXIgdG9cbi8vIHRyYW5zaXRpb24gc2VhbWxlc3NseSBldmVuIHRob3VnaCB3ZSdyZSBqdW1waW5nIHRvIGEgc3BvdC4gVGhlIHNlbGVjdG9yc1xuLy8gYmVsb3cgaGlnaGxpZ2h0IHRoZXNlIGNhc2VzLiBUaGUgc2VsZWN0b3JzIGFyZSBzdXBwbGVtZW50ZWQgYnkgYSBjb21tZW50XG4vLyBkZW5vdGluZyB0aGVpciBzZW1hbnRpYyBtZWFuaW5nIHdpdGhpbiB0aGUgc2xpZGVyLlxuXG4vLyBXaGVuIGEgdXNlciBjbGlja3Mgc29tZXdoZXJlIG9uIHRoZSB0cmFjayB0aGF0IGlzIG5vdCBkaXJlY3RseSB0aGUgc2xpZGVyXG4vLyB0aHVtYiBjb250YWluZXIsIHdlIHRyYW5zaXRpb24gdG8gdGhlIHBsYWNlIHdoZXJlIHRoZSB1c2VyIGNsaWNrZWQuXG4ubWRjLXNsaWRlci0taW4tdHJhbnNpdCxcbi8vIFdoZW4gYSB1c2VyIGlzIHVzaW5nIHRoZSBhcnJvdyBrZXlzIHRvIG1vZGlmeSB0aGUgdmFsdWUgb2YgdGhlIHNsaWRlciByYXRoZXJcbi8vIHRoYW4gZHJhZ2dpbmcgd2l0aCBhIHBvaW50ZXIsIHdlIHRyYW5zaXRpb24gZnJvbSBvbmUgdmFsdWUgdG8gYW5vdGhlci5cbi5tZGMtc2xpZGVyOmZvY3VzOm5vdCgubWRjLXNsaWRlci0tYWN0aXZlKSB7XG4gIC5tZGMtc2xpZGVyX190aHVtYi1jb250YWluZXIsXG4gIC5tZGMtc2xpZGVyX190cmFjayB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDgwbXMgZWFzZTtcbiAgfVxufVxuXG4ubWRjLXNsaWRlci0tZGlzY3JldGUge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbiAgJi5tZGMtc2xpZGVyLS1hY3RpdmUge1xuICAgIC5tZGMtc2xpZGVyX190aHVtYiB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKGNhbGMoMTIgLyAyMSkpO1xuICAgIH1cblxuICAgIC5tZGMtc2xpZGVyX19waW4ge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgxKSB0cmFuc2xhdGUoMTlweCwgLTIwcHgpO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXNsaWRlci0tZm9jdXMge1xuICAgIC5tZGMtc2xpZGVyX190aHVtYiB7XG4gICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtc2xpZGVyLS1kaXNwbGF5LW1hcmtlcnMge1xuICAgIC5tZGMtc2xpZGVyX190cmFjay1tYXJrZXItY29udGFpbmVyIHtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuICB9XG4gIC8vIHN0eWxlbGludC1lbmFibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG59XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL3RoZW1lL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL3ZhcmlhYmxlc1wiOyAvLyBmb3IgbWRjLXRoZW1lLXByb3AtdmFsdWVcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vL1xuLy8gUHVibGljXG4vL1xuXG5AbWl4aW4gbWRjLXNsaWRlci1oaWdobGlnaHQtY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy1zbGlkZXItaGlnaGxpZ2h0LWNvbG9yXygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2xpZGVyLXJhaWwtY29sb3IoJGNvbG9yLCAkb3BhY2l0eTogJG1kYy1zbGlkZXItYmFzZWxpbmUtcmFpbC1vcGFjaXR5KSB7XG4gICY6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy1zbGlkZXItcmFpbC1jb2xvcl8oJGNvbG9yLCAkb3BhY2l0eSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbGlkZXItcmFpbC10aWNrLW1hcmstY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy1zbGlkZXItcmFpbC10aWNrLW1hcmstY29sb3JfKCRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbGlkZXItdGh1bWItY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy1zbGlkZXItdGh1bWItY29sb3JfKCRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbGlkZXItZm9jdXMtaGFsby1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoLm1kYy1zbGlkZXItLWRpc2FibGVkKSB7XG4gICAgLm1kYy1zbGlkZXJfX2ZvY3VzLXJpbmcge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbGlkZXItdmFsdWUtcGluLWluay1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoLm1kYy1zbGlkZXItLWRpc2FibGVkKSB7XG4gICAgLm1kYy1zbGlkZXJfX3BpbiB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbGlkZXItdmFsdWUtcGluLWZpbGwtY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkge1xuICAgIC5tZGMtc2xpZGVyX19waW4ge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbGlkZXItdmFsdWUtcGluLWZpbGwtY29sb3ItYWNjZXNzaWJsZSgkY29sb3IpIHtcbiAgJGNvbG9yLXZhbHVlOiBtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpO1xuICAkaW5rLWNvbG9yOiBpZihtZGMtdGhlbWUtdG9uZSgkY29sb3ItdmFsdWUpID09IFwibGlnaHRcIiwgdGV4dC1wcmltYXJ5LW9uLWxpZ2h0LCB0ZXh0LXByaW1hcnktb24tZGFyayk7XG5cbiAgQGluY2x1ZGUgbWRjLXNsaWRlci12YWx1ZS1waW4tZmlsbC1jb2xvcigkY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtc2xpZGVyLXZhbHVlLXBpbi1pbmstY29sb3IoJGluay1jb2xvcik7XG59XG5cbi8vIE5PVEU6IFRoaXMgbWl4aW4gc2V0cyB0aGUgY29sb3Igb2YgQUxMIGN1c3RvbWl6YWJsZSBlbGVtZW50cyBpbiB0aGUgc2xpZGVyLiBJZiBuZXcgZWxlbWVudHMgYXJlIGFkZGVkLCB0aGlzIG1peGluXG4vLyBzaG91bGQgYmUgdXBkYXRlZCB0byBjb3ZlciB0aG9zZSBhZGRpdGlvbmFsIGVsZW1lbnRzLlxuQG1peGluIG1kYy1zbGlkZXItY29sb3ItYWNjZXNzaWJsZSgkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLXNsaWRlci1oaWdobGlnaHQtY29sb3IoJGNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXNsaWRlci1yYWlsLWNvbG9yKCRjb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1zbGlkZXItcmFpbC10aWNrLW1hcmstY29sb3IoJGNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXNsaWRlci10aHVtYi1jb2xvcigkY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtc2xpZGVyLWZvY3VzLWhhbG8tY29sb3IoJGNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXNsaWRlci12YWx1ZS1waW4tZmlsbC1jb2xvci1hY2Nlc3NpYmxlKCRjb2xvcik7XG59XG5cbi8vXG4vLyBQcml2YXRlXG4vL1xuXG5AbWl4aW4gbWRjLXNsaWRlci1oaWdobGlnaHQtY29sb3JfKCRjb2xvcikge1xuICAubWRjLXNsaWRlcl9fdHJhY2sge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbGlkZXItcmFpbC1jb2xvcl8oJGNvbG9yLCAkb3BhY2l0eTogJG1kYy1zbGlkZXItYmFzZWxpbmUtcmFpbC1vcGFjaXR5KSB7XG4gIC5tZGMtc2xpZGVyX190cmFjay1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsIHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG9wYWNpdHkpKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNsaWRlci1yYWlsLXRpY2stbWFyay1jb2xvcl8oJGNvbG9yKSB7XG4gIC5tZGMtc2xpZGVyX190cmFjay1tYXJrZXI6OmFmdGVyLFxuICAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyLWNvbnRhaW5lcjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbGlkZXItdGh1bWItY29sb3JfKCRjb2xvcikge1xuICAubWRjLXNsaWRlcl9fdGh1bWIge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGZpbGwsICRjb2xvcik7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3Aoc3Ryb2tlLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2xpZGVyLXRodW1iLXN0cm9rZS1jdXRvdXRfKCRjb2xvcikge1xuICAubWRjLXNsaWRlcl9fdGh1bWIge1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBzdHJva2U6ICRjb2xvcjtcbiAgICBzdHJva2U6IHZhcigtLW1kYy1zbGlkZXItYmctY29sb3ItYmVoaW5kLWNvbXBvbmVudCwgJGNvbG9yKTtcbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vYnV0dG9uL21peGluc1wiO1xuQGltcG9ydCBcIi4uL2ljb24tYnV0dG9uL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHNuYWNrYmFyXG4ubWRjLXNuYWNrYmFyIHtcbiAgQGluY2x1ZGUgbWRjLXNuYWNrYmFyLXotaW5kZXgoJG1kYy1zbmFja2Jhci16LWluZGV4KTtcbiAgQGluY2x1ZGUgbWRjLXNuYWNrYmFyLXZpZXdwb3J0LW1hcmdpbigkbWRjLXNuYWNrYmFyLXZpZXdwb3J0LW1hcmdpbi1uYXJyb3cpO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgLy8gSWdub3JlIG1vdXNlIGV2ZW50cyBvbiB0aGUgcm9vdCBsYXlvdXQgZWxlbWVudC5cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgLy8gRm9yIHNvbWUgcmVhc29uLCBpT1MgU2FmYXJpIGRpc3BsYXlzIGEgdGFwIGhpZ2hsaWdodCBvbiB0aGUgZW50aXJlIHNuYWNrYmFyIGVsZW1lbnQuXG4gIC8vIE1vYmlsZSBTYWZhcmkgb25seSBzdXBwb3J0cyBgcmdiYWAgdmFsdWVzIGZvciB0aGlzIHByb3BlcnR5OyBuYW1lZCB2YWx1ZXMgbGlrZSBgdHJhbnNwYXJlbnRgIGFyZSBpZ25vcmVkLlxuICAvLyBGcm9tIEFwcGxlJ3MgZG9jczpcbiAgLy8gPiBUaGlzIHByb3BlcnR5IG9iZXlzIHRoZSBhbHBoYSB2YWx1ZSwgaWYgc3BlY2lmaWVkLlxuICAvLyA+IElmIHlvdSBkb27igJl0IHNwZWNpZnkgYW4gYWxwaGEgdmFsdWUsIFNhZmFyaSBvbiBpT1MgYXBwbGllcyBhIGRlZmF1bHQgYWxwaGEgdmFsdWUgdG8gdGhlIGNvbG9yLlxuICAvLyA+IFRvIGRpc2FibGUgdGFwIGhpZ2hsaWdodGluZywgc2V0IHRoZSBhbHBoYSB2YWx1ZSB0byAwIChpbnZpc2libGUpLlxuICAvLyA+IElmIHlvdSBzZXQgdGhlIGFscGhhIHZhbHVlIHRvIDEuMCAob3BhcXVlKSwgdGhlIGVsZW1lbnQgaXMgbm90IHZpc2libGUgd2hlbiB0YXBwZWQuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYmVuLWViL3Bvc3Rjc3MtY29sb3JtaW4vaXNzdWVzLzFcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuXG5AYXQtcm9vdCB7XG4gIEBpbmNsdWRlIG1kYy1zbmFja2Jhci1maWxsLWNvbG9yKCRtZGMtc25hY2tiYXItZmlsbC1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1zbmFja2Jhci1sYWJlbC1pbmstY29sb3IoJG1kYy1zbmFja2Jhci1sYWJlbC1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtc25hY2tiYXItbWluLXdpZHRoKCRtZGMtc25hY2tiYXItbWluLXdpZHRoKTtcbiAgQGluY2x1ZGUgbWRjLXNuYWNrYmFyLW1heC13aWR0aCgkbWRjLXNuYWNrYmFyLW1heC13aWR0aCk7XG4gIEBpbmNsdWRlIG1kYy1zbmFja2Jhci1lbGV2YXRpb24oJG1kYy1zbmFja2Jhci1lbGV2YXRpb24pO1xuICBAaW5jbHVkZSBtZGMtc25hY2tiYXItc2hhcGUtcmFkaXVzKCRtZGMtc25hY2tiYXItc2hhcGUtcmFkaXVzKTtcbn1cblxuLm1kYy1zbmFja2Jhci0tb3BlbmluZyxcbi5tZGMtc25hY2tiYXItLW9wZW4sXG4ubWRjLXNuYWNrYmFyLS1jbG9zaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLm1kYy1zbmFja2Jhci0tbGVhZGluZyB7XG4gIEBpbmNsdWRlIG1kYy1zbmFja2Jhci1wb3NpdGlvbi1sZWFkaW5nO1xufVxuXG4ubWRjLXNuYWNrYmFyLS1zdGFja2VkIHtcbiAgQGluY2x1ZGUgbWRjLXNuYWNrYmFyLWxheW91dC1zdGFja2VkO1xufVxuXG4ubWRjLXNuYWNrYmFyX19zdXJmYWNlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2Zvcm06IHNjYWxlKC44KTtcbiAgb3BhY2l0eTogMDtcblxuICAubWRjLXNuYWNrYmFyLS1vcGVuICYge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIG1kYy1hbmltYXRpb24tZW50ZXIob3BhY2l0eSwgJG1kYy1zbmFja2Jhci1lbnRlci1kdXJhdGlvbiksXG4gICAgICBtZGMtYW5pbWF0aW9uLWVudGVyKHRyYW5zZm9ybSwgJG1kYy1zbmFja2Jhci1lbnRlci1kdXJhdGlvbik7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgLy8gQWxsb3cgbW91c2UgZXZlbnRzIG9uIHN1cmZhY2UgZWxlbWVudCB3aGlsZSBzbmFja2JhciBpcyBvcGVuXG4gIH1cblxuICAubWRjLXNuYWNrYmFyLS1jbG9zaW5nICYge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNpdGlvbjogbWRjLWFuaW1hdGlvbi1leGl0LXBlcm1hbmVudChvcGFjaXR5LCAkbWRjLXNuYWNrYmFyLWV4aXQtZHVyYXRpb24pO1xuICB9XG59XG5cbi5tZGMtc25hY2tiYXJfX2xhYmVsIHtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoJG1kYy1zbmFja2Jhci1sYWJlbC10eXBlLXNjYWxlKTtcblxuICBmbGV4LWdyb3c6IDE7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcblxuICAvLyAxNHB4IHRvcC9ib3R0b20gcGFkZGluZyBuZWVkZWQgdG8gbWFrZSB0aGUgaGVpZ2h0IDQ4cHguXG4gIHBhZGRpbmc6IDE0cHggMTZweDtcbn1cblxuLy8gVXNlZCB0byBwcmV2ZW50IHZpc3VhbCBqYW5rIHdoZW4gYW5ub3VuY2luZyBsYWJlbCB0ZXh0IHRvIHNjcmVlbiByZWFkZXJzLlxuLy8gU2VlIHRoZSBgYW5ub3VuY2UoKWAgZnVuY3Rpb24gaW4gdXRpbC5qcyBmb3IgZGV0YWlscy5cbi5tZGMtc25hY2tiYXJfX2xhYmVsOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS1tZGMtc25hY2tiYXItbGFiZWwtdGV4dCk7XG59XG5cbi5tZGMtc25hY2tiYXJfX2FjdGlvbnMge1xuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sIDAsICRtZGMtc25hY2tiYXItcGFkZGluZyk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5tZGMtc25hY2tiYXJfX2FjdGlvbiB7XG4gIEBpbmNsdWRlIG1kYy1idXR0b24taW5rLWNvbG9yKCRtZGMtc25hY2tiYXItYWN0aW9uLWluay1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJG1kYy1zbmFja2Jhci1hY3Rpb24taW5rLWNvbG9yKTtcbn1cblxuLm1kYy1zbmFja2Jhcl9fZGlzbWlzcyB7XG4gIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi1pbmstY29sb3IoJG1kYy1zbmFja2Jhci1kaXNtaXNzLWluay1jb2xvcik7XG59XG5cbi8vIFR3byBzZWxlY3RvcnMgYXJlIG5lZWRlZCB0byBpbmNyZWFzZSBzcGVjaWZpY2l0eSBhYm92ZSBgLm1hdGVyaWFsLWljb25zYC5cbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1jbGFzcy1wYXR0ZXJuXG4ubWRjLXNuYWNrYmFyX19kaXNtaXNzLm1kYy1zbmFja2Jhcl9fZGlzbWlzcyB7XG4gIEBpbmNsdWRlIG1kYy1pY29uLWJ1dHRvbi1zaXplKCRtZGMtc25hY2tiYXItZGlzbWlzcy1pY29uLXNpemUpO1xufVxuXG4ubWRjLXNuYWNrYmFyX19hY3Rpb24gKyAubWRjLXNuYWNrYmFyX19kaXNtaXNzIHtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCAkbWRjLXNuYWNrYmFyLXBhZGRpbmcsIDApO1xufVxuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1zbmFja2Jhci1maWxsLWNvbG9yKCRjb2xvcikge1xuICAubWRjLXNuYWNrYmFyX19zdXJmYWNlIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc25hY2tiYXItbGFiZWwtaW5rLWNvbG9yKCRjb2xvcikge1xuICAubWRjLXNuYWNrYmFyX19sYWJlbCB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbmFja2Jhci1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlKSB7XG4gIC5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmUpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc25hY2tiYXItbWluLXdpZHRoKCRtaW4td2lkdGgsICRtb2JpbGUtYnJlYWtwb2ludDogJG1kYy1zbmFja2Jhci1tb2JpbGUtYnJlYWtwb2ludCkge1xuICAubWRjLXNuYWNrYmFyX19zdXJmYWNlIHtcbiAgICBtaW4td2lkdGg6ICRtaW4td2lkdGg7XG5cbiAgICAvLyBUaGUgZmlyc3QgbWVkaWEgcXVlcnkgZW5zdXJlcyB0aGF0IHNuYWNrYmFycyBhcmUgYWx3YXlzIDEwMCUgd2lkdGggb24gbW9iaWxlIGRldmljZXMsIGFzIHJlcXVpcmVkIGJ5IHRoZSBzcGVjLlxuICAgIC8vIFRoZSBzZWNvbmQgbWVkaWEgcXVlcnkgcHJldmVudHMgc25hY2tiYXJzIGZyb20gYmVpbmcgd2lkZXIgdGhhbiB0aGUgdmlld3BvcnQgZm9yIGxhcmdlIG1pbi13aWR0aCB2YWx1ZXMuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtb2JpbGUtYnJlYWtwb2ludCksIChtYXgtd2lkdGg6ICRtaW4td2lkdGgpIHtcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbmFja2Jhci1tYXgtd2lkdGgoJG1heC13aWR0aCkge1xuICAubWRjLXNuYWNrYmFyX19zdXJmYWNlIHtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbmFja2Jhci1lbGV2YXRpb24oJHotaW5kZXgpIHtcbiAgLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbigkei1pbmRleCk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbmFja2Jhci12aWV3cG9ydC1tYXJnaW4oJG1hcmdpbikge1xuICBtYXJnaW46ICRtYXJnaW47XG59XG5cbkBtaXhpbiBtZGMtc25hY2tiYXItei1pbmRleCgkei1pbmRleCkge1xuICB6LWluZGV4OiAkei1pbmRleDtcbn1cblxuQG1peGluIG1kYy1zbmFja2Jhci1wb3NpdGlvbi1sZWFkaW5nIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG5AbWl4aW4gbWRjLXNuYWNrYmFyLWxheW91dC1zdGFja2VkIHtcbiAgLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgfVxuXG4gIC5tZGMtc25hY2tiYXJfX2FjdGlvbnMge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi1ib3R0b206ICRtZGMtc25hY2tiYXItcGFkZGluZztcbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi90aGVtZS9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS92YXJpYWJsZXNcIjsgLy8gZm9yIG1kYy10aGVtZS1wcm9wLXZhbHVlKCkgZnVuY3Rpb25cblxuJG1kYy1zbmFja2Jhci1maWxsLWNvbG9yOiBtaXgobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIG1kYy10aGVtZS1wcm9wLXZhbHVlKHN1cmZhY2UpLCA4MCUpICFkZWZhdWx0O1xuJG1kYy1zbmFja2Jhci1sYWJlbC1pbmstY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoc3VyZmFjZSksIG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzKGhpZ2gpKSAhZGVmYXVsdDtcbiRtZGMtc25hY2tiYXItYWN0aW9uLWluay1jb2xvcjogI2JiODZmYyAhZGVmYXVsdDtcbiRtZGMtc25hY2tiYXItZGlzbWlzcy1pbmstY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoc3VyZmFjZSksIG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzKGhpZ2gpKSAhZGVmYXVsdDtcblxuJG1kYy1zbmFja2Jhci1sYWJlbC10eXBlLXNjYWxlOiBib2R5MiAhZGVmYXVsdDtcbiRtZGMtc25hY2tiYXItZGlzbWlzcy1pY29uLXNpemU6IDE4cHggIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLW1pbi13aWR0aDogMzQ0cHggIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLW1heC13aWR0aDogNjcycHggIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLW1vYmlsZS1icmVha3BvaW50OiA0ODBweCAhZGVmYXVsdDtcbiRtZGMtc25hY2tiYXItdmlld3BvcnQtbWFyZ2luLW5hcnJvdzogOHB4ICFkZWZhdWx0O1xuJG1kYy1zbmFja2Jhci12aWV3cG9ydC1tYXJnaW4td2lkZTogMjRweCAhZGVmYXVsdDtcbiRtZGMtc25hY2tiYXItcGFkZGluZzogOHB4ICFkZWZhdWx0O1xuXG4kbWRjLXNuYWNrYmFyLWVsZXZhdGlvbjogNiAhZGVmYXVsdDtcbiRtZGMtc25hY2tiYXItc2hhcGUtcmFkaXVzOiBzbWFsbCAhZGVmYXVsdDsgLy8gS2V5IGZyb20gJG1kYy1zaGFwZS1jYXRlZ29yeS12YWx1ZXMgb3IgQ1NTIGxlbmd0aCB2YWx1ZSAoZS5nLiwgNHB4KVxuJG1kYy1zbmFja2Jhci16LWluZGV4OiA4ICFkZWZhdWx0OyAvLyBPbmUgYWJvdmUgbWRjLWRpYWxvZ1xuXG4vLyBUaGVzZSB2YXJpYWJsZXMgbmVlZCB0byBiZSBrZXB0IGluIHN5bmMgd2l0aCB0aGUgdmFsdWVzIGluIGNvbnN0YW50cy5qcy5cbiRtZGMtc25hY2tiYXItZW50ZXItZHVyYXRpb246IDE1MG1zICFkZWZhdWx0O1xuJG1kYy1zbmFja2Jhci1leGl0LWR1cmF0aW9uOiA3NW1zICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL2VsZXZhdGlvbi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vXG4vLyBQdWJsaWNcbi8vXG5cbkBtaXhpbiBtZGMtc3dpdGNoLWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLXN3aXRjaC13aXRob3V0LXJpcHBsZSgkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtc3dpdGNoLXJpcHBsZSgkcXVlcnkpO1xufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBzd2l0Y2ggc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtc3dpdGNoLWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIG1kYy1zd2l0Y2gtd2l0aG91dC1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBzd2l0Y2hcblxuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtc3dpdGNoIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLXN3aXRjaC1iYXNlXztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtc3dpdGNoLXRvZ2dsZWQtb24tdHJhY2stY29sb3IoJG1kYy1zd2l0Y2gtYmFzZWxpbmUtdGhlbWUtY29sb3IsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXN3aXRjaC10b2dnbGVkLW9uLXRodW1iLWNvbG9yKCRtZGMtc3dpdGNoLWJhc2VsaW5lLXRoZW1lLWNvbG9yLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtdHJhY2stY29sb3IoJG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtdHJhY2stY29sb3IsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXN3aXRjaC10b2dnbGVkLW9mZi10aHVtYi1jb2xvcigkbWRjLXN3aXRjaC10b2dnbGVkLW9mZi10aHVtYi1jb2xvciwgJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2hfX25hdGl2ZS1jb250cm9sXztcbiAgICB9XG4gIH1cblxuICAubWRjLXN3aXRjaF9fdHJhY2sge1xuICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2hfX3RyYWNrXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5IHtcbiAgICBAaW5jbHVkZSBtZGMtc3dpdGNoX190aHVtYi11bmRlcmxheV8oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtc3dpdGNoX190aHVtYiB7XG4gICAgQGluY2x1ZGUgbWRjLXN3aXRjaF9fdGh1bWJfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLXN3aXRjaC0tY2hlY2tlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC5tZGMtc3dpdGNoX190cmFjayB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2hfX3RyYWNrLWNoZWNrZWRfO1xuICAgICAgfVxuXG4gICAgICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtc3dpdGNoX190aHVtYi11bmRlcmxheS1jaGVja2VkXztcbiAgICAgIH1cblxuICAgICAgLm1kYy1zd2l0Y2hfX25hdGl2ZS1jb250cm9sIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2wtY2hlY2tlZF87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1zd2l0Y2gtLWRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLXN3aXRjaC0tZGlzYWJsZWQtYmFzZV87XG5cbiAgICAgIC5tZGMtc3dpdGNoX190aHVtYiB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2hfX3RodW1iLWRpc2FibGVkXztcbiAgICAgIH1cblxuICAgICAgLm1kYy1zd2l0Y2hfX25hdGl2ZS1jb250cm9sIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2wtZGlzYWJsZWRfO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG59XG5cbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcbi8vIHN3aXRjaCBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1zd2l0Y2gtY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gbWRjLXN3aXRjaC1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtcmlwcGxlLWNvbW1vbigkcXVlcnkpO1xuXG4gIC5tZGMtc3dpdGNoIHtcbiAgICBAaW5jbHVkZSBtZGMtc3dpdGNoLXRvZ2dsZWQtb2ZmLXJpcHBsZS1jb2xvcigkbWRjLXN3aXRjaC10b2dnbGVkLW9mZi1yaXBwbGUtY29sb3IsICRxdWVyeSk7XG4gIH1cblxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkge1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZSgkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLXVuYm91bmRlZCgxMDAlLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJG1kYy1zd2l0Y2gtYmFzZWxpbmUtdGhlbWUtY29sb3IsIGZhbHNlLCAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoLXRvZ2dsZWQtb24tY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vbi10cmFjay1jb2xvcigkY29sb3IsICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vbi10aHVtYi1jb2xvcigkY29sb3IsICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vbi1yaXBwbGUtY29sb3IoJGNvbG9yLCAkcXVlcnkpO1xufVxuXG5AbWl4aW4gbWRjLXN3aXRjaC10b2dnbGVkLW9mZi1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLXN3aXRjaC10b2dnbGVkLW9mZi10cmFjay1jb2xvcigkY29sb3IsICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtdGh1bWItY29sb3IoJGNvbG9yLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtc3dpdGNoLXRvZ2dsZWQtb2ZmLXJpcHBsZS1jb2xvcigkY29sb3IsICRxdWVyeSk7XG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoLXRvZ2dsZWQtb24tdHJhY2stY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gICYubWRjLXN3aXRjaC0tY2hlY2tlZCAubWRjLXN3aXRjaF9fdHJhY2sge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoLXRvZ2dsZWQtb24tdGh1bWItY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gICYubWRjLXN3aXRjaC0tY2hlY2tlZCAubWRjLXN3aXRjaF9fdGh1bWIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoLXRvZ2dsZWQtb24tcmlwcGxlLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAmLm1kYy1zd2l0Y2gtLWNoZWNrZWQgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5IHtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRjb2xvciwgZmFsc2UsICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtdHJhY2stY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gICY6bm90KC5tZGMtc3dpdGNoLS1jaGVja2VkKSAubWRjLXN3aXRjaF9fdHJhY2sge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoLXRvZ2dsZWQtb2ZmLXRodW1iLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RodW1iIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN3aXRjaC10b2dnbGVkLW9mZi1yaXBwbGUtY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICY6bm90KC5tZGMtc3dpdGNoLS1jaGVja2VkKSAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkge1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJGNvbG9yLCBmYWxzZSwgJHF1ZXJ5KTtcbiAgfVxufVxuXG4vL1xuLy8gUHJpdmF0ZVxuLy9cblxuLy8gU3RydWN0dXJlXG5AbWl4aW4gbWRjLXN3aXRjaC1iYXNlXyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdXRsaW5lOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuQG1peGluIG1kYy1zd2l0Y2hfX3RyYWNrXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAkbWRjLXN3aXRjaC10cmFjay13aWR0aDtcbiAgICBoZWlnaHQ6ICRtZGMtc3dpdGNoLXRyYWNrLWhlaWdodDtcbiAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICBib3JkZXItcmFkaXVzOiAkbWRjLXN3aXRjaC10cmFjay1oZWlnaHQgLyAyO1xuICAgIG9wYWNpdHk6IC4zODtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIG1kYy1zd2l0Y2gtdHJhbnNpdGlvbihvcGFjaXR5KSxcbiAgICAgIG1kYy1zd2l0Y2gtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKSxcbiAgICAgIG1kYy1zd2l0Y2gtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoX190aHVtYi11bmRlcmxheV8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICRtZGMtc3dpdGNoLXRhcC10YXJnZXQtaW5pdGlhbC1wb3NpdGlvbik7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyBFbnN1cmVzIHRoZSBrbm9iIGlzIGNlbnRlcmVkIG9uIHRoZSB0cmFjay5cbiAgICB0b3A6IC0oKCRtZGMtc3dpdGNoLXRhcC10YXJnZXQtc2l6ZSAtICRtZGMtc3dpdGNoLXRyYWNrLWhlaWdodCkgLyAyKTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAkbWRjLXN3aXRjaC10YXAtdGFyZ2V0LXNpemU7XG4gICAgaGVpZ2h0OiAkbWRjLXN3aXRjaC10YXAtdGFyZ2V0LXNpemU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgbWRjLXN3aXRjaC10cmFuc2l0aW9uKHRyYW5zZm9ybSksXG4gICAgICBtZGMtc3dpdGNoLXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciksXG4gICAgICBtZGMtc3dpdGNoLXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2xfIHtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgMCk7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAkbWRjLXN3aXRjaC1uYXRpdmUtY29udHJvbC13aWR0aDtcbiAgaGVpZ2h0OiAkbWRjLXN3aXRjaC10YXAtdGFyZ2V0LXNpemU7XG4gIG1hcmdpbjogMDtcbiAgb3BhY2l0eTogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuQG1peGluIG1kYy1zd2l0Y2hfX3RodW1iXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oJHotdmFsdWU6IDIsICRxdWVyeTogJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6ICRtZGMtc3dpdGNoLXRodW1iLWRpYW1ldGVyO1xuICAgIGhlaWdodDogJG1kYy1zd2l0Y2gtdGh1bWItZGlhbWV0ZXI7XG4gICAgYm9yZGVyOiAkbWRjLXN3aXRjaC10aHVtYi1kaWFtZXRlciAvIDIgc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIC8vIEFsbG93IGV2ZW50cyB0byBnbyB0aHJvdWdoIHRvIHRoZSBuYXRpdmUgY29udHJvbCwgbmVjZXNzYXJ5IGZvciBJRSBhbmQgRWRnZS5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG59XG5cbi8vIENoZWNrZWQgc3RhdGVcblxuQG1peGluIG1kYy1zd2l0Y2hfX3RyYWNrLWNoZWNrZWRfIHtcbiAgb3BhY2l0eTogLjU0O1xufVxuXG5AbWl4aW4gbWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXktY2hlY2tlZF8ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJG1kYy1zd2l0Y2gtdGh1bWItYWN0aXZlLW1hcmdpbik7XG5cbiAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0oJG1kYy1zd2l0Y2gtdGh1bWItYWN0aXZlLW1hcmdpbikpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbC1jaGVja2VkXyB7XG4gIC8vIFRyYW5zbGF0ZSB0aGUgbmF0aXZlIGNvbnRyb2wgdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiBzbyB0aGF0IHRoZSB0YXAgdGFyZ2V0IHN0YXlzIHRoZSBzYW1lLlxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSgkbWRjLXN3aXRjaC10aHVtYi1hY3RpdmUtbWFyZ2luKSk7XG5cbiAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRtZGMtc3dpdGNoLXRodW1iLWFjdGl2ZS1tYXJnaW4pO1xuICB9XG59XG5cbi8vIERpc2FibGVkIHN0YXRlXG5cbkBtaXhpbiBtZGMtc3dpdGNoLS1kaXNhYmxlZC1iYXNlXyB7XG4gIG9wYWNpdHk6IC4zODtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoX190aHVtYi1kaXNhYmxlZF8ge1xuICBib3JkZXItd2lkdGg6IDFweDsgIC8vIEluIGhpZ2ggY29udHJhc3QgbW9kZSwgb25seSBzaG93IG91dGxpbmUgb2Yga25vYi5cbn1cblxuQG1peGluIG1kYy1zd2l0Y2hfX25hdGl2ZS1jb250cm9sLWRpc2FibGVkXyB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL3RoZW1lL3ZhcmlhYmxlc1wiO1xuXG4kbWRjLXN3aXRjaC10cmFjay13aWR0aDogMzJweCAhZGVmYXVsdDtcbiRtZGMtc3dpdGNoLXRyYWNrLWhlaWdodDogMTRweCAhZGVmYXVsdDtcbiRtZGMtc3dpdGNoLXRodW1iLWRpYW1ldGVyOiAyMHB4ICFkZWZhdWx0O1xuJG1kYy1zd2l0Y2gtdGFwLXRhcmdldC1zaXplOiA0OHB4ICFkZWZhdWx0O1xuXG4vLyBBbW91bnQgdGhlIGVkZ2Ugb2YgdGhlIHRodW1iIHNob3VsZCBiZSBvZmZzZXQgZnJvbSB0aGUgZWRnZSBvZiB0aGUgdHJhY2suXG4kbWRjLXN3aXRjaC10aHVtYi1vZmZzZXQ6IDRweCAhZGVmYXVsdDtcblxuLy8gUG9zaXRpb24gZm9yIHRoZSB0YXAgdGFyZ2V0IHRoYXQgY29udGFpbnMgdGhlIHRodW1iIHRvIGFsaWduIHRoZSB0aHVtYiBjb3JyZWN0bHkgb2Zmc2V0IGZyb20gdGhlIHRyYWNrLlxuJG1kYy1zd2l0Y2gtdGFwLXRhcmdldC1pbml0aWFsLXBvc2l0aW9uOlxuICAtJG1kYy1zd2l0Y2gtdGFwLXRhcmdldC1zaXplIC8gMiArICRtZGMtc3dpdGNoLXRodW1iLWRpYW1ldGVyIC8gMiAtXG4gICRtZGMtc3dpdGNoLXRodW1iLW9mZnNldCAhZGVmYXVsdDtcblxuLy8gVmFsdWUgdG8gY292ZXIgdGhlIHdob2xlIHN3aXRjaCBhcmVhIChpbmNsdWRpbmcgdGhlIHJpcHBsZSkgd2l0aCB0aGUgbmF0aXZlIGNvbnRyb2wuXG4kbWRjLXN3aXRjaC1uYXRpdmUtY29udHJvbC13aWR0aDpcbiAgJG1kYy1zd2l0Y2gtdHJhY2std2lkdGggK1xuICAoJG1kYy1zd2l0Y2gtdGFwLXRhcmdldC1zaXplIC0gJG1kYy1zd2l0Y2gtdGh1bWItZGlhbWV0ZXIpICtcbiAgJG1kYy1zd2l0Y2gtdGh1bWItb2Zmc2V0ICogMiAhZGVmYXVsdDtcblxuJG1kYy1zd2l0Y2gtdGh1bWItYWN0aXZlLW1hcmdpbjpcbiAgJG1kYy1zd2l0Y2gtdHJhY2std2lkdGggLSAkbWRjLXN3aXRjaC10aHVtYi1kaWFtZXRlciArICRtZGMtc3dpdGNoLXRodW1iLW9mZnNldCAqIDIgIWRlZmF1bHQ7XG5cbiRtZGMtc3dpdGNoLXRvZ2dsZWQtb2ZmLXRodW1iLWNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShzdXJmYWNlKSAhZGVmYXVsdDtcbiRtZGMtc3dpdGNoLXRvZ2dsZWQtb2ZmLXRyYWNrLWNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSAhZGVmYXVsdDtcbiRtZGMtc3dpdGNoLXRvZ2dsZWQtb2ZmLXJpcHBsZS1jb2xvcjogIzllOWU5ZSAhZGVmYXVsdDtcbiRtZGMtc3dpdGNoLWRpc2FibGVkLXRodW1iLWNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShzdXJmYWNlKSAhZGVmYXVsdDtcbiRtZGMtc3dpdGNoLWRpc2FibGVkLXRyYWNrLWNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSAhZGVmYXVsdDtcblxuJG1kYy1zd2l0Y2gtYmFzZWxpbmUtdGhlbWUtY29sb3I6IHNlY29uZGFyeSAhZGVmYXVsdDtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5cbkBtaXhpbiBtZGMtdGFiLWluZGljYXRvci1zdXJmYWNlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5AbWl4aW4gbWRjLXRhYi1pbmRpY2F0b3ItdW5kZXJsaW5lLWNvbG9yKCRjb2xvcikge1xuICA+IC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5lIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGFiLWluZGljYXRvci11bmRlcmxpbmUtaGVpZ2h0KCRoZWlnaHQpIHtcbiAgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGFiLWluZGljYXRvci11bmRlcmxpbmUtdG9wLWNvcm5lci1yYWRpdXMoJHJhZGl1cykge1xuICA+IC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5lIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGFiLWluZGljYXRvci1pY29uLWNvbG9yKCRjb2xvcikge1xuICA+IC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0taWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy10YWItaW5kaWNhdG9yLWljb24taGVpZ2h0KCRoZWlnaHQpIHtcbiAgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLWljb24ge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICBmb250LXNpemU6ICRoZWlnaHQ7XG4gIH1cbn1cbiIsIi8vXHJcbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXHJcbi8vXHJcbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcclxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxyXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXHJcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcclxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXHJcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XHJcbi8vXHJcbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXHJcbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxyXG4vL1xyXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXHJcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxyXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcclxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxyXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxyXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXHJcbi8vIFRIRSBTT0ZUV0FSRS5cclxuLy9cclxuXHJcbkBpbXBvcnQgXCIuLi9yaXBwbGUvY29tbW9uXCI7XHJcbkBpbXBvcnQgXCIuLi9yaXBwbGUvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9ydGwvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi90eXBvZ3JhcGh5L21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vdGFiLWluZGljYXRvci9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4vbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xyXG5cclxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgdGFiXHJcblxyXG4ubWRjLXRhYiB7XHJcbiAgQGluY2x1ZGUgbWRjLXRhYi10ZXh0LWxhYmVsLWNvbG9yKG9uLXN1cmZhY2UpO1xyXG4gIEBpbmNsdWRlIG1kYy10YWItaWNvbi1jb2xvcihvbi1zdXJmYWNlKTtcclxuICBAaW5jbHVkZSBtZGMtdGFiLWluZGljYXRvci1zdXJmYWNlO1xyXG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGJ1dHRvbik7XHJcblxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleDogMSAwIGF1dG87XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBoZWlnaHQ6ICRtZGMtdGFiLWhlaWdodDtcclxuICBwYWRkaW5nOiAwIDI0cHg7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgYmFja2dyb3VuZDogbm9uZTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gIHotaW5kZXg6IDE7XHJcblxyXG4gIC8vIEZpcmVmb3ggc3RpbGwgZHJhd3MgYSBkb3R0ZWQgYm9yZGVyIGFyb3VuZCBmb2N1c2VkIGJ1dHRvbnMgdW5sZXNzIHNwZWNpZmljYWxseSBvdmVycmlkZGVuLlxyXG4gICY6Oi1tb3otZm9jdXMtaW5uZXIge1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJvcmRlcjogMDtcclxuICB9XHJcbn1cclxuXHJcbi5tZGMtdGFiLS1taW4td2lkdGgge1xyXG4gIGZsZXg6IDAgMSBhdXRvO1xyXG59XHJcblxyXG4ubWRjLXRhYl9fcmlwcGxlIHtcclxuICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2U7XHJcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtYm91bmRlZDtcclxuICBAaW5jbHVkZSBtZGMtc3RhdGVzKHByaW1hcnkpO1xyXG5cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5tZGMtdGFiX19jb250ZW50IHtcclxuICBAaW5jbHVkZSBtZGMtdGFiLWluZGljYXRvci1zdXJmYWNlO1xyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgaGVpZ2h0OiBpbmhlcml0O1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcblxyXG4ubWRjLXRhYl9fdGV4dC1sYWJlbCxcclxuLm1kYy10YWJfX2ljb24ge1xyXG4gIHRyYW5zaXRpb246IDE1MG1zIGNvbG9yIGxpbmVhciwgMTUwbXMgb3BhY2l0eSBsaW5lYXI7XHJcbiAgei1pbmRleDogMjtcclxufVxyXG5cclxuLm1kYy10YWJfX3RleHQtbGFiZWwge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBvcGFjaXR5OiAkbWRjLXRhYi10ZXh0LWxhYmVsLW9wYWNpdHk7XHJcbiAgLy8gU2V0dGluZyBsaW5lLWhlaWdodCBoZXJlIG92ZXJyaWRlcyB0aGUgbGluZS1oZWlnaHQgZnJvbSB0aGUgdHlwb2dyYXBoeVxyXG4gIC8vIG1peGluIGFib3ZlLiBUaGUgbGluZS1oZWlnaHQgbmVlZHMgdG8gYmUgb3ZlcnJpZGRlbiBzbyB0aGF0IHRoZSBzcGFjaW5nXHJcbiAgLy8gYmV0d2VlbiB0aGUgdGV4dCBsYWJlbCBhbmQgdGhlIGljb24gYXMgd2VsbCBhcyB0aGUgdGV4dCBsYWJlbCBhbmQgdGhlXHJcbiAgLy8gYm90dG9tIG9mIHRoZSB0YWIgcmVtYWluIHRoZSBzYW1lLlxyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG59XHJcblxyXG4ubWRjLXRhYl9faWNvbiB7XHJcbiAgd2lkdGg6ICRtZGMtdGFiLWljb24tc2l6ZTtcclxuICBoZWlnaHQ6ICRtZGMtdGFiLWljb24tc2l6ZTtcclxuICBvcGFjaXR5OiAkbWRjLXRhYi1pY29uLW9wYWNpdHk7XHJcbiAgZm9udC1zaXplOiAkbWRjLXRhYi1pY29uLXNpemU7XHJcbn1cclxuXHJcbi5tZGMtdGFiLS1zdGFja2VkIHtcclxuICBoZWlnaHQ6ICRtZGMtdGFiLXN0YWNrZWQtaGVpZ2h0O1xyXG59XHJcblxyXG4ubWRjLXRhYi0tc3RhY2tlZCAubWRjLXRhYl9fY29udGVudCB7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxufVxyXG5cclxuLm1kYy10YWItLXN0YWNrZWQgLm1kYy10YWJfX2ljb24ge1xyXG4gIHBhZGRpbmctdG9wOiAxMnB4O1xyXG59XHJcblxyXG4ubWRjLXRhYi0tc3RhY2tlZCAubWRjLXRhYl9fdGV4dC1sYWJlbCB7XHJcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XHJcbn1cclxuXHJcbi5tZGMtdGFiLS1hY3RpdmUge1xyXG4gIEBpbmNsdWRlIG1kYy10YWItdGV4dC1sYWJlbC1jb2xvcihwcmltYXJ5KTtcclxuICBAaW5jbHVkZSBtZGMtdGFiLWljb24tY29sb3IocHJpbWFyeSk7XHJcblxyXG4gIC5tZGMtdGFiX190ZXh0LWxhYmVsLFxyXG4gIC5tZGMtdGFiX19pY29uIHtcclxuICAgIHRyYW5zaXRpb24tZGVsYXk6IDEwMG1zO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuXHJcbi5tZGMtdGFiOm5vdCgubWRjLXRhYi0tc3RhY2tlZCkgLm1kYy10YWJfX2ljb24gKyAubWRjLXRhYl9fdGV4dC1sYWJlbCB7XHJcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KHBhZGRpbmcsIGxlZnQsIDhweCk7XHJcbn1cclxuXHJcbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXHJcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4kbWRjLXRhYi1pY29uLXNpemU6IDI0cHggIWRlZmF1bHQ7XG4kbWRjLXRhYi1oZWlnaHQ6IDQ4cHggIWRlZmF1bHQ7XG4kbWRjLXRhYi1zdGFja2VkLWhlaWdodDogNzJweCAhZGVmYXVsdDtcbiRtZGMtdGFiLXRleHQtbGFiZWwtb3BhY2l0eTogLjYgIWRlZmF1bHQ7XG4kbWRjLXRhYi1pY29uLW9wYWNpdHk6IC41NCAhZGVmYXVsdDtcbiIsIi8vXHJcbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXHJcbi8vXHJcbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcclxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxyXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXHJcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcclxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXHJcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XHJcbi8vXHJcbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXHJcbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxyXG4vL1xyXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXHJcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxyXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcclxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxyXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxyXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXHJcbi8vIFRIRSBTT0ZUV0FSRS5cclxuLy9cclxuXHJcbkBpbXBvcnQgXCIuLi9yaXBwbGUvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcclxuXHJcbi8vIFB1YmxpYyBtaXhpbnNcclxuXHJcbkBtaXhpbiBtZGMtdGFiLXRleHQtbGFiZWwtY29sb3IoJGNvbG9yKSB7XHJcbiAgLm1kYy10YWJfX3RleHQtbGFiZWwge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRhYi1pY29uLWNvbG9yKCRjb2xvcikge1xyXG4gIC5tZGMtdGFiX19pY29uIHtcclxuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xyXG5cclxuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGFiLXN0YXRlcy1jb2xvcigkY29sb3IpIHtcclxuICAubWRjLXRhYl9fcmlwcGxlIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGFiLWluay1jb2xvcigkY29sb3IpIHtcclxuICBAaW5jbHVkZSBtZGMtdGFiLWljb24tY29sb3IoJGNvbG9yKTtcclxuICBAaW5jbHVkZSBtZGMtdGFiLXN0YXRlcy1jb2xvcigkY29sb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy10YWItdGV4dC1sYWJlbC1jb2xvcigkY29sb3IpO1xyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRhYi1hY3RpdmUtdGV4dC1sYWJlbC1jb2xvcigkY29sb3IpIHtcclxuICAmLm1kYy10YWItLWFjdGl2ZSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGFiLXRleHQtbGFiZWwtY29sb3IoJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGFiLWFjdGl2ZS1pY29uLWNvbG9yKCRjb2xvcikge1xyXG4gICYubWRjLXRhYi0tYWN0aXZlIHtcclxuICAgIEBpbmNsdWRlIG1kYy10YWItaWNvbi1jb2xvcigkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10YWItcGFyZW50LXBvc2l0aW9uaW5nIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGFiLWZpeGVkLXdpZHRoKCR3aWR0aCkge1xyXG4gIGZsZXg6IDAgMSAkd2lkdGg7XHJcbn1cclxuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbkBpbXBvcnQgXCIuL21peGluc1wiO1xuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSB0YWItYmFyXG5cbi5tZGMtdGFiLWJhciB7XG4gIEBpbmNsdWRlIG1kYy10YWItYmFyLXdpZHRoKDEwMCUpO1xufVxuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbkBtaXhpbiBtZGMtdGFiLWJhci13aWR0aCgkd2lkdGgpIHtcbiAgd2lkdGg6ICR3aWR0aDtcbn1cbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHRhYi1pbmRpY2F0b3JcblxuLm1kYy10YWItaW5kaWNhdG9yIHtcbiAgQGluY2x1ZGUgbWRjLXRhYi1pbmRpY2F0b3ItdW5kZXJsaW5lLWNvbG9yKHByaW1hcnkpO1xuICBAaW5jbHVkZSBtZGMtdGFiLWluZGljYXRvci11bmRlcmxpbmUtaGVpZ2h0KDJweCk7XG4gIEBpbmNsdWRlIG1kYy10YWItaW5kaWNhdG9yLWljb24tY29sb3Ioc2Vjb25kYXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXRhYi1pbmRpY2F0b3ItaWNvbi1oZWlnaHQoMzRweCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAxO1xufVxuXG4ubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICBvcGFjaXR5OiAwO1xufVxuXG4ubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS1pY29uIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLm1kYy10YWItaW5kaWNhdG9yLS1hY3RpdmUgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICBvcGFjaXR5OiAxO1xufVxuXG4vLyBTbGlkZSBieSBkZWZhdWx0XG4ubWRjLXRhYi1pbmRpY2F0b3IgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICB0cmFuc2l0aW9uOiAyNTBtcyB0cmFuc2Zvcm0gJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xufVxuXG4vLyAtLW5vLXRyYW5zaXRpb24gaXMgYXBwbGllZCBpbiBjYXNlcyB3aGVyZSBzdHlsZXMgbmVlZCB0byBiZSBhcHBsaWVkIGltbWVkaWF0ZWx5IHRvIHNldCB1cCBhIHRyYW5zaXRpb25cbi5tZGMtdGFiLWluZGljYXRvci0tbm8tdHJhbnNpdGlvbiA+IC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudCB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbi5tZGMtdGFiLWluZGljYXRvci0tZmFkZSA+IC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudCB7XG4gIHRyYW5zaXRpb246IDE1MG1zIG9wYWNpdHkgbGluZWFyO1xufVxuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuLm1kYy10YWItaW5kaWNhdG9yLS1hY3RpdmUubWRjLXRhYi1pbmRpY2F0b3ItLWZhZGUgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAxMDBtcztcbn1cblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3RhYi9taXhpbnNcIjtcblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgdGFiLXNjcm9sbGVyXG4ubWRjLXRhYi1zY3JvbGxlciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cblxuLy8gU2VsZWN0b3IgZm9yIHRlc3QgZWxlbWVudCB1c2VkIHRvIGZlYXR1cmUtZGV0ZWN0IGhvcml6b250YWwgc2Nyb2xsYmFyIGhlaWdodFxuLm1kYy10YWItc2Nyb2xsZXJfX3Rlc3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTk5OTlweDtcbiAgd2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG59XG5cbi5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtYXJlYSB7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWFyZWEsXG4ubWRjLXRhYi1zY3JvbGxlcl9fdGVzdCB7XG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIFRoaXMgbW9kaWZpZXIgY2xhc3Mgd2lsbCBiZSBhZGRlZCBpbiBKUyBhZnRlciBjb21wdXRpbmcgdGhlIE9TIHNjcm9sbGJhciBzaXplIGluIG9yZGVyIHRvIGhpZGUgdGhlIHNjcm9sbGJhci5cbi5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtYXJlYS0tc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsO1xufVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWNvbnRlbnQge1xuICBAaW5jbHVkZSBtZGMtdGFiLXBhcmVudC1wb3NpdGlvbmluZztcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxIDAgYXV0bztcbiAgdHJhbnNmb3JtOiBub25lO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuXG4ubWRjLXRhYi1zY3JvbGxlci0tYWxpZ24tc3RhcnQgLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1jb250ZW50IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4ubWRjLXRhYi1zY3JvbGxlci0tYWxpZ24tZW5kIC5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtY29udGVudCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5tZGMtdGFiLXNjcm9sbGVyLS1hbGlnbi1jZW50ZXIgLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1jb250ZW50IHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5tZGMtdGFiLXNjcm9sbGVyLS1hbmltYXRpbmcgLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1hcmVhIHtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IGF1dG87XG59XG5cbi5tZGMtdGFiLXNjcm9sbGVyLS1hbmltYXRpbmcgLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogMjUwbXMgdHJhbnNmb3JtICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbn1cblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vdHlwb2dyYXBoeS9taXhpbnNcIjtcblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgdGV4dC1maWVsZC1oZWxwZXItdGV4dFxuXG4ubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQge1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShjYXB0aW9uKTtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKDE2cHgpO1xuXG4gIG1hcmdpbjogMDtcbiAgdHJhbnNpdGlvbjogbWRjLXRleHQtZmllbGQtdHJhbnNpdGlvbihvcGFjaXR5KTtcbiAgb3BhY2l0eTogMDtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG59XG5cbi5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC0tcGVyc2lzdGVudCB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIG9wYWNpdHk6IDE7XG4gIHdpbGwtY2hhbmdlOiBpbml0aWFsO1xufVxuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE5IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vdHlwb2dyYXBoeS9taXhpbnNcIjtcblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlclxuXG4ubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIge1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShjYXB0aW9uKTtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKDE2cHgpO1xuICAvLyBLZWVwIGZsZXggaXRlbSBhbGlnbiB0byB0cmFpbGluZyBzaWRlIG9uIGFic2VuY2Ugb2YgaGVscGVyIHRleHQuXG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIGxlZnQsIGF1dG8pO1xuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gocGFkZGluZywgbGVmdCwgMTZweCk7XG5cbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vLi4vdGhlbWUvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vLi4vdGhlbWUvbWl4aW5zXCI7XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uLFxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1kYy10ZXh0LWZpZWxkX19pY29uOm5vdChbdGFiaW5kZXhdKSxcbi5tZGMtdGV4dC1maWVsZF9faWNvblt0YWJpbmRleD1cIi0xXCJdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL2Zsb2F0aW5nLWxhYmVsL21kYy1mbG9hdGluZy1sYWJlbFwiO1xuQGltcG9ydCBcIi4uL2xpbmUtcmlwcGxlL21kYy1saW5lLXJpcHBsZVwiO1xuQGltcG9ydCBcIi4uL25vdGNoZWQtb3V0bGluZS9tZGMtbm90Y2hlZC1vdXRsaW5lXCI7XG5AaW1wb3J0IFwiLi4vcmlwcGxlL2NvbW1vblwiO1xuQGltcG9ydCBcIi4uL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90eXBvZ3JhcGh5L3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi9oZWxwZXItdGV4dC9tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dFwiO1xuQGltcG9ydCBcIi4vY2hhcmFjdGVyLWNvdW50ZXIvbWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXJcIjtcbkBpbXBvcnQgXCIuL2ljb24vbWRjLXRleHQtZmllbGQtaWNvblwiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgdGV4dC1maWVsZFxuXG4ubWRjLXRleHQtZmllbGQge1xuICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2U7XG4gIC8vIFRleHQgRmllbGQgaW50ZW50aW9uYWxseSBvbWl0cyBwcmVzcyByaXBwbGUsIHNvIGVhY2ggc3RhdGUgbmVlZHMgdG8gYmUgc3BlY2lmaWVkIGluZGl2aWR1YWxseS5cbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWhvdmVyLW9wYWNpdHkobWRjLXN0YXRlcy1vcGFjaXR5KCRtZGMtdGV4dC1maWVsZC1pbmstY29sb3IsIGhvdmVyKSk7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtZm9jdXMtb3BhY2l0eShtZGMtc3RhdGVzLW9wYWNpdHkoJG1kYy10ZXh0LWZpZWxkLWluay1jb2xvciwgZm9jdXMpKTtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtYm91bmRlZDtcblxuICAvLyBTaGFwZVxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1zaGFwZS1yYWRpdXMoc21hbGwpO1xuXG4gIC8vIENvbG9yc1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1sYWJlbC1jb2xvcigkbWRjLXRleHQtZmllbGQtbGFiZWwpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1pbmstY29sb3IoJG1kYy10ZXh0LWZpZWxkLWluay1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWNhcmV0LWNvbG9yKHByaW1hcnkpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1ib3R0b20tbGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtaWRsZSk7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhvdmVyLWJvdHRvbS1saW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1ib3R0b20tbGluZS1ob3Zlcik7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWxpbmUtcmlwcGxlLWNvbG9yXyhwcmltYXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZnVsbHdpZHRoLWJvdHRvbS1saW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1mdWxsd2lkdGgtYm90dG9tLWxpbmUtY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC1jb2xvcigkbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlci1jb2xvcigkbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1pY29uLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1pY29uLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZmlsbC1jb2xvcigkbWRjLXRleHQtZmllbGQtYmFja2dyb3VuZCk7XG5cbiAgLy8gRmxvYXRpbmcgTGFiZWxcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZmxvYXRpbmctbGFiZWxfO1xuXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogJG1kYy10ZXh0LWZpZWxkLWhlaWdodDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtLCBjb2xvcjtcbn1cblxuLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KHN1YnRpdGxlMSk7XG5cbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDIwcHggMTZweCA2cHg7XG4gIHRyYW5zaXRpb246IG1kYy10ZXh0LWZpZWxkLXRyYW5zaXRpb24ob3BhY2l0eSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICB0cmFuc2l0aW9uOiBtZGMtdGV4dC1maWVsZC10cmFuc2l0aW9uKG9wYWNpdHksICRkdXJhdGlvbjogNjdtcyk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBjb2xvcjogJG1kYy10ZXh0LWZpZWxkLXBsYWNlaG9sZGVyLWluay1jb2xvcjtcbiAgfVxuXG4gIC8vIE92ZXJyaWRlIHRoZSBwbGFjZWhvbGRlciBzdHlsZXMgaW4gSUUgd2l0aCBpbXBvcnRhbnQgcnVsZSB0byBpbXByb3ZlIHNwZWNpZmljaXR5LlxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3Itbm8tdmVuZG9yLXByZWZpeFxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRtZGMtdGV4dC1maWVsZC1wbGFjZWhvbGRlci1pbmstY29sb3IgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIEFsd2F5cyBzaG93IHBsYWNlaG9sZGVyIGZvciB0ZXh0IGZpZWxkcyB0aGF0IGhhcyBubyBsYWJlbCBhbmQgc2hvdyBvbmx5IG9uIGZvY3VzZWQgc3RhdGUgd2hlbiBsYWJlbCBpcyBwcmVzZW50LlxuICAubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aCAmOjpwbGFjZWhvbGRlcixcbiAgLm1kYy10ZXh0LWZpZWxkLS1uby1sYWJlbCAmOjpwbGFjZWhvbGRlcixcbiAgLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkICY6OnBsYWNlaG9sZGVyIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiA0MG1zO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDExMG1zO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHJlZCBvdXRsaW5lIG9uIGZpcmVmb3hcbiAgJjppbnZhbGlkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLy8gS2VlcCBDaHJvbWUgYXV0b2ZpbGwgYmVoaW5kIHRoZSBub3RjaGVkIG91dGxpbmVcbiAgJjotd2Via2l0LWF1dG9maWxsIHtcbiAgICB6LWluZGV4OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBWZXJ0aWNhbGx5IGNlbnRlciBhbGlnbnMgdGhlIHRleHQgaW5wdXQgcGxhY2Vob2xkZXIgYW5kIHZhbHVlIGZvciBvbmx5IGZpbGxlZCB2YXJpYW50LlxuICAubWRjLXRleHQtZmllbGQtLW5vLWxhYmVsOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkgJiB7XG4gICAgcGFkZGluZzogMTZweDtcbiAgfVxufVxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuLy8gTW92ZSBsYWJlbCB3aGVuIHRleHQtZmllbGQgZ2V0cyBhdXRvLWZpbGxlZCBpbiBDaHJvbWUuXG4ubWRjLXRleHQtZmllbGRfX2lucHV0Oi13ZWJraXQtYXV0b2ZpbGwgKyAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKC43NSk7XG4gIGN1cnNvcjogYXV0bztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWZvY3VzZWRfO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRpc2FibGVkXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2Uge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZV87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC13aXRoLWxlYWRpbmctaWNvbl87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZWQtd2l0aC1sZWFkaW5nLWljb25fO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2Uge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZS13aXRoLWxlYWRpbmctaWNvbl87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtd2l0aC10cmFpbGluZy1pY29uXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtd2l0aC1ib3RoLWljb25zXztcbn1cblxuLy8gc3R5bGVsaW50LWRpc2FibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24sXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgYm90dG9tOiAxNnB4O1xuICB0cmFuc2Zvcm06IHNjYWxlKC44KTtcbn1cbi8vIHN0eWxlbGludC1lbmFibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZGVuc2Utd2l0aC1sZWFkaW5nLWljb25fO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2Uge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1kZW5zZS13aXRoLXRyYWlsaW5nLWljb25fO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZGVuc2Utd2l0aC1ib3RoLWljb25zXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWRlbnNlXztcbn1cblxuQGluY2x1ZGUgbWRjLXJlcXVpcmVkLXRleHQtZmllbGQtbGFiZWwtYXN0ZXJpc2tfIHtcbiAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgY29udGVudDogXCIqXCI7XG59XG5cbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC10ZXh0YXJlYV87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0tZnVsbHdpZHRoIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZnVsbHdpZHRoXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS1mdWxsd2lkdGgubWRjLXRleHQtZmllbGQtLWludmFsaWQge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1mdWxsd2lkdGgtaW52YWxpZF87XG59XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHRleHQtZmllbGQtaGVscGVyLXRleHRcbi8vIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gIC5tZGMtdGV4dC1maWVsZC0tZGVuc2UgKyAmIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIH1cblxuICAubWRjLXRleHQtZmllbGQgKyAmIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkbWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUtcGFkZGluZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRtZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZS1wYWRkaW5nO1xuICB9XG59XG4vLyBzdHlsZWxpbnQtZW5hYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcblxuLy8gbWRjLWZvcm0tZmllbGQgdHdlYWtzIHRvIGFsaWduIHRleHQgZmllbGQgbGFiZWwgY29ycmVjdGx5XG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtdHlwZVxuLm1kYy1mb3JtLWZpZWxkID4gLm1kYy10ZXh0LWZpZWxkICsgbGFiZWwge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuLy8gc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1tYXgtdHlwZVxuXG4ubWRjLXRleHQtZmllbGQtLWZvY3VzZWQge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1mb2N1c2VkXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhLXN0cm9rZS1jb2xvcihwcmltYXJ5KTtcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaW52YWxpZF87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWludmFsaWQge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC10ZXh0YXJlYS1pbnZhbGlkXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0taW52YWxpZCB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWludmFsaWRfO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZGlzYWJsZWRfO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhLWRpc2FibGVkXztcbn1cblxuQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWtleWZyYW1lcyhcbiAgdGV4dC1maWVsZC1kZW5zZSxcbiAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWxhYmVsLXBvc2l0aW9uLXksXG4gIDAlLFxuICAkbWRjLXRleHQtZmllbGQtZGVuc2UtbGFiZWwtc2NhbGVcbik7XG5AaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2Uta2V5ZnJhbWVzKHRleHQtZmllbGQtb3V0bGluZWQsICRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1sYWJlbC1wb3NpdGlvbi15KTtcbkBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1rZXlmcmFtZXMoXG4gIHRleHQtZmllbGQtb3V0bGluZWQtZGVuc2UsXG4gICRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZS1sYWJlbC1wb3NpdGlvbi15LFxuICAwJSxcbiAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWxhYmVsLXNjYWxlXG4pO1xuQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWtleWZyYW1lcyhcbiAgdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24sXG4gICRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1sYWJlbC1wb3NpdGlvbi15LFxuICAkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtd2l0aC1sZWFkaW5nLWljb24tbGFiZWwtcG9zaXRpb24teFxuKTtcbkBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1rZXlmcmFtZXMoXG4gIHRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uLWRlbnNlLFxuICAkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGVuc2UtbGFiZWwtcG9zaXRpb24teSxcbiAgJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLXdpdGgtbGVhZGluZy1pY29uLWxhYmVsLXBvc2l0aW9uLXgsXG4gICRtZGMtdGV4dC1maWVsZC1kZW5zZS1sYWJlbC1zY2FsZVxuKTtcbkBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1rZXlmcmFtZXMoXG4gIHRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uLXJ0bCxcbiAgJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXksXG4gIC0kbWRjLXRleHQtZmllbGQtb3V0bGluZWQtd2l0aC1sZWFkaW5nLWljb24tbGFiZWwtcG9zaXRpb24teFxuKTtcbkBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1rZXlmcmFtZXMoXG4gIHRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uLWRlbnNlLXJ0bCxcbiAgJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLWxhYmVsLXBvc2l0aW9uLXksXG4gIC0kbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGVuc2Utd2l0aC1sZWFkaW5nLWljb24tbGFiZWwtcG9zaXRpb24teCxcbiAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWxhYmVsLXNjYWxlXG4pO1xuQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWtleWZyYW1lcyh0ZXh0YXJlYSwgJG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhLWxhYmVsLXBvc2l0aW9uLXksIDAlKTtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuJG1kYy10ZXh0LWZpZWxkLWVycm9yOiBlcnJvciAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1mdWxsd2lkdGgtYm90dG9tLWxpbmUtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4xMikgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtZGlzYWJsZWQtYm9yZGVyOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMDYpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWRpc2FibGVkLWljb246IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4zKSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1ib3R0b20tbGluZS1ob3ZlcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjg3KSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1ib3R0b20tbGluZS1pZGxlOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuNDIpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWxhYmVsOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuNikgIWRlZmF1bHQ7XG5cbiRtZGMtdGV4dC1maWVsZC1pbmstY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC44NykgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC42KSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1pY29uLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuNTQpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWZvY3VzZWQtbGFiZWwtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUocHJpbWFyeSksIC44NykgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtcGxhY2Vob2xkZXItaW5rLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuNTQpICFkZWZhdWx0O1xuXG4kbWRjLXRleHQtZmllbGQtZGlzYWJsZWQtbGFiZWwtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4zNykgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtZGlzYWJsZWQtaW5rLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMzcpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWRpc2FibGVkLWhlbHBlci10ZXh0LWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMzcpICFkZWZhdWx0O1xuXG4kbWRjLXRleHQtZmllbGQtYmFja2dyb3VuZDogbWl4KG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCBtZGMtdGhlbWUtcHJvcC12YWx1ZShzdXJmYWNlKSwgNCUpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWRpc2FibGVkLWJhY2tncm91bmQ6IG1peChtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgbWRjLXRoZW1lLXByb3AtdmFsdWUoc3VyZmFjZSksIDIlKSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1zZWNvbmRhcnktdGV4dDogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjYpICFkZWZhdWx0O1xuXG4kbWRjLXRleHQtZmllbGQtb3V0bGluZWQtaWRsZS1ib3JkZXI6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4yNCkgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGlzYWJsZWQtYm9yZGVyOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMDYpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWhvdmVyLWJvcmRlcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjg3KSAhZGVmYXVsdDtcblxuJG1kYy10ZXh0YXJlYS1ib3JkZXI6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC43MykgIWRlZmF1bHQ7XG4kbWRjLXRleHRhcmVhLWJhY2tncm91bmQ6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoc3VyZmFjZSksIDEpICFkZWZhdWx0O1xuJG1kYy10ZXh0YXJlYS1kaXNhYmxlZC1ib3JkZXItY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4yNikgIWRlZmF1bHQ7XG4vLyBjYW5ub3QgYmUgdHJhbnNwYXJlbnQgYmVjYXVzZSBtdWx0aWxpbmUgdGV4dGFyZWEgaW5wdXRcbi8vIHdpbGwgbWFrZSB0ZXh0IHVucmVhZGFibGVcbiRtZGMtdGV4dGFyZWEtZGlzYWJsZWQtYmFja2dyb3VuZDogcmdiYSgyNDksIDI0OSwgMjQ5LCAxKSAhZGVmYXVsdDtcblxuJG1kYy10ZXh0LWZpZWxkLWhlaWdodDogNTZweCAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1sYWJlbC1wb3NpdGlvbi15OiA1MCUgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtbGFiZWwtb2Zmc2V0OiAxNnB4ICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWxhYmVsLXBvc2l0aW9uLXk6IDcwJSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1kZW5zZS1sYWJlbC1zY2FsZTogLjggIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teTogMTMwJSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZS1sYWJlbC1wb3NpdGlvbi15OiAxMjAlICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uLWxhYmVsLXBvc2l0aW9uLXg6IDAgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGVuc2Utd2l0aC1sZWFkaW5nLWljb24tbGFiZWwtcG9zaXRpb24teDogMjFweCAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC10ZXh0YXJlYS1sYWJlbC1wb3NpdGlvbi15OiAxMzAlICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lLXBhZGRpbmc6IDE2cHggIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtaW5wdXQtcGFkZGluZzogMTZweCAhZGVmYXVsdDtcbi8vIE5vdGUgdGhhdCB0aGUgc2NhbGUgZmFjdG9yIGlzIGFuIGV5ZWJhbGxlZCBhcHByb3hpbWF0aW9uIG9mIHdoYXQncyBzaG93biBpbiB0aGUgbW9ja3MuXG4iLCIvL1xyXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxyXG4vL1xyXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XHJcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcclxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xyXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXHJcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xyXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxyXG4vL1xyXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxyXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cclxuLy9cclxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxyXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcclxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXHJcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcclxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcclxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxyXG4vLyBUSEUgU09GVFdBUkUuXHJcbi8vXHJcblxyXG5AaW1wb3J0IFwiLi4vZmxvYXRpbmctbGFiZWwvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9saW5lLXJpcHBsZS9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL25vdGNoZWQtb3V0bGluZS9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL25vdGNoZWQtb3V0bGluZS92YXJpYWJsZXNcIjtcclxuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vc2hhcGUvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9zaGFwZS9mdW5jdGlvbnNcIjtcclxuQGltcG9ydCBcImhlbHBlci10ZXh0L21peGluc1wiO1xyXG5AaW1wb3J0IFwiY2hhcmFjdGVyLWNvdW50ZXIvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCJpY29uL21peGluc1wiO1xyXG5AaW1wb3J0IFwiaWNvbi92YXJpYWJsZXNcIjtcclxuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UpIHtcclxuICBAaWYgbGVuZ3RoKCRyYWRpdXMpID4gMiB7XHJcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHJhZGl1czogJyN7JHJhZGl1c30nIGNvbXBvbmVudCBkb2Vzbid0IGFsbG93IGN1c3RvbWl6aW5nIGFsbCBjb3JuZXJzXCI7XHJcbiAgfVxyXG5cclxuICAkbWFza2VkLXJhZGl1czogbWRjLXNoYXBlLW1hc2stcmFkaXVzKCRyYWRpdXMsIDEgMSAwIDApO1xyXG5cclxuICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKFxyXG4gICAgbWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1yYWRpdXMoJG1kYy10ZXh0LWZpZWxkLWhlaWdodCwgJG1hc2tlZC1yYWRpdXMpLFxyXG4gICAgJHJ0bC1yZWZsZXhpdmVcclxuICApO1xyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSkge1xyXG4gIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlKTtcclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWluay1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1pbmstY29sb3JfKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZmlsbC1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1maWxsLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhLXN0cm9rZS1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC10ZXh0YXJlYS1zdHJva2UtY29sb3JfKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtZmlsbC1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC10ZXh0YXJlYS1maWxsLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWZ1bGx3aWR0aC1ib3R0b20tbGluZS1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1mdWxsd2lkdGgtYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtY29sb3IoJGNvbG9yKSB7XHJcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1ib3R0b20tbGluZS1jb2xvcl8oJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1ob3Zlci1ib3R0b20tbGluZS1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIHtcclxuICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhvdmVyLWJvdHRvbS1saW5lLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWxpbmUtcmlwcGxlLWNvbG9yKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcclxuICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWxpbmUtcmlwcGxlLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWxhYmVsLWNvbG9yKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcclxuICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWxhYmVsLWluay1jb2xvcl8oJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1vdXRsaW5lLWNvbG9yKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcclxuICAgIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtY29sb3IoJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1ob3Zlci1vdXRsaW5lLWNvbG9yKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcclxuICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhvdmVyLW91dGxpbmUtY29sb3JfKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZm9jdXNlZC1vdXRsaW5lLWNvbG9yKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcclxuICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZvY3VzZWQtb3V0bGluZS1jb2xvcl8oJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1jYXJldC1jb2xvcigkY29sb3IpIHtcclxuICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcclxuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNhcmV0LWNvbG9yLCAkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuLy8gUHJpdmF0ZSBtaXhpbnNcclxuXHJcbi8vIEJhc2VsaW5lXHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZGlzYWJsZWRfIHtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1ib3R0b20tbGluZS1jb2xvcl8oJG1kYy10ZXh0LWZpZWxkLWRpc2FibGVkLWJvcmRlcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaW5rLWNvbG9yXygkbWRjLXRleHQtZmllbGQtZGlzYWJsZWQtaW5rLWNvbG9yKTtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1sYWJlbC1pbmstY29sb3JfKCRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1sYWJlbC1jb2xvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtY29sb3JfKCRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1oZWxwZXItdGV4dC1jb2xvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXItY29sb3JfKCRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1oZWxwZXItdGV4dC1jb2xvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaWNvbi1jb2xvcl8oJG1kYy10ZXh0LWZpZWxkLWRpc2FibGVkLWljb24pO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZ1bGx3aWR0aC1ib3R0b20tbGluZS1jb2xvcl8oJG1kYy10ZXh0LWZpZWxkLWZ1bGx3aWR0aC1ib3R0b20tbGluZS1jb2xvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZmlsbC1jb2xvcl8oJG1kYy10ZXh0LWZpZWxkLWRpc2FibGVkLWJhY2tncm91bmQpO1xyXG5cclxuICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1pbnZhbGlkXyB7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWVycm9yKTtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1ob3Zlci1ib3R0b20tbGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtZXJyb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWxpbmUtcmlwcGxlLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtbGFiZWwtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWVycm9yKTtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC12YWxpZGF0aW9uLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtY2FyZXQtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWVycm9yKTtcclxuXHJcbiAgJi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIHtcclxuICAgICY6bm90KC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24pIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaWNvbi1jb2xvcigkbWRjLXRleHQtZmllbGQtZXJyb3IpO1xyXG4gICAgfVxyXG5cclxuICAgICYubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaWNvbi1jb2xvcigkbWRjLXRleHQtZmllbGQtZXJyb3IsIC8qIHN0eWxlU2Vjb25kSWNvbiAqLyB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICsgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2cge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1mb2N1c2VkXyB7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtbGFiZWwtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWZvY3VzZWQtbGFiZWwtY29sb3IpO1xyXG5cclxuICBAaW5jbHVkZSBtZGMtcmVxdWlyZWQtdGV4dC1maWVsZC1sYWJlbC1hc3Rlcmlza18ge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRtZGMtdGV4dC1maWVsZC1lcnJvcik7XHJcbiAgfVxyXG5cclxuICArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQ6bm90KC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2cpIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZGVuc2VfIHtcclxuICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oXHJcbiAgICAkbWRjLXRleHQtZmllbGQtZGVuc2UtbGFiZWwtcG9zaXRpb24teSxcclxuICAgIDAlLFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWxhYmVsLXNjYWxlXHJcbiAgKTtcclxuICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtYW5pbWF0aW9uKHRleHQtZmllbGQtZGVuc2UpO1xyXG5cclxuICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcclxuICAgIHBhZGRpbmc6IDEycHggMTJweCAwO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IC44MTNyZW07XHJcblxyXG4gICAgJi0tZmxvYXQtYWJvdmUge1xyXG4gICAgICBmb250LXNpemU6IC44MTNyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXJlcXVpcmVkLXRleHQtZmllbGQtbGFiZWwtYXN0ZXJpc2tfKCkge1xyXG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWQgfiB7XHJcbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsOjphZnRlcixcclxuICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtZmxvYXRpbmctbGFiZWw6OmFmdGVyIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtb3V0bGluZS1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlKSB7XHJcbiAgJHJlc29sdmVkLXJhZGl1czogbnRoKG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtdGV4dC1maWVsZC1oZWlnaHQsIG1kYy1zaGFwZS1wcm9wLXZhbHVlKCRyYWRpdXMpKSwgMSk7XHJcblxyXG4gIEBpZiAobGVuZ3RoKG1kYy1zaGFwZS1wcm9wLXZhbHVlKCRyYWRpdXMpKSA+IDEpIHtcclxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGluZS1sZW5ndGhcclxuICAgIEB3YXJuIFwibWRjLXRleHQtZmllbGQtb3V0bGluZS1zaGFwZS1yYWRpdXMgb25seSBzdXBwb3J0cyBhIHNpbmdsZSByYWRpdXM7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWF0ZXJpYWwtY29tcG9uZW50cy9tYXRlcmlhbC1jb21wb25lbnRzLXdlYi9pc3N1ZXMvNDE0MFwiO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1ub3RjaGVkLW91dGxpbmUge1xyXG4gICAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1zaGFwZS1yYWRpdXMoJHJlc29sdmVkLXJhZGl1cywgJHJ0bC1yZWZsZXhpdmUpO1xyXG4gIH1cclxuXHJcbiAgQGlmICgkcmVzb2x2ZWQtcmFkaXVzID4gJG1kYy1ub3RjaGVkLW91dGxpbmUtbGVhZGluZy13aWR0aCkge1xyXG4gICAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRyZXNvbHZlZC1yYWRpdXMgKyAkbWRjLW5vdGNoZWQtb3V0bGluZS1wYWRkaW5nLCAwKTtcclxuICAgIH1cclxuXHJcbiAgICArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRyZXNvbHZlZC1yYWRpdXMgKyAkbWRjLW5vdGNoZWQtb3V0bGluZS1wYWRkaW5nLCAkcmVzb2x2ZWQtcmFkaXVzKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1mbG9hdGluZy1sYWJlbF8ge1xyXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xyXG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgJG1kYy10ZXh0LWZpZWxkLWxhYmVsLW9mZnNldCk7XHJcblxyXG4gICAgdG9wOiAxOHB4O1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmLS10ZXh0YXJlYSB7XHJcbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgJG1kYy1ub3RjaGVkLW91dGxpbmUtcGFkZGluZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1vdXRsaW5lZCB7XHJcbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgJG1kYy1ub3RjaGVkLW91dGxpbmUtcGFkZGluZyk7XHJcblxyXG4gICAgICB0b3A6IDE3cHg7XHJcbiAgICB9XHJcblxyXG4gICAgJi0td2l0aC1sZWFkaW5nLWljb24ge1xyXG4gICAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcclxuICAgICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAoJG1kYy10ZXh0LWZpZWxkLWljb24tcGFkZGluZyAtICRtZGMtbm90Y2hlZC1vdXRsaW5lLWxlYWRpbmctd2lkdGgpKTtcclxuXHJcbiAgICAgICAgJi0tZmxvYXQtYWJvdmUge1xyXG4gICAgICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24oXHJcbiAgICAgICAgICAgIGxlZnQsXHJcbiAgICAgICAgICAgICgkbWRjLXRleHQtZmllbGQtaWNvbi1wYWRkaW5nIC0gJG1kYy1ub3RjaGVkLW91dGxpbmUtbGVhZGluZy13aWR0aCkgKyAkbWRjLW5vdGNoZWQtb3V0bGluZS1wYWRkaW5nXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gT3V0bGluZWRcclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kaXNhYmxlZF8ge1xyXG4gIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRpc2FibGVkLWJvcmRlcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZmlsbC1jb2xvcl8odHJhbnNwYXJlbnQpO1xyXG5cclxuICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcclxuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtb3V0bGluZWQtaW52YWxpZF8ge1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWVycm9yKTtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1ob3Zlci1vdXRsaW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZm9jdXNlZC1vdXRsaW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1mb2N1c2VkXyB7XHJcbiAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1zdHJva2Utd2lkdGgoMnB4KTtcclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlXyB7XHJcbiAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbihcclxuICAgICRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZS1sYWJlbC1wb3NpdGlvbi15LFxyXG4gICAgMCUsXHJcbiAgICAkbWRjLXRleHQtZmllbGQtZGVuc2UtbGFiZWwtc2NhbGVcclxuICApO1xyXG4gIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24odGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZSk7XHJcblxyXG4gIGhlaWdodDogNDhweDtcclxuXHJcbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XHJcbiAgICBwYWRkaW5nOiAxMnB4IDEycHggN3B4O1xyXG4gIH1cclxuXHJcbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICB0b3A6IDE0cHg7XHJcbiAgfVxyXG5cclxuICAubWRjLXRleHQtZmllbGRfX2ljb24ge1xyXG4gICAgdG9wOiAxMnB4O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkXyB7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtaWRsZS1ib3JkZXIpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhvdmVyLW91dGxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWhvdmVyLWJvcmRlcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZm9jdXNlZC1vdXRsaW5lLWNvbG9yKHByaW1hcnkpO1xyXG4gIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24odGV4dC1maWVsZC1vdXRsaW5lZCk7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZS1zaGFwZS1yYWRpdXMoc21hbGwpO1xyXG4gIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXkpO1xyXG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcih0cmFuc3BhcmVudCk7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZmlsbC1jb2xvcih0cmFuc3BhcmVudCk7XHJcblxyXG4gIGJvcmRlcjogbm9uZTtcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxuXHJcbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgcGFkZGluZzogMTJweCAxNnB4IDE0cHg7XHJcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsgLy8gRkYgYWRkcyB1bndhbnRlZCBib3JkZXIgaW4gSEMgbW9kZSBvbiB3aW5kb3dzLlxyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gIH1cclxuXHJcbiAgLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcclxuICAgIHotaW5kZXg6IDI7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaG92ZXItb3V0bGluZS1jb2xvcl8oJGNvbG9yKSB7XHJcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSB7XHJcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItY29tYmluYXRvci1zcGFjZS1hZnRlclxyXG4gICAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB+LFxyXG4gICAgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4ge1xyXG4gICAgICAubWRjLW5vdGNoZWQtb3V0bGluZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1jb2xvcigkY29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZm9jdXNlZC1vdXRsaW5lLWNvbG9yXygkY29sb3IpIHtcclxuICAmLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIHtcclxuICAgIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtY29sb3IoJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIEljb25zXHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtd2l0aC1sZWFkaW5nLWljb25fIHtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1pY29uLWhvcml6b250YWwtcG9zaXRpb25fKFxyXG4gICAgbGVmdCxcclxuICAgICRtZGMtdGV4dC1maWVsZC1pY29uLXBvc2l0aW9uLFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWljb24tcGFkZGluZyxcclxuICAgICRtZGMtdGV4dC1maWVsZC1pbnB1dC1wYWRkaW5nXHJcbiAgKTtcclxuXHJcbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLXRleHQtZmllbGQtaWNvbi1wYWRkaW5nKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1kZW5zZS13aXRoLWxlYWRpbmctaWNvbl8ge1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24taG9yaXpvbnRhbC1wb3NpdGlvbl8oXHJcbiAgICBsZWZ0LFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWljb24tcG9zaXRpb24sXHJcbiAgICAkbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wYWRkaW5nLFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWlucHV0LXBhZGRpbmdcclxuICApO1xyXG5cclxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcclxuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICRtZGMtdGV4dC1maWVsZC1kZW5zZS1pY29uLXBhZGRpbmcpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uXyB7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaWNvbi1ob3Jpem9udGFsLXBvc2l0aW9uXyhcclxuICAgIGxlZnQsXHJcbiAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wb3NpdGlvbixcclxuICAgICRtZGMtdGV4dC1maWVsZC1pY29uLXBhZGRpbmcsXHJcbiAgICAkbWRjLXRleHQtZmllbGQtaW5wdXQtcGFkZGluZ1xyXG4gICk7XHJcbiAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbigkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teSwgMzJweCk7XHJcbiAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWFuaW1hdGlvbih0ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbik7XHJcblxyXG4gIEBpbmNsdWRlIG1kYy1ydGwge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWFuaW1hdGlvbih0ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbi1ydGwpO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLXRleHQtZmllbGQtaWNvbi1wYWRkaW5nIC0gJG1kYy1ub3RjaGVkLW91dGxpbmUtbGVhZGluZy13aWR0aCk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGVuc2Utd2l0aC1sZWFkaW5nLWljb25fIHtcclxuICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uKFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLWxhYmVsLXBvc2l0aW9uLXksXHJcbiAgICAkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGVuc2Utd2l0aC1sZWFkaW5nLWljb24tbGFiZWwtcG9zaXRpb24teCxcclxuICAgICRtZGMtdGV4dC1maWVsZC1kZW5zZS1sYWJlbC1zY2FsZVxyXG4gICk7XHJcbiAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWFuaW1hdGlvbih0ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbi1kZW5zZSk7XHJcblxyXG4gIEBpbmNsdWRlIG1kYy1ydGwge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWFuaW1hdGlvbih0ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbi1kZW5zZS1ydGwpO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wYWRkaW5nIC0gJG1kYy1ub3RjaGVkLW91dGxpbmUtbGVhZGluZy13aWR0aCk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtd2l0aC10cmFpbGluZy1pY29uXyB7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaWNvbi1ob3Jpem9udGFsLXBvc2l0aW9uXyhcclxuICAgIHJpZ2h0LFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLXRyYWlsaW5nLWljb24tcG9zaXRpb24sXHJcbiAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wYWRkaW5nLFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWlucHV0LXBhZGRpbmdcclxuICApO1xyXG5cclxuICAvLyBPdXRsaW5lZCB1c2VzIDE2cHggZm9yIHRleHQgYWxpZ25tZW50IHdoZW4gdXNpbmcgYSB0cmFpbGluZyBpY29uLlxyXG4gICYubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIHtcclxuICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24taG9yaXpvbnRhbC1wb3NpdGlvbl8oXHJcbiAgICAgIHJpZ2h0LFxyXG4gICAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wb3NpdGlvbixcclxuICAgICAgJG1kYy10ZXh0LWZpZWxkLWljb24tcGFkZGluZyxcclxuICAgICAgJG1kYy10ZXh0LWZpZWxkLWlucHV0LXBhZGRpbmdcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZGVuc2Utd2l0aC10cmFpbGluZy1pY29uXyB7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaWNvbi1ob3Jpem9udGFsLXBvc2l0aW9uXyhcclxuICAgIHJpZ2h0LFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWljb24tcG9zaXRpb24sXHJcbiAgICAkbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wYWRkaW5nLFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWlucHV0LXBhZGRpbmdcclxuICApO1xyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtd2l0aC1ib3RoLWljb25zXyB7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaWNvbi1ob3Jpem9udGFsLXBvc2l0aW9uLXR3by1pY29uc18oXHJcbiAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wb3NpdGlvbixcclxuICAgICRtZGMtdGV4dC1maWVsZC1pY29uLXBhZGRpbmcsXHJcbiAgICAkbWRjLXRleHQtZmllbGQtdHJhaWxpbmctaWNvbi1wb3NpdGlvbixcclxuICAgICRtZGMtdGV4dC1maWVsZC1pY29uLXBhZGRpbmdcclxuICApO1xyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZGVuc2Utd2l0aC1ib3RoLWljb25zXyB7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaWNvbi1ob3Jpem9udGFsLXBvc2l0aW9uLXR3by1pY29uc18oXHJcbiAgICAkbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wb3NpdGlvbixcclxuICAgICRtZGMtdGV4dC1maWVsZC1kZW5zZS1pY29uLXBhZGRpbmcsXHJcbiAgICAkbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wb3NpdGlvbixcclxuICAgICRtZGMtdGV4dC1maWVsZC1kZW5zZS1pY29uLXBhZGRpbmdcclxuICApO1xyXG59XHJcblxyXG4vLyBGdWxsIFdpZHRoXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1mdWxsd2lkdGhfIHtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkge1xyXG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKHRyYW5zcGFyZW50KTtcclxuICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZpbGwtY29sb3IodHJhbnNwYXJlbnQpO1xyXG5cclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XHJcbiAgICByZXNpemU6IHZlcnRpY2FsO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWZ1bGx3aWR0aC1pbnZhbGlkXyB7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZnVsbHdpZHRoLWJvdHRvbS1saW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XHJcbn1cclxuXHJcbi8vIFRleHRhcmVhXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC10ZXh0YXJlYS1kaXNhYmxlZF8ge1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRpc2FibGVkXztcclxuICAvKiBAYWx0ZXJuYXRlICovXHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtZmlsbC1jb2xvcl8oJG1kYy10ZXh0YXJlYS1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhLWludmFsaWRfIHtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1vdXRsaW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaG92ZXItb3V0bGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtZXJyb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZvY3VzZWQtb3V0bGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtZXJyb3IpO1xyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtdGV4dGFyZWFfIHtcclxuICAvLyBOb3RlOiBUaGUgcmVmYWN0b3IgdG8gYWRkIHRoZSBmaWxsZWQgdGV4dGFyZWEgc3R5bGUgd2lsbCByZXN1bHQgaW4gYSBsb3Qgb2YgdGhlIHNwZWNpZmljaXR5IGlzc3VlcyB0aGF0IHRoZVxyXG4gIC8vIHRleHRhcmVhIGhhcyBiZWluZyByZXNvbHZlZCBieSB1c2luZyB0aGUgc2FtZSAtLW91dGxpbmVkIHZhcmlhbnQgY2xhc3MgYXMgdGhlIHRleHQgZmllbGQuXHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtaWRsZS1ib3JkZXIpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhvdmVyLW91dGxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWhvdmVyLWJvcmRlcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZm9jdXNlZC1vdXRsaW5lLWNvbG9yKHByaW1hcnkpO1xyXG4gIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24odGV4dC1maWVsZC1vdXRsaW5lZCk7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZS1zaGFwZS1yYWRpdXMoc21hbGwpO1xyXG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcih0cmFuc3BhcmVudCk7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZmlsbC1jb2xvcih0cmFuc3BhcmVudCk7XHJcbiAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbigkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teSwgMCUpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLXBvc2l0aW9uKDE2cHgsIDEzcHgpO1xyXG5cclxuICAkcGFkZGluZy1pbnNldDogMTZweDtcclxuXHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIHRyYW5zaXRpb246IG5vbmU7XHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7XHJcblxyXG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xyXG4gICAgYWxpZ24tc2VsZjogYXV0bztcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBtYXJnaW46ICRwYWRkaW5nLWluc2V0LzIgMXB4IDFweCAwO1xyXG4gICAgcGFkZGluZzogMCAkcGFkZGluZy1pbnNldCAkcGFkZGluZy1pbnNldDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICB9XHJcblxyXG4gIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlciArIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDsgLy8gTGVhdmVzIHNwYWNlIGZvciBjaGFyYWN0ZXIgY291bnRlciBpZiBpdCBleGlzdHMuXHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xyXG4gICAgdG9wOiAxN3B4O1xyXG4gICAgYm90dG9tOiBhdXRvO1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICB9XHJcblxyXG4gICYubWRjLXRleHQtZmllbGQtLWZvY3VzZWQge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZm9jdXNlZF87XHJcbiAgfVxyXG59XHJcblxyXG4vLyBDdXN0b21pemF0aW9uXHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaW5rLWNvbG9yXygkY29sb3IpIHtcclxuICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcclxuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWZpbGwtY29sb3JfKCRjb2xvcikge1xyXG4gIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC10ZXh0YXJlYS1zdHJva2UtY29sb3JfKCRjb2xvcikge1xyXG4gIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtY29sb3IoJGNvbG9yKTtcclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhLWZpbGwtY29sb3JfKCRjb2xvcikge1xyXG4gIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1mdWxsd2lkdGgtYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIHtcclxuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1ib3R0b20tY29sb3IsICRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvcikge1xyXG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWJvdHRvbS1jb2xvciwgJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1ob3Zlci1ib3R0b20tbGluZS1jb2xvcl8oJGNvbG9yKSB7XHJcbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItYm90dG9tLWNvbG9yLCAkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWxpbmUtcmlwcGxlLWNvbG9yXygkY29sb3IpIHtcclxuICAubWRjLWxpbmUtcmlwcGxlIHtcclxuICAgIEBpbmNsdWRlIG1kYy1saW5lLXJpcHBsZS1jb2xvcigkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWxhYmVsLWluay1jb2xvcl8oJGNvbG9yKSB7XHJcbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtaW5rLWNvbG9yKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4vLyBQdWJsaWMgbWl4aW5zXG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LWNvbG9yXygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC12YWxpZGF0aW9uLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtdmFsaWRhdGlvbi1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG4vLyBQcml2YXRlIG1peGluc1xuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtY29sb3JfKCRjb2xvcikge1xuICArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC12YWxpZGF0aW9uLWNvbG9yXygkY29sb3IpIHtcbiAgJi5tZGMtdGV4dC1maWVsZC0taW52YWxpZCArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE5IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi8uLi9ydGwvbWl4aW5zXCI7XG5cbi8vIFB1YmxpYyBtaXhpbnNcblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXItY29sb3JfKCRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLXBvc2l0aW9uKCR4T2Zmc2V0LCAkeU9mZnNldCkge1xuICAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKHJpZ2h0LCAkeE9mZnNldCk7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAkeU9mZnNldDtcbiAgfVxufVxuXG4vLyBQcml2YXRlIG1peGluc1xuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXItY29sb3JfKCRjb2xvcikge1xuICAvLyBDaGFyYWN0ZXIgY291bnRlciBpcyBwbGFjZWQgaW5zaWRlIG1kYy10ZXh0ZmllbGQgZWxlbWVudCAoZm9yIHRleHRhcmVhIHZhcmlhbnQgKSBvclxuICAvLyBpbnNpZGUgaGVscGVyIGxpbmUgd2hpY2ggaXMgc2libGluZyB0byBtZGMtdGV4dGZpZWxkLlxuICAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIsXG4gICsgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4vLyBQdWJsaWMgbWl4aW5zXG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1pY29uLWNvbG9yKCRjb2xvciwgJHN0eWxlU2Vjb25kSWNvbjogZmFsc2UpIHtcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24tY29sb3JfKCRjb2xvciwgJHN0eWxlU2Vjb25kSWNvbik7XG4gIH1cbn1cblxuLy8gUHJpdmF0ZSBtaXhpbnNcblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWljb24taG9yaXpvbnRhbC1wb3NpdGlvbl8oJHBvc2l0aW9uLXByb3BlcnR5LCAkcG9zaXRpb24sICRwYWRkaW5nLCAkaW5wdXQtcGFkZGluZykge1xuICAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKCRwb3NpdGlvbi1wcm9wZXJ0eSwgJHBvc2l0aW9uKTtcbiAgfVxuXG4gIC8vIE1vdmUgdGhlIGlucHV0J3MgcG9zaXRpb24sIHRvIGFsbG93IHJvb20gZm9yIHRoZSBpY29uXG4gIEBpZiAoJHBvc2l0aW9uLXByb3BlcnR5ID09IGxlZnQpIHtcbiAgICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRwYWRkaW5nLCAkaW5wdXQtcGFkZGluZyk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRpbnB1dC1wYWRkaW5nLCAkcGFkZGluZyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1pY29uLWhvcml6b250YWwtcG9zaXRpb24tdHdvLWljb25zXyhcbiAgJHBvc2l0aW9uLWxlZnQsXG4gICRwYWRkaW5nLWxlZnQsXG4gICRwb3NpdGlvbi1yaWdodCxcbiAgJHBhZGRpbmctcmlnaHRcbikge1xuICAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlKGxlZnQsICRwb3NpdGlvbi1sZWZ0LCByaWdodCwgYXV0byk7XG5cbiAgICB+IC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZShyaWdodCwgJHBvc2l0aW9uLXJpZ2h0LCBsZWZ0LCBhdXRvKTtcbiAgICB9XG4gIH1cblxuICAvLyBNb3ZlIHRoZSBpbnB1dCdzIHBvc2l0aW9uLCB0byBhbGxvdyByb29tIGZvciB0aGUgaWNvbnMuXG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRwYWRkaW5nLWxlZnQsICRwYWRkaW5nLXJpZ2h0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaWNvbi1jb2xvcl8oJGNvbG9yLCAkc3R5bGVTZWNvbmRJY29uOiBmYWxzZSkge1xuICAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAgIEBpZiAoJHN0eWxlU2Vjb25kSWNvbikge1xuICAgICAgLy8gU2VsZWN0IHRoZSBzZWNvbmQgaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyByZWdhcmRsZXNzIG9mIGVsZW1lbnQgdHlwZS5cbiAgICAgIH4gLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4kbWRjLXRleHQtZmllbGQtaWNvbi1wb3NpdGlvbjogMTZweCAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC10cmFpbGluZy1pY29uLXBvc2l0aW9uOiAxMnB4ICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWljb24tcGFkZGluZzogNDhweCAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1kZW5zZS1pY29uLXBhZGRpbmc6IDQ0cHggIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wb3NpdGlvbjogMTJweCAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1kZW5zZS1pY29uLXBhZGRpbmc6IDM4cHggIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2VsZXZhdGlvbi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSB0b3AtYXBwLWJhclxuLm1kYy10b3AtYXBwLWJhciB7XG4gIEBpbmNsdWRlIG1kYy10b3AtYXBwLWJhci1maWxsLWNvbG9yLWFjY2Vzc2libGUocHJpbWFyeSk7XG4gIEBpbmNsdWRlIG1kYy10b3AtYXBwLWJhci1pY29uLWluay1jb2xvcihvbi1wcmltYXJ5KTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDQ7XG5cbiAgJl9fcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJG1kYy10b3AtYXBwLWJhci1yb3ctaGVpZ2h0O1xuICB9XG5cbiAgJl9fc2VjdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogJG1kYy10b3AtYXBwLWJhci1zZWN0aW9uLXZlcnRpY2FsLXBhZGRpbmcgJG1kYy10b3AtYXBwLWJhci1zZWN0aW9uLWhvcml6b250YWwtcGFkZGluZztcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgJi0tYWxpZ24tc3RhcnQge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgb3JkZXI6IC0xO1xuICAgIH1cblxuICAgICYtLWFsaWduLWVuZCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGhlYWRsaW5lNik7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KHBhZGRpbmcsIGxlZnQsICRtZGMtdG9wLWFwcC1iYXItdGl0bGUtbGVmdC1wYWRkaW5nKTtcblxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgJl9fYWN0aW9uLWl0ZW0sXG4gICZfX25hdmlnYXRpb24taWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLXRvcC1hcHAtYmFyLWljb25fO1xuICB9XG59XG5cbkBhdC1yb290IHtcbiAgQGluY2x1ZGUgbWRjLXRvcC1hcHAtYmFyLXNob3J0LXNoYXBlLXJhZGl1cygyNHB4KTtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQge1xuICB0b3A6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGF1dG87XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IHdpZHRoIDI1MG1zICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcblxuICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICAgIGhlaWdodDogJG1kYy10b3AtYXBwLWJhci1tb2JpbGUtcm93LWhlaWdodDtcbiAgfVxuXG4gIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24ge1xuICAgIHBhZGRpbmc6ICRtZGMtdG9wLWFwcC1iYXItbW9iaWxlLXNlY3Rpb24tcGFkZGluZztcbiAgfVxuXG4gIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZCB7XG4gIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oNCk7XG5cbiAgd2lkdGg6ICRtZGMtdG9wLWFwcC1iYXItc2hvcnQtY29sbGFwc2VkLXdpZHRoO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbSB7XG4gICAgdHJhbnNpdGlvbjogcGFkZGluZyAxNTBtcyAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gIH1cbn1cblxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtaGFzLWFjdGlvbi1pdGVtIHtcbiAgd2lkdGg6ICRtZGMtdG9wLWFwcC1iYXItc2hvcnQtY29sbGFwc2VkLXdpZHRoICogMjtcblxuICAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1lbmQge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChwYWRkaW5nLCByaWdodCwgMTJweCk7XG4gIH1cbn1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2Uge1xuICAubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICAgIGhlaWdodDogJG1kYy10b3AtYXBwLWJhci1kZW5zZS1yb3ctaGVpZ2h0O1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbiB7XG4gICAgcGFkZGluZzogMCAkbWRjLXRvcC1hcHAtYmFyLWRlbnNlLXNlY3Rpb24taG9yaXpvbnRhbC1wYWRkaW5nO1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChwYWRkaW5nLCBsZWZ0LCAkbWRjLXRvcC1hcHAtYmFyLWRlbnNlLXRpdGxlLWxlZnQtcGFkZGluZyk7XG4gIH1cbn1cblxuLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IHtcbiAgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgICBoZWlnaHQ6ICRtZGMtdG9wLWFwcC1iYXItcHJvbWluZW50LXJvdy1oZWlnaHQ7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgcGFkZGluZy1ib3R0b206ICRtZGMtdG9wLWFwcC1iYXItcHJvbWluZW50LXRpdGxlLWJvdHRvbS1wYWRkaW5nO1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0sXG4gIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbiB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgfVxufVxuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4ubWRjLXRvcC1hcHAtYmFyLS1maXhlZCB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgbGluZWFyO1xufVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1maXhlZC1zY3JvbGxlZCB7XG4gIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oNCk7XG5cbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBsaW5lYXI7XG59XG5cbi8vIFNwZWNpZmljIHN0eWxlcyBmb3IgcHJvbWluZW50IGFuZCBkZW5zZSBzdHlsZWQgdG9wIGFwcCBiYXJcbi8vIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQge1xuICAubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICAgIGhlaWdodDogJG1kYy10b3AtYXBwLWJhci1kZW5zZS1yb3ctaGVpZ2h0ICogMjtcbiAgfVxuXG4gIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAgJG1kYy10b3AtYXBwLWJhci1zZWN0aW9uLWhvcml6b250YWwtcGFkZGluZztcbiAgfVxuXG4gIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gocGFkZGluZywgbGVmdCwgJG1kYy10b3AtYXBwLWJhci10aXRsZS1sZWZ0LXBhZGRpbmcpO1xuXG4gICAgcGFkZGluZy1ib3R0b206ICRtZGMtdG9wLWFwcC1iYXItcHJvbWluZW50LWRlbnNlLXRpdGxlLWJvdHRvbS1wYWRkaW5nO1xuICB9XG59XG4vLyBzdHlsZWxpbnQtZW5hYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuXG4ubWRjLXRvcC1hcHAtYmFyLS1maXhlZC1hZGp1c3Qge1xuICBwYWRkaW5nLXRvcDogJG1kYy10b3AtYXBwLWJhci1yb3ctaGVpZ2h0O1xufVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZS1maXhlZC1hZGp1c3Qge1xuICBwYWRkaW5nLXRvcDogJG1kYy10b3AtYXBwLWJhci1kZW5zZS1yb3ctaGVpZ2h0O1xufVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1maXhlZC1hZGp1c3Qge1xuICBwYWRkaW5nLXRvcDogJG1kYy10b3AtYXBwLWJhci1tb2JpbGUtcm93LWhlaWdodDtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50LWZpeGVkLWFkanVzdCB7XG4gIHBhZGRpbmctdG9wOiAkbWRjLXRvcC1hcHAtYmFyLXByb21pbmVudC1yb3ctaGVpZ2h0O1xufVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZS1wcm9taW5lbnQtZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6ICRtZGMtdG9wLWFwcC1iYXItZGVuc2Utcm93LWhlaWdodCAqIDI7XG59XG5cbi8vIE1vYmlsZSBTdHlsZXNcbkBpbmNsdWRlIG1kYy10b3AtYXBwLWJhci1tb2JpbGUtYnJlYWtwb2ludF87XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvdmFyaWFibGVzXCI7IC8vIGZvciBtZGMtdGhlbWUtYWNjZXNzaWJsZS1pbmstY29sb3JcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9zaGFwZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9zaGFwZS9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vL1xuLy8gUHVibGljXG4vL1xuXG5AbWl4aW4gbWRjLXRvcC1hcHAtYmFyLWluay1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG59XG5cbkBtaXhpbiBtZGMtdG9wLWFwcC1iYXItZmlsbC1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbn1cblxuQG1peGluIG1kYy10b3AtYXBwLWJhci1maWxsLWNvbG9yLWFjY2Vzc2libGUoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIG1kYy10b3AtYXBwLWJhci1maWxsLWNvbG9yKCRjb2xvcik7XG4gIEBpbmNsdWRlIG1kYy10b3AtYXBwLWJhci1pbmstY29sb3IobWRjLXRoZW1lLWFjY2Vzc2libGUtaW5rLWNvbG9yKCRjb2xvcikpO1xufVxuXG5AbWl4aW4gbWRjLXRvcC1hcHAtYmFyLWljb24taW5rLWNvbG9yKCRjb2xvcikge1xuICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbSxcbiAgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy10b3AtYXBwLWJhci1zaG9ydC1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IHRydWUpIHtcbiAgQGlmIGxlbmd0aCgkcmFkaXVzKSA+IDEge1xuICAgIEBlcnJvciBcIkludmFsaWQgcmFkaXVzOiAnI3skcmFkaXVzfScgY29tcG9uZW50IGRvZXNuJ3QgYWxsb3cgY3VzdG9taXppbmcgYWxsIGNvcm5lcnNcIjtcbiAgfVxuXG4gICRyYWRpdXM6IDAgMCAkcmFkaXVzIDA7XG5cbiAgJHNlbGVjdG9yOiBpZigmLCBcIiYubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWRcIiwgXCIubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWRcIik7XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKFxuICAgICAgbWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1yYWRpdXMoJG1kYy10b3AtYXBwLWJhci1kZW5zZS1yb3ctaGVpZ2h0LCAkcmFkaXVzKSxcbiAgICAgICRydGwtcmVmbGV4aXZlXG4gICAgKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRvcC1hcHAtYmFyLW1vYmlsZS1icmVha3BvaW50XygkbW9iaWxlLWJyZWFrcG9pbnQ6ICRtZGMtdG9wLWFwcC1iYXItbW9iaWxlLWJyZWFrcG9pbnQpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRtb2JpbGUtYnJlYWtwb2ludCkge1xuICAgIC5tZGMtdG9wLWFwcC1iYXJfX3JvdyB7XG4gICAgICBoZWlnaHQ6ICRtZGMtdG9wLWFwcC1iYXItbW9iaWxlLXJvdy1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbiB7XG4gICAgICBwYWRkaW5nOiAkbWRjLXRvcC1hcHAtYmFyLW1vYmlsZS1zZWN0aW9uLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQge1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggMjAwbXMgJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgIH1cblxuICAgIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZCB7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAyNTBtcyAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG5cbiAgICAgIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24tLWFsaWduLWVuZCB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChwYWRkaW5nLCByaWdodCwgJG1kYy10b3AtYXBwLWJhci1zaG9ydC1jb2xsYXBzZWQtcmlnaHQtaWNvbi1wYWRkaW5nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQge1xuICAgICAgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJG1kYy10b3AtYXBwLWJhci1wcm9taW5lbnQtbW9iaWxlLXRpdGxlLWJvdHRvbS1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtdG9wLWFwcC1iYXItLWZpeGVkLWFkanVzdCB7XG4gICAgICBwYWRkaW5nLXRvcDogJG1kYy10b3AtYXBwLWJhci1tb2JpbGUtcm93LWhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLy9cbi8vIFByaXZhdGVcbi8vXG5cbi8vIEFwcGxpZXMgc3R5bGVzIHRvIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgaWNvbnMgdGhhdCBjYW4gZXhpc3QgaW4gdG9wLWFwcC1iYXJzLlxuLy8gQm90aCAubWRjLXRvcC1hcHAtYmFyX19pY29uIGFuZCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24gc2hhcmUgYWxsIHN0eWxlcyBleGNlcHQgZm9yXG4vLyBob3Jpem9udGFsIHBhZGRpbmcuXG5AbWl4aW4gbWRjLXRvcC1hcHAtYmFyLWljb25fKCkge1xuICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2U7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLXVuYm91bmRlZDtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6ICRtZGMtdG9wLWFwcC1iYXItaWNvbi1zaXplICsgJG1kYy10b3AtYXBwLWJhci1pY29uLXBhZGRpbmcgKiAyO1xuICBoZWlnaHQ6ICRtZGMtdG9wLWFwcC1iYXItaWNvbi1zaXplICsgJG1kYy10b3AtYXBwLWJhci1pY29uLXBhZGRpbmcgKiAyO1xuICBwYWRkaW5nOiAkbWRjLXRvcC1hcHAtYmFyLWljb24tcGFkZGluZztcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuLy8gRGVmYXVsdCBzdHlsZXNcbiRtZGMtdG9wLWFwcC1iYXItcm93LWhlaWdodDogNjRweCAhZGVmYXVsdDtcbiRtZGMtdG9wLWFwcC1iYXItdGl0bGUtbGVmdC1wYWRkaW5nOiAyMHB4ICFkZWZhdWx0O1xuJG1kYy10b3AtYXBwLWJhci1zZWN0aW9uLXZlcnRpY2FsLXBhZGRpbmc6IDhweCAhZGVmYXVsdDtcbiRtZGMtdG9wLWFwcC1iYXItc2VjdGlvbi1ob3Jpem9udGFsLXBhZGRpbmc6IDEycHggIWRlZmF1bHQ7XG5cbiRtZGMtdG9wLWFwcC1iYXItaWNvbi1wYWRkaW5nOiAxMnB4ICFkZWZhdWx0O1xuJG1kYy10b3AtYXBwLWJhci1pY29uLXNpemU6IDI0cHggIWRlZmF1bHQ7XG5cbiRtZGMtdG9wLWFwcC1iYXItbW9iaWxlLWJyZWFrcG9pbnQ6IDU5OXB4ICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IG1vYmlsZSBzdHlsZXNcbiRtZGMtdG9wLWFwcC1iYXItbW9iaWxlLXJvdy1oZWlnaHQ6IDU2cHggIWRlZmF1bHQ7XG4kbWRjLXRvcC1hcHAtYmFyLW1vYmlsZS1zZWN0aW9uLXBhZGRpbmc6IDRweCAhZGVmYXVsdDtcblxuLy8gU2hvcnQgdG9wIGFwcCBiYXJcbiRtZGMtdG9wLWFwcC1iYXItc2hvcnQtY29sbGFwc2VkLWJvcmRlci1yYWRpdXM6IDRweCAhZGVmYXVsdDtcbiRtZGMtdG9wLWFwcC1iYXItc2hvcnQtY29sbGFwc2VkLXdpZHRoOiA1NnB4ICFkZWZhdWx0O1xuJG1kYy10b3AtYXBwLWJhci1zaG9ydC1jb2xsYXBzZWQtcmlnaHQtaWNvbi1wYWRkaW5nOiAxMnB4ICFkZWZhdWx0O1xuXG4vLyBQcm9taW5lbnQgc3R5bGVzXG4kbWRjLXRvcC1hcHAtYmFyLXByb21pbmVudC1yb3ctaGVpZ2h0OiAxMjhweCAhZGVmYXVsdDtcbiRtZGMtdG9wLWFwcC1iYXItcHJvbWluZW50LXRpdGxlLWJvdHRvbS1wYWRkaW5nOiAycHggIWRlZmF1bHQ7XG5cbi8vIFByb21pbmVudCBtb2JpbGUgc3R5bGVzXG4kbWRjLXRvcC1hcHAtYmFyLXByb21pbmVudC1tb2JpbGUtdGl0bGUtYm90dG9tLXBhZGRpbmc6IDZweCAhZGVmYXVsdDtcblxuLy8gRGVuc2Ugc3R5bGVzXG4kbWRjLXRvcC1hcHAtYmFyLWRlbnNlLXJvdy1oZWlnaHQ6IDQ4cHggIWRlZmF1bHQ7XG4kbWRjLXRvcC1hcHAtYmFyLWRlbnNlLXNlY3Rpb24taG9yaXpvbnRhbC1wYWRkaW5nOiA0cHggIWRlZmF1bHQ7XG4kbWRjLXRvcC1hcHAtYmFyLWRlbnNlLXRpdGxlLWxlZnQtcGFkZGluZzogMTJweCAhZGVmYXVsdDtcblxuLy8gRGVuc2UgJiBQcm9taW5lbnQgc3R5bGVzXG4kbWRjLXRvcC1hcHAtYmFyLXByb21pbmVudC1kZW5zZS10aXRsZS1ib3R0b20tcGFkZGluZzogOXB4ICFkZWZhdWx0O1xuIiwiLm5neC1tZGMtZm9ybS1maWVsZC0tZmx1aWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleDogYXV0bztcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG59XHJcbiIsIi5uZ3gtbWRjLWNoaXAtLXByaW1hcnkge1xyXG4gIEBpbmNsdWRlIG1kYy1jaGlwLWZpbGwtY29sb3ItYWNjZXNzaWJsZSgkbWRjLXRoZW1lLXByaW1hcnkpO1xyXG59XHJcblxyXG4ubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkge1xyXG4gIEBpbmNsdWRlIG1kYy1jaGlwLWZpbGwtY29sb3ItYWNjZXNzaWJsZSgkbWRjLXRoZW1lLXNlY29uZGFyeSk7XHJcbn1cclxuIiwiLm5neC1tZGMtZmFiLWV4dGVuZGVkLS1mbHVpZCB7XHJcbiAgQGluY2x1ZGUgbWRjLWZhYi1leHRlbmRlZC1mbHVpZDtcclxufVxyXG5cclxuLm5neC1tZGMtZmFiLS1ib3R0b20tcmlnaHQge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICByaWdodDogMXJlbTtcclxuICBib3R0b206IDFyZW07XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcclxuICAubmd4LW1kYy1mYWItLWJvdHRvbS1yaWdodCB7XHJcbiAgICByaWdodDogMS41cmVtO1xyXG4gICAgYm90dG9tOiAxLjVyZW07XHJcbiAgfVxyXG59XHJcblxyXG4ubmd4LW1kYy1mYWItLWJvdHRvbS1sZWZ0IHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgYm90dG9tOiAxcmVtO1xyXG4gIGxlZnQ6IDFyZW07XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcclxuICAubmd4LW1kYy1mYWItLWJvdHRvbS1sZWZ0IHtcclxuICAgIGJvdHRvbTogMS41cmVtO1xyXG4gICAgbGVmdDogMS41cmVtO1xyXG4gIH1cclxufVxyXG4iLCIubmd4LW1kYy1pY29uLS1jbGlja2FibGUsXHJcbmEubmd4LW1kYy1pY29uIHtcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHVzZXItc2VsZWN0OiBub25lO1xyXG59XHJcblxyXG4ubmd4LW1kYy1pY29uLS1pbmxpbmUge1xyXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICBoZWlnaHQ6IGluaGVyaXQ7XHJcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgd2lkdGg6IGluaGVyaXQ7XHJcbn1cclxuIiwiLm1kYy1pbWFnZS1saXN0X19pdGVtIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG4iLCIubWRjLWxpbmVhci1wcm9ncmVzcyB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5tZGMtbGluZWFyLXByb2dyZXNzLS1zZWNvbmRhcnkge1xyXG4gIEBpbmNsdWRlIG1kYy1saW5lYXItcHJvZ3Jlc3MtYmFyLWNvbG9yKCRtZGMtdGhlbWUtc2Vjb25kYXJ5KTtcclxufVxyXG4iLCIubWRjLWxpc3QsXHJcbi5tZGMtbGlzdC1kaXZpZGVyIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLm5neC1tZGMtbGlzdC0tYm9yZGVyIHtcclxuICAubWRjLWxpc3QtaXRlbSB7XHJcbiAgICAvKiBBZGQgdGhlIGxpc3Qgc2lkZSBwYWRkaW5nIHBhZGRpbmcgdG8gdGhlIGxpc3QgaXRlbS4gKi9cclxuICAgIHBhZGRpbmc6IDAgMTZweDtcclxuXHJcbiAgICAvKiBBZGQgYSBib3JkZXIgYXJvdW5kIGVhY2ggZWxlbWVudC4gKi9cclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgLjEyKTtcclxuICB9XHJcblxyXG4gIC8qIEVuc3VyZSBhZGphY2VudCBib3JkZXJzIGRvbid0IGNvbGxpZGUgd2l0aCBvbmUgYW5vdGhlci4gKi9cclxuICAubWRjLWxpc3QtaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XHJcbiAgICBib3JkZXItdG9wOiBub25lO1xyXG4gIH1cclxufVxyXG4iLCIubWRjLW1lbnUtc3VyZmFjZS0tYW5jaG9yIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuIiwiLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbn1cclxuIiwiLm1kYy1zbGlkZXIge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG4iLCIubmd4LW1kYy1zbmFja2Jhci0tdHJhaWxpbmcge1xyXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkbWRjLXNuYWNrYmFyLW1vYmlsZS1icmVha3BvaW50KSB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIH1cclxufVxyXG4iLCIubmd4LW1kYy10YWItLWRpc2FibGVkIHtcclxuICBAaW5jbHVkZSBtZGMtdGFiLXRleHQtbGFiZWwtY29sb3IocmdiYShibGFjaywgLjMpKTtcclxuICBAaW5jbHVkZSBtZGMtdGFiLWljb24tY29sb3IocmdiYShibGFjaywgLjMpKTtcclxuXHJcbiAgLm1kYy10YWItaW5kaWNhdG9yIHtcclxuICAgIEBpbmNsdWRlIG1kYy10YWItaW5kaWNhdG9yLXVuZGVybGluZS1jb2xvcihyZ2JhKGJsYWNrLCAuMykpO1xyXG4gIH1cclxuXHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcbiIsIi5tZGMtdGFiLWJhciB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuIiwiLm1kYy10YWItc2Nyb2xsZXIge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcbiIsIkBpbXBvcnQgJ35AYW5ndWxhci1tZGMvdGhlbWUvbWF0ZXJpYWwnO1xyXG5cclxuQEluY2x1ZGUgbWRjLXRhYi1maXhlZC13aWR0aCgzMHB4KTtcclxuXHJcbi5oZWFkZXIge1xyXG4gIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgdG9wOiAwO1xyXG59XHJcblxyXG4ubWFpbi1jb250ZW50XHJcbntcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcblxyXG4ubWFpbi1hcHAtYmFyIHtcclxuICBAaW5jbHVkZSBtZGMtdG9wLWFwcC1iYXItZmlsbC1jb2xvcigjMzYzNjQwKTtcclxuXHJcbiAgLm1kYy10YWItYmFyIHtcclxuICAgIG1hcmdpbi10b3A6IDFlbTtcclxuXHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcclxuICAgICAgbWFyZ2luLXRvcDogLjVlbTtcclxuICAgIH1cclxuXHJcbiAgICAubWRjLXRhYiB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy10YWItdGV4dC1sYWJlbC1jb2xvcihvbi1wcmltYXJ5KTtcclxuICAgICAgQGluY2x1ZGUgbWRjLXRhYi1pY29uLWNvbG9yKG9uLXByaW1hcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIC5tZGMtdGFiX19yaXBwbGUge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRtYXRlcmlhbC1jb2xvci1ibHVlLTcwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLm1kYy10YWItaW5kaWNhdG9yIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLXRhYi1pbmRpY2F0b3ItdW5kZXJsaW5lLWNvbG9yKCRtYXRlcmlhbC1jb2xvci1ibHVlLTcwMCk7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy10YWItaW5kaWNhdG9yLXVuZGVybGluZS1oZWlnaHQoM3B4KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5tZGMtdGFiIHtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgIHdpZHRoOiA3MnB4O1xyXG59XHJcblxyXG4ubWFpbi1kcmF3ZXItY29udGFpbmVyIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2NHB4KTtcclxuICBtYXJnaW4tdG9wOjY0cHg7XHJcbn1cclxuXHJcbi5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyIHtcclxuICBtYXJnaW4tdG9wOiAyMHB4O1xyXG59XHJcblxyXG4uYXBwLWRyYXdlci1jb250ZW50c3tcclxuICBwYWRkaW5nOiAyMHB4O1xyXG59XHJcblxyXG5cclxuXHJcbi5tYWluLWRyYXdlciB7XHJcblxyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ5OXB4KSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1kcmF3ZXItd2lkdGgoMjAwcHgpO1xyXG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA1NnB4KTtcclxuICAgICAgbWFyZ2luLXRvcDogLThweDtcclxuICAgIH1cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtZHJhd2VyLXdpZHRoKDMwMHB4KTtcclxuICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTZweCk7XHJcbiAgICAgIG1hcmdpbi10b3A6IC04cHg7XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAxcHgpIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLWRyYXdlci13aWR0aCg1MDBweCk7XHJcbiAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDY0cHgpO1xyXG4gICAgfSAgICBcclxufSIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL2RvbGxhci12YXJpYWJsZS1wYXR0ZXJuLCBjb2xvci1oZXgtbGVuZ3RoXG5cbiRtYXRlcmlhbC1jb2xvci1yZWQtNTA6ICNmZmViZWU7XG4kbWF0ZXJpYWwtY29sb3ItcmVkLTEwMDogI2ZmY2RkMjtcbiRtYXRlcmlhbC1jb2xvci1yZWQtMjAwOiAjZWY5YTlhO1xuJG1hdGVyaWFsLWNvbG9yLXJlZC0zMDA6ICNlNTczNzM7XG4kbWF0ZXJpYWwtY29sb3ItcmVkLTQwMDogI2VmNTM1MDtcbiRtYXRlcmlhbC1jb2xvci1yZWQtNTAwOiAjZjQ0MzM2O1xuJG1hdGVyaWFsLWNvbG9yLXJlZC02MDA6ICNlNTM5MzU7XG4kbWF0ZXJpYWwtY29sb3ItcmVkLTcwMDogI2QzMmYyZjtcbiRtYXRlcmlhbC1jb2xvci1yZWQtODAwOiAjYzYyODI4O1xuJG1hdGVyaWFsLWNvbG9yLXJlZC05MDA6ICNiNzFjMWM7XG4kbWF0ZXJpYWwtY29sb3ItcmVkLWExMDA6ICNmZjhhODA7XG4kbWF0ZXJpYWwtY29sb3ItcmVkLWEyMDA6ICNmZjUyNTI7XG4kbWF0ZXJpYWwtY29sb3ItcmVkLWE0MDA6ICNmZjE3NDQ7XG4kbWF0ZXJpYWwtY29sb3ItcmVkLWE3MDA6ICNkNTAwMDA7XG5cbiRtYXRlcmlhbC1jb2xvci1waW5rLTUwOiAjZmNlNGVjO1xuJG1hdGVyaWFsLWNvbG9yLXBpbmstMTAwOiAjZjhiYmQwO1xuJG1hdGVyaWFsLWNvbG9yLXBpbmstMjAwOiAjZjQ4ZmIxO1xuJG1hdGVyaWFsLWNvbG9yLXBpbmstMzAwOiAjZjA2MjkyO1xuJG1hdGVyaWFsLWNvbG9yLXBpbmstNDAwOiAjZWM0MDdhO1xuJG1hdGVyaWFsLWNvbG9yLXBpbmstNTAwOiAjZTkxZTYzO1xuJG1hdGVyaWFsLWNvbG9yLXBpbmstNjAwOiAjZDgxYjYwO1xuJG1hdGVyaWFsLWNvbG9yLXBpbmstNzAwOiAjYzIxODViO1xuJG1hdGVyaWFsLWNvbG9yLXBpbmstODAwOiAjYWQxNDU3O1xuJG1hdGVyaWFsLWNvbG9yLXBpbmstOTAwOiAjODgwZTRmO1xuJG1hdGVyaWFsLWNvbG9yLXBpbmstYTEwMDogI2ZmODBhYjtcbiRtYXRlcmlhbC1jb2xvci1waW5rLWEyMDA6ICNmZjQwODE7XG4kbWF0ZXJpYWwtY29sb3ItcGluay1hNDAwOiAjZjUwMDU3O1xuJG1hdGVyaWFsLWNvbG9yLXBpbmstYTcwMDogI2M1MTE2MjtcblxuJG1hdGVyaWFsLWNvbG9yLXB1cnBsZS01MDogI2YzZTVmNTtcbiRtYXRlcmlhbC1jb2xvci1wdXJwbGUtMTAwOiAjZTFiZWU3O1xuJG1hdGVyaWFsLWNvbG9yLXB1cnBsZS0yMDA6ICNjZTkzZDg7XG4kbWF0ZXJpYWwtY29sb3ItcHVycGxlLTMwMDogI2JhNjhjODtcbiRtYXRlcmlhbC1jb2xvci1wdXJwbGUtNDAwOiAjYWI0N2JjO1xuJG1hdGVyaWFsLWNvbG9yLXB1cnBsZS01MDA6ICM5YzI3YjA7XG4kbWF0ZXJpYWwtY29sb3ItcHVycGxlLTYwMDogIzhlMjRhYTtcbiRtYXRlcmlhbC1jb2xvci1wdXJwbGUtNzAwOiAjN2IxZmEyO1xuJG1hdGVyaWFsLWNvbG9yLXB1cnBsZS04MDA6ICM2YTFiOWE7XG4kbWF0ZXJpYWwtY29sb3ItcHVycGxlLTkwMDogIzRhMTQ4YztcbiRtYXRlcmlhbC1jb2xvci1wdXJwbGUtYTEwMDogI2VhODBmYztcbiRtYXRlcmlhbC1jb2xvci1wdXJwbGUtYTIwMDogI2UwNDBmYjtcbiRtYXRlcmlhbC1jb2xvci1wdXJwbGUtYTQwMDogI2Q1MDBmOTtcbiRtYXRlcmlhbC1jb2xvci1wdXJwbGUtYTcwMDogI2EwZjtcblxuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLTUwOiAjZWRlN2Y2O1xuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLTEwMDogI2QxYzRlOTtcbiRtYXRlcmlhbC1jb2xvci1kZWVwLXB1cnBsZS0yMDA6ICNiMzlkZGI7XG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1wdXJwbGUtMzAwOiAjOTU3NWNkO1xuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLTQwMDogIzdlNTdjMjtcbiRtYXRlcmlhbC1jb2xvci1kZWVwLXB1cnBsZS01MDA6ICM2NzNhYjc7XG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1wdXJwbGUtNjAwOiAjNWUzNWIxO1xuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLTcwMDogIzUxMmRhODtcbiRtYXRlcmlhbC1jb2xvci1kZWVwLXB1cnBsZS04MDA6ICM0NTI3YTA7XG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1wdXJwbGUtOTAwOiAjMzExYjkyO1xuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLWExMDA6ICNiMzg4ZmY7XG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1wdXJwbGUtYTIwMDogIzdjNGRmZjtcbiRtYXRlcmlhbC1jb2xvci1kZWVwLXB1cnBsZS1hNDAwOiAjNjUxZmZmO1xuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLWE3MDA6ICM2MjAwZWE7XG5cbiRtYXRlcmlhbC1jb2xvci1pbmRpZ28tNTA6ICNlOGVhZjY7XG4kbWF0ZXJpYWwtY29sb3ItaW5kaWdvLTEwMDogI2M1Y2FlOTtcbiRtYXRlcmlhbC1jb2xvci1pbmRpZ28tMjAwOiAjOWZhOGRhO1xuJG1hdGVyaWFsLWNvbG9yLWluZGlnby0zMDA6ICM3OTg2Y2I7XG4kbWF0ZXJpYWwtY29sb3ItaW5kaWdvLTQwMDogIzVjNmJjMDtcbiRtYXRlcmlhbC1jb2xvci1pbmRpZ28tNTAwOiAjM2Y1MWI1O1xuJG1hdGVyaWFsLWNvbG9yLWluZGlnby02MDA6ICMzOTQ5YWI7XG4kbWF0ZXJpYWwtY29sb3ItaW5kaWdvLTcwMDogIzMwM2Y5ZjtcbiRtYXRlcmlhbC1jb2xvci1pbmRpZ28tODAwOiAjMjgzNTkzO1xuJG1hdGVyaWFsLWNvbG9yLWluZGlnby05MDA6ICMxYTIzN2U7XG4kbWF0ZXJpYWwtY29sb3ItaW5kaWdvLWExMDA6ICM4YzllZmY7XG4kbWF0ZXJpYWwtY29sb3ItaW5kaWdvLWEyMDA6ICM1MzZkZmU7XG4kbWF0ZXJpYWwtY29sb3ItaW5kaWdvLWE0MDA6ICMzZDVhZmU7XG4kbWF0ZXJpYWwtY29sb3ItaW5kaWdvLWE3MDA6ICMzMDRmZmU7XG5cbiRtYXRlcmlhbC1jb2xvci1ibHVlLTUwOiAjZTNmMmZkO1xuJG1hdGVyaWFsLWNvbG9yLWJsdWUtMTAwOiAjYmJkZWZiO1xuJG1hdGVyaWFsLWNvbG9yLWJsdWUtMjAwOiAjOTBjYWY5O1xuJG1hdGVyaWFsLWNvbG9yLWJsdWUtMzAwOiAjNjRiNWY2O1xuJG1hdGVyaWFsLWNvbG9yLWJsdWUtNDAwOiAjNDJhNWY1O1xuJG1hdGVyaWFsLWNvbG9yLWJsdWUtNTAwOiAjMjE5NmYzO1xuJG1hdGVyaWFsLWNvbG9yLWJsdWUtNjAwOiAjMWU4OGU1O1xuJG1hdGVyaWFsLWNvbG9yLWJsdWUtNzAwOiAjMTk3NmQyO1xuJG1hdGVyaWFsLWNvbG9yLWJsdWUtODAwOiAjMTU2NWMwO1xuJG1hdGVyaWFsLWNvbG9yLWJsdWUtOTAwOiAjMGQ0N2ExO1xuJG1hdGVyaWFsLWNvbG9yLWJsdWUtYTEwMDogIzgyYjFmZjtcbiRtYXRlcmlhbC1jb2xvci1ibHVlLWEyMDA6ICM0NDhhZmY7XG4kbWF0ZXJpYWwtY29sb3ItYmx1ZS1hNDAwOiAjMjk3OWZmO1xuJG1hdGVyaWFsLWNvbG9yLWJsdWUtYTcwMDogIzI5NjJmZjtcblxuJG1hdGVyaWFsLWNvbG9yLWxpZ2h0LWJsdWUtNTA6ICNlMWY1ZmU7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS0xMDA6ICNiM2U1ZmM7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS0yMDA6ICM4MWQ0ZmE7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS0zMDA6ICM0ZmMzZjc7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS00MDA6ICMyOWI2ZjY7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS01MDA6ICMwM2E5ZjQ7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS02MDA6ICMwMzliZTU7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS03MDA6ICMwMjg4ZDE7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS04MDA6ICMwMjc3YmQ7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS05MDA6ICMwMTU3OWI7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS1hMTAwOiAjODBkOGZmO1xuJG1hdGVyaWFsLWNvbG9yLWxpZ2h0LWJsdWUtYTIwMDogIzQwYzRmZjtcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ibHVlLWE0MDA6ICMwMGIwZmY7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS1hNzAwOiAjMDA5MWVhO1xuXG4kbWF0ZXJpYWwtY29sb3ItY3lhbi01MDogI2UwZjdmYTtcbiRtYXRlcmlhbC1jb2xvci1jeWFuLTEwMDogI2IyZWJmMjtcbiRtYXRlcmlhbC1jb2xvci1jeWFuLTIwMDogIzgwZGVlYTtcbiRtYXRlcmlhbC1jb2xvci1jeWFuLTMwMDogIzRkZDBlMTtcbiRtYXRlcmlhbC1jb2xvci1jeWFuLTQwMDogIzI2YzZkYTtcbiRtYXRlcmlhbC1jb2xvci1jeWFuLTUwMDogIzAwYmNkNDtcbiRtYXRlcmlhbC1jb2xvci1jeWFuLTYwMDogIzAwYWNjMTtcbiRtYXRlcmlhbC1jb2xvci1jeWFuLTcwMDogIzAwOTdhNztcbiRtYXRlcmlhbC1jb2xvci1jeWFuLTgwMDogIzAwODM4ZjtcbiRtYXRlcmlhbC1jb2xvci1jeWFuLTkwMDogIzAwNjA2NDtcbiRtYXRlcmlhbC1jb2xvci1jeWFuLWExMDA6ICM4NGZmZmY7XG4kbWF0ZXJpYWwtY29sb3ItY3lhbi1hMjAwOiAjMThmZmZmO1xuJG1hdGVyaWFsLWNvbG9yLWN5YW4tYTQwMDogIzAwZTVmZjtcbiRtYXRlcmlhbC1jb2xvci1jeWFuLWE3MDA6ICMwMGI4ZDQ7XG5cbiRtYXRlcmlhbC1jb2xvci10ZWFsLTUwOiAjZTBmMmYxO1xuJG1hdGVyaWFsLWNvbG9yLXRlYWwtMTAwOiAjYjJkZmRiO1xuJG1hdGVyaWFsLWNvbG9yLXRlYWwtMjAwOiAjODBjYmM0O1xuJG1hdGVyaWFsLWNvbG9yLXRlYWwtMzAwOiAjNGRiNmFjO1xuJG1hdGVyaWFsLWNvbG9yLXRlYWwtNDAwOiAjMjZhNjlhO1xuJG1hdGVyaWFsLWNvbG9yLXRlYWwtNTAwOiAjMDA5Njg4O1xuJG1hdGVyaWFsLWNvbG9yLXRlYWwtNjAwOiAjMDA4OTdiO1xuJG1hdGVyaWFsLWNvbG9yLXRlYWwtNzAwOiAjMDA3OTZiO1xuJG1hdGVyaWFsLWNvbG9yLXRlYWwtODAwOiAjMDA2OTVjO1xuJG1hdGVyaWFsLWNvbG9yLXRlYWwtOTAwOiAjMDA0ZDQwO1xuJG1hdGVyaWFsLWNvbG9yLXRlYWwtYTEwMDogI2E3ZmZlYjtcbiRtYXRlcmlhbC1jb2xvci10ZWFsLWEyMDA6ICM2NGZmZGE7XG4kbWF0ZXJpYWwtY29sb3ItdGVhbC1hNDAwOiAjMWRlOWI2O1xuJG1hdGVyaWFsLWNvbG9yLXRlYWwtYTcwMDogIzAwYmZhNTtcblxuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLTUwOiAjZThmNWU5O1xuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLTEwMDogI2M4ZTZjOTtcbiRtYXRlcmlhbC1jb2xvci1ncmVlbi0yMDA6ICNhNWQ2YTc7XG4kbWF0ZXJpYWwtY29sb3ItZ3JlZW4tMzAwOiAjODFjNzg0O1xuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLTQwMDogIzY2YmI2YTtcbiRtYXRlcmlhbC1jb2xvci1ncmVlbi01MDA6ICM0Y2FmNTA7XG4kbWF0ZXJpYWwtY29sb3ItZ3JlZW4tNjAwOiAjNDNhMDQ3O1xuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLTcwMDogIzM4OGUzYztcbiRtYXRlcmlhbC1jb2xvci1ncmVlbi04MDA6ICMyZTdkMzI7XG4kbWF0ZXJpYWwtY29sb3ItZ3JlZW4tOTAwOiAjMWI1ZTIwO1xuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLWExMDA6ICNiOWY2Y2E7XG4kbWF0ZXJpYWwtY29sb3ItZ3JlZW4tYTIwMDogIzY5ZjBhZTtcbiRtYXRlcmlhbC1jb2xvci1ncmVlbi1hNDAwOiAjMDBlNjc2O1xuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLWE3MDA6ICMwMGM4NTM7XG5cbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi01MDogI2YxZjhlOTtcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi0xMDA6ICNkY2VkYzg7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtZ3JlZW4tMjAwOiAjYzVlMWE1O1xuJG1hdGVyaWFsLWNvbG9yLWxpZ2h0LWdyZWVuLTMwMDogI2FlZDU4MTtcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi00MDA6ICM5Y2NjNjU7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtZ3JlZW4tNTAwOiAjOGJjMzRhO1xuJG1hdGVyaWFsLWNvbG9yLWxpZ2h0LWdyZWVuLTYwMDogIzdjYjM0MjtcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi03MDA6ICM2ODlmMzg7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtZ3JlZW4tODAwOiAjNTU4YjJmO1xuJG1hdGVyaWFsLWNvbG9yLWxpZ2h0LWdyZWVuLTkwMDogIzMzNjkxZTtcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi1hMTAwOiAjY2NmZjkwO1xuJG1hdGVyaWFsLWNvbG9yLWxpZ2h0LWdyZWVuLWEyMDA6ICNiMmZmNTk7XG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtZ3JlZW4tYTQwMDogIzc2ZmYwMztcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi1hNzAwOiAjNjRkZDE3O1xuXG4kbWF0ZXJpYWwtY29sb3ItbGltZS01MDogI2Y5ZmJlNztcbiRtYXRlcmlhbC1jb2xvci1saW1lLTEwMDogI2YwZjRjMztcbiRtYXRlcmlhbC1jb2xvci1saW1lLTIwMDogI2U2ZWU5YztcbiRtYXRlcmlhbC1jb2xvci1saW1lLTMwMDogI2RjZTc3NTtcbiRtYXRlcmlhbC1jb2xvci1saW1lLTQwMDogI2Q0ZTE1NztcbiRtYXRlcmlhbC1jb2xvci1saW1lLTUwMDogI2NkZGMzOTtcbiRtYXRlcmlhbC1jb2xvci1saW1lLTYwMDogI2MwY2EzMztcbiRtYXRlcmlhbC1jb2xvci1saW1lLTcwMDogI2FmYjQyYjtcbiRtYXRlcmlhbC1jb2xvci1saW1lLTgwMDogIzllOWQyNDtcbiRtYXRlcmlhbC1jb2xvci1saW1lLTkwMDogIzgyNzcxNztcbiRtYXRlcmlhbC1jb2xvci1saW1lLWExMDA6ICNmNGZmODE7XG4kbWF0ZXJpYWwtY29sb3ItbGltZS1hMjAwOiAjZWVmZjQxO1xuJG1hdGVyaWFsLWNvbG9yLWxpbWUtYTQwMDogI2M2ZmYwMDtcbiRtYXRlcmlhbC1jb2xvci1saW1lLWE3MDA6ICNhZWVhMDA7XG5cbiRtYXRlcmlhbC1jb2xvci15ZWxsb3ctNTA6ICNmZmZkZTc7XG4kbWF0ZXJpYWwtY29sb3IteWVsbG93LTEwMDogI2ZmZjljNDtcbiRtYXRlcmlhbC1jb2xvci15ZWxsb3ctMjAwOiAjZmZmNTlkO1xuJG1hdGVyaWFsLWNvbG9yLXllbGxvdy0zMDA6ICNmZmYxNzY7XG4kbWF0ZXJpYWwtY29sb3IteWVsbG93LTQwMDogI2ZmZWU1ODtcbiRtYXRlcmlhbC1jb2xvci15ZWxsb3ctNTAwOiAjZmZlYjNiO1xuJG1hdGVyaWFsLWNvbG9yLXllbGxvdy02MDA6ICNmZGQ4MzU7XG4kbWF0ZXJpYWwtY29sb3IteWVsbG93LTcwMDogI2ZiYzAyZDtcbiRtYXRlcmlhbC1jb2xvci15ZWxsb3ctODAwOiAjZjlhODI1O1xuJG1hdGVyaWFsLWNvbG9yLXllbGxvdy05MDA6ICNmNTdmMTc7XG4kbWF0ZXJpYWwtY29sb3IteWVsbG93LWExMDA6ICNmZmZmOGQ7XG4kbWF0ZXJpYWwtY29sb3IteWVsbG93LWEyMDA6ICNmZjA7XG4kbWF0ZXJpYWwtY29sb3IteWVsbG93LWE0MDA6ICNmZmVhMDA7XG4kbWF0ZXJpYWwtY29sb3IteWVsbG93LWE3MDA6ICNmZmQ2MDA7XG5cbiRtYXRlcmlhbC1jb2xvci1hbWJlci01MDogI2ZmZjhlMTtcbiRtYXRlcmlhbC1jb2xvci1hbWJlci0xMDA6ICNmZmVjYjM7XG4kbWF0ZXJpYWwtY29sb3ItYW1iZXItMjAwOiAjZmZlMDgyO1xuJG1hdGVyaWFsLWNvbG9yLWFtYmVyLTMwMDogI2ZmZDU0ZjtcbiRtYXRlcmlhbC1jb2xvci1hbWJlci00MDA6ICNmZmNhMjg7XG4kbWF0ZXJpYWwtY29sb3ItYW1iZXItNTAwOiAjZmZjMTA3O1xuJG1hdGVyaWFsLWNvbG9yLWFtYmVyLTYwMDogI2ZmYjMwMDtcbiRtYXRlcmlhbC1jb2xvci1hbWJlci03MDA6ICNmZmEwMDA7XG4kbWF0ZXJpYWwtY29sb3ItYW1iZXItODAwOiAjZmY4ZjAwO1xuJG1hdGVyaWFsLWNvbG9yLWFtYmVyLTkwMDogI2ZmNmYwMDtcbiRtYXRlcmlhbC1jb2xvci1hbWJlci1hMTAwOiAjZmZlNTdmO1xuJG1hdGVyaWFsLWNvbG9yLWFtYmVyLWEyMDA6ICNmZmQ3NDA7XG4kbWF0ZXJpYWwtY29sb3ItYW1iZXItYTQwMDogI2ZmYzQwMDtcbiRtYXRlcmlhbC1jb2xvci1hbWJlci1hNzAwOiAjZmZhYjAwO1xuXG4kbWF0ZXJpYWwtY29sb3Itb3JhbmdlLTUwOiAjZmZmM2UwO1xuJG1hdGVyaWFsLWNvbG9yLW9yYW5nZS0xMDA6ICNmZmUwYjI7XG4kbWF0ZXJpYWwtY29sb3Itb3JhbmdlLTIwMDogI2ZmY2M4MDtcbiRtYXRlcmlhbC1jb2xvci1vcmFuZ2UtMzAwOiAjZmZiNzRkO1xuJG1hdGVyaWFsLWNvbG9yLW9yYW5nZS00MDA6ICNmZmE3MjY7XG4kbWF0ZXJpYWwtY29sb3Itb3JhbmdlLTUwMDogI2ZmOTgwMDtcbiRtYXRlcmlhbC1jb2xvci1vcmFuZ2UtNjAwOiAjZmI4YzAwO1xuJG1hdGVyaWFsLWNvbG9yLW9yYW5nZS03MDA6ICNmNTdjMDA7XG4kbWF0ZXJpYWwtY29sb3Itb3JhbmdlLTgwMDogI2VmNmMwMDtcbiRtYXRlcmlhbC1jb2xvci1vcmFuZ2UtOTAwOiAjZTY1MTAwO1xuJG1hdGVyaWFsLWNvbG9yLW9yYW5nZS1hMTAwOiAjZmZkMTgwO1xuJG1hdGVyaWFsLWNvbG9yLW9yYW5nZS1hMjAwOiAjZmZhYjQwO1xuJG1hdGVyaWFsLWNvbG9yLW9yYW5nZS1hNDAwOiAjZmY5MTAwO1xuJG1hdGVyaWFsLWNvbG9yLW9yYW5nZS1hNzAwOiAjZmY2ZDAwO1xuXG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtNTA6ICNmYmU5ZTc7XG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtMTAwOiAjZmZjY2JjO1xuJG1hdGVyaWFsLWNvbG9yLWRlZXAtb3JhbmdlLTIwMDogI2ZmYWI5MTtcbiRtYXRlcmlhbC1jb2xvci1kZWVwLW9yYW5nZS0zMDA6ICNmZjhhNjU7XG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtNDAwOiAjZmY3MDQzO1xuJG1hdGVyaWFsLWNvbG9yLWRlZXAtb3JhbmdlLTUwMDogI2ZmNTcyMjtcbiRtYXRlcmlhbC1jb2xvci1kZWVwLW9yYW5nZS02MDA6ICNmNDUxMWU7XG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtNzAwOiAjZTY0YTE5O1xuJG1hdGVyaWFsLWNvbG9yLWRlZXAtb3JhbmdlLTgwMDogI2Q4NDMxNTtcbiRtYXRlcmlhbC1jb2xvci1kZWVwLW9yYW5nZS05MDA6ICNiZjM2MGM7XG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtYTEwMDogI2ZmOWU4MDtcbiRtYXRlcmlhbC1jb2xvci1kZWVwLW9yYW5nZS1hMjAwOiAjZmY2ZTQwO1xuJG1hdGVyaWFsLWNvbG9yLWRlZXAtb3JhbmdlLWE0MDA6ICNmZjNkMDA7XG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtYTcwMDogI2RkMmMwMDtcblxuJG1hdGVyaWFsLWNvbG9yLWJyb3duLTUwOiAjZWZlYmU5O1xuJG1hdGVyaWFsLWNvbG9yLWJyb3duLTEwMDogI2Q3Y2NjODtcbiRtYXRlcmlhbC1jb2xvci1icm93bi0yMDA6ICNiY2FhYTQ7XG4kbWF0ZXJpYWwtY29sb3ItYnJvd24tMzAwOiAjYTE4ODdmO1xuJG1hdGVyaWFsLWNvbG9yLWJyb3duLTQwMDogIzhkNmU2MztcbiRtYXRlcmlhbC1jb2xvci1icm93bi01MDA6ICM3OTU1NDg7XG4kbWF0ZXJpYWwtY29sb3ItYnJvd24tNjAwOiAjNmQ0YzQxO1xuJG1hdGVyaWFsLWNvbG9yLWJyb3duLTcwMDogIzVkNDAzNztcbiRtYXRlcmlhbC1jb2xvci1icm93bi04MDA6ICM0ZTM0MmU7XG4kbWF0ZXJpYWwtY29sb3ItYnJvd24tOTAwOiAjM2UyNzIzO1xuXG4kbWF0ZXJpYWwtY29sb3ItZ3JleS01MDogI2ZhZmFmYTtcbiRtYXRlcmlhbC1jb2xvci1ncmV5LTEwMDogI2Y1ZjVmNTtcbiRtYXRlcmlhbC1jb2xvci1ncmV5LTIwMDogI2VlZTtcbiRtYXRlcmlhbC1jb2xvci1ncmV5LTMwMDogI2UwZTBlMDtcbiRtYXRlcmlhbC1jb2xvci1ncmV5LTQwMDogI2JkYmRiZDtcbiRtYXRlcmlhbC1jb2xvci1ncmV5LTUwMDogIzllOWU5ZTtcbiRtYXRlcmlhbC1jb2xvci1ncmV5LTYwMDogIzc1NzU3NTtcbiRtYXRlcmlhbC1jb2xvci1ncmV5LTcwMDogIzYxNjE2MTtcbiRtYXRlcmlhbC1jb2xvci1ncmV5LTgwMDogIzQyNDI0MjtcbiRtYXRlcmlhbC1jb2xvci1ncmV5LTkwMDogIzIxMjEyMTtcblxuJG1hdGVyaWFsLWNvbG9yLWJsdWUtZ3JleS01MDogI2VjZWZmMTtcbiRtYXRlcmlhbC1jb2xvci1ibHVlLWdyZXktMTAwOiAjY2ZkOGRjO1xuJG1hdGVyaWFsLWNvbG9yLWJsdWUtZ3JleS0yMDA6ICNiMGJlYzU7XG4kbWF0ZXJpYWwtY29sb3ItYmx1ZS1ncmV5LTMwMDogIzkwYTRhZTtcbiRtYXRlcmlhbC1jb2xvci1ibHVlLWdyZXktNDAwOiAjNzg5MDljO1xuJG1hdGVyaWFsLWNvbG9yLWJsdWUtZ3JleS01MDA6ICM2MDdkOGI7XG4kbWF0ZXJpYWwtY29sb3ItYmx1ZS1ncmV5LTYwMDogIzU0NmU3YTtcbiRtYXRlcmlhbC1jb2xvci1ibHVlLWdyZXktNzAwOiAjNDU1YTY0O1xuJG1hdGVyaWFsLWNvbG9yLWJsdWUtZ3JleS04MDA6ICMzNzQ3NGY7XG4kbWF0ZXJpYWwtY29sb3ItYmx1ZS1ncmV5LTkwMDogIzI2MzIzODtcbiJdfQ== */"
/***/ }),
/***/ "./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 tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
var AppComponent = /** @class */ (function () {
function AppComponent() {
this.title = 'product-offering';
// @ViewChild("scrollViewport") scrollViewport: MdcTabBar;
this.tabs = [
{ label: 'Search', icon: 'search' },
{ label: 'Brands', icon: 'domain' },
{ label: 'Categories', icon: 'storage' },
{ label: 'Settings', icon: 'settings' }
];
// activateTab(index: number) {
// this.scrollViewport.activateTab(index);
// }
}
AppComponent.prototype.ngOnInit = function () {
window.disableTopbarScroll();
};
AppComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-root',
template: __webpack_require__(/*! ./app.component.html */ "./src/app/app.component.html"),
styles: [__webpack_require__(/*! ./app.component.scss */ "./src/app/app.component.scss")]
})
], AppComponent);
return AppComponent;
}());
/***/ }),
/***/ "./src/app/app.module.ts":
/*!*******************************!*\
!*** ./src/app/app.module.ts ***!
\*******************************/
/*! exports provided: AppModule */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppModule", function() { return AppModule; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.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");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
/* harmony import */ var _app_routing_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./app-routing.module */ "./src/app/app-routing.module.ts");
/* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./app.component */ "./src/app/app.component.ts");
/* harmony import */ var _product_list_product_list_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./product-list/product-list.component */ "./src/app/product-list/product-list.component.ts");
/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/fesm5/http.js");
/* harmony import */ var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/platform-browser/animations */ "./node_modules/@angular/platform-browser/fesm5/animations.js");
/* harmony import */ var _angular_cdk_scrolling__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/cdk/scrolling */ "./node_modules/@angular/cdk/esm5/scrolling.es5.js");
/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js");
/* harmony import */ var _angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular-mdc/web */ "./node_modules/@angular-mdc/web/esm5/web.es5.js");
/* harmony import */ var _angular_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @angular/material */ "./node_modules/@angular/material/esm5/material.es5.js");
/* harmony import */ var _brand_list_brand_list_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./brand-list/brand-list.component */ "./src/app/brand-list/brand-list.component.ts");
/* harmony import */ var _category_list_category_list_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./category-list/category-list.component */ "./src/app/category-list/category-list.component.ts");
/* harmony import */ var _product_filter_product_filter_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./product-filter/product-filter.component */ "./src/app/product-filter/product-filter.component.ts");
/* harmony import */ var _delayed_image_delayed_image_component__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./delayed-image/delayed-image.component */ "./src/app/delayed-image/delayed-image.component.ts");
/* harmony import */ var _app_settings_app_settings_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./app-settings/app-settings.component */ "./src/app/app-settings/app-settings.component.ts");
/* harmony import */ var _help_help_component__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./help/help.component */ "./src/app/help/help.component.ts");
/* harmony import */ var _image_viewer_image_viewer_component__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./image-viewer/image-viewer.component */ "./src/app/image-viewer/image-viewer.component.ts");
var AppModule = /** @class */ (function () {
function AppModule() {
}
AppModule = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_2__["NgModule"])({
declarations: [
_app_component__WEBPACK_IMPORTED_MODULE_4__["AppComponent"],
_product_list_product_list_component__WEBPACK_IMPORTED_MODULE_5__["ProductListComponent"],
_brand_list_brand_list_component__WEBPACK_IMPORTED_MODULE_12__["BrandListComponent"],
_category_list_category_list_component__WEBPACK_IMPORTED_MODULE_13__["CategoryListComponent"],
_product_filter_product_filter_component__WEBPACK_IMPORTED_MODULE_14__["ProductFilterComponent"],
_delayed_image_delayed_image_component__WEBPACK_IMPORTED_MODULE_15__["DelayedImageComponent"],
_app_settings_app_settings_component__WEBPACK_IMPORTED_MODULE_16__["AppSettingsComponent"],
_help_help_component__WEBPACK_IMPORTED_MODULE_17__["HelpComponent"],
_image_viewer_image_viewer_component__WEBPACK_IMPORTED_MODULE_18__["ImageViewerComponent"]
],
imports: [
_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__["BrowserModule"],
_app_routing_module__WEBPACK_IMPORTED_MODULE_3__["AppRoutingModule"],
_angular_common_http__WEBPACK_IMPORTED_MODULE_6__["HttpClientModule"],
_angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_7__["BrowserAnimationsModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatAutocompleteModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatBadgeModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatButtonModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatButtonToggleModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatCardModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatCheckboxModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatChipsModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatDatepickerModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatDialogModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatDividerModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatExpansionModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatGridListModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatIconModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatInputModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatListModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatMenuModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatNativeDateModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatPaginatorModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatProgressBarModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatProgressSpinnerModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatRadioModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatRippleModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatSelectModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatSidenavModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatSliderModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatSlideToggleModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatSnackBarModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatSortModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatStepperModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatTableModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatTabsModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatToolbarModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatTooltipModule"],
_angular_material__WEBPACK_IMPORTED_MODULE_11__["MatTreeModule"],
_angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__["MdcTopAppBarModule"],
_angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__["MdcTabBarModule"],
_angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__["MdcIconModule"],
_angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__["MdcMenuModule"],
_angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__["MdcListModule"],
_angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__["MdcDrawerModule"],
_angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__["MdcLinearProgressModule"],
_angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__["MdcTextFieldModule"],
_angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__["MdcImageListModule"],
_angular_cdk_scrolling__WEBPACK_IMPORTED_MODULE_8__["ScrollDispatchModule"],
_angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__["MdcCardModule"],
_angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__["MdcRippleModule"],
_angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__["MdcSwitchModule"],
_angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__["MdcSliderModule"],
_angular_mdc_web__WEBPACK_IMPORTED_MODULE_10__["MdcFabModule"],
_angular_forms__WEBPACK_IMPORTED_MODULE_9__["FormsModule"],
_angular_forms__WEBPACK_IMPORTED_MODULE_9__["ReactiveFormsModule"]
],
entryComponents: [
_image_viewer_image_viewer_component__WEBPACK_IMPORTED_MODULE_18__["ImageViewerComponent"]
],
providers: [],
bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_4__["AppComponent"]]
})
], AppModule);
return AppModule;
}());
/***/ }),
/***/ "./src/app/brand-list/brand-list.component.html":
/*!******************************************************!*\
!*** ./src/app/brand-list/brand-list.component.html ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = "\r\n \r\n \r\n \r\n {{brand.Name}} \r\n \r\n \r\n "
/***/ }),
/***/ "./src/app/brand-list/brand-list.component.scss":
/*!******************************************************!*\
!*** ./src/app/brand-list/brand-list.component.scss ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = ".mdc-button {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 2.25rem;\n font-weight: 500;\n letter-spacing: 0.08928571em;\n text-decoration: none;\n text-transform: uppercase;\n padding: 0 8px 0 8px;\n display: inline-flex;\n position: relative;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 64px;\n height: 36px;\n border: none;\n outline: none;\n /* @alternate */\n line-height: inherit;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-appearance: none;\n overflow: hidden;\n vertical-align: middle;\n border-radius: 4px; }\n .mdc-button::-moz-focus-inner {\n padding: 0;\n border: 0; }\n .mdc-button:active {\n outline: none; }\n .mdc-button:hover {\n cursor: pointer; }\n .mdc-button:disabled {\n background-color: transparent;\n color: rgba(0, 0, 0, 0.37);\n cursor: default;\n pointer-events: none; }\n .mdc-button.mdc-button--dense {\n border-radius: 4px; }\n .mdc-button:not(:disabled) {\n background-color: transparent; }\n .mdc-button .mdc-button__icon {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 8px;\n display: inline-block;\n width: 18px;\n height: 18px;\n font-size: 18px;\n vertical-align: top; }\n [dir=\"rtl\"] .mdc-button .mdc-button__icon, .mdc-button .mdc-button__icon[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: 0; }\n .mdc-button:not(:disabled) {\n color: #6200ee;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee); }\n .mdc-button__label + .mdc-button__icon {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .mdc-button__label + .mdc-button__icon, .mdc-button__label + .mdc-button__icon[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 8px; }\n svg.mdc-button__icon {\n fill: currentColor; }\n .mdc-button--raised .mdc-button__icon,\n.mdc-button--unelevated .mdc-button__icon,\n.mdc-button--outlined .mdc-button__icon {\n /* @noflip */\n margin-left: -4px;\n /* @noflip */\n margin-right: 8px; }\n [dir=\"rtl\"] .mdc-button--raised .mdc-button__icon, .mdc-button--raised .mdc-button__icon[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-button--unelevated .mdc-button__icon,\n .mdc-button--unelevated .mdc-button__icon[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-button--outlined .mdc-button__icon,\n .mdc-button--outlined .mdc-button__icon[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: -4px; }\n .mdc-button--raised .mdc-button__label + .mdc-button__icon,\n.mdc-button--unelevated .mdc-button__label + .mdc-button__icon,\n.mdc-button--outlined .mdc-button__label + .mdc-button__icon {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: -4px; }\n [dir=\"rtl\"] .mdc-button--raised .mdc-button__label + .mdc-button__icon, .mdc-button--raised .mdc-button__label + .mdc-button__icon[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-button--unelevated .mdc-button__label + .mdc-button__icon,\n .mdc-button--unelevated .mdc-button__label + .mdc-button__icon[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-button--outlined .mdc-button__label + .mdc-button__icon,\n .mdc-button--outlined .mdc-button__label + .mdc-button__icon[dir=\"rtl\"] {\n /* @noflip */\n margin-left: -4px;\n /* @noflip */\n margin-right: 8px; }\n .mdc-button--raised,\n.mdc-button--unelevated {\n padding: 0 16px 0 16px; }\n .mdc-button--raised:disabled,\n .mdc-button--unelevated:disabled {\n background-color: rgba(0, 0, 0, 0.12);\n color: rgba(0, 0, 0, 0.37); }\n .mdc-button--raised:not(:disabled),\n .mdc-button--unelevated:not(:disabled) {\n background-color: #6200ee; }\n @supports not (-ms-ime-align: auto) {\n .mdc-button--raised:not(:disabled),\n .mdc-button--unelevated:not(:disabled) {\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); } }\n .mdc-button--raised:not(:disabled),\n .mdc-button--unelevated:not(:disabled) {\n color: #fff;\n /* @alternate */\n color: var(--mdc-theme-on-primary, #fff); }\n .mdc-button--raised {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-button--raised:hover, .mdc-button--raised:focus {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12); }\n .mdc-button--raised:active {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); }\n .mdc-button--raised:disabled {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12); }\n .mdc-button--outlined {\n border-style: solid;\n padding: 0 14px 0 14px;\n border-width: 2px; }\n .mdc-button--outlined:disabled {\n border-color: rgba(0, 0, 0, 0.37); }\n .mdc-button--outlined:not(:disabled) {\n border-color: #6200ee;\n /* @alternate */\n border-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-button--dense {\n height: 32px;\n font-size: .8125rem; }\n @-webkit-keyframes mdc-ripple-fg-radius-in {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);\n transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1); }\n to {\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); } }\n @keyframes mdc-ripple-fg-radius-in {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);\n transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1); }\n to {\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); } }\n @-webkit-keyframes mdc-ripple-fg-opacity-in {\n from {\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear;\n opacity: 0; }\n to {\n opacity: var(--mdc-ripple-fg-opacity, 0); } }\n @keyframes mdc-ripple-fg-opacity-in {\n from {\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear;\n opacity: 0; }\n to {\n opacity: var(--mdc-ripple-fg-opacity, 0); } }\n @-webkit-keyframes mdc-ripple-fg-opacity-out {\n from {\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear;\n opacity: var(--mdc-ripple-fg-opacity, 0); }\n to {\n opacity: 0; } }\n @keyframes mdc-ripple-fg-opacity-out {\n from {\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear;\n opacity: var(--mdc-ripple-fg-opacity, 0); }\n to {\n opacity: 0; } }\n .mdc-ripple-surface--test-edge-var-bug {\n --mdc-ripple-surface-test-edge-var: 1px solid #000;\n visibility: hidden; }\n .mdc-ripple-surface--test-edge-var-bug::before {\n border: var(--mdc-ripple-surface-test-edge-var); }\n .mdc-button {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n .mdc-button::before, .mdc-button::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-button::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-button.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-button.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-button.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-button.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-button.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-button::before, .mdc-button::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-button.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-button::before, .mdc-button::after {\n background-color: #6200ee; }\n @supports not (-ms-ime-align: auto) {\n .mdc-button::before, .mdc-button::after {\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); } }\n .mdc-button:hover::before {\n opacity: 0.04; }\n .mdc-button:not(.mdc-ripple-upgraded):focus::before, .mdc-button.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-button:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-button:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-button.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-button--raised::before, .mdc-button--raised::after,\n.mdc-button--unelevated::before,\n.mdc-button--unelevated::after {\n background-color: #fff; }\n @supports not (-ms-ime-align: auto) {\n .mdc-button--raised::before, .mdc-button--raised::after,\n .mdc-button--unelevated::before,\n .mdc-button--unelevated::after {\n /* @alternate */\n background-color: var(--mdc-theme-on-primary, #fff); } }\n .mdc-button--raised:hover::before,\n.mdc-button--unelevated:hover::before {\n opacity: 0.08; }\n .mdc-button--raised:not(.mdc-ripple-upgraded):focus::before, .mdc-button--raised.mdc-ripple-upgraded--background-focused::before,\n.mdc-button--unelevated:not(.mdc-ripple-upgraded):focus::before,\n.mdc-button--unelevated.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-button--raised:not(.mdc-ripple-upgraded)::after,\n.mdc-button--unelevated:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-button--raised:not(.mdc-ripple-upgraded):active::after,\n.mdc-button--unelevated:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-button--raised.mdc-ripple-upgraded,\n.mdc-button--unelevated.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .mdc-card {\n border-radius: 4px;\n background-color: #fff;\n /* @alternate */\n background-color: var(--mdc-theme-surface, #fff);\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n display: flex;\n flex-direction: column;\n box-sizing: border-box; }\n .mdc-card--outlined {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\n border-width: 1px;\n border-style: solid;\n border-color: #e0e0e0; }\n .mdc-card__media {\n position: relative;\n box-sizing: border-box;\n background-repeat: no-repeat;\n background-position: center;\n background-size: cover; }\n .mdc-card__media::before {\n display: block;\n content: \"\"; }\n .mdc-card__media:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit; }\n .mdc-card__media:last-child {\n border-bottom-left-radius: inherit;\n border-bottom-right-radius: inherit; }\n .mdc-card__media--square::before {\n margin-top: 100%; }\n .mdc-card__media--16-9::before {\n margin-top: 56.25%; }\n .mdc-card__media-content {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-sizing: border-box; }\n .mdc-card__primary-action {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n position: relative;\n outline: none;\n color: inherit;\n text-decoration: none;\n cursor: pointer;\n overflow: hidden; }\n .mdc-card__primary-action:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit; }\n .mdc-card__primary-action:last-child {\n border-bottom-left-radius: inherit;\n border-bottom-right-radius: inherit; }\n .mdc-card__actions {\n display: flex;\n flex-direction: row;\n align-items: center;\n box-sizing: border-box;\n min-height: 52px;\n padding: 8px; }\n .mdc-card__actions--full-bleed {\n padding: 0; }\n .mdc-card__action-buttons,\n.mdc-card__action-icons {\n display: flex;\n flex-direction: row;\n align-items: center;\n box-sizing: border-box; }\n .mdc-card__action-icons {\n color: rgba(0, 0, 0, 0.6);\n flex-grow: 1;\n justify-content: flex-end; }\n .mdc-card__action-buttons + .mdc-card__action-icons {\n /* @noflip */\n margin-left: 16px;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .mdc-card__action-buttons + .mdc-card__action-icons, .mdc-card__action-buttons + .mdc-card__action-icons[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 16px; }\n .mdc-card__action {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n box-sizing: border-box;\n justify-content: center;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .mdc-card__action:focus {\n outline: none; }\n .mdc-card__action--button {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 8px;\n padding: 0 8px; }\n [dir=\"rtl\"] .mdc-card__action--button, .mdc-card__action--button[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: 0; }\n .mdc-card__action--button:last-child {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .mdc-card__action--button:last-child, .mdc-card__action--button:last-child[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 0; }\n .mdc-card__actions--full-bleed .mdc-card__action--button {\n justify-content: space-between;\n width: 100%;\n height: auto;\n max-height: none;\n margin: 0;\n padding: 8px 16px;\n /* @noflip */\n text-align: left; }\n [dir=\"rtl\"] .mdc-card__actions--full-bleed .mdc-card__action--button, .mdc-card__actions--full-bleed .mdc-card__action--button[dir=\"rtl\"] {\n /* @noflip */\n text-align: right; }\n .mdc-card__action--icon {\n margin: -6px 0;\n padding: 12px; }\n .mdc-card__action--icon:not(:disabled) {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-card__primary-action {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n .mdc-card__primary-action::before, .mdc-card__primary-action::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-card__primary-action::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-card__primary-action.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-card__primary-action.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-card__primary-action.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-card__primary-action.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-card__primary-action.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-card__primary-action::before, .mdc-card__primary-action::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-card__primary-action.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-card__primary-action::before, .mdc-card__primary-action::after {\n background-color: #000; }\n .mdc-card__primary-action:hover::before {\n opacity: 0.04; }\n .mdc-card__primary-action:not(.mdc-ripple-upgraded):focus::before, .mdc-card__primary-action.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-card__primary-action:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-card__primary-action:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-card__primary-action.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n @-webkit-keyframes mdc-checkbox-unchecked-checked-checkmark-path {\n 0%,\n 50% {\n stroke-dashoffset: 29.7833385; }\n 50% {\n -webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1); }\n 100% {\n stroke-dashoffset: 0; } }\n @keyframes mdc-checkbox-unchecked-checked-checkmark-path {\n 0%,\n 50% {\n stroke-dashoffset: 29.7833385; }\n 50% {\n -webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1); }\n 100% {\n stroke-dashoffset: 0; } }\n @-webkit-keyframes mdc-checkbox-unchecked-indeterminate-mixedmark {\n 0%,\n 68.2% {\n -webkit-transform: scaleX(0);\n transform: scaleX(0); }\n 68.2% {\n -webkit-animation-timing-function: cubic-bezier(0, 0, 0, 1);\n animation-timing-function: cubic-bezier(0, 0, 0, 1); }\n 100% {\n -webkit-transform: scaleX(1);\n transform: scaleX(1); } }\n @keyframes mdc-checkbox-unchecked-indeterminate-mixedmark {\n 0%,\n 68.2% {\n -webkit-transform: scaleX(0);\n transform: scaleX(0); }\n 68.2% {\n -webkit-animation-timing-function: cubic-bezier(0, 0, 0, 1);\n animation-timing-function: cubic-bezier(0, 0, 0, 1); }\n 100% {\n -webkit-transform: scaleX(1);\n transform: scaleX(1); } }\n @-webkit-keyframes mdc-checkbox-checked-unchecked-checkmark-path {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0, 1, 1);\n animation-timing-function: cubic-bezier(0.4, 0, 1, 1);\n opacity: 1;\n stroke-dashoffset: 0; }\n to {\n opacity: 0;\n stroke-dashoffset: -29.7833385; } }\n @keyframes mdc-checkbox-checked-unchecked-checkmark-path {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0, 1, 1);\n animation-timing-function: cubic-bezier(0.4, 0, 1, 1);\n opacity: 1;\n stroke-dashoffset: 0; }\n to {\n opacity: 0;\n stroke-dashoffset: -29.7833385; } }\n @-webkit-keyframes mdc-checkbox-checked-indeterminate-checkmark {\n from {\n -webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n opacity: 1; }\n to {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0; } }\n @keyframes mdc-checkbox-checked-indeterminate-checkmark {\n from {\n -webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n opacity: 1; }\n to {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0; } }\n @-webkit-keyframes mdc-checkbox-indeterminate-checked-checkmark {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0; }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n opacity: 1; } }\n @keyframes mdc-checkbox-indeterminate-checked-checkmark {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0; }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n opacity: 1; } }\n @-webkit-keyframes mdc-checkbox-checked-indeterminate-mixedmark {\n from {\n -webkit-animation-timing-function: mdc-animation-deceleration-curve-timing-function;\n animation-timing-function: mdc-animation-deceleration-curve-timing-function;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n opacity: 0; }\n to {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n opacity: 1; } }\n @keyframes mdc-checkbox-checked-indeterminate-mixedmark {\n from {\n -webkit-animation-timing-function: mdc-animation-deceleration-curve-timing-function;\n animation-timing-function: mdc-animation-deceleration-curve-timing-function;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n opacity: 0; }\n to {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n opacity: 1; } }\n @-webkit-keyframes mdc-checkbox-indeterminate-checked-mixedmark {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n opacity: 1; }\n to {\n -webkit-transform: rotate(315deg);\n transform: rotate(315deg);\n opacity: 0; } }\n @keyframes mdc-checkbox-indeterminate-checked-mixedmark {\n from {\n -webkit-animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n opacity: 1; }\n to {\n -webkit-transform: rotate(315deg);\n transform: rotate(315deg);\n opacity: 0; } }\n @-webkit-keyframes mdc-checkbox-indeterminate-unchecked-mixedmark {\n 0% {\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear;\n -webkit-transform: scaleX(1);\n transform: scaleX(1);\n opacity: 1; }\n 32.8%,\n 100% {\n -webkit-transform: scaleX(0);\n transform: scaleX(0);\n opacity: 0; } }\n @keyframes mdc-checkbox-indeterminate-unchecked-mixedmark {\n 0% {\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear;\n -webkit-transform: scaleX(1);\n transform: scaleX(1);\n opacity: 1; }\n 32.8%,\n 100% {\n -webkit-transform: scaleX(0);\n transform: scaleX(0);\n opacity: 0; } }\n .mdc-checkbox {\n display: inline-block;\n position: relative;\n flex: 0 0 18px;\n box-sizing: content-box;\n width: 18px;\n height: 18px;\n padding: 11px;\n line-height: 0;\n white-space: nowrap;\n cursor: pointer;\n vertical-align: bottom; }\n .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate) ~ .mdc-checkbox__background {\n border-color: rgba(0, 0, 0, 0.54);\n background-color: transparent; }\n .mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background {\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786);\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); }\n @-webkit-keyframes mdc-checkbox-fade-in-background-0 {\n 0% {\n border-color: rgba(0, 0, 0, 0.54);\n background-color: transparent; }\n 50% {\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786);\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n @keyframes mdc-checkbox-fade-in-background-0 {\n 0% {\n border-color: rgba(0, 0, 0, 0.54);\n background-color: transparent; }\n 50% {\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786);\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n @-webkit-keyframes mdc-checkbox-fade-out-background-0 {\n 0%,\n 80% {\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786);\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); }\n 100% {\n border-color: rgba(0, 0, 0, 0.54);\n background-color: transparent; } }\n @keyframes mdc-checkbox-fade-out-background-0 {\n 0%,\n 80% {\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786);\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); }\n 100% {\n border-color: rgba(0, 0, 0, 0.54);\n background-color: transparent; } }\n .mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background, .mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background {\n -webkit-animation-name: mdc-checkbox-fade-in-background-0;\n animation-name: mdc-checkbox-fade-in-background-0; }\n .mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background, .mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background {\n -webkit-animation-name: mdc-checkbox-fade-out-background-0;\n animation-name: mdc-checkbox-fade-out-background-0; }\n .mdc-checkbox__checkmark {\n color: #fff; }\n .mdc-checkbox__mixedmark {\n border-color: #fff; }\n .mdc-checkbox__background::before {\n background-color: #018786; }\n @supports not (-ms-ime-align: auto) {\n .mdc-checkbox__background::before {\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n .mdc-checkbox__native-control:disabled:not(:checked):not(:indeterminate) ~ .mdc-checkbox__background {\n border-color: rgba(0, 0, 0, 0.26); }\n .mdc-checkbox__native-control:disabled:checked ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:disabled:indeterminate ~ .mdc-checkbox__background {\n border-color: transparent;\n background-color: rgba(0, 0, 0, 0.26); }\n @media screen and (-ms-high-contrast: active) {\n .mdc-checkbox__mixedmark {\n margin: 0 1px; } }\n .mdc-checkbox--disabled {\n cursor: default;\n pointer-events: none; }\n .mdc-checkbox__background {\n /* @noflip */\n left: 11px;\n /* @noflip */\n right: initial;\n display: inline-flex;\n position: absolute;\n top: 11px;\n bottom: 0;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 45%;\n height: 45%;\n border: 2px solid currentColor;\n border-radius: 2px;\n background-color: transparent;\n pointer-events: none;\n will-change: background-color, border-color;\n transition: background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-checkbox[dir=\"rtl\"] .mdc-checkbox__background,\n [dir=\"rtl\"] .mdc-checkbox .mdc-checkbox__background {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 11px; }\n .mdc-checkbox__checkmark {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n opacity: 0;\n transition: opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-checkbox--upgraded .mdc-checkbox__checkmark {\n opacity: 1; }\n .mdc-checkbox__checkmark-path {\n transition: stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n stroke: currentColor;\n stroke-width: 3.12px;\n stroke-dashoffset: 29.7833385;\n stroke-dasharray: 29.7833385; }\n .mdc-checkbox__mixedmark {\n width: 100%;\n height: 0;\n -webkit-transform: scaleX(0) rotate(0deg);\n transform: scaleX(0) rotate(0deg);\n border-width: 1px;\n border-style: solid;\n opacity: 0;\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-checkbox--upgraded .mdc-checkbox__background,\n.mdc-checkbox--upgraded .mdc-checkbox__checkmark,\n.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,\n.mdc-checkbox--upgraded .mdc-checkbox__mixedmark {\n transition: none !important; }\n .mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background, .mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background, .mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background, .mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background {\n -webkit-animation-duration: 180ms;\n animation-duration: 180ms;\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear; }\n .mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path {\n -webkit-animation: mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;\n animation: mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;\n transition: none; }\n .mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark {\n -webkit-animation: mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;\n animation: mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;\n transition: none; }\n .mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path {\n -webkit-animation: mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;\n animation: mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;\n transition: none; }\n .mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark {\n -webkit-animation: mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;\n animation: mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;\n transition: none; }\n .mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark {\n -webkit-animation: mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;\n animation: mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;\n transition: none; }\n .mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark {\n -webkit-animation: mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;\n animation: mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;\n transition: none; }\n .mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark {\n -webkit-animation: mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;\n animation: mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;\n transition: none; }\n .mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark {\n -webkit-animation: mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;\n animation: mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;\n transition: none; }\n .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {\n transition: border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1), background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background .mdc-checkbox__checkmark-path,\n .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background .mdc-checkbox__checkmark-path {\n stroke-dashoffset: 0; }\n .mdc-checkbox__background::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n -webkit-transform: scale(0, 0);\n transform: scale(0, 0);\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\";\n will-change: opacity, transform;\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-checkbox__native-control:focus ~ .mdc-checkbox__background::before {\n -webkit-transform: scale(2.75, 2.75);\n transform: scale(2.75, 2.75);\n opacity: 0.12;\n transition: opacity 80ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 80ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 80ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 80ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 80ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 80ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 80ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-checkbox__native-control {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n opacity: 0;\n cursor: inherit; }\n .mdc-checkbox__native-control:disabled {\n cursor: default;\n pointer-events: none; }\n .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background .mdc-checkbox__checkmark {\n transition: opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);\n opacity: 1; }\n .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background .mdc-checkbox__mixedmark {\n -webkit-transform: scaleX(1) rotate(-45deg);\n transform: scaleX(1) rotate(-45deg); }\n .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background .mdc-checkbox__checkmark {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n opacity: 0;\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background .mdc-checkbox__mixedmark {\n -webkit-transform: scaleX(1) rotate(0deg);\n transform: scaleX(1) rotate(0deg);\n opacity: 1; }\n .mdc-checkbox {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n .mdc-checkbox::before, .mdc-checkbox::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-checkbox::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-checkbox.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-checkbox.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-checkbox.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-checkbox.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-checkbox.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-checkbox::before, .mdc-checkbox::after {\n background-color: #018786; }\n @supports not (-ms-ime-align: auto) {\n .mdc-checkbox::before, .mdc-checkbox::after {\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n .mdc-checkbox:hover::before {\n opacity: 0.04; }\n .mdc-checkbox:not(.mdc-ripple-upgraded):focus::before, .mdc-checkbox.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-checkbox:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-checkbox:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-checkbox.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-checkbox::before, .mdc-checkbox::after {\n top: calc(50% - 50%);\n /* @noflip */\n left: calc(50% - 50%);\n width: 100%;\n height: 100%; }\n .mdc-checkbox.mdc-ripple-upgraded::before, .mdc-checkbox.mdc-ripple-upgraded::after {\n top: var(--mdc-ripple-top, calc(50% - 50%));\n /* @noflip */\n left: var(--mdc-ripple-left, calc(50% - 50%));\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-checkbox.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-ripple-upgraded--background-focused .mdc-checkbox__background::before {\n content: none; }\n .mdc-chip {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity;\n border-radius: 16px;\n background-color: #e0e0e0;\n color: rgba(0, 0, 0, 0.87);\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit;\n height: 32px;\n display: inline-flex;\n position: relative;\n align-items: center;\n box-sizing: border-box;\n padding: 7px 12px;\n outline: none;\n cursor: pointer;\n overflow: hidden; }\n .mdc-chip::before, .mdc-chip::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-chip::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-chip.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-chip.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-chip.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-chip.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-chip.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-chip::before, .mdc-chip::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-chip.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-chip::before, .mdc-chip::after {\n background-color: rgba(0, 0, 0, 0.87); }\n .mdc-chip:hover::before {\n opacity: 0.04; }\n .mdc-chip:not(.mdc-ripple-upgraded):focus::before, .mdc-chip.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-chip:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-chip:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-chip.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-chip:hover {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-chip.mdc-chip--selected .mdc-chip__checkmark,\n .mdc-chip .mdc-chip__icon--leading:not(.mdc-chip__icon--leading-hidden) {\n /* @noflip */\n margin-left: -4px;\n /* @noflip */\n margin-right: 4px;\n margin-top: -4px;\n margin-bottom: -4px; }\n [dir=\"rtl\"] .mdc-chip.mdc-chip--selected .mdc-chip__checkmark, .mdc-chip.mdc-chip--selected .mdc-chip__checkmark[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-chip .mdc-chip__icon--leading:not(.mdc-chip__icon--leading-hidden),\n .mdc-chip .mdc-chip__icon--leading:not(.mdc-chip__icon--leading-hidden)[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 4px;\n /* @noflip */\n margin-right: -4px; }\n .mdc-chip:hover {\n color: #000;\n /* @alternate */\n color: var(--mdc-theme-on-surface, #000); }\n .mdc-chip__icon--leading {\n color: rgba(0, 0, 0, 0.54); }\n .mdc-chip__icon--trailing {\n color: rgba(0, 0, 0, 0.54); }\n .mdc-chip__icon--trailing:hover {\n color: rgba(0, 0, 0, 0.62); }\n .mdc-chip__icon--trailing:focus {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-chip__icon.mdc-chip__icon--leading:not(.mdc-chip__icon--leading-hidden) {\n width: 20px;\n height: 20px;\n font-size: 20px; }\n .mdc-chip__icon.mdc-chip__icon--trailing {\n width: 18px;\n height: 18px;\n font-size: 18px; }\n .mdc-chip__icon--trailing {\n margin: 0 -4px 0 4px; }\n .mdc-chip--exit {\n transition: opacity 75ms cubic-bezier(0.4, 0, 0.2, 1), width 150ms cubic-bezier(0, 0, 0.2, 1), padding 100ms linear, margin 100ms linear;\n opacity: 0; }\n .mdc-chip__text {\n white-space: nowrap; }\n .mdc-chip__icon {\n border-radius: 50%;\n outline: none;\n vertical-align: middle; }\n .mdc-chip__checkmark {\n height: 20px; }\n .mdc-chip__checkmark-path {\n transition: stroke-dashoffset 150ms 50ms cubic-bezier(0.4, 0, 0.6, 1);\n stroke-width: 2px;\n stroke-dashoffset: 29.7833385;\n stroke-dasharray: 29.7833385; }\n .mdc-chip--selected .mdc-chip__checkmark-path {\n stroke-dashoffset: 0; }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected::before {\n opacity: 0.08; }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected::before, .mdc-chip-set--choice .mdc-chip.mdc-chip--selected::after {\n background-color: #6200ee; }\n @supports not (-ms-ime-align: auto) {\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected::before, .mdc-chip-set--choice .mdc-chip.mdc-chip--selected::after {\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); } }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected:hover::before {\n opacity: 0.12; }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected:not(.mdc-ripple-upgraded):focus::before, .mdc-chip-set--choice .mdc-chip.mdc-chip--selected.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.2; }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.2; }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.2; }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected {\n color: #6200ee;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee); }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected .mdc-chip__icon--leading {\n color: rgba(98, 0, 238, 0.54); }\n .mdc-chip-set--choice .mdc-chip.mdc-chip--selected:hover {\n color: #6200ee;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee); }\n .mdc-chip-set--choice .mdc-chip .mdc-chip__checkmark-path {\n stroke: #6200ee;\n /* @alternate */\n stroke: var(--mdc-theme-primary, #6200ee); }\n .mdc-chip-set--choice .mdc-chip--selected {\n background-color: #fff;\n /* @alternate */\n background-color: var(--mdc-theme-surface, #fff); }\n .mdc-chip__checkmark-svg {\n width: 0;\n height: 20px;\n transition: width 150ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-chip--selected .mdc-chip__checkmark-svg {\n width: 20px; }\n .mdc-chip-set--filter .mdc-chip__icon--leading {\n transition: opacity 75ms linear;\n transition-delay: -50ms;\n opacity: 1; }\n .mdc-chip-set--filter .mdc-chip__icon--leading + .mdc-chip__checkmark {\n transition: opacity 75ms linear;\n transition-delay: 80ms;\n opacity: 0; }\n .mdc-chip-set--filter .mdc-chip__icon--leading + .mdc-chip__checkmark .mdc-chip__checkmark-svg {\n transition: width 0ms; }\n .mdc-chip-set--filter .mdc-chip--selected .mdc-chip__icon--leading {\n opacity: 0; }\n .mdc-chip-set--filter .mdc-chip--selected .mdc-chip__icon--leading + .mdc-chip__checkmark {\n width: 0;\n opacity: 1; }\n .mdc-chip-set--filter .mdc-chip__icon--leading-hidden.mdc-chip__icon--leading {\n width: 0;\n opacity: 0; }\n .mdc-chip-set--filter .mdc-chip__icon--leading-hidden.mdc-chip__icon--leading + .mdc-chip__checkmark {\n width: 20px; }\n @-webkit-keyframes mdc-chip-entry {\n from {\n -webkit-transform: scale(0.8);\n transform: scale(0.8);\n opacity: .4; }\n to {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1; } }\n @keyframes mdc-chip-entry {\n from {\n -webkit-transform: scale(0.8);\n transform: scale(0.8);\n opacity: .4; }\n to {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1; } }\n .mdc-chip-set {\n padding: 4px;\n display: flex;\n flex-wrap: wrap;\n box-sizing: border-box; }\n .mdc-chip-set .mdc-chip {\n margin: 4px; }\n .mdc-chip-set--input .mdc-chip {\n -webkit-animation: mdc-chip-entry 100ms cubic-bezier(0, 0, 0.2, 1);\n animation: mdc-chip-entry 100ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-dialog,\n.mdc-dialog__scrim {\n position: fixed;\n top: 0;\n left: 0;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 100%;\n height: 100%; }\n .mdc-dialog {\n display: none;\n z-index: 7; }\n .mdc-dialog .mdc-dialog__surface {\n background-color: #fff;\n /* @alternate */\n background-color: var(--mdc-theme-surface, #fff); }\n .mdc-dialog .mdc-dialog__scrim {\n background-color: rgba(0, 0, 0, 0.32); }\n .mdc-dialog .mdc-dialog__title {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-dialog .mdc-dialog__content {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-dialog.mdc-dialog--scrollable .mdc-dialog__title,\n .mdc-dialog.mdc-dialog--scrollable .mdc-dialog__actions {\n border-color: rgba(0, 0, 0, 0.12); }\n .mdc-dialog .mdc-dialog__surface {\n min-width: 280px; }\n @media (max-width: 592px) {\n .mdc-dialog .mdc-dialog__surface {\n max-width: calc(100vw - 32px); } }\n @media (min-width: 592px) {\n .mdc-dialog .mdc-dialog__surface {\n max-width: 560px; } }\n .mdc-dialog .mdc-dialog__surface {\n max-height: calc(100vh - 32px); }\n .mdc-dialog .mdc-dialog__surface {\n border-radius: 4px; }\n .mdc-dialog__scrim {\n opacity: 0;\n z-index: -1; }\n .mdc-dialog__container {\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n box-sizing: border-box;\n -webkit-transform: scale(0.8);\n transform: scale(0.8);\n opacity: 0; }\n .mdc-dialog__surface {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n display: flex;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 0;\n box-sizing: border-box;\n max-width: 100%;\n max-height: 100%; }\n .mdc-dialog[dir=\"rtl\"] .mdc-dialog__surface,\n [dir=\"rtl\"] .mdc-dialog .mdc-dialog__surface {\n text-align: right; }\n .mdc-dialog__title {\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1.25rem;\n line-height: 2rem;\n font-weight: 500;\n letter-spacing: 0.0125em;\n text-decoration: inherit;\n text-transform: inherit;\n display: block;\n position: relative;\n flex-shrink: 0;\n box-sizing: border-box;\n margin: 0;\n padding: 0 24px 9px;\n border-bottom: 1px solid transparent; }\n .mdc-dialog__title::before {\n display: inline-block;\n width: 0;\n height: 40px;\n content: \"\";\n vertical-align: 0; }\n .mdc-dialog[dir=\"rtl\"] .mdc-dialog__title,\n [dir=\"rtl\"] .mdc-dialog .mdc-dialog__title {\n text-align: right; }\n .mdc-dialog--scrollable .mdc-dialog__title {\n padding-bottom: 15px; }\n .mdc-dialog__content {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.5rem;\n font-weight: 400;\n letter-spacing: 0.03125em;\n text-decoration: inherit;\n text-transform: inherit;\n flex-grow: 1;\n box-sizing: border-box;\n margin: 0;\n padding: 20px 24px;\n overflow: auto;\n -webkit-overflow-scrolling: touch; }\n .mdc-dialog__content > :first-child {\n margin-top: 0; }\n .mdc-dialog__content > :last-child {\n margin-bottom: 0; }\n .mdc-dialog__title + .mdc-dialog__content {\n padding-top: 0; }\n .mdc-dialog--scrollable .mdc-dialog__content {\n padding-top: 8px;\n padding-bottom: 8px; }\n .mdc-dialog__content .mdc-list:first-child:last-child {\n padding: 6px 0 0; }\n .mdc-dialog--scrollable .mdc-dialog__content .mdc-list:first-child:last-child {\n padding: 0; }\n .mdc-dialog__actions {\n display: flex;\n position: relative;\n flex-shrink: 0;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n box-sizing: border-box;\n min-height: 52px;\n margin: 0;\n padding: 8px;\n border-top: 1px solid transparent; }\n .mdc-dialog--stacked .mdc-dialog__actions {\n flex-direction: column;\n align-items: flex-end; }\n .mdc-dialog__button {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: 0;\n max-width: 100%;\n text-align: right; }\n [dir=\"rtl\"] .mdc-dialog__button, .mdc-dialog__button[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 8px; }\n .mdc-dialog__button:first-child {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .mdc-dialog__button:first-child, .mdc-dialog__button:first-child[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 0; }\n .mdc-dialog[dir=\"rtl\"] .mdc-dialog__button,\n [dir=\"rtl\"] .mdc-dialog .mdc-dialog__button {\n text-align: left; }\n .mdc-dialog--stacked .mdc-dialog__button:not(:first-child) {\n margin-top: 12px; }\n .mdc-dialog--open,\n.mdc-dialog--opening,\n.mdc-dialog--closing {\n display: flex; }\n .mdc-dialog--opening .mdc-dialog__scrim {\n transition: opacity 150ms linear; }\n .mdc-dialog--opening .mdc-dialog__container {\n transition: opacity 75ms linear, -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 75ms linear, transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 75ms linear, transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-dialog--closing .mdc-dialog__scrim,\n.mdc-dialog--closing .mdc-dialog__container {\n transition: opacity 75ms linear; }\n .mdc-dialog--closing .mdc-dialog__container {\n -webkit-transform: scale(1);\n transform: scale(1); }\n .mdc-dialog--open .mdc-dialog__scrim {\n opacity: 1; }\n .mdc-dialog--open .mdc-dialog__container {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1; }\n .mdc-dialog-scroll-lock {\n overflow: hidden; }\n .mdc-drawer {\n border-color: rgba(0, 0, 0, 0.12);\n background-color: #fff;\n /* @noflip */\n border-radius: 0 0 0 0;\n z-index: 6;\n width: 256px;\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n box-sizing: border-box;\n height: 100%;\n transition-property: -webkit-transform;\n transition-property: transform;\n transition-property: transform, -webkit-transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n /* @noflip */\n border-right-width: 1px;\n /* @noflip */\n border-right-style: solid;\n overflow: hidden; }\n .mdc-drawer .mdc-drawer__title {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-drawer .mdc-list-group__subheader {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-drawer .mdc-drawer__subtitle {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-drawer .mdc-list-item__graphic {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-drawer .mdc-list-item {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-drawer .mdc-list-item--activated .mdc-list-item__graphic {\n color: #6200ee; }\n .mdc-drawer .mdc-list-item--activated {\n color: rgba(98, 0, 238, 0.87); }\n [dir=\"rtl\"] .mdc-drawer, .mdc-drawer[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 0 0 0 0; }\n .mdc-drawer .mdc-list-item {\n border-radius: 4px; }\n .mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content {\n /* @noflip */\n margin-left: 256px;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content, .mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 256px; }\n [dir=\"rtl\"] .mdc-drawer, .mdc-drawer[dir=\"rtl\"] {\n /* @noflip */\n border-right-width: 0;\n /* @noflip */\n border-left-width: 1px;\n /* @noflip */\n border-right-style: none;\n /* @noflip */\n border-left-style: solid; }\n .mdc-drawer .mdc-list-item {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.375rem;\n font-weight: 500;\n letter-spacing: 0.00714286em;\n text-decoration: inherit;\n text-transform: inherit;\n height: calc(48px - 2 * 4px);\n margin: 8px 8px;\n padding: 0 8px; }\n .mdc-drawer .mdc-list-item:nth-child(1) {\n margin-top: 2px; }\n .mdc-drawer .mdc-list-item:nth-last-child(1) {\n margin-bottom: 0; }\n .mdc-drawer .mdc-list-group__subheader {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n margin: 0;\n padding: 0 16px; }\n .mdc-drawer .mdc-list-group__subheader::before {\n display: inline-block;\n width: 0;\n height: 24px;\n content: \"\";\n vertical-align: 0; }\n .mdc-drawer .mdc-list-divider {\n margin: 3px 0 4px 0; }\n .mdc-drawer .mdc-list-item__text,\n .mdc-drawer .mdc-list-item__graphic {\n pointer-events: none; }\n .mdc-drawer--animate {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%); }\n [dir=\"rtl\"] .mdc-drawer--animate, .mdc-drawer--animate[dir=\"rtl\"] {\n -webkit-transform: translateX(100%);\n transform: translateX(100%); }\n .mdc-drawer--opening {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n transition-duration: 250ms; }\n [dir=\"rtl\"] .mdc-drawer--opening, .mdc-drawer--opening[dir=\"rtl\"] {\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n .mdc-drawer--closing {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n transition-duration: 200ms; }\n [dir=\"rtl\"] .mdc-drawer--closing, .mdc-drawer--closing[dir=\"rtl\"] {\n -webkit-transform: translateX(100%);\n transform: translateX(100%); }\n .mdc-drawer__header {\n flex-shrink: 0;\n box-sizing: border-box;\n min-height: 64px;\n padding: 0 16px 4px; }\n .mdc-drawer__title {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1.25rem;\n line-height: 2rem;\n font-weight: 500;\n letter-spacing: 0.0125em;\n text-decoration: inherit;\n text-transform: inherit;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n margin-bottom: -20px; }\n .mdc-drawer__title::before {\n display: inline-block;\n width: 0;\n height: 36px;\n content: \"\";\n vertical-align: 0; }\n .mdc-drawer__title::after {\n display: inline-block;\n width: 0;\n height: 20px;\n content: \"\";\n vertical-align: -20px; }\n .mdc-drawer__subtitle {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n margin-bottom: 0; }\n .mdc-drawer__subtitle::before {\n display: inline-block;\n width: 0;\n height: 20px;\n content: \"\";\n vertical-align: 0; }\n .mdc-drawer__content {\n height: 100%;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch; }\n .mdc-drawer--dismissible {\n /* @noflip */\n left: 0;\n /* @noflip */\n right: initial;\n display: none;\n position: absolute; }\n [dir=\"rtl\"] .mdc-drawer--dismissible, .mdc-drawer--dismissible[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 0; }\n .mdc-drawer--dismissible.mdc-drawer--open {\n display: flex; }\n .mdc-drawer-app-content {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 0;\n position: relative; }\n [dir=\"rtl\"] .mdc-drawer-app-content, .mdc-drawer-app-content[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 0; }\n .mdc-drawer--modal {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\n /* @noflip */\n left: 0;\n /* @noflip */\n right: initial;\n display: none;\n position: fixed; }\n .mdc-drawer--modal + .mdc-drawer-scrim {\n background-color: rgba(0, 0, 0, 0.32); }\n [dir=\"rtl\"] .mdc-drawer--modal, .mdc-drawer--modal[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 0; }\n .mdc-drawer--modal.mdc-drawer--open {\n display: flex; }\n .mdc-drawer-scrim {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n z-index: 5; }\n .mdc-drawer--open + .mdc-drawer-scrim {\n display: block; }\n .mdc-drawer--animate + .mdc-drawer-scrim {\n opacity: 0; }\n .mdc-drawer--opening + .mdc-drawer-scrim {\n transition-duration: 250ms;\n opacity: 1; }\n .mdc-drawer--closing + .mdc-drawer-scrim {\n transition-duration: 200ms;\n opacity: 0; }\n .mdc-elevation--z0 {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z1 {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z2 {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z3 {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z4 {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z5 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z6 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z7 {\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z8 {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z9 {\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z10 {\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z11 {\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z12 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z13 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z14 {\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z15 {\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z16 {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z17 {\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z18 {\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z19 {\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z20 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z21 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z22 {\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z23 {\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12); }\n .mdc-elevation--z24 {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); }\n .mdc-elevation-transition {\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);\n will-change: box-shadow; }\n .mdc-fab {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n display: inline-flex;\n position: relative;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 56px;\n height: 56px;\n padding: 0;\n border: none;\n fill: currentColor;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n overflow: hidden;\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), opacity 15ms linear 30ms, -webkit-transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), opacity 15ms linear 30ms, transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), opacity 15ms linear 30ms, transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);\n background-color: #018786;\n color: #fff;\n /* @alternate */\n color: var(--mdc-theme-on-secondary, #fff); }\n .mdc-fab:not(.mdc-fab--extended) {\n border-radius: 50%; }\n .mdc-fab::-moz-focus-inner {\n padding: 0;\n border: 0; }\n .mdc-fab:hover, .mdc-fab:focus {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); }\n .mdc-fab:active {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12); }\n .mdc-fab:active, .mdc-fab:focus {\n outline: none; }\n .mdc-fab:hover {\n cursor: pointer; }\n .mdc-fab > svg {\n width: 100%; }\n @supports not (-ms-ime-align: auto) {\n .mdc-fab {\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n .mdc-fab .mdc-fab__icon {\n width: 24px;\n height: 24px;\n font-size: 24px; }\n .mdc-fab--mini {\n width: 40px;\n height: 40px; }\n .mdc-fab--extended {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 2.25rem;\n font-weight: 500;\n letter-spacing: 0.08928571em;\n text-decoration: none;\n text-transform: uppercase;\n border-radius: 24px;\n padding: 0 20px;\n width: auto;\n max-width: 100%;\n height: 48px; }\n .mdc-fab--extended .mdc-fab__icon {\n /* @noflip */\n margin-left: -8px;\n /* @noflip */\n margin-right: 12px; }\n [dir=\"rtl\"] .mdc-fab--extended .mdc-fab__icon, .mdc-fab--extended .mdc-fab__icon[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 12px;\n /* @noflip */\n margin-right: -8px; }\n .mdc-fab--extended .mdc-fab__label + .mdc-fab__icon {\n /* @noflip */\n margin-left: 12px;\n /* @noflip */\n margin-right: -8px; }\n [dir=\"rtl\"] .mdc-fab--extended .mdc-fab__label + .mdc-fab__icon, .mdc-fab--extended .mdc-fab__label + .mdc-fab__icon[dir=\"rtl\"] {\n /* @noflip */\n margin-left: -8px;\n /* @noflip */\n margin-right: 12px; }\n .mdc-fab__label {\n justify-content: flex-start;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden; }\n .mdc-fab__icon {\n transition: -webkit-transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);\n transition: transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);\n transition: transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);\n fill: currentColor;\n will-change: transform; }\n .mdc-fab .mdc-fab__icon {\n display: inline-flex;\n align-items: center;\n justify-content: center; }\n .mdc-fab--exited {\n -webkit-transform: scale(0);\n transform: scale(0);\n opacity: 0;\n transition: opacity 15ms linear 150ms, -webkit-transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1);\n transition: opacity 15ms linear 150ms, transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1);\n transition: opacity 15ms linear 150ms, transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1); }\n .mdc-fab--exited .mdc-fab__icon {\n -webkit-transform: scale(0);\n transform: scale(0);\n transition: -webkit-transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1);\n transition: transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1);\n transition: transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1); }\n .mdc-fab {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n .mdc-fab::before, .mdc-fab::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-fab::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-fab.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-fab.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-fab.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-fab.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-fab.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-fab::before, .mdc-fab::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-fab.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-fab::before, .mdc-fab::after {\n background-color: #fff; }\n @supports not (-ms-ime-align: auto) {\n .mdc-fab::before, .mdc-fab::after {\n /* @alternate */\n background-color: var(--mdc-theme-on-secondary, #fff); } }\n .mdc-fab:hover::before {\n opacity: 0.08; }\n .mdc-fab:not(.mdc-ripple-upgraded):focus::before, .mdc-fab.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-fab:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-fab:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-fab.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .mdc-floating-label {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.75rem;\n font-weight: 400;\n letter-spacing: 0.009375em;\n text-decoration: inherit;\n text-transform: inherit;\n position: absolute;\n /* @noflip */\n left: 0;\n /* @noflip */\n -webkit-transform-origin: left top;\n transform-origin: left top;\n transition: color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), color 150ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n /* @alternate */\n line-height: 1.15rem;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: text;\n overflow: hidden;\n will-change: transform; }\n [dir=\"rtl\"] .mdc-floating-label, .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n right: 0;\n /* @noflip */\n left: auto;\n /* @noflip */\n -webkit-transform-origin: right top;\n transform-origin: right top;\n /* @noflip */\n text-align: right; }\n .mdc-floating-label--float-above {\n cursor: auto; }\n .mdc-floating-label--float-above {\n -webkit-transform: translateY(-50%) scale(0.75);\n transform: translateY(-50%) scale(0.75); }\n .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-standard 250ms 1;\n animation: mdc-floating-label-shake-float-above-standard 250ms 1; }\n @-webkit-keyframes mdc-floating-label-shake-float-above-standard {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(4% - 0%)) translateY(-50%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(-4% - 0%)) translateY(-50%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-standard {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(4% - 0%)) translateY(-50%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(-4% - 0%)) translateY(-50%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75); }\n /* clean-css ignore:end */ }\n .mdc-form-field {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit;\n color: rgba(0, 0, 0, 0.87);\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));\n display: inline-flex;\n align-items: center;\n vertical-align: middle; }\n .mdc-form-field > label {\n order: 0;\n /* @noflip */\n margin-right: auto;\n /* @noflip */\n padding-left: 4px; }\n [dir=\"rtl\"] .mdc-form-field > label, .mdc-form-field[dir=\"rtl\"] > label {\n /* @noflip */\n margin-left: auto;\n /* @noflip */\n padding-right: 4px; }\n .mdc-form-field--align-end > label {\n order: -1;\n /* @noflip */\n margin-left: auto;\n /* @noflip */\n padding-right: 4px; }\n [dir=\"rtl\"] .mdc-form-field--align-end > label, .mdc-form-field--align-end[dir=\"rtl\"] > label {\n /* @noflip */\n margin-right: auto;\n /* @noflip */\n padding-left: 4px; }\n .mdc-icon-button {\n width: 48px;\n height: 48px;\n padding: 12px;\n font-size: 24px;\n display: inline-block;\n position: relative;\n box-sizing: border-box;\n border: none;\n outline: none;\n background-color: transparent;\n fill: currentColor;\n color: inherit;\n text-decoration: none;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .mdc-icon-button svg,\n .mdc-icon-button img {\n width: 24px;\n height: 24px; }\n .mdc-icon-button:disabled {\n color: rgba(0, 0, 0, 0.38);\n /* @alternate */\n color: var(--mdc-theme-text-disabled-on-light, rgba(0, 0, 0, 0.38));\n cursor: default;\n pointer-events: none; }\n .mdc-icon-button__icon {\n display: inline-block; }\n .mdc-icon-button__icon.mdc-icon-button__icon--on {\n display: none; }\n .mdc-icon-button--on .mdc-icon-button__icon {\n display: none; }\n .mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on {\n display: inline-block; }\n .mdc-icon-button {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n .mdc-icon-button::before, .mdc-icon-button::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-icon-button::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-icon-button.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-icon-button.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-icon-button.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-icon-button.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-icon-button.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-icon-button::before, .mdc-icon-button::after {\n top: calc(50% - 50%);\n /* @noflip */\n left: calc(50% - 50%);\n width: 100%;\n height: 100%; }\n .mdc-icon-button.mdc-ripple-upgraded::before, .mdc-icon-button.mdc-ripple-upgraded::after {\n top: var(--mdc-ripple-top, calc(50% - 50%));\n /* @noflip */\n left: var(--mdc-ripple-left, calc(50% - 50%));\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-icon-button.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-icon-button::before, .mdc-icon-button::after {\n background-color: #000; }\n .mdc-icon-button:hover::before {\n opacity: 0.04; }\n .mdc-icon-button:not(.mdc-ripple-upgraded):focus::before, .mdc-icon-button.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-icon-button:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-icon-button:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-icon-button.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-image-list {\n display: flex;\n flex-wrap: wrap;\n margin: 0 auto;\n padding: 0; }\n .mdc-image-list__item,\n.mdc-image-list__image-aspect-container {\n position: relative;\n box-sizing: border-box; }\n .mdc-image-list__item {\n list-style-type: none; }\n .mdc-image-list__image {\n width: 100%; }\n .mdc-image-list__image-aspect-container .mdc-image-list__image {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n height: 100%;\n background-repeat: no-repeat;\n background-position: center;\n background-size: cover; }\n .mdc-image-list__image-aspect-container {\n padding-bottom: calc(100% / 1); }\n .mdc-image-list__image {\n border-radius: 0; }\n .mdc-image-list--with-text-protection .mdc-image-list__supporting {\n border-radius: 0 0 0 0; }\n .mdc-image-list__supporting {\n color: rgba(0, 0, 0, 0.87);\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box;\n padding: 8px 0;\n line-height: 24px; }\n .mdc-image-list__label {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.75rem;\n font-weight: 400;\n letter-spacing: 0.009375em;\n text-decoration: inherit;\n text-transform: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden; }\n .mdc-image-list--with-text-protection .mdc-image-list__supporting {\n position: absolute;\n bottom: 0;\n width: 100%;\n height: 48px;\n padding: 0 16px;\n background: rgba(0, 0, 0, 0.6);\n color: #fff; }\n .mdc-image-list--masonry {\n display: block; }\n .mdc-image-list--masonry .mdc-image-list__item {\n -webkit-column-break-inside: avoid;\n -moz-column-break-inside: avoid;\n break-inside: avoid-column; }\n .mdc-image-list--masonry .mdc-image-list__image {\n display: block;\n height: auto; }\n :root {\n --mdc-layout-grid-margin-desktop: 24px;\n --mdc-layout-grid-gutter-desktop: 24px;\n --mdc-layout-grid-column-width-desktop: 72px;\n --mdc-layout-grid-margin-tablet: 16px;\n --mdc-layout-grid-gutter-tablet: 16px;\n --mdc-layout-grid-column-width-tablet: 72px;\n --mdc-layout-grid-margin-phone: 16px;\n --mdc-layout-grid-gutter-phone: 16px;\n --mdc-layout-grid-column-width-phone: 72px; }\n @media (min-width: 840px) {\n .mdc-layout-grid {\n box-sizing: border-box;\n margin: 0 auto;\n padding: 24px;\n padding: var(--mdc-layout-grid-margin-desktop, 24px); } }\n @media (min-width: 480px) and (max-width: 839px) {\n .mdc-layout-grid {\n box-sizing: border-box;\n margin: 0 auto;\n padding: 16px;\n padding: var(--mdc-layout-grid-margin-tablet, 16px); } }\n @media (max-width: 479px) {\n .mdc-layout-grid {\n box-sizing: border-box;\n margin: 0 auto;\n padding: 16px;\n padding: var(--mdc-layout-grid-margin-phone, 16px); } }\n @media (min-width: 840px) {\n .mdc-layout-grid__inner {\n display: flex;\n flex-flow: row wrap;\n align-items: stretch;\n margin: -12px;\n margin: calc(var(--mdc-layout-grid-gutter-desktop, 24px) / 2 * -1); }\n @supports (display: grid) {\n .mdc-layout-grid__inner {\n display: grid;\n margin: 0;\n grid-gap: 24px;\n grid-gap: var(--mdc-layout-grid-gutter-desktop, 24px);\n grid-template-columns: repeat(12, minmax(0, 1fr)); } } }\n @media (min-width: 480px) and (max-width: 839px) {\n .mdc-layout-grid__inner {\n display: flex;\n flex-flow: row wrap;\n align-items: stretch;\n margin: -8px;\n margin: calc(var(--mdc-layout-grid-gutter-tablet, 16px) / 2 * -1); }\n @supports (display: grid) {\n .mdc-layout-grid__inner {\n display: grid;\n margin: 0;\n grid-gap: 16px;\n grid-gap: var(--mdc-layout-grid-gutter-tablet, 16px);\n grid-template-columns: repeat(8, minmax(0, 1fr)); } } }\n @media (max-width: 479px) {\n .mdc-layout-grid__inner {\n display: flex;\n flex-flow: row wrap;\n align-items: stretch;\n margin: -8px;\n margin: calc(var(--mdc-layout-grid-gutter-phone, 16px) / 2 * -1); }\n @supports (display: grid) {\n .mdc-layout-grid__inner {\n display: grid;\n margin: 0;\n grid-gap: 16px;\n grid-gap: var(--mdc-layout-grid-gutter-phone, 16px);\n grid-template-columns: repeat(4, minmax(0, 1fr)); } } }\n @media (min-width: 840px) {\n .mdc-layout-grid__cell {\n width: calc(33.33333333% - 24px);\n width: calc(33.33333333% - var(--mdc-layout-grid-gutter-desktop, 24px));\n box-sizing: border-box;\n margin: 12px;\n margin: calc(var(--mdc-layout-grid-gutter-desktop, 24px) / 2); }\n @supports (display: grid) {\n .mdc-layout-grid__cell {\n width: auto;\n grid-column-end: span 4; } }\n @supports (display: grid) {\n .mdc-layout-grid__cell {\n margin: 0; } }\n .mdc-layout-grid__cell--span-1,\n .mdc-layout-grid__cell--span-1-desktop {\n width: calc(8.33333333% - 24px);\n width: calc(8.33333333% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-1,\n .mdc-layout-grid__cell--span-1-desktop {\n width: auto;\n grid-column-end: span 1; } }\n .mdc-layout-grid__cell--span-2,\n .mdc-layout-grid__cell--span-2-desktop {\n width: calc(16.66666667% - 24px);\n width: calc(16.66666667% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-2,\n .mdc-layout-grid__cell--span-2-desktop {\n width: auto;\n grid-column-end: span 2; } }\n .mdc-layout-grid__cell--span-3,\n .mdc-layout-grid__cell--span-3-desktop {\n width: calc(25% - 24px);\n width: calc(25% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-3,\n .mdc-layout-grid__cell--span-3-desktop {\n width: auto;\n grid-column-end: span 3; } }\n .mdc-layout-grid__cell--span-4,\n .mdc-layout-grid__cell--span-4-desktop {\n width: calc(33.33333333% - 24px);\n width: calc(33.33333333% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-4,\n .mdc-layout-grid__cell--span-4-desktop {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-5,\n .mdc-layout-grid__cell--span-5-desktop {\n width: calc(41.66666667% - 24px);\n width: calc(41.66666667% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-5,\n .mdc-layout-grid__cell--span-5-desktop {\n width: auto;\n grid-column-end: span 5; } }\n .mdc-layout-grid__cell--span-6,\n .mdc-layout-grid__cell--span-6-desktop {\n width: calc(50% - 24px);\n width: calc(50% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-6,\n .mdc-layout-grid__cell--span-6-desktop {\n width: auto;\n grid-column-end: span 6; } }\n .mdc-layout-grid__cell--span-7,\n .mdc-layout-grid__cell--span-7-desktop {\n width: calc(58.33333333% - 24px);\n width: calc(58.33333333% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-7,\n .mdc-layout-grid__cell--span-7-desktop {\n width: auto;\n grid-column-end: span 7; } }\n .mdc-layout-grid__cell--span-8,\n .mdc-layout-grid__cell--span-8-desktop {\n width: calc(66.66666667% - 24px);\n width: calc(66.66666667% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-8,\n .mdc-layout-grid__cell--span-8-desktop {\n width: auto;\n grid-column-end: span 8; } }\n .mdc-layout-grid__cell--span-9,\n .mdc-layout-grid__cell--span-9-desktop {\n width: calc(75% - 24px);\n width: calc(75% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-9,\n .mdc-layout-grid__cell--span-9-desktop {\n width: auto;\n grid-column-end: span 9; } }\n .mdc-layout-grid__cell--span-10,\n .mdc-layout-grid__cell--span-10-desktop {\n width: calc(83.33333333% - 24px);\n width: calc(83.33333333% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-10,\n .mdc-layout-grid__cell--span-10-desktop {\n width: auto;\n grid-column-end: span 10; } }\n .mdc-layout-grid__cell--span-11,\n .mdc-layout-grid__cell--span-11-desktop {\n width: calc(91.66666667% - 24px);\n width: calc(91.66666667% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-11,\n .mdc-layout-grid__cell--span-11-desktop {\n width: auto;\n grid-column-end: span 11; } }\n .mdc-layout-grid__cell--span-12,\n .mdc-layout-grid__cell--span-12-desktop {\n width: calc(100% - 24px);\n width: calc(100% - var(--mdc-layout-grid-gutter-desktop, 24px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-12,\n .mdc-layout-grid__cell--span-12-desktop {\n width: auto;\n grid-column-end: span 12; } } }\n @media (min-width: 480px) and (max-width: 839px) {\n .mdc-layout-grid__cell {\n width: calc(50% - 16px);\n width: calc(50% - var(--mdc-layout-grid-gutter-tablet, 16px));\n box-sizing: border-box;\n margin: 8px;\n margin: calc(var(--mdc-layout-grid-gutter-tablet, 16px) / 2); }\n @supports (display: grid) {\n .mdc-layout-grid__cell {\n width: auto;\n grid-column-end: span 4; } }\n @supports (display: grid) {\n .mdc-layout-grid__cell {\n margin: 0; } }\n .mdc-layout-grid__cell--span-1,\n .mdc-layout-grid__cell--span-1-tablet {\n width: calc(12.5% - 16px);\n width: calc(12.5% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-1,\n .mdc-layout-grid__cell--span-1-tablet {\n width: auto;\n grid-column-end: span 1; } }\n .mdc-layout-grid__cell--span-2,\n .mdc-layout-grid__cell--span-2-tablet {\n width: calc(25% - 16px);\n width: calc(25% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-2,\n .mdc-layout-grid__cell--span-2-tablet {\n width: auto;\n grid-column-end: span 2; } }\n .mdc-layout-grid__cell--span-3,\n .mdc-layout-grid__cell--span-3-tablet {\n width: calc(37.5% - 16px);\n width: calc(37.5% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-3,\n .mdc-layout-grid__cell--span-3-tablet {\n width: auto;\n grid-column-end: span 3; } }\n .mdc-layout-grid__cell--span-4,\n .mdc-layout-grid__cell--span-4-tablet {\n width: calc(50% - 16px);\n width: calc(50% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-4,\n .mdc-layout-grid__cell--span-4-tablet {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-5,\n .mdc-layout-grid__cell--span-5-tablet {\n width: calc(62.5% - 16px);\n width: calc(62.5% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-5,\n .mdc-layout-grid__cell--span-5-tablet {\n width: auto;\n grid-column-end: span 5; } }\n .mdc-layout-grid__cell--span-6,\n .mdc-layout-grid__cell--span-6-tablet {\n width: calc(75% - 16px);\n width: calc(75% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-6,\n .mdc-layout-grid__cell--span-6-tablet {\n width: auto;\n grid-column-end: span 6; } }\n .mdc-layout-grid__cell--span-7,\n .mdc-layout-grid__cell--span-7-tablet {\n width: calc(87.5% - 16px);\n width: calc(87.5% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-7,\n .mdc-layout-grid__cell--span-7-tablet {\n width: auto;\n grid-column-end: span 7; } }\n .mdc-layout-grid__cell--span-8,\n .mdc-layout-grid__cell--span-8-tablet {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-8,\n .mdc-layout-grid__cell--span-8-tablet {\n width: auto;\n grid-column-end: span 8; } }\n .mdc-layout-grid__cell--span-9,\n .mdc-layout-grid__cell--span-9-tablet {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-9,\n .mdc-layout-grid__cell--span-9-tablet {\n width: auto;\n grid-column-end: span 8; } }\n .mdc-layout-grid__cell--span-10,\n .mdc-layout-grid__cell--span-10-tablet {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-10,\n .mdc-layout-grid__cell--span-10-tablet {\n width: auto;\n grid-column-end: span 8; } }\n .mdc-layout-grid__cell--span-11,\n .mdc-layout-grid__cell--span-11-tablet {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-11,\n .mdc-layout-grid__cell--span-11-tablet {\n width: auto;\n grid-column-end: span 8; } }\n .mdc-layout-grid__cell--span-12,\n .mdc-layout-grid__cell--span-12-tablet {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-12,\n .mdc-layout-grid__cell--span-12-tablet {\n width: auto;\n grid-column-end: span 8; } } }\n @media (max-width: 479px) {\n .mdc-layout-grid__cell {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px));\n box-sizing: border-box;\n margin: 8px;\n margin: calc(var(--mdc-layout-grid-gutter-phone, 16px) / 2); }\n @supports (display: grid) {\n .mdc-layout-grid__cell {\n width: auto;\n grid-column-end: span 4; } }\n @supports (display: grid) {\n .mdc-layout-grid__cell {\n margin: 0; } }\n .mdc-layout-grid__cell--span-1,\n .mdc-layout-grid__cell--span-1-phone {\n width: calc(25% - 16px);\n width: calc(25% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-1,\n .mdc-layout-grid__cell--span-1-phone {\n width: auto;\n grid-column-end: span 1; } }\n .mdc-layout-grid__cell--span-2,\n .mdc-layout-grid__cell--span-2-phone {\n width: calc(50% - 16px);\n width: calc(50% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-2,\n .mdc-layout-grid__cell--span-2-phone {\n width: auto;\n grid-column-end: span 2; } }\n .mdc-layout-grid__cell--span-3,\n .mdc-layout-grid__cell--span-3-phone {\n width: calc(75% - 16px);\n width: calc(75% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-3,\n .mdc-layout-grid__cell--span-3-phone {\n width: auto;\n grid-column-end: span 3; } }\n .mdc-layout-grid__cell--span-4,\n .mdc-layout-grid__cell--span-4-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-4,\n .mdc-layout-grid__cell--span-4-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-5,\n .mdc-layout-grid__cell--span-5-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-5,\n .mdc-layout-grid__cell--span-5-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-6,\n .mdc-layout-grid__cell--span-6-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-6,\n .mdc-layout-grid__cell--span-6-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-7,\n .mdc-layout-grid__cell--span-7-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-7,\n .mdc-layout-grid__cell--span-7-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-8,\n .mdc-layout-grid__cell--span-8-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-8,\n .mdc-layout-grid__cell--span-8-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-9,\n .mdc-layout-grid__cell--span-9-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-9,\n .mdc-layout-grid__cell--span-9-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-10,\n .mdc-layout-grid__cell--span-10-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-10,\n .mdc-layout-grid__cell--span-10-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-11,\n .mdc-layout-grid__cell--span-11-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-11,\n .mdc-layout-grid__cell--span-11-phone {\n width: auto;\n grid-column-end: span 4; } }\n .mdc-layout-grid__cell--span-12,\n .mdc-layout-grid__cell--span-12-phone {\n width: calc(100% - 16px);\n width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }\n @supports (display: grid) {\n .mdc-layout-grid__cell--span-12,\n .mdc-layout-grid__cell--span-12-phone {\n width: auto;\n grid-column-end: span 4; } } }\n .mdc-layout-grid__cell--order-1 {\n order: 1; }\n .mdc-layout-grid__cell--order-2 {\n order: 2; }\n .mdc-layout-grid__cell--order-3 {\n order: 3; }\n .mdc-layout-grid__cell--order-4 {\n order: 4; }\n .mdc-layout-grid__cell--order-5 {\n order: 5; }\n .mdc-layout-grid__cell--order-6 {\n order: 6; }\n .mdc-layout-grid__cell--order-7 {\n order: 7; }\n .mdc-layout-grid__cell--order-8 {\n order: 8; }\n .mdc-layout-grid__cell--order-9 {\n order: 9; }\n .mdc-layout-grid__cell--order-10 {\n order: 10; }\n .mdc-layout-grid__cell--order-11 {\n order: 11; }\n .mdc-layout-grid__cell--order-12 {\n order: 12; }\n .mdc-layout-grid__cell--align-top {\n align-self: flex-start; }\n @supports (display: grid) {\n .mdc-layout-grid__cell--align-top {\n align-self: start; } }\n .mdc-layout-grid__cell--align-middle {\n align-self: center; }\n .mdc-layout-grid__cell--align-bottom {\n align-self: flex-end; }\n @supports (display: grid) {\n .mdc-layout-grid__cell--align-bottom {\n align-self: end; } }\n @media (min-width: 840px) {\n .mdc-layout-grid--fixed-column-width {\n width: 1176px;\n width: calc( var(--mdc-layout-grid-column-width-desktop, 72px) * 12 + var(--mdc-layout-grid-gutter-desktop, 24px) * 11 + var(--mdc-layout-grid-margin-desktop, 24px) * 2); } }\n @media (min-width: 480px) and (max-width: 839px) {\n .mdc-layout-grid--fixed-column-width {\n width: 720px;\n width: calc( var(--mdc-layout-grid-column-width-tablet, 72px) * 8 + var(--mdc-layout-grid-gutter-tablet, 16px) * 7 + var(--mdc-layout-grid-margin-tablet, 16px) * 2); } }\n @media (max-width: 479px) {\n .mdc-layout-grid--fixed-column-width {\n width: 368px;\n width: calc( var(--mdc-layout-grid-column-width-phone, 72px) * 4 + var(--mdc-layout-grid-gutter-phone, 16px) * 3 + var(--mdc-layout-grid-margin-phone, 16px) * 2); } }\n .mdc-layout-grid--align-left {\n margin-right: auto;\n margin-left: 0; }\n .mdc-layout-grid--align-right {\n margin-right: 0;\n margin-left: auto; }\n .mdc-line-ripple {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n -webkit-transform: scaleX(0);\n transform: scaleX(0);\n transition: opacity 180ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 180ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1), opacity 180ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1), opacity 180ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 180ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n z-index: 2; }\n .mdc-line-ripple--active {\n -webkit-transform: scaleX(1);\n transform: scaleX(1);\n opacity: 1; }\n .mdc-line-ripple--deactivating {\n opacity: 0; }\n @-webkit-keyframes primary-indeterminate-translate {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 20% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 59.15% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(83.67142%);\n transform: translateX(83.67142%); }\n 100% {\n -webkit-transform: translateX(200.611057%);\n transform: translateX(200.611057%); } }\n @keyframes primary-indeterminate-translate {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 20% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 59.15% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(83.67142%);\n transform: translateX(83.67142%); }\n 100% {\n -webkit-transform: translateX(200.611057%);\n transform: translateX(200.611057%); } }\n @-webkit-keyframes primary-indeterminate-scale {\n 0% {\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); }\n 36.65% {\n -webkit-animation-timing-function: cubic-bezier(0.334731, 0.12482, 0.785844, 1);\n animation-timing-function: cubic-bezier(0.334731, 0.12482, 0.785844, 1);\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); }\n 69.15% {\n -webkit-animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\n animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\n -webkit-transform: scaleX(0.661479);\n transform: scaleX(0.661479); }\n 100% {\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); } }\n @keyframes primary-indeterminate-scale {\n 0% {\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); }\n 36.65% {\n -webkit-animation-timing-function: cubic-bezier(0.334731, 0.12482, 0.785844, 1);\n animation-timing-function: cubic-bezier(0.334731, 0.12482, 0.785844, 1);\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); }\n 69.15% {\n -webkit-animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\n animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\n -webkit-transform: scaleX(0.661479);\n transform: scaleX(0.661479); }\n 100% {\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); } }\n @-webkit-keyframes secondary-indeterminate-translate {\n 0% {\n -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 25% {\n -webkit-animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n -webkit-transform: translateX(37.651913%);\n transform: translateX(37.651913%); }\n 48.35% {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n -webkit-transform: translateX(84.386165%);\n transform: translateX(84.386165%); }\n 100% {\n -webkit-transform: translateX(160.277782%);\n transform: translateX(160.277782%); } }\n @keyframes secondary-indeterminate-translate {\n 0% {\n -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 25% {\n -webkit-animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n -webkit-transform: translateX(37.651913%);\n transform: translateX(37.651913%); }\n 48.35% {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n -webkit-transform: translateX(84.386165%);\n transform: translateX(84.386165%); }\n 100% {\n -webkit-transform: translateX(160.277782%);\n transform: translateX(160.277782%); } }\n @-webkit-keyframes secondary-indeterminate-scale {\n 0% {\n -webkit-animation-timing-function: cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);\n animation-timing-function: cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); }\n 19.15% {\n -webkit-animation-timing-function: cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);\n animation-timing-function: cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);\n -webkit-transform: scaleX(0.457104);\n transform: scaleX(0.457104); }\n 44.15% {\n -webkit-animation-timing-function: cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);\n animation-timing-function: cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);\n -webkit-transform: scaleX(0.72796);\n transform: scaleX(0.72796); }\n 100% {\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); } }\n @keyframes secondary-indeterminate-scale {\n 0% {\n -webkit-animation-timing-function: cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);\n animation-timing-function: cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); }\n 19.15% {\n -webkit-animation-timing-function: cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);\n animation-timing-function: cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);\n -webkit-transform: scaleX(0.457104);\n transform: scaleX(0.457104); }\n 44.15% {\n -webkit-animation-timing-function: cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);\n animation-timing-function: cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);\n -webkit-transform: scaleX(0.72796);\n transform: scaleX(0.72796); }\n 100% {\n -webkit-transform: scaleX(0.08);\n transform: scaleX(0.08); } }\n @-webkit-keyframes buffering {\n to {\n -webkit-transform: translateX(-10px);\n transform: translateX(-10px); } }\n @keyframes buffering {\n to {\n -webkit-transform: translateX(-10px);\n transform: translateX(-10px); } }\n @-webkit-keyframes primary-indeterminate-translate-reverse {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 20% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 59.15% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(-83.67142%);\n transform: translateX(-83.67142%); }\n 100% {\n -webkit-transform: translateX(-200.611057%);\n transform: translateX(-200.611057%); } }\n @keyframes primary-indeterminate-translate-reverse {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 20% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 59.15% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(-83.67142%);\n transform: translateX(-83.67142%); }\n 100% {\n -webkit-transform: translateX(-200.611057%);\n transform: translateX(-200.611057%); } }\n @-webkit-keyframes secondary-indeterminate-translate-reverse {\n 0% {\n -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 25% {\n -webkit-animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n -webkit-transform: translateX(-37.651913%);\n transform: translateX(-37.651913%); }\n 48.35% {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n -webkit-transform: translateX(-84.386165%);\n transform: translateX(-84.386165%); }\n 100% {\n -webkit-transform: translateX(-160.277782%);\n transform: translateX(-160.277782%); } }\n @keyframes secondary-indeterminate-translate-reverse {\n 0% {\n -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n -webkit-transform: translateX(0);\n transform: translateX(0); }\n 25% {\n -webkit-animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n -webkit-transform: translateX(-37.651913%);\n transform: translateX(-37.651913%); }\n 48.35% {\n -webkit-animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n -webkit-transform: translateX(-84.386165%);\n transform: translateX(-84.386165%); }\n 100% {\n -webkit-transform: translateX(-160.277782%);\n transform: translateX(-160.277782%); } }\n @-webkit-keyframes buffering-reverse {\n to {\n -webkit-transform: translateX(10px);\n transform: translateX(10px); } }\n @keyframes buffering-reverse {\n to {\n -webkit-transform: translateX(10px);\n transform: translateX(10px); } }\n .mdc-linear-progress {\n position: relative;\n width: 100%;\n height: 4px;\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n transition: opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n overflow: hidden; }\n .mdc-linear-progress__bar {\n position: absolute;\n width: 100%;\n height: 100%;\n -webkit-animation: none;\n animation: none;\n -webkit-transform-origin: top left;\n transform-origin: top left;\n transition: -webkit-transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-linear-progress__bar-inner {\n display: inline-block;\n position: absolute;\n width: 100%;\n height: 100%;\n -webkit-animation: none;\n animation: none; }\n .mdc-linear-progress__buffering-dots {\n position: absolute;\n width: 100%;\n height: 100%;\n -webkit-animation: buffering 250ms infinite linear;\n animation: buffering 250ms infinite linear;\n background-repeat: repeat-x;\n background-size: 10px 4px; }\n .mdc-linear-progress__buffer {\n position: absolute;\n width: 100%;\n height: 100%;\n -webkit-transform-origin: top left;\n transform-origin: top left;\n transition: -webkit-transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-linear-progress__primary-bar {\n -webkit-transform: scaleX(0);\n transform: scaleX(0); }\n .mdc-linear-progress__secondary-bar {\n visibility: hidden; }\n .mdc-linear-progress--indeterminate .mdc-linear-progress__bar {\n transition: none; }\n .mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar {\n left: -145.166611%;\n -webkit-animation: primary-indeterminate-translate 2s infinite linear;\n animation: primary-indeterminate-translate 2s infinite linear; }\n .mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar > .mdc-linear-progress__bar-inner {\n -webkit-animation: primary-indeterminate-scale 2s infinite linear;\n animation: primary-indeterminate-scale 2s infinite linear; }\n .mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar {\n left: -54.888891%;\n -webkit-animation: secondary-indeterminate-translate 2s infinite linear;\n animation: secondary-indeterminate-translate 2s infinite linear;\n visibility: visible; }\n .mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar > .mdc-linear-progress__bar-inner {\n -webkit-animation: secondary-indeterminate-scale 2s infinite linear;\n animation: secondary-indeterminate-scale 2s infinite linear; }\n .mdc-linear-progress--reversed .mdc-linear-progress__bar,\n .mdc-linear-progress--reversed .mdc-linear-progress__buffer {\n right: 0;\n -webkit-transform-origin: center right;\n transform-origin: center right; }\n .mdc-linear-progress--reversed .mdc-linear-progress__primary-bar {\n -webkit-animation-name: primary-indeterminate-translate-reverse;\n animation-name: primary-indeterminate-translate-reverse; }\n .mdc-linear-progress--reversed .mdc-linear-progress__secondary-bar {\n -webkit-animation-name: secondary-indeterminate-translate-reverse;\n animation-name: secondary-indeterminate-translate-reverse; }\n .mdc-linear-progress--reversed .mdc-linear-progress__buffering-dots {\n -webkit-animation: buffering-reverse 250ms infinite linear;\n animation: buffering-reverse 250ms infinite linear; }\n .mdc-linear-progress--closed {\n opacity: 0; }\n .mdc-linear-progress__bar-inner {\n background-color: #6200ee;\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-linear-progress__buffering-dots {\n background-image: url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='none slice'%3E%3Ccircle cx='1' cy='1' r='1' fill='%23e6e6e6'/%3E%3C/svg%3E\"); }\n .mdc-linear-progress__buffer {\n background-color: #e6e6e6; }\n .mdc-linear-progress--indeterminate.mdc-linear-progress--reversed .mdc-linear-progress__primary-bar {\n right: -145.166611%;\n left: auto; }\n .mdc-linear-progress--indeterminate.mdc-linear-progress--reversed .mdc-linear-progress__secondary-bar {\n right: -54.888891%;\n left: auto; }\n .mdc-list {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.75rem;\n font-weight: 400;\n letter-spacing: 0.009375em;\n text-decoration: inherit;\n text-transform: inherit;\n /* @alternate */\n line-height: 1.5rem;\n margin: 0;\n padding: 8px 0;\n list-style-type: none;\n color: rgba(0, 0, 0, 0.87);\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87)); }\n .mdc-list-item__secondary-text {\n color: rgba(0, 0, 0, 0.54);\n /* @alternate */\n color: var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54)); }\n .mdc-list-item__graphic {\n background-color: transparent; }\n .mdc-list-item__graphic {\n color: rgba(0, 0, 0, 0.38);\n /* @alternate */\n color: var(--mdc-theme-text-icon-on-background, rgba(0, 0, 0, 0.38)); }\n .mdc-list-item__meta {\n color: rgba(0, 0, 0, 0.38);\n /* @alternate */\n color: var(--mdc-theme-text-hint-on-background, rgba(0, 0, 0, 0.38)); }\n .mdc-list-group__subheader {\n color: rgba(0, 0, 0, 0.87);\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87)); }\n .mdc-list--dense {\n padding-top: 4px;\n padding-bottom: 4px;\n font-size: .812rem; }\n .mdc-list-item {\n display: flex;\n position: relative;\n align-items: center;\n justify-content: flex-start;\n height: 48px;\n padding: 0 16px;\n overflow: hidden; }\n .mdc-list-item:focus {\n outline: none; }\n .mdc-list-item--selected,\n.mdc-list-item--activated {\n color: #6200ee;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee); }\n .mdc-list-item--selected .mdc-list-item__graphic,\n .mdc-list-item--activated .mdc-list-item__graphic {\n color: #6200ee;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee); }\n .mdc-list-item--disabled {\n color: rgba(0, 0, 0, 0.38);\n /* @alternate */\n color: var(--mdc-theme-text-disabled-on-background, rgba(0, 0, 0, 0.38)); }\n .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 32px;\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n fill: currentColor; }\n .mdc-list-item[dir=\"rtl\"] .mdc-list-item__graphic,\n [dir=\"rtl\"] .mdc-list-item .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 32px;\n /* @noflip */\n margin-right: 0; }\n .mdc-list .mdc-list-item__graphic {\n display: inline-flex; }\n .mdc-list-item__meta {\n /* @noflip */\n margin-left: auto;\n /* @noflip */\n margin-right: 0; }\n .mdc-list-item[dir=\"rtl\"] .mdc-list-item__meta,\n [dir=\"rtl\"] .mdc-list-item .mdc-list-item__meta {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: auto; }\n .mdc-list-item__text {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden; }\n .mdc-list-item__text[for] {\n pointer-events: none; }\n .mdc-list-item__primary-text {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n margin-bottom: -20px;\n display: block; }\n .mdc-list-item__primary-text::before {\n display: inline-block;\n width: 0;\n height: 32px;\n content: \"\";\n vertical-align: 0; }\n .mdc-list-item__primary-text::after {\n display: inline-block;\n width: 0;\n height: 20px;\n content: \"\";\n vertical-align: -20px; }\n .mdc-list--dense .mdc-list-item__primary-text {\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n margin-bottom: -20px; }\n .mdc-list--dense .mdc-list-item__primary-text::before {\n display: inline-block;\n width: 0;\n height: 24px;\n content: \"\";\n vertical-align: 0; }\n .mdc-list--dense .mdc-list-item__primary-text::after {\n display: inline-block;\n width: 0;\n height: 20px;\n content: \"\";\n vertical-align: -20px; }\n .mdc-list-item__secondary-text {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n display: block; }\n .mdc-list-item__secondary-text::before {\n display: inline-block;\n width: 0;\n height: 20px;\n content: \"\";\n vertical-align: 0; }\n .mdc-list--dense .mdc-list-item__secondary-text {\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n font-size: inherit; }\n .mdc-list--dense .mdc-list-item__secondary-text::before {\n display: inline-block;\n width: 0;\n height: 20px;\n content: \"\";\n vertical-align: 0; }\n .mdc-list--dense .mdc-list-item {\n height: 40px; }\n .mdc-list--dense .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 36px;\n width: 20px;\n height: 20px; }\n .mdc-list-item[dir=\"rtl\"] .mdc-list--dense .mdc-list-item__graphic,\n [dir=\"rtl\"] .mdc-list-item .mdc-list--dense .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 36px;\n /* @noflip */\n margin-right: 0; }\n .mdc-list--avatar-list .mdc-list-item {\n height: 56px; }\n .mdc-list--avatar-list .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 16px;\n width: 40px;\n height: 40px;\n border-radius: 50%; }\n .mdc-list-item[dir=\"rtl\"] .mdc-list--avatar-list .mdc-list-item__graphic,\n [dir=\"rtl\"] .mdc-list-item .mdc-list--avatar-list .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 16px;\n /* @noflip */\n margin-right: 0; }\n .mdc-list--two-line .mdc-list-item__text {\n align-self: flex-start; }\n .mdc-list--two-line .mdc-list-item {\n height: 72px; }\n .mdc-list--two-line.mdc-list--dense .mdc-list-item,\n.mdc-list--avatar-list.mdc-list--dense .mdc-list-item {\n height: 60px; }\n .mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 20px;\n width: 36px;\n height: 36px; }\n .mdc-list-item[dir=\"rtl\"] .mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic,\n [dir=\"rtl\"] .mdc-list-item .mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic {\n /* @noflip */\n margin-left: 20px;\n /* @noflip */\n margin-right: 0; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item {\n cursor: pointer; }\n a.mdc-list-item {\n color: inherit;\n text-decoration: none; }\n .mdc-list-divider {\n height: 0;\n margin: 0;\n border: none;\n border-bottom-width: 1px;\n border-bottom-style: solid; }\n .mdc-list-divider {\n border-bottom-color: rgba(0, 0, 0, 0.12); }\n .mdc-list-divider--padded {\n margin: 0 16px; }\n .mdc-list-divider--inset {\n /* @noflip */\n margin-left: 72px;\n /* @noflip */\n margin-right: 0;\n width: calc(100% - 72px); }\n .mdc-list-group[dir=\"rtl\"] .mdc-list-divider--inset,\n [dir=\"rtl\"] .mdc-list-group .mdc-list-divider--inset {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 72px; }\n .mdc-list-divider--inset.mdc-list-divider--padded {\n width: calc(100% - 72px - 16px); }\n .mdc-list-group .mdc-list {\n padding: 0; }\n .mdc-list-group__subheader {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.75rem;\n font-weight: 400;\n letter-spacing: 0.009375em;\n text-decoration: inherit;\n text-transform: inherit;\n margin: 0.75rem 16px; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {\n background-color: #000; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:hover::before {\n opacity: 0.04; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded):focus::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::before {\n opacity: 0.12; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::after {\n background-color: #6200ee; }\n @supports not (-ms-ime-align: auto) {\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::after {\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); } }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:hover::before {\n opacity: 0.16; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded):focus::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::before {\n opacity: 0.08; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::after {\n background-color: #6200ee; }\n @supports not (-ms-ime-align: auto) {\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::after {\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); } }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:hover::before {\n opacity: 0.12; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded):focus::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.2; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.2; }\n :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.2; }\n .mdc-menu {\n min-width: 112px; }\n .mdc-menu .mdc-list-item__meta {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-menu .mdc-list-item__graphic {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-menu .mdc-list {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-menu .mdc-list-divider {\n margin: 8px 0; }\n .mdc-menu .mdc-list-item {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .mdc-menu .mdc-list-item--disabled {\n cursor: auto; }\n .mdc-menu a.mdc-list-item .mdc-list-item__text,\n .mdc-menu a.mdc-list-item .mdc-list-item__graphic {\n pointer-events: none; }\n .mdc-menu__selection-group {\n padding: 0;\n fill: currentColor; }\n .mdc-menu__selection-group .mdc-list-item {\n /* @noflip */\n padding-left: 56px;\n /* @noflip */\n padding-right: 16px; }\n [dir=\"rtl\"] .mdc-menu__selection-group .mdc-list-item, .mdc-menu__selection-group .mdc-list-item[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 56px; }\n .mdc-menu__selection-group .mdc-menu__selection-group-icon {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial;\n display: none;\n position: absolute; }\n [dir=\"rtl\"] .mdc-menu__selection-group .mdc-menu__selection-group-icon, .mdc-menu__selection-group .mdc-menu__selection-group-icon[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px; }\n .mdc-menu-item--selected .mdc-menu__selection-group-icon {\n display: inline; }\n .mdc-menu-surface {\n display: none;\n position: absolute;\n box-sizing: border-box;\n max-width: calc(100vw - 32px);\n max-height: calc(100vh - 32px);\n margin: 0;\n padding: 0;\n -webkit-transform: scale(1);\n transform: scale(1);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n opacity: 0;\n overflow: auto;\n will-change: transform, opacity;\n z-index: 8;\n transition: opacity 0.03s linear, -webkit-transform 0.12s cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 0.03s linear, transform 0.12s cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 0.03s linear, transform 0.12s cubic-bezier(0, 0, 0.2, 1), -webkit-transform 0.12s cubic-bezier(0, 0, 0.2, 1);\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\n background-color: #fff;\n /* @alternate */\n background-color: var(--mdc-theme-surface, #fff);\n color: #000;\n /* @alternate */\n color: var(--mdc-theme-on-surface, #000);\n border-radius: 4px;\n /* @noflip */\n transform-origin-left: top left;\n /* @noflip */\n transform-origin-right: top right; }\n .mdc-menu-surface:focus {\n outline: none; }\n .mdc-menu-surface--open {\n display: inline-block;\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1; }\n .mdc-menu-surface--animating-open {\n display: inline-block;\n -webkit-transform: scale(0.8);\n transform: scale(0.8);\n opacity: 0; }\n .mdc-menu-surface--animating-closed {\n display: inline-block;\n opacity: 0;\n transition: opacity 0.075s linear; }\n [dir=\"rtl\"] .mdc-menu-surface, .mdc-menu-surface[dir=\"rtl\"] {\n /* @noflip */\n transform-origin-left: top right;\n /* @noflip */\n transform-origin-right: top left; }\n .mdc-menu-surface--anchor {\n position: relative;\n overflow: visible; }\n .mdc-menu-surface--fixed {\n position: fixed; }\n .mdc-notched-outline {\n display: flex;\n position: absolute;\n right: 0;\n left: 0;\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n height: 100%;\n /* @noflip */\n text-align: left;\n pointer-events: none; }\n [dir=\"rtl\"] .mdc-notched-outline, .mdc-notched-outline[dir=\"rtl\"] {\n /* @noflip */\n text-align: right; }\n .mdc-notched-outline__leading, .mdc-notched-outline__notch, .mdc-notched-outline__trailing {\n box-sizing: border-box;\n height: 100%;\n transition: border 150ms cubic-bezier(0.4, 0, 0.2, 1);\n border-top: 1px solid;\n border-bottom: 1px solid;\n pointer-events: none; }\n .mdc-notched-outline__leading {\n /* @noflip */\n border-left: 1px solid;\n /* @noflip */\n border-right: none;\n width: 12px; }\n [dir=\"rtl\"] .mdc-notched-outline__leading, .mdc-notched-outline__leading[dir=\"rtl\"] {\n /* @noflip */\n border-left: none;\n /* @noflip */\n border-right: 1px solid; }\n .mdc-notched-outline__trailing {\n /* @noflip */\n border-left: none;\n /* @noflip */\n border-right: 1px solid;\n flex-grow: 1; }\n [dir=\"rtl\"] .mdc-notched-outline__trailing, .mdc-notched-outline__trailing[dir=\"rtl\"] {\n /* @noflip */\n border-left: 1px solid;\n /* @noflip */\n border-right: none; }\n .mdc-notched-outline__notch {\n flex: 0 0 auto;\n width: auto;\n max-width: calc(100% - 12px * 2); }\n .mdc-notched-outline .mdc-floating-label {\n display: inline-block;\n position: relative;\n top: 17px;\n bottom: auto;\n max-width: 100%; }\n .mdc-notched-outline .mdc-floating-label--float-above {\n text-overflow: clip; }\n .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n max-width: calc(100% / .75); }\n .mdc-notched-outline--notched .mdc-notched-outline__notch {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 8px;\n border-top: none; }\n [dir=\"rtl\"] .mdc-notched-outline--notched .mdc-notched-outline__notch, .mdc-notched-outline--notched .mdc-notched-outline__notch[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 8px;\n /* @noflip */\n padding-right: 0; }\n .mdc-notched-outline--no-label .mdc-notched-outline__notch {\n padding: 0; }\n .mdc-radio {\n display: inline-block;\n position: relative;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 40px;\n height: 40px;\n padding: 10px;\n cursor: pointer;\n /* @alternate */\n will-change: opacity, transform, border-color, color; }\n .mdc-radio .mdc-radio__native-control:enabled:not(:checked) + .mdc-radio__background .mdc-radio__outer-circle {\n border-color: rgba(0, 0, 0, 0.54); }\n .mdc-radio .mdc-radio__native-control:enabled:checked + .mdc-radio__background .mdc-radio__outer-circle {\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786); }\n .mdc-radio .mdc-radio__native-control:enabled + .mdc-radio__background .mdc-radio__inner-circle {\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786); }\n .mdc-radio .mdc-radio__background::before {\n background-color: #018786; }\n @supports not (-ms-ime-align: auto) {\n .mdc-radio .mdc-radio__background::before {\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n .mdc-radio__background {\n display: inline-block;\n position: absolute;\n left: 10px;\n box-sizing: border-box;\n width: 50%;\n height: 50%; }\n .mdc-radio__background::before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n -webkit-transform: scale(0, 0);\n transform: scale(0, 0);\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\";\n transition: opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-radio__outer-circle {\n position: absolute;\n top: 0;\n left: 0;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n border-width: 2px;\n border-style: solid;\n border-radius: 50%;\n transition: border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-radio__inner-circle {\n position: absolute;\n top: 0;\n left: 0;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n -webkit-transform: scale(0, 0);\n transform: scale(0, 0);\n border-width: 10px;\n border-style: solid;\n border-radius: 50%;\n transition: border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1);\n transition: transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }\n .mdc-radio__native-control {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n opacity: 0;\n cursor: inherit;\n z-index: 1; }\n .mdc-radio__native-control:checked + .mdc-radio__background,\n.mdc-radio__native-control:disabled + .mdc-radio__background {\n transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-radio__native-control:checked + .mdc-radio__background .mdc-radio__outer-circle,\n .mdc-radio__native-control:disabled + .mdc-radio__background .mdc-radio__outer-circle {\n transition: border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-radio__native-control:checked + .mdc-radio__background .mdc-radio__inner-circle,\n .mdc-radio__native-control:disabled + .mdc-radio__background .mdc-radio__inner-circle {\n transition: border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-radio--disabled {\n cursor: default;\n pointer-events: none; }\n .mdc-radio__native-control:checked + .mdc-radio__background .mdc-radio__inner-circle {\n -webkit-transform: scale(0.5);\n transform: scale(0.5);\n transition: border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-radio__native-control:disabled + .mdc-radio__background,\n[aria-disabled=\"true\"] .mdc-radio__native-control + .mdc-radio__background {\n cursor: default; }\n .mdc-radio__native-control:disabled + .mdc-radio__background .mdc-radio__outer-circle,\n [aria-disabled=\"true\"] .mdc-radio__native-control + .mdc-radio__background .mdc-radio__outer-circle {\n border-color: rgba(0, 0, 0, 0.26); }\n .mdc-radio__native-control:disabled + .mdc-radio__background .mdc-radio__inner-circle,\n [aria-disabled=\"true\"] .mdc-radio__native-control + .mdc-radio__background .mdc-radio__inner-circle {\n border-color: rgba(0, 0, 0, 0.26); }\n .mdc-radio__native-control:focus + .mdc-radio__background::before {\n -webkit-transform: scale(2, 2);\n transform: scale(2, 2);\n opacity: 0.12;\n transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }\n .mdc-radio {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n .mdc-radio::before, .mdc-radio::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-radio::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-radio.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-radio.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-radio.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-radio.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-radio.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-radio::before, .mdc-radio::after {\n top: calc(50% - 50%);\n /* @noflip */\n left: calc(50% - 50%);\n width: 100%;\n height: 100%; }\n .mdc-radio.mdc-ripple-upgraded::before, .mdc-radio.mdc-ripple-upgraded::after {\n top: var(--mdc-ripple-top, calc(50% - 50%));\n /* @noflip */\n left: var(--mdc-ripple-left, calc(50% - 50%));\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-radio.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-radio::before, .mdc-radio::after {\n background-color: #018786; }\n @supports not (-ms-ime-align: auto) {\n .mdc-radio::before, .mdc-radio::after {\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n .mdc-radio:hover::before {\n opacity: 0.04; }\n .mdc-radio:not(.mdc-ripple-upgraded):focus::before, .mdc-radio.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-radio:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-radio:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-radio.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__background::before {\n content: none; }\n .mdc-ripple-surface {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity;\n position: relative;\n outline: none;\n overflow: hidden; }\n .mdc-ripple-surface::before, .mdc-ripple-surface::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-ripple-surface::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-ripple-surface.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-ripple-surface.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-ripple-surface.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-ripple-surface.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-ripple-surface.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-ripple-surface::before, .mdc-ripple-surface::after {\n background-color: #000; }\n .mdc-ripple-surface:hover::before {\n opacity: 0.04; }\n .mdc-ripple-surface:not(.mdc-ripple-upgraded):focus::before, .mdc-ripple-surface.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-ripple-surface:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-ripple-surface:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-ripple-surface.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-ripple-surface::before, .mdc-ripple-surface::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-ripple-surface.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-ripple-surface[data-mdc-ripple-is-unbounded] {\n overflow: visible; }\n .mdc-ripple-surface[data-mdc-ripple-is-unbounded]::before, .mdc-ripple-surface[data-mdc-ripple-is-unbounded]::after {\n top: calc(50% - 50%);\n /* @noflip */\n left: calc(50% - 50%);\n width: 100%;\n height: 100%; }\n .mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::before, .mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after {\n top: var(--mdc-ripple-top, calc(50% - 50%));\n /* @noflip */\n left: var(--mdc-ripple-left, calc(50% - 50%));\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-ripple-surface--primary::before, .mdc-ripple-surface--primary::after {\n background-color: #6200ee; }\n @supports not (-ms-ime-align: auto) {\n .mdc-ripple-surface--primary::before, .mdc-ripple-surface--primary::after {\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); } }\n .mdc-ripple-surface--primary:hover::before {\n opacity: 0.04; }\n .mdc-ripple-surface--primary:not(.mdc-ripple-upgraded):focus::before, .mdc-ripple-surface--primary.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-ripple-surface--primary:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-ripple-surface--primary:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-ripple-surface--primary.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-ripple-surface--accent::before, .mdc-ripple-surface--accent::after {\n background-color: #018786; }\n @supports not (-ms-ime-align: auto) {\n .mdc-ripple-surface--accent::before, .mdc-ripple-surface--accent::after {\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n .mdc-ripple-surface--accent:hover::before {\n opacity: 0.04; }\n .mdc-ripple-surface--accent:not(.mdc-ripple-upgraded):focus::before, .mdc-ripple-surface--accent.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-ripple-surface--accent:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-ripple-surface--accent:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-ripple-surface--accent.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n @-webkit-keyframes mdc-select-float-native-control {\n 0% {\n -webkit-transform: translateY(8px);\n transform: translateY(8px);\n opacity: 0; }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1; } }\n @keyframes mdc-select-float-native-control {\n 0% {\n -webkit-transform: translateY(8px);\n transform: translateY(8px);\n opacity: 0; }\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n opacity: 1; } }\n .mdc-select--with-leading-icon:not(.mdc-select--disabled) .mdc-select__icon {\n color: #000;\n /* @alternate */\n color: var(--mdc-theme-on-surface, #000); }\n .mdc-select--with-leading-icon .mdc-select__icon {\n display: inline-block;\n position: absolute;\n bottom: 16px;\n box-sizing: border-box;\n width: 24px;\n height: 24px;\n border: none;\n background-color: transparent;\n fill: currentColor;\n opacity: 0.54;\n text-decoration: none;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .mdc-select__icon:not([tabindex]),\n.mdc-select__icon[tabindex=\"-1\"] {\n cursor: default;\n pointer-events: none; }\n .mdc-select-helper-text {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.75rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.03333333em;\n text-decoration: inherit;\n text-transform: inherit;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n margin: 0;\n transition: opacity 180ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n will-change: opacity; }\n .mdc-select-helper-text::before {\n display: inline-block;\n width: 0;\n height: 16px;\n content: \"\";\n vertical-align: 0; }\n .mdc-select-helper-text--persistent {\n transition: none;\n opacity: 1;\n will-change: initial; }\n .mdc-select {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity;\n display: inline-flex;\n position: relative;\n box-sizing: border-box;\n height: 56px;\n overflow: hidden;\n /* @alternate */\n will-change: opacity, transform, color; }\n .mdc-select:not(.mdc-select--disabled) {\n background-color: whitesmoke; }\n .mdc-select::before, .mdc-select::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-select::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-select.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-select.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-select.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-select.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-select.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-select::before, .mdc-select::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-select.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-select::before, .mdc-select::after {\n background-color: rgba(0, 0, 0, 0.87); }\n .mdc-select:hover::before {\n opacity: 0.04; }\n .mdc-select:not(.mdc-ripple-upgraded):focus::before, .mdc-select.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-select:not(.mdc-select--disabled) .mdc-select__native-control,\n .mdc-select:not(.mdc-select--disabled) .mdc-select__selected-text {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-select:not(.mdc-select--disabled) .mdc-floating-label {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-select:not(.mdc-select--disabled) .mdc-select__native-control,\n .mdc-select:not(.mdc-select--disabled) .mdc-select__selected-text {\n border-bottom-color: rgba(0, 0, 0, 0.42); }\n .mdc-select:not(.mdc-select--disabled) + .mdc-select-helper-text {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-select, .mdc-select__native-control {\n border-radius: 4px 4px 0 0; }\n .mdc-select:not(.mdc-select--disabled).mdc-select--focused .mdc-line-ripple {\n background-color: #6200ee;\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-select:not(.mdc-select--disabled).mdc-select--focused .mdc-floating-label {\n color: rgba(98, 0, 238, 0.87); }\n .mdc-select:not(.mdc-select--disabled) .mdc-select__native-control:hover {\n border-bottom-color: rgba(0, 0, 0, 0.87); }\n .mdc-select .mdc-floating-label--float-above {\n -webkit-transform: translateY(-70%) scale(0.75);\n transform: translateY(-70%) scale(0.75); }\n .mdc-select .mdc-floating-label {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial;\n top: 21px;\n pointer-events: none; }\n [dir=\"rtl\"] .mdc-select .mdc-floating-label, .mdc-select .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px; }\n .mdc-select.mdc-select--with-leading-icon .mdc-floating-label {\n /* @noflip */\n left: 48px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-select.mdc-select--with-leading-icon .mdc-floating-label, .mdc-select.mdc-select--with-leading-icon .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 48px; }\n .mdc-select.mdc-select--outlined .mdc-floating-label {\n /* @noflip */\n left: 4px;\n /* @noflip */\n right: initial;\n top: 17px; }\n [dir=\"rtl\"] .mdc-select.mdc-select--outlined .mdc-floating-label, .mdc-select.mdc-select--outlined .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 4px; }\n .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label {\n /* @noflip */\n left: 36px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label, .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 36px; }\n .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label--float-above {\n /* @noflip */\n left: 36px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label--float-above, .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label--float-above[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 36px; }\n .mdc-select__dropdown-icon {\n background: url(\"data:image/svg+xml,%3Csvg%20width%3D%2210px%22%20height%3D%225px%22%20viewBox%3D%227%2010%2010%205%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Shape%22%20stroke%3D%22none%22%20fill%3D%22%23000%22%20fill-rule%3D%22evenodd%22%20opacity%3D%220.54%22%20points%3D%227%2010%2012%2015%2017%2010%22%3E%3C%2Fpolygon%3E%0A%3C%2Fsvg%3E\") no-repeat center;\n /* @noflip */\n left: auto;\n /* @noflip */\n right: 8px;\n position: absolute;\n bottom: 16px;\n width: 24px;\n height: 24px;\n transition: -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n pointer-events: none; }\n [dir=\"rtl\"] .mdc-select__dropdown-icon, .mdc-select__dropdown-icon[dir=\"rtl\"] {\n /* @noflip */\n left: 8px;\n /* @noflip */\n right: auto; }\n .mdc-select--focused .mdc-select__dropdown-icon {\n background: url(\"data:image/svg+xml,%3Csvg%20width%3D%2210px%22%20height%3D%225px%22%20viewBox%3D%227%2010%2010%205%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Shape%22%20stroke%3D%22none%22%20fill%3D%22%236200ee%22%20fill-rule%3D%22evenodd%22%20opacity%3D%221%22%20points%3D%227%2010%2012%2015%2017%2010%22%3E%3C%2Fpolygon%3E%0A%3C%2Fsvg%3E\") no-repeat center;\n -webkit-transform: rotate(180deg) translateY(-5px);\n transform: rotate(180deg) translateY(-5px);\n transition: -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-select__native-control {\n padding-top: 20px; }\n .mdc-select.mdc-select--focused .mdc-line-ripple::after {\n -webkit-transform: scale(1, 2);\n transform: scale(1, 2);\n opacity: 1; }\n .mdc-select + .mdc-select-helper-text {\n margin-right: 12px;\n margin-left: 12px; }\n .mdc-select--outlined + .mdc-select-helper-text {\n margin-right: 16px;\n margin-left: 16px; }\n .mdc-select--focused + .mdc-select-helper-text:not(.mdc-select-helper-text--validation-msg) {\n opacity: 1; }\n .mdc-select__selected-text {\n min-width: 200px;\n padding-top: 22px; }\n .mdc-select__native-control,\n.mdc-select__selected-text {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 52px;\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.75rem;\n font-weight: 400;\n letter-spacing: 0.009375em;\n text-decoration: inherit;\n text-transform: inherit;\n box-sizing: border-box;\n width: 100%;\n height: 56px;\n padding-top: 20px;\n padding-bottom: 4px;\n border: none;\n border-bottom: 1px solid;\n outline: none;\n background-color: transparent;\n color: inherit;\n white-space: nowrap;\n cursor: pointer;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none; }\n [dir=\"rtl\"] .mdc-select__native-control, .mdc-select__native-control[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-select__selected-text,\n .mdc-select__selected-text[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 52px;\n /* @noflip */\n padding-right: 16px; }\n .mdc-select__native-control::-ms-expand,\n .mdc-select__selected-text::-ms-expand {\n display: none; }\n .mdc-select__native-control::-ms-value,\n .mdc-select__selected-text::-ms-value {\n background-color: transparent;\n color: inherit; }\n @-moz-document url-prefix(\"\") {\n .mdc-select__native-control,\n .mdc-select__selected-text {\n text-indent: -2px; } }\n .mdc-select--outlined {\n border: none;\n overflow: visible; }\n .mdc-select--outlined:not(.mdc-select--disabled) {\n background-color: transparent; }\n .mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__leading,\n .mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__notch,\n .mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.24); }\n .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,\n .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.87); }\n .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__trailing {\n border-width: 2px; }\n .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: #6200ee;\n /* @alternate */\n border-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-select--outlined .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1; }\n .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__leading {\n /* @noflip */\n border-radius: 4px 0 0 4px; }\n [dir=\"rtl\"] .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__leading, .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 0 4px 4px 0; }\n .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__trailing {\n /* @noflip */\n border-radius: 0 4px 4px 0; }\n [dir=\"rtl\"] .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__trailing, .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 4px 0 0 4px; }\n .mdc-select--outlined .mdc-select__native-control {\n border-radius: 4px; }\n .mdc-select--outlined::before, .mdc-select--outlined::after {\n content: none; }\n .mdc-select--outlined:not(.mdc-select--disabled) {\n background-color: transparent; }\n .mdc-select--outlined .mdc-floating-label--float-above {\n -webkit-transform: translateY(-144%) scale(1);\n transform: translateY(-144%) scale(1); }\n .mdc-select--outlined .mdc-floating-label--float-above {\n font-size: 0.75rem; }\n .mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n -webkit-transform: translateY(-130%) scale(0.75);\n transform: translateY(-130%) scale(0.75); }\n .mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n font-size: 1rem; }\n .mdc-select--outlined .mdc-select__native-control,\n .mdc-select--outlined .mdc-select__selected-text {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 52px;\n display: flex;\n padding-top: 12px;\n padding-bottom: 12px;\n border: none;\n background-color: transparent;\n z-index: 1; }\n [dir=\"rtl\"] .mdc-select--outlined .mdc-select__native-control, .mdc-select--outlined .mdc-select__native-control[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-select--outlined .mdc-select__selected-text,\n .mdc-select--outlined .mdc-select__selected-text[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 52px;\n /* @noflip */\n padding-right: 16px; }\n .mdc-select--outlined .mdc-select__selected-text {\n padding-top: 14px; }\n .mdc-select--outlined .mdc-select__icon {\n z-index: 2; }\n .mdc-select--outlined .mdc-floating-label {\n line-height: 1.15rem;\n pointer-events: auto; }\n .mdc-select--invalid:not(.mdc-select--disabled) .mdc-floating-label {\n color: #b00020;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid:not(.mdc-select--disabled) .mdc-select__native-control,\n.mdc-select--invalid:not(.mdc-select--disabled) .mdc-select__selected-text {\n border-bottom-color: #b00020;\n /* @alternate */\n border-bottom-color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid:not(.mdc-select--disabled).mdc-select--focused .mdc-line-ripple {\n background-color: #b00020;\n /* @alternate */\n background-color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid:not(.mdc-select--disabled).mdc-select--focused .mdc-floating-label {\n color: #b00020; }\n .mdc-select--invalid:not(.mdc-select--disabled).mdc-select--invalid + .mdc-select-helper-text--validation-msg {\n color: #b00020;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid:not(.mdc-select--disabled) .mdc-select__native-control:hover {\n border-bottom-color: #b00020;\n /* @alternate */\n border-bottom-color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__leading,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__notch,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__trailing {\n border-width: 2px; }\n .mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-select--invalid .mdc-select__dropdown-icon {\n background: url(\"data:image/svg+xml,%3Csvg%20width%3D%2210px%22%20height%3D%225px%22%20viewBox%3D%227%2010%2010%205%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Shape%22%20stroke%3D%22none%22%20fill%3D%22%23b00020%22%20fill-rule%3D%22evenodd%22%20opacity%3D%221%22%20points%3D%227%2010%2012%2015%2017%2010%22%3E%3C%2Fpolygon%3E%0A%3C%2Fsvg%3E\") no-repeat center; }\n .mdc-select--invalid + .mdc-select-helper-text--validation-msg {\n opacity: 1; }\n .mdc-select--required .mdc-floating-label::after {\n content: \"*\"; }\n .mdc-select--disabled {\n background-color: #fafafa;\n cursor: default;\n pointer-events: none; }\n .mdc-select--disabled .mdc-floating-label {\n color: rgba(0, 0, 0, 0.37); }\n .mdc-select--disabled .mdc-select__dropdown-icon {\n background: url(\"data:image/svg+xml,%3Csvg%20width%3D%2210px%22%20height%3D%225px%22%20viewBox%3D%227%2010%2010%205%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Shape%22%20stroke%3D%22none%22%20fill%3D%22%23000%22%20fill-rule%3D%22evenodd%22%20opacity%3D%220.37%22%20points%3D%227%2010%2012%2015%2017%2010%22%3E%3C%2Fpolygon%3E%0A%3C%2Fsvg%3E\") no-repeat center; }\n .mdc-select--disabled .mdc-line-ripple {\n display: none; }\n .mdc-select--disabled .mdc-select__icon {\n color: rgba(0, 0, 0, 0.37); }\n .mdc-select--disabled .mdc-select__native-control,\n .mdc-select--disabled .mdc-select__selected-text {\n color: rgba(0, 0, 0, 0.37);\n border-bottom-style: dotted; }\n .mdc-select--disabled .mdc-select__selected-text {\n pointer-events: none; }\n .mdc-select--disabled.mdc-select--outlined {\n background-color: transparent; }\n .mdc-select--disabled.mdc-select--outlined .mdc-select__native-control,\n .mdc-select--disabled.mdc-select--outlined .mdc-select__selected-text {\n border-bottom-style: none; }\n .mdc-select--disabled.mdc-select--outlined .mdc-notched-outline__leading,\n .mdc-select--disabled.mdc-select--outlined .mdc-notched-outline__notch,\n .mdc-select--disabled.mdc-select--outlined .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.16); }\n .mdc-select--with-leading-icon .mdc-select__icon {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-select--with-leading-icon .mdc-select__icon, .mdc-select--with-leading-icon .mdc-select__icon[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px; }\n .mdc-select--with-leading-icon .mdc-select__native-control,\n.mdc-select--with-leading-icon .mdc-select__selected-text {\n /* @noflip */\n padding-left: 48px;\n /* @noflip */\n padding-right: 32px; }\n [dir=\"rtl\"] .mdc-select--with-leading-icon .mdc-select__native-control, .mdc-select--with-leading-icon .mdc-select__native-control[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-select--with-leading-icon .mdc-select__selected-text,\n .mdc-select--with-leading-icon .mdc-select__selected-text[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 32px;\n /* @noflip */\n padding-right: 48px; }\n .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--float-above {\n -webkit-transform: translateY(-144%) translateX(-32px) scale(1);\n transform: translateY(-144%) translateX(-32px) scale(1); }\n [dir=\"rtl\"] .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--float-above, .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--float-above[dir=\"rtl\"] {\n -webkit-transform: translateY(-144%) translateX(32px) scale(1);\n transform: translateY(-144%) translateX(32px) scale(1); }\n .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--float-above {\n font-size: 0.75rem; }\n .mdc-select--with-leading-icon.mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n.mdc-select--with-leading-icon.mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n -webkit-transform: translateY(-130%) translateX(-32px) scale(0.75);\n transform: translateY(-130%) translateX(-32px) scale(0.75); }\n [dir=\"rtl\"] .mdc-select--with-leading-icon.mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above, .mdc-select--with-leading-icon.mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-select--with-leading-icon.mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-select--with-leading-icon.mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=\"rtl\"] {\n -webkit-transform: translateY(-130%) translateX(32px) scale(0.75);\n transform: translateY(-130%) translateX(32px) scale(0.75); }\n .mdc-select--with-leading-icon.mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n.mdc-select--with-leading-icon.mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n font-size: 1rem; }\n .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-select-outlined-leading-icon 250ms 1;\n animation: mdc-floating-label-shake-float-above-select-outlined-leading-icon 250ms 1; }\n [dir=\"rtl\"] .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--shake, .mdc-select--with-leading-icon.mdc-select--outlined[dir=\"rtl\"] .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-select-outlined-leading-icon-rtl 250ms 1;\n animation: mdc-floating-label-shake-float-above-select-outlined-leading-icon-rtl 250ms 1; }\n .mdc-select--with-leading-icon.mdc-select__menu .mdc-list-item__text {\n /* @noflip */\n padding-left: 32px;\n /* @noflip */\n padding-right: 32px; }\n [dir=\"rtl\"] .mdc-select--with-leading-icon.mdc-select__menu .mdc-list-item__text, .mdc-select--with-leading-icon.mdc-select__menu .mdc-list-item__text[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 32px;\n /* @noflip */\n padding-right: 32px; }\n .mdc-select__menu .mdc-list .mdc-list-item--selected {\n color: #000;\n /* @alternate */\n color: var(--mdc-theme-on-surface, #000); }\n .mdc-select__menu .mdc-list .mdc-list-item--selected::before, .mdc-select__menu .mdc-list .mdc-list-item--selected::after {\n background-color: #000; }\n @supports not (-ms-ime-align: auto) {\n .mdc-select__menu .mdc-list .mdc-list-item--selected::before, .mdc-select__menu .mdc-list .mdc-list-item--selected::after {\n /* @alternate */\n background-color: var(--mdc-theme-on-surface, #000); } }\n .mdc-select__menu .mdc-list .mdc-list-item--selected:hover::before {\n opacity: 0.04; }\n .mdc-select__menu .mdc-list .mdc-list-item--selected:not(.mdc-ripple-upgraded):focus::before, .mdc-select__menu .mdc-list .mdc-list-item--selected.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-select__menu .mdc-list .mdc-list-item--selected:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-select__menu .mdc-list .mdc-list-item--selected:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-select__menu .mdc-list .mdc-list-item--selected.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n @-webkit-keyframes mdc-floating-label-shake-float-above-select-outlined-leading-icon {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 32px)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 32px)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-select-outlined-leading-icon {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 32px)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 32px)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-select-outlined-leading-icon-rtl {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - -32px)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - -32px)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-select-outlined-leading-icon-rtl {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - -32px)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - -32px)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-slider-emphasize {\n 0% {\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out; }\n 50% {\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n -webkit-transform: scale(0.85);\n transform: scale(0.85); }\n 100% {\n -webkit-transform: scale(0.571);\n transform: scale(0.571); } }\n @keyframes mdc-slider-emphasize {\n 0% {\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out; }\n 50% {\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n -webkit-transform: scale(0.85);\n transform: scale(0.85); }\n 100% {\n -webkit-transform: scale(0.571);\n transform: scale(0.571); } }\n .mdc-slider {\n position: relative;\n width: 100%;\n height: 48px;\n cursor: pointer;\n touch-action: pan-x;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__track {\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); }\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__track-container {\n background-color: rgba(1, 135, 134, 0.26); }\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__track-marker::after,\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__track-marker-container::after {\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); }\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__thumb {\n fill: #018786;\n /* @alternate */\n fill: var(--mdc-theme-secondary, #018786);\n stroke: #018786;\n /* @alternate */\n stroke: var(--mdc-theme-secondary, #018786); }\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__focus-ring {\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); }\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__pin {\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); }\n .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__pin {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .mdc-slider--disabled {\n cursor: auto; }\n .mdc-slider--disabled .mdc-slider__track {\n background-color: #9a9a9a; }\n .mdc-slider--disabled .mdc-slider__track-container {\n background-color: rgba(154, 154, 154, 0.26); }\n .mdc-slider--disabled .mdc-slider__track-marker::after,\n .mdc-slider--disabled .mdc-slider__track-marker-container::after {\n background-color: #9a9a9a; }\n .mdc-slider--disabled .mdc-slider__thumb {\n fill: #9a9a9a;\n stroke: #9a9a9a; }\n .mdc-slider--disabled .mdc-slider__thumb {\n /* @alternate */\n stroke: white;\n stroke: var(--mdc-slider-bg-color-behind-component, white); }\n .mdc-slider:focus {\n outline: none; }\n .mdc-slider__track-container {\n position: absolute;\n top: 50%;\n width: 100%;\n height: 2px;\n overflow: hidden; }\n .mdc-slider__track {\n position: absolute;\n width: 100%;\n height: 100%;\n -webkit-transform-origin: left top;\n transform-origin: left top;\n will-change: transform; }\n .mdc-slider[dir=\"rtl\"] .mdc-slider__track,\n [dir=\"rtl\"] .mdc-slider .mdc-slider__track {\n -webkit-transform-origin: right top;\n transform-origin: right top; }\n .mdc-slider__track-marker-container {\n display: flex;\n margin-right: 0;\n margin-left: -1px;\n visibility: hidden; }\n .mdc-slider[dir=\"rtl\"] .mdc-slider__track-marker-container,\n [dir=\"rtl\"] .mdc-slider .mdc-slider__track-marker-container {\n margin-right: -1px;\n margin-left: 0; }\n .mdc-slider__track-marker-container::after {\n display: block;\n width: 2px;\n height: 2px;\n content: \"\"; }\n .mdc-slider__track-marker {\n flex: 1; }\n .mdc-slider__track-marker::after {\n display: block;\n width: 2px;\n height: 2px;\n content: \"\"; }\n .mdc-slider__track-marker:first-child::after {\n width: 3px; }\n .mdc-slider__thumb-container {\n position: absolute;\n top: 15px;\n left: 0;\n width: 21px;\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n will-change: transform; }\n .mdc-slider__thumb {\n position: absolute;\n top: 0;\n left: 0;\n -webkit-transform: scale(0.571);\n transform: scale(0.571);\n transition: fill 100ms ease-out, stroke 100ms ease-out, -webkit-transform 100ms ease-out;\n transition: transform 100ms ease-out, fill 100ms ease-out, stroke 100ms ease-out;\n transition: transform 100ms ease-out, fill 100ms ease-out, stroke 100ms ease-out, -webkit-transform 100ms ease-out;\n stroke-width: 3.5; }\n .mdc-slider__focus-ring {\n width: 21px;\n height: 21px;\n transition: opacity 266.67ms ease-out, background-color 266.67ms ease-out, -webkit-transform 266.67ms ease-out;\n transition: transform 266.67ms ease-out, opacity 266.67ms ease-out, background-color 266.67ms ease-out;\n transition: transform 266.67ms ease-out, opacity 266.67ms ease-out, background-color 266.67ms ease-out, -webkit-transform 266.67ms ease-out;\n border-radius: 50%;\n opacity: 0; }\n .mdc-slider__pin {\n display: flex;\n position: absolute;\n top: 0;\n left: 0;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n margin-top: -2px;\n margin-left: -2px;\n -webkit-transform: rotate(-45deg) scale(0) translate(0, 0);\n transform: rotate(-45deg) scale(0) translate(0, 0);\n transition: -webkit-transform 100ms ease-out;\n transition: transform 100ms ease-out;\n transition: transform 100ms ease-out, -webkit-transform 100ms ease-out;\n border-radius: 50% 50% 50% 0%;\n z-index: 1; }\n .mdc-slider__pin-value-marker {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg); }\n .mdc-slider--active .mdc-slider__thumb {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1); }\n .mdc-slider--focus .mdc-slider__thumb {\n -webkit-animation: mdc-slider-emphasize 266.67ms linear;\n animation: mdc-slider-emphasize 266.67ms linear; }\n .mdc-slider--focus .mdc-slider__focus-ring {\n -webkit-transform: scale3d(1.55, 1.55, 1.55);\n transform: scale3d(1.55, 1.55, 1.55);\n opacity: .25; }\n .mdc-slider--in-transit .mdc-slider__thumb {\n transition-delay: 140ms; }\n .mdc-slider--in-transit .mdc-slider__thumb-container,\n.mdc-slider--in-transit .mdc-slider__track,\n.mdc-slider:focus:not(.mdc-slider--active) .mdc-slider__thumb-container,\n.mdc-slider:focus:not(.mdc-slider--active) .mdc-slider__track {\n transition: -webkit-transform 80ms ease;\n transition: transform 80ms ease;\n transition: transform 80ms ease, -webkit-transform 80ms ease; }\n .mdc-slider--discrete.mdc-slider--active .mdc-slider__thumb {\n -webkit-transform: scale(calc(12 / 21));\n transform: scale(calc(12 / 21)); }\n .mdc-slider--discrete.mdc-slider--active .mdc-slider__pin {\n -webkit-transform: rotate(-45deg) scale(1) translate(19px, -20px);\n transform: rotate(-45deg) scale(1) translate(19px, -20px); }\n .mdc-slider--discrete.mdc-slider--focus .mdc-slider__thumb {\n -webkit-animation: none;\n animation: none; }\n .mdc-slider--discrete.mdc-slider--display-markers .mdc-slider__track-marker-container {\n visibility: visible; }\n .mdc-snackbar {\n z-index: 8;\n margin: 8px;\n display: none;\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n pointer-events: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }\n .mdc-snackbar__surface {\n background-color: #333333; }\n .mdc-snackbar__label {\n color: rgba(255, 255, 255, 0.87); }\n .mdc-snackbar__surface {\n min-width: 344px; }\n @media (max-width: 480px), (max-width: 344px) {\n .mdc-snackbar__surface {\n min-width: 100%; } }\n .mdc-snackbar__surface {\n max-width: 672px; }\n .mdc-snackbar__surface {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12); }\n .mdc-snackbar__surface {\n border-radius: 4px; }\n .mdc-snackbar--opening,\n.mdc-snackbar--open,\n.mdc-snackbar--closing {\n display: flex; }\n .mdc-snackbar--leading {\n justify-content: flex-start; }\n .mdc-snackbar--stacked .mdc-snackbar__surface {\n flex-direction: column;\n align-items: flex-start; }\n .mdc-snackbar--stacked .mdc-snackbar__actions {\n align-self: flex-end;\n margin-bottom: 8px; }\n .mdc-snackbar__surface {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n box-sizing: border-box;\n -webkit-transform: scale(0.8);\n transform: scale(0.8);\n opacity: 0; }\n .mdc-snackbar--open .mdc-snackbar__surface {\n -webkit-transform: scale(1);\n transform: scale(1);\n transition: opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);\n transition: opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);\n opacity: 1;\n pointer-events: auto; }\n .mdc-snackbar--closing .mdc-snackbar__surface {\n -webkit-transform: scale(1);\n transform: scale(1);\n transition: opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1); }\n .mdc-snackbar__label {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit;\n flex-grow: 1;\n box-sizing: border-box;\n margin: 0;\n padding: 14px 16px; }\n .mdc-snackbar__label::before {\n display: inline;\n content: attr(data-mdc-snackbar-label-text); }\n .mdc-snackbar__actions {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 8px;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n box-sizing: border-box; }\n [dir=\"rtl\"] .mdc-snackbar__actions, .mdc-snackbar__actions[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: 0; }\n .mdc-snackbar__action:not(:disabled) {\n color: #bb86fc; }\n .mdc-snackbar__action::before, .mdc-snackbar__action::after {\n background-color: #bb86fc; }\n .mdc-snackbar__action:hover::before {\n opacity: 0.08; }\n .mdc-snackbar__action:not(.mdc-ripple-upgraded):focus::before, .mdc-snackbar__action.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-snackbar__action:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-snackbar__action:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-snackbar__action.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .mdc-snackbar__dismiss {\n color: rgba(255, 255, 255, 0.87); }\n .mdc-snackbar__dismiss::before, .mdc-snackbar__dismiss::after {\n background-color: rgba(255, 255, 255, 0.87); }\n .mdc-snackbar__dismiss:hover::before {\n opacity: 0.08; }\n .mdc-snackbar__dismiss:not(.mdc-ripple-upgraded):focus::before, .mdc-snackbar__dismiss.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-snackbar__dismiss:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-snackbar__dismiss:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-snackbar__dismiss.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .mdc-snackbar__dismiss.mdc-snackbar__dismiss {\n width: 36px;\n height: 36px;\n padding: 9px;\n font-size: 18px; }\n .mdc-snackbar__dismiss.mdc-snackbar__dismiss svg,\n .mdc-snackbar__dismiss.mdc-snackbar__dismiss img {\n width: 18px;\n height: 18px; }\n .mdc-snackbar__action + .mdc-snackbar__dismiss {\n /* @noflip */\n margin-left: 8px;\n /* @noflip */\n margin-right: 0; }\n [dir=\"rtl\"] .mdc-snackbar__action + .mdc-snackbar__dismiss, .mdc-snackbar__action + .mdc-snackbar__dismiss[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: 8px; }\n .mdc-switch {\n display: inline-block;\n position: relative;\n outline: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .mdc-switch.mdc-switch--checked .mdc-switch__track {\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786);\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786); }\n .mdc-switch.mdc-switch--checked .mdc-switch__thumb {\n background-color: #018786;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786);\n border-color: #018786;\n /* @alternate */\n border-color: var(--mdc-theme-secondary, #018786); }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__track {\n background-color: #000;\n border-color: #000; }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb {\n background-color: #fff;\n border-color: #fff; }\n .mdc-switch__native-control {\n /* @noflip */\n left: 0;\n /* @noflip */\n right: initial;\n position: absolute;\n top: 0;\n width: 68px;\n height: 48px;\n margin: 0;\n opacity: 0;\n cursor: pointer;\n pointer-events: auto; }\n [dir=\"rtl\"] .mdc-switch__native-control, .mdc-switch__native-control[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 0; }\n .mdc-switch__track {\n box-sizing: border-box;\n width: 32px;\n height: 14px;\n border: 1px solid;\n border-radius: 7px;\n opacity: .38;\n transition: opacity 90ms cubic-bezier(0.4, 0, 0.2, 1), background-color 90ms cubic-bezier(0.4, 0, 0.2, 1), border-color 90ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-switch__thumb-underlay {\n /* @noflip */\n left: -18px;\n /* @noflip */\n right: initial;\n display: flex;\n position: absolute;\n top: -17px;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n transition: background-color 90ms cubic-bezier(0.4, 0, 0.2, 1), border-color 90ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 90ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 90ms cubic-bezier(0.4, 0, 0.2, 1), background-color 90ms cubic-bezier(0.4, 0, 0.2, 1), border-color 90ms cubic-bezier(0.4, 0, 0.2, 1);\n transition: transform 90ms cubic-bezier(0.4, 0, 0.2, 1), background-color 90ms cubic-bezier(0.4, 0, 0.2, 1), border-color 90ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 90ms cubic-bezier(0.4, 0, 0.2, 1); }\n [dir=\"rtl\"] .mdc-switch__thumb-underlay, .mdc-switch__thumb-underlay[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: -18px; }\n .mdc-switch__thumb {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\n box-sizing: border-box;\n width: 20px;\n height: 20px;\n border: 10px solid;\n border-radius: 50%;\n pointer-events: none;\n z-index: 1; }\n .mdc-switch--checked .mdc-switch__track {\n opacity: .54; }\n .mdc-switch--checked .mdc-switch__thumb-underlay {\n -webkit-transform: translateX(20px);\n transform: translateX(20px); }\n [dir=\"rtl\"] .mdc-switch--checked .mdc-switch__thumb-underlay, .mdc-switch--checked .mdc-switch__thumb-underlay[dir=\"rtl\"] {\n -webkit-transform: translateX(-20px);\n transform: translateX(-20px); }\n .mdc-switch--checked .mdc-switch__native-control {\n -webkit-transform: translateX(-20px);\n transform: translateX(-20px); }\n [dir=\"rtl\"] .mdc-switch--checked .mdc-switch__native-control, .mdc-switch--checked .mdc-switch__native-control[dir=\"rtl\"] {\n -webkit-transform: translateX(20px);\n transform: translateX(20px); }\n .mdc-switch--disabled {\n opacity: .38;\n pointer-events: none; }\n .mdc-switch--disabled .mdc-switch__thumb {\n border-width: 1px; }\n .mdc-switch--disabled .mdc-switch__native-control {\n cursor: default;\n pointer-events: none; }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay::before, .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay::after {\n background-color: #9e9e9e; }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay:hover::before {\n opacity: 0.08; }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded):focus::before, .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .mdc-switch__thumb-underlay {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity; }\n .mdc-switch__thumb-underlay::before, .mdc-switch__thumb-underlay::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-switch__thumb-underlay::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-switch__thumb-underlay::before, .mdc-switch__thumb-underlay::after {\n top: calc(50% - 50%);\n /* @noflip */\n left: calc(50% - 50%);\n width: 100%;\n height: 100%; }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded::before, .mdc-switch__thumb-underlay.mdc-ripple-upgraded::after {\n top: var(--mdc-ripple-top, calc(50% - 50%));\n /* @noflip */\n left: var(--mdc-ripple-left, calc(50% - 50%));\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-switch__thumb-underlay::before, .mdc-switch__thumb-underlay::after {\n background-color: #018786; }\n @supports not (-ms-ime-align: auto) {\n .mdc-switch__thumb-underlay::before, .mdc-switch__thumb-underlay::after {\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786); } }\n .mdc-switch__thumb-underlay:hover::before {\n opacity: 0.04; }\n .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded):focus::before, .mdc-switch__thumb-underlay.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-switch__thumb-underlay.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n /**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n .mdc-tab {\n position: relative;\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 2.25rem;\n font-weight: 500;\n letter-spacing: 0.08928571em;\n text-decoration: none;\n text-transform: uppercase;\n display: flex;\n flex: 1 0 auto;\n justify-content: center;\n box-sizing: border-box;\n height: 48px;\n padding: 0 24px;\n border: none;\n outline: none;\n background: none;\n text-align: center;\n white-space: nowrap;\n cursor: pointer;\n -webkit-appearance: none;\n z-index: 1; }\n .mdc-tab .mdc-tab__text-label {\n color: #000;\n /* @alternate */\n color: var(--mdc-theme-on-surface, #000); }\n .mdc-tab .mdc-tab__icon {\n color: #000;\n /* @alternate */\n color: var(--mdc-theme-on-surface, #000);\n fill: currentColor; }\n .mdc-tab::-moz-focus-inner {\n padding: 0;\n border: 0; }\n .mdc-tab--min-width {\n flex: 0 1 auto; }\n .mdc-tab__ripple {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: hidden; }\n .mdc-tab__ripple::before, .mdc-tab__ripple::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-tab__ripple::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-tab__ripple.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-tab__ripple.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-tab__ripple.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-tab__ripple.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-tab__ripple.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-tab__ripple::before, .mdc-tab__ripple::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-tab__ripple.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-tab__ripple::before, .mdc-tab__ripple::after {\n background-color: #6200ee; }\n @supports not (-ms-ime-align: auto) {\n .mdc-tab__ripple::before, .mdc-tab__ripple::after {\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); } }\n .mdc-tab__ripple:hover::before {\n opacity: 0.04; }\n .mdc-tab__ripple:not(.mdc-ripple-upgraded):focus::before, .mdc-tab__ripple.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-tab__ripple:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-tab__ripple:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-tab__ripple.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.12; }\n .mdc-tab__content {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n height: inherit;\n pointer-events: none; }\n .mdc-tab__text-label,\n.mdc-tab__icon {\n transition: 150ms color linear, 150ms opacity linear;\n z-index: 2; }\n .mdc-tab__text-label {\n display: inline-block;\n opacity: 0.6;\n line-height: 1; }\n .mdc-tab__icon {\n width: 24px;\n height: 24px;\n opacity: 0.54;\n font-size: 24px; }\n .mdc-tab--stacked {\n height: 72px; }\n .mdc-tab--stacked .mdc-tab__content {\n flex-direction: column;\n align-items: center;\n justify-content: space-between; }\n .mdc-tab--stacked .mdc-tab__icon {\n padding-top: 12px; }\n .mdc-tab--stacked .mdc-tab__text-label {\n padding-bottom: 16px; }\n .mdc-tab--active .mdc-tab__text-label {\n color: #6200ee;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee); }\n .mdc-tab--active .mdc-tab__icon {\n color: #6200ee;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee);\n fill: currentColor; }\n .mdc-tab--active .mdc-tab__text-label,\n.mdc-tab--active .mdc-tab__icon {\n transition-delay: 100ms;\n opacity: 1; }\n .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon + .mdc-tab__text-label {\n /* @noflip */\n padding-left: 8px;\n /* @noflip */\n padding-right: 0; }\n [dir=\"rtl\"] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon + .mdc-tab__text-label, .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon + .mdc-tab__text-label[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 8px; }\n /**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n /**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n .mdc-tab-bar {\n width: 100%; }\n /**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n /**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n .mdc-tab-indicator {\n display: flex;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 1; }\n .mdc-tab-indicator > .mdc-tab-indicator__content--underline {\n background-color: #6200ee;\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-tab-indicator > .mdc-tab-indicator__content--underline {\n height: 2px; }\n .mdc-tab-indicator > .mdc-tab-indicator__content--icon {\n color: #018786;\n /* @alternate */\n color: var(--mdc-theme-secondary, #018786); }\n .mdc-tab-indicator > .mdc-tab-indicator__content--icon {\n height: 34px;\n font-size: 34px; }\n .mdc-tab-indicator__content {\n -webkit-transform-origin: left;\n transform-origin: left;\n opacity: 0; }\n .mdc-tab-indicator__content--underline {\n align-self: flex-end;\n width: 100%; }\n .mdc-tab-indicator__content--icon {\n align-self: center;\n margin: 0 auto; }\n .mdc-tab-indicator--active > .mdc-tab-indicator__content {\n opacity: 1; }\n .mdc-tab-indicator > .mdc-tab-indicator__content {\n transition: 250ms -webkit-transform cubic-bezier(0.4, 0, 0.2, 1);\n transition: 250ms transform cubic-bezier(0.4, 0, 0.2, 1);\n transition: 250ms transform cubic-bezier(0.4, 0, 0.2, 1), 250ms -webkit-transform cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-tab-indicator--no-transition > .mdc-tab-indicator__content {\n transition: none; }\n .mdc-tab-indicator--fade > .mdc-tab-indicator__content {\n transition: 150ms opacity linear; }\n .mdc-tab-indicator--active.mdc-tab-indicator--fade > .mdc-tab-indicator__content {\n transition-delay: 100ms; }\n /**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n .mdc-tab-scroller {\n overflow-y: hidden; }\n .mdc-tab-scroller__test {\n position: absolute;\n top: -9999px;\n width: 100px;\n height: 100px;\n overflow-x: scroll; }\n .mdc-tab-scroller__scroll-area {\n -webkit-overflow-scrolling: touch;\n display: flex;\n overflow-x: hidden; }\n .mdc-tab-scroller__scroll-area::-webkit-scrollbar,\n.mdc-tab-scroller__test::-webkit-scrollbar {\n display: none; }\n .mdc-tab-scroller__scroll-area--scroll {\n overflow-x: scroll; }\n .mdc-tab-scroller__scroll-content {\n position: relative;\n display: flex;\n flex: 1 0 auto;\n -webkit-transform: none;\n transform: none;\n will-change: transform; }\n .mdc-tab-scroller--align-start .mdc-tab-scroller__scroll-content {\n justify-content: flex-start; }\n .mdc-tab-scroller--align-end .mdc-tab-scroller__scroll-content {\n justify-content: flex-end; }\n .mdc-tab-scroller--align-center .mdc-tab-scroller__scroll-content {\n justify-content: center; }\n .mdc-tab-scroller--animating .mdc-tab-scroller__scroll-area {\n -webkit-overflow-scrolling: auto; }\n .mdc-tab-scroller--animating .mdc-tab-scroller__scroll-content {\n transition: 250ms -webkit-transform cubic-bezier(0.4, 0, 0.2, 1);\n transition: 250ms transform cubic-bezier(0.4, 0, 0.2, 1);\n transition: 250ms transform cubic-bezier(0.4, 0, 0.2, 1), 250ms -webkit-transform cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-text-field-helper-text {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.75rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.03333333em;\n text-decoration: inherit;\n text-transform: inherit;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n margin: 0;\n transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n will-change: opacity; }\n .mdc-text-field-helper-text::before {\n display: inline-block;\n width: 0;\n height: 16px;\n content: \"\";\n vertical-align: 0; }\n .mdc-text-field-helper-text--persistent {\n transition: none;\n opacity: 1;\n will-change: initial; }\n .mdc-text-field-character-counter {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.75rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.03333333em;\n text-decoration: inherit;\n text-transform: inherit;\n display: block;\n margin-top: 0;\n /* @alternate */\n line-height: normal;\n /* @noflip */\n margin-left: auto;\n /* @noflip */\n margin-right: 0;\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 0;\n white-space: nowrap; }\n .mdc-text-field-character-counter::before {\n display: inline-block;\n width: 0;\n height: 16px;\n content: \"\";\n vertical-align: 0; }\n [dir=\"rtl\"] .mdc-text-field-character-counter, .mdc-text-field-character-counter[dir=\"rtl\"] {\n /* @noflip */\n margin-left: 0;\n /* @noflip */\n margin-right: auto; }\n [dir=\"rtl\"] .mdc-text-field-character-counter, .mdc-text-field-character-counter[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 16px; }\n .mdc-text-field--with-leading-icon .mdc-text-field__icon,\n.mdc-text-field--with-trailing-icon .mdc-text-field__icon {\n position: absolute;\n bottom: 16px;\n cursor: pointer; }\n .mdc-text-field__icon:not([tabindex]),\n.mdc-text-field__icon[tabindex=\"-1\"] {\n cursor: default;\n pointer-events: none; }\n .mdc-text-field {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity;\n border-radius: 4px 4px 0 0;\n display: inline-flex;\n position: relative;\n box-sizing: border-box;\n height: 56px;\n overflow: hidden;\n /* @alternate */\n will-change: opacity, transform, color; }\n .mdc-text-field::before, .mdc-text-field::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-text-field::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-text-field.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-text-field.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-text-field.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-text-field.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-text-field.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-text-field::before, .mdc-text-field::after {\n background-color: rgba(0, 0, 0, 0.87); }\n .mdc-text-field:hover::before {\n opacity: 0.04; }\n .mdc-text-field:not(.mdc-ripple-upgraded):focus::before, .mdc-text-field.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.12; }\n .mdc-text-field::before, .mdc-text-field::after {\n top: calc(50% - 100%);\n /* @noflip */\n left: calc(50% - 100%);\n width: 200%;\n height: 200%; }\n .mdc-text-field.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-text-field:not(.mdc-text-field--disabled) .mdc-floating-label {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__input {\n color: rgba(0, 0, 0, 0.87); }\n .mdc-text-field .mdc-text-field__input {\n caret-color: #6200ee;\n /* @alternate */\n caret-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-text-field:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input {\n border-bottom-color: rgba(0, 0, 0, 0.42); }\n .mdc-text-field:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input:hover {\n border-bottom-color: rgba(0, 0, 0, 0.87); }\n .mdc-text-field .mdc-line-ripple {\n background-color: #6200ee;\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-text-field:not(.mdc-text-field--disabled):not(.mdc-text-field--textarea) {\n border-bottom-color: rgba(0, 0, 0, 0.12); }\n .mdc-text-field:not(.mdc-text-field--disabled) + .mdc-text-field-helper-line .mdc-text-field-helper-text {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field-character-counter,\n .mdc-text-field:not(.mdc-text-field--disabled) + .mdc-text-field-helper-line .mdc-text-field-character-counter {\n color: rgba(0, 0, 0, 0.6); }\n .mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__icon {\n color: rgba(0, 0, 0, 0.54); }\n .mdc-text-field:not(.mdc-text-field--disabled) {\n background-color: whitesmoke; }\n .mdc-text-field .mdc-floating-label {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial;\n top: 18px;\n pointer-events: none; }\n [dir=\"rtl\"] .mdc-text-field .mdc-floating-label, .mdc-text-field .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px; }\n .mdc-text-field--textarea .mdc-floating-label {\n /* @noflip */\n left: 4px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--textarea .mdc-floating-label, .mdc-text-field--textarea .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 4px; }\n .mdc-text-field--outlined .mdc-floating-label {\n /* @noflip */\n left: 4px;\n /* @noflip */\n right: initial;\n top: 17px; }\n [dir=\"rtl\"] .mdc-text-field--outlined .mdc-floating-label, .mdc-text-field--outlined .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 4px; }\n .mdc-text-field--outlined--with-leading-icon .mdc-floating-label {\n /* @noflip */\n left: 36px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--outlined--with-leading-icon .mdc-floating-label, .mdc-text-field--outlined--with-leading-icon .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 36px; }\n .mdc-text-field--outlined--with-leading-icon .mdc-floating-label--float-above {\n /* @noflip */\n left: 40px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--outlined--with-leading-icon .mdc-floating-label--float-above, .mdc-text-field--outlined--with-leading-icon .mdc-floating-label--float-above[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 40px; }\n .mdc-text-field__input {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.75rem;\n font-weight: 400;\n letter-spacing: 0.009375em;\n text-decoration: inherit;\n text-transform: inherit;\n align-self: flex-end;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n padding: 20px 16px 6px;\n transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);\n border: none;\n border-bottom: 1px solid;\n border-radius: 0;\n background: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none; }\n .mdc-text-field__input::-webkit-input-placeholder {\n transition: opacity 67ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n color: rgba(0, 0, 0, 0.54); }\n .mdc-text-field__input::-moz-placeholder {\n transition: opacity 67ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n color: rgba(0, 0, 0, 0.54); }\n .mdc-text-field__input::-ms-input-placeholder {\n transition: opacity 67ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n color: rgba(0, 0, 0, 0.54); }\n .mdc-text-field__input::placeholder {\n transition: opacity 67ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n color: rgba(0, 0, 0, 0.54); }\n .mdc-text-field--fullwidth .mdc-text-field__input::-webkit-input-placeholder,\n .mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,\n .mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder {\n transition-delay: 40ms;\n transition-duration: 110ms;\n opacity: 1; }\n .mdc-text-field--fullwidth .mdc-text-field__input::-moz-placeholder,\n .mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,\n .mdc-text-field--focused .mdc-text-field__input::-moz-placeholder {\n transition-delay: 40ms;\n transition-duration: 110ms;\n opacity: 1; }\n .mdc-text-field--fullwidth .mdc-text-field__input::-ms-input-placeholder,\n .mdc-text-field--no-label .mdc-text-field__input::-ms-input-placeholder,\n .mdc-text-field--focused .mdc-text-field__input::-ms-input-placeholder {\n transition-delay: 40ms;\n transition-duration: 110ms;\n opacity: 1; }\n .mdc-text-field--fullwidth .mdc-text-field__input::placeholder,\n .mdc-text-field--no-label .mdc-text-field__input::placeholder,\n .mdc-text-field--focused .mdc-text-field__input::placeholder {\n transition-delay: 40ms;\n transition-duration: 110ms;\n opacity: 1; }\n .mdc-text-field__input:focus {\n outline: none; }\n .mdc-text-field__input:invalid {\n box-shadow: none; }\n .mdc-text-field__input:-webkit-autofill {\n z-index: auto !important; }\n .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input {\n padding: 16px; }\n .mdc-text-field__input:-webkit-autofill + .mdc-floating-label {\n -webkit-transform: translateY(-50%) scale(0.75);\n transform: translateY(-50%) scale(0.75);\n cursor: auto; }\n .mdc-text-field--outlined {\n border: none;\n overflow: visible; }\n .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.24); }\n .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.87); }\n .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,\n .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing {\n border-color: #6200ee;\n /* @alternate */\n border-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-text-field--outlined .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1; }\n .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading {\n /* @noflip */\n border-radius: 4px 0 0 4px; }\n [dir=\"rtl\"] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading, .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 0 4px 4px 0; }\n .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing {\n /* @noflip */\n border-radius: 0 4px 4px 0; }\n [dir=\"rtl\"] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing, .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 4px 0 0 4px; }\n .mdc-text-field--outlined .mdc-floating-label--float-above {\n -webkit-transform: translateY(-144%) scale(1);\n transform: translateY(-144%) scale(1); }\n .mdc-text-field--outlined .mdc-floating-label--float-above {\n font-size: 0.75rem; }\n .mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n -webkit-transform: translateY(-130%) scale(0.75);\n transform: translateY(-130%) scale(0.75); }\n .mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n font-size: 1rem; }\n .mdc-text-field--outlined::before, .mdc-text-field--outlined::after {\n content: none; }\n .mdc-text-field--outlined:not(.mdc-text-field--disabled) {\n background-color: transparent; }\n .mdc-text-field--outlined .mdc-text-field__input {\n display: flex;\n padding: 12px 16px 14px;\n border: none !important;\n background-color: transparent;\n z-index: 1; }\n .mdc-text-field--outlined .mdc-text-field__icon {\n z-index: 2; }\n .mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline__leading,\n.mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline__notch,\n.mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline__trailing {\n border-width: 2px; }\n .mdc-text-field--outlined.mdc-text-field--disabled {\n background-color: transparent; }\n .mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,\n .mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,\n .mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.06); }\n .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input {\n border-bottom: none; }\n .mdc-text-field--outlined.mdc-text-field--dense {\n height: 48px; }\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above {\n -webkit-transform: translateY(-134%) scale(1);\n transform: translateY(-134%) scale(1); }\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above {\n font-size: 0.8rem; }\n .mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n -webkit-transform: translateY(-120%) scale(0.8);\n transform: translateY(-120%) scale(0.8); }\n .mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n font-size: 1rem; }\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-dense 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined-dense 250ms 1; }\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-text-field__input {\n padding: 12px 12px 7px; }\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label {\n top: 14px; }\n .mdc-text-field--outlined.mdc-text-field--dense .mdc-text-field__icon {\n top: 12px; }\n .mdc-text-field--with-leading-icon .mdc-text-field__icon {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon .mdc-text-field__icon, .mdc-text-field--with-leading-icon .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px; }\n .mdc-text-field--with-leading-icon .mdc-text-field__input {\n /* @noflip */\n padding-left: 48px;\n /* @noflip */\n padding-right: 16px; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon .mdc-text-field__input, .mdc-text-field--with-leading-icon .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 48px; }\n .mdc-text-field--with-leading-icon .mdc-floating-label {\n /* @noflip */\n left: 48px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon .mdc-floating-label, .mdc-text-field--with-leading-icon .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 48px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__icon {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__input {\n /* @noflip */\n padding-left: 48px;\n /* @noflip */\n padding-right: 16px; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__input, .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 48px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above {\n -webkit-transform: translateY(-144%) translateX(-32px) scale(1);\n transform: translateY(-144%) translateX(-32px) scale(1); }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above, .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=\"rtl\"] {\n -webkit-transform: translateY(-144%) translateX(32px) scale(1);\n transform: translateY(-144%) translateX(32px) scale(1); }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above {\n font-size: 0.75rem; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n -webkit-transform: translateY(-130%) translateX(-32px) scale(0.75);\n transform: translateY(-130%) translateX(-32px) scale(0.75); }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=\"rtl\"] {\n -webkit-transform: translateY(-130%) translateX(32px) scale(0.75);\n transform: translateY(-130%) translateX(32px) scale(0.75); }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n font-size: 1rem; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake, .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=\"rtl\"] .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl 250ms 1; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label {\n /* @noflip */\n left: 36px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label, .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 36px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above {\n -webkit-transform: translateY(-134%) translateX(-21px) scale(1);\n transform: translateY(-134%) translateX(-21px) scale(1); }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above[dir=\"rtl\"] {\n -webkit-transform: translateY(-134%) translateX(21px) scale(1);\n transform: translateY(-134%) translateX(21px) scale(1); }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above {\n font-size: 0.8rem; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n -webkit-transform: translateY(-120%) translateX(-21px) scale(0.8);\n transform: translateY(-120%) translateX(-21px) scale(0.8); }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=\"rtl\"], [dir=\"rtl\"]\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=\"rtl\"] {\n -webkit-transform: translateY(-120%) translateX(21px) scale(0.8);\n transform: translateY(-120%) translateX(21px) scale(0.8); }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n font-size: 1rem; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense 250ms 1; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--shake, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense[dir=\"rtl\"] .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense-rtl 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense-rtl 250ms 1; }\n .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label {\n /* @noflip */\n left: 32px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 32px; }\n .mdc-text-field--with-trailing-icon .mdc-text-field__icon {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 12px; }\n [dir=\"rtl\"] .mdc-text-field--with-trailing-icon .mdc-text-field__icon, .mdc-text-field--with-trailing-icon .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: 12px;\n /* @noflip */\n right: initial; }\n .mdc-text-field--with-trailing-icon .mdc-text-field__input {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 48px; }\n [dir=\"rtl\"] .mdc-text-field--with-trailing-icon .mdc-text-field__input, .mdc-text-field--with-trailing-icon .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 48px;\n /* @noflip */\n padding-right: 16px; }\n .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__icon {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px; }\n [dir=\"rtl\"] .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__icon, .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial; }\n .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__input {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 48px; }\n [dir=\"rtl\"] .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__input, .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 48px;\n /* @noflip */\n padding-right: 16px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: auto; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: auto;\n /* @noflip */\n right: 16px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon ~ .mdc-text-field__icon {\n /* @noflip */\n right: 12px;\n /* @noflip */\n left: auto; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon ~ .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon ~ .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n right: auto;\n /* @noflip */\n left: 12px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__input {\n /* @noflip */\n padding-left: 48px;\n /* @noflip */\n padding-right: 48px; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__input, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 48px;\n /* @noflip */\n padding-right: 48px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__icon,\n.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon {\n bottom: 16px;\n -webkit-transform: scale(0.8);\n transform: scale(0.8); }\n .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__icon {\n /* @noflip */\n left: 12px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 12px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__input {\n /* @noflip */\n padding-left: 44px;\n /* @noflip */\n padding-right: 16px; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__input, .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 44px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-floating-label {\n /* @noflip */\n left: 44px;\n /* @noflip */\n right: initial; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-floating-label, .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-floating-label[dir=\"rtl\"] {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 44px; }\n .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 12px; }\n [dir=\"rtl\"] .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon, .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: 12px;\n /* @noflip */\n right: initial; }\n .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input {\n /* @noflip */\n padding-left: 16px;\n /* @noflip */\n padding-right: 44px; }\n [dir=\"rtl\"] .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input, .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 44px;\n /* @noflip */\n padding-right: 16px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon {\n /* @noflip */\n left: 12px;\n /* @noflip */\n right: auto; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n left: auto;\n /* @noflip */\n right: 12px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon ~ .mdc-text-field__icon {\n /* @noflip */\n right: 12px;\n /* @noflip */\n left: auto; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon ~ .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon ~ .mdc-text-field__icon[dir=\"rtl\"] {\n /* @noflip */\n right: auto;\n /* @noflip */\n left: 12px; }\n .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input {\n /* @noflip */\n padding-left: 44px;\n /* @noflip */\n padding-right: 44px; }\n [dir=\"rtl\"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 44px;\n /* @noflip */\n padding-right: 44px; }\n .mdc-text-field--dense .mdc-floating-label--float-above {\n -webkit-transform: translateY(-70%) scale(0.8);\n transform: translateY(-70%) scale(0.8); }\n .mdc-text-field--dense .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-dense 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-dense 250ms 1; }\n .mdc-text-field--dense .mdc-text-field__input {\n padding: 12px 12px 0; }\n .mdc-text-field--dense .mdc-floating-label {\n font-size: .813rem; }\n .mdc-text-field--dense .mdc-floating-label--float-above {\n font-size: .813rem; }\n .mdc-text-field__input:required ~ .mdc-floating-label::after,\n.mdc-text-field__input:required ~ .mdc-notched-outline .mdc-floating-label::after {\n margin-left: 1px;\n content: \"*\"; }\n .mdc-text-field--textarea {\n display: inline-flex;\n width: auto;\n height: auto;\n transition: none;\n overflow: visible; }\n .mdc-text-field--textarea:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.24); }\n .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.87); }\n .mdc-text-field--textarea:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,\n .mdc-text-field--textarea:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing {\n border-color: #6200ee;\n /* @alternate */\n border-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-text-field--textarea .mdc-floating-label--shake {\n -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1;\n animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1; }\n .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__leading {\n /* @noflip */\n border-radius: 4px 0 0 4px; }\n [dir=\"rtl\"] .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__leading, .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__leading[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 0 4px 4px 0; }\n .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__trailing {\n /* @noflip */\n border-radius: 0 4px 4px 0; }\n [dir=\"rtl\"] .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__trailing, .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__trailing[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 4px 0 0 4px; }\n .mdc-text-field--textarea::before, .mdc-text-field--textarea::after {\n content: none; }\n .mdc-text-field--textarea:not(.mdc-text-field--disabled) {\n background-color: transparent; }\n .mdc-text-field--textarea .mdc-floating-label--float-above {\n -webkit-transform: translateY(-144%) scale(1);\n transform: translateY(-144%) scale(1); }\n .mdc-text-field--textarea .mdc-floating-label--float-above {\n font-size: 0.75rem; }\n .mdc-text-field--textarea.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--textarea .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n -webkit-transform: translateY(-130%) scale(0.75);\n transform: translateY(-130%) scale(0.75); }\n .mdc-text-field--textarea.mdc-notched-outline--upgraded .mdc-floating-label--float-above,\n .mdc-text-field--textarea .mdc-notched-outline--upgraded .mdc-floating-label--float-above {\n font-size: 1rem; }\n .mdc-text-field--textarea .mdc-text-field-character-counter {\n /* @noflip */\n left: initial;\n /* @noflip */\n right: 16px;\n position: absolute;\n bottom: 13px; }\n [dir=\"rtl\"] .mdc-text-field--textarea .mdc-text-field-character-counter, .mdc-text-field--textarea .mdc-text-field-character-counter[dir=\"rtl\"] {\n /* @noflip */\n left: 16px;\n /* @noflip */\n right: initial; }\n .mdc-text-field--textarea .mdc-text-field__input {\n align-self: auto;\n box-sizing: border-box;\n height: auto;\n margin: 8px 1px 1px 0;\n padding: 0 16px 16px;\n border: none; }\n .mdc-text-field--textarea .mdc-text-field-character-counter + .mdc-text-field__input {\n margin-bottom: 28px;\n padding-bottom: 0; }\n .mdc-text-field--textarea .mdc-floating-label {\n top: 17px;\n bottom: auto;\n width: auto;\n pointer-events: none; }\n .mdc-text-field--textarea.mdc-text-field--focused .mdc-notched-outline__leading,\n .mdc-text-field--textarea.mdc-text-field--focused .mdc-notched-outline__notch,\n .mdc-text-field--textarea.mdc-text-field--focused .mdc-notched-outline__trailing {\n border-width: 2px; }\n .mdc-text-field--fullwidth {\n width: 100%; }\n .mdc-text-field--fullwidth:not(.mdc-text-field--textarea) {\n display: block; }\n .mdc-text-field--fullwidth:not(.mdc-text-field--textarea)::before, .mdc-text-field--fullwidth:not(.mdc-text-field--textarea)::after {\n content: none; }\n .mdc-text-field--fullwidth:not(.mdc-text-field--textarea):not(.mdc-text-field--disabled) {\n background-color: transparent; }\n .mdc-text-field--fullwidth:not(.mdc-text-field--textarea) .mdc-text-field__input {\n padding: 0; }\n .mdc-text-field--fullwidth.mdc-text-field--textarea .mdc-text-field__input {\n resize: vertical; }\n .mdc-text-field--fullwidth.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--textarea) {\n border-bottom-color: #b00020;\n /* @alternate */\n border-bottom-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field-helper-line {\n display: flex;\n justify-content: space-between;\n box-sizing: border-box; }\n .mdc-text-field--dense + .mdc-text-field-helper-line {\n margin-bottom: 4px; }\n .mdc-text-field + .mdc-text-field-helper-line {\n padding-right: 16px;\n padding-left: 16px; }\n .mdc-form-field > .mdc-text-field + label {\n align-self: flex-start; }\n .mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-floating-label {\n color: rgba(98, 0, 238, 0.87); }\n .mdc-text-field--focused .mdc-text-field__input:required ~ .mdc-floating-label::after,\n.mdc-text-field--focused .mdc-text-field__input:required ~ .mdc-notched-outline .mdc-floating-label::after {\n color: #b00020;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--focused + .mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg) {\n opacity: 1; }\n .mdc-text-field--textarea.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,\n.mdc-text-field--textarea.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,\n.mdc-text-field--textarea.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {\n border-color: #6200ee;\n /* @alternate */\n border-color: var(--mdc-theme-primary, #6200ee); }\n .mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input {\n border-bottom-color: #b00020;\n /* @alternate */\n border-bottom-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input:hover {\n border-bottom-color: #b00020;\n /* @alternate */\n border-bottom-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple {\n background-color: #b00020;\n /* @alternate */\n background-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label {\n color: #b00020;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--invalid + .mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg {\n color: #b00020;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid .mdc-text-field__input {\n caret-color: #b00020;\n /* @alternate */\n caret-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid.mdc-text-field--with-trailing-icon:not(.mdc-text-field--with-leading-icon):not(.mdc-text-field--disabled) .mdc-text-field__icon {\n color: #b00020;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid.mdc-text-field--with-trailing-icon.mdc-text-field--with-leading-icon:not(.mdc-text-field--disabled) .mdc-text-field__icon ~ .mdc-text-field__icon {\n color: #b00020;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--invalid + .mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg {\n opacity: 1; }\n .mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,\n.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,\n.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing {\n border-color: #b00020;\n /* @alternate */\n border-color: var(--mdc-theme-error, #b00020); }\n .mdc-text-field--disabled {\n background-color: #fafafa;\n border-bottom: none;\n pointer-events: none; }\n .mdc-text-field--disabled .mdc-text-field__input {\n border-bottom-color: rgba(0, 0, 0, 0.06); }\n .mdc-text-field--disabled .mdc-text-field__input {\n color: rgba(0, 0, 0, 0.37); }\n .mdc-text-field--disabled .mdc-floating-label {\n color: rgba(0, 0, 0, 0.37); }\n .mdc-text-field--disabled + .mdc-text-field-helper-line .mdc-text-field-helper-text {\n color: rgba(0, 0, 0, 0.37); }\n .mdc-text-field--disabled .mdc-text-field-character-counter,\n .mdc-text-field--disabled + .mdc-text-field-helper-line .mdc-text-field-character-counter {\n color: rgba(0, 0, 0, 0.37); }\n .mdc-text-field--disabled .mdc-text-field__icon {\n color: rgba(0, 0, 0, 0.3); }\n .mdc-text-field--disabled:not(.mdc-text-field--textarea) {\n border-bottom-color: rgba(0, 0, 0, 0.12); }\n .mdc-text-field--disabled .mdc-floating-label {\n cursor: default; }\n .mdc-text-field--textarea.mdc-text-field--disabled {\n background-color: transparent;\n /* @alternate */\n background-color: #f9f9f9; }\n .mdc-text-field--textarea.mdc-text-field--disabled .mdc-notched-outline__leading,\n .mdc-text-field--textarea.mdc-text-field--disabled .mdc-notched-outline__notch,\n .mdc-text-field--textarea.mdc-text-field--disabled .mdc-notched-outline__trailing {\n border-color: rgba(0, 0, 0, 0.06); }\n .mdc-text-field--textarea.mdc-text-field--disabled .mdc-text-field__input {\n border-bottom: none; }\n @-webkit-keyframes mdc-floating-label-shake-float-above-text-field-dense {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(4% - 0%)) translateY(-70%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(-4% - 0%)) translateY(-70%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-text-field-dense {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(4% - 0%)) translateY(-70%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(-4% - 0%)) translateY(-70%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-text-field-outlined {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-dense {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(4% - 0%)) translateY(-120%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(-4% - 0%)) translateY(-120%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-text-field-outlined-dense {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(4% - 0%)) translateY(-120%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(-4% - 0%)) translateY(-120%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(4% - 21px)) translateY(-120%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(-4% - 21px)) translateY(-120%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(4% - 21px)) translateY(-120%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(-4% - 21px)) translateY(-120%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense-rtl {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(4% - -21px)) translateY(-120%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(-4% - -21px)) translateY(-120%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense-rtl {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(4% - -21px)) translateY(-120%) scale(0.8); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(-4% - -21px)) translateY(-120%) scale(0.8); }\n 100% {\n -webkit-transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8);\n transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8); }\n /* clean-css ignore:end */ }\n @-webkit-keyframes mdc-floating-label-shake-float-above-textarea {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n @keyframes mdc-floating-label-shake-float-above-textarea {\n /* clean-css ignore:start */\n 0% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n 33% {\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n -webkit-transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75); }\n 66% {\n -webkit-animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n -webkit-transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75); }\n 100% {\n -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);\n transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }\n /* clean-css ignore:end */ }\n :root {\n --mdc-theme-primary: #6200ee;\n --mdc-theme-secondary: #018786;\n --mdc-theme-background: #fff;\n --mdc-theme-surface: #fff;\n --mdc-theme-error: #b00020;\n --mdc-theme-on-primary: #fff;\n --mdc-theme-on-secondary: #fff;\n --mdc-theme-on-surface: #000;\n --mdc-theme-on-error: #fff;\n --mdc-theme-text-primary-on-background: rgba(0, 0, 0, 0.87);\n --mdc-theme-text-secondary-on-background: rgba(0, 0, 0, 0.54);\n --mdc-theme-text-hint-on-background: rgba(0, 0, 0, 0.38);\n --mdc-theme-text-disabled-on-background: rgba(0, 0, 0, 0.38);\n --mdc-theme-text-icon-on-background: rgba(0, 0, 0, 0.38);\n --mdc-theme-text-primary-on-light: rgba(0, 0, 0, 0.87);\n --mdc-theme-text-secondary-on-light: rgba(0, 0, 0, 0.54);\n --mdc-theme-text-hint-on-light: rgba(0, 0, 0, 0.38);\n --mdc-theme-text-disabled-on-light: rgba(0, 0, 0, 0.38);\n --mdc-theme-text-icon-on-light: rgba(0, 0, 0, 0.38);\n --mdc-theme-text-primary-on-dark: white;\n --mdc-theme-text-secondary-on-dark: rgba(255, 255, 255, 0.7);\n --mdc-theme-text-hint-on-dark: rgba(255, 255, 255, 0.5);\n --mdc-theme-text-disabled-on-dark: rgba(255, 255, 255, 0.5);\n --mdc-theme-text-icon-on-dark: rgba(255, 255, 255, 0.5); }\n .mdc-theme--primary {\n color: #6200ee !important;\n /* @alternate */\n color: var(--mdc-theme-primary, #6200ee) !important; }\n .mdc-theme--secondary {\n color: #018786 !important;\n /* @alternate */\n color: var(--mdc-theme-secondary, #018786) !important; }\n .mdc-theme--background {\n background-color: #fff;\n /* @alternate */\n background-color: var(--mdc-theme-background, #fff); }\n .mdc-theme--surface {\n background-color: #fff;\n /* @alternate */\n background-color: var(--mdc-theme-surface, #fff); }\n .mdc-theme--error {\n color: #b00020 !important;\n /* @alternate */\n color: var(--mdc-theme-error, #b00020) !important; }\n .mdc-theme--on-primary {\n color: #fff !important;\n /* @alternate */\n color: var(--mdc-theme-on-primary, #fff) !important; }\n .mdc-theme--on-secondary {\n color: #fff !important;\n /* @alternate */\n color: var(--mdc-theme-on-secondary, #fff) !important; }\n .mdc-theme--on-surface {\n color: #000 !important;\n /* @alternate */\n color: var(--mdc-theme-on-surface, #000) !important; }\n .mdc-theme--on-error {\n color: #fff !important;\n /* @alternate */\n color: var(--mdc-theme-on-error, #fff) !important; }\n .mdc-theme--text-primary-on-background {\n color: rgba(0, 0, 0, 0.87) !important;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87)) !important; }\n .mdc-theme--text-secondary-on-background {\n color: rgba(0, 0, 0, 0.54) !important;\n /* @alternate */\n color: var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54)) !important; }\n .mdc-theme--text-hint-on-background {\n color: rgba(0, 0, 0, 0.38) !important;\n /* @alternate */\n color: var(--mdc-theme-text-hint-on-background, rgba(0, 0, 0, 0.38)) !important; }\n .mdc-theme--text-disabled-on-background {\n color: rgba(0, 0, 0, 0.38) !important;\n /* @alternate */\n color: var(--mdc-theme-text-disabled-on-background, rgba(0, 0, 0, 0.38)) !important; }\n .mdc-theme--text-icon-on-background {\n color: rgba(0, 0, 0, 0.38) !important;\n /* @alternate */\n color: var(--mdc-theme-text-icon-on-background, rgba(0, 0, 0, 0.38)) !important; }\n .mdc-theme--text-primary-on-light {\n color: rgba(0, 0, 0, 0.87) !important;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-light, rgba(0, 0, 0, 0.87)) !important; }\n .mdc-theme--text-secondary-on-light {\n color: rgba(0, 0, 0, 0.54) !important;\n /* @alternate */\n color: var(--mdc-theme-text-secondary-on-light, rgba(0, 0, 0, 0.54)) !important; }\n .mdc-theme--text-hint-on-light {\n color: rgba(0, 0, 0, 0.38) !important;\n /* @alternate */\n color: var(--mdc-theme-text-hint-on-light, rgba(0, 0, 0, 0.38)) !important; }\n .mdc-theme--text-disabled-on-light {\n color: rgba(0, 0, 0, 0.38) !important;\n /* @alternate */\n color: var(--mdc-theme-text-disabled-on-light, rgba(0, 0, 0, 0.38)) !important; }\n .mdc-theme--text-icon-on-light {\n color: rgba(0, 0, 0, 0.38) !important;\n /* @alternate */\n color: var(--mdc-theme-text-icon-on-light, rgba(0, 0, 0, 0.38)) !important; }\n .mdc-theme--text-primary-on-dark {\n color: white !important;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white) !important; }\n .mdc-theme--text-secondary-on-dark {\n color: rgba(255, 255, 255, 0.7) !important;\n /* @alternate */\n color: var(--mdc-theme-text-secondary-on-dark, rgba(255, 255, 255, 0.7)) !important; }\n .mdc-theme--text-hint-on-dark {\n color: rgba(255, 255, 255, 0.5) !important;\n /* @alternate */\n color: var(--mdc-theme-text-hint-on-dark, rgba(255, 255, 255, 0.5)) !important; }\n .mdc-theme--text-disabled-on-dark {\n color: rgba(255, 255, 255, 0.5) !important;\n /* @alternate */\n color: var(--mdc-theme-text-disabled-on-dark, rgba(255, 255, 255, 0.5)) !important; }\n .mdc-theme--text-icon-on-dark {\n color: rgba(255, 255, 255, 0.5) !important;\n /* @alternate */\n color: var(--mdc-theme-text-icon-on-dark, rgba(255, 255, 255, 0.5)) !important; }\n .mdc-theme--primary-bg {\n background-color: #6200ee !important;\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee) !important; }\n .mdc-theme--secondary-bg {\n background-color: #018786 !important;\n /* @alternate */\n background-color: var(--mdc-theme-secondary, #018786) !important; }\n .mdc-top-app-bar {\n background-color: #6200ee;\n /* @alternate */\n background-color: var(--mdc-theme-primary, #6200ee);\n color: white;\n display: flex;\n position: fixed;\n flex-direction: column;\n justify-content: space-between;\n box-sizing: border-box;\n width: 100%;\n z-index: 4; }\n .mdc-top-app-bar .mdc-top-app-bar__action-item,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon {\n color: #fff;\n /* @alternate */\n color: var(--mdc-theme-on-primary, #fff); }\n .mdc-top-app-bar .mdc-top-app-bar__action-item::before, .mdc-top-app-bar .mdc-top-app-bar__action-item::after,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon::before,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon::after {\n background-color: #fff; }\n @supports not (-ms-ime-align: auto) {\n .mdc-top-app-bar .mdc-top-app-bar__action-item::before, .mdc-top-app-bar .mdc-top-app-bar__action-item::after,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon::before,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon::after {\n /* @alternate */\n background-color: var(--mdc-theme-on-primary, #fff); } }\n .mdc-top-app-bar .mdc-top-app-bar__action-item:hover::before,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon:hover::before {\n opacity: 0.08; }\n .mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded):focus::before, .mdc-top-app-bar .mdc-top-app-bar__action-item.mdc-ripple-upgraded--background-focused::before,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded):focus::before,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded)::after,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded):active::after,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .mdc-top-app-bar .mdc-top-app-bar__action-item.mdc-ripple-upgraded,\n .mdc-top-app-bar .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .mdc-top-app-bar__row {\n display: flex;\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 64px; }\n .mdc-top-app-bar__section {\n display: inline-flex;\n flex: 1 1 auto;\n align-items: center;\n min-width: 0;\n padding: 8px 12px;\n z-index: 1; }\n .mdc-top-app-bar__section--align-start {\n justify-content: flex-start;\n order: -1; }\n .mdc-top-app-bar__section--align-end {\n justify-content: flex-end;\n order: 1; }\n .mdc-top-app-bar__title {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1.25rem;\n line-height: 2rem;\n font-weight: 500;\n letter-spacing: 0.0125em;\n text-decoration: inherit;\n text-transform: inherit;\n /* @noflip */\n padding-left: 20px;\n /* @noflip */\n padding-right: 0;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n z-index: 1; }\n [dir=\"rtl\"] .mdc-top-app-bar__title, .mdc-top-app-bar__title[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 20px; }\n .mdc-top-app-bar__action-item, .mdc-top-app-bar__navigation-icon {\n --mdc-ripple-fg-size: 0;\n --mdc-ripple-left: 0;\n --mdc-ripple-top: 0;\n --mdc-ripple-fg-scale: 1;\n --mdc-ripple-fg-translate-end: 0;\n --mdc-ripple-fg-translate-start: 0;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n will-change: transform, opacity;\n display: flex;\n position: relative;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 48px;\n height: 48px;\n padding: 12px;\n border: none;\n outline: none;\n background-color: transparent;\n fill: currentColor;\n color: inherit;\n text-decoration: none;\n cursor: pointer; }\n .mdc-top-app-bar__action-item::before, .mdc-top-app-bar__action-item::after, .mdc-top-app-bar__navigation-icon::before, .mdc-top-app-bar__navigation-icon::after {\n position: absolute;\n border-radius: 50%;\n opacity: 0;\n pointer-events: none;\n content: \"\"; }\n .mdc-top-app-bar__action-item::before, .mdc-top-app-bar__navigation-icon::before {\n transition: opacity 15ms linear, background-color 15ms linear;\n z-index: 1; }\n .mdc-top-app-bar__action-item.mdc-ripple-upgraded::before, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::before {\n -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));\n transform: scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-top-app-bar__action-item.mdc-ripple-upgraded::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::after {\n top: 0;\n /* @noflip */\n left: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n .mdc-top-app-bar__action-item.mdc-ripple-upgraded--unbounded::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded--unbounded::after {\n top: var(--mdc-ripple-top, 0);\n /* @noflip */\n left: var(--mdc-ripple-left, 0); }\n .mdc-top-app-bar__action-item.mdc-ripple-upgraded--foreground-activation::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded--foreground-activation::after {\n -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;\n animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }\n .mdc-top-app-bar__action-item.mdc-ripple-upgraded--foreground-deactivation::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded--foreground-deactivation::after {\n -webkit-animation: mdc-ripple-fg-opacity-out 150ms;\n animation: mdc-ripple-fg-opacity-out 150ms;\n -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));\n transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }\n .mdc-top-app-bar__action-item::before, .mdc-top-app-bar__action-item::after, .mdc-top-app-bar__navigation-icon::before, .mdc-top-app-bar__navigation-icon::after {\n top: calc(50% - 50%);\n /* @noflip */\n left: calc(50% - 50%);\n width: 100%;\n height: 100%; }\n .mdc-top-app-bar__action-item.mdc-ripple-upgraded::before, .mdc-top-app-bar__action-item.mdc-ripple-upgraded::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::before, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::after {\n top: var(--mdc-ripple-top, calc(50% - 50%));\n /* @noflip */\n left: var(--mdc-ripple-left, calc(50% - 50%));\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-top-app-bar__action-item.mdc-ripple-upgraded::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::after {\n width: var(--mdc-ripple-fg-size, 100%);\n height: var(--mdc-ripple-fg-size, 100%); }\n .mdc-top-app-bar--short-collapsed {\n /* @noflip */\n border-radius: 0 0 24px 0; }\n [dir=\"rtl\"] .mdc-top-app-bar--short-collapsed, .mdc-top-app-bar--short-collapsed[dir=\"rtl\"] {\n /* @noflip */\n border-radius: 0 0 0 24px; }\n .mdc-top-app-bar--short {\n top: 0;\n /* @noflip */\n right: auto;\n /* @noflip */\n left: 0;\n width: 100%;\n transition: width 250ms cubic-bezier(0.4, 0, 0.2, 1); }\n [dir=\"rtl\"] .mdc-top-app-bar--short, .mdc-top-app-bar--short[dir=\"rtl\"] {\n /* @noflip */\n right: 0;\n /* @noflip */\n left: auto; }\n .mdc-top-app-bar--short .mdc-top-app-bar__row {\n height: 56px; }\n .mdc-top-app-bar--short .mdc-top-app-bar__section {\n padding: 4px; }\n .mdc-top-app-bar--short .mdc-top-app-bar__title {\n transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 1; }\n .mdc-top-app-bar--short-collapsed {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n width: 56px;\n transition: width 300ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__title {\n display: none; }\n .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__action-item {\n transition: padding 150ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item {\n width: 112px; }\n .mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 12px; }\n [dir=\"rtl\"] .mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end, .mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 12px;\n /* @noflip */\n padding-right: 0; }\n .mdc-top-app-bar--dense .mdc-top-app-bar__row {\n height: 48px; }\n .mdc-top-app-bar--dense .mdc-top-app-bar__section {\n padding: 0 4px; }\n .mdc-top-app-bar--dense .mdc-top-app-bar__title {\n /* @noflip */\n padding-left: 12px;\n /* @noflip */\n padding-right: 0; }\n [dir=\"rtl\"] .mdc-top-app-bar--dense .mdc-top-app-bar__title, .mdc-top-app-bar--dense .mdc-top-app-bar__title[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 12px; }\n .mdc-top-app-bar--prominent .mdc-top-app-bar__row {\n height: 128px; }\n .mdc-top-app-bar--prominent .mdc-top-app-bar__title {\n align-self: flex-end;\n padding-bottom: 2px; }\n .mdc-top-app-bar--prominent .mdc-top-app-bar__action-item,\n.mdc-top-app-bar--prominent .mdc-top-app-bar__navigation-icon {\n align-self: flex-start; }\n .mdc-top-app-bar--fixed {\n transition: box-shadow 200ms linear; }\n .mdc-top-app-bar--fixed-scrolled {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\n transition: box-shadow 200ms linear; }\n .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__row {\n height: 96px; }\n .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__section {\n padding: 0 12px; }\n .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title {\n /* @noflip */\n padding-left: 20px;\n /* @noflip */\n padding-right: 0;\n padding-bottom: 9px; }\n [dir=\"rtl\"] .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title, .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 20px; }\n .mdc-top-app-bar--fixed-adjust {\n padding-top: 64px; }\n .mdc-top-app-bar--dense-fixed-adjust {\n padding-top: 48px; }\n .mdc-top-app-bar--short-fixed-adjust {\n padding-top: 56px; }\n .mdc-top-app-bar--prominent-fixed-adjust {\n padding-top: 128px; }\n .mdc-top-app-bar--dense-prominent-fixed-adjust {\n padding-top: 96px; }\n @media (max-width: 599px) {\n .mdc-top-app-bar__row {\n height: 56px; }\n .mdc-top-app-bar__section {\n padding: 4px; }\n .mdc-top-app-bar--short {\n transition: width 200ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-top-app-bar--short-collapsed {\n transition: width 250ms cubic-bezier(0.4, 0, 0.2, 1); }\n .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end {\n /* @noflip */\n padding-left: 0;\n /* @noflip */\n padding-right: 12px; }\n [dir=\"rtl\"] .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end, .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end[dir=\"rtl\"] {\n /* @noflip */\n padding-left: 12px;\n /* @noflip */\n padding-right: 0; }\n .mdc-top-app-bar--prominent .mdc-top-app-bar__title {\n padding-bottom: 6px; }\n .mdc-top-app-bar--fixed-adjust {\n padding-top: 56px; } }\n .mdc-typography {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased; }\n .mdc-typography--headline1 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 6rem;\n line-height: 6rem;\n font-weight: 300;\n letter-spacing: -0.015625em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--headline2 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 3.75rem;\n line-height: 3.75rem;\n font-weight: 300;\n letter-spacing: -0.00833333em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--headline3 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 3rem;\n line-height: 3.125rem;\n font-weight: 400;\n letter-spacing: normal;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--headline4 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 2.125rem;\n line-height: 2.5rem;\n font-weight: 400;\n letter-spacing: 0.00735294em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--headline5 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1.5rem;\n line-height: 2rem;\n font-weight: 400;\n letter-spacing: normal;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--headline6 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1.25rem;\n line-height: 2rem;\n font-weight: 500;\n letter-spacing: 0.0125em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--subtitle1 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.75rem;\n font-weight: 400;\n letter-spacing: 0.009375em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--subtitle2 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.375rem;\n font-weight: 500;\n letter-spacing: 0.00714286em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--body1 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 1rem;\n line-height: 1.5rem;\n font-weight: 400;\n letter-spacing: 0.03125em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--body2 {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.01785714em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--caption {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.75rem;\n line-height: 1.25rem;\n font-weight: 400;\n letter-spacing: 0.03333333em;\n text-decoration: inherit;\n text-transform: inherit; }\n .mdc-typography--button {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.875rem;\n line-height: 2.25rem;\n font-weight: 500;\n letter-spacing: 0.08928571em;\n text-decoration: none;\n text-transform: uppercase; }\n .mdc-typography--overline {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-size: 0.75rem;\n line-height: 2rem;\n font-weight: 500;\n letter-spacing: 0.16666667em;\n text-decoration: none;\n text-transform: uppercase; }\n .ngx-mdc-form-field--fluid {\n display: flex;\n flex: auto;\n flex-direction: column; }\n .ngx-mdc-button--primary:not(:disabled) {\n background-color: #6200ee; }\n .ngx-mdc-button--primary:not(:disabled) {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-button--primary::before, .ngx-mdc-button--primary::after {\n background-color: white; }\n @supports not (-ms-ime-align: auto) {\n .ngx-mdc-button--primary::before, .ngx-mdc-button--primary::after {\n /* @alternate */\n background-color: var(--mdc-theme-text-primary-on-dark, white); } }\n .ngx-mdc-button--primary:hover::before {\n opacity: 0.08; }\n .ngx-mdc-button--primary:not(.mdc-ripple-upgraded):focus::before, .ngx-mdc-button--primary.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-button--primary:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .ngx-mdc-button--primary:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-button--primary.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .ngx-mdc-button--secondary:not(:disabled) {\n background-color: #018786; }\n .ngx-mdc-button--secondary:not(:disabled) {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-button--secondary::before, .ngx-mdc-button--secondary::after {\n background-color: white; }\n @supports not (-ms-ime-align: auto) {\n .ngx-mdc-button--secondary::before, .ngx-mdc-button--secondary::after {\n /* @alternate */\n background-color: var(--mdc-theme-text-primary-on-dark, white); } }\n .ngx-mdc-button--secondary:hover::before {\n opacity: 0.08; }\n .ngx-mdc-button--secondary:not(.mdc-ripple-upgraded):focus::before, .ngx-mdc-button--secondary.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-button--secondary:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .ngx-mdc-button--secondary:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-button--secondary.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .ngx-mdc-chip--primary {\n background-color: #6200ee;\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--primary::before, .ngx-mdc-chip--primary::after {\n background-color: white; }\n @supports not (-ms-ime-align: auto) {\n .ngx-mdc-chip--primary::before, .ngx-mdc-chip--primary::after {\n /* @alternate */\n background-color: var(--mdc-theme-text-primary-on-dark, white); } }\n .ngx-mdc-chip--primary:hover::before {\n opacity: 0.08; }\n .ngx-mdc-chip--primary:not(.mdc-ripple-upgraded):focus::before, .ngx-mdc-chip--primary.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-chip--primary:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .ngx-mdc-chip--primary:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-chip--primary.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .ngx-mdc-chip--primary:hover {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--primary.mdc-chip--selected::before {\n opacity: 0.16; }\n .ngx-mdc-chip--primary.mdc-chip--selected::before, .ngx-mdc-chip--primary.mdc-chip--selected::after {\n background-color: white; }\n @supports not (-ms-ime-align: auto) {\n .ngx-mdc-chip--primary.mdc-chip--selected::before, .ngx-mdc-chip--primary.mdc-chip--selected::after {\n /* @alternate */\n background-color: var(--mdc-theme-text-primary-on-dark, white); } }\n .ngx-mdc-chip--primary.mdc-chip--selected:hover::before {\n opacity: 0.24; }\n .ngx-mdc-chip--primary.mdc-chip--selected:not(.mdc-ripple-upgraded):focus::before, .ngx-mdc-chip--primary.mdc-chip--selected.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.4; }\n .ngx-mdc-chip--primary.mdc-chip--selected:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .ngx-mdc-chip--primary.mdc-chip--selected:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.4; }\n .ngx-mdc-chip--primary.mdc-chip--selected.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.4; }\n .ngx-mdc-chip--primary.mdc-chip--selected {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--primary.mdc-chip--selected .mdc-chip__icon--leading {\n color: rgba(255, 255, 255, 0.54); }\n .ngx-mdc-chip--primary.mdc-chip--selected:hover {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--primary .mdc-chip__checkmark-path {\n stroke: white;\n /* @alternate */\n stroke: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--primary .mdc-chip__icon--leading {\n color: rgba(255, 255, 255, 0.54); }\n .ngx-mdc-chip--primary .mdc-chip__icon--trailing {\n color: rgba(255, 255, 255, 0.54); }\n .ngx-mdc-chip--primary .mdc-chip__icon--trailing:hover {\n color: rgba(255, 255, 255, 0.62); }\n .ngx-mdc-chip--primary .mdc-chip__icon--trailing:focus {\n color: rgba(255, 255, 255, 0.87); }\n .ngx-mdc-chip--secondary {\n background-color: #018786;\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--secondary::before, .ngx-mdc-chip--secondary::after {\n background-color: white; }\n @supports not (-ms-ime-align: auto) {\n .ngx-mdc-chip--secondary::before, .ngx-mdc-chip--secondary::after {\n /* @alternate */\n background-color: var(--mdc-theme-text-primary-on-dark, white); } }\n .ngx-mdc-chip--secondary:hover::before {\n opacity: 0.08; }\n .ngx-mdc-chip--secondary:not(.mdc-ripple-upgraded):focus::before, .ngx-mdc-chip--secondary.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-chip--secondary:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .ngx-mdc-chip--secondary:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.24; }\n .ngx-mdc-chip--secondary.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.24; }\n .ngx-mdc-chip--secondary:hover {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--secondary.mdc-chip--selected::before {\n opacity: 0.16; }\n .ngx-mdc-chip--secondary.mdc-chip--selected::before, .ngx-mdc-chip--secondary.mdc-chip--selected::after {\n background-color: white; }\n @supports not (-ms-ime-align: auto) {\n .ngx-mdc-chip--secondary.mdc-chip--selected::before, .ngx-mdc-chip--secondary.mdc-chip--selected::after {\n /* @alternate */\n background-color: var(--mdc-theme-text-primary-on-dark, white); } }\n .ngx-mdc-chip--secondary.mdc-chip--selected:hover::before {\n opacity: 0.24; }\n .ngx-mdc-chip--secondary.mdc-chip--selected:not(.mdc-ripple-upgraded):focus::before, .ngx-mdc-chip--secondary.mdc-chip--selected.mdc-ripple-upgraded--background-focused::before {\n transition-duration: 75ms;\n opacity: 0.4; }\n .ngx-mdc-chip--secondary.mdc-chip--selected:not(.mdc-ripple-upgraded)::after {\n transition: opacity 150ms linear; }\n .ngx-mdc-chip--secondary.mdc-chip--selected:not(.mdc-ripple-upgraded):active::after {\n transition-duration: 75ms;\n opacity: 0.4; }\n .ngx-mdc-chip--secondary.mdc-chip--selected.mdc-ripple-upgraded {\n --mdc-ripple-fg-opacity: 0.4; }\n .ngx-mdc-chip--secondary.mdc-chip--selected {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--secondary.mdc-chip--selected .mdc-chip__icon--leading {\n color: rgba(255, 255, 255, 0.54); }\n .ngx-mdc-chip--secondary.mdc-chip--selected:hover {\n color: white;\n /* @alternate */\n color: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--secondary .mdc-chip__checkmark-path {\n stroke: white;\n /* @alternate */\n stroke: var(--mdc-theme-text-primary-on-dark, white); }\n .ngx-mdc-chip--secondary .mdc-chip__icon--leading {\n color: rgba(255, 255, 255, 0.54); }\n .ngx-mdc-chip--secondary .mdc-chip__icon--trailing {\n color: rgba(255, 255, 255, 0.54); }\n .ngx-mdc-chip--secondary .mdc-chip__icon--trailing:hover {\n color: rgba(255, 255, 255, 0.62); }\n .ngx-mdc-chip--secondary .mdc-chip__icon--trailing:focus {\n color: rgba(255, 255, 255, 0.87); }\n .ngx-mdc-fab-extended--fluid {\n width: 100%; }\n .ngx-mdc-fab--bottom-right {\n position: fixed;\n right: 1rem;\n bottom: 1rem; }\n @media (min-width: 1024px) {\n .ngx-mdc-fab--bottom-right {\n right: 1.5rem;\n bottom: 1.5rem; } }\n .ngx-mdc-fab--bottom-left {\n position: fixed;\n bottom: 1rem;\n left: 1rem; }\n @media (min-width: 1024px) {\n .ngx-mdc-fab--bottom-left {\n bottom: 1.5rem;\n left: 1.5rem; } }\n .ngx-mdc-icon--clickable,\na.ngx-mdc-icon {\n outline: none;\n text-decoration: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .ngx-mdc-icon--inline {\n font-size: inherit;\n height: inherit;\n line-height: inherit;\n width: inherit; }\n .mdc-image-list__item {\n display: block; }\n .mdc-linear-progress {\n display: block; }\n .mdc-linear-progress--secondary .mdc-linear-progress__bar-inner {\n background-color: #018786; }\n .mdc-list,\n.mdc-list-divider {\n display: block; }\n .ngx-mdc-list--border {\n /* Ensure adjacent borders don't collide with one another. */ }\n .ngx-mdc-list--border .mdc-list-item {\n /* Add the list side padding padding to the list item. */\n padding: 0 16px;\n /* Add a border around each element. */\n border: 1px solid rgba(0, 0, 0, 0.12); }\n .ngx-mdc-list--border .mdc-list-item:not(:first-child) {\n border-top: none; }\n .mdc-menu-surface--anchor {\n display: inline-block; }\n .mdc-select__native-control {\n -webkit-appearance: none; }\n .mdc-slider {\n display: inline-block; }\n @media (min-width: 480px) {\n .ngx-mdc-snackbar--trailing {\n justify-content: flex-end; } }\n .ngx-mdc-tab--disabled {\n cursor: default;\n pointer-events: none; }\n .ngx-mdc-tab--disabled .mdc-tab__text-label {\n color: rgba(0, 0, 0, 0.3); }\n .ngx-mdc-tab--disabled .mdc-tab__icon {\n color: rgba(0, 0, 0, 0.3);\n fill: currentColor; }\n .ngx-mdc-tab--disabled .mdc-tab-indicator > .mdc-tab-indicator__content--underline {\n background-color: rgba(0, 0, 0, 0.3); }\n .mdc-tab-bar {\n display: block; }\n .mdc-tab-scroller {\n display: block; }\n .masonry-image-list {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 16px;\n -moz-column-gap: 16px;\n column-gap: 16px; }\n .masonry-image-list .mdc-image-list__item {\n margin-bottom: 16px; }\n @media (max-width: 599px) {\n .masonry-image-list {\n -webkit-column-count: 2;\n -moz-column-count: 2;\n column-count: 2;\n -webkit-column-gap: 16px;\n -moz-column-gap: 16px;\n column-gap: 16px; }\n .masonry-image-list .mdc-image-list__item {\n margin-bottom: 16px; } }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGJ1dHRvblxcX21peGlucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdHlwb2dyYXBoeVxcX21peGlucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdHlwb2dyYXBoeVxcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdHlwb2dyYXBoeVxcX2Z1bmN0aW9ucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcYnV0dG9uXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxzaGFwZVxcX21peGlucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc2hhcGVcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRoZW1lXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0aGVtZVxcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xccnRsXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvYnJhbmQtbGlzdC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGVsZXZhdGlvblxcX21peGlucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcZWxldmF0aW9uXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxyaXBwbGVcXF9rZXlmcmFtZXMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGFuaW1hdGlvblxcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xccmlwcGxlXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxyaXBwbGVcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGNhcmRcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGNhcmRcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGNoZWNrYm94XFxfa2V5ZnJhbWVzLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxjaGVja2JveFxcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcY2hlY2tib3hcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGNoaXBzXFxjaGlwXFxtZGMtY2hpcC5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc2hhcGVcXF9mdW5jdGlvbnMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGNoaXBzXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxjaGlwc1xcX21peGlucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcY2hpcHNcXGNoaXAtc2V0XFxtZGMtY2hpcC1zZXQuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGRpYWxvZ1xcX21peGlucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcZGlhbG9nXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxkcmF3ZXJcXGNvbW1vbi5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcZHJhd2VyXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxkcmF3ZXJcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGxpc3RcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGRyYXdlclxcZGlzbWlzc2libGVcXG1kYy1kcmF3ZXItZGlzbWlzc2libGUuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGRyYXdlclxcbW9kYWxcXG1kYy1kcmF3ZXItbW9kYWwuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGZhYlxcX21peGlucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcZmFiXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxmbG9hdGluZy1sYWJlbFxcbWRjLWZsb2F0aW5nLWxhYmVsLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxmbG9hdGluZy1sYWJlbFxcX21peGlucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcZm9ybS1maWVsZFxcX21peGlucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcZm9ybS1maWVsZFxcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcaWNvbi1idXR0b25cXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGljb24tYnV0dG9uXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxpbWFnZS1saXN0XFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxpbWFnZS1saXN0XFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxsYXlvdXQtZ3JpZFxcbWRjLWxheW91dC1ncmlkLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxsYXlvdXQtZ3JpZFxcX21peGlucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcbGF5b3V0LWdyaWRcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGxpbmUtcmlwcGxlXFxtZGMtbGluZS1yaXBwbGUuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGxpbmVhci1wcm9ncmVzc1xcX2tleWZyYW1lcy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcbGluZWFyLXByb2dyZXNzXFxtZGMtbGluZWFyLXByb2dyZXNzLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxsaW5lYXItcHJvZ3Jlc3NcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXGxpbmVhci1wcm9ncmVzc1xcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcbGlzdFxcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcbWVudVxcX21peGlucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcbWVudVxcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcbWVudS1zdXJmYWNlXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxtZW51LXN1cmZhY2VcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXG5vdGNoZWQtb3V0bGluZVxcbWRjLW5vdGNoZWQtb3V0bGluZS5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcbm90Y2hlZC1vdXRsaW5lXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxyYWRpb1xcX21peGlucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xccmFkaW9cXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHNlbGVjdFxcX2tleWZyYW1lcy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc2VsZWN0XFxpY29uXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxzZWxlY3RcXGljb25cXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHNlbGVjdFxcaWNvblxcbWRjLXNlbGVjdC1pY29uLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxzZWxlY3RcXGhlbHBlci10ZXh0XFxtZGMtc2VsZWN0LWhlbHBlci10ZXh0LnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxzZWxlY3RcXG1kYy1zZWxlY3Quc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHNlbGVjdFxcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc2VsZWN0XFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxzZWxlY3RcXGhlbHBlci10ZXh0XFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxub3RjaGVkLW91dGxpbmVcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHNsaWRlclxcX2tleWZyYW1lcy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc2xpZGVyXFxtZGMtc2xpZGVyLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxzbGlkZXJcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHNuYWNrYmFyXFxtZGMtc25hY2tiYXIuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHNuYWNrYmFyXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxzbmFja2JhclxcX3ZhcmlhYmxlcy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcc3dpdGNoXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFxzd2l0Y2hcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRhYi1pbmRpY2F0b3JcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRhYlxcbWRjLXRhYi5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdGFiXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0YWJcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRhYi1iYXJcXG1kYy10YWItYmFyLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0YWItYmFyXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0YWItaW5kaWNhdG9yXFxtZGMtdGFiLWluZGljYXRvci5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdGFiLXNjcm9sbGVyXFxtZGMtdGFiLXNjcm9sbGVyLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0ZXh0ZmllbGRcXGhlbHBlci10ZXh0XFxtZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdGV4dGZpZWxkXFxjaGFyYWN0ZXItY291bnRlclxcbWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRleHRmaWVsZFxcaWNvblxcbWRjLXRleHQtZmllbGQtaWNvbi5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdGV4dGZpZWxkXFxtZGMtdGV4dC1maWVsZC5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdGV4dGZpZWxkXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0ZXh0ZmllbGRcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRleHRmaWVsZFxcaGVscGVyLXRleHRcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRleHRmaWVsZFxcY2hhcmFjdGVyLWNvdW50ZXJcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXHNjc3NcXHRleHRmaWVsZFxcaWNvblxcX21peGlucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdGV4dGZpZWxkXFxpY29uXFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0b3AtYXBwLWJhclxcbWRjLXRvcC1hcHAtYmFyLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxzY3NzXFx0b3AtYXBwLWJhclxcX21peGlucy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcc2Nzc1xcdG9wLWFwcC1iYXJcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLWZvcm0tZmllbGQuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLWNoaXBzLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxleHRlbmRcXG1kYy1mYWIuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLWljb24uc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLWltYWdlLWxpc3Quc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLWxpbmVhci1wcm9ncmVzcy5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxtZGMtbGlzdC5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxtZGMtbWVudS5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxtZGMtc2VsZWN0LnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxleHRlbmRcXG1kYy1zbGlkZXIuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLXNuYWNrYmFyLnNjc3MiLCJzcmMvYXBwL2JyYW5kLWxpc3QvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxleHRlbmRcXG1kYy10YWIuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLXRhYi1iYXIuc2NzcyIsInNyYy9hcHAvYnJhbmQtbGlzdC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLXRhYi1zY3JvbGxlci5zY3NzIiwic3JjL2FwcC9icmFuZC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL3NyY1xcYXBwXFxicmFuZC1saXN0XFxicmFuZC1saXN0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThDRTtFQ1lJLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLG9CQzJFa0I7RUQzRWxCLHFCQzRFb0I7RUQ1RXBCLGlCQ3RCTztFRHNCUCw2QkVnQnVDO0VGaEJ2QyxzQkMrRXFCO0VEL0VyQiwwQkNnRnlCO0VGMkUzQixxQkk5TCtCO0VKME4vQixxQkFBb0I7RUFDcEIsbUJBQWtCO0VBQ2xCLG9CQUFtQjtFQUNuQix3QkFBdUI7RUFDdkIsdUJBQXNCO0VBQ3RCLGdCQUFlO0VBQ2YsYUlqT29CO0VKa09wQixhQUFZO0VBQ1osY0FBYTtFQUNiLGdCQUFnQjtFQUNoQixxQkFBb0I7RUFDcEIsMEJBQWlCO0tBQWpCLHVCQUFpQjtNQUFqQixzQkFBaUI7VUFBakIsa0JBQWlCO0VBQ2pCLHlCQUF3QjtFQUN4QixpQkFBZ0I7RUFDaEIsdUJBQXNCO0VLek50QixtQkNma0MsRU51Q25DO0VBaEJEO0lBc05JLFdBQVU7SUFDVixVQUFTLEVBRVo7RUF6TkQ7SUE4TkksY0FBYSxFQUVoQjtFQWhPRDtJQW9PSSxnQkFBZSxFQUVsQjtFQXRPRDtJT3NDSSw4QlBvTXFEO0lBRXJELDJCUWpQK0U7SVJxUC9FLGdCQUFlO0lBQ2YscUJBQW9CLEVBRXZCO0VBblBEO0lLUkUsbUJDZmtDLEVOc0xuQztFQS9KRDtJT3NDSSw4QlBuQ2tELEVBOEdyRDtFQWpIRDtJU29OQSxhQUFhO0lBQ2IsZUFqSGdCO0lBa0hoQixhQUFhO0lBQ2Isa0JUZ0NpRDtJQUVqRCxzQkFBcUI7SUFDckIsWUFBVztJQUNYLGFBQVk7SUFDWixnQkFBZTtJQUNmLG9CQUFtQixFQWhQaEI7RVVORDtNRG1OQSxhQUFhO01BQ2IsaUJUNEIrQztNUzNCL0MsYUFBYTtNQUNiLGdCQXpIYyxFQWxFYjtFVGxDSDtJT3VFSSxlQ3ZGcUI7SUQwR25CLGdCQUFnQjtJQUNoQix5Q0FBNEQsRVBvRGpFO0VBN0hEO0VTa01BLGFBQWE7RUFDYixpQlQ0Q2dEO0VTM0NoRCxhQUFhO0VBQ2IsZ0JBdEhlLEVUM0VkO0VVQUQ7SURvTUUsYUFBYTtJQUNiLGVBMUhhO0lBMkhiLGFBQWE7SUFDYixrQlRvQzhDLEVTL043QztFVFRIO0VBNE9BLG1CQUFrQixFQXhPakI7RUFFRDs7O0VTcUxBLGFBQWE7RUFDYixrQlRvRGdEO0VTbkRoRCxhQUFhO0VBQ2Isa0JUa0RxRCxFQWxPbEQ7RVVESDs7Ozs7SURvTEUsYUFBYTtJQUNiLGlCVDhDbUQ7SVM3Q25ELGFBQWE7SUFDYixtQlQ0QzhDLEVTdk83QztFVEhIOzs7RVNxTEEsYUFBYTtFQUNiLGlCVHdEK0M7RVN2RC9DLGFBQWE7RUFDYixtQlRzRHFELEVBaE9sRDtFVVVIOzs7OztJRG1LRSxhQUFhO0lBQ2Isa0JUa0RtRDtJU2pEbkQsYUFBYTtJQUNiLGtCVGdENkMsRVMzTzVDO0VUY0g7O0VBdUhFLHVCSTdMMEMsRUoyRTNDO0VBTEQ7O0lBdVBJLHNDUTVTK0U7SVI2Uy9FLDJCUTdTK0UsRVIrU2xGO0VBMVBEOztJT3VCSSwwQkN2RnFCLEVSaUl4QjtFT2xDMEM7TVAvQjNDOztRT2tDWSxnQkFBZ0I7UUFDaEIsb0RBQTRELEVBQzdELEVBQUE7RVBwQ1g7O0lPdUJJLFlDdEZxRjtJRHlHbkYsZ0JBQWdCO0lBQ2hCLHlDQUE0RCxFUG9EakU7RUF4RkQ7RVczQkUsMEhDbERnQztFWnVWaEMsMERXaFJ3RCxFWFF6RDtFQUZEO0lXM0JFLDJIQ2xEZ0MsRVo0VWpDO0VBL1BEO0lXM0JFLDRIQ2xEZ0MsRVpnVmpDO0VBblFEO0lXM0JFLHlIQ2xEZ0MsRVpvVmpDO0VBblFEO0VBME5FLG9CQUFtQjtFQTlHbkIsdUJBVzJDO0VBSzNDLGtCQTFIcUMsRUFFdEM7RUFKRDtJQStOSSxrQ1EvUitFLEVSaVNsRjtFQWpPRDtJT1lJLHNCQ3ZGcUI7SUQwR25CLGdCQUFnQjtJQUNoQixnREFBNEQsRVBnQ2pFO0VBMUREO0VBcVFBLGFJM1Y0QjtFSjRWNUIsb0JBQW1CLEVBbFFsQjtFYXZGRDtFQUNFO0lBQ0UsZ0VDUG1FO1lET25FLHdEQ1BtRTtJRFluRSwrRUFBc0U7WUFBdEUsdUVBQXNFLEVBQUE7RUFHeEU7SUFDRSx5R0FBZ0c7WUFBaEcsaUdBQWdHLEVBQUEsRUFBQTtFQVhwRztFQUNFO0lBQ0UsZ0VDUG1FO1lET25FLHdEQ1BtRTtJRFluRSwrRUFBc0U7WUFBdEUsdUVBQXNFLEVBQUE7RUFHeEU7SUFDRSx5R0FBZ0c7WUFBaEcsaUdBQWdHLEVBQUEsRUFBQTtFQUlwRztFQUNFO0lBQ0UsMENBQWlDO1lBQWpDLGtDQUFpQztJQUNqQyxXQUFVLEVBQUE7RUFHWjtJQUNFLHlDQUF3QyxFQUFBLEVBQUE7RUFQNUM7RUFDRTtJQUNFLDBDQUFpQztZQUFqQyxrQ0FBaUM7SUFDakMsV0FBVSxFQUFBO0VBR1o7SUFDRSx5Q0FBd0MsRUFBQSxFQUFBO0VBSTVDO0VBQ0U7SUFDRSwwQ0FBaUM7WUFBakMsa0NBQWlDO0lBQ2pDLHlDQUF3QyxFQUFBO0VBRzFDO0lBQ0UsV0FBVSxFQUFBLEVBQUE7RUFQZDtFQUNFO0lBQ0UsMENBQWlDO1lBQWpDLGtDQUFpQztJQUNqQyx5Q0FBd0MsRUFBQTtFQUcxQztJQUNFLFdBQVUsRUFBQSxFQUFBO0VFMEJWO0VBQ0UsbURBQW1DO0VBRW5DLG1CQUFrQixFQUtuQjtFQVJEO0lBTUksZ0RBQStDLEVBQ2hEO0VmOEJQO0VlbkJFLHdCQUFxQjtFQUNyQixxQkFBa0I7RUFDbEIsb0JBQWlCO0VBQ2pCLHlCQUFzQjtFQUN0QixpQ0FBOEI7RUFDOUIsbUNBQWdDO0VBRWhDLDhDQUE2QztFQUM3QyxnQ0FBK0IsRWZlaEM7RUFKRDtJZUxJLG1CQUFrQjtJQUNsQixtQkFBa0I7SUFDbEIsV0FBVTtJQUNWLHFCQUFvQjtJQUNwQixZQUFXLEVBRWQ7RWZERDtJZU1JLDhEQUVtRDtJQUluRCxXQUFVLEVBRWI7RWZkRDtJZW9CSSx3REFBK0M7WUFBL0MsZ0RBQStDLEVBRWxEO0VmdEJEO0llMEJJLE9BQU07SUFDTixhQUFhO0lBQ2IsUUFBTztJQUNQLDRCQUFtQjtZQUFuQixvQkFBbUI7SUFDbkIsd0NBQStCO1lBQS9CLGdDQUErQixFQUVsQztFZmhDRDtJZW9DSSw4QkFBNkI7SUFDN0IsYUFBYTtJQUNiLGdDQUErQixFQUVsQztFZnhDRDtJZTRDSSxrR0FFZ0U7WUFGaEUsMEZBRWdFLEVBRW5FO0VmaEREO0llb0RJLG1EQ3pKOEI7WUR5SjlCLDJDQ3pKOEI7SUQ4SjlCLHlHQUFnRztZQUFoRyxpR0FBZ0csRUFFbkc7RWYzREQ7SWVnTkksc0JBQTJCO0lBQzNCLGFBQWE7SUFDYix1QkFBNEI7SUFDNUIsWUFBa0I7SUFDbEIsYUFBbUIsRUFFdEI7RWZ0TkQ7SWUwTkksdUNBQXlDO0lBQ3pDLHdDQUEwQyxFQUU3QztFZjdORDtJT1BJLDBCQ3ZGcUIsRU8wS3hCO0VSM0UwQztNUEQzQztRT0lZLGdCQUFnQjtRQUNoQixvREFBNEQsRUFDN0QsRUFBQTtFUE5YO0llc0ZJLGNDakxNLEVEbUxUO0VmeEZEO0llK0dJLDBCQUF5QjtJQUl6QixjQzdNTSxFRCtNVDtFZnJIRDtJZWtJTSxpQ0FBd0QsRUFFM0Q7RWZwSUg7SWV3SU0sMEJDOU8wQjtJRG1QMUIsY0N0T0ksRUR3T1A7RWYvSUg7SWVvSkksOEJBQXdCLEVBRTNCO0VmaEpEOzs7RU9iSSx1QkN0RnFGLEVPeUt4RjtFUjNFMEM7SVBLM0M7OztNT0ZZLGdCQUFnQjtNQUNoQixvREFBNEQsRUFDN0QsRUFBQTtFUEFYOztFZWdGSSxjQ3pLTSxFRDJLVDtFZmxGRDs7O0VleUdJLDBCQUF5QjtFQUl6QixjQ3JNTSxFRHVNVDtFZi9HRDs7RWU0SE0saUNBQXdELEVBRTNEO0VmOUhIOztFZWtJTSwwQkM5TzBCO0VEbVAxQixjQzlOSSxFRGdPUDtFZnpJSDs7RWU4SUksOEJBQXdCLEVBRTNCO0VFbE9EO0VaVkUsbUJDZG1DO0VDNkZqQyx1QkM3RWtCO0VEZ0doQixnQkFBZ0I7RUFDaEIsaURBQTREO0VJ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Q2tCO0VITGxCLGFBQWE7RUFHZix1QnlCWTRCO0VBcUY5QixXQ2pGb0I7RURxRnBCLGFDakdzQjtFRk10QixjQUFhO0VBQ2IsdUJBQXNCO0VBQ3RCLGVBQWM7RUFDZCx1QkFBc0I7RUFDdEIsYUFBWTtFQUNaLHVDQUE4QjtFQUE5QiwrQkFBOEI7RUFBOUIsa0RBQThCO0VBQzlCLHlEZi9CdUU7RWVnQ3ZFLGFBQWE7RUFDYix3QkFBdUI7RUFDdkIsYUFBYTtFQUNiLDBCQUF5QjtFQUN6QixpQkFBZ0IsRUFxRGpCO0VBOUVEO0l0QmtETSwyQkMzQytFLEVzQjBCbEY7RURqQ0g7SXRCa0RNLDBCQzNDK0UsRXdCaVZsRjtFSHhWSDtJdEJrRE0sMEJDM0MrRSxFc0JvQ2xGO0VEM0NIO0l0QmtETSwwQkMzQytFLEV3QjZTbEY7RUhwVEg7SXRCa0RNLDJCQzNDK0UsRXNCNEVsRjtFRG5GSDtJdEJrRE0sZUN0RHFCLEV3QndUeEI7RUhwVEg7SXRCa0RNLDhCQ3REcUIsRXNCK0V4QjtFcEJ1dUNEO0lMMXlDTSxhQUFhO0lBQ2IsdUJDbEI0QixFR3VEL0I7RW9COUNMO0l4QklJLG1Cd0JNdUMsRUcwVHhDO0VIcFVIO0lwQmdPRSxhQUFhO0lBQ2IsbUJzQnpOc0I7SXRCME50QixhQUFhO0lBQ2IsZ0JBdEhlLEVxQkFkO0VwQitzQ0M7TUR0bENBLGFBQWE7TUFDYixlQTFIYTtNQTJIYixhQUFhO01BQ2Isb0JzQmpPb0IsRXRCc0NuQjtFQ214Q0g7SW1CcnlDRSxhQUFhO0lBQ2Isc0JBQXFCO0lBQ3JCLGFBQWE7SUFDYix1QkFBc0I7SUFDdEIsYUFBYTtJQUNiLHlCQUF3QjtJQUN4QixhQUFhO0lBQ2IseUJBQXdCLEVwQld2QjtFb0I5Q0w7STVCd0JNLGdDQ2xDeUM7SURrQ3pDLG1DQzlCOEI7SUQ4QjlCLG9DQzdCK0I7SUQ2Qi9CLG9CQzJDa0I7SUQzQ2xCLHNCQzRDcUI7SUQ1Q3JCLGlCQ3RCTztJRHNCUCw2QkVnQnVDO0lGaEJ2Qyx5QkMrQ3dCO0lEL0N4Qix3QkNnRHVCO0kyQjlCekIsNkJBQXlEO0lBRXpELGdC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bUJEO0lBSUksMEJBQXlCO0lBSXpCLGNDN01NLEVEK01UO0VvRDNNSDs7STVEOENNLDJCQzNDK0UsRTZEK0hsRjtFRmxJSDtJNUQ4Q00sMEJDM0MrRSxFNkRrQ2xGO0VGckNIOztJNUQ4Q00seUNDM0MrRSxFNkQwSWxGO0VGN0lIO0k1RDhDTSwwQkMzQytFLEU4RERsRjtFSEZIO0k5REFJLDJCa0JzR21ELEU4Q2xDcEQ7RUZwRUg7STVEK0VNLDBCQ3ZGcUI7SUQwR25CLGdCQUFnQjtJQUNoQixvREFBNEQsRThEV2pFO0VGOUdIO0k1RDhDTSw4QkN0RHFCLEU2RG9CdEI7RUZaTDtJNUQ4Q00seUNDM0MrRSxFNkRnQmxGO0UvQkdEO0lBUUksZ0RBQW9EO1lBQXBELHdDQUFvRCxFQUV2RDtFNkJoQ0g7STFENE5FLGFBQWE7SUFDYixXMkQzTW9DO0kzRDRNcEMsYUFBYTtJQUNiLGVBNUNxQjtJNERVbkIsVUFBUztJQUNULHFCQUFvQixFQUNyQjtFM0QyaEhDO01EeC9HQSxhQUFhO01BQ2IsY0FoRG1CO01BaURuQixhQUFhO01BQ2IsWTJEbk5rQyxFM0R3QmpDO0UwRDFDTDtJMUQ0TkUsYUFBYTtJQUNiLFcyRHZPNEI7STNEd081QixhQUFhO0lBQ2IsZUE1Q3FCLEU0RGlCbEI7RTNEZ2lIRDtNRGxnSEEsYUFBYTtNQUNiLGNBaERtQjtNQWlEbkIsYUFBYTtNQUNiLFkyRC9PMEIsRTNEb0R6QjtFMEQxQ0w7STFENE5FLGFBQWE7SUFDYixVa0R0TytCO0lsRHVPL0IsYUFBYTtJQUNiLGVBNUNxQjtJNER3QmpCLFVBQVMsRUFDVjtFM0RtaUhEO01EN2dIQSxhQUFhO01BQ2IsY0FoRG1CO01BaURuQixhQUFhO01BQ2IsV2tEOU82QixFbERtRDVCO0UwRDFDTDtJMUQ0TkUsYUFBYTtJQUNiLFc0RGI2RztJNURjN0csYUFBYTtJQUNiLGVBNUNxQixFNERrQ2hCO0UzRG9pSEg7TUR2aEhBLGFBQWE7TUFDYixjQWhEbUI7TUFpRG5CLGFBQWE7TUFDYixZNERyQjJHLEU1RHRLMUc7RTBEMUNMO00xRDRORSxhQUFhO01B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QUNFLGdCQUFlLEVBQ2hCO0VKZUw7O0kxRDJKRSxhQUFhO0lBQ2IsbUIyRHpPNkI7STNEME83QixhQUFhO0lBQ2Isb0IyRDVPNkI7SUNtVzNCLGNBQWE7SUFDYixrQkFBaUI7SUFDakIscUJBQW9CO0lBQ3BCLGFBQVk7SUFDWiw4QkFBNkI7SUFDN0IsV0FBVSxFQUNYO0UzRDBrSEM7OztNRHBzSEEsYUFBYTtNQUNiLG1CMkRoUDJCO00zRGlQM0IsYUFBYTtNQUNiLG9CMkRqUDJCLEUzRHNEMUI7RTBEdUJMO0lFOFJJLGtCQUFpQixFQUNsQjtFRi9SSDtJRWtTSSxXQUFVLEVBQ1g7RUZuU0g7SUVzU0kscUJBQW9CO0lBQ3BCLHFCQUFvQixFQUNyQjtFRnBTSDtFNURVTSxlQzFFbUI7RUQ2RmpCLGdCQUFnQjtFQUNoQix1Q0FBNEQsRThEOURqRTtFRmdDSDs7RTVEVU0sNkJDMUVtQjtFRDZGakIsZ0JBQWdCO0VBQ2hCLHFEQUE0RCxFOEQwQ2pFO0VGeEVIO0U1RFVNLDBCQzFFbUI7RUQ2RmpCLGdCQUFnQjtFQUNoQixrREFBNEQsRThEV2pFO0VGekNIO0U1RHZCTSxlQ3pDbUIsRTZET3BCO0VGeURMO0U1RFVNLGVDMUVtQjtFRDZGakIsZ0JBQWdCO0VBQ2hCLHVDQUE0RCxFK0QzRmpFO0VINkRIO0U1RFVNLDZCQzFFbUI7RUQ2RmpCLGdCQUFnQjtFQUNoQixxREFBNEQsRThEaEZqRTtFRTVCRDs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsOENBQTRELEVnRXhHakU7RUFKRDs7Ozs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsOENBQTRELEVnRXhHakU7RUFJRDs7O0VBR0Usa0JGaUg2QyxFRWhIOUM7RUFaRDs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsOENBQTRELEVnRXhHakU7RUowRUg7RUUwRkUsZ2ZBR1EsRUYzRVA7RUFsQkg7RUFzQkksV0FBVSxFQUNYO0VBR0g7RUFHSSxhQUFZLEVBQ2I7RUFHSDtFNUR4RE0sMEI2RHBDbUc7RUNz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LG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLG9CQzJEa0I7RUQzRGxCLHFCQzREb0I7RUQ1RHBCLGlCQ3ZCUTtFRHVCUiw2QkVnQnVDO0VGaEJ2Qyx5QkMrRHdCO0VEL0R4Qix3QkNnRXVCO0V5RWQzQixhQUFZO0VBQ1osdUJBQXNCO0VBQ3RCLFVBQVM7RUFHVCxtQkFBa0IsRUFDbkI7RUFJRDtFQUNFLGdCQUFlO0VBQ2YsNENBQTJDLEVBQzVDO0VBRUQ7RWxFdUlFLGFBQWE7RUFDYixla0V2STZDO0VsRXdJN0MsYUFBYTtFQUNiLGtCb0VoT3dCO0VGeUZ4QixjQUFhO0VBQ2IsZUFBYztFQUNkLG9CQUFtQjtFQUNuQix1QkFBc0IsRUFDdkI7RWpFNnpJQztJRHZySUUsYUFBYTtJQUNiLGlCb0VwT3NCO0lwRXFPdEIsYUFBYTtJQUNiLGdCa0UvSTJDLEVsRTVDMUM7RVR5R0g7RU9yR0ksZXNFekRpQyxFN0VrS3BDO0VlQUQ7RVJ6R0ksMEJzRXpEaUMsRTlENktwQztFQU9EO0VBR0ksY0N6S00sRUQyS1Q7RUFtQkQ7RUFJSSwwQkFBeUI7RUFJekIsY0NyTU0sRUR1TVQ7RUFXQztFQUVJLGlDQUF3RCxFQUUzRDtFQUVEO0VBRUksMEJDOU8wQjtFRG1QMUIsY0M5TkksRURnT1A7RUFHSDtFQUVJLDhCQUF3QixFQUUzQjtFNER6SUg7RXBFckRNLGlDQzVDa0IsRW1FbUd2QjtFNURrREM7SVJ6R0ksNENDNUNrQixFT2dLckI7RUFPRDtJQUdJLGNDektNLEVEMktUO0VBbUJEO0lBSUksMEJBQXlCO0lBSXpCLGNDck1NLEVEdU1UO0VBV0M7SUFFSSxpQ0FBd0QsRUFFM0Q7RUFFRDtJQUVJLDBCQzlPMEI7SURtUDFCLGNDOU5JLEVEZ09QO0VBR0g7SUFFSSw4QkFBd0IsRUFFM0I7RTREbklIO0VsQzFESSxZQUE0QjtFQUM1QixhQUE4QjtFQUM5QixhQU5pRjtFQU9qRixnQm9DekRpQyxFRmtIcEM7RWxDckRDOztJQUdJLFlvQ2hFK0I7SXBDaUUvQixhb0NqRStCLEVwQ21FbEM7RWtDaURIO0VsRStHRSxhQUFhO0VBQ2IsaUJvRTlOd0I7RXBFK054QixhQUFhO0VBQ2IsZ0JrRWpIb0UsRUFDckU7RWpFdTJJQztJRHB2SUUsYUFBYTtJQUNiLGVrRXJIa0U7SWxFc0hsRSxhQUFhO0lBQ2Isa0JvRXRPc0IsRXBFMkNyQjtFcUVoQ0g7RUF3SkEsc0JBQXFCO0VBQ3JCLG1CQUFrQjtFQUNsQixjQUFhO0VBQ2IsMEJBQWlCO0tBQWpCLHVCQUFpQjtNQUFqQixzQkFBaUI7VUFBakIsa0JBQWlCLEVBbEpoQjtFQVREO0l2RXFFSSwwQkNsRm9CO0lEcUdsQixnQkFBZ0I7SUFDaEIsc0RBQTREO0lBcEI5RCxzQkNsRm9CO0lEcUdsQixnQkFBZ0I7SUFDaEIsa0RBQTRELEV1RVNqRTtFQWxHRDtJdkVxRUksMEJDbEZvQjtJRHFHbEIsZ0JBQWdCO0lBQ2hCLHNEQUE0RDtJQXBCOUQsc0JDbEZvQjtJRHFHbEIsZ0JBQWdCO0lBQ2hCLGtEQUE0RCxFdUVvQmpFO0VBN0dEO0l2RW9DSSx1QkMzQytFO0lEMkMvRSxtQkMzQytFLEVzRXFJbEY7RUE5SEQ7SXZFb0NJLHVCQzVDa0I7SUQ0Q2xCLG1CQzVDa0IsRXNFaUpyQjtFQTlIRDtFckV1TUEsYUFBYTtFQUNiLFFxRUoyQztFckVLM0MsYUFBYTtFQUNiLGVBNUNxQjtFcUV3Q3JCLG1CQUFrQjtFQUNsQixPQUFNO0VBQ04sWUMxTjRCO0VEMk41QixhQ3pPK0I7RUQwTy9CLFVBQVM7RUFDVCxXQUFVO0VBQ1YsZ0JBQWU7RUFDZixxQkFBb0IsRUF6TW5CO0VwRTArSUQ7SURqeUlFLGFBQWE7SUFDYixjQWhEbUI7SUFpRG5CLGFBQWE7SUFDYixTcUVaeUMsRXJFL0t4QztFcUVmSDtFQWtKRSx1QkFBc0I7RUFDdEIsWUM1THlCO0VENkx6QixhQzVMMEI7RUQ2TDFCLGtCQUFpQjtFQUNqQixtQkFBMkM7RUFDM0MsYUFBWTtFQUlaLDBKaEVyTXFFLEVnRTRDdEU7RUFFRDtFckU2TEEsYUFBYTtFQUNiLFlzRWhPd0I7RXRFaU94QixhQUFhO0VBQ2IsZUE1Q3FCO0VxRWtCbkIsY0FBYTtFQUNiLG1CQUFrQjtFQUVsQixXQUFtRTtFQUNuRSxvQkFBbUI7RUFDbkIsd0JBQXVCO0VBQ3ZCLFlDdE42QjtFRHVON0IsYUN2TjZCO0VEd043QixpQ0FBd0I7VUFBeEIseUJBQXdCO0VBSXhCLG9LaEVoT3FFO0VnRWdPckUsNEpoRWhPcUU7RWdFZ09yRSxpTmhFaE9xRSxFZ0VnRHRFO0VwRSsvSUQ7SUQ5eklFLGFBQWE7SUFDYixjQWhEbUI7SUFpRG5CLGFBQWE7SUFDYixhc0V4T3NCLEV0RTZDckI7RXFFUEg7RW5FQ0UsMEhDbERnQztFa0UwUGhDLHVCQUFzQjtFQUN0QixZQ3pQNEI7RUQwUDVCLGFDMVA0QjtFRDJQNUIsbUJBQTRDO0VBQzVDLG1CQUFrQjtFQUVsQixxQkFBb0I7RUFDcEIsV0FBVSxFQTlNWDtFQUVEO0VBbU5BLGFBQVksRUEvTVA7RUFKTDtFQXVOQSxvQ0FBc0Q7VUFBdEQsNEJBQXNELEVBL01qRDtFcEVzZ0pMO0lvRXB6SUUscUNBQXlEO1lBQXpELDZCQUF5RCxFckV2TnhEO0VxRUhIO0VBZ09BLHFDQUF5RDtVQUF6RCw2QkFBeUQsRUFwTnBEO0VwRXVnSkw7SW9FaHpJRSxvQ0FBc0Q7WUFBdEQsNEJBQXNELEVyRWhPckQ7RXFFYUg7RUEwTkEsYUFBWTtFQUNaLHFCQUFvQixFQS9NbkI7RUFaRDtJQStOQSxrQkFBaUIsRUF6Tlo7RUFOTDtJQW1PQSxnQkFBZTtJQUNmLHFCQUFvQixFQTFOZjtFL0RzRkw7RVJ6R0ksMEJ3RXBDdUMsRWhFd0oxQztFQU9EO0VBR0ksY0N6S00sRUQyS1Q7RUFtQkQ7RUFJSSwwQkFBeUI7RUFJekIsY0NyTU0sRUR1TVQ7RUFXQztFQUVJLGlDQUF3RCxFQUUzRDtFQUVEO0VBRUksMEJDOU8wQjtFRG1QMUIsY0M5TkksRURnT1A7RUFHSDtFQUVJLDhCQUF3QixFQUUzQjtFK0QzSkQ7RS9EZEUsd0JBQXFCO0VBQ3JCLHFCQUFrQjtFQUNsQixvQkFBaUI7RUFDakIseUJBQXNCO0VBQ3RCLGlDQUE4QjtFQUM5QixtQ0FBZ0M7RUFFaEMsOENBQTZDO0VBQzdDLGdDQUErQixFK0RVaEM7RS9EUEQ7SUFHSSxtQkFBa0I7SUFDbEIsbUJBQWtCO0lBQ2xCLFdBQVU7SUFDVixxQkFBb0I7SUFDcEIsWUFBVyxFQUVkO0VBRUQ7SUFHSSw4REFFbUQ7SUFJbkQsV0FBVSxFQUViO0VBSUQ7SUFFSSx3REFBK0M7WUFBL0MsZ0RBQStDLEVBRWxEO0VBRUQ7SUFFSSxPQUFNO0lBQ04sYUFBYTtJQUNiLFFBQU87SUFDUCw0QkFBbUI7WUFBbkIsb0JBQW1CO0lBQ25CLHdDQUErQjtZQUEvQixnQ0FBK0IsRUFFbEM7RUFFRDtJQUVJLDhCQUE2QjtJQUM3QixhQUFhO0lBQ2IsZ0NBQStCLEVBRWxDO0VBRUQ7SUFFSSxrR0FFZ0U7WUFGaEUsMEZBRWdFLEVBRW5FO0VBRUQ7SUFFSSxtREN6SjhCO1lEeUo5QiwyQ0N6SjhCO0lEOEo5Qix5R0FBZ0c7WUFBaEcsaUdBQWdHLEVBRW5HO0VBd0tEO0lBR0kscUJBQStCO0lBQy9CLGFBQWE7SUFDYixzQkFBZ0M7SUFDaEMsWStENU91QztJL0Q2T3ZDLGErRDdPdUMsRS9EK08xQztFQUVEO0lBR0ksNENBQXNEO0lBQ3RELGFBQWE7SUFDYiw4Q0FBd0Q7SUFDeEQsdUNBQXlDO0lBQ3pDLHdDQUEwQyxFQUU3QztFQUVEO0lBRUksdUNBQXlDO0lBQ3pDLHdDQUEwQyxFQUU3QztFQTdMRDtJUnhFSSwwQkNsRm9CLEVPcUt2QjtFUjNFMEM7TUFFakM7UUFDRSxnQkFBZ0I7UUFDaEIsc0RBQTRELEVBQzdELEVBQUE7RVE2RVg7SUFHSSxjQ2pMTSxFRG1MVDtFQW1CRDtJQUlJLDBCQUF5QjtJQUl6QixjQzdNTSxFRCtNVDtFQVdDO0lBRUksaUNBQXdELEVBRTNEO0VBRUQ7SUFFSSwwQkM5TzBCO0lEbVAxQixjQ3RPSSxFRHdPUDtFQUdIO0lBRUksOEJBQXdCLEVBRTNCO0VpRWxSSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0VDV0g7RURORSxtQkFBa0I7RS9FZ0NkLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLG9CQzJFa0I7RUQzRWxCLHFCQzRFb0I7RUQ1RXBCLGlCQ3RCTztFRHNCUCw2QkVnQnVDO0VGaEJ2QyxzQkMrRXFCO0VEL0VyQiwwQkNnRnlCO0UrRXBHN0IsY0FBYTtFQUNiLGVBQWM7RUFDZCx3QkFBdUI7RUFDdkIsdUJBQXNCO0VBQ3RCLGFDbkJtQjtFRG9CbkIsZ0JBQWU7RUFDZixhQUFZO0VBQ1osY0FBYTtFQUNiLGlCQUFnQjtFQUNoQixtQkFBa0I7RUFDbEIsb0JBQW1CO0VBQ25CLGdCQUFlO0VBQ2YseUJBQXdCO0VBQ3hCLFdBQVUsRUFPWDtFQTFCRDtJMUVxRk0sWUM1RStFO0lEK0Y3RSxnQkFBZ0I7SUFDaEIseUNBQTRELEU0RTNHakU7RUZFSDtJMUVxRk0sWUM1RStFO0lEK0Y3RSxnQkFBZ0I7SUFDaEIseUNBQTREO0k0RXBHaEUsbUJBQWtCLEVBQ25CO0VGTkg7SUF1QkksV0FBVTtJQUNWLFVBQVMsRUFDVjtFQUdIO0VBQ0UsZUFBYyxFQUNmO0VBRUQ7RWxFeUNJLHdCQUFxQjtFQUNyQixxQkFBa0I7RUFDbEIsb0JBQWlCO0VBQ2pCLHlCQUFzQjtFQUN0QixpQ0FBOEI7RUFDOUIsbUNBQWdDO0VBRWhDLDhDQUE2QztFQUM3QyxnQ0FBK0I7RWtFNUNqQyxtQkFBa0I7RUFDbEIsT0FBTTtFQUNOLFFBQU87RUFDUCxZQUFXO0VBQ1gsYUFBWTtFQUNaLGlCQUFnQixFQUNqQjtFbEV5Q0M7SUFHSSxtQkFBa0I7SUFDbEIsbUJBQWtCO0lBQ2xCLFdBQVU7SUFDVixxQkFBb0I7SUFDcEIsWUFBVyxFQUVkO0VBRUQ7SUFHSSw4REFFbUQ7SUFJbkQsV0FBVSxFQUViO0VBSUQ7SUFFSSx3REFBK0M7WUFBL0MsZ0RBQStDLEVBRWxEO0VBRUQ7SUFFSSxPQUFNO0lBQ04sYUFBYTtJQUNiLFFBQU87SUFDUCw0QkFBbUI7WUFBbkIsb0JBQW1CO0lBQ25CLHdDQUErQjtZQUEvQixnQ0FBK0IsRUFFbEM7RUFFRDtJQUVJLDhCQUE2QjtJQUM3QixhQUFhO0lBQ2IsZ0NBQStCLEVBRWxDO0VBRUQ7SUFFSSxrR0FFZ0U7WUFGaEUsMEZBRWdFLEVBRW5FO0VBRUQ7SUFFSSxtREN6SjhCO1lEeUo5QiwyQ0N6SjhCO0lEOEo5Qix5R0FBZ0c7WUFBaEcsaUdBQWdHLEVBRW5HO0VBa0pEO0lBR0ksc0JBQTJCO0lBQzNCLGFBQWE7SUFDYix1QkFBNEI7SUFDNUIsWUFBa0I7SUFDbEIsYUFBbUIsRUFFdEI7RUFFRDtJQUVJLHVDQUF5QztJQUN6Qyx3Q0FBMEMsRUFFN0M7RUE1SkQ7SVJ4RUksMEJDdkZxQixFTzBLeEI7RVIzRTBDO01BRWpDO1FBQ0UsZ0JBQWdCO1FBQ2hCLG9EQUE0RCxFQUM3RCxFQUFBO0VRNkVYO0lBR0ksY0NqTE0sRURtTFQ7RUFtQkQ7SUFJSSwwQkFBeUI7SUFJekIsY0M3TU0sRUQrTVQ7RUFXQztJQUVJLGlDQUF3RCxFQUUzRDtFQUVEO0lBRUksMEJDOU8wQjtJRG1QMUIsY0N0T0ksRUR3T1A7RUFHSDtJQUVJLDhCQUF3QixFQUUzQjtFa0VyTUg7RURuREUsbUJBQWtCO0VDc0RsQixjQUFhO0VBQ2Isb0JBQW1CO0VBQ25CLHdCQUF1QjtFQUN2QixnQkFBZTtFQUNmLHFCQUFvQixFQUNyQjtFQUVEOztFQUVFLHFEQUFvRDtFQUNwRCxXQUFVLEVBQ1g7RUFFRDtFQUNFLHNCQUFxQjtFQUNyQixhQ3RFNkI7RUQyRTdCLGVBQWMsRUFDZjtFQUVEO0VBQ0UsWUNsRnNCO0VEbUZ0QixhQ25Gc0I7RURvRnRCLGNDaEZ3QjtFRGlGeEIsZ0JDckZzQixFRHNGdkI7RUFFRDtFQUNFLGFDdkYyQixFRHdGNUI7RUFFRDtFQUNFLHVCQUFzQjtFQUN0QixvQkFBbUI7RUFDbkIsK0JBQThCLEVBQy9CO0VBRUQ7RUFDRSxrQkFBaUIsRUFDbEI7RUFFRDtFQUNFLHFCQUFvQixFQUNyQjtFQUVEO0UxRVhNLGVDdkZxQjtFRDBHbkIsZ0JBQWdCO0VBQ2hCLHlDQUE0RCxFNEUzR2pFO0VGa0dIO0UxRVhNLGVDdkZxQjtFRDBHbkIsZ0JBQWdCO0VBQ2hCLHlDQUE0RDtFNEVwR2hFLG1CQUFrQixFQUNuQjtFRjBGSDs7RUFNSSx3QkFBdUI7RUFDdkIsV0FBVSxFQUNYO0VBR0g7RXhFdUhFLGFBQWE7RUFDYixrQndFdkhpRDtFeEV3SGpELGFBQWE7RUFDYixpQkF0SGUsRXdFRmhCO0V2RXV2SkM7SUQ1bkpFLGFBQWE7SUFDYixnQkExSGE7SUEySGIsYUFBYTtJQUNiLG1Cd0UvSCtDLEV4RTVEOUM7RTJFaEZMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7RUNyQkg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztFRE1IO0VDSEUsWURJK0IsRUFDaEM7RUU3QkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztFTnJCSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0VNT0g7RUFNRSxjQUFhO0VBQ2IsbUJBQWtCO0VBQ2xCLE9BQU07RUFDTixRQUFPO0VBQ1AsWUFBVztFQUNYLGFBQVk7RUFDWixxQkFBb0I7RUFDcEIsV0FBVSxFQUNYO0VOWkM7SXpFdUZJLDBCQ3ZGcUI7SUQwR25CLGdCQUFnQjtJQUNoQixvREFBNEQsRXlFekdqRTtFQUlEO0lBQ0UsWU1QNkMsRU5ROUM7RUFXRDtJekVvRUksZUNsRm9CO0lEcUdsQixnQkFBZ0I7SUFDaEIsMkNBQTRELEV5RXRGakU7RUFJRDtJQUNFLGFNeEJ5QztJTnlCekMsZ0JNekJ5QyxFTjBCMUM7RU1kSDtFQUNFLCtCQUFzQjtVQUF0Qix1QkFBc0I7RUFDdEIsV0FBVSxFQUNYO0VBRUQ7RUFDRSxxQkFBb0I7RUFDcEIsWUFBVyxFQUNaO0VBRUQ7RUFDRSxtQkFBa0I7RUFDbEIsZUFBYyxFQUNmO0VBRUQ7RUFDRSxXQUFVLEVBQ1g7RUFHRDtFQUNFLGlFeEUxQ3VFO0V3RTBDdkUseUR4RTFDdUU7RXdFMEN2RSwrR3hFMUN1RSxFd0UyQ3hFO0VBR0Q7RUFDRSxpQkFBZ0IsRUFDakI7RUFFRDtFQUNFLGlDQUFnQyxFQUNqQztFQUdEO0VBQ0Usd0JBQXVCLEVBQ3hCO0VDaEZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7RUFNSDtFQUNFLG1CQUFrQixFQUNuQjtFQUdEO0VBQ0UsbUJBQWtCO0VBQ2xCLGFBQVk7RUFDWixhQUFZO0VBQ1osY0FBYTtFQUNiLG1CQUFrQixFQUNuQjtFQUVEO0VBQ0Usa0NBQWlDO0VBQ2pDLGNBQWE7RUFDYixtQkFBa0IsRUFDbkI7RUFFRDs7RUFHSSxjQUFhLEVBQ2Q7RUFJSDtFQUNFLG1CQUFrQixFQUNuQjtFQUVEO0VKUUUsbUJBQWtCO0VJTGxCLGNBQWE7RUFDYixlQUFjO0VBQ2Qsd0JBQWU7VUFBZixnQkFBZTtFQUNmLHVCQUFzQixFQUN2QjtFQUVEO0VBQ0UsNEJBQTJCLEVBQzVCO0VBRUQ7RUFDRSwwQkFBeUIsRUFDMUI7RUFFRDtFQUNFLHdCQUF1QixFQUN4QjtFQUVEO0VBQ0UsaUNBQWdDLEVBQ2pDO0VBRUQ7RUFDRSxpRXpFN0R1RTtFeUU2RHZFLHlEekU3RHVFO0V5RTZEdkUsK0d6RTdEdUUsRXlFOER4RTtFQ3pERDtFdkY4Qk0sZ0NDbEN5QztFRGtDekMsbUNDOUI4QjtFRDhCOUIsb0NDN0IrQjtFRDZCL0IsbUJDbUVpQjtFRG5FakIscUJDb0VvQjtFRHBFcEIsaUJDdkJRO0VEdUJSLDZCRWdCdUM7RUZoQnZDLHlCQ3VFd0I7RUR2RXhCLHdCQ3dFdUI7RURwRHpCLGVBQWM7RUFDZCxjQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLG9CQUFtQjtFdUZqRHJCLFVBQVM7RUFDVCx1RDFFVnVFO0UwRVd2RSxXQUFVO0VBQ1YscUJBQW9CLEVBQ3JCO0V2RmdEQztJQTBCQSxzQkFBcUI7SUFDckIsU0FBUTtJQUNSLGF1RmxGeUM7SXZGbUZ6QyxZQUFXO0lBekJQLGtCQUFpQixFQUVwQjtFdUZwREg7RUFDRSxpQkFBZ0I7RUFDaEIsV0FBVTtFQUNWLHFCQUFvQixFQUNyQjtFQ2REO0V4RjhCTSxnQ0NsQ3lDO0VEa0N6QyxtQ0M5QjhCO0VEOEI5QixvQ0M3QitCO0VENkIvQixtQkNtRWlCO0VEbkVqQixxQkNvRW9CO0VEcEVwQixpQkN2QlE7RUR1QlIsNkJFZ0J1QztFRmhCdkMseUJDdUV3QjtFRHZFeEIsd0JDd0V1QjtFRHBEekIsZUFBYztFQUNkLGNBQWE7RUFDYixnQkFBZ0I7RUFDaEIsb0JBQW1CO0VRaUxyQixhQUFhO0VBQ2Isa0JnRm5PaUQ7RWhGb09qRCxhQUFhO0VBQ2IsZ0JBdEhlO0VBbUhmLGFBQWE7RUFDYixtQmdGbE9rRDtFaEZtT2xELGFBQWE7RUFDYixpQkF0SGU7RWdGNUdmLG9CQUFtQixFQUNwQjtFeEZnREM7SUEwQkEsc0JBQXFCO0lBQ3JCLFNBQVE7SUFDUixhd0ZsRnlDO0l4Rm1GekMsWUFBVztJQXpCUCxrQkFBaUIsRUFFcEI7RVMwaktEO0lENTRKRSxhQUFhO0lBQ2IsZUExSGE7SUEySGIsYUFBYTtJQUNiLG1CZ0YzTytDLEVoRmdEOUM7RUN5a0tIO0lEajVKRSxhQUFhO0lBQ2IsZ0JBMUhhO0lBMkhiLGFBQWE7SUFDYixvQmdGMU9nRCxFaEYrQy9DO0VpRnZETDs7RUFFRSxtQkFBa0I7RUFDbEIsYUFBWTtFQUNaLGdCQUFlLEVBQ2hCO0VBRUQ7O0VBRUUsZ0JBQWU7RUFDZixxQkFBb0IsRUFDckI7RUNLRDtFNUVnRUksd0JBQXFCO0VBQ3JCLHFCQUFrQjtFQUNsQixvQkFBaUI7RUFDakIseUJBQXNCO0VBQ3RCLGlDQUE4QjtFQUM5QixtQ0FBZ0M7RUFFaEMsOENBQTZDO0VBQzdDLGdDQUErQjtFVjNFL0IsMkJrQnNHbUQ7RW9FeEVyRCxxQkFBb0I7RUFDcEIsbUJBQWtCO0VBQ2xCLHVCQUFzQjtFQUN0QixhQ2pCMEI7RURrQjFCLGlCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsdUNBQXNDLEVBQ3ZDO0U1RXlDQztJQUdJLG1CQUFrQjtJQUNsQixtQkFBa0I7SUFDbEIsV0FBVTtJQUNWLHFCQUFvQjtJQUNwQixZQUFXLEVBRWQ7RUFFRDtJQUdJLDhEQUVtRDtJQUluRCxXQUFVLEVBRWI7RUFJRDtJQUVJLHdEQUErQztZQUEvQyxnREFBK0MsRUFFbEQ7RUFFRDtJQUVJLE9BQU07SUFDTixhQUFhO0lBQ2IsUUFBTztJQUNQLDRCQUFtQjtZQUFuQixvQkFBbUI7SUFDbkIsd0NBQStCO1lBQS9CLGdDQUErQixFQUVsQztFQUVEO0lBRUksOEJBQTZCO0lBQzdCLGFBQWE7SUFDYixnQ0FBK0IsRUFFbEM7RUFFRDtJQUVJLGtHQUVnRTtZQUZoRSwwRkFFZ0UsRUFFbkU7RUFFRDtJQUVJLG1EQ3pKOEI7WUR5SjlCLDJDQ3pKOEI7SUQ4SjlCLHlHQUFnRztZQUFoRyxpR0FBZ0csRUFFbkc7RUFNRDtJUnpHSSxzQ0MzQytFLEVPK0psRjtFQU9EO0lBR0ksY0NqTE0sRURtTFQ7RUFtQkQ7SUFJSSwwQkFBeUI7SUFJekIsY0M3TU0sRUQrTVQ7RUF3RkQ7SUFHSSxzQkFBMkI7SUFDM0IsYUFBYTtJQUNiLHVCQUE0QjtJQUM1QixZQUFrQjtJQUNsQixhQUFtQixFQUV0QjtFQUVEO0lBRUksdUNBQXlDO0lBQ3pDLHdDQUEwQyxFQUU3QztFNEVoVEg7SXBGMkNNLDBCQzNDK0UsRXFGcWpCbEY7RUZyakJIO0lwRjJDTSwyQkMzQytFLEVxRjJnQmxGO0VGM2dCSDtJcEY0RU0scUJDdkZxQjtJRDBHbkIsZ0JBQWdCO0lBQ2hCLCtDQUE0RCxFc0ZUakU7RUZ2Rkg7SXBGMkNNLHlDQzNDK0UsRXFGbWlCbEY7RUZuaUJIO0lwRjJDTSx5Q0MzQytFLEVxRnlpQmxGO0VGemlCSDtJcEY0RU0sMEJDdkZxQjtJRDBHbkIsZ0JBQWdCO0lBQ2hCLG9EQUE0RCxFc0YrY2pFO0VGL2lCSDtJcEYyQ00seUNDM0MrRSxFcUY2aEJsRjtFRjdoQkg7SXBGMkNNLDBCQzNDK0UsRXNGQWxGO0VIQUg7O0lwRjJDTSwwQkMzQytFLEV1RlFsRjtFSlJIO0lwRjJDTSwyQkMzQytFLEV3RnNDbEY7RUx0Q0g7SXBGMkNNLDZCcUY3QzhGLEVDdUJqRztFRnJCSDtJbEZ5TkUsYUFBYTtJQUNiLFdtRjNNZ0M7SW5GNE1oQyxhQUFhO0lBQ2IsZUE1Q3FCO0lvRjRCbkIsVUFBUztJQUNULHFCQUFvQixFQUNyQjtFbkZnaEtDO01ELy9KQSxhQUFhO01BQ2IsY0FoRG1CO01BaURuQixhQUFhO01BQ2IsWW1Gbk44QixFbkZ3QjdCO0VvRnlLRjtJcEZTRCxhQUFhO0lBQ2IsVWtEdE8rQjtJbER1Ty9C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QUNiLCtCQUE4QjtFQUM5Qix1QkFBc0IsRUFVdkI7RUFSQztJQUNFLG1CQUFrQixFQUNuQjtFQUVEO0lBQ0Usb0JDcEtxQztJRHFLckMsbUJDcktxQyxFRHNLdEM7RUFPSDtFQUNFLHVCQUFzQixFQUN2QjtFQUdEO0VwRjlKTSw4QkN0RHFCLEVxRmdrQnhCO0VGNVdIOztFcEY3SE0sZUMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsdUNBQTRELEVzRjZFL0Q7RUY0Qkw7RUUxREksV0FBVSxFQUNYO0V0QjVKRDs7O0VoRXdGSSxzQkN2RnFCO0VEMEduQixnQkFBZ0I7RUFDaEIsZ0RBQTRELEVnRXhHakU7RW9CeU5IO0VwRnJJTSw2QkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIscURBQTRELEVzRm1jakU7RUZsVkg7RXBGcklNLDZCQzFFbUI7RUQ2RmpCLGdCQUFnQjtFQUNoQixxREFBNEQsRXNGeWNqRTtFRnhWSDtFcEZySU0sMEJDMUVtQjtFRDZGakIsZ0JBQWdCO0VBQ2hCLGtEQUE0RCxFc0YrY2pFO0VGOVZIO0VwRnJJTSxlQzFFbUI7RUQ2RmpCLGdCQUFnQjtFQUNoQix1Q0FBNEQsRXNGcWRqRTtFRnBXSDtFcEZySU0sZUMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsdUNBQTRELEV1RjFGakU7RUgyTUg7RXBGcklNLHFCQzFFbUI7RUQ2RmpCLGdCQUFnQjtFQUNoQiw2Q0FBNEQsRXNGVGpFO0VGMEhIO0VwRnJJTSxlQzFFbUI7RUQ2RmpCLGdCQUFnQjtFQUNoQix1Q0FBNEQsRXlGMURqRTtFTDJLSDtFcEZySU0sZUMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsdUNBQTRELEV5RjlEN0Q7RUwrS1A7RUU5RUksV0FBVSxFQUNYO0V0QmhKRDs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsOENBQTRELEVnRXhHakU7RUFKRDs7Ozs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFBZ0I7RUFDaEIsOENBQTRELEVnRXhHakU7RUFKRDs7O0VoRXdGSSxzQkMxRW1CO0VENkZqQixnQkFB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RUZtTHZDO0VBRUQ7RUFDRSxtQkU3SzBDLEVGOEszQztFQUVEO0VBQ0Usa0JBQWtELEVBQ25EO0VDcEpDO0VBQ0U7SUFDRSxhQ3pDa0MsRUQwQ25DO0VBRUQ7SUFDRSxhQzVDc0MsRUQ2Q3ZDO0VBRUQ7SUFDRSxxRHJGNURtRSxFcUY2RHBFO0VBRUQ7SUFDRSxxRHJGaEVtRSxFcUZxRXBFO0lBTkQ7TTFGNEtGLGFBQWE7TUFDYixnQkFqSGdCO01Ba0hoQixhQUFhO01BQ2Isb0IyRjdOdUQsRURtRGxEO016RjQ4TUQ7UUQveE1GLGFBQWE7UUFDYixtQjJGak9xRDtRM0ZrT3JELGFBQWE7UUFDYixpQkF6SGMsRUFsRWI7RTBGY0Q7SUFFSSxvQkNqRG1ELEVEa0RwRDtFQUdIO0lBQ0Usa0JDbkVrQyxFRG9FbkMsRUFBQTtFbEczRUg7RUFnQkksZ0NDbkJ5QztFRG1CekMsbUNDZjhCO0VEZTlCLG9DQ2QrQixFREFsQztFQUdDO0VBMEJFLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLGdCQ2JlO0VEYWYsa0JDWmlCO0VEWWpCLGlCQ3hCTTtFRHdCTiw0QkVnQnVDO0VGaEJ2Qyx5QkNUd0I7RURTeEIsd0JDUnVCLEVEaEJ4QjtFQUZEO0VBMEJFLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLG1CQ0xrQjtFREtsQixxQkNKb0I7RURJcEIsaUJDeEJNO0VEd0JOLDhCRWdCdUM7RUZoQnZDLHlCQ0R3QjtFREN4Qix3QkNBdUIsRUR4QnhCO0VBRkQ7RUEwQkUsZ0NDbEN5QztFRGtDekMsbUNDOUI4QjtFRDhCOUIsb0NDN0IrQjtFRDZCL0IsZ0JDR2U7RURIZixzQkNJcUI7RURKckIsaUJDdkJRO0VEdUJSLHVCQ01zQjtFRE50Qix5QkNPd0I7RURQeEIsd0JDUXVCLEVEaEN4QjtFQUZEO0VBMEJFLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLG9CQ1dtQjtFRFhuQixvQkNZbUI7RURabkIsaUJDdkJRO0VEdUJSLDZCRWdCdUM7RUZoQnZDLHlCQ2V3QjtFRGZ4Qix3QkNnQnVCLEVEeEN4QjtFQUZEO0VBMEJFLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLGtCQ21CaUI7RURuQmpCLGtCQ29CaUI7RURwQmpCLGlCQ3ZCUTtFRHVCUix1QkNzQnNCO0VEdEJ0Qix5QkN1QndCO0VEdkJ4Qix3QkN3QnVCLEVEaER4QjtFQUZEO0VBMEJFLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLG1CQzJCa0I7RUQzQmxCLGtCQzRCaUI7RUQ1QmpCLGlCQ3RCTztFRHNCUCx5QkVnQnVDO0VGaEJ2Qyx5QkMrQndCO0VEL0J4Qix3QkNnQ3VCLEVEeER4QjtFQUZEO0VBMEJFLGdDQ2xDeUM7RURrQ3pDLG1DQzlCOEI7RUQ4QjlCLG9DQzdCK0I7RUQ2Qi9CLGdCQ21DZTtFRG5DZixxQkNvQ29CO0VEcENwQixpQkN2QlE7RUR1QlIsMkJFZ0J1QztFRmhCdkMseUJDdUN3QjtFRHZDeEIsd0JDd0N1QixFRGhFeEI7RUFGRDtFQTBCRSxnQ0NsQ3lDO0VEa0N6QyxtQ0M5QjhCO0VEOEI5QixvQ0M3QitCO0VENkIvQixvQkMyQ2tCO0VEM0NsQixzQkM0Q3FCO0VENUNyQixpQkN0Qk87RURzQlAsNkJFZ0J1QztFRmhCdkMseUJDK0N3QjtFRC9DeEIsd0JDZ0R1QixFRHhFeEI7RUFGRDtFQTBCRSxnQ0NsQ3lDO0VEa0N6QyxtQ0M5QjhCO0VEOEI5QixvQ0M3QitCO0VENkIvQixnQkNtRGU7RURuRGYsb0JDb0RtQjtFRHBEbkIsaUJDdkJRO0VEdUJSLDBCRWdCdUM7RUZoQnZDLHlCQ3VEd0I7RUR2RHhCLHdCQ3dEdUIsRURoRnhCO0VBRkQ7RUEwQkUsZ0NDbEN5QztFRGtDekMsbUNDOUI4QjtFRDhCOUIsb0NDN0IrQjtFRDZCL0Isb0JDMkRrQjtFRDNEbEIscUJDNERvQjtFRDVEcEIsaUJDdkJRO0VEdUJSLDZCRWdCdUM7RUZoQnZDLHlCQytEd0I7RUQvRHhCLHdCQ2dFdUIsRUR4RnhCO0VBRkQ7RUEwQkUsZ0NDbEN5QztFRGtDekMsbUNDOUI4QjtFRDhCOUIsb0NDN0IrQjtFRDZCL0IsbUJDbUVpQjtFRG5FakIscUJDb0VvQjtFRHBFcEIsaUJDdkJRO0VEdUJSLDZCRWdCdUM7RUZoQnZDLHlCQ3VFd0I7RUR2RXhCLHdCQ3dFdUIsRURoR3hCO0VBRkQ7RUEwQkUsZ0NDbEN5QztFRGtDekMsbUNDOUI4QjtFRDhCOUIsb0NDN0IrQjtFRDZCL0Isb0JDMkVrQjtFRDNFbEIscUJDNEVvQjtFRDVFcEIsaUJDdEJPO0VEc0JQLDZCRWdCdUM7RUZoQnZDLHNCQytFcUI7RUQvRXJCLDBCQ2dGeUIsRUR4RzFCO0VBRkQ7RUEwQkUsZ0NDbEN5QztFRGtDekMsbUNDOUI4QjtFRDhCOUIsb0NDN0IrQjtFRDZCL0IsbUJDbUZpQjtFRG5GakIsa0JDb0ZpQjtFRHBGakIsaUJDdEJPO0VEc0JQLDZCRWdCdUM7RUZoQnZDLHNCQ3VGcUI7RUR2RnJCLDBCQ3dGeUIsRURoSDFCO0VvR2xDTDtFQUNFLGNBQWE7RUFDYixXQUFVO0VBQ1YsdUJBQXNCLEVBQ3ZCO0VyR3VKQztFT3ZFSSwwQkN0RHFCLEVSaUl4QjtFQTBCRDtFT3BFSSxhQzFEWTtFRDZFVixnQkFBZ0I7RUFDaEIsb0RBQTRELEVQb0RqRTtFZUFEO0VSeEVJLHdCQzFEWSxFTzZJZjtFUjNFMEM7SUFFakM7TUFDRSxnQkFBZ0I7TUFDaEIsK0RBQTRELEVBQzdELEVBQUE7RVE2RVg7RUFHSSxjQ3pLTSxFRDJLVDtFQW1CRDtFQUlJLDBCQUF5QjtFQUl6QixjQ3JNTSxFRHVNVDtFQVdDO0VBRUksaUNBQXdELEVBRTNEO0VBRUQ7RUFFSSwwQkM5TzBCO0VEbVAxQixjQzlOSSxFRGdPUDtFQUdIO0VBRUksOEJBQXdCLEVBRTNCO0VmdkhEO0VPdkVJLDBCQ2pEb0IsRVI0SHZCO0VBMEJEO0VPcEVJLGFDMURZO0VENkVWLGdCQUFnQjtFQUNoQixvREFBNEQsRVBvRGpFO0VlQUQ7RVJ4RUksd0JDMURZLEVPNklmO0VSM0UwQztJQUVqQztNQUNFLGdCQUFn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RUFDZjtFQ0FEO0V4RW1NSSx3QndFbE11QztLeEVrTXZDLHFCd0VsTXVDO1V4RWtNdkMsZ0J3RWxNdUM7RXhFbU12Qyx5QkNqTHFDO0tEaUxyQyxzQkNqTHFDO1VEaUxyQyxpQkNqTHFDLEV1RWpCeEM7RUFGRDtJeEV5TU0sb0JDdExtQyxFRHdMdEM7RXdFdk1IO0VBQ0U7SXhFOExFLHdCd0U3THlDO094RTZMekMscUJ3RTdMeUM7WXhFNkx6QyxnQndFN0x5QztJeEU4THpDLHlCQ2pMcUM7T0RpTHJDLHNCQ2pMcUM7WURpTHJDLGlCQ2pMcUMsRXVFWnRDO0lBRkQ7TXhFb01JLG9CQ3RMbUMsRUR3THRDLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9icmFuZC1saXN0L2JyYW5kLWxpc3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy8gQ29weXJpZ2h0IDIwMTYgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2VsZXZhdGlvbi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vc2hhcGUvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1idXR0b24tY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtYnV0dG9uLXdpdGhvdXQtcmlwcGxlKCRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1idXR0b24tcmlwcGxlKCRxdWVyeSk7XG59XG5cbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcbi8vIGJ1dHRvbiBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1idXR0b24tY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gbWRjLWJ1dHRvbi13aXRob3V0LXJpcHBsZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGJ1dHRvblxuICAubWRjLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1iYXNlXygkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tc2hhcGUtcmFkaXVzKHNtYWxsLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1jb250YWluZXItZmlsbC1jb2xvcih0cmFuc3BhcmVudCwgJHF1ZXJ5KTtcblxuICAgIC8vIFRoZSBpY29uIENTUyBjbGFzcyBvdmVycmlkZXMgc3R5bGVzIGRlZmluZWQgaW4gdGhlIC5tYXRlcmlhbC1pY29ucyBDU1NcbiAgICAvLyBjbGFzcywgd2hpY2ggaXMgbG9hZGVkIHNlcGFyYXRlbHkgc28gdGhlIG9yZGVyIG9mIENTUyBkZWZpbml0aW9ucyBpcyBub3RcbiAgICAvLyBndWFyYW50ZWVkLiBUaGVyZWZvcmUsIGluY3JlYXNlIHNwZWNpZml0eSBieSBuZXN0aW5nIHRoaXMgY2xhc3MgdG8gZW5zdXJlXG4gICAgLy8gb3ZlcnJpZGVzIGFwcGx5LlxuICAgIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1idXR0b25fX2ljb25fO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1idXR0b24taW5rLWNvbG9yKHByaW1hcnksICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1idXR0b25fX2ljb24tdHJhaWxpbmdfO1xuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcbiAgc3ZnLm1kYy1idXR0b25fX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtYnV0dG9uX19pY29uLXN2Z187XG4gICAgfVxuICB9XG5cbiAgLm1kYy1idXR0b24tLXJhaXNlZCxcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQsXG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZCB7XG4gICAgLm1kYy1idXR0b25fX2ljb24ge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgLy8gSWNvbnMgaW5zaWRlIGNvbnRhaW5lZCBidXR0b25zIGhhdmUgZGlmZmVyZW50IHN0eWxlcyBkdWUgdG8gaW5jcmVhc2VkIGJ1dHRvbiBwYWRkaW5nXG4gICAgICAgIEBpbmNsdWRlIG1kYy1idXR0b25fX2ljb24tY29udGFpbmVkXztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtYnV0dG9uX19pY29uLWNvbnRhaW5lZC10cmFpbGluZ187XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1idXR0b24tLXJhaXNlZCxcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tLWZpbGxlZF8oJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKHByaW1hcnksICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1pbmstY29sb3Iob24tcHJpbWFyeSwgJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tLXJhaXNlZF8oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZCB7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi0tb3V0bGluZWRfKCRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1vdXRsaW5lLXdpZHRoKDJweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tb3V0bGluZS1jb2xvcihwcmltYXJ5LCAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1idXR0b24tLWRlbnNlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi0tZGVuc2VfO1xuICAgIH1cbiAgfVxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBidXR0b24gc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtYnV0dG9uLWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIG1kYy1idXR0b24tcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1jb21tb24oJHF1ZXJ5KTtcblxuICAubWRjLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlKCRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcyhwcmltYXJ5LCBmYWxzZSwgJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQsXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKG9uLXByaW1hcnksIGZhbHNlLCAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLWZpbGxlZC1hY2Nlc3NpYmxlKCRjb250YWluZXItZmlsbC1jb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmlsbC10b25lOiBtZGMtdGhlbWUtdG9uZSgkY29udGFpbmVyLWZpbGwtY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IoJGNvbnRhaW5lci1maWxsLWNvbG9yLCAkcXVlcnkpO1xuXG4gIEBpZiAoJGZpbGwtdG9uZSA9PSBcImRhcmtcIikge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24taW5rLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1kYXJrLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXModGV4dC1wcmltYXJ5LW9uLWRhcmssICRxdWVyeTogJHF1ZXJ5KTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWxpZ2h0LCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXModGV4dC1wcmltYXJ5LW9uLWxpZ2h0LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIDpub3QoOmRpc2FibGVkKSBpcyB1c2VkIHRvIHN1cHBvcnQgbGluayBzdHlsZWQgYXMgYnV0dG9uXG4gIC8vIGFzIGxpbmsgZG9lcyBub3Qgc3VwcG9ydCA6ZW5hYmxlZCBzdHlsZVxuICAmOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IsICRlZGdlT3B0T3V0OiB0cnVlKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tb3V0bGluZS1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgJjpub3QoOmRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1pY29uLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmOm5vdCg6ZGlzYWJsZWQpIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24taW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKFxuICAgIG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtYnV0dG9uLWhlaWdodCwgJHJhZGl1cyksXG4gICAgJHJ0bC1yZWZsZXhpdmUsXG4gICAgJHF1ZXJ5OiAkcXVlcnlcbiAgKTtcblxuICAmLm1kYy1idXR0b24tLWRlbnNlIHtcbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKFxuICAgICAgbWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1yYWRpdXMoJG1kYy1kZW5zZS1idXR0b24taGVpZ2h0LCAkcmFkaXVzKSxcbiAgICAgICRydGwtcmVmbGV4aXZlLFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLWhvcml6b250YWwtcGFkZGluZygkcGFkZGluZywgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgLy8gJHBhZGRpbmcgc2hvdWxkIGJlIGEgc2luZ2xlIHZhbHVlOyBlbmZvcmNlIGl0IGJ5IHNwZWNpZnlpbmcgYWxsIDQgc2lkZXMgaW4gdGhlIG91dHB1dFxuICAgIHBhZGRpbmc6IDAgJHBhZGRpbmcgMCAkcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1vdXRsaW5lLXdpZHRoKFxuICAkb3V0bGluZS13aWR0aCxcbiAgJHBhZGRpbmc6ICRtZGMtYnV0dG9uLWNvbnRhaW5lZC1ob3Jpem9udGFsLXBhZGRpbmcsXG4gICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKClcbikge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAvLyBOb3RlOiBBZGp1c3QgcGFkZGluZyB0byBtYWludGFpbiBjb25zaXN0ZW50IHdpZHRoIHdpdGggbm9uLW91dGxpbmVkIGJ1dHRvbnNcbiAgJHBhZGRpbmctdmFsdWU6IG1heCgkcGFkZGluZyAtICRvdXRsaW5lLXdpZHRoLCAwKTtcblxuICBAaW5jbHVkZSBtZGMtYnV0dG9uLWhvcml6b250YWwtcGFkZGluZygkcGFkZGluZy12YWx1ZSwgJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGJvcmRlci13aWR0aDogJG91dGxpbmUtd2lkdGg7XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tYmFzZV8oJHF1ZXJ5KSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGJ1dHRvbiwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1ob3Jpem9udGFsLXBhZGRpbmcoJG1kYy1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nLCAkcXVlcnkpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtaW4td2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiAkbWRjLWJ1dHRvbi1oZWlnaHQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuICAmOmFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCB0cmFuc3BhcmVudCk7XG5cbiAgICAgIGNvbG9yOiAkbWRjLWJ1dHRvbi1kaXNhYmxlZC1pbmstY29sb3I7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbl9faWNvbl8ge1xuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCByaWdodCwgOHB4KTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuQG1peGluIG1kYy1idXR0b25fX2ljb24tdHJhaWxpbmdfIHtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgOHB4KTtcbn1cblxuQG1peGluIG1kYy1idXR0b25fX2ljb24tc3ZnXyB7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cblxuQG1peGluIG1kYy1idXR0b25fX2ljb24tY29udGFpbmVkXyB7XG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgLTRweCwgOHB4KTtcbn1cblxuQG1peGluIG1kYy1idXR0b25fX2ljb24tY29udGFpbmVkLXRyYWlsaW5nXyB7XG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgOHB4LCAtNHB4KTtcbn1cblxuQG1peGluIG1kYy1idXR0b24tLW91dGxpbmVkXygkcXVlcnkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkbWRjLWJ1dHRvbi1kaXNhYmxlZC1pbmstY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLS1maWxsZWRfKCRxdWVyeSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtYnV0dG9uLWhvcml6b250YWwtcGFkZGluZygkbWRjLWJ1dHRvbi1jb250YWluZWQtaG9yaXpvbnRhbC1wYWRkaW5nLCAkcXVlcnkpO1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4xMik7XG4gICAgICBjb2xvcjogJG1kYy1idXR0b24tZGlzYWJsZWQtaW5rLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi0tcmFpc2VkXygkcXVlcnkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbigyLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbig0LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbig4LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDAsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXZhbHVlKCk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tLWRlbnNlXygpIHtcbiAgaGVpZ2h0OiAkbWRjLWRlbnNlLWJ1dHRvbi1oZWlnaHQ7XG4gIGZvbnQtc2l6ZTogLjgxMjVyZW07IC8vIDEzc3Bcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy10eXBvZ3JhcGh5LWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgLm1kYy10eXBvZ3JhcGh5IHtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIEBlYWNoICRzdHlsZSBpbiBtYXAta2V5cygkbWRjLXR5cG9ncmFwaHktc3R5bGVzKSB7XG4gICAgLm1kYy10eXBvZ3JhcGh5LS0jeyRzdHlsZX0ge1xuICAgICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoJHN0eWxlLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtdHlwb2dyYXBoeS1iYXNlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtdHlwb2dyYXBoeTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHR5cG9ncmFwaHkpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtdHlwb2dyYXBoeSkge1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWRjLXR5cG9ncmFwaHktYmFzZSB7XG4gICAgICAjeyRrZXl9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtdHlwb2dyYXBoeSgkc3R5bGUsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtdHlwb2dyYXBoeTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHR5cG9ncmFwaHkpO1xuICAkc3R5bGUtcHJvcHM6IG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LXN0eWxlcywgJHN0eWxlKTtcblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZGMtdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSkge1xuICAgIEBlcnJvciBcIkludmFsaWQgc3R5bGUgc3BlY2lmaWVkISAjeyRzdHlsZX0gZG9lc24ndCBleGlzdC4gQ2hvb3NlIG9uZSBvZiAje21hcC1rZXlzKCRtZGMtdHlwb2dyYXBoeS1zdHlsZXMpfVwiO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC10eXBvZ3JhcGh5KSB7XG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRzdHlsZS1wcm9wcyB7XG4gICAgICAjeyRrZXl9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG5cbi8vIEVsZW1lbnQgbXVzdCBiZSBgZGlzcGxheTogYmxvY2tgIG9yIGBkaXNwbGF5OiBpbmxpbmUtYmxvY2tgIGZvciB0aGlzIHRvIHdvcmsuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHktb3ZlcmZsb3ctZWxsaXBzaXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS10b3AoJGRpc3RhbmNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtc3RydXRfKCRkaXN0YW5jZSk7XG5cbiAgICAgIHZlcnRpY2FsLWFsaWduOiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtYm90dG9tKCRkaXN0YW5jZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogLTEgKiAkZGlzdGFuY2U7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXN0cnV0XygkZGlzdGFuY2UpO1xuXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogLTEgKiAkZGlzdGFuY2U7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS1zdHJ1dF8oJGRpc3RhbmNlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogJGRpc3RhbmNlO1xuICBjb250ZW50OiBcIlwiO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xuXG4kbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuJG1kYy10eXBvZ3JhcGh5LWJhc2U6IChcbiAgZm9udC1mYW1pbHk6ICRtZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSxcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZSxcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQsXG4pICFkZWZhdWx0O1xuXG4kbWRjLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdmFsdWVzOiAoXG4gIHRoaW46IDEwMCxcbiAgbGlnaHQ6IDMwMCxcbiAgcmVndWxhcjogNDAwLFxuICBtZWRpdW06IDUwMCxcbiAgYm9sZDogNzAwLFxuICBibGFjazogOTAwXG4pICFkZWZhdWx0O1xuXG4kbWRjLXR5cG9ncmFwaHktc3R5bGVzOiBtZGMtdHlwb2dyYXBoeS1zZXQtc3R5bGVzXyhcbiAgJG1kYy10eXBvZ3JhcGh5LWJhc2UsXG4gIChcbiAgICBoZWFkbGluZTE6IChcbiAgICAgIGZvbnQtc2l6ZTogNnJlbSwgLy8gOTZzcFxuICAgICAgbGluZS1oZWlnaHQ6IDZyZW0sXG4gICAgICBmb250LXdlaWdodDogbWFwLWdldCgkbWRjLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdmFsdWVzLCBsaWdodCksXG4gICAgICBsZXR0ZXItc3BhY2luZzogbWRjLXR5cG9ncmFwaHktZ2V0LWxldHRlci1zcGFjaW5nXygtMS41LCA2KSxcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdCxcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0XG4gICAgKSxcbiAgICBoZWFkbGluZTI6IChcbiAgICAgIGZvbnQtc2l6ZTogMy43NXJlbSwgLy8gNjBzcFxuICAgICAgbGluZS1oZWlnaHQ6IDMuNzVyZW0sXG4gICAgICBmb250LXdlaWdodDogbWFwLWdldCgkbWRjLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdmFsdWVzLCBsaWdodCksXG4gICAgICBsZXR0ZXItc3BhY2luZzogbWRjLXR5cG9ncmFwaHktZ2V0LWxldHRlci1zcGFjaW5nXygtLjUsIDMuNzUpLFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0LFxuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXRcbiAgICApLFxuICAgIGhlYWRsaW5lMzogKFxuICAgICAgZm9udC1zaXplOiAzcmVtLCAvLyA0OHB4XG4gICAgICBsaW5lLWhlaWdodDogMy4xMjVyZW0sIC8vIDUwcHhcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIHJlZ3VsYXIpLFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCxcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdCxcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0XG4gICAgKSxcbiAgICBoZWFkbGluZTQ6IChcbiAgICAgIGZvbnQtc2l6ZTogMi4xMjVyZW0sIC8vIDM0c3BcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW0sIC8vIDQwc3BcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIHJlZ3VsYXIpLFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG1kYy10eXBvZ3JhcGh5LWdldC1sZXR0ZXItc3BhY2luZ18oLjI1LCAyLjEyNSksXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQsXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdFxuICAgICksXG4gICAgaGVhZGxpbmU1OiAoXG4gICAgICBmb250LXNpemU6IDEuNXJlbSwgLy8gMjRzcFxuICAgICAgbGluZS1oZWlnaHQ6IDJyZW0sIC8vIDMyc3BcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIHJlZ3VsYXIpLFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCxcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdCxcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0XG4gICAgKSxcbiAgICBoZWFkbGluZTY6IChcbiAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbSwgLy8gMjBzcFxuICAgICAgbGluZS1oZWlnaHQ6IDJyZW0sIC8vIDMyc3BcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIG1lZGl1bSksXG4gICAgICBsZXR0ZXItc3BhY2luZzogbWRjLXR5cG9ncmFwaHktZ2V0LWxldHRlci1zcGFjaW5nXyguMjUsIDEuMjUpLFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0LFxuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXRcbiAgICApLFxuICAgIHN1YnRpdGxlMTogKFxuICAgICAgZm9udC1zaXplOiAxcmVtLCAvLyAxNnNwXG4gICAgICBsaW5lLWhlaWdodDogMS43NXJlbSwgLy8gMjhzcFxuICAgICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXZhbHVlcywgcmVndWxhciksXG4gICAgICBsZXR0ZXItc3BhY2luZzogbWRjLXR5cG9ncmFwaHktZ2V0LWxldHRlci1zcGFjaW5nXyguMTUsIDEpLFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0LFxuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXRcbiAgICApLFxuICAgIHN1YnRpdGxlMjogKFxuICAgICAgZm9udC1zaXplOiAuODc1cmVtLCAvLyAxNHNwXG4gICAgICBsaW5lLWhlaWdodDogMS4zNzVyZW0sIC8vIDIyc3BcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIG1lZGl1bSksXG4gICAgICBsZXR0ZXItc3BhY2luZzogbWRjLXR5cG9ncmFwaHktZ2V0LWxldHRlci1zcGFjaW5nXyguMSwgLjg3NSksXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQsXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdFxuICAgICksXG4gICAgYm9keTE6IChcbiAgICAgIGZvbnQtc2l6ZTogMXJlbSwgLy8gMTZzcFxuICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbSwgLy8gMjRzcFxuICAgICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXZhbHVlcywgcmVndWxhciksXG4gICAgICBsZXR0ZXItc3BhY2luZzogbWRjLXR5cG9ncmFwaHktZ2V0LWxldHRlci1zcGFjaW5nXyguNSwgMSksXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQsXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdFxuICAgICksXG4gICAgYm9keTI6IChcbiAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbSwgLy8gMTRzcFxuICAgICAgbGluZS1oZWlnaHQ6IDEuMjVyZW0sIC8vIDIwc3BcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIHJlZ3VsYXIpLFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG1kYy10eXBvZ3JhcGh5LWdldC1sZXR0ZXItc3BhY2luZ18oLjI1LCAuODc1KSxcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdCxcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0XG4gICAgKSxcbiAgICBjYXB0aW9uOiAoXG4gICAgICBmb250LXNpemU6IC43NXJlbSwgLy8gMTJzcFxuICAgICAgbGluZS1oZWlnaHQ6IDEuMjVyZW0sIC8vIDIwc3BcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIHJlZ3VsYXIpLFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG1kYy10eXBvZ3JhcGh5LWdldC1sZXR0ZXItc3BhY2luZ18oLjQsIC43NSksXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQsXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdFxuICAgICksXG4gICAgYnV0dG9uOiAoXG4gICAgICBmb250LXNpemU6IC44NzVyZW0sIC8vIDE0c3BcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtLCAvLyAzNnNwXG4gICAgICBmb250LXdlaWdodDogbWFwLWdldCgkbWRjLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdmFsdWVzLCBtZWRpdW0pLFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG1kYy10eXBvZ3JhcGh5LWdldC1sZXR0ZXItc3BhY2luZ18oMS4yNSwgLjg3NSksXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUsXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlXG4gICAgKSxcbiAgICBvdmVybGluZTogKFxuICAgICAgZm9udC1zaXplOiAuNzVyZW0sIC8vIDEyc3BcbiAgICAgIGxpbmUtaGVpZ2h0OiAycmVtLCAvLyAzMnNwXG4gICAgICBmb250LXdlaWdodDogbWFwLWdldCgkbWRjLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdmFsdWVzLCBtZWRpdW0pLFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IG1kYy10eXBvZ3JhcGh5LWdldC1sZXR0ZXItc3BhY2luZ18oMiwgLjc1KSxcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSxcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2VcbiAgICApLFxuICApXG4pICFkZWZhdWx0O1xuIiwiXG4vL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGZ1bmN0aW9uIG1kYy10eXBvZ3JhcGh5LWdldC1nbG9iYWwtdmFyaWFibGVfKCRzdHlsZSkge1xuICBAaWYgJHN0eWxlID09IFwiaGVhZGxpbmUxXCIge1xuICAgIEByZXR1cm4gJG1kYy10eXBvZ3JhcGh5LXN0eWxlcy1oZWFkbGluZTE7XG4gIH0gQGVsc2UgaWYgJHN0eWxlID09IFwiaGVhZGxpbmUyXCIge1xuICAgIEByZXR1cm4gJG1kYy10eXBvZ3JhcGh5LXN0eWxlcy1oZWFkbGluZTI7XG4gIH0gQGVsc2UgaWYgJHN0eWxlID09IFwiaGVhZGxpbmUzXCIge1xuICAgIEByZXR1cm4gJG1kYy10eXBvZ3JhcGh5LXN0eWxlcy1oZWFkbGluZTM7XG4gIH0gQGVsc2UgaWYgJHN0eWxlID09IFwiaGVhZGxpbmU0XCIge1xuICAgIEByZXR1cm4gJG1kYy10eXBvZ3JhcGh5LXN0eWxlcy1oZWFkbGluZTQ7XG4gIH0gQGVsc2UgaWYgJHN0eWxlID09IFwiaGVhZGxpbmU1XCIge1xuICAgIEByZXR1cm4gJG1kYy10eXBvZ3JhcGh5LXN0eWxlcy1oZWFkbGluZTU7XG4gIH0gQGVsc2UgaWYgJHN0eWxlID09IFwiaGVhZGxpbmU2XCIge1xuICAgIEByZXR1cm4gJG1kYy10eXBvZ3JhcGh5LXN0eWxlcy1oZWFkbGluZTY7XG4gIH0gQGVsc2UgaWYgJHN0eWxlID09IFwic3VidGl0bGUxXCIge1xuICAgIEByZXR1cm4gJG1kYy10eXBvZ3JhcGh5LXN0eWxlcy1zdWJ0aXRsZTE7XG4gIH0gQGVsc2UgaWYgJHN0eWxlID09IFwic3VidGl0bGUyXCIge1xuICAgIEByZXR1cm4gJG1kYy10eXBvZ3JhcGh5LXN0eWxlcy1zdWJ0aXRsZTI7XG4gIH0gQGVsc2UgaWYgJHN0eWxlID09IFwiYm9keTFcIiB7XG4gICAgQHJldHVybiAkbWRjLXR5cG9ncmFwaHktc3R5bGVzLWJvZHkxO1xuICB9IEBlbHNlIGlmICRzdHlsZSA9PSBcImJvZHkyXCIge1xuICAgIEByZXR1cm4gJG1kYy10eXBvZ3JhcGh5LXN0eWxlcy1ib2R5MjtcbiAgfSBAZWxzZSBpZiAkc3R5bGUgPT0gXCJjYXB0aW9uXCIge1xuICAgIEByZXR1cm4gJG1kYy10eXBvZ3JhcGh5LXN0eWxlcy1jYXB0aW9uO1xuICB9IEBlbHNlIGlmICRzdHlsZSA9PSBcImJ1dHRvblwiIHtcbiAgICBAcmV0dXJuICRtZGMtdHlwb2dyYXBoeS1zdHlsZXMtYnV0dG9uO1xuICB9IEBlbHNlIGlmICRzdHlsZSA9PSBcIm92ZXJsaW5lXCIge1xuICAgIEByZXR1cm4gJG1kYy10eXBvZ3JhcGh5LXN0eWxlcy1vdmVybGluZTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxufVxuXG5AZnVuY3Rpb24gbWRjLXR5cG9ncmFwaHktc2V0LXN0eWxlc18oJGJhc2Utc3R5bGVzLCAkc2NhbGUtc3R5bGVzKSB7XG4gIEBlYWNoICRzdHlsZSwgJHN0eWxlLXByb3BzIGluICRzY2FsZS1zdHlsZXMge1xuXG4gICAgLy8gTWVyZ2UgYmFzZSBwcm9wZXJ0aWVzIGZvciBhbGwgc3R5bGVzLlxuICAgICRzdHlsZS1wcm9wczogbWFwLW1lcmdlKCRiYXNlLXN0eWxlcywgJHN0eWxlLXByb3BzKTtcblxuICAgIC8vIE1lcmdlIGdsb2JhbCBvdmVycmlkZXMgb250byBlYWNoIHN0eWxlLlxuICAgIEBpZiBnbG9iYWxfdmFyaWFibGVfZXhpc3RzKHVucXVvdGUoXCJtZGMtdHlwb2dyYXBoeS1zdHlsZXMtI3skc3R5bGV9XCIpKSB7XG4gICAgICAkc3R5bGUtcHJvcHM6IG1hcC1tZXJnZSgkc3R5bGUtcHJvcHMsIG1kYy10eXBvZ3JhcGh5LWdldC1nbG9iYWwtdmFyaWFibGVfKCN7JHN0eWxlfSkpO1xuICAgIH1cblxuICAgIC8vIE92ZXJyaWRlIG9yaWdpbmFsIHN0eWxlcyB3aXRoIG5ldyBzdHlsZXMuXG4gICAgJHNjYWxlLXN0eWxlczogbWFwLW1lcmdlKCRzY2FsZS1zdHlsZXMsICgjeyRzdHlsZX06ICRzdHlsZS1wcm9wcykpO1xuICB9XG5cbiAgQHJldHVybiAkc2NhbGUtc3R5bGVzO1xufVxuXG5AZnVuY3Rpb24gbWRjLXR5cG9ncmFwaHktZ2V0LWxldHRlci1zcGFjaW5nXygkdHJhY2tpbmcsICRmb250LXNpemUpIHtcbiAgQHJldHVybiAkdHJhY2tpbmcgLyAoJGZvbnQtc2l6ZSAqIDE2KSAqIDFlbTtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4kbWRjLWJ1dHRvbi1oZWlnaHQ6IDM2cHggIWRlZmF1bHQ7XG4kbWRjLWJ1dHRvbi1ob3Jpem9udGFsLXBhZGRpbmc6IDhweCAhZGVmYXVsdDtcbiRtZGMtYnV0dG9uLWNvbnRhaW5lZC1ob3Jpem9udGFsLXBhZGRpbmc6IDE2cHggIWRlZmF1bHQ7XG4kbWRjLWRlbnNlLWJ1dHRvbi1oZWlnaHQ6IDMycHggIWRlZmF1bHQ7XG5cbiRtZGMtYnV0dG9uLWRpc2FibGVkLWluay1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjM3KSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xuXG5AbWl4aW4gbWRjLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC8vIEV2ZW4gaWYgJHJ0bC1yZWZsZXhpdmUgaXMgdHJ1ZSwgb25seSBlbWl0IFJUTCBzdHlsZXMgaWYgd2UgY2FuJ3QgZWFzaWx5IHRlbGwgdGhhdCB0aGUgZ2l2ZW4gcmFkaXVzIGlzIHN5bW1ldHJpY2FsXG4gICAgJG5lZWRzLWZsaXA6ICRydGwtcmVmbGV4aXZlIGFuZCBsZW5ndGgoJHJhZGl1cykgPiAxO1xuXG4gICAgQGlmICgkbmVlZHMtZmxpcCkge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgIH1cblxuICAgIGJvcmRlci1yYWRpdXM6IG1kYy1zaGFwZS1wcm9wLXZhbHVlKCRyYWRpdXMpO1xuXG4gICAgQGlmICgkbmVlZHMtZmxpcCkge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgYm9yZGVyLXJhZGl1czogbWRjLXNoYXBlLWZsaXAtcmFkaXVzKG1kYy1zaGFwZS1wcm9wLXZhbHVlKCRyYWRpdXMpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4vLyBTaGFwZSBjYXRlZ29yaWVzXG4kbWRjLXNoYXBlLXNtYWxsLWNvbXBvbmVudC1yYWRpdXM6IDRweCAhZGVmYXVsdDtcbiRtZGMtc2hhcGUtbWVkaXVtLWNvbXBvbmVudC1yYWRpdXM6IDRweCAhZGVmYXVsdDtcbiRtZGMtc2hhcGUtbGFyZ2UtY29tcG9uZW50LXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8gU2hhcGUgY2F0ZWdvcnkgbWFwcGluZy5cbiRtZGMtc2hhcGUtY2F0ZWdvcnktdmFsdWVzOiAoXG4gIHNtYWxsOiAkbWRjLXNoYXBlLXNtYWxsLWNvbXBvbmVudC1yYWRpdXMsXG4gIG1lZGl1bTogJG1kYy1zaGFwZS1tZWRpdW0tY29tcG9uZW50LXJhZGl1cyxcbiAgbGFyZ2U6ICRtZGMtc2hhcGUtbGFyZ2UtY29tcG9uZW50LXJhZGl1cyxcbikgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi9mdW5jdGlvbnNcIjtcblxuQG1peGluIG1kYy10aGVtZS1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIDpyb290IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAZWFjaCAkc3R5bGUgaW4gbWFwLWtleXMoJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMpIHtcbiAgICAgICAgLS1tZGMtdGhlbWUtI3skc3R5bGV9OiAje21hcC1nZXQoJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMsICRzdHlsZSl9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRzdHlsZSBpbiBtYXAta2V5cygkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcykge1xuICAgIEBpZiAkc3R5bGUgIT0gXCJiYWNrZ3JvdW5kXCIgYW5kICRzdHlsZSAhPSBcInN1cmZhY2VcIiB7XG4gICAgICAubWRjLXRoZW1lLS0jeyRzdHlsZX0ge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRzdHlsZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIC5tZGMtdGhlbWUtLSN7JHN0eWxlfSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkc3R5bGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ1NTIHJ1bGVzIGZvciB1c2luZyBwcmltYXJ5IGFuZCBzZWNvbmRhcnkgKHBsdXMgbGlnaHQvZGFyayB2YXJpYW50cykgYXMgYmFja2dyb3VuZCBjb2xvcnMuXG4gIEBlYWNoICRzdHlsZSBpbiAoXCJwcmltYXJ5XCIsIFwic2Vjb25kYXJ5XCIpIHtcbiAgICAubWRjLXRoZW1lLS0jeyRzdHlsZX0tYmcge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkc3R5bGUsIHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IHRoZW1lIGNvbG9yIHN0eWxlIHRvIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkuXG4vLyAkcHJvcGVydHkgaXMgdHlwaWNhbGx5IGNvbG9yIG9yIGJhY2tncm91bmQtY29sb3IsIGJ1dCBjYW4gYmUgYW55IENTUyBwcm9wZXJ0eSB0aGF0IGFjY2VwdHMgY29sb3IgdmFsdWVzLlxuLy8gJHN0eWxlIHNob3VsZCBiZSBvbmUgb2YgdGhlIG1hcCBrZXlzIGluICRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzIChfdmFyaWFibGVzLnNjc3MpLCBvciBhIGNvbG9yIHZhbHVlLlxuLy8gJGVkZ2VPcHRPdXQgY29udHJvbHMgd2hldGhlciB0byBmZWF0dXJlLWRldGVjdCBhcm91bmQgRWRnZSB0byBhdm9pZCBlbWl0dGluZyBDU1MgdmFyaWFibGVzIGZvciBpdCxcbi8vIGludGVuZGVkIGZvciB1c2UgaW4gY2FzZXMgd2hlcmUgaW50ZXJhY3Rpb25zIHdpdGggcHNldWRvLWVsZW1lbnQgc3R5bGVzIGNhdXNlIHByb2JsZW1zIGR1ZSB0byBFZGdlIGJ1Z3MuXG5AbWl4aW4gbWRjLXRoZW1lLXByb3AoJHByb3BlcnR5LCAkc3R5bGUsICRpbXBvcnRhbnQ6IGZhbHNlLCAkZWRnZU9wdE91dDogZmFsc2UpIHtcbiAgQGlmIG1kYy10aGVtZS1pcy12YXItd2l0aC1mYWxsYmFja18oJHN0eWxlKSB7XG4gICAgQGlmICRpbXBvcnRhbnQge1xuICAgICAgI3skcHJvcGVydHl9OiBtZGMtdGhlbWUtZ2V0LXZhci1mYWxsYmFja18oJHN0eWxlKSAhaW1wb3J0YW50O1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgI3skcHJvcGVydHl9OiBtZGMtdGhlbWUtdmFyXygkc3R5bGUpICFpbXBvcnRhbnQ7XG4gICAgfSBAZWxzZSB7XG4gICAgICAjeyRwcm9wZXJ0eX06IG1kYy10aGVtZS1nZXQtdmFyLWZhbGxiYWNrXygkc3R5bGUpO1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgI3skcHJvcGVydHl9OiBtZGMtdGhlbWUtdmFyXygkc3R5bGUpO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBtZGMtdGhlbWUtaXMtdmFsaWQtdGhlbWUtcHJvcC12YWx1ZV8oJHN0eWxlKSB7XG4gICAgQGlmICRpbXBvcnRhbnQge1xuICAgICAgI3skcHJvcGVydHl9OiAkc3R5bGUgIWltcG9ydGFudDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICN7JHByb3BlcnR5fTogJHN0eWxlO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcywgJHN0eWxlKSB7XG4gICAgICBAZXJyb3IgXCJJbnZhbGlkIHN0eWxlOiAnI3skc3R5bGV9Jy4gQ2hvb3NlIG9uZSBvZjogI3ttYXAta2V5cygkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcyl9XCI7XG4gICAgfVxuXG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzLCAkc3R5bGUpO1xuXG4gICAgQGlmICRpbXBvcnRhbnQge1xuICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWUgIWltcG9ydGFudDtcblxuICAgICAgQGlmICRlZGdlT3B0T3V0IHtcbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbWF4LW5lc3RpbmctZGVwdGhcbiAgICAgICAgQGF0LXJvb3Qge1xuICAgICAgICAgIC8vIElFIDExIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGlzIHN5bnRheCBhbmQgaWdub3JlcyB0aGUgZW50aXJlIGJsb2NrLlxuICAgICAgICAgIC8vIEVkZ2UgdW5kZXJzdGFuZHMgdGhpcyBzeW50YXggYW5kIHNraXBzIHRoZSBlbnRpcmUgYmxvY2sgdG8gYXZvaWQgYSBuYXN0eSA6YmVmb3JlLzphZnRlciBwc2V1ZG8tZWxlbWVudCBidWcuXG4gICAgICAgICAgLy8gQWxsIG90aGVyIGJyb3dzZXJzIGFwcGx5IHRoZSBzdHlsZXMgd2l0aGluIHRoZSBibG9jay5cbiAgICAgICAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL3NlbGVjdG9yLW5vLXJlZHVuZGFudC1uZXN0aW5nLXNlbGVjdG9yXG4gICAgICAgICAgICAmIHtcbiAgICAgICAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICAgICAgICAjeyRwcm9wZXJ0eX06IHZhcigtLW1kYy10aGVtZS0jeyRzdHlsZX0sICR2YWx1ZSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1lbmFibGUgc2Nzcy9zZWxlY3Rvci1uby1yZWR1bmRhbnQtbmVzdGluZy1zZWxlY3RvclxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG1heC1uZXN0aW5nLWRlcHRoXG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICAjeyRwcm9wZXJ0eX06IHZhcigtLW1kYy10aGVtZS0jeyRzdHlsZX0sICR2YWx1ZSkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuXG4gICAgICBAaWYgJGVkZ2VPcHRPdXQge1xuICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBtYXgtbmVzdGluZy1kZXB0aFxuICAgICAgICBAYXQtcm9vdCB7XG4gICAgICAgICAgLy8gSUUgMTEgZG9lc24ndCB1bmRlcnN0YW5kIHRoaXMgc3ludGF4IGFuZCBpZ25vcmVzIHRoZSBlbnRpcmUgYmxvY2suXG4gICAgICAgICAgLy8gRWRnZSB1bmRlcnN0YW5kcyB0aGlzIHN5bnRheCBhbmQgc2tpcHMgdGhlIGVudGlyZSBibG9jayB0byBhdm9pZCBhIG5hc3R5IDpiZWZvcmUvOmFmdGVyIHBzZXVkby1lbGVtZW50IGJ1Zy5cbiAgICAgICAgICAvLyBBbGwgb3RoZXIgYnJvd3NlcnMgYXBwbHkgdGhlIHN0eWxlcyB3aXRoaW4gdGhlIGJsb2NrLlxuICAgICAgICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIHNjc3Mvc2VsZWN0b3Itbm8tcmVkdW5kYW50LW5lc3Rpbmctc2VsZWN0b3JcbiAgICAgICAgICAgICYge1xuICAgICAgICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgICAgICAgICN7JHByb3BlcnR5fTogdmFyKC0tbWRjLXRoZW1lLSN7JHN0eWxlfSwgJHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1lbmFibGUgc2Nzcy9zZWxlY3Rvci1uby1yZWR1bmRhbnQtbmVzdGluZy1zZWxlY3RvclxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG1heC1uZXN0aW5nLWRlcHRoXG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICAjeyRwcm9wZXJ0eX06IHZhcigtLW1kYy10aGVtZS0jeyRzdHlsZX0sICR2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4vZnVuY3Rpb25zXCI7XG5cbi8vXG4vLyBNYWluIHRoZW1lIGNvbG9ycyBmb3IgeW91ciBicmFuZC5cbi8vXG4vLyBJZiB5b3UncmUgYSB1c2VyIGN1c3RvbWl6aW5nIHlvdXIgY29sb3Igc2NoZW1lIGluIFNBU1MsIHRoZXNlIGFyZSBwcm9iYWJseSB0aGUgb25seSB2YXJpYWJsZXMgeW91IG5lZWQgdG8gY2hhbmdlLlxuLy9cblxuJG1kYy10aGVtZS1wcmltYXJ5OiAjNjIwMGVlICFkZWZhdWx0OyAvLyBiYXNlbGluZSBwdXJwbGUsIDUwMCB0b25lXG4kbWRjLXRoZW1lLW9uLXByaW1hcnk6IGlmKG1kYy10aGVtZS1jb250cmFzdC10b25lKCRtZGMtdGhlbWUtcHJpbWFyeSkgPT0gXCJkYXJrXCIsICMwMDAsICNmZmYpICFkZWZhdWx0O1xuXG4vLyBUaGUgJG1kYy10aGVtZS1hY2NlbnQgdmFyaWFibGUgaXMgREVQUkVDQVRFRCAtIGl0IGV4aXN0cyBwdXJlbHkgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4vLyBUaGUgJG1kYy10aGVtZS1zZWNvbmRhcnkqIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBmb3IgYWxsIG5ldyBwcm9qZWN0cy5cbiRtZGMtdGhlbWUtYWNjZW50OiAjMDE4Nzg2ICFkZWZhdWx0OyAvLyBiYXNlbGluZSB0ZWFsLCA2MDAgdG9uZVxuJG1kYy10aGVtZS1zZWNvbmRhcnk6ICRtZGMtdGhlbWUtYWNjZW50ICFkZWZhdWx0O1xuJG1kYy10aGVtZS1vbi1zZWNvbmRhcnk6IGlmKG1kYy10aGVtZS1jb250cmFzdC10b25lKCRtZGMtdGhlbWUtc2Vjb25kYXJ5KSA9PSBcImRhcmtcIiwgIzAwMCwgI2ZmZikgIWRlZmF1bHQ7XG4kbWRjLXRoZW1lLWJhY2tncm91bmQ6ICNmZmYgIWRlZmF1bHQ7IC8vIFdoaXRlXG5cbiRtZGMtdGhlbWUtc3VyZmFjZTogI2ZmZiAhZGVmYXVsdDtcbiRtZGMtdGhlbWUtb24tc3VyZmFjZTogaWYobWRjLXRoZW1lLWNvbnRyYXN0LXRvbmUoJG1kYy10aGVtZS1zdXJmYWNlKSA9PSBcImRhcmtcIiwgIzAwMCwgI2ZmZikgIWRlZmF1bHQ7XG5cbiRtZGMtdGhlbWUtZXJyb3I6ICNiMDAwMjAgIWRlZmF1bHQ7XG4kbWRjLXRoZW1lLW9uLWVycm9yOiBpZihtZGMtdGhlbWUtY29udHJhc3QtdG9uZSgkbWRjLXRoZW1lLWVycm9yKSA9PSBcImRhcmtcIiwgIzAwMCwgI2ZmZikgIWRlZmF1bHQ7XG5cbi8vXG4vLyBUZXh0IGNvbG9ycyBhY2NvcmRpbmcgdG8gbGlnaHQgdnMgZGFyayBhbmQgdGV4dCB0eXBlLlxuLy9cblxuJG1kYy10aGVtZS10ZXh0LWNvbG9yczogKFxuICBkYXJrOiAoXG4gICAgcHJpbWFyeTogcmdiYShibGFjaywgLjg3KSxcbiAgICBzZWNvbmRhcnk6IHJnYmEoYmxhY2ssIC41NCksXG4gICAgaGludDogcmdiYShibGFjaywgLjM4KSxcbiAgICBkaXNhYmxlZDogcmdiYShibGFjaywgLjM4KSxcbiAgICBpY29uOiByZ2JhKGJsYWNrLCAuMzgpXG4gICksXG4gIGxpZ2h0OiAoXG4gICAgcHJpbWFyeTogd2hpdGUsXG4gICAgc2Vjb25kYXJ5OiByZ2JhKHdoaXRlLCAuNyksXG4gICAgaGludDogcmdiYSh3aGl0ZSwgLjUpLFxuICAgIGRpc2FibGVkOiByZ2JhKHdoaXRlLCAuNSksXG4gICAgaWNvbjogcmdiYSh3aGl0ZSwgLjUpXG4gIClcbikgIWRlZmF1bHQ7XG5cbiRtZGMtdGhlbWUtdGV4dC1lbXBoYXNpczogKFxuICBoaWdoOiAuODcsXG4gIG1lZGl1bTogLjYsXG4gIGRpc2FibGVkOiAuMzgsXG4pICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oJHRleHQtc3R5bGUsICRmaWxsLWNvbG9yKSB7XG4gICRjb250cmFzdC10b25lOiBtZGMtdGhlbWUtY29udHJhc3QtdG9uZSgkZmlsbC1jb2xvcik7XG5cbiAgQHJldHVybiBtYXAtZ2V0KG1hcC1nZXQoJG1kYy10aGVtZS10ZXh0LWNvbG9ycywgJGNvbnRyYXN0LXRvbmUpLCAkdGV4dC1zdHlsZSk7XG59XG5cbi8vXG4vLyBQcmltYXJ5IHRleHQgY29sb3JzIGZvciBlYWNoIG9mIHRoZSB0aGVtZSBjb2xvcnMuXG4vL1xuXG4kbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlczogKFxuICAvLyBQcmltYXJ5XG4gIHByaW1hcnk6ICRtZGMtdGhlbWUtcHJpbWFyeSxcbiAgLy8gU2Vjb25kYXJ5XG4gIHNlY29uZGFyeTogJG1kYy10aGVtZS1zZWNvbmRhcnksXG4gIC8vIEJhY2tncm91bmRcbiAgYmFja2dyb3VuZDogJG1kYy10aGVtZS1iYWNrZ3JvdW5kLFxuICAvLyBTdXJmYWNlXG4gIHN1cmZhY2U6ICRtZGMtdGhlbWUtc3VyZmFjZSxcbiAgLy8gRXJyb3JcbiAgZXJyb3I6ICRtZGMtdGhlbWUtZXJyb3IsXG4gIG9uLXByaW1hcnk6ICRtZGMtdGhlbWUtb24tcHJpbWFyeSxcbiAgb24tc2Vjb25kYXJ5OiAkbWRjLXRoZW1lLW9uLXNlY29uZGFyeSxcbiAgb24tc3VyZmFjZTogJG1kYy10aGVtZS1vbi1zdXJmYWNlLFxuICBvbi1lcnJvcjogJG1kYy10aGVtZS1vbi1lcnJvcixcbiAgLy8gVGV4dC1wcmltYXJ5IG9uIFwiYmFja2dyb3VuZFwiIGJhY2tncm91bmRcbiAgdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQ6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKHByaW1hcnksICRtZGMtdGhlbWUtYmFja2dyb3VuZCksXG4gIHRleHQtc2Vjb25kYXJ5LW9uLWJhY2tncm91bmQ6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKHNlY29uZGFyeSwgJG1kYy10aGVtZS1iYWNrZ3JvdW5kKSxcbiAgdGV4dC1oaW50LW9uLWJhY2tncm91bmQ6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKGhpbnQsICRtZGMtdGhlbWUtYmFja2dyb3VuZCksXG4gIHRleHQtZGlzYWJsZWQtb24tYmFja2dyb3VuZDogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oZGlzYWJsZWQsICRtZGMtdGhlbWUtYmFja2dyb3VuZCksXG4gIHRleHQtaWNvbi1vbi1iYWNrZ3JvdW5kOiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhpY29uLCAkbWRjLXRoZW1lLWJhY2tncm91bmQpLFxuICAvLyBUZXh0LXByaW1hcnkgb24gXCJsaWdodFwiIGJhY2tncm91bmRcbiAgdGV4dC1wcmltYXJ5LW9uLWxpZ2h0OiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhwcmltYXJ5LCBsaWdodCksXG4gIHRleHQtc2Vjb25kYXJ5LW9uLWxpZ2h0OiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhzZWNvbmRhcnksIGxpZ2h0KSxcbiAgdGV4dC1oaW50LW9uLWxpZ2h0OiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhoaW50LCBsaWdodCksXG4gIHRleHQtZGlzYWJsZWQtb24tbGlnaHQ6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKGRpc2FibGVkLCBsaWdodCksXG4gIHRleHQtaWNvbi1vbi1saWdodDogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oaWNvbiwgbGlnaHQpLFxuICAvLyBUZXh0LXByaW1hcnkgb24gXCJkYXJrXCIgYmFja2dyb3VuZFxuICB0ZXh0LXByaW1hcnktb24tZGFyazogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8ocHJpbWFyeSwgZGFyayksXG4gIHRleHQtc2Vjb25kYXJ5LW9uLWRhcms6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKHNlY29uZGFyeSwgZGFyayksXG4gIHRleHQtaGludC1vbi1kYXJrOiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhoaW50LCBkYXJrKSxcbiAgdGV4dC1kaXNhYmxlZC1vbi1kYXJrOiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhkaXNhYmxlZCwgZGFyayksXG4gIHRleHQtaWNvbi1vbi1kYXJrOiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhpY29uLCBkYXJrKVxuKSAhZGVmYXVsdDtcblxuLy8gSWYgYCRzdHlsZWAgaXMgYSBjb2xvciAoYSBsaXRlcmFsIGNvbG9yIHZhbHVlLCBgY3VycmVudENvbG9yYCwgb3IgYSBDU1MgY3VzdG9tIHByb3BlcnR5KSwgaXQgaXMgcmV0dXJuZWQgdmVyYmF0aW0uXG4vLyBPdGhlcndpc2UsIGAkc3R5bGVgIGlzIHRyZWF0ZWQgYXMgYSB0aGVtZSBwcm9wZXJ0eSBuYW1lLCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgZnJvbVxuLy8gYCRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzYCBpcyByZXR1cm5lZC4gSWYgdGhpcyBhbHNvIGZhaWxzLCBhbiBlcnJvciBpcyB0aHJvd24uXG4vL1xuLy8gVGhpcyBpcyBtYWlubHkgdXNlZnVsIGluIHNpdHVhdGlvbnMgd2hlcmUgYG1kYy10aGVtZS1wcm9wYCBjYW5ub3QgYmUgdXNlZCBkaXJlY3RseSAoZS5nLiwgYGJveC1zaGFkb3dgKS5cbi8vXG4vLyBFeGFtcGxlczpcbi8vXG4vLyAxLiBtZGMtdGhlbWUtcHJvcC12YWx1ZShwcmltYXJ5KSA9PiBcIiM2MjAwZWVcIlxuLy8gMi4gbWRjLXRoZW1lLXByb3AtdmFsdWUoYmx1ZSkgICAgPT4gXCJibHVlXCJcbi8vXG4vLyBOT1RFOiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgZGVmaW5lZCBpbiBfdmFyaWFibGVzLnNjc3MgaW5zdGVhZCBvZiBfZnVuY3Rpb25zLnNjc3MgdG8gYXZvaWQgY2lyY3VsYXIgaW1wb3J0cy5cbkBmdW5jdGlvbiBtZGMtdGhlbWUtcHJvcC12YWx1ZSgkc3R5bGUpIHtcbiAgQGlmIG1kYy10aGVtZS1pcy12YXItd2l0aC1mYWxsYmFja18oJHN0eWxlKSB7XG4gICAgQHJldHVybiBtZGMtdGhlbWUtZ2V0LXZhci1mYWxsYmFja18oJHN0eWxlKTtcbiAgfVxuXG4gIEBpZiBtZGMtdGhlbWUtaXMtdmFsaWQtdGhlbWUtcHJvcC12YWx1ZV8oJHN0eWxlKSB7XG4gICAgQHJldHVybiAkc3R5bGU7XG4gIH1cblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzLCAkc3R5bGUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHRoZW1lIHByb3BlcnR5OiAnI3skc3R5bGV9Jy4gQ2hvb3NlIG9uZSBvZjogI3ttYXAta2V5cygkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcyl9XCI7XG4gIH1cblxuICBAcmV0dXJuIG1hcC1nZXQoJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMsICRzdHlsZSk7XG59XG5cbi8vIE5PVEU6IFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBkZWZpbmVkIGluIF92YXJpYWJsZXMuc2NzcyBpbnN0ZWFkIG9mIF9mdW5jdGlvbnMuc2NzcyB0byBhdm9pZCBjaXJjdWxhciBpbXBvcnRzLlxuQGZ1bmN0aW9uIG1kYy10aGVtZS1hY2Nlc3NpYmxlLWluay1jb2xvcigkZmlsbC1jb2xvciwgJHRleHQtc3R5bGU6IHByaW1hcnkpIHtcbiAgJGZpbGwtY29sb3ItdmFsdWU6IG1kYy10aGVtZS1wcm9wLXZhbHVlKCRmaWxsLWNvbG9yKTtcbiAgJGNvbG9yLW1hcC1mb3ItdG9uZTogbWFwLWdldCgkbWRjLXRoZW1lLXRleHQtY29sb3JzLCBtZGMtdGhlbWUtY29udHJhc3QtdG9uZSgkZmlsbC1jb2xvci12YWx1ZSkpO1xuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGNvbG9yLW1hcC1mb3ItdG9uZSwgJHRleHQtc3R5bGUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkICR0ZXh0LXN0eWxlOiAnI3skdGV4dC1zdHlsZX0nLiBDaG9vc2Ugb25lIG9mOiAje21hcC1rZXlzKCRjb2xvci1tYXAtZm9yLXRvbmUpfVwiO1xuICB9XG5cbiAgQHJldHVybiBtYXAtZ2V0KCRjb2xvci1tYXAtZm9yLXRvbmUsICR0ZXh0LXN0eWxlKTtcbn1cblxuLy8gTk9URTogVGhpcyBmdW5jdGlvbiBpcyBkZXBlbmRlZCB1cG9uIGJ5IG1kYy10aGVtZS1wcm9wLXZhbHVlIChhYm92ZSkgYW5kIHRodXMgbXVzdCBiZSBkZWZpbmVkIGluIHRoaXMgZmlsZS5cbkBmdW5jdGlvbiBtZGMtdGhlbWUtaXMtdmFsaWQtdGhlbWUtcHJvcC12YWx1ZV8oJHN0eWxlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkc3R5bGUpID09IFwiY29sb3JcIiBvciAkc3R5bGUgPT0gXCJjdXJyZW50Q29sb3JcIiBvciBzdHJfc2xpY2UoJHN0eWxlLCAxLCA0KSA9PSBcInZhcihcIjtcbn1cblxuQGZ1bmN0aW9uIG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzKCRlbXBoYXNpcykge1xuICBAcmV0dXJuIG1hcC1nZXQoJG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzLCAkZW1waGFzaXMpO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbi8vIENyZWF0ZXMgYSBydWxlIHRoYXQgd2lsbCBiZSBhcHBsaWVkIHdoZW4gYW4gTURDIFdlYiBjb21wb25lbnQgaXMgd2l0aGluIHRoZSBjb250ZXh0IG9mIGFuIFJUTCBsYXlvdXQuXG4vL1xuLy8gVXNhZ2UgRXhhbXBsZTpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgbGVmdDogMDtcbi8vXG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwge1xuLy8gICAgIGxlZnQ6IGF1dG87XG4vLyAgICAgcmlnaHQ6IDA7XG4vLyAgIH1cbi8vXG4vLyAgICZfX2JhciB7XG4vLyAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbi8vICAgICBAaW5jbHVkZSBtZGMtcnRsKFwiLm1kYy1mb29cIikge1xuLy8gICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbi8vICAgICB9XG4vLyAgIH1cbi8vIH1cbi8vXG4vLyAubWRjLWZvby0tbW9kIHtcbi8vICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICBwYWRkaW5nLWxlZnQ6IGF1dG87XG4vLyAgICAgcGFkZGluZy1yaWdodDogNHB4O1xuLy8gICB9XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBOb3RlIHRoYXQgdGhpcyBtaXhpbiB3b3JrcyBieSBjaGVja2luZyBmb3IgYW4gYW5jZXN0b3IgZWxlbWVudCB3aXRoIGBbZGlyPVwicnRsXCJdYC5cbi8vIEFzIGEgcmVzdWx0LCBuZXN0ZWQgYGRpcmAgdmFsdWVzIGFyZSBub3Qgc3VwcG9ydGVkOlxuLy9cbi8vIGBgYGh0bWxcbi8vIDxodG1sIGRpcj1cInJ0bFwiPlxuLy8gICA8IS0tIC4uLiAtLT5cbi8vICAgPGRpdiBkaXI9XCJsdHJcIj5cbi8vICAgICA8ZGl2IGNsYXNzPVwibWRjLWZvb1wiPlN0eWxlZCBpbmNvcnJlY3RseSBhcyBSVEwhPC9kaXY+XG4vLyAgIDwvZGl2PlxuLy8gPC9odG1sPlxuLy8gYGBgXG4vL1xuLy8gSW4gdGhlIGZ1dHVyZSwgc2VsZWN0b3JzIHN1Y2ggYXMgdGhlIGA6ZGlyYCBwc2V1ZG8tY2xhc3MgKGh0dHA6Ly9tZG4uaW8vY3NzLzpkaXIpIHdpbGwgaGVscCB1cyBtaXRpZ2F0ZSB0aGlzLlxuQG1peGluIG1kYy1ydGwoJHJvb3Qtc2VsZWN0b3I6IG51bGwpIHtcbiAgQGlmICgkcm9vdC1zZWxlY3Rvcikge1xuICAgIEBhdC1yb290IHtcbiAgICAgICN7JHJvb3Qtc2VsZWN0b3J9W2Rpcj1cInJ0bFwiXSAmLFxuICAgICAgW2Rpcj1cInJ0bFwiXSAjeyRyb290LXNlbGVjdG9yfSAmIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBbZGlyPVwicnRsXCJdICYsXG4gICAgJltkaXI9XCJydGxcIl0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIFRha2VzIGEgYmFzZSBib3gtbW9kZWwgcHJvcGVydHkgbmFtZSAoYG1hcmdpbmAsIGBib3JkZXJgLCBgcGFkZGluZ2AsIGV0Yy4pIGFsb25nIHdpdGggYVxuLy8gZGVmYXVsdCBkaXJlY3Rpb24gKGBsZWZ0YCBvciBgcmlnaHRgKSBhbmQgdmFsdWUsIGFuZCBlbWl0cyBydWxlcyB3aGljaCBhcHBseSB0aGUgZ2l2ZW4gdmFsdWUgdG8gdGhlXG4vLyBzcGVjaWZpZWQgZGlyZWN0aW9uIGJ5IGRlZmF1bHQgYW5kIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gaW4gUlRMLlxuLy9cbi8vIEZvciBleGFtcGxlOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgOHB4KTtcbi8vIH1cbi8vIGBgYFxuLy9cbi8vIGlzIGVxdWl2YWxlbnQgdG86XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBtYXJnaW4tbGVmdDogOHB4O1xuLy8gICBtYXJnaW4tcmlnaHQ6IDA7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbi8vICAgfVxuLy8gfVxuLy8gYGBgXG4vL1xuLy8gd2hlcmVhczpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIHJpZ2h0LCA4cHgpO1xuLy8gfVxuLy8gYGBgXG4vL1xuLy8gaXMgZXF1aXZhbGVudCB0bzpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8gICBtYXJnaW4tcmlnaHQ6IDhweDtcbi8vXG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwge1xuLy8gICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8gICB9XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBZb3UgY2FuIGFsc28gcGFzcyBhbiBvcHRpb25hbCA0dGggYCRyb290LXNlbGVjdG9yYCBhcmd1bWVudCB3aGljaCB3aWxsIGJlIGZvcndhcmRlZCB0byBgbWRjLXJ0bGAsXG4vLyBlLmcuIGBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCA4cHgsIFwiLm1kYy1jb21wb25lbnRcIilgLlxuLy9cbi8vIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIHdpbGwgYWx3YXlzIHplcm8gb3V0IHRoZSBvcmlnaW5hbCB2YWx1ZSBpbiBhbiBSVEwgY29udGV4dC5cbi8vIElmIHlvdSdyZSB0cnlpbmcgdG8gZmxpcCB0aGUgdmFsdWVzLCB1c2UgYG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KClgIGluc3RlYWQuXG5AbWl4aW4gbWRjLXJ0bC1yZWZsZXhpdmUtYm94KCRiYXNlLXByb3BlcnR5LCAkZGVmYXVsdC1kaXJlY3Rpb24sICR2YWx1ZSwgJHJvb3Qtc2VsZWN0b3I6IG51bGwpIHtcbiAgQGlmIChpbmRleCgocmlnaHQsIGxlZnQpLCAkZGVmYXVsdC1kaXJlY3Rpb24pID09IG51bGwpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIGRlZmF1bHQgZGlyZWN0aW9uOiAnI3skZGVmYXVsdC1kaXJlY3Rpb259Jy4gUGxlYXNlIHNwZWNpZml5IGVpdGhlciAncmlnaHQnIG9yICdsZWZ0Jy5cIjtcbiAgfVxuXG4gICRsZWZ0LXZhbHVlOiAkdmFsdWU7XG4gICRyaWdodC12YWx1ZTogMDtcblxuICBAaWYgKCRkZWZhdWx0LWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgICRsZWZ0LXZhbHVlOiAwO1xuICAgICRyaWdodC12YWx1ZTogJHZhbHVlO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkoJGJhc2UtcHJvcGVydHksICRsZWZ0LXZhbHVlLCAkcmlnaHQtdmFsdWUsICRyb290LXNlbGVjdG9yKTtcbn1cblxuLy8gVGFrZXMgYSBiYXNlIHByb3BlcnR5IGFuZCBlbWl0cyBydWxlcyB0aGF0IGFzc2lnbiA8YmFzZS1wcm9wZXJ0eT4tbGVmdCB0byA8bGVmdC12YWx1ZT4gYW5kXG4vLyA8YmFzZS1wcm9wZXJ0eT4tcmlnaHQgdG8gPHJpZ2h0LXZhbHVlPiBpbiBhIExUUiBjb250ZXh0LCBhbmQgdmljZSB2ZXJzYSBpbiBhIFJUTCBjb250ZXh0LlxuLy8gRm9yIGV4YW1wbGU6XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sIGF1dG8sIDEycHgpO1xuLy8gfVxuLy8gYGBgXG4vL1xuLy8gaXMgZXF1aXZhbGVudCB0bzpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8gICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICBtYXJnaW4tbGVmdDogMTJweDtcbi8vICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4vLyAgIH1cbi8vIH1cbi8vIGBgYFxuLy9cbi8vIEFuIG9wdGlvbmFsIDR0aCBgJHJvb3Qtc2VsZWN0b3JgIGFyZ3VtZW50IGNhbiBiZSBnaXZlbiwgd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gYG1kYy1ydGxgLlxuQG1peGluIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KCRiYXNlLXByb3BlcnR5LCAkbGVmdC12YWx1ZSwgJHJpZ2h0LXZhbHVlLCAkcm9vdC1zZWxlY3RvcjogbnVsbCkge1xuICAkcHJvcC1sZWZ0OiAjeyRiYXNlLXByb3BlcnR5fS1sZWZ0O1xuICAkcHJvcC1yaWdodDogI3skYmFzZS1wcm9wZXJ0eX0tcmlnaHQ7XG5cbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUoJHByb3AtbGVmdCwgJGxlZnQtdmFsdWUsICRwcm9wLXJpZ2h0LCAkcmlnaHQtdmFsdWUsICRyb290LXNlbGVjdG9yKTtcbn1cblxuLy8gVGFrZXMgYW4gYXJndW1lbnQgc3BlY2lmeWluZyBhIGhvcml6b250YWwgcG9zaXRpb24gcHJvcGVydHkgKGVpdGhlciBcImxlZnRcIiBvciBcInJpZ2h0XCIpIGFzIHdlbGxcbi8vIGFzIGEgdmFsdWUsIGFuZCBhcHBsaWVzIHRoYXQgdmFsdWUgdG8gdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBpbiBhIExUUiBjb250ZXh0LCBhbmQgZmxpcHMgaXQgaW4gYVxuLy8gUlRMIGNvbnRleHQuIEZvciBleGFtcGxlOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgMCk7XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBpcyBlcXVpdmFsZW50IHRvOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgbGVmdDogMDtcbi8vICAgcmlnaHQ6IGluaXRpYWw7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICBsZWZ0OiBpbml0aWFsO1xuLy8gICAgIHJpZ2h0OiAwO1xuLy8gICB9XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBBbiBvcHRpb25hbCB0aGlyZCAkcm9vdC1zZWxlY3RvciBhcmd1bWVudCBtYXkgYWxzbyBiZSBnaXZlbiwgd2hpY2ggaXMgcGFzc2VkIHRvIGBtZGMtcnRsYC5cbkBtaXhpbiBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbigkcG9zaXRpb24tcHJvcGVydHksICR2YWx1ZSwgJHJvb3Qtc2VsZWN0b3I6IG51bGwpIHtcbiAgQGlmIChpbmRleCgocmlnaHQsIGxlZnQpLCAkcG9zaXRpb24tcHJvcGVydHkpID09IG51bGwpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHBvc2l0aW9uICN7cG9zaXRpb24tcHJvcGVydHl9LiBQbGVhc2Ugc3BlY2lmaXkgZWl0aGVyIHJpZ2h0IG9yIGxlZnRcIjtcbiAgfVxuXG4gIC8vIFRPRE86IFwiaW5pdGlhbFwiIGlzIG5vdCBzdXBwb3J0ZWQgaW4gSUUgMTEuIGh0dHBzOi8vY2FuaXVzZS5jb20vI2ZlYXQ9Y3NzLWluaXRpYWwtdmFsdWVcbiAgJGxlZnQtdmFsdWU6ICR2YWx1ZTtcbiAgJHJpZ2h0LXZhbHVlOiBpbml0aWFsO1xuXG4gIEBpZiAoJHBvc2l0aW9uLXByb3BlcnR5ID09IHJpZ2h0KSB7XG4gICAgJHJpZ2h0LXZhbHVlOiAkdmFsdWU7XG4gICAgJGxlZnQtdmFsdWU6IGluaXRpYWw7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZShsZWZ0LCAkbGVmdC12YWx1ZSwgcmlnaHQsICRyaWdodC12YWx1ZSwgJHJvb3Qtc2VsZWN0b3IpO1xufVxuXG4vLyBUYWtlcyBwYWlyIG9mIHByb3BlcnRpZXMgd2l0aCB2YWx1ZXMgYXMgYXJndW1lbnRzIGFuZCBmbGlwcyBpdCBpbiBSVEwgY29udGV4dC5cbi8vIEZvciBleGFtcGxlOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUobGVmdCwgMnB4LCByaWdodCwgNXB4KTtcbi8vIH1cbi8vIGBgYFxuLy9cbi8vIGlzIGVxdWl2YWxlbnQgdG86XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBsZWZ0OiAycHg7XG4vLyAgIHJpZ2h0OiA1cHg7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICByaWdodDogMnB4O1xuLy8gICAgIGxlZnQ6IDVweDtcbi8vICAgfVxuLy8gfVxuLy8gYGBgXG4vL1xuLy8gQW4gb3B0aW9uYWwgZmlmdGggYCRyb290LXNlbGVjdG9yYCBhcmd1bWVudCBtYXkgYWxzbyBiZSBnaXZlbiwgd2hpY2ggaXMgcGFzc2VkIHRvIGBtZGMtcnRsYC5cbkBtaXhpbiBtZGMtcnRsLXJlZmxleGl2ZShcbiAgJGxlZnQtcHJvcGVydHksXG4gICRsZWZ0LXZhbHVlLFxuICAkcmlnaHQtcHJvcGVydHksXG4gICRyaWdodC12YWx1ZSxcbiAgJHJvb3Qtc2VsZWN0b3I6IG51bGxcbikge1xuICAvKiBAbm9mbGlwICovXG4gICN7JGxlZnQtcHJvcGVydHl9OiAkbGVmdC12YWx1ZTtcbiAgLyogQG5vZmxpcCAqL1xuICAjeyRyaWdodC1wcm9wZXJ0eX06ICRyaWdodC12YWx1ZTtcblxuICBAaW5jbHVkZSBtZGMtcnRsKCRyb290LXNlbGVjdG9yKSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgICN7JGxlZnQtcHJvcGVydHl9OiAkcmlnaHQtdmFsdWU7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgICN7JHJpZ2h0LXByb3BlcnR5fTogJGxlZnQtdmFsdWU7XG4gIH1cbn1cbiIsIi5tZGMtYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wODkyODU3MWVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmc6IDAgOHB4IDAgOHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLXdpZHRoOiA2NHB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG4gIC5tZGMtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDsgfVxuICAubWRjLWJ1dHRvbjphY3RpdmUge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLm1kYy1idXR0b246aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubWRjLWJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zNyk7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5tZGMtYnV0dG9uLm1kYy1idXR0b24tLWRlbnNlIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgLm1kYy1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19pY29uLCAubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAubWRjLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgY29sb3I6ICM2MjAwZWU7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH1cblxuLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb24sIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuXG5zdmcubWRjLWJ1dHRvbl9faWNvbiB7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjsgfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkIC5tZGMtYnV0dG9uX19pY29uLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQgLm1kYy1idXR0b25fX2ljb24sXG4ubWRjLWJ1dHRvbi0tb3V0bGluZWQgLm1kYy1idXR0b25fX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogOHB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1idXR0b24tLXJhaXNlZCAubWRjLWJ1dHRvbl9faWNvbiwgLm1kYy1idXR0b24tLXJhaXNlZCAubWRjLWJ1dHRvbl9faWNvbltkaXI9XCJydGxcIl0sIFtkaXI9XCJydGxcIl1cbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQgLm1kYy1idXR0b25fX2ljb24sXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIC5tZGMtYnV0dG9uX19pY29uW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAubWRjLWJ1dHRvbi0tb3V0bGluZWQgLm1kYy1idXR0b25fX2ljb24sXG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZCAubWRjLWJ1dHRvbl9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IC00cHg7IH1cblxuLm1kYy1idXR0b24tLXJhaXNlZCAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbixcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uLFxuLm1kYy1idXR0b24tLW91dGxpbmVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogLTRweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtYnV0dG9uLS1yYWlzZWQgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb24sIC5tZGMtYnV0dG9uLS1yYWlzZWQgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb25bZGlyPVwicnRsXCJdLCBbZGlyPVwicnRsXCJdXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uLFxuICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbltkaXI9XCJydGxcIl0sIFtkaXI9XCJydGxcIl1cbiAgLm1kYy1idXR0b24tLW91dGxpbmVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uLFxuICAubWRjLWJ1dHRvbi0tb3V0bGluZWQgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogOHB4OyB9XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCB7XG4gIHBhZGRpbmc6IDAgMTZweCAwIDE2cHg7IH1cbiAgLm1kYy1idXR0b24tLXJhaXNlZDpkaXNhYmxlZCxcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zNyk7IH1cbiAgLm1kYy1idXR0b24tLXJhaXNlZDpub3QoOmRpc2FibGVkKSxcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2MjAwZWU7IH1cbiAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAubWRjLWJ1dHRvbi0tcmFpc2VkOm5vdCg6ZGlzYWJsZWQpLFxuICAgICAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfSB9XG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQ6bm90KDpkaXNhYmxlZCksXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1wcmltYXJ5LCAjZmZmKTsgfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQ6aG92ZXIsIC5tZGMtYnV0dG9uLS1yYWlzZWQ6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQ6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cbiAgLm1kYy1idXR0b24tLXJhaXNlZDpkaXNhYmxlZCB7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtYnV0dG9uLS1vdXRsaW5lZCB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIHBhZGRpbmc6IDAgMTRweCAwIDE0cHg7XG4gIGJvcmRlci13aWR0aDogMnB4OyB9XG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZDpkaXNhYmxlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzcpOyB9XG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZDpub3QoOmRpc2FibGVkKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNjIwMGVlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfVxuXG4ubWRjLWJ1dHRvbi0tZGVuc2Uge1xuICBoZWlnaHQ6IDMycHg7XG4gIGZvbnQtc2l6ZTogLjgxMjVyZW07IH1cblxuQGtleWZyYW1lcyBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiB7XG4gIGZyb20ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQsIDApKSBzY2FsZSgxKTsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9IH1cblxuQGtleWZyYW1lcyBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4ge1xuICBmcm9tIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgb3BhY2l0eTogMDsgfVxuICB0byB7XG4gICAgb3BhY2l0eTogdmFyKC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5LCAwKTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCB7XG4gIGZyb20ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICBvcGFjaXR5OiB2YXIoLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHksIDApOyB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuLm1kYy1yaXBwbGUtc3VyZmFjZS0tdGVzdC1lZGdlLXZhci1idWcge1xuICAtLW1kYy1yaXBwbGUtc3VyZmFjZS10ZXN0LWVkZ2UtdmFyOiAxcHggc29saWQgIzAwMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UtLXRlc3QtZWRnZS12YXItYnVnOjpiZWZvcmUge1xuICAgIGJvcmRlcjogdmFyKC0tbWRjLXJpcHBsZS1zdXJmYWNlLXRlc3QtZWRnZS12YXIpOyB9XG5cbi5tZGMtYnV0dG9uIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7IH1cbiAgLm1kYy1idXR0b246OmJlZm9yZSwgLm1kYy1idXR0b246OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAubWRjLWJ1dHRvbjo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgdG9wOiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsgfVxuICAubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCAxNTBtcztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1idXR0b246OmJlZm9yZSwgLm1kYy1idXR0b246OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgd2lkdGg6IDIwMCU7XG4gICAgaGVpZ2h0OiAyMDAlOyB9XG4gIC5tZGMtYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1idXR0b246OmJlZm9yZSwgLm1kYy1idXR0b246OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy1idXR0b246OmJlZm9yZSwgLm1kYy1idXR0b246OmFmdGVyIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH0gfVxuICAubWRjLWJ1dHRvbjpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIC5tZGMtYnV0dG9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWJ1dHRvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm1kYy1idXR0b246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cblxuLm1kYy1idXR0b24tLXJhaXNlZDo6YmVmb3JlLCAubWRjLWJ1dHRvbi0tcmFpc2VkOjphZnRlcixcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOjpiZWZvcmUsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAubWRjLWJ1dHRvbi0tcmFpc2VkOjpiZWZvcmUsIC5tZGMtYnV0dG9uLS1yYWlzZWQ6OmFmdGVyLFxuICAgIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOjpiZWZvcmUsXG4gICAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6OmFmdGVyIHtcbiAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1wcmltYXJ5LCAjZmZmKTsgfSB9XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQ6aG92ZXI6OmJlZm9yZSxcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwLjA4OyB9XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLWJ1dHRvbi0tcmFpc2VkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI0OyB9XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkLm1kYy1yaXBwbGUtdXBncmFkZWQsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjQ7IH1cblxuLm1kYy1jYXJkIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zdXJmYWNlLCAjZmZmKTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4ubWRjLWNhcmQtLW91dGxpbmVkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjZTBlMGUwOyB9XG5cbi5tZGMtY2FyZF9fbWVkaWEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICAubWRjLWNhcmRfX21lZGlhOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cblxuLm1kYy1jYXJkX19tZWRpYTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0OyB9XG5cbi5tZGMtY2FyZF9fbWVkaWE6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0OyB9XG5cbi5tZGMtY2FyZF9fbWVkaWEtLXNxdWFyZTo6YmVmb3JlIHtcbiAgbWFyZ2luLXRvcDogMTAwJTsgfVxuXG4ubWRjLWNhcmRfX21lZGlhLS0xNi05OjpiZWZvcmUge1xuICBtYXJnaW4tdG9wOiA1Ni4yNSU7IH1cblxuLm1kYy1jYXJkX19tZWRpYS1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDsgfVxuXG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDsgfVxuXG4ubWRjLWNhcmRfX2FjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiA1MnB4O1xuICBwYWRkaW5nOiA4cHg7IH1cblxuLm1kYy1jYXJkX19hY3Rpb25zLS1mdWxsLWJsZWVkIHtcbiAgcGFkZGluZzogMDsgfVxuXG4ubWRjLWNhcmRfX2FjdGlvbi1idXR0b25zLFxuLm1kYy1jYXJkX19hY3Rpb24taWNvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5tZGMtY2FyZF9fYWN0aW9uLWljb25zIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgZmxleC1ncm93OiAxO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5tZGMtY2FyZF9fYWN0aW9uLWJ1dHRvbnMgKyAubWRjLWNhcmRfX2FjdGlvbi1pY29ucyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1jYXJkX19hY3Rpb24tYnV0dG9ucyArIC5tZGMtY2FyZF9fYWN0aW9uLWljb25zLCAubWRjLWNhcmRfX2FjdGlvbi1idXR0b25zICsgLm1kYy1jYXJkX19hY3Rpb24taWNvbnNbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMTZweDsgfVxuXG4ubWRjLWNhcmRfX2FjdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAubWRjLWNhcmRfX2FjdGlvbjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuXG4ubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgcGFkZGluZzogMCA4cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uLCAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uOmxhc3QtY2hpbGQsIC5tZGMtY2FyZF9fYWN0aW9uLS1idXR0b246bGFzdC1jaGlsZFtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLm1kYy1jYXJkX19hY3Rpb25zLS1mdWxsLWJsZWVkIC5tZGMtY2FyZF9fYWN0aW9uLS1idXR0b24ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogOHB4IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtY2FyZF9fYWN0aW9ucy0tZnVsbC1ibGVlZCAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uLCAubWRjLWNhcmRfX2FjdGlvbnMtLWZ1bGwtYmxlZWQgLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4ubWRjLWNhcmRfX2FjdGlvbi0taWNvbiB7XG4gIG1hcmdpbjogLTZweCAwO1xuICBwYWRkaW5nOiAxMnB4OyB9XG5cbi5tZGMtY2FyZF9fYWN0aW9uLS1pY29uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuXG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjo6YmVmb3JlLCAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb24ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246OmJlZm9yZSwgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjo6YWZ0ZXIge1xuICAgIHRvcDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICB3aWR0aDogMjAwJTtcbiAgICBoZWlnaHQ6IDIwMCU7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246OmJlZm9yZSwgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyOyB9XG5cbkBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LXVuY2hlY2tlZC1jaGVja2VkLWNoZWNrbWFyay1wYXRoIHtcbiAgMCUsXG4gIDUwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDI5Ljc4MzMzODU7IH1cbiAgNTAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuICAxMDAlIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LXVuY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFyayB7XG4gIDAlLFxuICA2OC4yJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7IH1cbiAgNjguMiUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLCAxKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWNoZWNrZWQtdW5jaGVja2VkLWNoZWNrbWFyay1wYXRoIHtcbiAgZnJvbSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDsgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTI5Ljc4MzMzODU7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtY2hlY2ttYXJrIHtcbiAgZnJvbSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtY2hlY2ttYXJrIHtcbiAgZnJvbSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTQsIDAsIDAsIDEpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrIHtcbiAgZnJvbSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbWRjLWFuaW1hdGlvbi1kZWNlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1taXhlZG1hcmsge1xuICBmcm9tIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNCwgMCwgMCwgMSk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzE1ZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQtbWl4ZWRtYXJrIHtcbiAgMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDMyLjglLFxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuLm1kYy1jaGVja2JveCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiAwIDAgMThweDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIHBhZGRpbmc6IDExcHg7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207IH1cblxuLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDpub3QoOmNoZWNrZWQpOm5vdCg6aW5kZXRlcm1pbmF0ZSkgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDppbmRldGVybWluYXRlIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gIGJvcmRlci1jb2xvcjogIzAxODc4NjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpOyB9XG5cbkBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZC0wIHtcbiAgMCUge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICA1MCUge1xuICAgIGJvcmRlci1jb2xvcjogIzAxODc4NjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2O1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmQtMCB7XG4gIDAlLFxuICA4MCUge1xuICAgIGJvcmRlci1jb2xvcjogIzAxODc4NjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2O1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfVxuICAxMDAlIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH0gfVxuXG4ubWRjLWNoZWNrYm94LS1hbmltLXVuY2hlY2tlZC1jaGVja2VkIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLCAubWRjLWNoZWNrYm94LS1hbmltLXVuY2hlY2tlZC1pbmRldGVybWluYXRlIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgYW5pbWF0aW9uLW5hbWU6IG1kYy1jaGVja2JveC1mYWRlLWluLWJhY2tncm91bmQtMDsgfVxuXG4ubWRjLWNoZWNrYm94LS1hbmltLWNoZWNrZWQtdW5jaGVja2VkIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLCAubWRjLWNoZWNrYm94LS1hbmltLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgYW5pbWF0aW9uLW5hbWU6IG1kYy1jaGVja2JveC1mYWRlLW91dC1iYWNrZ3JvdW5kLTA7IH1cblxuLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmOyB9XG5cbi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMTg3ODY7IH1cbiAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfSB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmRpc2FibGVkOm5vdCg6Y2hlY2tlZCk6bm90KDppbmRldGVybWluYXRlKSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7IH1cblxuLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWQ6Y2hlY2tlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsXG4ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpkaXNhYmxlZDppbmRldGVybWluYXRlIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICBtYXJnaW46IDAgMXB4OyB9IH1cblxuLm1kYy1jaGVja2JveC0tZGlzYWJsZWQge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDExcHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTFweDtcbiAgYm90dG9tOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDQ1JTtcbiAgaGVpZ2h0OiA0NSU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3I7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSwgYm9yZGVyLWNvbG9yIDkwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSk7IH1cbiAgLm1kYy1jaGVja2JveFtkaXI9XCJydGxcIl0gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCxcbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMTFweDsgfVxuXG4ubWRjLWNoZWNrYm94X19jaGVja21hcmsge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTgwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSk7IH1cbiAgLm1kYy1jaGVja2JveC0tdXBncmFkZWQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoIHtcbiAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMTgwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSk7XG4gIHN0cm9rZTogY3VycmVudENvbG9yO1xuICBzdHJva2Utd2lkdGg6IDMuMTJweDtcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDI5Ljc4MzMzODU7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDI5Ljc4MzMzODU7IH1cblxuLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMDtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMCkgcm90YXRlKDBkZWcpO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA5MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpLCB0cmFuc2Zvcm0gOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTsgfVxuXG4ubWRjLWNoZWNrYm94LS11cGdyYWRlZCAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuLm1kYy1jaGVja2JveC0tdXBncmFkZWQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLFxuLm1kYy1jaGVja2JveC0tdXBncmFkZWQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgsXG4ubWRjLWNoZWNrYm94LS11cGdyYWRlZCAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cblxuLm1kYy1jaGVja2JveC0tYW5pbS11bmNoZWNrZWQtY2hlY2tlZCAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLCAubWRjLWNoZWNrYm94LS1hbmltLXVuY2hlY2tlZC1pbmRldGVybWluYXRlIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsIC5tZGMtY2hlY2tib3gtLWFuaW0tY2hlY2tlZC11bmNoZWNrZWQgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCwgLm1kYy1jaGVja2JveC0tYW5pbS1pbmRldGVybWluYXRlLXVuY2hlY2tlZCAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxODBtcztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XG5cbi5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgge1xuICBhbmltYXRpb246IG1kYy1jaGVja2JveC11bmNoZWNrZWQtY2hlY2tlZC1jaGVja21hcmstcGF0aCAxODBtcyBsaW5lYXIgMHM7XG4gIHRyYW5zaXRpb246IG5vbmU7IH1cblxuLm1kYy1jaGVja2JveC0tYW5pbS11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICBhbmltYXRpb246IG1kYy1jaGVja2JveC11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmsgOTBtcyBsaW5lYXIgMHM7XG4gIHRyYW5zaXRpb246IG5vbmU7IH1cblxuLm1kYy1jaGVja2JveC0tYW5pbS1jaGVja2VkLXVuY2hlY2tlZCAubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aCB7XG4gIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LWNoZWNrZWQtdW5jaGVja2VkLWNoZWNrbWFyay1wYXRoIDkwbXMgbGluZWFyIDBzO1xuICB0cmFuc2l0aW9uOiBub25lOyB9XG5cbi5tZGMtY2hlY2tib3gtLWFuaW0tY2hlY2tlZC1pbmRldGVybWluYXRlIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1jaGVja21hcmsgOTBtcyBsaW5lYXIgMHM7XG4gIHRyYW5zaXRpb246IG5vbmU7IH1cblxuLm1kYy1jaGVja2JveC0tYW5pbS1jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFyayA5MG1zIGxpbmVhciAwcztcbiAgdHJhbnNpdGlvbjogbm9uZTsgfVxuXG4ubWRjLWNoZWNrYm94LS1hbmltLWluZGV0ZXJtaW5hdGUtY2hlY2tlZCAubWRjLWNoZWNrYm94X19jaGVja21hcmsge1xuICBhbmltYXRpb246IG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtY2hlY2ttYXJrIDUwMG1zIGxpbmVhciAwcztcbiAgdHJhbnNpdGlvbjogbm9uZTsgfVxuXG4ubWRjLWNoZWNrYm94LS1hbmltLWluZGV0ZXJtaW5hdGUtY2hlY2tlZCAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICBhbmltYXRpb246IG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtbWl4ZWRtYXJrIDUwMG1zIGxpbmVhciAwcztcbiAgdHJhbnNpdGlvbjogbm9uZTsgfVxuXG4ubWRjLWNoZWNrYm94LS1hbmltLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkLW1peGVkbWFyayAzMDBtcyBsaW5lYXIgMHM7XG4gIHRyYW5zaXRpb246IG5vbmU7IH1cblxuLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsXG4ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDppbmRldGVybWluYXRlIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciA5MG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgYmFja2dyb3VuZC1jb2xvciA5MG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpjaGVja2VkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCAubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aCxcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6aW5kZXRlcm1pbmF0ZSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwOyB9XG5cbi5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb250ZW50OiBcIlwiO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDkwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSksIHRyYW5zZm9ybSA5MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpOyB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmZvY3VzIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgyLjc1LCAyLjc1KTtcbiAgb3BhY2l0eTogMC4xMjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA4MG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgdHJhbnNmb3JtIDgwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpOyB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgb3BhY2l0eTogMDtcbiAgY3Vyc29yOiBpbmhlcml0OyB9XG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxODBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIHRyYW5zZm9ybSAxODBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMSkgcm90YXRlKC00NWRlZyk7IH1cblxuLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6aW5kZXRlcm1pbmF0ZSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDkwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSksIHRyYW5zZm9ybSA5MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpOyB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmluZGV0ZXJtaW5hdGUgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDEpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4ubWRjLWNoZWNrYm94IHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7IH1cbiAgLm1kYy1jaGVja2JveDo6YmVmb3JlLCAubWRjLWNoZWNrYm94OjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLm1kYy1jaGVja2JveDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgLm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLWNoZWNrYm94Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzOyB9XG4gIC5tZGMtY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtY2hlY2tib3g6OmJlZm9yZSwgLm1kYy1jaGVja2JveDo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTg3ODY7IH1cbiAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAubWRjLWNoZWNrYm94OjpiZWZvcmUsIC5tZGMtY2hlY2tib3g6OmFmdGVyIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfSB9XG4gIC5tZGMtY2hlY2tib3g6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICAubWRjLWNoZWNrYm94Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtY2hlY2tib3g6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtY2hlY2tib3g6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWNoZWNrYm94OjpiZWZvcmUsIC5tZGMtY2hlY2tib3g6OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogY2FsYyg1MCUgLSA1MCUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAubWRjLWNoZWNrYm94Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSwgLm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgY2FsYyg1MCUgLSA1MCUpKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCBjYWxjKDUwJSAtIDUwJSkpO1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLWNoZWNrYm94Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cblxuLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICBjb250ZW50OiBub25lOyB9XG5cbi5tZGMtY2hpcCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMTc4NTcxNGVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBoZWlnaHQ6IDMycHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDdweCAxMnB4O1xuICBvdXRsaW5lOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kYy1jaGlwOjpiZWZvcmUsIC5tZGMtY2hpcDo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtY2hpcDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy1jaGlwLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1jaGlwLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtY2hpcC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLWNoaXAubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7IH1cbiAgLm1kYy1jaGlwLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWNoaXA6OmJlZm9yZSwgLm1kYy1jaGlwOjphZnRlciB7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDEwMCUpO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDEwMCUpO1xuICAgIHdpZHRoOiAyMDAlO1xuICAgIGhlaWdodDogMjAwJTsgfVxuICAubWRjLWNoaXAubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLWNoaXA6OmJlZm9yZSwgLm1kYy1jaGlwOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxuICAubWRjLWNoaXA6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICAubWRjLWNoaXA6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLWNoaXAubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWNoaXA6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtY2hpcDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWNoaXAubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1jaGlwOmhvdmVyIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxuICAubWRjLWNoaXAubWRjLWNoaXAtLXNlbGVjdGVkIC5tZGMtY2hpcF9fY2hlY2ttYXJrLFxuICAubWRjLWNoaXAgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nOm5vdCgubWRjLWNoaXBfX2ljb24tLWxlYWRpbmctaGlkZGVuKSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IC00cHg7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQgLm1kYy1jaGlwX19jaGVja21hcmssIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQgLm1kYy1jaGlwX19jaGVja21hcmtbZGlyPVwicnRsXCJdLCBbZGlyPVwicnRsXCJdXG4gICAgLm1kYy1jaGlwIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZzpub3QoLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nLWhpZGRlbiksXG4gICAgLm1kYy1jaGlwIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZzpub3QoLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nLWhpZGRlbilbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tcmlnaHQ6IC00cHg7IH1cbiAgLm1kYy1jaGlwOmhvdmVyIHtcbiAgICBjb2xvcjogIzAwMDtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKTsgfVxuXG4ubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTsgfVxuXG4ubWRjLWNoaXBfX2ljb24tLXRyYWlsaW5nIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7IH1cbiAgLm1kYy1jaGlwX19pY29uLS10cmFpbGluZzpob3ZlciB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42Mik7IH1cbiAgLm1kYy1jaGlwX19pY29uLS10cmFpbGluZzpmb2N1cyB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7IH1cblxuLm1kYy1jaGlwX19pY29uLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nOm5vdCgubWRjLWNoaXBfX2ljb24tLWxlYWRpbmctaGlkZGVuKSB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMjBweDsgfVxuXG4ubWRjLWNoaXBfX2ljb24ubWRjLWNoaXBfX2ljb24tLXRyYWlsaW5nIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG5cbi5tZGMtY2hpcF9faWNvbi0tdHJhaWxpbmcge1xuICBtYXJnaW46IDAgLTRweCAwIDRweDsgfVxuXG4ubWRjLWNoaXAtLWV4aXQge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDc1bXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgd2lkdGggMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIHBhZGRpbmcgMTAwbXMgbGluZWFyLCBtYXJnaW4gMTAwbXMgbGluZWFyO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5tZGMtY2hpcF9fdGV4dCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLm1kYy1jaGlwX19pY29uIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdXRsaW5lOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5tZGMtY2hpcF9fY2hlY2ttYXJrIHtcbiAgaGVpZ2h0OiAyMHB4OyB9XG5cbi5tZGMtY2hpcF9fY2hlY2ttYXJrLXBhdGgge1xuICB0cmFuc2l0aW9uOiBzdHJva2UtZGFzaG9mZnNldCAxNTBtcyA1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSk7XG4gIHN0cm9rZS13aWR0aDogMnB4O1xuICBzdHJva2UtZGFzaG9mZnNldDogMjkuNzgzMzM4NTtcbiAgc3Ryb2tlLWRhc2hhcnJheTogMjkuNzgzMzM4NTsgfVxuXG4ubWRjLWNoaXAtLXNlbGVjdGVkIC5tZGMtY2hpcF9fY2hlY2ttYXJrLXBhdGgge1xuICBzdHJva2UtZGFzaG9mZnNldDogMDsgfVxuXG4ubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwLm1kYy1jaGlwLS1zZWxlY3RlZDo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4wODsgfVxuXG4ubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwLm1kYy1jaGlwLS1zZWxlY3RlZDo6YmVmb3JlLCAubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwLm1kYy1jaGlwLS1zZWxlY3RlZDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlOyB9XG4gIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwLm1kYy1jaGlwLS1zZWxlY3RlZDo6YmVmb3JlLCAubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwLm1kYy1jaGlwLS1zZWxlY3RlZDo6YWZ0ZXIge1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9IH1cblxuLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMTI7IH1cblxuLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwLm1kYy1jaGlwLS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMjsgfVxuXG4ubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwLm1kYy1jaGlwLS1zZWxlY3RlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG5cbi5tZGMtY2hpcC1zZXQtLWNob2ljZSAubWRjLWNoaXAubWRjLWNoaXAtLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMjsgfVxuXG4ubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwLm1kYy1jaGlwLS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjsgfVxuXG4ubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwLm1kYy1jaGlwLS1zZWxlY3RlZCB7XG4gIGNvbG9yOiAjNjIwMGVlO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH1cbiAgLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nIHtcbiAgICBjb2xvcjogcmdiYSg5OCwgMCwgMjM4LCAwLjU0KTsgfVxuICAubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwLm1kYy1jaGlwLS1zZWxlY3RlZDpob3ZlciB7XG4gICAgY29sb3I6ICM2MjAwZWU7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH1cblxuLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcCAubWRjLWNoaXBfX2NoZWNrbWFyay1wYXRoIHtcbiAgc3Ryb2tlOiAjNjIwMGVlO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHN0cm9rZTogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9XG5cbi5tZGMtY2hpcC1zZXQtLWNob2ljZSAubWRjLWNoaXAtLXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgI2ZmZik7IH1cblxuLm1kYy1jaGlwX19jaGVja21hcmstc3ZnIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMjBweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMTUwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRjLWNoaXAtLXNlbGVjdGVkIC5tZGMtY2hpcF9fY2hlY2ttYXJrLXN2ZyB7XG4gIHdpZHRoOiAyMHB4OyB9XG5cbi5tZGMtY2hpcC1zZXQtLWZpbHRlciAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDc1bXMgbGluZWFyO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAtNTBtcztcbiAgb3BhY2l0eTogMTsgfVxuICAubWRjLWNoaXAtc2V0LS1maWx0ZXIgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nICsgLm1kYy1jaGlwX19jaGVja21hcmsge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgNzVtcyBsaW5lYXI7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogODBtcztcbiAgICBvcGFjaXR5OiAwOyB9XG4gICAgLm1kYy1jaGlwLXNldC0tZmlsdGVyIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZyArIC5tZGMtY2hpcF9fY2hlY2ttYXJrIC5tZGMtY2hpcF9fY2hlY2ttYXJrLXN2ZyB7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwbXM7IH1cblxuLm1kYy1jaGlwLXNldC0tZmlsdGVyIC5tZGMtY2hpcC0tc2VsZWN0ZWQgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nIHtcbiAgb3BhY2l0eTogMDsgfVxuICAubWRjLWNoaXAtc2V0LS1maWx0ZXIgLm1kYy1jaGlwLS1zZWxlY3RlZCAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcgKyAubWRjLWNoaXBfX2NoZWNrbWFyayB7XG4gICAgd2lkdGg6IDA7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4ubWRjLWNoaXAtc2V0LS1maWx0ZXIgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nLWhpZGRlbi5tZGMtY2hpcF9faWNvbi0tbGVhZGluZyB7XG4gIHdpZHRoOiAwO1xuICBvcGFjaXR5OiAwOyB9XG4gIC5tZGMtY2hpcC1zZXQtLWZpbHRlciAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmctaGlkZGVuLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nICsgLm1kYy1jaGlwX19jaGVja21hcmsge1xuICAgIHdpZHRoOiAyMHB4OyB9XG5cbkBrZXlmcmFtZXMgbWRjLWNoaXAtZW50cnkge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gICAgb3BhY2l0eTogLjQ7IH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbi5tZGMtY2hpcC1zZXQge1xuICBwYWRkaW5nOiA0cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAubWRjLWNoaXAtc2V0IC5tZGMtY2hpcCB7XG4gICAgbWFyZ2luOiA0cHg7IH1cblxuLm1kYy1jaGlwLXNldC0taW5wdXQgLm1kYy1jaGlwIHtcbiAgYW5pbWF0aW9uOiBtZGMtY2hpcC1lbnRyeSAxMDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRjLWRpYWxvZyxcbi5tZGMtZGlhbG9nX19zY3JpbSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4ubWRjLWRpYWxvZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDc7IH1cbiAgLm1kYy1kaWFsb2cgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zdXJmYWNlLCAjZmZmKTsgfVxuICAubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fc2NyaW0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zMik7IH1cbiAgLm1kYy1kaWFsb2cgLm1kYy1kaWFsb2dfX3RpdGxlIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxuICAubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fY29udGVudCB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuICAubWRjLWRpYWxvZy5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX190aXRsZSxcbiAgLm1kYy1kaWFsb2cubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fYWN0aW9ucyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG4gIC5tZGMtZGlhbG9nIC5tZGMtZGlhbG9nX19zdXJmYWNlIHtcbiAgICBtaW4td2lkdGg6IDI4MHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1OTJweCkge1xuICAgIC5tZGMtZGlhbG9nIC5tZGMtZGlhbG9nX19zdXJmYWNlIHtcbiAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDU5MnB4KSB7XG4gICAgLm1kYy1kaWFsb2cgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgICAgbWF4LXdpZHRoOiA1NjBweDsgfSB9XG4gIC5tZGMtZGlhbG9nIC5tZGMtZGlhbG9nX19zdXJmYWNlIHtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzJweCk7IH1cbiAgLm1kYy1kaWFsb2cgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDsgfVxuXG4ubWRjLWRpYWxvZ19fc2NyaW0ge1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAtMTsgfVxuXG4ubWRjLWRpYWxvZ19fY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgb3BhY2l0eTogMDsgfVxuXG4ubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1ncm93OiAwO1xuICBmbGV4LXNocmluazogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlOyB9XG4gIC5tZGMtZGlhbG9nW2Rpcj1cInJ0bFwiXSAubWRjLWRpYWxvZ19fc3VyZmFjZSxcbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLm1kYy1kaWFsb2dfX3RpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxMjVlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAyNHB4IDlweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG4gIC5tZGMtZGlhbG9nX190aXRsZTo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgdmVydGljYWwtYWxpZ246IDA7IH1cbiAgLm1kYy1kaWFsb2dbZGlyPVwicnRsXCJdIC5tZGMtZGlhbG9nX190aXRsZSxcbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fdGl0bGUge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX190aXRsZSB7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4OyB9XG5cbi5tZGMtZGlhbG9nX19jb250ZW50IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDMxMjVlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgZmxleC1ncm93OiAxO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDIwcHggMjRweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxuICAubWRjLWRpYWxvZ19fY29udGVudCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAubWRjLWRpYWxvZ19fY29udGVudCA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5tZGMtZGlhbG9nX190aXRsZSArIC5tZGMtZGlhbG9nX19jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IDA7IH1cblxuLm1kYy1kaWFsb2ctLXNjcm9sbGFibGUgLm1kYy1kaWFsb2dfX2NvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4OyB9XG5cbi5tZGMtZGlhbG9nX19jb250ZW50IC5tZGMtbGlzdDpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZzogNnB4IDAgMDsgfVxuXG4ubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fY29udGVudCAubWRjLWxpc3Q6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLm1kYy1kaWFsb2dfX2FjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi1oZWlnaHQ6IDUycHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cbiAgLm1kYy1kaWFsb2ctLXN0YWNrZWQgLm1kYy1kaWFsb2dfX2FjdGlvbnMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG5cbi5tZGMtZGlhbG9nX19idXR0b24ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1kaWFsb2dfX2J1dHRvbiwgLm1kYy1kaWFsb2dfX2J1dHRvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cbiAgLm1kYy1kaWFsb2dfX2J1dHRvbjpmaXJzdC1jaGlsZCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtZGlhbG9nX19idXR0b246Zmlyc3QtY2hpbGQsIC5tZGMtZGlhbG9nX19idXR0b246Zmlyc3QtY2hpbGRbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5tZGMtZGlhbG9nW2Rpcj1cInJ0bFwiXSAubWRjLWRpYWxvZ19fYnV0dG9uLFxuICBbZGlyPVwicnRsXCJdIC5tZGMtZGlhbG9nIC5tZGMtZGlhbG9nX19idXR0b24ge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm1kYy1kaWFsb2ctLXN0YWNrZWQgLm1kYy1kaWFsb2dfX2J1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXRvcDogMTJweDsgfVxuXG4ubWRjLWRpYWxvZy0tb3Blbixcbi5tZGMtZGlhbG9nLS1vcGVuaW5nLFxuLm1kYy1kaWFsb2ctLWNsb3Npbmcge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5tZGMtZGlhbG9nLS1vcGVuaW5nIC5tZGMtZGlhbG9nX19zY3JpbSB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG5cbi5tZGMtZGlhbG9nLS1vcGVuaW5nIC5tZGMtZGlhbG9nX19jb250YWluZXIge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDc1bXMgbGluZWFyLCB0cmFuc2Zvcm0gMTUwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpOyB9XG5cbi5tZGMtZGlhbG9nLS1jbG9zaW5nIC5tZGMtZGlhbG9nX19zY3JpbSxcbi5tZGMtZGlhbG9nLS1jbG9zaW5nIC5tZGMtZGlhbG9nX19jb250YWluZXIge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDc1bXMgbGluZWFyOyB9XG5cbi5tZGMtZGlhbG9nLS1jbG9zaW5nIC5tZGMtZGlhbG9nX19jb250YWluZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG5cbi5tZGMtZGlhbG9nLS1vcGVuIC5tZGMtZGlhbG9nX19zY3JpbSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLm1kYy1kaWFsb2ctLW9wZW4gLm1kYy1kaWFsb2dfX2NvbnRhaW5lciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLm1kYy1kaWFsb2ctc2Nyb2xsLWxvY2sge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5tZGMtZHJhd2VyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAvKiBAbm9mbGlwICovXG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7XG4gIHotaW5kZXg6IDY7XG4gIHdpZHRoOiAyNTZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgLyogQG5vZmxpcCAqL1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDFweDtcbiAgLyogQG5vZmxpcCAqL1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGMtZHJhd2VyIC5tZGMtZHJhd2VyX190aXRsZSB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7IH1cbiAgLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWdyb3VwX19zdWJoZWFkZXIge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7IH1cbiAgLm1kYy1kcmF3ZXIgLm1kYy1kcmF3ZXJfX3N1YnRpdGxlIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gIC5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gIC5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxuICAubWRjLWRyYXdlciAubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBjb2xvcjogIzYyMDBlZTsgfVxuICAubWRjLWRyYXdlciAubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkIHtcbiAgICBjb2xvcjogcmdiYSg5OCwgMCwgMjM4LCAwLjg3KTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtZHJhd2VyLCAubWRjLWRyYXdlcltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG4gIC5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgLm1kYy1kcmF3ZXIubWRjLWRyYXdlci0tb3Blbjpub3QoLm1kYy1kcmF3ZXItLWNsb3NpbmcpICsgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogMjU2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1kcmF3ZXIubWRjLWRyYXdlci0tb3Blbjpub3QoLm1kYy1kcmF3ZXItLWNsb3NpbmcpICsgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQsIC5tZGMtZHJhd2VyLm1kYy1kcmF3ZXItLW9wZW46bm90KC5tZGMtZHJhd2VyLS1jbG9zaW5nKSArIC5tZGMtZHJhd2VyLWFwcC1jb250ZW50W2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1yaWdodDogMjU2cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWRyYXdlciwgLm1kYy1kcmF3ZXJbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IG5vbmU7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsgfVxuICAubWRjLWRyYXdlciAubWRjLWxpc3QtaXRlbSB7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMzc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDA3MTQyODZlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gICAgaGVpZ2h0OiBjYWxjKDQ4cHggLSAyICogNHB4KTtcbiAgICBtYXJnaW46IDhweCA4cHg7XG4gICAgcGFkZGluZzogMCA4cHg7IH1cbiAgLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW06bnRoLWNoaWxkKDEpIHtcbiAgICBtYXJnaW4tdG9wOiAycHg7IH1cbiAgLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW06bnRoLWxhc3QtY2hpbGQoMSkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWdyb3VwX19zdWJoZWFkZXIge1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDE3ODU3MTRlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAxNnB4OyB9XG4gICAgLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWdyb3VwX19zdWJoZWFkZXI6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMjRweDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogMDsgfVxuICAubWRjLWRyYXdlciAubWRjLWxpc3QtZGl2aWRlciB7XG4gICAgbWFyZ2luOiAzcHggMCA0cHggMDsgfVxuICAubWRjLWRyYXdlciAubWRjLWxpc3QtaXRlbV9fdGV4dCxcbiAgLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5tZGMtZHJhd2VyLS1hbmltYXRlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtZHJhd2VyLS1hbmltYXRlLCAubWRjLWRyYXdlci0tYW5pbWF0ZVtkaXI9XCJydGxcIl0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuXG4ubWRjLWRyYXdlci0tb3BlbmluZyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXM7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWRyYXdlci0tb3BlbmluZywgLm1kYy1kcmF3ZXItLW9wZW5pbmdbZGlyPVwicnRsXCJdIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblxuLm1kYy1kcmF3ZXItLWNsb3Npbmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyMDBtczsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtZHJhd2VyLS1jbG9zaW5nLCAubWRjLWRyYXdlci0tY2xvc2luZ1tkaXI9XCJydGxcIl0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuXG4ubWRjLWRyYXdlcl9faGVhZGVyIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi1oZWlnaHQ6IDY0cHg7XG4gIHBhZGRpbmc6IDAgMTZweCA0cHg7IH1cblxuLm1kYy1kcmF3ZXJfX3RpdGxlIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxMjVlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogLTIwcHg7IH1cbiAgLm1kYy1kcmF3ZXJfX3RpdGxlOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogMDsgfVxuICAubWRjLWRyYXdlcl9fdGl0bGU6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgdmVydGljYWwtYWxpZ246IC0yMHB4OyB9XG5cbi5tZGMtZHJhd2VyX19zdWJ0aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDE3ODU3MTRlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWRjLWRyYXdlcl9fc3VidGl0bGU6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHZlcnRpY2FsLWFsaWduOiAwOyB9XG5cbi5tZGMtZHJhd2VyX19jb250ZW50IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cblxuLm1kYy1kcmF3ZXItLWRpc21pc3NpYmxlIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsO1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWRyYXdlci0tZGlzbWlzc2libGUsIC5tZGMtZHJhd2VyLS1kaXNtaXNzaWJsZVtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMDsgfVxuICAubWRjLWRyYXdlci0tZGlzbWlzc2libGUubWRjLWRyYXdlci0tb3BlbiB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuXG4ubWRjLWRyYXdlci1hcHAtY29udGVudCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWRyYXdlci1hcHAtY29udGVudCwgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnRbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuXG4ubWRjLWRyYXdlci0tbW9kYWwge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsO1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7IH1cbiAgLm1kYy1kcmF3ZXItLW1vZGFsICsgLm1kYy1kcmF3ZXItc2NyaW0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zMik7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWRyYXdlci0tbW9kYWwsIC5tZGMtZHJhd2VyLS1tb2RhbFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMDsgfVxuICAubWRjLWRyYXdlci0tbW9kYWwubWRjLWRyYXdlci0tb3BlbiB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuXG4ubWRjLWRyYXdlci1zY3JpbSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgei1pbmRleDogNTsgfVxuICAubWRjLWRyYXdlci0tb3BlbiArIC5tZGMtZHJhd2VyLXNjcmltIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAubWRjLWRyYXdlci0tYW5pbWF0ZSArIC5tZGMtZHJhd2VyLXNjcmltIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5tZGMtZHJhd2VyLS1vcGVuaW5nICsgLm1kYy1kcmF3ZXItc2NyaW0ge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLm1kYy1kcmF3ZXItLWNsb3NpbmcgKyAubWRjLWRyYXdlci1zY3JpbSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjAwbXM7XG4gICAgb3BhY2l0eTogMDsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejAge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejIge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MyB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXo1IHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA1cHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXo2IHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejgge1xuICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXo5IHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA5cHggMTJweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MTEge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDdweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDExcHggMTVweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAyMHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MTIge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MTQge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDlweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE0cHggMjFweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MTUge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDlweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE1cHggMjJweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAyOHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejE3IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTdweCAyNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoxOCB7XG4gIGJveC1zaGFkb3c6IDBweCA5cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE4cHggMjhweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejIwIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIwcHggMzFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCAzOHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MjEge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjFweCAzM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDQwcHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejIzIHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTRweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIzcHggMzZweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MjQge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbiB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgd2lsbC1jaGFuZ2U6IGJveC1zaGFkb3c7IH1cblxuLm1kYy1mYWIge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogNTZweDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgb3BhY2l0eSAxNW1zIGxpbmVhciAzMG1zLCB0cmFuc2Zvcm0gMjcwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2O1xuICBjb2xvcjogI2ZmZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXNlY29uZGFyeSwgI2ZmZik7IH1cbiAgLm1kYy1mYWI6bm90KC5tZGMtZmFiLS1leHRlbmRlZCkge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAubWRjLWZhYjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7IH1cbiAgLm1kYy1mYWI6aG92ZXIsIC5tZGMtZmFiOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cbiAgLm1kYy1mYWI6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG4gIC5tZGMtZmFiOmFjdGl2ZSwgLm1kYy1mYWI6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLm1kYy1mYWI6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubWRjLWZhYiA+IHN2ZyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgIC5tZGMtZmFiIHtcbiAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpOyB9IH1cbiAgLm1kYy1mYWIgLm1kYy1mYWJfX2ljb24ge1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBmb250LXNpemU6IDI0cHg7IH1cblxuLm1kYy1mYWItLW1pbmkge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4OyB9XG5cbi5tZGMtZmFiLS1leHRlbmRlZCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMi4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDg5Mjg1NzFlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICBwYWRkaW5nOiAwIDIwcHg7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDhweDsgfVxuICAubWRjLWZhYi0tZXh0ZW5kZWQgLm1kYy1mYWJfX2ljb24ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogLThweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4OyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLWZhYi0tZXh0ZW5kZWQgLm1kYy1mYWJfX2ljb24sIC5tZGMtZmFiLS1leHRlbmRlZCAubWRjLWZhYl9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tcmlnaHQ6IC04cHg7IH1cbiAgLm1kYy1mYWItLWV4dGVuZGVkIC5tZGMtZmFiX19sYWJlbCArIC5tZGMtZmFiX19pY29uIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogLThweDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1mYWItLWV4dGVuZGVkIC5tZGMtZmFiX19sYWJlbCArIC5tZGMtZmFiX19pY29uLCAubWRjLWZhYi0tZXh0ZW5kZWQgLm1kYy1mYWJfX2xhYmVsICsgLm1kYy1mYWJfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OyB9XG5cbi5tZGMtZmFiX19sYWJlbCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm1kYy1mYWJfX2ljb24ge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTgwbXMgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyB9XG5cbi5tZGMtZmFiIC5tZGMtZmFiX19pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5tZGMtZmFiLS1leGl0ZWQge1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyIDE1MG1zLCB0cmFuc2Zvcm0gMTgwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpOyB9XG4gIC5tZGMtZmFiLS1leGl0ZWQgLm1kYy1mYWJfX2ljb24ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEzNW1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTsgfVxuXG4ubWRjLWZhYiB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OyB9XG4gIC5tZGMtZmFiOjpiZWZvcmUsIC5tZGMtZmFiOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLm1kYy1mYWI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtZmFiLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1mYWIubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgLm1kYy1mYWIubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy1mYWIubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7IH1cbiAgLm1kYy1mYWIubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtZmFiOjpiZWZvcmUsIC5tZGMtZmFiOjphZnRlciB7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDEwMCUpO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDEwMCUpO1xuICAgIHdpZHRoOiAyMDAlO1xuICAgIGhlaWdodDogMjAwJTsgfVxuICAubWRjLWZhYi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtZmFiOjpiZWZvcmUsIC5tZGMtZmFiOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIC5tZGMtZmFiOjpiZWZvcmUsIC5tZGMtZmFiOjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXNlY29uZGFyeSwgI2ZmZik7IH0gfVxuICAubWRjLWZhYjpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA4OyB9XG4gIC5tZGMtZmFiOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1mYWIubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4yNDsgfVxuICAubWRjLWZhYjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm1kYy1mYWI6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMjQ7IH1cbiAgLm1kYy1mYWIubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjQ7IH1cblxuLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMDkzNzVlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBjb2xvciAxNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiB0ZXh0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1mbG9hdGluZy1sYWJlbCwgLm1kYy1mbG9hdGluZy1sYWJlbFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogYXV0bztcbiAgICAvKiBAbm9mbGlwICovXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4ubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIGN1cnNvcjogYXV0bzsgfVxuXG4ubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgwLjc1KTsgfVxuXG4ubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gIGFuaW1hdGlvbjogbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXN0YW5kYXJkIDI1MG1zIDE7IH1cblxuQGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtc3RhbmRhcmQge1xuICAvKiBjbGVhbi1jc3MgaWdub3JlOnN0YXJ0ICovXG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMCUpKSB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDAuNzUpOyB9XG4gIDMzJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MzIsIDAuNDk1ODE5KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyg0JSAtIDAlKSkgdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgwLjc1KTsgfVxuICA2NiUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjMwMjQzNSwgMC4zODEzNTIsIDAuNTUsIDAuOTU2MzUyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNCUgLSAwJSkpIHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMC43NSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDAlKSkgdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgwLjc1KTsgfVxuICAvKiBjbGVhbi1jc3MgaWdub3JlOmVuZCAqLyB9XG5cbi5tZGMtZm9ybS1maWVsZCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDE3ODU3MTRlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjg3KSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5tZGMtZm9ybS1maWVsZCA+IGxhYmVsIHtcbiAgICBvcmRlcjogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDRweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtZm9ybS1maWVsZCA+IGxhYmVsLCAubWRjLWZvcm0tZmllbGRbZGlyPVwicnRsXCJdID4gbGFiZWwge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogNHB4OyB9XG5cbi5tZGMtZm9ybS1maWVsZC0tYWxpZ24tZW5kID4gbGFiZWwge1xuICBvcmRlcjogLTE7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogNHB4OyB9XG5cbltkaXI9XCJydGxcIl0gLm1kYy1mb3JtLWZpZWxkLS1hbGlnbi1lbmQgPiBsYWJlbCwgLm1kYy1mb3JtLWZpZWxkLS1hbGlnbi1lbmRbZGlyPVwicnRsXCJdID4gbGFiZWwge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDRweDsgfVxuXG4ubWRjLWljb24tYnV0dG9uIHtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMTJweDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5tZGMtaWNvbi1idXR0b24gc3ZnLFxuICAubWRjLWljb24tYnV0dG9uIGltZyB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4OyB9XG4gIC5tZGMtaWNvbi1idXR0b246ZGlzYWJsZWQge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tbGlnaHQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWRjLWljb24tYnV0dG9uX19pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5tZGMtaWNvbi1idXR0b25fX2ljb24ubWRjLWljb24tYnV0dG9uX19pY29uLS1vbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4ubWRjLWljb24tYnV0dG9uLS1vbiAubWRjLWljb24tYnV0dG9uX19pY29uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICAubWRjLWljb24tYnV0dG9uLS1vbiAubWRjLWljb24tYnV0dG9uX19pY29uLm1kYy1pY29uLWJ1dHRvbl9faWNvbi0tb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4ubWRjLWljb24tYnV0dG9uIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7IH1cbiAgLm1kYy1pY29uLWJ1dHRvbjo6YmVmb3JlLCAubWRjLWljb24tYnV0dG9uOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLm1kYy1pY29uLWJ1dHRvbjo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy1pY29uLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgLm1kYy1pY29uLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLWljb24tYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzOyB9XG4gIC5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtaWNvbi1idXR0b246OmJlZm9yZSwgLm1kYy1pY29uLWJ1dHRvbjo6YWZ0ZXIge1xuICAgIHRvcDogY2FsYyg1MCUgLSA1MCUpO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDUwJSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlLCAubWRjLWljb24tYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCBjYWxjKDUwJSAtIDUwJSkpO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIGNhbGMoNTAlIC0gNTAlKSk7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLWljb24tYnV0dG9uOjpiZWZvcmUsIC5tZGMtaWNvbi1idXR0b246OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyB9XG4gIC5tZGMtaWNvbi1idXR0b246aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICAubWRjLWljb24tYnV0dG9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1pY29uLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtaWNvbi1idXR0b246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtaWNvbi1idXR0b246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1pY29uLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjsgfVxuXG4ubWRjLWltYWdlLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAwOyB9XG5cbi5tZGMtaW1hZ2UtbGlzdF9faXRlbSxcbi5tZGMtaW1hZ2UtbGlzdF9faW1hZ2UtYXNwZWN0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4ubWRjLWltYWdlLWxpc3RfX2l0ZW0ge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cblxuLm1kYy1pbWFnZS1saXN0X19pbWFnZSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5tZGMtaW1hZ2UtbGlzdF9faW1hZ2UtYXNwZWN0LWNvbnRhaW5lciAubWRjLWltYWdlLWxpc3RfX2ltYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG5cbi5tZGMtaW1hZ2UtbGlzdF9faW1hZ2UtYXNwZWN0LWNvbnRhaW5lciB7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUgLyAxKTsgfVxuXG4ubWRjLWltYWdlLWxpc3RfX2ltYWdlIHtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG4ubWRjLWltYWdlLWxpc3QtLXdpdGgtdGV4dC1wcm90ZWN0aW9uIC5tZGMtaW1hZ2UtbGlzdF9fc3VwcG9ydGluZyB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLm1kYy1pbWFnZS1saXN0X19zdXBwb3J0aW5nIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjg3KSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogOHB4IDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG5cbi5tZGMtaW1hZ2UtbGlzdF9fbGFiZWwge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA5Mzc1ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5tZGMtaW1hZ2UtbGlzdC0td2l0aC10ZXh0LXByb3RlY3Rpb24gLm1kYy1pbWFnZS1saXN0X19zdXBwb3J0aW5nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBjb2xvcjogI2ZmZjsgfVxuXG4ubWRjLWltYWdlLWxpc3QtLW1hc29ucnkge1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAubWRjLWltYWdlLWxpc3QtLW1hc29ucnkgLm1kYy1pbWFnZS1saXN0X19pdGVtIHtcbiAgICBicmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjsgfVxuICAubWRjLWltYWdlLWxpc3QtLW1hc29ucnkgLm1kYy1pbWFnZS1saXN0X19pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG5cbjpyb290IHtcbiAgLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLWRlc2t0b3A6IDI0cHg7XG4gIC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wOiAyNHB4O1xuICAtLW1kYy1sYXlvdXQtZ3JpZC1jb2x1bW4td2lkdGgtZGVza3RvcDogNzJweDtcbiAgLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLXRhYmxldDogMTZweDtcbiAgLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXRhYmxldDogMTZweDtcbiAgLS1tZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoLXRhYmxldDogNzJweDtcbiAgLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLXBob25lOiAxNnB4O1xuICAtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmU6IDE2cHg7XG4gIC0tbWRjLWxheW91dC1ncmlkLWNvbHVtbi13aWR0aC1waG9uZTogNzJweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODQwcHgpIHtcbiAgLm1kYy1sYXlvdXQtZ3JpZCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAyNHB4O1xuICAgIHBhZGRpbmc6IHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1tYXJnaW4tZGVza3RvcCwgMjRweCk7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA4MzlweCkge1xuICAubWRjLWxheW91dC1ncmlkIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgcGFkZGluZzogdmFyKC0tbWRjLWxheW91dC1ncmlkLW1hcmdpbi10YWJsZXQsIDE2cHgpOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5tZGMtbGF5b3V0LWdyaWQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLXBob25lLCAxNnB4KTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4NDBweCkge1xuICAubWRjLWxheW91dC1ncmlkX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIG1hcmdpbjogLTEycHg7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkgLyAyICogLTEpOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAubWRjLWxheW91dC1ncmlkX19pbm5lciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZ3JpZC1nYXA6IDI0cHg7XG4gICAgICAgIGdyaWQtZ2FwOiB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLWRlc2t0b3AsIDI0cHgpO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgbWlubWF4KDAsIDFmcikpOyB9IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA4MzlweCkge1xuICAubWRjLWxheW91dC1ncmlkX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIG1hcmdpbjogLThweDtcbiAgICBtYXJnaW46IGNhbGModmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpIC8gMiAqIC0xKTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9faW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGdyaWQtZ2FwOiAxNnB4O1xuICAgICAgICBncmlkLWdhcDogdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg4LCBtaW5tYXgoMCwgMWZyKSk7IH0gfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0NzlweCkge1xuICAubWRjLWxheW91dC1ncmlkX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIG1hcmdpbjogLThweDtcbiAgICBtYXJnaW46IGNhbGModmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCkgLyAyICogLTEpOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAubWRjLWxheW91dC1ncmlkX19pbm5lciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZ3JpZC1nYXA6IDE2cHg7XG4gICAgICAgIGdyaWQtZ2FwOiB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpOyB9IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODQwcHgpIHtcbiAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMlIC0gMjRweCk7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXJnaW46IDEycHg7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkgLyAyKTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsIHtcbiAgICAgICAgbWFyZ2luOiAwOyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IGNhbGMoOC4zMzMzMzMzMyUgLSAyNHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDguMzMzMzMzMzMlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMS1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMTsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0yLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMi1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY2NjY3JSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTYuNjY2NjY2NjclIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTIsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMi1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMjsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0zLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMy1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTMsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMy1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMzsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi00LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzJSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTQsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNC1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi01LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNS1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDQxLjY2NjY2NjY3JSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoNDEuNjY2NjY2NjclIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTUsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNS1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNTsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi02LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNi1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTYsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNi1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNjsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi03LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNy1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDU4LjMzMzMzMzMzJSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoNTguMzMzMzMzMzMlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTcsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNy1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNzsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi04LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDY2LjY2NjY2NjY3JSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoNjYuNjY2NjY2NjclIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTgsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOC1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gODsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi05LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOS1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDc1JSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoNzUlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTksXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOS1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gOTsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMCxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEwLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IGNhbGMoODMuMzMzMzMzMzMlIC0gMjRweCk7XG4gICAgICB3aWR0aDogY2FsYyg4My4zMzMzMzMzMyUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLWRlc2t0b3AsIDI0cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTAsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTAtZGVza3RvcCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDEwOyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTExLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTEtZGVza3RvcCB7XG4gICAgICB3aWR0aDogY2FsYyg5MS42NjY2NjY2NyUgLSAyNHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDkxLjY2NjY2NjY3JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMSxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMS1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMTE7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTIsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMi1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyNHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLWRlc2t0b3AsIDI0cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTIsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTItZGVza3RvcCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDEyOyB9IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA4MzlweCkge1xuICAubWRjLWxheW91dC1ncmlkX19jZWxsIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxNnB4KTtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXRhYmxldCwgMTZweCkpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luOiA4cHg7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSAvIDIpOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0OyB9IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwge1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEtdGFibGV0IHtcbiAgICAgIHdpZHRoOiBjYWxjKDEyLjUlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMi41JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMS10YWJsZXQge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAxOyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTIsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0yLXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTIsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMi10YWJsZXQge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyOyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTMsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0zLXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYygzNy41JSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMzcuNSUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXRhYmxldCwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0zLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTMtdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMzsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi00LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNC10YWJsZXQge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXRhYmxldCwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi00LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTQtdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi01LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNS10YWJsZXQge1xuICAgICAgd2lkdGg6IGNhbGMoNjIuNSUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDYyLjUlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNSxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi01LXRhYmxldCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDU7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNixcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTYtdGFibGV0IHtcbiAgICAgIHdpZHRoOiBjYWxjKDc1JSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoNzUlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNixcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi02LXRhYmxldCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDY7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNyxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTctdGFibGV0IHtcbiAgICAgIHdpZHRoOiBjYWxjKDg3LjUlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYyg4Ny41JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTcsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNy10YWJsZXQge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA3OyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTgsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi04LXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOCxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi04LXRhYmxldCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDg7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTktdGFibGV0IHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXRhYmxldCwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi05LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTktdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gODsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMCxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEwLXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTAsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTAtdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gODsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTExLXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTEsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTEtdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gODsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMixcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEyLXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTIsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTItdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gODsgfSB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCkpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luOiA4cHg7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpIC8gMik7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbCB7XG4gICAgICAgIG1hcmdpbjogMDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMS1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMSxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xLXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMTsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0yLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMi1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMixcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0yLXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMjsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0zLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMy1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYyg3NSUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDc1JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMyxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0zLXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMzsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi00LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNC1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi00LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTQtcGhvbmUge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0OyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTUsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi01LXBob25lIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTUsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNS1waG9uZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNixcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTYtcGhvbmUge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNixcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi02LXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi03LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNy1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi03LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTctcGhvbmUge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0OyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTgsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi04LXBob25lIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTgsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOC1waG9uZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTktcGhvbmUge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOSxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi05LXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMCxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEwLXBob25lIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEwLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEwLXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTExLXBob25lIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTExLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTExLXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMixcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEyLXBob25lIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEyLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEyLXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItMSB7XG4gIG9yZGVyOiAxOyB9XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLW9yZGVyLTIge1xuICBvcmRlcjogMjsgfVxuXG4ubWRjLWxheW91dC1ncmlkX19jZWxsLS1vcmRlci0zIHtcbiAgb3JkZXI6IDM7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItNCB7XG4gIG9yZGVyOiA0OyB9XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLW9yZGVyLTUge1xuICBvcmRlcjogNTsgfVxuXG4ubWRjLWxheW91dC1ncmlkX19jZWxsLS1vcmRlci02IHtcbiAgb3JkZXI6IDY7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItNyB7XG4gIG9yZGVyOiA3OyB9XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLW9yZGVyLTgge1xuICBvcmRlcjogODsgfVxuXG4ubWRjLWxheW91dC1ncmlkX19jZWxsLS1vcmRlci05IHtcbiAgb3JkZXI6IDk7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItMTAge1xuICBvcmRlcjogMTA7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItMTEge1xuICBvcmRlcjogMTE7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItMTIge1xuICBvcmRlcjogMTI7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tYWxpZ24tdG9wIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1hbGlnbi10b3Age1xuICAgICAgYWxpZ24tc2VsZjogc3RhcnQ7IH0gfVxuXG4ubWRjLWxheW91dC1ncmlkX19jZWxsLS1hbGlnbi1taWRkbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tYWxpZ24tYm90dG9tIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tYWxpZ24tYm90dG9tIHtcbiAgICAgIGFsaWduLXNlbGY6IGVuZDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4NDBweCkge1xuICAubWRjLWxheW91dC1ncmlkLS1maXhlZC1jb2x1bW4td2lkdGgge1xuICAgIHdpZHRoOiAxMTc2cHg7XG4gICAgd2lkdGg6IGNhbGMoIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1jb2x1bW4td2lkdGgtZGVza3RvcCwgNzJweCkgKiAxMiArIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkgKiAxMSArIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1tYXJnaW4tZGVza3RvcCwgMjRweCkgKiAyKTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkgYW5kIChtYXgtd2lkdGg6IDgzOXB4KSB7XG4gIC5tZGMtbGF5b3V0LWdyaWQtLWZpeGVkLWNvbHVtbi13aWR0aCB7XG4gICAgd2lkdGg6IDcyMHB4O1xuICAgIHdpZHRoOiBjYWxjKCB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoLXRhYmxldCwgNzJweCkgKiA4ICsgdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpICogNyArIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1tYXJnaW4tdGFibGV0LCAxNnB4KSAqIDIpOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5tZGMtbGF5b3V0LWdyaWQtLWZpeGVkLWNvbHVtbi13aWR0aCB7XG4gICAgd2lkdGg6IDM2OHB4O1xuICAgIHdpZHRoOiBjYWxjKCB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoLXBob25lLCA3MnB4KSAqIDQgKyB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSAqIDMgKyB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLXBob25lLCAxNnB4KSAqIDIpOyB9IH1cblxuLm1kYy1sYXlvdXQtZ3JpZC0tYWxpZ24tbGVmdCB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZC0tYWxpZ24tcmlnaHQge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG5cbi5tZGMtbGluZS1yaXBwbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMnB4O1xuICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG9wYWNpdHkgMTgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogMjsgfVxuXG4ubWRjLWxpbmUtcmlwcGxlLS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4ubWRjLWxpbmUtcmlwcGxlLS1kZWFjdGl2YXRpbmcge1xuICBvcGFjaXR5OiAwOyB9XG5cbkBrZXlmcmFtZXMgcHJpbWFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMjAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjcwMTczMiwgMC40OTU4MTkpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICA1OS4xNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjMwMjQzNSwgMC4zODEzNTIsIDAuNTUsIDAuOTU2MzUyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoODMuNjcxNDIlKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwLjYxMTA1NyUpOyB9IH1cblxuQGtleWZyYW1lcyBwcmltYXJ5LWluZGV0ZXJtaW5hdGUtc2NhbGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wOCk7IH1cbiAgMzYuNjUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMzQ3MzEsIDAuMTI0ODIsIDAuNzg1ODQ0LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjA4KTsgfVxuICA2OS4xNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjA2LCAwLjExLCAwLjYsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNjYxNDc5KTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjA4KTsgfSB9XG5cbkBrZXlmcmFtZXMgc2Vjb25kYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlIHtcbiAgMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE1LCAwLCAwLjUxNTA1OCwgMC40MDk2ODUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAyNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjMxMDMzLCAwLjI4NDA1OCwgMC44LCAwLjczMzcxMik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDM3LjY1MTkxMyUpOyB9XG4gIDQ4LjM1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC42MjcwMzUsIDAuNiwgMC45MDIwMjYpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4NC4zODYxNjUlKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTYwLjI3Nzc4MiUpOyB9IH1cblxuQGtleWZyYW1lcyBzZWNvbmRhcnktaW5kZXRlcm1pbmF0ZS1zY2FsZSB7XG4gIDAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMDUwMjgsIDAuMDU3MDUxLCAwLjU3NjYxLCAwLjQ1Mzk3MSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wOCk7IH1cbiAgMTkuMTUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNTIzMTMsIDAuMTk2NDMyLCAwLjY0ODM3NCwgMS4wMDQzMTUpO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNDU3MTA0KTsgfVxuICA0NC4xNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1Nzc1OSwgLTAuMDAzMTYzLCAwLjIxMTc2MiwgMS4zODE3OSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC43Mjc5Nik7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wOCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGJ1ZmZlcmluZyB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcHgpOyB9IH1cblxuQGtleWZyYW1lcyBwcmltYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlLXJldmVyc2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDIwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MzIsIDAuNDk1ODE5KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgNTkuMTUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0MzUsIDAuMzgxMzUyLCAwLjU1LCAwLjk1NjM1Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04My42NzE0MiUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwLjYxMTA1NyUpOyB9IH1cblxuQGtleWZyYW1lcyBzZWNvbmRhcnktaW5kZXRlcm1pbmF0ZS10cmFuc2xhdGUtcmV2ZXJzZSB7XG4gIDAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNSwgMCwgMC41MTUwNTgsIDAuNDA5Njg1KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMjUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMTAzMywgMC4yODQwNTgsIDAuOCwgMC43MzM3MTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzcuNjUxOTEzJSk7IH1cbiAgNDguMzUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLjYyNzAzNSwgMC42LCAwLjkwMjAyNik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04NC4zODYxNjUlKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE2MC4yNzc3ODIlKTsgfSB9XG5cbkBrZXlmcmFtZXMgYnVmZmVyaW5nLXJldmVyc2Uge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpOyB9IH1cblxuLm1kYy1saW5lYXItcHJvZ3Jlc3Mge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI1MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzX19iYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTsgfVxuICAubWRjLWxpbmVhci1wcm9ncmVzc19fYmFyLWlubmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBhbmltYXRpb246IG5vbmU7IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2J1ZmZlcmluZy1kb3RzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGFuaW1hdGlvbjogYnVmZmVyaW5nIDI1MG1zIGluZmluaXRlIGxpbmVhcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMHB4IDRweDsgfVxuICAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTsgfVxuICAubWRjLWxpbmVhci1wcm9ncmVzc19fcHJpbWFyeS1iYXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApOyB9XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzX19zZWNvbmRhcnktYmFyIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2JhciB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAubWRjLWxpbmVhci1wcm9ncmVzcy0taW5kZXRlcm1pbmF0ZSAubWRjLWxpbmVhci1wcm9ncmVzc19fcHJpbWFyeS1iYXIge1xuICAgIGxlZnQ6IC0xNDUuMTY2NjExJTtcbiAgICBhbmltYXRpb246IHByaW1hcnktaW5kZXRlcm1pbmF0ZS10cmFuc2xhdGUgMnMgaW5maW5pdGUgbGluZWFyOyB9XG4gICAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3ByaW1hcnktYmFyID4gLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2Jhci1pbm5lciB7XG4gICAgICBhbmltYXRpb246IHByaW1hcnktaW5kZXRlcm1pbmF0ZS1zY2FsZSAycyBpbmZpbml0ZSBsaW5lYXI7IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3NlY29uZGFyeS1iYXIge1xuICAgIGxlZnQ6IC01NC44ODg4OTElO1xuICAgIGFuaW1hdGlvbjogc2Vjb25kYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3NlY29uZGFyeS1iYXIgPiAubWRjLWxpbmVhci1wcm9ncmVzc19fYmFyLWlubmVyIHtcbiAgICAgIGFuaW1hdGlvbjogc2Vjb25kYXJ5LWluZGV0ZXJtaW5hdGUtc2NhbGUgMnMgaW5maW5pdGUgbGluZWFyOyB9XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzLS1yZXZlcnNlZCAubWRjLWxpbmVhci1wcm9ncmVzc19fYmFyLFxuICAubWRjLWxpbmVhci1wcm9ncmVzcy0tcmV2ZXJzZWQgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2J1ZmZlciB7XG4gICAgcmlnaHQ6IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHJpZ2h0OyB9XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzLS1yZXZlcnNlZCAubWRjLWxpbmVhci1wcm9ncmVzc19fcHJpbWFyeS1iYXIge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBwcmltYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlLXJldmVyc2U7IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLXJldmVyc2VkIC5tZGMtbGluZWFyLXByb2dyZXNzX19zZWNvbmRhcnktYmFyIHtcbiAgICBhbmltYXRpb24tbmFtZTogc2Vjb25kYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlLXJldmVyc2U7IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLXJldmVyc2VkIC5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXJpbmctZG90cyB7XG4gICAgYW5pbWF0aW9uOiBidWZmZXJpbmctcmV2ZXJzZSAyNTBtcyBpbmZpbml0ZSBsaW5lYXI7IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLWNsb3NlZCB7XG4gICAgb3BhY2l0eTogMDsgfVxuXG4ubWRjLWxpbmVhci1wcm9ncmVzc19fYmFyLWlubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBlZTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH1cblxuLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2J1ZmZlcmluZy1kb3RzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA1IDInIHhtbDpzcGFjZT0ncHJlc2VydmUnIHZpZXdCb3g9JzAgMCA1IDInIHByZXNlcnZlQXNwZWN0UmF0aW89J25vbmUgc2xpY2UnJTNFJTNDY2lyY2xlIGN4PScxJyBjeT0nMScgcj0nMScgZmlsbD0nJTIzZTZlNmU2Jy8lM0UlM0Mvc3ZnJTNFXCIpOyB9XG5cbi5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OyB9XG5cbi5tZGMtbGluZWFyLXByb2dyZXNzLS1pbmRldGVybWluYXRlLm1kYy1saW5lYXItcHJvZ3Jlc3MtLXJldmVyc2VkIC5tZGMtbGluZWFyLXByb2dyZXNzX19wcmltYXJ5LWJhciB7XG4gIHJpZ2h0OiAtMTQ1LjE2NjYxMSU7XG4gIGxlZnQ6IGF1dG87IH1cblxuLm1kYy1saW5lYXItcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUubWRjLWxpbmVhci1wcm9ncmVzcy0tcmV2ZXJzZWQgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3NlY29uZGFyeS1iYXIge1xuICByaWdodDogLTU0Ljg4ODg5MSU7XG4gIGxlZnQ6IGF1dG87IH1cblxuLm1kYy1saXN0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwOTM3NWVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogOHB4IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjg3KSk7IH1cblxuLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuNTQpKTsgfVxuXG4ubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LWljb24tb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjM4KSk7IH1cblxuLm1kYy1saXN0LWl0ZW1fX21ldGEge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKTsgfVxuXG4ubWRjLWxpc3QtZ3JvdXBfX3N1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpOyB9XG5cbi5tZGMtbGlzdC0tZGVuc2Uge1xuICBwYWRkaW5nLXRvcDogNHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICBmb250LXNpemU6IC44MTJyZW07IH1cblxuLm1kYy1saXN0LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBwYWRkaW5nOiAwIDE2cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kYy1saXN0LWl0ZW06Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cblxuLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkLFxuLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCB7XG4gIGNvbG9yOiAjNjIwMGVlO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH1cbiAgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljLFxuICAubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBjb2xvcjogIzYyMDBlZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfVxuXG4ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjM4KSk7IH1cblxuLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMzJweDtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cbiAgLm1kYy1saXN0LWl0ZW1bZGlyPVwicnRsXCJdIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljLFxuICBbZGlyPVwicnRsXCJdIC5tZGMtbGlzdC1pdGVtIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDMycHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuXG4ubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuXG4ubWRjLWxpc3QtaXRlbV9fbWV0YSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5tZGMtbGlzdC1pdGVtW2Rpcj1cInJ0bFwiXSAubWRjLWxpc3QtaXRlbV9fbWV0YSxcbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWxpc3QtaXRlbSAubWRjLWxpc3QtaXRlbV9fbWV0YSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cblxuLm1kYy1saXN0LWl0ZW1fX3RleHQge1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ubWRjLWxpc3QtaXRlbV9fdGV4dFtmb3JdIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCB7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgdmVydGljYWwtYWxpZ246IDA7IH1cbiAgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dDo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLTIwcHg7IH1cbiAgLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbi1ib3R0b206IC0yMHB4OyB9XG4gICAgLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0OjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgdmVydGljYWwtYWxpZ246IDA7IH1cbiAgICAubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQ6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiAtMjBweDsgfVxuXG4ubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxNzg1NzE0ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQ6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHZlcnRpY2FsLWFsaWduOiAwOyB9XG4gIC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuICAgIC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0OjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgdmVydGljYWwtYWxpZ246IDA7IH1cblxuLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbSB7XG4gIGhlaWdodDogNDBweDsgfVxuXG4ubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDM2cHg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7IH1cbiAgLm1kYy1saXN0LWl0ZW1bZGlyPVwicnRsXCJdIC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMsXG4gIFtkaXI9XCJydGxcIl0gLm1kYy1saXN0LWl0ZW0gLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAzNnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLm1kYy1saXN0LS1hdmF0YXItbGlzdCAubWRjLWxpc3QtaXRlbSB7XG4gIGhlaWdodDogNTZweDsgfVxuXG4ubWRjLWxpc3QtLWF2YXRhci1saXN0IC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAubWRjLWxpc3QtaXRlbVtkaXI9XCJydGxcIl0gLm1kYy1saXN0LS1hdmF0YXItbGlzdCAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyxcbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWxpc3QtaXRlbSAubWRjLWxpc3QtLWF2YXRhci1saXN0IC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuXG4ubWRjLWxpc3QtLXR3by1saW5lIC5tZGMtbGlzdC1pdGVtX190ZXh0IHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuXG4ubWRjLWxpc3QtLXR3by1saW5lIC5tZGMtbGlzdC1pdGVtIHtcbiAgaGVpZ2h0OiA3MnB4OyB9XG5cbi5tZGMtbGlzdC0tdHdvLWxpbmUubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtLFxuLm1kYy1saXN0LS1hdmF0YXItbGlzdC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW0ge1xuICBoZWlnaHQ6IDYwcHg7IH1cblxuLm1kYy1saXN0LS1hdmF0YXItbGlzdC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDsgfVxuICAubWRjLWxpc3QtaXRlbVtkaXI9XCJydGxcIl0gLm1kYy1saXN0LS1hdmF0YXItbGlzdC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMsXG4gIFtkaXI9XCJydGxcIl0gLm1kYy1saXN0LWl0ZW0gLm1kYy1saXN0LS1hdmF0YXItbGlzdC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0ge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuYS5tZGMtbGlzdC1pdGVtIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4ubWRjLWxpc3QtZGl2aWRlciB7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IH1cblxuLm1kYy1saXN0LWRpdmlkZXIge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtbGlzdC1kaXZpZGVyLS1wYWRkZWQge1xuICBtYXJnaW46IDAgMTZweDsgfVxuXG4ubWRjLWxpc3QtZGl2aWRlci0taW5zZXQge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiA3MnB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDcycHgpOyB9XG4gIC5tZGMtbGlzdC1ncm91cFtkaXI9XCJydGxcIl0gLm1kYy1saXN0LWRpdmlkZXItLWluc2V0LFxuICBbZGlyPVwicnRsXCJdIC5tZGMtbGlzdC1ncm91cCAubWRjLWxpc3QtZGl2aWRlci0taW5zZXQge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiA3MnB4OyB9XG5cbi5tZGMtbGlzdC1kaXZpZGVyLS1pbnNldC5tZGMtbGlzdC1kaXZpZGVyLS1wYWRkZWQge1xuICB3aWR0aDogY2FsYygxMDAlIC0gNzJweCAtIDE2cHgpOyB9XG5cbi5tZGMtbGlzdC1ncm91cCAubWRjLWxpc3Qge1xuICBwYWRkaW5nOiAwOyB9XG5cbi5tZGMtbGlzdC1ncm91cF9fc3ViaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwOTM3NWVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBtYXJnaW46IDAuNzVyZW0gMTZweDsgfVxuXG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTo6YWZ0ZXIge1xuICAgIHRvcDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICB3aWR0aDogMjAwJTtcbiAgICBoZWlnaHQ6IDIwMCU7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZDo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZDo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZDo6YWZ0ZXIge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfSB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZDpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjE2OyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjI0OyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjI0OyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4yNDsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA4OyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBlZTsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMjsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMjsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4yOyB9XG5cbi5tZGMtbWVudSB7XG4gIG1pbi13aWR0aDogMTEycHg7IH1cbiAgLm1kYy1tZW51IC5tZGMtbGlzdC1pdGVtX19tZXRhIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxuICAubWRjLW1lbnUgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpOyB9XG4gIC5tZGMtbWVudSAubWRjLWxpc3Qge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpOyB9XG4gIC5tZGMtbWVudSAubWRjLWxpc3QtZGl2aWRlciB7XG4gICAgbWFyZ2luOiA4cHggMDsgfVxuICAubWRjLW1lbnUgLm1kYy1saXN0LWl0ZW0ge1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5tZGMtbWVudSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQge1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICAubWRjLW1lbnUgYS5tZGMtbGlzdC1pdGVtIC5tZGMtbGlzdC1pdGVtX190ZXh0LFxuICAubWRjLW1lbnUgYS5tZGMtbGlzdC1pdGVtIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cCB7XG4gIHBhZGRpbmc6IDA7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjsgfVxuICAubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cCAubWRjLWxpc3QtaXRlbSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogNTZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1tZW51X19zZWxlY3Rpb24tZ3JvdXAgLm1kYy1saXN0LWl0ZW0sIC5tZGMtbWVudV9fc2VsZWN0aW9uLWdyb3VwIC5tZGMtbGlzdC1pdGVtW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1NnB4OyB9XG4gIC5tZGMtbWVudV9fc2VsZWN0aW9uLWdyb3VwIC5tZGMtbWVudV9fc2VsZWN0aW9uLWdyb3VwLWljb24ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiAxNnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogaW5pdGlhbDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1tZW51X19zZWxlY3Rpb24tZ3JvdXAgLm1kYy1tZW51X19zZWxlY3Rpb24tZ3JvdXAtaWNvbiwgLm1kYy1tZW51X19zZWxlY3Rpb24tZ3JvdXAgLm1kYy1tZW51X19zZWxlY3Rpb24tZ3JvdXAtaWNvbltkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHJpZ2h0OiAxNnB4OyB9XG5cbi5tZGMtbWVudS1pdGVtLS1zZWxlY3RlZCAubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cC1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lOyB9XG5cbi5tZGMtbWVudS1zdXJmYWNlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTtcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDMycHgpO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICBvcGFjaXR5OiAwO1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgei1pbmRleDogODtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjAzcyBsaW5lYXIsIHRyYW5zZm9ybSAwLjEycyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zdXJmYWNlLCAjZmZmKTtcbiAgY29sb3I6ICMwMDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAvKiBAbm9mbGlwICovXG4gIHRyYW5zZm9ybS1vcmlnaW4tbGVmdDogdG9wIGxlZnQ7XG4gIC8qIEBub2ZsaXAgKi9cbiAgdHJhbnNmb3JtLW9yaWdpbi1yaWdodDogdG9wIHJpZ2h0OyB9XG4gIC5tZGMtbWVudS1zdXJmYWNlOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5tZGMtbWVudS1zdXJmYWNlLS1vcGVuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5tZGMtbWVudS1zdXJmYWNlLS1hbmltYXRpbmctb3BlbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5tZGMtbWVudS1zdXJmYWNlLS1hbmltYXRpbmctY2xvc2VkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMDc1cyBsaW5lYXI7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLW1lbnUtc3VyZmFjZSwgLm1kYy1tZW51LXN1cmZhY2VbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgdHJhbnNmb3JtLW9yaWdpbi1sZWZ0OiB0b3AgcmlnaHQ7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHRyYW5zZm9ybS1vcmlnaW4tcmlnaHQ6IHRvcCBsZWZ0OyB9XG5cbi5tZGMtbWVudS1zdXJmYWNlLS1hbmNob3Ige1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi5tZGMtbWVudS1zdXJmYWNlLS1maXhlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDsgfVxuXG4ubWRjLW5vdGNoZWQtb3V0bGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgLyogQG5vZmxpcCAqL1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtbm90Y2hlZC1vdXRsaW5lLCAubWRjLW5vdGNoZWQtb3V0bGluZVtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLCAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zaXRpb246IGJvcmRlciAxNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgd2lkdGg6IDEycHg7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZ1tkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZDsgfVxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQ7XG4gICAgZmxleC1ncm93OiAxOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcsIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ1tkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTsgfVxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMTJweCAqIDIpOyB9XG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxN3B4O1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIHRleHQtb3ZlcmZsb3c6IGNsaXA7IH1cbiAgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAvIC43NSk7IH1cblxuLm1kYy1ub3RjaGVkLW91dGxpbmUtLW5vdGNoZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoIHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogOHB4O1xuICBib3JkZXItdG9wOiBub25lOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1ub3RjaGVkLW91dGxpbmUtLW5vdGNoZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLCAubWRjLW5vdGNoZWQtb3V0bGluZS0tbm90Y2hlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2hbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLm1kYy1ub3RjaGVkLW91dGxpbmUtLW5vLWxhYmVsIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLm1kYy1yYWRpbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgcGFkZGluZzogMTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm0sIGJvcmRlci1jb2xvciwgY29sb3I7IH1cbiAgLm1kYy1yYWRpbyAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDplbmFibGVkOm5vdCg6Y2hlY2tlZCkgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX291dGVyLWNpcmNsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpOyB9XG4gIC5tZGMtcmFkaW8gLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDpjaGVja2VkICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCAubWRjLXJhZGlvX19vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogIzAxODc4NjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfVxuICAubWRjLXJhZGlvIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmVuYWJsZWQgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDE4Nzg2O1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpOyB9XG4gIC5tZGMtcmFkaW8gLm1kYy1yYWRpb19fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2OyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy1yYWRpbyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpOyB9IH1cbiAgLm1kYy1yYWRpb19fYmFja2dyb3VuZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBoZWlnaHQ6IDUwJTsgfVxuICAgIC5tZGMtcmFkaW9fX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTIwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSksIHRyYW5zZm9ybSAxMjBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTsgfVxuICAubWRjLXJhZGlvX19vdXRlci1jaXJjbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTIwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSk7IH1cbiAgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcbiAgICBib3JkZXItd2lkdGg6IDEwcHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEyMG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpLCBib3JkZXItY29sb3IgMTIwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSk7IH1cbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2wge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBjdXJzb3I6IGluaGVyaXQ7XG4gICAgei1pbmRleDogMTsgfVxuXG4ubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpjaGVja2VkICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCxcbi5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmRpc2FibGVkICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTIwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCB0cmFuc2Zvcm0gMTIwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpOyB9XG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX291dGVyLWNpcmNsZSxcbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWQgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX291dGVyLWNpcmNsZSB7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDEyMG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpjaGVja2VkICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCAubWRjLXJhZGlvX19pbm5lci1jaXJjbGUsXG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmRpc2FibGVkICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCAubWRjLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMjBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIGJvcmRlci1jb2xvciAxMjBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7IH1cblxuLm1kYy1yYWRpby0tZGlzYWJsZWQge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEyMG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgYm9yZGVyLWNvbG9yIDEyMG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpkaXNhYmxlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQsXG5bYXJpYS1kaXNhYmxlZD1cInRydWVcIl0gLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2wgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmRpc2FibGVkICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCAubWRjLXJhZGlvX19vdXRlci1jaXJjbGUsXG4gIFthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7IH1cbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWQgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX2lubmVyLWNpcmNsZSxcbiAgW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCAubWRjLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTsgfVxuXG4ubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpmb2N1cyArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMiwgMik7XG4gIG9wYWNpdHk6IDAuMTI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTIwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCB0cmFuc2Zvcm0gMTIwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpOyB9XG5cbi5tZGMtcmFkaW8ge1xuICAtLW1kYy1yaXBwbGUtZmctc2l6ZTogMDtcbiAgLS1tZGMtcmlwcGxlLWxlZnQ6IDA7XG4gIC0tbWRjLXJpcHBsZS10b3A6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy1zY2FsZTogMTtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQ6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQ6IDA7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTsgfVxuICAubWRjLXJhZGlvOjpiZWZvcmUsIC5tZGMtcmFkaW86OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAubWRjLXJhZGlvOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTVtcyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMTVtcyBsaW5lYXI7XG4gICAgei1pbmRleDogMTsgfVxuICAubWRjLXJhZGlvLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1yYWRpby5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgdG9wOiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsgfVxuICAubWRjLXJhZGlvLm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZDo6YWZ0ZXIge1xuICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIDApO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIDApOyB9XG4gIC5tZGMtcmFkaW8ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7IH1cbiAgLm1kYy1yYWRpby5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCAxNTBtcztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1yYWRpbzo6YmVmb3JlLCAubWRjLXJhZGlvOjphZnRlciB7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDUwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLm1kYy1yYWRpby5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUsIC5tZGMtcmFkaW8ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIGNhbGMoNTAlIC0gNTAlKSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgY2FsYyg1MCUgLSA1MCUpKTtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1yYWRpby5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtcmFkaW86OmJlZm9yZSwgLm1kYy1yYWRpbzo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTg3ODY7IH1cbiAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAubWRjLXJhZGlvOjpiZWZvcmUsIC5tZGMtcmFkaW86OmFmdGVyIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfSB9XG4gIC5tZGMtcmFkaW86aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICAubWRjLXJhZGlvOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1yYWRpby5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtcmFkaW86bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtcmFkaW86bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1yYWRpby5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXJhZGlvLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLXJhZGlvX19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG5vbmU7IH1cblxuLm1kYy1yaXBwbGUtc3VyZmFjZSB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZTo6YmVmb3JlLCAubWRjLXJpcHBsZS1zdXJmYWNlOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZTo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2U6OmJlZm9yZSwgLm1kYy1yaXBwbGUtc3VyZmFjZTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZTpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2U6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLXJpcHBsZS1zdXJmYWNlLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2U6OmJlZm9yZSwgLm1kYy1yaXBwbGUtc3VyZmFjZTo6YWZ0ZXIge1xuICAgIHRvcDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICB3aWR0aDogMjAwJTtcbiAgICBoZWlnaHQ6IDIwMCU7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2VbZGF0YS1tZGMtcmlwcGxlLWlzLXVuYm91bmRlZF0ge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlOyB9XG4gICAgLm1kYy1yaXBwbGUtc3VyZmFjZVtkYXRhLW1kYy1yaXBwbGUtaXMtdW5ib3VuZGVkXTo6YmVmb3JlLCAubWRjLXJpcHBsZS1zdXJmYWNlW2RhdGEtbWRjLXJpcHBsZS1pcy11bmJvdW5kZWRdOjphZnRlciB7XG4gICAgICB0b3A6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLm1kYy1yaXBwbGUtc3VyZmFjZVtkYXRhLW1kYy1yaXBwbGUtaXMtdW5ib3VuZGVkXS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUsIC5tZGMtcmlwcGxlLXN1cmZhY2VbZGF0YS1tZGMtcmlwcGxlLWlzLXVuYm91bmRlZF0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgY2FsYyg1MCUgLSA1MCUpKTtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgY2FsYyg1MCUgLSA1MCUpKTtcbiAgICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gICAgLm1kYy1yaXBwbGUtc3VyZmFjZVtkYXRhLW1kYy1yaXBwbGUtaXMtdW5ib3VuZGVkXS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS1wcmltYXJ5OjpiZWZvcmUsIC5tZGMtcmlwcGxlLXN1cmZhY2UtLXByaW1hcnk6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tcHJpbWFyeTo6YmVmb3JlLCAubWRjLXJpcHBsZS1zdXJmYWNlLS1wcmltYXJ5OjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tcHJpbWFyeTpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UtLXByaW1hcnk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLXJpcHBsZS1zdXJmYWNlLS1wcmltYXJ5Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tcHJpbWFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tcHJpbWFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS1wcmltYXJ5Lm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UtLWFjY2VudDo6YmVmb3JlLCAubWRjLXJpcHBsZS1zdXJmYWNlLS1hY2NlbnQ6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2OyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tYWNjZW50OjpiZWZvcmUsIC5tZGMtcmlwcGxlLXN1cmZhY2UtLWFjY2VudDo6YWZ0ZXIge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpOyB9IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tYWNjZW50OmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tYWNjZW50Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1yaXBwbGUtc3VyZmFjZS0tYWNjZW50Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tYWNjZW50Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS1hY2NlbnQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tYWNjZW50Lm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyOyB9XG5cbkBrZXlmcmFtZXMgbWRjLXNlbGVjdC1mbG9hdC1uYXRpdmUtY29udHJvbCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtc2VsZWN0X19pY29uIHtcbiAgY29sb3I6ICMwMDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKTsgfVxuXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1zZWxlY3RfX2ljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxNnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIG9wYWNpdHk6IDAuNTQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4ubWRjLXNlbGVjdF9faWNvbjpub3QoW3RhYmluZGV4XSksXG4ubWRjLXNlbGVjdF9faWNvblt0YWJpbmRleD1cIi0xXCJdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWRjLXNlbGVjdC1oZWxwZXItdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMzMzMzMzM2VtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBtYXJnaW46IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgb3BhY2l0eTogMDtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7IH1cbiAgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQ6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMTZweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHZlcnRpY2FsLWFsaWduOiAwOyB9XG5cbi5tZGMtc2VsZWN0LWhlbHBlci10ZXh0LS1wZXJzaXN0ZW50IHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgb3BhY2l0eTogMTtcbiAgd2lsbC1jaGFuZ2U6IGluaXRpYWw7IH1cblxuLm1kYy1zZWxlY3Qge1xuICAtLW1kYy1yaXBwbGUtZmctc2l6ZTogMDtcbiAgLS1tZGMtcmlwcGxlLWxlZnQ6IDA7XG4gIC0tbWRjLXJpcHBsZS10b3A6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy1zY2FsZTogMTtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQ6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQ6IDA7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm0sIGNvbG9yOyB9XG4gIC5tZGMtc2VsZWN0Om5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZXNtb2tlOyB9XG4gIC5tZGMtc2VsZWN0OjpiZWZvcmUsIC5tZGMtc2VsZWN0OjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLm1kYy1zZWxlY3Q6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtc2VsZWN0Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1zZWxlY3QubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgLm1kYy1zZWxlY3QubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy1zZWxlY3QubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7IH1cbiAgLm1kYy1zZWxlY3QubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtc2VsZWN0OjpiZWZvcmUsIC5tZGMtc2VsZWN0OjphZnRlciB7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDEwMCUpO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDEwMCUpO1xuICAgIHdpZHRoOiAyMDAlO1xuICAgIGhlaWdodDogMjAwJTsgfVxuICAubWRjLXNlbGVjdC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtc2VsZWN0OjpiZWZvcmUsIC5tZGMtc2VsZWN0OjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxuICAubWRjLXNlbGVjdDpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIC5tZGMtc2VsZWN0Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1zZWxlY3QubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXNlbGVjdDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4gIC5tZGMtc2VsZWN0Om5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxuICAubWRjLXNlbGVjdDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gIC5tZGMtc2VsZWN0Om5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCxcbiAgLm1kYy1zZWxlY3Q6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7IH1cbiAgLm1kYy1zZWxlY3Q6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgKyAubWRjLXNlbGVjdC1oZWxwZXItdGV4dCB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuICAubWRjLXNlbGVjdCwgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDsgfVxuICAubWRjLXNlbGVjdDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbGluZS1yaXBwbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2MjAwZWU7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfVxuICAubWRjLXNlbGVjdDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIGNvbG9yOiByZ2JhKDk4LCAwLCAyMzgsIDAuODcpOyB9XG4gIC5tZGMtc2VsZWN0Om5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbDpob3ZlciB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxuICAubWRjLXNlbGVjdCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC03MCUpIHNjYWxlKDAuNzUpOyB9XG4gIC5tZGMtc2VsZWN0IC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiAxNnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogaW5pdGlhbDtcbiAgICB0b3A6IDIxcHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtc2VsZWN0IC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtc2VsZWN0IC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogMTZweDsgfVxuICAubWRjLXNlbGVjdC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogNDhweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtc2VsZWN0Lm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtc2VsZWN0Lm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogNDhweDsgfVxuICAubWRjLXNlbGVjdC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogNHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogaW5pdGlhbDtcbiAgICB0b3A6IDE3cHg7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtc2VsZWN0Lm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtc2VsZWN0Lm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogNHB4OyB9XG4gIC5tZGMtc2VsZWN0Lm1kYy1zZWxlY3QtLW91dGxpbmVkLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiAzNnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogaW5pdGlhbDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3QubWRjLXNlbGVjdC0tb3V0bGluZWQubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbCwgLm1kYy1zZWxlY3QubWRjLXNlbGVjdC0tb3V0bGluZWQubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbFtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHJpZ2h0OiAzNnB4OyB9XG4gICAgLm1kYy1zZWxlY3QubWRjLXNlbGVjdC0tb3V0bGluZWQubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogMzZweDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHJpZ2h0OiBpbml0aWFsOyB9XG4gICAgICBbZGlyPVwicnRsXCJdIC5tZGMtc2VsZWN0Lm1kYy1zZWxlY3QtLW91dGxpbmVkLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLCAubWRjLXNlbGVjdC5tZGMtc2VsZWN0LS1vdXRsaW5lZC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZVtkaXI9XCJydGxcIl0ge1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgcmlnaHQ6IDM2cHg7IH1cbiAgLm1kYy1zZWxlY3RfX2Ryb3Bkb3duLWljb24ge1xuICAgIGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB3aWR0aCUzRCUyMjEwcHglMjIlMjBoZWlnaHQlM0QlMjI1cHglMjIlMjB2aWV3Qm94JTNEJTIyNyUyMDEwJTIwMTAlMjA1JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGlkJTNEJTIyU2hhcGUlMjIlMjBzdHJva2UlM0QlMjJub25lJTIyJTIwZmlsbCUzRCUyMiUyMzAwMCUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlMjBvcGFjaXR5JTNEJTIyMC41NCUyMiUyMHBvaW50cyUzRCUyMjclMjAxMCUyMDEyJTIwMTUlMjAxNyUyMDEwJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwQSUzQyUyRnN2ZyUzRVwiKSBuby1yZXBlYXQgY2VudGVyO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBhdXRvO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogOHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDE2cHg7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdF9fZHJvcGRvd24taWNvbiwgLm1kYy1zZWxlY3RfX2Ryb3Bkb3duLWljb25bZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IDhweDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHJpZ2h0OiBhdXRvOyB9XG4gICAgLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1zZWxlY3RfX2Ryb3Bkb3duLWljb24ge1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTBweCUyMiUyMGhlaWdodCUzRCUyMjVweCUyMiUyMHZpZXdCb3glM0QlMjI3JTIwMTAlMjAxMCUyMDUlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwaWQlM0QlMjJTaGFwZSUyMiUyMHN0cm9rZSUzRCUyMm5vbmUlMjIlMjBmaWxsJTNEJTIyJTIzNjIwMGVlJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUyMG9wYWNpdHklM0QlMjIxJTIyJTIwcG9pbnRzJTNEJTIyNyUyMDEwJTIwMTIlMjAxNSUyMDE3JTIwMTAlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBBJTNDJTJGc3ZnJTNFXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZVkoLTVweCk7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wge1xuICAgIHBhZGRpbmctdG9wOiAyMHB4OyB9XG4gIC5tZGMtc2VsZWN0Lm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1saW5lLXJpcHBsZTo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMik7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4ubWRjLXNlbGVjdCArIC5tZGMtc2VsZWN0LWhlbHBlci10ZXh0IHtcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBtYXJnaW4tbGVmdDogMTJweDsgfVxuXG4ubWRjLXNlbGVjdC0tb3V0bGluZWQgKyAubWRjLXNlbGVjdC1oZWxwZXItdGV4dCB7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7IH1cblxuLm1kYy1zZWxlY3QtLWZvY3VzZWQgKyAubWRjLXNlbGVjdC1oZWxwZXItdGV4dDpub3QoLm1kYy1zZWxlY3QtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnKSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBwYWRkaW5nLXRvcDogMjJweDsgfVxuXG4ubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4ubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDUycHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMDkzNzVlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTZweDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYXBwZWFyYW5jZTogbm9uZTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCwgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCxcbiAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHRbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiA1MnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9XG4gIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbDo6LW1zLWV4cGFuZCxcbiAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQ6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sOjotbXMtdmFsdWUsXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0OjotbXMtdmFsdWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbkAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoXCJcIikge1xuICAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICB0ZXh0LWluZGVudDogLTJweDsgfSB9XG5cbi5tZGMtc2VsZWN0LS1vdXRsaW5lZCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI0KTsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2w6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpOm5vdCgubWRjLXNlbGVjdC0tZm9jdXNlZCkgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2w6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKTpub3QoLm1kYy1zZWxlY3QtLWZvY3VzZWQpIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKTpub3QoLm1kYy1zZWxlY3QtLWZvY3VzZWQpIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgYm9yZGVyLXdpZHRoOiAycHg7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3JkZXItY29sb3I6ICM2MjAwZWU7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gICAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZCAyNTBtcyAxOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4OyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZ1tkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nLCAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOjpiZWZvcmUsIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTQ0JSkgc2NhbGUoMSk7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogNTJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLCAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAgIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCxcbiAgICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHRbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctbGVmdDogNTJweDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICBwYWRkaW5nLXRvcDogMTRweDsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1zZWxlY3RfX2ljb24ge1xuICAgIHotaW5kZXg6IDI7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1cmVtO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG5cbi5tZGMtc2VsZWN0LS1pbnZhbGlkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICBjb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXNlbGVjdC0taW52YWxpZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4ubWRjLXNlbGVjdC0taW52YWxpZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXNlbGVjdC0taW52YWxpZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbGluZS1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgY29sb3I6ICNiMDAwMjA7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0taW52YWxpZCArIC5tZGMtc2VsZWN0LWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZyB7XG4gIGNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtc2VsZWN0LS1pbnZhbGlkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbDpob3ZlciB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXNlbGVjdC0taW52YWxpZC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtc2VsZWN0LS1pbnZhbGlkLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbi5tZGMtc2VsZWN0LS1pbnZhbGlkLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gIGJvcmRlci1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2w6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtc2VsZWN0LS1pbnZhbGlkLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpOm5vdCgubWRjLXNlbGVjdC0tZm9jdXNlZCkgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2w6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcsXG4ubWRjLXNlbGVjdC0taW52YWxpZC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKTpub3QoLm1kYy1zZWxlY3QtLWZvY3VzZWQpIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXNlbGVjdC0taW52YWxpZC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKTpub3QoLm1kYy1zZWxlY3QtLWZvY3VzZWQpIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gIGJvcmRlci1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtc2VsZWN0LS1pbnZhbGlkLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICBib3JkZXItd2lkdGg6IDJweDsgfVxuXG4ubWRjLXNlbGVjdC0taW52YWxpZC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4ubWRjLXNlbGVjdC0taW52YWxpZC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gIGJvcmRlci1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQgLm1kYy1zZWxlY3RfX2Ryb3Bkb3duLWljb24ge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIwd2lkdGglM0QlMjIxMHB4JTIyJTIwaGVpZ2h0JTNEJTIyNXB4JTIyJTIwdmlld0JveCUzRCUyMjclMjAxMCUyMDEwJTIwNSUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBpZCUzRCUyMlNoYXBlJTIyJTIwc3Ryb2tlJTNEJTIybm9uZSUyMiUyMGZpbGwlM0QlMjIlMjNiMDAwMjAlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTIwb3BhY2l0eSUzRCUyMjElMjIlMjBwb2ludHMlM0QlMjI3JTIwMTAlMjAxMiUyMDE1JTIwMTclMjAxMCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEElM0MlMkZzdmclM0VcIikgbm8tcmVwZWF0IGNlbnRlcjsgfVxuXG4ubWRjLXNlbGVjdC0taW52YWxpZCArIC5tZGMtc2VsZWN0LWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZyB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLm1kYy1zZWxlY3QtLXJlcXVpcmVkIC5tZGMtZmxvYXRpbmctbGFiZWw6OmFmdGVyIHtcbiAgY29udGVudDogXCIqXCI7IH1cblxuLm1kYy1zZWxlY3QtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAubWRjLXNlbGVjdC0tZGlzYWJsZWQgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zNyk7IH1cbiAgLm1kYy1zZWxlY3QtLWRpc2FibGVkIC5tZGMtc2VsZWN0X19kcm9wZG93bi1pY29uIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIwd2lkdGglM0QlMjIxMHB4JTIyJTIwaGVpZ2h0JTNEJTIyNXB4JTIyJTIwdmlld0JveCUzRCUyMjclMjAxMCUyMDEwJTIwNSUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBpZCUzRCUyMlNoYXBlJTIyJTIwc3Ryb2tlJTNEJTIybm9uZSUyMiUyMGZpbGwlM0QlMjIlMjMwMDAlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTIwb3BhY2l0eSUzRCUyMjAuMzclMjIlMjBwb2ludHMlM0QlMjI3JTIwMTAlMjAxMiUyMDE1JTIwMTclMjAxMCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEElM0MlMkZzdmclM0VcIikgbm8tcmVwZWF0IGNlbnRlcjsgfVxuICAubWRjLXNlbGVjdC0tZGlzYWJsZWQgLm1kYy1saW5lLXJpcHBsZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAubWRjLXNlbGVjdC0tZGlzYWJsZWQgLm1kYy1zZWxlY3RfX2ljb24ge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzcpOyB9XG4gIC5tZGMtc2VsZWN0LS1kaXNhYmxlZCAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4gIC5tZGMtc2VsZWN0LS1kaXNhYmxlZCAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zNyk7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkOyB9XG4gIC5tZGMtc2VsZWN0LS1kaXNhYmxlZCAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLm1kYy1zZWxlY3QtLWRpc2FibGVkLm1kYy1zZWxlY3QtLW91dGxpbmVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5tZGMtc2VsZWN0LS1kaXNhYmxlZC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4gICAgLm1kYy1zZWxlY3QtLWRpc2FibGVkLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7IH1cbiAgICAubWRjLXNlbGVjdC0tZGlzYWJsZWQubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gICAgLm1kYy1zZWxlY3QtLWRpc2FibGVkLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgICAubWRjLXNlbGVjdC0tZGlzYWJsZWQubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE2KTsgfVxuXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1zZWxlY3RfX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1zZWxlY3RfX2ljb24sIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXNlbGVjdF9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMTZweDsgfVxuXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMzJweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2xbZGlyPVwicnRsXCJdLCBbZGlyPVwicnRsXCJdXG4gIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCxcbiAgLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0W2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMzJweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogNDhweDsgfVxuXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0NCUpIHRyYW5zbGF0ZVgoLTMycHgpIHNjYWxlKDEpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLCAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmVbZGlyPVwicnRsXCJdIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0NCUpIHRyYW5zbGF0ZVgoMzJweCkgc2NhbGUoMSk7IH1cblxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG5cbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEzMCUpIHRyYW5zbGF0ZVgoLTMycHgpIHNjYWxlKDAuNzUpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLCAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWQubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmVbZGlyPVwicnRsXCJdLCBbZGlyPVwicnRsXCJdXG4gIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4gIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmVbZGlyPVwicnRsXCJdIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEzMCUpIHRyYW5zbGF0ZVgoMzJweCkgc2NhbGUoMC43NSk7IH1cblxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2Uge1xuICBhbmltYXRpb246IG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS1zZWxlY3Qtb3V0bGluZWQtbGVhZGluZy1pY29uIDI1MG1zIDE7IH1cblxuW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2UsIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZFtkaXI9XCJydGxcIl0gLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2Uge1xuICBhbmltYXRpb246IG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS1zZWxlY3Qtb3V0bGluZWQtbGVhZGluZy1pY29uLXJ0bCAyNTBtcyAxOyB9XG5cbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdC1pdGVtX190ZXh0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMzJweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdC1pdGVtX190ZXh0LCAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QtaXRlbV9fdGV4dFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDMycHg7IH1cblxuLm1kYy1zZWxlY3RfX21lbnUgLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCB7XG4gIGNvbG9yOiAjMDAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCk7IH1cbiAgLm1kYy1zZWxlY3RfX21lbnUgLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YmVmb3JlLCAubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIC5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6OmJlZm9yZSwgLm1kYy1zZWxlY3RfX21lbnUgLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YWZ0ZXIge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKTsgfSB9XG4gIC5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICAubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1zZWxlY3RfX21lbnUgLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1zZWxlY3RfX21lbnUgLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjsgfVxuXG5Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS1zZWxlY3Qtb3V0bGluZWQtbGVhZGluZy1pY29uIHtcbiAgLyogY2xlYW4tY3NzIGlnbm9yZTpzdGFydCAqL1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDMycHgpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAzMyUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMyLCAwLjQ5NTgxOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoNCUgLSAzMnB4KSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgNjYlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0MzUsIDAuMzgxMzUyLCAwLjU1LCAwLjk1NjM1Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTQlIC0gMzJweCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAzMnB4KSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgLyogY2xlYW4tY3NzIGlnbm9yZTplbmQgKi8gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS1zZWxlY3Qtb3V0bGluZWQtbGVhZGluZy1pY29uLXJ0bCB7XG4gIC8qIGNsZWFuLWNzcyBpZ25vcmU6c3RhcnQgKi9cbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAtMzJweCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDMzJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MzIsIDAuNDk1ODE5KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyg0JSAtIC0zMnB4KSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgNjYlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0MzUsIDAuMzgxMzUyLCAwLjU1LCAwLjk1NjM1Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTQlIC0gLTMycHgpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gLTMycHgpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAvKiBjbGVhbi1jc3MgaWdub3JlOmVuZCAqLyB9XG5cbkBrZXlmcmFtZXMgbWRjLXNsaWRlci1lbXBoYXNpemUge1xuICAwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7IH1cbiAgNTAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44NSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjU3MSk7IH0gfVxuXG4ubWRjLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3VjaC1hY3Rpb246IHBhbi14O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IH1cbiAgLm1kYy1zbGlkZXI6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkgLm1kYy1zbGlkZXJfX3RyYWNrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2O1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfVxuICAubWRjLXNsaWRlcjpub3QoLm1kYy1zbGlkZXItLWRpc2FibGVkKSAubWRjLXNsaWRlcl9fdHJhY2stY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEsIDEzNSwgMTM0LCAwLjI2KTsgfVxuICAubWRjLXNsaWRlcjpub3QoLm1kYy1zbGlkZXItLWRpc2FibGVkKSAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyOjphZnRlcixcbiAgLm1kYy1zbGlkZXI6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlci1jb250YWluZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2O1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfVxuICAubWRjLXNsaWRlcjpub3QoLm1kYy1zbGlkZXItLWRpc2FibGVkKSAubWRjLXNsaWRlcl9fdGh1bWIge1xuICAgIGZpbGw6ICMwMTg3ODY7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGZpbGw6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpO1xuICAgIHN0cm9rZTogIzAxODc4NjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgc3Ryb2tlOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfVxuICAubWRjLXNsaWRlcjpub3QoLm1kYy1zbGlkZXItLWRpc2FibGVkKSAubWRjLXNsaWRlcl9fZm9jdXMtcmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxODc4NjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7IH1cbiAgLm1kYy1zbGlkZXI6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkgLm1kYy1zbGlkZXJfX3BpbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxODc4NjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7IH1cbiAgLm1kYy1zbGlkZXI6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkgLm1kYy1zbGlkZXJfX3BpbiB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1kYXJrLCB3aGl0ZSk7IH1cbiAgLm1kYy1zbGlkZXItLWRpc2FibGVkIHtcbiAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAubWRjLXNsaWRlci0tZGlzYWJsZWQgLm1kYy1zbGlkZXJfX3RyYWNrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5YTlhOWE7IH1cbiAgICAubWRjLXNsaWRlci0tZGlzYWJsZWQgLm1kYy1zbGlkZXJfX3RyYWNrLWNvbnRhaW5lciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1NCwgMTU0LCAxNTQsIDAuMjYpOyB9XG4gICAgLm1kYy1zbGlkZXItLWRpc2FibGVkIC5tZGMtc2xpZGVyX190cmFjay1tYXJrZXI6OmFmdGVyLFxuICAgIC5tZGMtc2xpZGVyLS1kaXNhYmxlZCAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyLWNvbnRhaW5lcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzlhOWE5YTsgfVxuICAgIC5tZGMtc2xpZGVyLS1kaXNhYmxlZCAubWRjLXNsaWRlcl9fdGh1bWIge1xuICAgICAgZmlsbDogIzlhOWE5YTtcbiAgICAgIHN0cm9rZTogIzlhOWE5YTsgfVxuICAgIC5tZGMtc2xpZGVyLS1kaXNhYmxlZCAubWRjLXNsaWRlcl9fdGh1bWIge1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgc3Ryb2tlOiB3aGl0ZTtcbiAgICAgIHN0cm9rZTogdmFyKC0tbWRjLXNsaWRlci1iZy1jb2xvci1iZWhpbmQtY29tcG9uZW50LCB3aGl0ZSk7IH1cbiAgLm1kYy1zbGlkZXI6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLm1kYy1zbGlkZXJfX3RyYWNrLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kYy1zbGlkZXJfX3RyYWNrIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IH1cbiAgICAubWRjLXNsaWRlcltkaXI9XCJydGxcIl0gLm1kYy1zbGlkZXJfX3RyYWNrLFxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RyYWNrIHtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDsgfVxuICAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgLm1kYy1zbGlkZXJbZGlyPVwicnRsXCJdIC5tZGMtc2xpZGVyX190cmFjay1tYXJrZXItY29udGFpbmVyLFxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1zbGlkZXIgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlci1jb250YWluZXIge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyLWNvbnRhaW5lcjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMnB4O1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtc2xpZGVyX190cmFjay1tYXJrZXIge1xuICAgIGZsZXg6IDE7IH1cbiAgICAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAycHg7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgICAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyOmZpcnN0LWNoaWxkOjphZnRlciB7XG4gICAgICB3aWR0aDogM3B4OyB9XG4gIC5tZGMtc2xpZGVyX190aHVtYi1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE1cHg7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMjFweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgfVxuICAubWRjLXNsaWRlcl9fdGh1bWIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNTcxKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZS1vdXQsIGZpbGwgMTAwbXMgZWFzZS1vdXQsIHN0cm9rZSAxMDBtcyBlYXNlLW91dDtcbiAgICBzdHJva2Utd2lkdGg6IDMuNTsgfVxuICAubWRjLXNsaWRlcl9fZm9jdXMtcmluZyB7XG4gICAgd2lkdGg6IDIxcHg7XG4gICAgaGVpZ2h0OiAyMXB4O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNjYuNjdtcyBlYXNlLW91dCwgb3BhY2l0eSAyNjYuNjdtcyBlYXNlLW91dCwgYmFja2dyb3VuZC1jb2xvciAyNjYuNjdtcyBlYXNlLW91dDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDsgfVxuICAubWRjLXNsaWRlcl9fcGluIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMCkgdHJhbnNsYXRlKDAsIDApO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMDBtcyBlYXNlLW91dDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCUgNTAlIDUwJSAwJTtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtc2xpZGVyX19waW4tdmFsdWUtbWFya2VyIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxNzg1NzE0ZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgfVxuXG4ubWRjLXNsaWRlci0tYWN0aXZlIC5tZGMtc2xpZGVyX190aHVtYiB7XG4gIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsgfVxuXG4ubWRjLXNsaWRlci0tZm9jdXMgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgYW5pbWF0aW9uOiBtZGMtc2xpZGVyLWVtcGhhc2l6ZSAyNjYuNjdtcyBsaW5lYXI7IH1cblxuLm1kYy1zbGlkZXItLWZvY3VzIC5tZGMtc2xpZGVyX19mb2N1cy1yaW5nIHtcbiAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuNTUsIDEuNTUsIDEuNTUpO1xuICBvcGFjaXR5OiAuMjU7IH1cblxuLm1kYy1zbGlkZXItLWluLXRyYW5zaXQgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMTQwbXM7IH1cblxuLm1kYy1zbGlkZXItLWluLXRyYW5zaXQgLm1kYy1zbGlkZXJfX3RodW1iLWNvbnRhaW5lcixcbi5tZGMtc2xpZGVyLS1pbi10cmFuc2l0IC5tZGMtc2xpZGVyX190cmFjayxcbi5tZGMtc2xpZGVyOmZvY3VzOm5vdCgubWRjLXNsaWRlci0tYWN0aXZlKSAubWRjLXNsaWRlcl9fdGh1bWItY29udGFpbmVyLFxuLm1kYy1zbGlkZXI6Zm9jdXM6bm90KC5tZGMtc2xpZGVyLS1hY3RpdmUpIC5tZGMtc2xpZGVyX190cmFjayB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA4MG1zIGVhc2U7IH1cblxuLm1kYy1zbGlkZXItLWRpc2NyZXRlLm1kYy1zbGlkZXItLWFjdGl2ZSAubWRjLXNsaWRlcl9fdGh1bWIge1xuICB0cmFuc2Zvcm06IHNjYWxlKGNhbGMoMTIgLyAyMSkpOyB9XG5cbi5tZGMtc2xpZGVyLS1kaXNjcmV0ZS5tZGMtc2xpZGVyLS1hY3RpdmUgLm1kYy1zbGlkZXJfX3BpbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMSkgdHJhbnNsYXRlKDE5cHgsIC0yMHB4KTsgfVxuXG4ubWRjLXNsaWRlci0tZGlzY3JldGUubWRjLXNsaWRlci0tZm9jdXMgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgYW5pbWF0aW9uOiBub25lOyB9XG5cbi5tZGMtc2xpZGVyLS1kaXNjcmV0ZS5tZGMtc2xpZGVyLS1kaXNwbGF5LW1hcmtlcnMgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlci1jb250YWluZXIge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5tZGMtc25hY2tiYXIge1xuICB6LWluZGV4OiA4O1xuICBtYXJnaW46IDhweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsgfVxuXG4ubWRjLXNuYWNrYmFyX19zdXJmYWNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzMzMzsgfVxuXG4ubWRjLXNuYWNrYmFyX19sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpOyB9XG5cbi5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICBtaW4td2lkdGg6IDM0NHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCksIChtYXgtd2lkdGg6IDM0NHB4KSB7XG4gICAgLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gICAgICBtaW4td2lkdGg6IDEwMCU7IH0gfVxuXG4ubWRjLXNuYWNrYmFyX19zdXJmYWNlIHtcbiAgbWF4LXdpZHRoOiA2NzJweDsgfVxuXG4ubWRjLXNuYWNrYmFyX19zdXJmYWNlIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICBib3JkZXItcmFkaXVzOiA0cHg7IH1cblxuLm1kYy1zbmFja2Jhci0tb3BlbmluZyxcbi5tZGMtc25hY2tiYXItLW9wZW4sXG4ubWRjLXNuYWNrYmFyLS1jbG9zaW5nIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4ubWRjLXNuYWNrYmFyLS1sZWFkaW5nIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG5cbi5tZGMtc25hY2tiYXItLXN0YWNrZWQgLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5tZGMtc25hY2tiYXItLXN0YWNrZWQgLm1kYy1zbmFja2Jhcl9fYWN0aW9ucyB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7IH1cblxuLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICBvcGFjaXR5OiAwOyB9XG4gIC5tZGMtc25hY2tiYXItLW9wZW4gLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgdHJhbnNmb3JtIDE1MG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gIC5tZGMtc25hY2tiYXItLWNsb3NpbmcgLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDc1bXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpOyB9XG5cbi5tZGMtc25hY2tiYXJfX2xhYmVsIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMTc4NTcxNGVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBmbGV4LWdyb3c6IDE7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMTRweCAxNnB4OyB9XG5cbi5tZGMtc25hY2tiYXJfX2xhYmVsOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS1tZGMtc25hY2tiYXItbGFiZWwtdGV4dCk7IH1cblxuLm1kYy1zbmFja2Jhcl9fYWN0aW9ucyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1zbmFja2Jhcl9fYWN0aW9ucywgLm1kYy1zbmFja2Jhcl9fYWN0aW9uc1tkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLm1kYy1zbmFja2Jhcl9fYWN0aW9uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgY29sb3I6ICNiYjg2ZmM7IH1cblxuLm1kYy1zbmFja2Jhcl9fYWN0aW9uOjpiZWZvcmUsIC5tZGMtc25hY2tiYXJfX2FjdGlvbjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmI4NmZjOyB9XG5cbi5tZGMtc25hY2tiYXJfX2FjdGlvbjpob3Zlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4wODsgfVxuXG4ubWRjLXNuYWNrYmFyX19hY3Rpb246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLXNuYWNrYmFyX19hY3Rpb24ubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI0OyB9XG5cbi5tZGMtc25hY2tiYXJfX2FjdGlvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG5cbi5tZGMtc25hY2tiYXJfX2FjdGlvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI0OyB9XG5cbi5tZGMtc25hY2tiYXJfX2FjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjQ7IH1cblxuLm1kYy1zbmFja2Jhcl9fZGlzbWlzcyB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpOyB9XG4gIC5tZGMtc25hY2tiYXJfX2Rpc21pc3M6OmJlZm9yZSwgLm1kYy1zbmFja2Jhcl9fZGlzbWlzczo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7IH1cbiAgLm1kYy1zbmFja2Jhcl9fZGlzbWlzczpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA4OyB9XG4gIC5tZGMtc25hY2tiYXJfX2Rpc21pc3M6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLXNuYWNrYmFyX19kaXNtaXNzLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMjQ7IH1cbiAgLm1kYy1zbmFja2Jhcl9fZGlzbWlzczpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm1kYy1zbmFja2Jhcl9fZGlzbWlzczpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4yNDsgfVxuICAubWRjLXNuYWNrYmFyX19kaXNtaXNzLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjI0OyB9XG5cbi5tZGMtc25hY2tiYXJfX2Rpc21pc3MubWRjLXNuYWNrYmFyX19kaXNtaXNzIHtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgcGFkZGluZzogOXB4O1xuICBmb250LXNpemU6IDE4cHg7IH1cbiAgLm1kYy1zbmFja2Jhcl9fZGlzbWlzcy5tZGMtc25hY2tiYXJfX2Rpc21pc3Mgc3ZnLFxuICAubWRjLXNuYWNrYmFyX19kaXNtaXNzLm1kYy1zbmFja2Jhcl9fZGlzbWlzcyBpbWcge1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDsgfVxuXG4ubWRjLXNuYWNrYmFyX19hY3Rpb24gKyAubWRjLXNuYWNrYmFyX19kaXNtaXNzIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtc25hY2tiYXJfX2FjdGlvbiArIC5tZGMtc25hY2tiYXJfX2Rpc21pc3MsIC5tZGMtc25hY2tiYXJfX2FjdGlvbiArIC5tZGMtc25hY2tiYXJfX2Rpc21pc3NbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogOHB4OyB9XG5cbi5tZGMtc3dpdGNoIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5tZGMtc3dpdGNoLm1kYy1zd2l0Y2gtLWNoZWNrZWQgLm1kYy1zd2l0Y2hfX3RyYWNrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE4Nzg2O1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTtcbiAgICBib3JkZXItY29sb3I6ICMwMTg3ODY7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7IH1cbiAgLm1kYy1zd2l0Y2gubWRjLXN3aXRjaC0tY2hlY2tlZCAubWRjLXN3aXRjaF9fdGh1bWIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTg3ODY7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpO1xuICAgIGJvcmRlci1jb2xvcjogIzAxODc4NjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjMDE4Nzg2KTsgfVxuICAubWRjLXN3aXRjaDpub3QoLm1kYy1zd2l0Y2gtLWNoZWNrZWQpIC5tZGMtc3dpdGNoX190cmFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICBib3JkZXItY29sb3I6ICMwMDA7IH1cbiAgLm1kYy1zd2l0Y2g6bm90KC5tZGMtc3dpdGNoLS1jaGVja2VkKSAubWRjLXN3aXRjaF9fdGh1bWIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmZmOyB9XG5cbi5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogaW5pdGlhbDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiA2OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIG1hcmdpbjogMDtcbiAgb3BhY2l0eTogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbCwgLm1kYy1zd2l0Y2hfX25hdGl2ZS1jb250cm9sW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiAwOyB9XG5cbi5tZGMtc3dpdGNoX190cmFjayB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIG9wYWNpdHk6IC4zODtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA5MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJhY2tncm91bmQtY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBib3JkZXItY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG5cbi5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogLTE4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTdweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDkwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYmFja2dyb3VuZC1jb2xvciA5MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJvcmRlci1jb2xvciA5MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXksIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheVtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogLTE4cHg7IH1cblxuLm1kYy1zd2l0Y2hfX3RodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyOiAxMHB4IHNvbGlkO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAxOyB9XG5cbi5tZGMtc3dpdGNoLS1jaGVja2VkIC5tZGMtc3dpdGNoX190cmFjayB7XG4gIG9wYWNpdHk6IC41NDsgfVxuXG4ubWRjLXN3aXRjaC0tY2hlY2tlZCAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXN3aXRjaC0tY2hlY2tlZCAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXksIC5tZGMtc3dpdGNoLS1jaGVja2VkIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheVtkaXI9XCJydGxcIl0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7IH1cblxuLm1kYy1zd2l0Y2gtLWNoZWNrZWQgLm1kYy1zd2l0Y2hfX25hdGl2ZS1jb250cm9sIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtc3dpdGNoLS1jaGVja2VkIC5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbCwgLm1kYy1zd2l0Y2gtLWNoZWNrZWQgLm1kYy1zd2l0Y2hfX25hdGl2ZS1jb250cm9sW2Rpcj1cInJ0bFwiXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOyB9XG5cbi5tZGMtc3dpdGNoLS1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IC4zODtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLm1kYy1zd2l0Y2gtLWRpc2FibGVkIC5tZGMtc3dpdGNoX190aHVtYiB7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7IH1cbiAgLm1kYy1zd2l0Y2gtLWRpc2FibGVkIC5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5tZGMtc3dpdGNoOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OjpiZWZvcmUsIC5tZGMtc3dpdGNoOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5ZTllOWU7IH1cblxuLm1kYy1zd2l0Y2g6bm90KC5tZGMtc3dpdGNoLS1jaGVja2VkKSAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMDg7IH1cblxuLm1kYy1zd2l0Y2g6bm90KC5tZGMtc3dpdGNoLS1jaGVja2VkKSAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLXN3aXRjaDpub3QoLm1kYy1zd2l0Y2gtLWNoZWNrZWQpIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMjQ7IH1cblxuLm1kYy1zd2l0Y2g6bm90KC5tZGMtc3dpdGNoLS1jaGVja2VkKSAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuXG4ubWRjLXN3aXRjaDpub3QoLm1kYy1zd2l0Y2gtLWNoZWNrZWQpIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI0OyB9XG5cbi5tZGMtc3dpdGNoOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkge1xuICAtLW1kYy1yaXBwbGUtZmctc2l6ZTogMDtcbiAgLS1tZGMtcmlwcGxlLWxlZnQ6IDA7XG4gIC0tbWRjLXJpcHBsZS10b3A6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy1zY2FsZTogMTtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQ6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQ6IDA7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTsgfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6OmJlZm9yZSwgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTVtcyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMTVtcyBsaW5lYXI7XG4gICAgei1pbmRleDogMTsgfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZDo6YWZ0ZXIge1xuICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIDApO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIDApOyB9XG4gIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTo6YmVmb3JlLCAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogY2FsYyg1MCUgLSA1MCUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlLCAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIGNhbGMoNTAlIC0gNTAlKSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgY2FsYyg1MCUgLSA1MCUpKTtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OjpiZWZvcmUsIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTg3ODY7IH1cbiAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6OmJlZm9yZSwgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzAxODc4Nik7IH0gfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cblxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG4ubWRjLXRhYiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wODkyODU3MWVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBwYWRkaW5nOiAwIDI0cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgei1pbmRleDogMTsgfVxuICAubWRjLXRhYiAubWRjLXRhYl9fdGV4dC1sYWJlbCB7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzAwMCk7IH1cbiAgLm1kYy10YWIgLm1kYy10YWJfX2ljb24ge1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApO1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsgfVxuICAubWRjLXRhYjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7IH1cblxuLm1kYy10YWItLW1pbi13aWR0aCB7XG4gIGZsZXg6IDAgMSBhdXRvOyB9XG5cbi5tZGMtdGFiX19yaXBwbGUge1xuICAtLW1kYy1yaXBwbGUtZmctc2l6ZTogMDtcbiAgLS1tZGMtcmlwcGxlLWxlZnQ6IDA7XG4gIC0tbWRjLXJpcHBsZS10b3A6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy1zY2FsZTogMTtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQ6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQ6IDA7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kYy10YWJfX3JpcHBsZTo6YmVmb3JlLCAubWRjLXRhYl9fcmlwcGxlOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLm1kYy10YWJfX3JpcHBsZTo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy10YWJfX3JpcHBsZS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtdGFiX19yaXBwbGUubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgLm1kYy10YWJfX3JpcHBsZS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLXRhYl9fcmlwcGxlLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzOyB9XG4gIC5tZGMtdGFiX19yaXBwbGUubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSwgLm1kYy10YWJfX3JpcHBsZTo6YWZ0ZXIge1xuICAgIHRvcDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICB3aWR0aDogMjAwJTtcbiAgICBoZWlnaHQ6IDIwMCU7IH1cbiAgLm1kYy10YWJfX3JpcHBsZS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSwgLm1kYy10YWJfX3JpcHBsZTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2MjAwZWU7IH1cbiAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAubWRjLXRhYl9fcmlwcGxlOjpiZWZvcmUsIC5tZGMtdGFiX19yaXBwbGU6OmFmdGVyIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH0gfVxuICAubWRjLXRhYl9fcmlwcGxlOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy10YWJfX3JpcHBsZTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtdGFiX19yaXBwbGUubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXRhYl9fcmlwcGxlOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubWRjLXRhYl9fcmlwcGxlOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtdGFiX19yaXBwbGUubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cblxuLm1kYy10YWJfX2NvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5tZGMtdGFiX190ZXh0LWxhYmVsLFxuLm1kYy10YWJfX2ljb24ge1xuICB0cmFuc2l0aW9uOiAxNTBtcyBjb2xvciBsaW5lYXIsIDE1MG1zIG9wYWNpdHkgbGluZWFyO1xuICB6LWluZGV4OiAyOyB9XG5cbi5tZGMtdGFiX190ZXh0LWxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvcGFjaXR5OiAwLjY7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi5tZGMtdGFiX19pY29uIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgb3BhY2l0eTogMC41NDtcbiAgZm9udC1zaXplOiAyNHB4OyB9XG5cbi5tZGMtdGFiLS1zdGFja2VkIHtcbiAgaGVpZ2h0OiA3MnB4OyB9XG5cbi5tZGMtdGFiLS1zdGFja2VkIC5tZGMtdGFiX19jb250ZW50IHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi5tZGMtdGFiLS1zdGFja2VkIC5tZGMtdGFiX19pY29uIHtcbiAgcGFkZGluZy10b3A6IDEycHg7IH1cblxuLm1kYy10YWItLXN0YWNrZWQgLm1kYy10YWJfX3RleHQtbGFiZWwge1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDsgfVxuXG4ubWRjLXRhYi0tYWN0aXZlIC5tZGMtdGFiX190ZXh0LWxhYmVsIHtcbiAgY29sb3I6ICM2MjAwZWU7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfVxuXG4ubWRjLXRhYi0tYWN0aXZlIC5tZGMtdGFiX19pY29uIHtcbiAgY29sb3I6ICM2MjAwZWU7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTtcbiAgZmlsbDogY3VycmVudENvbG9yOyB9XG5cbi5tZGMtdGFiLS1hY3RpdmUgLm1kYy10YWJfX3RleHQtbGFiZWwsXG4ubWRjLXRhYi0tYWN0aXZlIC5tZGMtdGFiX19pY29uIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMTAwbXM7XG4gIG9wYWNpdHk6IDE7IH1cblxuLm1kYy10YWI6bm90KC5tZGMtdGFiLS1zdGFja2VkKSAubWRjLXRhYl9faWNvbiArIC5tZGMtdGFiX190ZXh0LWxhYmVsIHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10YWI6bm90KC5tZGMtdGFiLS1zdGFja2VkKSAubWRjLXRhYl9faWNvbiArIC5tZGMtdGFiX190ZXh0LWxhYmVsLCAubWRjLXRhYjpub3QoLm1kYy10YWItLXN0YWNrZWQpIC5tZGMtdGFiX19pY29uICsgLm1kYy10YWJfX3RleHQtbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7IH1cblxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cbi5tZGMtdGFiLWJhciB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG4ubWRjLXRhYi1pbmRpY2F0b3Ige1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDE7IH1cbiAgLm1kYy10YWItaW5kaWNhdG9yID4gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2MjAwZWU7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfVxuICAubWRjLXRhYi1pbmRpY2F0b3IgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSB7XG4gICAgaGVpZ2h0OiAycHg7IH1cbiAgLm1kYy10YWItaW5kaWNhdG9yID4gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS1pY29uIHtcbiAgICBjb2xvcjogIzAxODc4NjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpOyB9XG4gIC5tZGMtdGFiLWluZGljYXRvciA+IC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0taWNvbiB7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGZvbnQtc2l6ZTogMzRweDsgfVxuXG4ubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5lIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0taWNvbiB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLm1kYy10YWItaW5kaWNhdG9yLS1hY3RpdmUgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtdGFiLWluZGljYXRvciA+IC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudCB7XG4gIHRyYW5zaXRpb246IDI1MG1zIHRyYW5zZm9ybSBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG5cbi5tZGMtdGFiLWluZGljYXRvci0tbm8tdHJhbnNpdGlvbiA+IC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudCB7XG4gIHRyYW5zaXRpb246IG5vbmU7IH1cblxuLm1kYy10YWItaW5kaWNhdG9yLS1mYWRlID4gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogMTUwbXMgb3BhY2l0eSBsaW5lYXI7IH1cblxuLm1kYy10YWItaW5kaWNhdG9yLS1hY3RpdmUubWRjLXRhYi1pbmRpY2F0b3ItLWZhZGUgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAxMDBtczsgfVxuXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cbi5tZGMtdGFiLXNjcm9sbGVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuOyB9XG5cbi5tZGMtdGFiLXNjcm9sbGVyX190ZXN0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsOyB9XG5cbi5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtYXJlYSB7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuOyB9XG5cbi5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtYXJlYTo6LXdlYmtpdC1zY3JvbGxiYXIsXG4ubWRjLXRhYi1zY3JvbGxlcl9fdGVzdDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtYXJlYS0tc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsOyB9XG5cbi5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMSAwIGF1dG87XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlci0tYWxpZ24tc3RhcnQgLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1jb250ZW50IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG5cbi5tZGMtdGFiLXNjcm9sbGVyLS1hbGlnbi1lbmQgLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1jb250ZW50IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlci0tYWxpZ24tY2VudGVyIC5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtY29udGVudCB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5tZGMtdGFiLXNjcm9sbGVyLS1hbmltYXRpbmcgLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1hcmVhIHtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IGF1dG87IH1cblxuLm1kYy10YWItc2Nyb2xsZXItLWFuaW1hdGluZyAubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWNvbnRlbnQge1xuICB0cmFuc2l0aW9uOiAyNTBtcyB0cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDMzMzMzMzNlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luOiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIG9wYWNpdHk6IDA7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5OyB9XG4gIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgdmVydGljYWwtYWxpZ246IDA7IH1cblxuLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LS1wZXJzaXN0ZW50IHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgb3BhY2l0eTogMTtcbiAgd2lsbC1jaGFuZ2U6IGluaXRpYWw7IH1cblxuLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzMzMzMzMzZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlcjo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgdmVydGljYWwtYWxpZ246IDA7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIsIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlcltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLCAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXJbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uLFxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4ubWRjLXRleHQtZmllbGRfX2ljb246bm90KFt0YWJpbmRleF0pLFxuLm1kYy10ZXh0LWZpZWxkX19pY29uW3RhYmluZGV4PVwiLTFcIl0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5tZGMtdGV4dC1maWVsZCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm0sIGNvbG9yOyB9XG4gIC5tZGMtdGV4dC1maWVsZDo6YmVmb3JlLCAubWRjLXRleHQtZmllbGQ6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAubWRjLXRleHQtZmllbGQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtdGV4dC1maWVsZC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgdG9wOiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsgfVxuICAubWRjLXRleHQtZmllbGQubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzOyB9XG4gIC5tZGMtdGV4dC1maWVsZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCAxNTBtcztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkOjpiZWZvcmUsIC5tZGMtdGV4dC1maWVsZDo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy10ZXh0LWZpZWxkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy10ZXh0LWZpZWxkOjpiZWZvcmUsIC5tZGMtdGV4dC1maWVsZDo6YWZ0ZXIge1xuICAgIHRvcDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICB3aWR0aDogMjAwJTtcbiAgICBoZWlnaHQ6IDIwMCU7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIGNhcmV0LWNvbG9yOiAjNjIwMGVlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBjYXJldC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpOyB9XG4gIC5tZGMtdGV4dC1maWVsZCAubWRjLWxpbmUtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cbiAgLm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQge1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7IH1cbiAgLm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIsXG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTsgfVxuICAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZXNtb2tlOyB9XG4gIC5tZGMtdGV4dC1maWVsZCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMTZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgdG9wOiAxOHB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQgLm1kYy1mbG9hdGluZy1sYWJlbCwgLm1kYy10ZXh0LWZpZWxkIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogMTZweDsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiA0cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiBpbml0aWFsOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy1mbG9hdGluZy1sYWJlbFtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHJpZ2h0OiA0cHg7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogNHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogaW5pdGlhbDtcbiAgICB0b3A6IDE3cHg7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbCwgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IDRweDsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMzZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogMzZweDsgfVxuICAgIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IDQwcHg7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogaW5pdGlhbDsgfVxuICAgICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSwgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmVbZGlyPVwicnRsXCJdIHtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHJpZ2h0OiA0MHB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA5Mzc1ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAyMHB4IDE2cHggNnB4O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lOyB9XG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDY3bXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpOyB9XG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KSAhaW1wb3J0YW50OyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tZnVsbHdpZHRoIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6OnBsYWNlaG9sZGVyLFxuICAubWRjLXRleHQtZmllbGQtLW5vLWxhYmVsIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6OnBsYWNlaG9sZGVyLFxuICAubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDQwbXM7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTEwbXM7XG4gICAgb3BhY2l0eTogMTsgfVxuICAubWRjLXRleHQtZmllbGRfX2lucHV0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aW52YWxpZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAubWRjLXRleHQtZmllbGRfX2lucHV0Oi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIHotaW5kZXg6IGF1dG8gIWltcG9ydGFudDsgfVxuICAubWRjLXRleHQtZmllbGQtLW5vLWxhYmVsOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgcGFkZGluZzogMTZweDsgfVxuXG4ubWRjLXRleHQtZmllbGRfX2lucHV0Oi13ZWJraXQtYXV0b2ZpbGwgKyAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDAuNzUpO1xuICBjdXJzb3I6IGF1dG87IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNCk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nLFxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2ljb246aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2ljb246aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJvcmRlci1jb2xvcjogIzYyMDBlZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzYyMDBlZSk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gICAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZCAyNTBtcyAxOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZ1tkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcsIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0NCUpIHNjYWxlKDEpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6OmJlZm9yZSwgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHggMTRweDtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgICB6LWluZGV4OiAyOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgYm9yZGVyLXdpZHRoOiAycHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA2KTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIHtcbiAgaGVpZ2h0OiA0OHB4OyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEzNCUpIHNjYWxlKDEpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICBmb250LXNpemU6IDAuOHJlbTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZS5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEyMCUpIHNjYWxlKDAuOCk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlIHtcbiAgICBhbmltYXRpb246IG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlIDI1MG1zIDE7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgcGFkZGluZzogMTJweCAxMnB4IDdweDsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICB0b3A6IDE0cHg7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgICB0b3A6IDEycHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbiwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDE2cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dCwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2lucHV0W2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogNDhweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDQ4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogNDhweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2ljb24sIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMTZweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXRbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNDQlKSB0cmFuc2xhdGVYKC0zMnB4KSBzY2FsZSgxKTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZVtkaXI9XCJydGxcIl0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTQ0JSkgdHJhbnNsYXRlWCgzMnB4KSBzY2FsZSgxKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTMwJSkgdHJhbnNsYXRlWCgtMzJweCkgc2NhbGUoMC43NSk7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmVbZGlyPVwicnRsXCJdLCBbZGlyPVwicnRsXCJdXG4gIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbiAgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlW2Rpcj1cInJ0bFwiXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMzAlKSB0cmFuc2xhdGVYKDMycHgpIHNjYWxlKDAuNzUpOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgZm9udC1zaXplOiAxcmVtOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlIHtcbiAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24gMjUwbXMgMTsgfVxuXG5bZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlLCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZFtkaXI9XCJydGxcIl0gLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2Uge1xuICBhbmltYXRpb246IG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbi1ydGwgMjUwbXMgMTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAzNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbCwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMzZweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEzNCUpIHRyYW5zbGF0ZVgoLTIxcHgpIHNjYWxlKDEpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmVbZGlyPVwicnRsXCJdIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEzNCUpIHRyYW5zbGF0ZVgoMjFweCkgc2NhbGUoMSk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgZm9udC1zaXplOiAwLjhyZW07IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTIwJSkgdHJhbnNsYXRlWCgtMjFweCkgc2NhbGUoMC44KTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZS5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuICAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlW2Rpcj1cInJ0bFwiXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMjAlKSB0cmFuc2xhdGVYKDIxcHgpIHNjYWxlKDAuOCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2Uge1xuICBhbmltYXRpb246IG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbi1kZW5zZSAyNTBtcyAxOyB9XG5cbltkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlLCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2VbZGlyPVwicnRsXCJdIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlIHtcbiAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tZGVuc2UtcnRsIDI1MG1zIDE7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDMycHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy1mbG9hdGluZy1sYWJlbCwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDMycHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiBpbml0aWFsO1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiAxMnB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uLCAubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMTJweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IGluaXRpYWw7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDQ4cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2lucHV0LCAubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2lucHV0W2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogNDhweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiBpbml0aWFsO1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiAxNnB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faWNvbiwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiAxNnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogaW5pdGlhbDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDQ4cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXRbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGF1dG87IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uLCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGF1dG87XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiAxNnB4OyB9XG4gIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2ljb24gfiAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMTJweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogYXV0bzsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbiB+IC5tZGMtdGV4dC1maWVsZF9faWNvbiwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbiB+IC5tZGMtdGV4dC1maWVsZF9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiAxMnB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogNDhweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2lucHV0LCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pY29uLFxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIGJvdHRvbTogMTZweDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMTJweDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogaW5pdGlhbDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbiwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiAxMnB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogNDRweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pbnB1dFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ0cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogNDRweDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogaW5pdGlhbDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDQ0cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogaW5pdGlhbDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogMTJweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24sIC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMTJweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IGluaXRpYWw7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiA0NHB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faW5wdXQsIC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2lucHV0W2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogNDRweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMTJweDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogYXV0bzsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pY29uLCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBhdXRvO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMTJweDsgfVxuICAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbiB+IC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiAxMnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBhdXRvOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbiB+IC5tZGMtdGV4dC1maWVsZF9faWNvbiwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24gfiAubWRjLXRleHQtZmllbGRfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogMTJweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogNDRweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiA0NHB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2lucHV0LCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faW5wdXRbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiA0NHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiA0NHB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTcwJSkgc2NhbGUoMC44KTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlIHtcbiAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1kZW5zZSAyNTBtcyAxOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gIHBhZGRpbmc6IDEycHggMTJweCAwOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogLjgxM3JlbTsgfVxuICAubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICBmb250LXNpemU6IC44MTNyZW07IH1cblxuLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpyZXF1aXJlZCB+IC5tZGMtZmxvYXRpbmctbGFiZWw6OmFmdGVyLFxuLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpyZXF1aXJlZCB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtZmxvYXRpbmctbGFiZWw6OmFmdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgY29udGVudDogXCIqXCI7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB0cmFuc2l0aW9uOiBub25lO1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYTpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI0KTsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWE6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWE6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcsXG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWE6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbjpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2ljb246aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWE6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbjpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWE6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWE6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNjIwMGVlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlIHtcbiAgICBhbmltYXRpb246IG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLW91dGxpbmVkIDI1MG1zIDE7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4OyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLCAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZywgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmdbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4OyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWE6OmJlZm9yZSwgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYTpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTQ0JSkgc2NhbGUoMSk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICBmb250LXNpemU6IDFyZW07IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMTZweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAxM3B4OyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlciwgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXJbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IDE2cHg7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogaW5pdGlhbDsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIGFsaWduLXNlbGY6IGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiA4cHggMXB4IDFweCAwO1xuICAgIHBhZGRpbmc6IDAgMTZweCAxNnB4O1xuICAgIGJvcmRlcjogbm9uZTsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlciArIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICB0b3A6IDE3cHg7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgYm9yZGVyLXdpZHRoOiAycHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1mdWxsd2lkdGgge1xuICB3aWR0aDogMTAwJTsgfVxuICAubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aDpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLm1kYy10ZXh0LWZpZWxkLS1mdWxsd2lkdGg6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpOjpiZWZvcmUsIC5tZGMtdGV4dC1maWVsZC0tZnVsbHdpZHRoOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKTo6YWZ0ZXIge1xuICAgICAgY29udGVudDogbm9uZTsgfVxuICAgIC5tZGMtdGV4dC1maWVsZC0tZnVsbHdpZHRoOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aDpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tZnVsbHdpZHRoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICByZXNpemU6IHZlcnRpY2FsOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tZnVsbHdpZHRoLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tZGVuc2UgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUge1xuICAgIG1hcmdpbi1ib3R0b206IDRweDsgfVxuICAubWRjLXRleHQtZmllbGQgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4OyB9XG5cbi5tZGMtZm9ybS1maWVsZCA+IC5tZGMtdGV4dC1maWVsZCArIGxhYmVsIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWZvY3VzZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICBjb2xvcjogcmdiYSg5OCwgMCwgMjM4LCAwLjg3KTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpyZXF1aXJlZCB+IC5tZGMtZmxvYXRpbmctbGFiZWw6OmFmdGVyLFxuLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWQgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLWZsb2F0aW5nLWxhYmVsOjphZnRlciB7XG4gIGNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQ6bm90KC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2cpIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWZvY3VzZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWZvY3VzZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gIGJvcmRlci1jb2xvcjogIzYyMDBlZTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbGluZS1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0taW52YWxpZCArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnIHtcbiAgY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICBjYXJldC1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjYXJldC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWludmFsaWQubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbjpub3QoLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbik6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIGNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0taW52YWxpZC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uIH4gLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkICsgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2cge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyxcbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbjpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gIGJvcmRlci1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICBib3JkZXItY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nLFxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2ljb246aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2ljb246aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICBib3JkZXItY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDYpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zNyk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM3KTsgfVxuICAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkICsgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dCB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zNyk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIsXG4gIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM3KTsgfVxuICAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTsgfVxuICAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuICAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNik7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG5Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLWRlbnNlIHtcbiAgLyogY2xlYW4tY3NzIGlnbm9yZTpzdGFydCAqL1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDAlKSkgdHJhbnNsYXRlWSgtNzAlKSBzY2FsZSgwLjgpOyB9XG4gIDMzJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MzIsIDAuNDk1ODE5KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyg0JSAtIDAlKSkgdHJhbnNsYXRlWSgtNzAlKSBzY2FsZSgwLjgpOyB9XG4gIDY2JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzAyNDM1LCAwLjM4MTM1MiwgMC41NSwgMC45NTYzNTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC00JSAtIDAlKSkgdHJhbnNsYXRlWSgtNzAlKSBzY2FsZSgwLjgpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwJSkpIHRyYW5zbGF0ZVkoLTcwJSkgc2NhbGUoMC44KTsgfVxuICAvKiBjbGVhbi1jc3MgaWdub3JlOmVuZCAqLyB9XG5cbkBrZXlmcmFtZXMgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHQtZmllbGQtb3V0bGluZWQge1xuICAvKiBjbGVhbi1jc3MgaWdub3JlOnN0YXJ0ICovXG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMCUpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAzMyUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMyLCAwLjQ5NTgxOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoNCUgLSAwJSkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDY2JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzAyNDM1LCAwLjM4MTM1MiwgMC41NSwgMC45NTYzNTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC00JSAtIDAlKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDAlKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgLyogY2xlYW4tY3NzIGlnbm9yZTplbmQgKi8gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlIHtcbiAgLyogY2xlYW4tY3NzIGlnbm9yZTpzdGFydCAqL1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDAlKSkgdHJhbnNsYXRlWSgtMTIwJSkgc2NhbGUoMC44KTsgfVxuICAzMyUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMyLCAwLjQ5NTgxOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoNCUgLSAwJSkpIHRyYW5zbGF0ZVkoLTEyMCUpIHNjYWxlKDAuOCk7IH1cbiAgNjYlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0MzUsIDAuMzgxMzUyLCAwLjU1LCAwLjk1NjM1Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTQlIC0gMCUpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwJSkpIHRyYW5zbGF0ZVkoLTEyMCUpIHNjYWxlKDAuOCk7IH1cbiAgLyogY2xlYW4tY3NzIGlnbm9yZTplbmQgKi8gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbiB7XG4gIC8qIGNsZWFuLWNzcyBpZ25vcmU6c3RhcnQgKi9cbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgMzMlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjcwMTczMiwgMC40OTU4MTkpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDQlIC0gMCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDY2JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzAyNDM1LCAwLjM4MTM1MiwgMC41NSwgMC45NTYzNTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC00JSAtIDApKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIC8qIGNsZWFuLWNzcyBpZ25vcmU6ZW5kICovIH1cblxuQGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tZGVuc2Uge1xuICAvKiBjbGVhbi1jc3MgaWdub3JlOnN0YXJ0ICovXG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMjFweCkpIHRyYW5zbGF0ZVkoLTEyMCUpIHNjYWxlKDAuOCk7IH1cbiAgMzMlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjcwMTczMiwgMC40OTU4MTkpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDQlIC0gMjFweCkpIHRyYW5zbGF0ZVkoLTEyMCUpIHNjYWxlKDAuOCk7IH1cbiAgNjYlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0MzUsIDAuMzgxMzUyLCAwLjU1LCAwLjk1NjM1Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTQlIC0gMjFweCkpIHRyYW5zbGF0ZVkoLTEyMCUpIHNjYWxlKDAuOCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDIxcHgpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIC8qIGNsZWFuLWNzcyBpZ25vcmU6ZW5kICovIH1cblxuQGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tcnRsIHtcbiAgLyogY2xlYW4tY3NzIGlnbm9yZTpzdGFydCAqL1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDApKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAzMyUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMyLCAwLjQ5NTgxOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoNCUgLSAwKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgNjYlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0MzUsIDAuMzgxMzUyLCAwLjU1LCAwLjk1NjM1Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTQlIC0gMCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgLyogY2xlYW4tY3NzIGlnbm9yZTplbmQgKi8gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbi1kZW5zZS1ydGwge1xuICAvKiBjbGVhbi1jc3MgaWdub3JlOnN0YXJ0ICovXG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gLTIxcHgpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIDMzJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MzIsIDAuNDk1ODE5KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyg0JSAtIC0yMXB4KSkgdHJhbnNsYXRlWSgtMTIwJSkgc2NhbGUoMC44KTsgfVxuICA2NiUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjMwMjQzNSwgMC4zODEzNTIsIDAuNTUsIDAuOTU2MzUyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNCUgLSAtMjFweCkpIHRyYW5zbGF0ZVkoLTEyMCUpIHNjYWxlKDAuOCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIC0yMXB4KSkgdHJhbnNsYXRlWSgtMTIwJSkgc2NhbGUoMC44KTsgfVxuICAvKiBjbGVhbi1jc3MgaWdub3JlOmVuZCAqLyB9XG5cbkBrZXlmcmFtZXMgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHRhcmVhIHtcbiAgLyogY2xlYW4tY3NzIGlnbm9yZTpzdGFydCAqL1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDAlKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgMzMlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjcwMTczMiwgMC40OTU4MTkpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDQlIC0gMCUpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICA2NiUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjMwMjQzNSwgMC4zODEzNTIsIDAuNTUsIDAuOTU2MzUyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNCUgLSAwJSkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwJSkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIC8qIGNsZWFuLWNzcyBpZ25vcmU6ZW5kICovIH1cblxuOnJvb3Qge1xuICAtLW1kYy10aGVtZS1wcmltYXJ5OiAjNjIwMGVlO1xuICAtLW1kYy10aGVtZS1zZWNvbmRhcnk6ICMwMTg3ODY7XG4gIC0tbWRjLXRoZW1lLWJhY2tncm91bmQ6ICNmZmY7XG4gIC0tbWRjLXRoZW1lLXN1cmZhY2U6ICNmZmY7XG4gIC0tbWRjLXRoZW1lLWVycm9yOiAjYjAwMDIwO1xuICAtLW1kYy10aGVtZS1vbi1wcmltYXJ5OiAjZmZmO1xuICAtLW1kYy10aGVtZS1vbi1zZWNvbmRhcnk6ICNmZmY7XG4gIC0tbWRjLXRoZW1lLW9uLXN1cmZhY2U6ICMwMDA7XG4gIC0tbWRjLXRoZW1lLW9uLWVycm9yOiAjZmZmO1xuICAtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgLS1tZGMtdGhlbWUtdGV4dC1zZWNvbmRhcnktb24tYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgLS1tZGMtdGhlbWUtdGV4dC1oaW50LW9uLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gIC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbiAgLS1tZGMtdGhlbWUtdGV4dC1pY29uLW9uLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gIC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1saWdodDogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgLS1tZGMtdGhlbWUtdGV4dC1zZWNvbmRhcnktb24tbGlnaHQ6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1saWdodDogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbiAgLS1tZGMtdGhlbWUtdGV4dC1kaXNhYmxlZC1vbi1saWdodDogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbiAgLS1tZGMtdGhlbWUtdGV4dC1pY29uLW9uLWxpZ2h0OiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuICAtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyazogd2hpdGU7XG4gIC0tbWRjLXRoZW1lLXRleHQtc2Vjb25kYXJ5LW9uLWRhcms6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgLS1tZGMtdGhlbWUtdGV4dC1oaW50LW9uLWRhcms6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgLS1tZGMtdGhlbWUtdGV4dC1kaXNhYmxlZC1vbi1kYXJrOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIC0tbWRjLXRoZW1lLXRleHQtaWNvbi1vbi1kYXJrOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cblxuLm1kYy10aGVtZS0tcHJpbWFyeSB7XG4gIGNvbG9yOiAjNjIwMGVlICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNjIwMGVlKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjMDE4Nzg2ICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWJhY2tncm91bmQsICNmZmYpOyB9XG5cbi5tZGMtdGhlbWUtLXN1cmZhY2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zdXJmYWNlLCAjZmZmKTsgfVxuXG4ubWRjLXRoZW1lLS1lcnJvciB7XG4gIGNvbG9yOiAjYjAwMDIwICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS1vbi1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXByaW1hcnksICNmZmYpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tb24tc2Vjb25kYXJ5IHtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXNlY29uZGFyeSwgI2ZmZikgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS1vbi1zdXJmYWNlIHtcbiAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tb24tZXJyb3Ige1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tZXJyb3IsICNmZmYpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1zZWNvbmRhcnktb24tYmFja2dyb3VuZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuNTQpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtaGludC1vbi1iYWNrZ3JvdW5kIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCkgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtZGlzYWJsZWQtb24tYmFja2dyb3VuZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LWRpc2FibGVkLW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1pY29uLW9uLWJhY2tncm91bmQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1pY29uLW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1wcmltYXJ5LW9uLWxpZ2h0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NykgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1saWdodCwgcmdiYSgwLCAwLCAwLCAwLjg3KSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS10ZXh0LXNlY29uZGFyeS1vbi1saWdodCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1saWdodCwgcmdiYSgwLCAwLCAwLCAwLjU0KSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS10ZXh0LWhpbnQtb24tbGlnaHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1oaW50LW9uLWxpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMzgpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtZGlzYWJsZWQtb24tbGlnaHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1kaXNhYmxlZC1vbi1saWdodCwgcmdiYSgwLCAwLCAwLCAwLjM4KSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS10ZXh0LWljb24tb24tbGlnaHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1pY29uLW9uLWxpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMzgpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtcHJpbWFyeS1vbi1kYXJrIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1zZWNvbmRhcnktb24tZGFyayB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtc2Vjb25kYXJ5LW9uLWRhcmssIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS10ZXh0LWhpbnQtb24tZGFyayB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1kYXJrLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1kaXNhYmxlZC1vbi1kYXJrIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1kaXNhYmxlZC1vbi1kYXJrLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1pY29uLW9uLWRhcmsge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LWljb24tb24tZGFyaywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXByaW1hcnktYmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tc2Vjb25kYXJ5LWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAxODc4NiAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICMwMTg3ODYpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10b3AtYXBwLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MjAwZWU7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM2MjAwZWUpO1xuICBjb2xvcjogd2hpdGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogNDsgfVxuICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLFxuICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbiB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tcHJpbWFyeSwgI2ZmZik7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtOjpiZWZvcmUsIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06OmFmdGVyLFxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOjpiZWZvcmUsXG4gICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb246OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTo6YmVmb3JlLCAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtOjphZnRlcixcbiAgICAgICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb246OmJlZm9yZSxcbiAgICAgICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb246OmFmdGVyIHtcbiAgICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXByaW1hcnksICNmZmYpOyB9IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtOmhvdmVyOjpiZWZvcmUsXG4gICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb246aG92ZXI6OmJlZm9yZSB7XG4gICAgICBvcGFjaXR5OiAwLjA4OyB9XG4gICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUsXG4gICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLFxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgICBvcGFjaXR5OiAwLjI0OyB9XG4gICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlcixcbiAgICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyLFxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgICAgb3BhY2l0eTogMC4yNDsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZCxcbiAgICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjI0OyB9XG4gIC5tZGMtdG9wLWFwcC1iYXJfX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDY0cHg7IH1cbiAgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgei1pbmRleDogMTsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24tLWFsaWduLXN0YXJ0IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIG9yZGVyOiAtMTsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24tLWFsaWduLWVuZCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgb3JkZXI6IDE7IH1cbiAgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMTI1ZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlLCAubWRjLXRvcC1hcHAtYmFyX190aXRsZVtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcGFkZGluZy1yaWdodDogMjBweDsgfVxuICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbSwgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctc2l6ZTogMDtcbiAgICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAgIC0tbWRjLXJpcHBsZS1mZy1zY2FsZTogMTtcbiAgICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtOjpiZWZvcmUsIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtOjphZnRlciwgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOjpiZWZvcmUsIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbjo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgY29udGVudDogXCJcIjsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtOjpiZWZvcmUsIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbjo6YmVmb3JlIHtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTVtcyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMTVtcyBsaW5lYXI7XG4gICAgICB6LWluZGV4OiAxOyB9XG4gICAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlLCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gICAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIsIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgICB0b3A6IDA7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyLCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyLCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gICAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciwgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTo6YmVmb3JlLCAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTo6YWZ0ZXIsIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbjo6YmVmb3JlLCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb246OmFmdGVyIHtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSA1MCUpO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSA1MCUpO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUsIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyLCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlLCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgY2FsYyg1MCUgLSA1MCUpKTtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgY2FsYyg1MCUgLSA1MCUpKTtcbiAgICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gICAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIsIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQge1xuICAvKiBAbm9mbGlwICovXG4gIGJvcmRlci1yYWRpdXM6IDAgMCAyNHB4IDA7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQsIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAyNHB4OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0IHtcbiAgdG9wOiAwO1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBhdXRvO1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAyNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10b3AtYXBwLWJhci0tc2hvcnQsIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0W2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0IC5tZGMtdG9wLWFwcC1iYXJfX3JvdyB7XG4gICAgaGVpZ2h0OiA1NnB4OyB9XG4gIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0IC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDRweDsgfVxuICAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydCAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIHdpZHRoOiA1NnB4O1xuICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZCAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ge1xuICAgIHRyYW5zaXRpb246IHBhZGRpbmcgMTUwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1oYXMtYWN0aW9uLWl0ZW0ge1xuICB3aWR0aDogMTEycHg7IH1cbiAgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtaGFzLWFjdGlvbi1pdGVtIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24tLWFsaWduLWVuZCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogMTJweDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtaGFzLWFjdGlvbi1pdGVtIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24tLWFsaWduLWVuZCwgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtaGFzLWFjdGlvbi1pdGVtIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24tLWFsaWduLWVuZFtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZSAubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICBoZWlnaHQ6IDQ4cHg7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbiB7XG4gIHBhZGRpbmc6IDAgNHB4OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLWRlbnNlIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdG9wLWFwcC1iYXItLWRlbnNlIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlLCAubWRjLXRvcC1hcHAtYmFyLS1kZW5zZSAubWRjLXRvcC1hcHAtYmFyX190aXRsZVtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IC5tZGMtdG9wLWFwcC1iYXJfX3JvdyB7XG4gIGhlaWdodDogMTI4cHg7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIHBhZGRpbmctYm90dG9tOiAycHg7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLFxuLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbiB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tZml4ZWQge1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGxpbmVhcjsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1maXhlZC1zY3JvbGxlZCB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGxpbmVhcjsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZS5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICBoZWlnaHQ6IDk2cHg7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbiB7XG4gIHBhZGRpbmc6IDAgMTJweDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZS5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiA5cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRvcC1hcHAtYmFyLS1kZW5zZS5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX190aXRsZSwgLm1kYy10b3AtYXBwLWJhci0tZGVuc2UubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGVbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLWZpeGVkLWFkanVzdCB7XG4gIHBhZGRpbmctdG9wOiA2NHB4OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLWRlbnNlLWZpeGVkLWFkanVzdCB7XG4gIHBhZGRpbmctdG9wOiA0OHB4OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWZpeGVkLWFkanVzdCB7XG4gIHBhZGRpbmctdG9wOiA1NnB4OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudC1maXhlZC1hZGp1c3Qge1xuICBwYWRkaW5nLXRvcDogMTI4cHg7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UtcHJvbWluZW50LWZpeGVkLWFkanVzdCB7XG4gIHBhZGRpbmctdG9wOiA5NnB4OyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICAubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICAgIGhlaWdodDogNTZweDsgfVxuICAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiA0cHg7IH1cbiAgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQge1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cbiAgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkIHtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAyNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gICAgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24tLWFsaWduLWVuZCB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4OyB9XG4gICAgICBbZGlyPVwicnRsXCJdIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZCAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1lbmQsIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZCAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1lbmRbZGlyPVwicnRsXCJdIHtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAgIHBhZGRpbmctYm90dG9tOiA2cHg7IH1cbiAgLm1kYy10b3AtYXBwLWJhci0tZml4ZWQtYWRqdXN0IHtcbiAgICBwYWRkaW5nLXRvcDogNTZweDsgfSB9XG5cbi5tZGMtdHlwb2dyYXBoeSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyB9XG5cbi5tZGMtdHlwb2dyYXBoeS0taGVhZGxpbmUxIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDZyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMTU2MjVlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDsgfVxuXG4ubWRjLXR5cG9ncmFwaHktLWhlYWRsaW5lMiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDMuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAzLjc1cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDA4MzMzMzNlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDsgfVxuXG4ubWRjLXR5cG9ncmFwaHktLWhlYWRsaW5lMyB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDNyZW07XG4gIGxpbmUtaGVpZ2h0OiAzLjEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDsgfVxuXG4ubWRjLXR5cG9ncmFwaHktLWhlYWRsaW5lNCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDIuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMi41cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMDczNTI5NGVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0OyB9XG5cbi5tZGMtdHlwb2dyYXBoeS0taGVhZGxpbmU1IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDsgfVxuXG4ubWRjLXR5cG9ncmFwaHktLWhlYWRsaW5lNiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMTI1ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1zdWJ0aXRsZTEge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA5Mzc1ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1zdWJ0aXRsZTIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzc1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMDcxNDI4NmVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0OyB9XG5cbi5tZGMtdHlwb2dyYXBoeS0tYm9keTEge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMzEyNWVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0OyB9XG5cbi5tZGMtdHlwb2dyYXBoeS0tYm9keTIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxNzg1NzE0ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1jYXB0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzMzMzMzMzZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1idXR0b24ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4OTI4NTcxZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ubWRjLXR5cG9ncmFwaHktLW92ZXJsaW5lIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE2NjY2NjY3ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ubmd4LW1kYy1mb3JtLWZpZWxkLS1mbHVpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IGF1dG87XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLm5neC1tZGMtYnV0dG9uLS1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBlZTsgfVxuXG4ubmd4LW1kYy1idXR0b24tLXByaW1hcnk6bm90KDpkaXNhYmxlZCkge1xuICBjb2xvcjogd2hpdGU7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9XG5cbi5uZ3gtbWRjLWJ1dHRvbi0tcHJpbWFyeTo6YmVmb3JlLCAubmd4LW1kYy1idXR0b24tLXByaW1hcnk6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cbiAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgIC5uZ3gtbWRjLWJ1dHRvbi0tcHJpbWFyeTo6YmVmb3JlLCAubmd4LW1kYy1idXR0b24tLXByaW1hcnk6OmFmdGVyIHtcbiAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9IH1cblxuLm5neC1tZGMtYnV0dG9uLS1wcmltYXJ5OmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwLjA4OyB9XG5cbi5uZ3gtbWRjLWJ1dHRvbi0tcHJpbWFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5uZ3gtbWRjLWJ1dHRvbi0tcHJpbWFyeS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMjQ7IH1cblxuLm5neC1tZGMtYnV0dG9uLS1wcmltYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cblxuLm5neC1tZGMtYnV0dG9uLS1wcmltYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMjQ7IH1cblxuLm5neC1tZGMtYnV0dG9uLS1wcmltYXJ5Lm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4yNDsgfVxuXG4ubmd4LW1kYy1idXR0b24tLXNlY29uZGFyeTpub3QoOmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMTg3ODY7IH1cblxuLm5neC1tZGMtYnV0dG9uLS1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCkge1xuICBjb2xvcjogd2hpdGU7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9XG5cbi5uZ3gtbWRjLWJ1dHRvbi0tc2Vjb25kYXJ5OjpiZWZvcmUsIC5uZ3gtbWRjLWJ1dHRvbi0tc2Vjb25kYXJ5OjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG4gIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAubmd4LW1kYy1idXR0b24tLXNlY29uZGFyeTo6YmVmb3JlLCAubmd4LW1kYy1idXR0b24tLXNlY29uZGFyeTo6YWZ0ZXIge1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1kYXJrLCB3aGl0ZSk7IH0gfVxuXG4ubmd4LW1kYy1idXR0b24tLXNlY29uZGFyeTpob3Zlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4wODsgfVxuXG4ubmd4LW1kYy1idXR0b24tLXNlY29uZGFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5uZ3gtbWRjLWJ1dHRvbi0tc2Vjb25kYXJ5Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC4yNDsgfVxuXG4ubmd4LW1kYy1idXR0b24tLXNlY29uZGFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG5cbi5uZ3gtbWRjLWJ1dHRvbi0tc2Vjb25kYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMjQ7IH1cblxuLm5neC1tZGMtYnV0dG9uLS1zZWNvbmRhcnkubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjI0OyB9XG5cbi5uZ3gtbWRjLWNoaXAtLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlO1xuICBjb2xvcjogd2hpdGU7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnk6OmJlZm9yZSwgLm5neC1tZGMtY2hpcC0tcHJpbWFyeTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeTo6YmVmb3JlLCAubmd4LW1kYy1jaGlwLS1wcmltYXJ5OjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1kYXJrLCB3aGl0ZSk7IH0gfVxuICAubmd4LW1kYy1jaGlwLS1wcmltYXJ5OmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDg7IH1cbiAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnkubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4yNDsgfVxuICAubmd4LW1kYy1jaGlwLS1wcmltYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubmd4LW1kYy1jaGlwLS1wcmltYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjI0OyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnkubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjQ7IH1cbiAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeTpob3ZlciB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1kYXJrLCB3aGl0ZSk7IH1cbiAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4xNjsgfVxuICAubmd4LW1kYy1jaGlwLS1wcmltYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZDo6YmVmb3JlLCAubmd4LW1kYy1jaGlwLS1wcmltYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZDo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmJlZm9yZSwgLm5neC1tZGMtY2hpcC0tcHJpbWFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmFmdGVyIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWRhcmssIHdoaXRlKTsgfSB9XG4gIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnkubWRjLWNoaXAtLXNlbGVjdGVkOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMjQ7IH1cbiAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubmd4LW1kYy1jaGlwLS1wcmltYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjQ7IH1cbiAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnkubWRjLWNoaXAtLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjQ7IH1cbiAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuNDsgfVxuICAubmd4LW1kYy1jaGlwLS1wcmltYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZCB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1kYXJrLCB3aGl0ZSk7IH1cbiAgICAubmd4LW1kYy1jaGlwLS1wcmltYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZCAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcge1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCk7IH1cbiAgICAubmd4LW1kYy1jaGlwLS1wcmltYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZDpob3ZlciB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1kYXJrLCB3aGl0ZSk7IH1cbiAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeSAubWRjLWNoaXBfX2NoZWNrbWFyay1wYXRoIHtcbiAgICBzdHJva2U6IHdoaXRlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBzdHJva2U6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXByaW1hcnkgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KTsgfVxuICAubmd4LW1kYy1jaGlwLS1wcmltYXJ5IC5tZGMtY2hpcF9faWNvbi0tdHJhaWxpbmcge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpOyB9XG4gICAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeSAubWRjLWNoaXBfX2ljb24tLXRyYWlsaW5nOmhvdmVyIHtcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjIpOyB9XG4gICAgLm5neC1tZGMtY2hpcC0tcHJpbWFyeSAubWRjLWNoaXBfX2ljb24tLXRyYWlsaW5nOmZvY3VzIHtcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpOyB9XG5cbi5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMTg3ODY7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1kYXJrLCB3aGl0ZSk7IH1cbiAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5OjpiZWZvcmUsIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5OjpiZWZvcmUsIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeTo6YWZ0ZXIge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9IH1cbiAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5OmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDg7IH1cbiAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMjQ7IH1cbiAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMjQ7IH1cbiAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5Lm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjI0OyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeTpob3ZlciB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1kYXJrLCB3aGl0ZSk7IH1cbiAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZDo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjE2OyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmJlZm9yZSwgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZDo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZDo6YmVmb3JlLCAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkubWRjLWNoaXAtLXNlbGVjdGVkOjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1kYXJrLCB3aGl0ZSk7IH0gfVxuICAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkubWRjLWNoaXAtLXNlbGVjdGVkOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMjQ7IH1cbiAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC40OyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuNDsgfVxuICAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkubWRjLWNoaXAtLXNlbGVjdGVkLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjQ7IH1cbiAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5Lm1kYy1jaGlwLS1zZWxlY3RlZCB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1kYXJrLCB3aGl0ZSk7IH1cbiAgICAubmd4LW1kYy1jaGlwLS1zZWNvbmRhcnkubWRjLWNoaXAtLXNlbGVjdGVkIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZyB7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KTsgfVxuICAgIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeS5tZGMtY2hpcC0tc2VsZWN0ZWQ6aG92ZXIge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeSAubWRjLWNoaXBfX2NoZWNrbWFyay1wYXRoIHtcbiAgICBzdHJva2U6IHdoaXRlO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBzdHJva2U6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeSAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpOyB9XG4gIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeSAubWRjLWNoaXBfX2ljb24tLXRyYWlsaW5nIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KTsgfVxuICAgIC5uZ3gtbWRjLWNoaXAtLXNlY29uZGFyeSAubWRjLWNoaXBfX2ljb24tLXRyYWlsaW5nOmhvdmVyIHtcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjIpOyB9XG4gICAgLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5IC5tZGMtY2hpcF9faWNvbi0tdHJhaWxpbmc6Zm9jdXMge1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7IH1cblxuLm5neC1tZGMtZmFiLWV4dGVuZGVkLS1mbHVpZCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5uZ3gtbWRjLWZhYi0tYm90dG9tLXJpZ2h0IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMXJlbTtcbiAgYm90dG9tOiAxcmVtOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm5neC1tZGMtZmFiLS1ib3R0b20tcmlnaHQge1xuICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgYm90dG9tOiAxLjVyZW07IH0gfVxuXG4ubmd4LW1kYy1mYWItLWJvdHRvbS1sZWZ0IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDFyZW07XG4gIGxlZnQ6IDFyZW07IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubmd4LW1kYy1mYWItLWJvdHRvbS1sZWZ0IHtcbiAgICBib3R0b206IDEuNXJlbTtcbiAgICBsZWZ0OiAxLjVyZW07IH0gfVxuXG4ubmd4LW1kYy1pY29uLS1jbGlja2FibGUsXG5hLm5neC1tZGMtaWNvbiB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4ubmd4LW1kYy1pY29uLS1pbmxpbmUge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHdpZHRoOiBpbmhlcml0OyB9XG5cbi5tZGMtaW1hZ2UtbGlzdF9faXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5tZGMtbGluZWFyLXByb2dyZXNzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLm1kYy1saW5lYXItcHJvZ3Jlc3MtLXNlY29uZGFyeSAubWRjLWxpbmVhci1wcm9ncmVzc19fYmFyLWlubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAxODc4NjsgfVxuXG4ubWRjLWxpc3QsXG4ubWRjLWxpc3QtZGl2aWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5uZ3gtbWRjLWxpc3QtLWJvcmRlciB7XG4gIC8qIEVuc3VyZSBhZGphY2VudCBib3JkZXJzIGRvbid0IGNvbGxpZGUgd2l0aCBvbmUgYW5vdGhlci4gKi8gfVxuICAubmd4LW1kYy1saXN0LS1ib3JkZXIgLm1kYy1saXN0LWl0ZW0ge1xuICAgIC8qIEFkZCB0aGUgbGlzdCBzaWRlIHBhZGRpbmcgcGFkZGluZyB0byB0aGUgbGlzdCBpdGVtLiAqL1xuICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICAvKiBBZGQgYSBib3JkZXIgYXJvdW5kIGVhY2ggZWxlbWVudC4gKi9cbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG4gIC5uZ3gtbWRjLWxpc3QtLWJvcmRlciAubWRjLWxpc3QtaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTsgfVxuXG4ubWRjLW1lbnUtc3VyZmFjZS0tYW5jaG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4ubWRjLXNsaWRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLm5neC1tZGMtc25hY2tiYXItLXRyYWlsaW5nIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9IH1cblxuLm5neC1tZGMtdGFiLS1kaXNhYmxlZCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLm5neC1tZGMtdGFiLS1kaXNhYmxlZCAubWRjLXRhYl9fdGV4dC1sYWJlbCB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTsgfVxuICAubmd4LW1kYy10YWItLWRpc2FibGVkIC5tZGMtdGFiX19pY29uIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsgfVxuICAubmd4LW1kYy10YWItLWRpc2FibGVkIC5tZGMtdGFiLWluZGljYXRvciA+IC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5lIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cblxuLm1kYy10YWItYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLm1kYy10YWItc2Nyb2xsZXIge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ubWFzb25yeS1pbWFnZS1saXN0IHtcbiAgY29sdW1uLWNvdW50OiAzO1xuICBjb2x1bW4tZ2FwOiAxNnB4OyB9XG4gIC5tYXNvbnJ5LWltYWdlLWxpc3QgLm1kYy1pbWFnZS1saXN0X19pdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICAubWFzb25yeS1pbWFnZS1saXN0IHtcbiAgICBjb2x1bW4tY291bnQ6IDI7XG4gICAgY29sdW1uLWdhcDogMTZweDsgfVxuICAgIC5tYXNvbnJ5LWltYWdlLWxpc3QgLm1kYy1pbWFnZS1saXN0X19pdGVtIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7IH0gfVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLWVsZXZhdGlvbi1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGZvciAkei12YWx1ZSBmcm9tIDAgdGhyb3VnaCAyNCB7XG4gICAgLm1kYy1lbGV2YXRpb24tLXojeyR6LXZhbHVlfSB7XG4gICAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKCR6LXZhbHVlLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246IG1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbi12YWx1ZSgpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB3aWxsLWNoYW5nZTogJG1kYy1lbGV2YXRpb24tcHJvcGVydHk7XG4gICAgfVxuICB9XG59XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgQ1NTIHJ1bGVzIHRvIGFuIGVsZW1lbnQgdG8gZ2l2ZSBpdCB0aGUgZWxldmF0aW9uIHNwZWNpZmllZCBieSAkei12YWx1ZS5cbi8vIFRoZSAkei12YWx1ZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjQuXG4vLyBJZiAkY29sb3IgaGFzIGFuIGFscGhhIGNoYW5uZWwsIGl0IHdpbGwgYmUgaWdub3JlZCBhbmQgb3ZlcnJpZGRlbi4gVG8gaW5jcmVhc2UgdGhlIG9wYWNpdHkgb2YgdGhlIHNoYWRvdywgdXNlXG4vLyAkb3BhY2l0eS1ib29zdC5cbkBtaXhpbiBtZGMtZWxldmF0aW9uKCR6LXZhbHVlLCAkY29sb3I6ICRtZGMtZWxldmF0aW9uLWJhc2VsaW5lLWNvbG9yLCAkb3BhY2l0eS1ib29zdDogMCwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaWYgdHlwZS1vZigkei12YWx1ZSkgIT0gbnVtYmVyIG9yIG5vdCB1bml0bGVzcygkei12YWx1ZSkge1xuICAgIEBlcnJvciBcIiR6LXZhbHVlIG11c3QgYmUgYSB1bml0bGVzcyBudW1iZXIsIGJ1dCByZWNlaXZlZCAnI3skei12YWx1ZX0nXCI7XG4gIH1cblxuICBAaWYgJHotdmFsdWUgPCAwIG9yICR6LXZhbHVlID4gMjQge1xuICAgIEBlcnJvciBcIiR6LXZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNCwgYnV0IHJlY2VpdmVkICcjeyR6LXZhbHVlfSdcIjtcbiAgfVxuXG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gICRjb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKTtcblxuICAkdW1icmEtei12YWx1ZTogbWFwLWdldCgkbWRjLWVsZXZhdGlvbi11bWJyYS1tYXAsICR6LXZhbHVlKTtcbiAgJHBlbnVtYnJhLXotdmFsdWU6IG1hcC1nZXQoJG1kYy1lbGV2YXRpb24tcGVudW1icmEtbWFwLCAkei12YWx1ZSk7XG4gICRhbWJpZW50LXotdmFsdWU6IG1hcC1nZXQoJG1kYy1lbGV2YXRpb24tYW1iaWVudC1tYXAsICR6LXZhbHVlKTtcblxuICAkdW1icmEtY29sb3I6IHJnYmEoJGNvbG9yLCAkbWRjLWVsZXZhdGlvbi11bWJyYS1vcGFjaXR5ICsgJG9wYWNpdHktYm9vc3QpO1xuICAkcGVudW1icmEtY29sb3I6IHJnYmEoJGNvbG9yLCAkbWRjLWVsZXZhdGlvbi1wZW51bWJyYS1vcGFjaXR5ICsgJG9wYWNpdHktYm9vc3QpO1xuICAkYW1iaWVudC1jb2xvcjogcmdiYSgkY29sb3IsICRtZGMtZWxldmF0aW9uLWFtYmllbnQtb3BhY2l0eSArICRvcGFjaXR5LWJvb3N0KTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICN7XCIjeyR1bWJyYS16LXZhbHVlfSAjeyR1bWJyYS1jb2xvcn1cIn0sXG4gICAgICAje1wiI3skcGVudW1icmEtei12YWx1ZX0gI3skcGVudW1icmEtY29sb3J9XCJ9LFxuICAgICAgI3skYW1iaWVudC16LXZhbHVlfSAkYW1iaWVudC1jb2xvcjtcbiAgfVxufVxuXG4vLyBSZXR1cm5zIGEgc3RyaW5nIHRoYXQgY2FuIGJlIHVzZWQgYXMgdGhlIHZhbHVlIGZvciBhIGB0cmFuc2l0aW9uYCBwcm9wZXJ0eSBmb3IgZWxldmF0aW9uLlxuLy8gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5IGlzIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIGEgY29tcG9uZW50IG5lZWRzIHRvIHRyYW5zaXRpb25cbi8vIG1vcmUgdGhhbiBvbmUgcHJvcGVydHkuXG4vL1xuLy8gYGBgc2Nzc1xuLy8gLmZvbyB7XG4vLyAgIHRyYW5zaXRpb246IG1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbi12YWx1ZSgpLCBvcGFjaXR5IDEwMG1zIGVhc2U7XG4vLyAgIHdpbGwtY2hhbmdlOiAkbWRjLWVsZXZhdGlvbi1wcm9wZXJ0eSwgb3BhY2l0eTtcbi8vIH1cbi8vIGBgYFxuQGZ1bmN0aW9uIG1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbi12YWx1ZShcbiAgJGR1cmF0aW9uOiAkbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uLFxuICAkZWFzaW5nOiAkbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvblxuKSB7XG4gIEByZXR1cm4gI3skbWRjLWVsZXZhdGlvbi1wcm9wZXJ0eX0gI3skZHVyYXRpb259ICN7JGVhc2luZ307XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcblxuJG1kYy1lbGV2YXRpb24tYmFzZWxpbmUtY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuJG1kYy1lbGV2YXRpb24tdW1icmEtb3BhY2l0eTogLjIgIWRlZmF1bHQ7XG4kbWRjLWVsZXZhdGlvbi1wZW51bWJyYS1vcGFjaXR5OiAuMTQgIWRlZmF1bHQ7XG4kbWRjLWVsZXZhdGlvbi1hbWJpZW50LW9wYWNpdHk6IC4xMiAhZGVmYXVsdDtcblxuJG1kYy1lbGV2YXRpb24tdW1icmEtbWFwOiAoXG4gIDA6IFwiMHB4IDBweCAwcHggMHB4XCIsXG4gIDE6IFwiMHB4IDJweCAxcHggLTFweFwiLFxuICAyOiBcIjBweCAzcHggMXB4IC0ycHhcIixcbiAgMzogXCIwcHggM3B4IDNweCAtMnB4XCIsXG4gIDQ6IFwiMHB4IDJweCA0cHggLTFweFwiLFxuICA1OiBcIjBweCAzcHggNXB4IC0xcHhcIixcbiAgNjogXCIwcHggM3B4IDVweCAtMXB4XCIsXG4gIDc6IFwiMHB4IDRweCA1cHggLTJweFwiLFxuICA4OiBcIjBweCA1cHggNXB4IC0zcHhcIixcbiAgOTogXCIwcHggNXB4IDZweCAtM3B4XCIsXG4gIDEwOiBcIjBweCA2cHggNnB4IC0zcHhcIixcbiAgMTE6IFwiMHB4IDZweCA3cHggLTRweFwiLFxuICAxMjogXCIwcHggN3B4IDhweCAtNHB4XCIsXG4gIDEzOiBcIjBweCA3cHggOHB4IC00cHhcIixcbiAgMTQ6IFwiMHB4IDdweCA5cHggLTRweFwiLFxuICAxNTogXCIwcHggOHB4IDlweCAtNXB4XCIsXG4gIDE2OiBcIjBweCA4cHggMTBweCAtNXB4XCIsXG4gIDE3OiBcIjBweCA4cHggMTFweCAtNXB4XCIsXG4gIDE4OiBcIjBweCA5cHggMTFweCAtNXB4XCIsXG4gIDE5OiBcIjBweCA5cHggMTJweCAtNnB4XCIsXG4gIDIwOiBcIjBweCAxMHB4IDEzcHggLTZweFwiLFxuICAyMTogXCIwcHggMTBweCAxM3B4IC02cHhcIixcbiAgMjI6IFwiMHB4IDEwcHggMTRweCAtNnB4XCIsXG4gIDIzOiBcIjBweCAxMXB4IDE0cHggLTdweFwiLFxuICAyNDogXCIwcHggMTFweCAxNXB4IC03cHhcIlxuKSAhZGVmYXVsdDtcblxuJG1kYy1lbGV2YXRpb24tcGVudW1icmEtbWFwOiAoXG4gIDA6IFwiMHB4IDBweCAwcHggMHB4XCIsXG4gIDE6IFwiMHB4IDFweCAxcHggMHB4XCIsXG4gIDI6IFwiMHB4IDJweCAycHggMHB4XCIsXG4gIDM6IFwiMHB4IDNweCA0cHggMHB4XCIsXG4gIDQ6IFwiMHB4IDRweCA1cHggMHB4XCIsXG4gIDU6IFwiMHB4IDVweCA4cHggMHB4XCIsXG4gIDY6IFwiMHB4IDZweCAxMHB4IDBweFwiLFxuICA3OiBcIjBweCA3cHggMTBweCAxcHhcIixcbiAgODogXCIwcHggOHB4IDEwcHggMXB4XCIsXG4gIDk6IFwiMHB4IDlweCAxMnB4IDFweFwiLFxuICAxMDogXCIwcHggMTBweCAxNHB4IDFweFwiLFxuICAxMTogXCIwcHggMTFweCAxNXB4IDFweFwiLFxuICAxMjogXCIwcHggMTJweCAxN3B4IDJweFwiLFxuICAxMzogXCIwcHggMTNweCAxOXB4IDJweFwiLFxuICAxNDogXCIwcHggMTRweCAyMXB4IDJweFwiLFxuICAxNTogXCIwcHggMTVweCAyMnB4IDJweFwiLFxuICAxNjogXCIwcHggMTZweCAyNHB4IDJweFwiLFxuICAxNzogXCIwcHggMTdweCAyNnB4IDJweFwiLFxuICAxODogXCIwcHggMThweCAyOHB4IDJweFwiLFxuICAxOTogXCIwcHggMTlweCAyOXB4IDJweFwiLFxuICAyMDogXCIwcHggMjBweCAzMXB4IDNweFwiLFxuICAyMTogXCIwcHggMjFweCAzM3B4IDNweFwiLFxuICAyMjogXCIwcHggMjJweCAzNXB4IDNweFwiLFxuICAyMzogXCIwcHggMjNweCAzNnB4IDNweFwiLFxuICAyNDogXCIwcHggMjRweCAzOHB4IDNweFwiXG4pICFkZWZhdWx0O1xuXG4kbWRjLWVsZXZhdGlvbi1hbWJpZW50LW1hcDogKFxuICAwOiBcIjBweCAwcHggMHB4IDBweFwiLFxuICAxOiBcIjBweCAxcHggM3B4IDBweFwiLFxuICAyOiBcIjBweCAxcHggNXB4IDBweFwiLFxuICAzOiBcIjBweCAxcHggOHB4IDBweFwiLFxuICA0OiBcIjBweCAxcHggMTBweCAwcHhcIixcbiAgNTogXCIwcHggMXB4IDE0cHggMHB4XCIsXG4gIDY6IFwiMHB4IDFweCAxOHB4IDBweFwiLFxuICA3OiBcIjBweCAycHggMTZweCAxcHhcIixcbiAgODogXCIwcHggM3B4IDE0cHggMnB4XCIsXG4gIDk6IFwiMHB4IDNweCAxNnB4IDJweFwiLFxuICAxMDogXCIwcHggNHB4IDE4cHggM3B4XCIsXG4gIDExOiBcIjBweCA0cHggMjBweCAzcHhcIixcbiAgMTI6IFwiMHB4IDVweCAyMnB4IDRweFwiLFxuICAxMzogXCIwcHggNXB4IDI0cHggNHB4XCIsXG4gIDE0OiBcIjBweCA1cHggMjZweCA0cHhcIixcbiAgMTU6IFwiMHB4IDZweCAyOHB4IDVweFwiLFxuICAxNjogXCIwcHggNnB4IDMwcHggNXB4XCIsXG4gIDE3OiBcIjBweCA2cHggMzJweCA1cHhcIixcbiAgMTg6IFwiMHB4IDdweCAzNHB4IDZweFwiLFxuICAxOTogXCIwcHggN3B4IDM2cHggNnB4XCIsXG4gIDIwOiBcIjBweCA4cHggMzhweCA3cHhcIixcbiAgMjE6IFwiMHB4IDhweCA0MHB4IDdweFwiLFxuICAyMjogXCIwcHggOHB4IDQycHggN3B4XCIsXG4gIDIzOiBcIjBweCA5cHggNDRweCA4cHhcIixcbiAgMjQ6IFwiMHB4IDlweCA0NnB4IDhweFwiXG4pICFkZWZhdWx0O1xuXG4vLyBUaGUgY3NzIHByb3BlcnR5IHVzZWQgZm9yIGVsZXZhdGlvbi4gSW4gbW9zdCBjYXNlcyB0aGlzIHNob3VsZCBub3QgYmUgY2hhbmdlZC4gSXQgaXMgZXhwb3NlZFxuLy8gYXMgYSB2YXJpYWJsZSBmb3IgYWJzdHJhY3Rpb24gLyBlYXN5IHVzZSB3aGVuIG5lZWRpbmcgdG8gcmVmZXJlbmNlIHRoZSBwcm9wZXJ0eSBkaXJlY3RseSwgZm9yXG4vLyBleGFtcGxlIGluIGEgYHdpbGwtY2hhbmdlYCBydWxlLlxuJG1kYy1lbGV2YXRpb24tcHJvcGVydHk6IGJveC1zaGFkb3cgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGR1cmF0aW9uIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uOiAyODBtcyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZWFzaW5nIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbi8vIE1EQyBSaXBwbGUga2V5ZnJhbWVzIGFyZSBzcGxpdCBpbnRvIHRoZWlyIG93biBmaWxlIHNvIHRoYXQgX21peGlucy5zY3NzIGNhbiByZWx5IG9uIHRoZW0uXG5cbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1yaXBwbGUta2V5ZnJhbWVzXyB7XG4gIEBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4ge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgLy8gTk9URTogRm9yIHRoZXNlIGtleWZyYW1lcywgd2UgZG8gbm90IG5lZWQgY3VzdG9tIHByb3BlcnR5IGZhbGxiYWNrcyBiZWNhdXNlIHRoZXkgYXJlIG9ubHlcbiAgICAgIC8vIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgLm1kYy1yaXBwbGUtdXBncmFkZWRgLiBTaW5jZSBNRENSaXBwbGVGb3VuZGF0aW9uIGNoZWNrcyB0byBlbnN1cmVcbiAgICAgIC8vIHRoYXQgY3VzdG9tIHByb3BlcnRpZXMgYXJlIHN1cHBvcnRlZCB3aXRoaW4gdGhlIGJyb3dzZXIgYmVmb3JlIGFkZGluZyB0aGlzIGNsYXNzLCB3ZSBjYW5cbiAgICAgIC8vIHNhZmVseSB1c2UgdGhlbSB3aXRob3V0IGEgZmFsbGJhY2suXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydCwgMCkpIHNjYWxlKDEpO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIG9wYWNpdHk6IHZhcigtLW1kYy1yaXBwbGUtZmctb3BhY2l0eSwgMCk7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IHtcbiAgICBmcm9tIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgIG9wYWNpdHk6IHZhcigtLW1kYy1yaXBwbGUtZmctb3BhY2l0eSwgMCk7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4kbWRjLWFuaW1hdGlvbi1kZWNlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgLjIsIDEpICFkZWZhdWx0O1xuJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSAhZGVmYXVsdDtcbiRtZGMtYW5pbWF0aW9uLWFjY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNCwgMCwgMSwgMSkgIWRlZmF1bHQ7XG4kbWRjLWFuaW1hdGlvbi1zaGFycC1jdXJ2ZS10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNCwgMCwgLjYsIDEpICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL2Jhc2UvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtcmlwcGxlLWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgcmlwcGxlLXN1cmZhY2VcblxuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtcmlwcGxlLXN1cmZhY2Uge1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZSgkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcygkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgJltkYXRhLW1kYy1yaXBwbGUtaXMtdW5ib3VuZGVkXSB7XG4gICAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy11bmJvdW5kZWQoJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMocHJpbWFyeSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cblxuICAgICYtLWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKHNlY29uZGFyeSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG59XG5cbkBtaXhpbiBtZGMtcmlwcGxlLWNvbW1vbigkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLy8gRW5zdXJlIHRoYXQgc3R5bGVzIG5lZWRlZCBieSBhbnkgY29tcG9uZW50IHVzaW5nIE1EQyBSaXBwbGUgYXJlIGVtaXR0ZWQsIGJ1dCBvbmx5IG9uY2UuXG4gIC8vIChFdmVyeSBjb21wb25lbnQgdXNpbmcgTURDIFJpcHBsZSBpbXBvcnRzIHRoZXNlIG1peGlucywgYnV0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgaW1wb3J0XG4gIC8vIG1kYy1yaXBwbGUuc2Nzcy4pXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgQGluY2x1ZGUgbWRjLWJhc2UtZW1pdC1vbmNlKFwibWRjLXJpcHBsZS9jb21tb24vYW5pbWF0aW9uXCIpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUta2V5ZnJhbWVzXztcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIEBpbmNsdWRlIG1kYy1iYXNlLWVtaXQtb25jZShcIm1kYy1yaXBwbGUvY29tbW9uL3N0cnVjdHVyZVwiKSB7XG4gICAgICAvLyBTdHlsZXMgdXNlZCB0byBkZXRlY3QgYnVnZ3kgYmVoYXZpb3Igb2YgQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzIGluIEVkZ2UuXG4gICAgICAvLyBTZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vZW4tdXMvbWljcm9zb2Z0LWVkZ2UvcGxhdGZvcm0vaXNzdWVzLzExNDk1NDQ4L1xuICAgICAgLy8gVGhpcyBpcyBpbmNsdWRlZCBpbiBfbWl4aW5zLnNjc3MgcmF0aGVyIHRoYW4gbWRjLXJpcHBsZS5zY3NzIHNvIHRoYXQgaXQgd2lsbCBiZVxuICAgICAgLy8gcHJlc2VudCBmb3Igb3RoZXIgY29tcG9uZW50cyB3aGljaCByZWx5IG9uIHJpcHBsZSBhcyB3ZWxsIGFzIG1kYy1yaXBwbGUgaXRzZWxmLlxuICAgICAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tdGVzdC1lZGdlLXZhci1idWcge1xuICAgICAgICAtLW1kYy1yaXBwbGUtc3VyZmFjZS10ZXN0LWVkZ2UtdmFyOiAxcHggc29saWQgIzAwMDtcblxuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBib3JkZXI6IHZhcigtLW1kYy1yaXBwbGUtc3VyZmFjZS10ZXN0LWVkZ2UtdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXJpcHBsZS1zdXJmYWNlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAgIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAgIC0tbWRjLXJpcHBsZS10b3A6IDA7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAgIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAgIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQ6IDA7XG5cbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgfVxuXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIC8vIEFsc28gdHJhbnNpdGlvbiBiYWNrZ3JvdW5kLWNvbG9yIHRvIGF2b2lkIHVubmF0dXJhbCBjb2xvciBmbGFzaGVzIHdoZW4gdG9nZ2xpbmcgYWN0aXZhdGVkL3NlbGVjdGVkIHN0YXRlXG4gICAgICB0cmFuc2l0aW9uOlxuICAgICAgICBvcGFjaXR5ICRtZGMtc3RhdGVzLXdhc2gtZHVyYXRpb24gbGluZWFyLFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRtZGMtc3RhdGVzLXdhc2gtZHVyYXRpb24gbGluZWFyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB6LWluZGV4OiAxOyAvLyBFbnN1cmUgdGhhdCB0aGUgcmlwcGxlIHdhc2ggZm9yIGhvdmVyL2ZvY3VzIHN0YXRlcyBpcyBkaXNwbGF5ZWQgb24gdG9wIG9mIHBvc2l0aW9uZWQgY2hpbGQgZWxlbWVudHNcbiAgICB9XG4gIH1cblxuICAvLyBDb21tb24gc3R5bGVzIGZvciB1cGdyYWRlZCBzdXJmYWNlcyAoc29tZSBvZiB0aGVzZSBkZXBlbmQgb24gY3VzdG9tIHByb3BlcnRpZXMgc2V0IHZpYSBKUyBvciBvdGhlciBtaXhpbnMpXG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTtcbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgdG9wOiAwO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIDApO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTtcbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICBhbmltYXRpb246XG4gICAgICAgIG1kYy1yaXBwbGUtZmctcmFkaXVzLWluICRtZGMtcmlwcGxlLXRyYW5zbGF0ZS1kdXJhdGlvbiBmb3J3YXJkcyxcbiAgICAgICAgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluICRtZGMtcmlwcGxlLWZhZGUtaW4tZHVyYXRpb24gZm9yd2FyZHM7XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgJG1kYy1yaXBwbGUtZmFkZS1vdXQtZHVyYXRpb247XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIFJldGFpbiB0cmFuc2Zvcm0gZnJvbSBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiBhY3RpdmF0aW9uXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtc3RhdGVzLWJhc2UtY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpZiBhbHBoYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpKSA+IDAge1xuICAgICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IsICRlZGdlT3B0T3V0OiB0cnVlKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBJZiBhIGNvbG9yIHdpdGggMCBhbHBoYSBpcyBzcGVjaWZpZWQsIGRvbid0IHJlbmRlciB0aGUgcmlwcGxlIHBzZXVkby1lbGVtZW50cyBhdCBhbGwuXG4gICAgICAgIC8vIFRoaXMgYXZvaWRzIHVubmVjZXNzYXJ5IHRyYW5zaXRpb25zIGFuZCBvdmVyZmxvdy5cbiAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdGF0ZXMtaG92ZXItb3BhY2l0eSgkb3BhY2l0eSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAvLyBCYWNrZ3JvdW5kIHdhc2ggc3R5bGVzLCBmb3IgYm90aCBDU1Mtb25seSBhbmQgdXBncmFkZWQgc3RhdGVmdWwgc3VyZmFjZXNcbiAgJjpob3Zlcjo6YmVmb3JlIHtcbiAgICAvLyBPcGFjaXR5IGZhbGxzIHVuZGVyIGNvbG9yIGJlY2F1c2UgdGhlIGNob3NlbiBvcGFjaXR5IGlzIGNvbG9yLWRlcGVuZGVudCBpbiB0eXBpY2FsIHVzYWdlXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtc3RhdGVzLWZvY3VzLW9wYWNpdHkoJG9wYWNpdHksICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50OiBmYWxzZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAvLyBPcGFjaXR5IGZhbGxzIHVuZGVyIGNvbG9yIGJlY2F1c2UgdGhlIGNob3NlbiBvcGFjaXR5IGlzIGNvbG9yLWRlcGVuZGVudCBpbiB0eXBpY2FsIHVzYWdlXG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIEZvY3VzIG92ZXJyaWRlcyBob3ZlciBieSByZXVzaW5nIHRoZSA6OmJlZm9yZSBwc2V1ZG8tZWxlbWVudC5cbiAgLy8gOmZvY3VzLXdpdGhpbiBnZW5lcmFsbHkgd29ya3Mgb24gbm9uLU1TIGJyb3dzZXJzIGFuZCBtYXRjaGVzIHdoZW4gYSAqY2hpbGQqIG9mIHRoZSBlbGVtZW50IGhhcyBmb2N1cy5cbiAgLy8gSXQgaXMgdXNlZnVsIGZvciBjYXNlcyB3aGVyZSBhIGNvbXBvbmVudCBoYXMgYSBmb2N1c2FibGUgZWxlbWVudCB3aXRoaW4gdGhlIHJvb3Qgbm9kZSwgZS5nLiB0ZXh0IGZpZWxkLFxuICAvLyBidXQgdW5kZXNpcmFibGUgaW4gZ2VuZXJhbCBpbiBjYXNlIG9mIG5lc3RlZCBzdGF0ZWZ1bCBjb21wb25lbnRzLlxuICAvLyBXZSB1c2UgYSBtb2RpZmllciBjbGFzcyBmb3IgSlMtZW5hYmxlZCBzdXJmYWNlcyB0byBzdXBwb3J0IGFsbCB1c2UgY2FzZXMgaW4gYWxsIGJyb3dzZXJzLlxuICAkY3NzT25seUZvY3VzU2VsZWN0b3I6IGlmKFxuICAgICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LFxuICAgIFwiJjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsICY6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1cy13aXRoaW46OmJlZm9yZVwiLFxuICAgIFwiJjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmVcIlxuICApO1xuXG4gICN7JGNzc09ubHlGb2N1c1NlbGVjdG9yfSxcbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgLy8gTm90ZSB0aGF0IHRoaXMgZHVyYXRpb24gaXMgb25seSBlZmZlY3RpdmUgb24gZm9jdXMsIG5vdCBibHVyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtc3RhdGVzLXByZXNzLW9wYWNpdHkoJG9wYWNpdHksICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLy8gU3R5bGVzIGZvciBub24tdXBncmFkZWQgKENTUy1vbmx5KSBzdGF0ZWZ1bCBzdXJmYWNlc1xuXG4gICY6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKSB7XG4gICAgLy8gQXBwbHkgcHJlc3MgYWRkaXRpdmVseSBieSB1c2luZyB0aGUgOjphZnRlciBwc2V1ZG8tZWxlbWVudFxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJG1kYy1yaXBwbGUtZmFkZS1vdXQtZHVyYXRpb24gbGluZWFyO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkbWRjLXJpcHBsZS1mYWRlLWluLWR1cmF0aW9uO1xuICAgICAgfVxuXG4gICAgICAvLyBPcGFjaXR5IGZhbGxzIHVuZGVyIGNvbG9yIGJlY2F1c2UgdGhlIGNob3NlbiBvcGFjaXR5IGlzIGNvbG9yLWRlcGVuZGVudCBpbiB0eXBpY2FsIHVzYWdlXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6ICN7JG9wYWNpdHl9O1xuICAgIH1cbiAgfVxufVxuXG4vLyBTaW1wbGUgbWl4aW4gZm9yIGJhc2Ugc3RhdGVzIHdoaWNoIGF1dG9tYXRpY2FsbHkgc2VsZWN0cyBvcGFjaXR5IHZhbHVlcyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBpbmsgY29sb3IgaXNcbi8vIGxpZ2h0IG9yIGRhcmsuXG5AbWl4aW4gbWRjLXN0YXRlcyhcbiAgJGNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSxcbiAgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6IGZhbHNlLFxuICAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpXG4pIHtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1pbnRlcmFjdGlvbnNfKCRjb2xvciwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsIDAsICRxdWVyeSk7XG59XG5cbi8vIFNpbXBsZSBtaXhpbiBmb3IgYWN0aXZhdGVkIHN0YXRlcyB3aGljaCBhdXRvbWF0aWNhbGx5IHNlbGVjdHMgb3BhY2l0eSB2YWx1ZXMgYmFzZWQgb24gd2hldGhlciB0aGUgaW5rIGNvbG9yIGlzXG4vLyBsaWdodCBvciBkYXJrLlxuQG1peGluIG1kYy1zdGF0ZXMtYWN0aXZhdGVkKCRjb2xvciwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6IGZhbHNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkYWN0aXZhdGVkLW9wYWNpdHk6IG1kYy1zdGF0ZXMtb3BhY2l0eSgkY29sb3IsIGFjdGl2YXRlZCk7XG5cbiAgJi0tYWN0aXZhdGVkIHtcbiAgICAvLyBTdHlsZWxpbnQgc2VlbXMgdG8gdGhpbmsgdGhhdCAnJicgcXVhbGlmaWVzIGFzIGEgdHlwZSBzZWxlY3RvciBoZXJlP1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAgICY6OmJlZm9yZSB7XG4gICAgICAvLyBPcGFjaXR5IGZhbGxzIHVuZGVyIGNvbG9yIGJlY2F1c2UgdGhlIGNob3NlbiBvcGFjaXR5IGlzIGNvbG9yLWRlcGVuZGVudC5cbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgb3BhY2l0eTogJGFjdGl2YXRlZC1vcGFjaXR5O1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaW50ZXJhY3Rpb25zXygkY29sb3IsICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LCAkYWN0aXZhdGVkLW9wYWNpdHksICRxdWVyeSk7XG4gIH1cbn1cblxuLy8gU2ltcGxlIG1peGluIGZvciBzZWxlY3RlZCBzdGF0ZXMgd2hpY2ggYXV0b21hdGljYWxseSBzZWxlY3RzIG9wYWNpdHkgdmFsdWVzIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGluayBjb2xvciBpc1xuLy8gbGlnaHQgb3IgZGFyay5cbkBtaXhpbiBtZGMtc3RhdGVzLXNlbGVjdGVkKCRjb2xvciwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6IGZhbHNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkc2VsZWN0ZWQtb3BhY2l0eTogbWRjLXN0YXRlcy1vcGFjaXR5KCRjb2xvciwgc2VsZWN0ZWQpO1xuXG4gICYtLXNlbGVjdGVkIHtcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXR5cGVcbiAgICAmOjpiZWZvcmUge1xuICAgICAgLy8gT3BhY2l0eSBmYWxscyB1bmRlciBjb2xvciBiZWNhdXNlIHRoZSBjaG9zZW4gb3BhY2l0eSBpcyBjb2xvci1kZXBlbmRlbnQuXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgIG9wYWNpdHk6ICRzZWxlY3RlZC1vcGFjaXR5O1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaW50ZXJhY3Rpb25zXygkY29sb3IsICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LCAkc2VsZWN0ZWQtb3BhY2l0eSwgJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXJpcHBsZS1yYWRpdXMtYm91bmRlZCgkcmFkaXVzOiAxMDAlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnV0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnV0dXJlKSB7XG4gICAgICB0b3A6IGNhbGMoNTAlIC0gI3skcmFkaXVzfSk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHJhZGl1c30pO1xuICAgICAgd2lkdGg6ICRyYWRpdXMgKiAyO1xuICAgICAgaGVpZ2h0OiAkcmFkaXVzICogMjtcbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnV0dXJlKSB7XG4gICAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1yaXBwbGUtcmFkaXVzLXVuYm91bmRlZCgkcmFkaXVzOiAxMDAlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnV0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnV0dXJlKSB7XG4gICAgICB0b3A6IGNhbGMoNTAlIC0gI3skcmFkaXVzIC8gMn0pO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRyYWRpdXMgLyAyfSk7XG4gICAgICB3aWR0aDogJHJhZGl1cztcbiAgICAgIGhlaWdodDogJHJhZGl1cztcbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSxcbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1dHVyZSkge1xuICAgICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgY2FsYyg1MCUgLSAjeyRyYWRpdXMgLyAyfSkpO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCBjYWxjKDUwJSAtICN7JHJhZGl1cyAvIDJ9KSk7XG4gICAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnV0dXJlKSB7XG4gICAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdGF0ZXMtaW50ZXJhY3Rpb25zXyhcbiAgJGNvbG9yLFxuICAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudCxcbiAgJG9wYWNpdHktbW9kaWZpZXI6IDAsXG4gICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKClcbikge1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWJhc2UtY29sb3IoJGNvbG9yLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWhvdmVyLW9wYWNpdHkobWRjLXN0YXRlcy1vcGFjaXR5KCRjb2xvciwgaG92ZXIpICsgJG9wYWNpdHktbW9kaWZpZXIsICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtZm9jdXMtb3BhY2l0eShcbiAgICBtZGMtc3RhdGVzLW9wYWNpdHkoJGNvbG9yLCBmb2N1cykgKyAkb3BhY2l0eS1tb2RpZmllcixcbiAgICAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudCxcbiAgICAkcXVlcnlcbiAgKTtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1wcmVzcy1vcGFjaXR5KG1kYy1zdGF0ZXMtb3BhY2l0eSgkY29sb3IsIHByZXNzKSArICRvcGFjaXR5LW1vZGlmaWVyLCAkcXVlcnkpO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtcmlwcGxlLWZhZGUtaW4tZHVyYXRpb246IDc1bXMgIWRlZmF1bHQ7XG4kbWRjLXJpcHBsZS1mYWRlLW91dC1kdXJhdGlvbjogMTUwbXMgIWRlZmF1bHQ7XG4kbWRjLXJpcHBsZS10cmFuc2xhdGUtZHVyYXRpb246IDIyNW1zICFkZWZhdWx0O1xuJG1kYy1zdGF0ZXMtd2FzaC1kdXJhdGlvbjogMTVtcyAhZGVmYXVsdDtcblxuLy8gTm90ZXMgb24gc3RhdGVzOlxuLy8gKiBmb2N1cyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgaG92ZXIgKGkuZS4gaWYgYW4gZWxlbWVudCBpcyBib3RoIGZvY3VzZWQgYW5kIGhvdmVyZWQsIG9ubHkgZm9jdXMgdmFsdWUgYXBwbGllcylcbi8vICogcHJlc3Mgc3RhdGUgYXBwbGllcyB0byBhIHNlcGFyYXRlIHBzZXVkby1lbGVtZW50LCBzbyBpdCBoYXMgYW4gYWRkaXRpdmUgZWZmZWN0IG9uIHRvcCBvZiBvdGhlciBzdGF0ZXNcbi8vICogc2VsZWN0ZWQvYWN0aXZhdGVkIGFyZSBhcHBsaWVkIGFkZGl0aXZlbHkgdG8gaG92ZXIvZm9jdXMgdmlhIGNhbGN1bGF0aW9ucyBhdCBwcmVwcm9jZXNzaW5nIHRpbWVcblxuJG1kYy1yaXBwbGUtZGFyay1pbmstb3BhY2l0aWVzOiAoXG4gIGhvdmVyOiAuMDQsXG4gIGZvY3VzOiAuMTIsXG4gIHByZXNzOiAuMTIsXG4gIHNlbGVjdGVkOiAuMDgsXG4gIGFjdGl2YXRlZDogLjEyXG4pICFkZWZhdWx0O1xuXG4kbWRjLXJpcHBsZS1saWdodC1pbmstb3BhY2l0aWVzOiAoXG4gIGhvdmVyOiAuMDgsXG4gIGZvY3VzOiAuMjQsXG4gIHByZXNzOiAuMjQsXG4gIHNlbGVjdGVkOiAuMTYsXG4gIGFjdGl2YXRlZDogLjI0XG4pICFkZWZhdWx0O1xuXG4vLyBMZWdhY3lcblxuJG1kYy1yaXBwbGUtcHJlc3NlZC1kYXJrLWluay1vcGFjaXR5OiAuMTYgIWRlZmF1bHQ7XG4kbWRjLXJpcHBsZS1wcmVzc2VkLWxpZ2h0LWluay1vcGFjaXR5OiAuMzIgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2VsZXZhdGlvbi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3NoYXBlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vXG4vLyBQdWJsaWNcbi8vXG5cbkBtaXhpbiBtZGMtY2FyZC1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1jYXJkLXdpdGhvdXQtcmlwcGxlKCRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1jYXJkLXJpcHBsZSgkcXVlcnkpO1xufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBjYXJkIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLWNhcmQtY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gbWRjLWNhcmQtd2l0aG91dC1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBjYXJkXG5cbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1jYXJkIHtcbiAgICBAaW5jbHVkZSBtZGMtY2FyZC1zaGFwZS1yYWRpdXMobWVkaXVtLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWNhcmQtZmlsbC1jb2xvcihzdXJmYWNlLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oMSwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1jYXJkLWNvbnRhaW5lci1sYXlvdXRfO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZC0tb3V0bGluZWQge1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oMCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1jYXJkLW91dGxpbmUoJG1kYy1jYXJkLW91dGxpbmUtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC8vXG4gIC8vIE1lZGlhXG4gIC8vXG5cbiAgLm1kYy1jYXJkX19tZWRpYSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gQ2hpbGQgZWxlbWVudCBgX19tZWRpYS1jb250ZW50YCBoYXMgYHBvc2l0aW9uOiBhYnNvbHV0ZWBcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19tZWRpYTpmaXJzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcbiAgICB9XG4gIH1cblxuICAubWRjLWNhcmRfX21lZGlhOmxhc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19tZWRpYS0tc3F1YXJlIHtcbiAgICBAaW5jbHVkZSBtZGMtY2FyZC1tZWRpYS1hc3BlY3QtcmF0aW8oMSwgMSwgJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2FyZF9fbWVkaWEtLTE2LTkge1xuICAgIEBpbmNsdWRlIG1kYy1jYXJkLW1lZGlhLWFzcGVjdC1yYXRpbygxNiwgOSwgJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2FyZF9fbWVkaWEtY29udGVudCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gUHJpbWFyeSBhY3Rpb25cbiAgLy9cblxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWNhcmQtY29udGFpbmVyLWxheW91dF87XG5cbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gTmVlZGVkIHRvIHByZXZlbnQgdGhlIHJpcHBsZSB3YXNoIGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNvbnRhaW5lciBpbiBJRSBhbmQgRWRnZVxuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcbiAgICB9XG4gIH1cblxuICAvL1xuICAvLyBBY3Rpb24gcm93XG4gIC8vXG5cbiAgLm1kYy1jYXJkX19hY3Rpb25zIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWNhcmQtYWN0aW9ucy1sYXlvdXRfO1xuXG4gICAgICBtaW4taGVpZ2h0OiA1MnB4O1xuICAgICAgcGFkZGluZzogOHB4O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fYWN0aW9ucy0tZnVsbC1ibGVlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19hY3Rpb24tYnV0dG9ucyxcbiAgLm1kYy1jYXJkX19hY3Rpb24taWNvbnMge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtY2FyZC1hY3Rpb25zLWxheW91dF87XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19hY3Rpb24taWNvbnMge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkbWRjLWNhcmQtYWN0aW9uLWljb24tY29sb3IpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fYWN0aW9uLWJ1dHRvbnMgKyAubWRjLWNhcmRfX2FjdGlvbi1pY29ucyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIGxlZnQsIDE2cHgpO1xuICAgIH1cbiAgfVxuXG4gIC8vXG4gIC8vIEFjdGlvbiBpdGVtc1xuICAvL1xuXG4gIC5tZGMtY2FyZF9fYWN0aW9uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWNhcmQtYWN0aW9ucy1sYXlvdXRfKGlubGluZS1mbGV4KTtcblxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gQWN0aW9uIGJ1dHRvbnNcbiAgLy9cblxuICAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgcmlnaHQsIDhweCk7XG5cbiAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCByaWdodCwgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19hY3Rpb25zLS1mdWxsLWJsZWVkIC5tZGMtY2FyZF9fYWN0aW9uLS1idXR0b24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vXG4gIC8vIEFjdGlvbiBpY29uc1xuICAvL1xuXG4gIC5tZGMtY2FyZF9fYWN0aW9uLS1pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gSWNvbiBidXR0b25zIGFyZSB0YWxsZXIgdGhhbiBidXR0b25zLCBzbyB3ZSBuZWVkIHRvIGFkanVzdCB0aGVpciBtYXJnaW5zIHRvIHByZXZlbnQgdGhlIGFjdGlvbiByb3cgZnJvbVxuICAgICAgLy8gZXhwYW5kaW5nLlxuICAgICAgbWFyZ2luOiAtNnB4IDA7XG5cbiAgICAgIC8vIFNhbWUgcGFkZGluZyBhcyBtZGMtaWNvbi1idXR0b24uXG4gICAgICBwYWRkaW5nOiAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fYWN0aW9uLS1pY29uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJG1kYy1jYXJkLWFjdGlvbi1pY29uLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBjYXJkIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLWNhcmQtY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gbWRjLWNhcmQtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1jb21tb24oJHF1ZXJ5KTtcblxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uIHtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNhcmQtZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jYXJkLW91dGxpbmUoJGNvbG9yLCAkdGhpY2tuZXNzOiAkbWRjLWNhcmQtb3V0bGluZS13aWR0aCwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGJvcmRlci13aWR0aDogJHRoaWNrbmVzcztcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIGJvcmRlci1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNhcmQtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiBtZGMtY2FyZC1tZWRpYS1hc3BlY3QtcmF0aW8oJHgsICR5LCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gVGhpcyBjbGV2ZXIgdHJpY2sgYnJvdWdodCB0byB5b3UgYnk6IGh0dHA6Ly93d3cubWFkZW15ZGF5LmRlL2Nzcy1oZWlnaHQtZXF1YWxzLXdpZHRoLXdpdGgtcHVyZS1jc3MuaHRtbFxuICAgICAgbWFyZ2luLXRvcDogcGVyY2VudGFnZSgkeSAvICR4KTtcbiAgICB9XG4gIH1cbn1cblxuLy9cbi8vIFByaXZhdGVcbi8vXG5cbkBtaXhpbiBtZGMtY2FyZC1jb250YWluZXItbGF5b3V0XyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbkBtaXhpbiBtZGMtY2FyZC1hY3Rpb25zLWxheW91dF8oJGRpc3BsYXk6IGZsZXgpIHtcbiAgZGlzcGxheTogJGRpc3BsYXk7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL3ZhcmlhYmxlc1wiO1xuXG4kbWRjLWNhcmQtYWN0aW9uLWljb24tY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzKG1lZGl1bSkpICFkZWZhdWx0O1xuJG1kYy1jYXJkLW91dGxpbmUtY29sb3I6IG1peChtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgbWRjLXRoZW1lLXByb3AtdmFsdWUoc3VyZmFjZSksIDEyJSkgIWRlZmF1bHQ7XG4kbWRjLWNhcmQtb3V0bGluZS13aWR0aDogMXB4ICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1jaGVja2JveC1jb250YWluZXIta2V5ZnJhbWVzXyhcbiAgJGZyb20tc3Ryb2tlLWNvbG9yLFxuICAkdG8tc3Ryb2tlLWNvbG9yLFxuICAkZnJvbS1maWxsLWNvbG9yLFxuICAkdG8tZmlsbC1jb2xvcixcbiAgJHVpZCkge1xuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1mYWRlLWluLWJhY2tncm91bmQtI3skdWlkfSB7XG4gICAgMCUge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkZnJvbS1zdHJva2UtY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGZyb20tZmlsbC1jb2xvcik7XG4gICAgfVxuXG4gICAgNTAlIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgJHRvLXN0cm9rZS1jb2xvcik7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkdG8tZmlsbC1jb2xvcik7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtZmFkZS1vdXQtYmFja2dyb3VuZC0jeyR1aWR9IHtcbiAgICAwJSxcbiAgICA4MCUge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkdG8tc3Ryb2tlLWNvbG9yKTtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICR0by1maWxsLWNvbG9yKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgJGZyb20tc3Ryb2tlLWNvbG9yKTtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRmcm9tLWZpbGwtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoZWNrYm94LW1hcmsta2V5ZnJhbWVzXyB7XG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LXVuY2hlY2tlZC1jaGVja2VkLWNoZWNrbWFyay1wYXRoIHtcbiAgICAwJSxcbiAgICA1MCUge1xuICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6ICRtZGMtY2hlY2tib3gtbWFyay1wYXRoLWxlbmd0aF87XG4gICAgfVxuXG4gICAgNTAlIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICRtZGMtYW5pbWF0aW9uLWRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmsge1xuICAgIDAlLFxuICAgIDY4LjIlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgIH1cblxuICAgIDY4LjIlIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLCAxKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWNoZWNrZWQtdW5jaGVja2VkLWNoZWNrbWFyay1wYXRoIHtcbiAgICBmcm9tIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICRtZGMtYW5pbWF0aW9uLWFjY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAkbWRjLWNoZWNrYm94LW1hcmstcGF0aC1sZW5ndGhfICogLTE7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLWNoZWNrbWFyayB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWRjLWFuaW1hdGlvbi1kZWNlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWNoZWNrbWFyayB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1lYXNpbmctZnVuY3Rpb25fO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrIHtcbiAgICBmcm9tIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IG1kYy1hbmltYXRpb24tZGVjZWxlcmF0aW9uLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtbWl4ZWRtYXJrIHtcbiAgICBmcm9tIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICRtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWVhc2luZy1mdW5jdGlvbl87XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzE1ZGVnKTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQtbWl4ZWRtYXJrIHtcbiAgICAwJSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMzIuOCUsXG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL3JpcHBsZS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS92YXJpYWJsZXNcIjtcblxuJG1kYy1jaGVja2JveC1tYXJrLWNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1wcmltYXJ5KSAhZGVmYXVsdDtcbiRtZGMtY2hlY2tib3gtYm9yZGVyLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuNTQpICFkZWZhdWx0O1xuJG1kYy1jaGVja2JveC1kaXNhYmxlZC1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjI2KSAhZGVmYXVsdDtcbiRtZGMtY2hlY2tib3gtYmFzZWxpbmUtdGhlbWUtY29sb3I6IHNlY29uZGFyeSAhZGVmYXVsdDtcblxuJG1kYy1jaGVja2JveC10b3VjaC1hcmVhOiA0MHB4ICFkZWZhdWx0O1xuJG1kYy1jaGVja2JveC1zaXplOiAxOHB4ICFkZWZhdWx0O1xuJG1kYy1jaGVja2JveC11aS1wY3Q6IHBlcmNlbnRhZ2UoJG1kYy1jaGVja2JveC1zaXplIC8gJG1kYy1jaGVja2JveC10b3VjaC1hcmVhKSAhZGVmYXVsdDtcbiRtZGMtY2hlY2tib3gtbWFyay1zdHJva2Utc2l6ZTogMi8xNSAqICRtZGMtY2hlY2tib3gtc2l6ZSAhZGVmYXVsdDtcbiRtZGMtY2hlY2tib3gtYm9yZGVyLXdpZHRoOiAycHggIWRlZmF1bHQ7XG4kbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZHVyYXRpb246IDkwbXMgIWRlZmF1bHQ7XG4kbWRjLWNoZWNrYm94LWl0ZW0tc3BhY2luZzogNHB4ICFkZWZhdWx0O1xuJG1kYy1jaGVja2JveC1mb2N1cy1pbmRpY2F0b3Itb3BhY2l0eTogbWFwLWdldCgkbWRjLXJpcHBsZS1kYXJrLWluay1vcGFjaXRpZXMsIGZvY3VzKSAhZGVmYXVsdDtcblxuLy8gTWFudWFsIGNhbGN1bGF0aW9uIGRvbmUgb24gU1ZHXG4kbWRjLWNoZWNrYm94LW1hcmstcGF0aC1sZW5ndGhfOiAyOS43ODMzMzg1ICFkZWZhdWx0O1xuJG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtZWFzaW5nLWZ1bmN0aW9uXzogY3ViaWMtYmV6aWVyKC4xNCwgMCwgMCwgMSkgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTYgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vL1xuLy8gUHVibGljXG4vL1xuXG5AbWl4aW4gbWRjLWNoZWNrYm94LWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LXdpdGhvdXQtcmlwcGxlKCRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1jaGVja2JveC1yaXBwbGUoJHF1ZXJ5KTtcbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gY2hlY2tib3ggc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtY2hlY2tib3gtY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gbWRjLWNoZWNrYm94LXdpdGhvdXQtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgY2hlY2tib3hcblxuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveC1tYXJrLWtleWZyYW1lc187XG4gIH1cblxuICAubWRjLWNoZWNrYm94IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LWJhc2VfO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1jaGVja2JveC1jb250YWluZXItY29sb3JzKCRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LWluay1jb2xvcigkbWRjLWNoZWNrYm94LW1hcmstY29sb3IsICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1jaGVja2JveC1mb2N1cy1pbmRpY2F0b3ItY29sb3IoJG1kYy1jaGVja2JveC1iYXNlbGluZS10aGVtZS1jb2xvciwgJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcl87XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBtYXJnaW46IDAgMXB4OyAvLyBFeHRyYSBob3Jpem9udGFsIHNwYWNlIGFyb3VuZCBtaXhlZG1hcmsgc3ltYm9sLlxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE5lZWRlZCB0byBkaXNhYmxlIGhvdmVyIGVmZmVjdHMgb24gQ1NTLW9ubHkgKG5vbi1KUykgY2hlY2tib3hlc1xuICAubWRjLWNoZWNrYm94LS1kaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveC0tZGlzYWJsZWRfO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fYmFja2dyb3VuZF8oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19jaGVja21hcmtfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aCB7XG4gICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aF8oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19taXhlZG1hcmtfKCRxdWVyeSk7XG4gIH1cblxuICAvLyBKUyBjaGVja2JveFxuICAubWRjLWNoZWNrYm94LS11cGdyYWRlZCB7XG4gICAgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCxcbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmssXG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgsXG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fY2hpbGQtLXVwZ3JhZGVkXztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWNoZWNrYm94LS1hbmltIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LS1hbmltXztcbiAgICB9XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpjaGVja2VkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCxcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6aW5kZXRlcm1pbmF0ZSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3hfX2JhY2tncm91bmQtLW1hcmtlZF87XG4gICAgfVxuXG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aC0tbWFya2VkXztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUaGUgZnJhbWUncyA6OmJlZm9yZSBlbGVtZW50IGlzIHVzZWQgYXMgYSBmb2N1cyBpbmRpY2F0b3IgZm9yIHRoZSBjaGVja2JveFxuICAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fZm9jdXMtaW5kaWNhdG9yXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6Zm9jdXMgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fZm9jdXMtaW5kaWNhdG9yLS1mb2N1c2VkXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sXztcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveC0tZGlzYWJsZWRfO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmsge1xuICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19jaGVja21hcmstLWNoZWNrZWRfKCRxdWVyeSk7XG4gICAgfVxuXG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fbWl4ZWRtYXJrLS1jaGVja2VkXztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDppbmRldGVybWluYXRlIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fY2hlY2ttYXJrLS1pbmRldGVybWluYXRlXygkcXVlcnkpO1xuICAgIH1cblxuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3hfX21peGVkbWFyay0taW5kZXRlcm1pbmF0ZV87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gY2hlY2tib3ggc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtY2hlY2tib3gtY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gbWRjLWNoZWNrYm94LXJpcHBsZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1jb21tb24oJHF1ZXJ5KTtcblxuICAubWRjLWNoZWNrYm94IHtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRtZGMtY2hlY2tib3gtYmFzZWxpbmUtdGhlbWUtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy11bmJvdW5kZWQoJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBjb250ZW50OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoZWNrYm94LWNvbnRhaW5lci1jb2xvcnMoXG4gICR1bm1hcmtlZC1zdHJva2UtY29sb3I6ICRtZGMtY2hlY2tib3gtYm9yZGVyLWNvbG9yLFxuICAkdW5tYXJrZWQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQsXG4gICRtYXJrZWQtc3Ryb2tlLWNvbG9yOiAkbWRjLWNoZWNrYm94LWJhc2VsaW5lLXRoZW1lLWNvbG9yLFxuICAkbWFya2VkLWZpbGwtY29sb3I6ICRtZGMtY2hlY2tib3gtYmFzZWxpbmUtdGhlbWUtY29sb3IsXG4gICRnZW5lcmF0ZS1rZXlmcmFtZXM6IHRydWUsXG4gICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKClcbikge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtY2hlY2tib3gtdW5tYXJrZWQtYmFja2dyb3VuZC1zZWxlY3Rvci1lbmFibGVkXyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkdW5tYXJrZWQtc3Ryb2tlLWNvbG9yKTtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICR1bm1hcmtlZC1maWxsLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtY2hlY2tib3gtbWFya2VkLWJhY2tncm91bmQtc2VsZWN0b3ItZW5hYmxlZF8ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgJG1hcmtlZC1zdHJva2UtY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJG1hcmtlZC1maWxsLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJGdlbmVyYXRlLWtleWZyYW1lcyB7XG4gICAgJHVpZDogbWRjLWNoZWNrYm94LWNvbnRhaW5lci1rZXlmcmFtZXMtdWlkXygpO1xuICAgICRhbmltLXNlbGVjdG9yOiBpZigmLCBcIiYubWRjLWNoZWNrYm94LS1hbmltXCIsIFwiLm1kYy1jaGVja2JveC0tYW5pbVwiKTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uLCAkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LWNvbnRhaW5lci1rZXlmcmFtZXNfKFxuICAgICAgICAkZnJvbS1zdHJva2UtY29sb3I6ICR1bm1hcmtlZC1zdHJva2UtY29sb3IsXG4gICAgICAgICR0by1zdHJva2UtY29sb3I6ICRtYXJrZWQtc3Ryb2tlLWNvbG9yLFxuICAgICAgICAkZnJvbS1maWxsLWNvbG9yOiAkdW5tYXJrZWQtZmlsbC1jb2xvcixcbiAgICAgICAgJHRvLWZpbGwtY29sb3I6ICRtYXJrZWQtZmlsbC1jb2xvcixcbiAgICAgICAgJHVpZDogJHVpZFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBtYXgtbmVzdGluZy1kZXB0aFxuXG4gICAgI3skYW5pbS1zZWxlY3Rvcn0ge1xuICAgICAgJi11bmNoZWNrZWQtY2hlY2tlZCxcbiAgICAgICYtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUge1xuICAgICAgICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBtZGMtY2hlY2tib3gtZmFkZS1pbi1iYWNrZ3JvdW5kLSN7JHVpZH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYtY2hlY2tlZC11bmNoZWNrZWQsXG4gICAgICAmLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIHtcbiAgICAgICAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogbWRjLWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmQtI3skdWlkfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG1heC1uZXN0aW5nLWRlcHRoXG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGVja2JveC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtZm9jdXMtaW5kaWNhdG9yLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAvLyBUaGUgOjpiZWZvcmUgZWxlbWVudCBpcyB1c2VkIGFzIGEgZm9jdXMgaW5kaWNhdG9yIGZvciB0aGUgY2hlY2tib3hcbiAgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IsICRlZGdlT3B0T3V0OiB0cnVlKTtcbiAgICB9XG4gIH1cbn1cblxuLy9cbi8vIFByaXZhdGVcbi8vXG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtYmFzZV8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMCAwICRtZGMtY2hlY2tib3gtc2l6ZTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIHdpZHRoOiAkbWRjLWNoZWNrYm94LXNpemU7XG4gIGhlaWdodDogJG1kYy1jaGVja2JveC1zaXplO1xuICBwYWRkaW5nOiAoJG1kYy1jaGVja2JveC10b3VjaC1hcmVhIC0gJG1kYy1jaGVja2JveC1zaXplKSAvIDI7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yXyB7XG4gIEBpbmNsdWRlIG1kYy1jaGVja2JveC11bm1hcmtlZC1iYWNrZ3JvdW5kLXNlbGVjdG9yLWRpc2FibGVkXyB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkbWRjLWNoZWNrYm94LWRpc2FibGVkLWNvbG9yKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1jaGVja2JveC1tYXJrZWQtYmFja2dyb3VuZC1zZWxlY3Rvci1kaXNhYmxlZF8ge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgdHJhbnNwYXJlbnQpO1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRtZGMtY2hlY2tib3gtZGlzYWJsZWQtY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtLWRpc2FibGVkXyB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX2NoaWxkLS1jb3Zlci1wYXJlbnRfIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX2NoaWxkLS11cGdyYWRlZF8ge1xuICAvLyBEdWUgdG8gdGhlIG15cmlhZCBvZiBzZWxlY3RvciBjb21ib3MgdXNlZCB0byBwcm9wZXJseSBzdHlsZSBhIENTUy1vbmx5IGNoZWNrYm94LCBhbGwgb2ZcbiAgLy8gd2hpY2ggaGF2ZSB2YXJ5aW5nIHNlbGVjdG9yIHByZWNlZGVuY2UgYW5kIG1ha2UgdXNlIG9mIHRyYW5zaXRpb25zLCBpdCBpcyBjbGVhbmVyIGFuZCBtb3JlXG4gIC8vIGVmZmljaWVudCBoZXJlIHRvIHNpbXBseSB1c2UgIWltcG9ydGFudCwgc2luY2UgdGhlIG1kYy1jaGVja2JveC0tYW5pbS0qIGNsYXNzZXMgd2lsbCB0YWtlXG4gIC8vIG92ZXIgZnJvbSBoZXJlLlxuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIEFuaW1hdGlvblxuXG5AbWl4aW4gbWRjLWNoZWNrYm94LS1hbmltXyB7XG4gICRtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGFuZ2UtZHVyYXRpb25fOiA1MDBtcztcblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtdHlwZVxuXG4gICYtdW5jaGVja2VkLWNoZWNrZWQsXG4gICYtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUsXG4gICYtY2hlY2tlZC11bmNoZWNrZWQsXG4gICYtaW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQge1xuICAgIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAkbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZHVyYXRpb24gKiAyO1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgIH1cbiAgfVxuXG4gICYtdW5jaGVja2VkLWNoZWNrZWQge1xuICAgIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoIHtcbiAgICAgIC8vIEluc3RlYWQgb2YgZGVsYXlpbmcgdGhlIGFuaW1hdGlvbiwgd2Ugc2ltcGx5IG11bHRpcGx5IGl0cyBsZW5ndGggYnkgMiBhbmQgYmVnaW4gdGhlXG4gICAgICAvLyBhbmltYXRpb24gYXQgNTAlIGluIG9yZGVyIHRvIHByZXZlbnQgYSBmbGFzaCBvZiBzdHlsZXMgYXBwbGllZCB0byBhIGNoZWNrZWQgY2hlY2ttYXJrXG4gICAgICAvLyBhcyB0aGUgYmFja2dyb3VuZCBpcyBmYWRpbmcgaW4gYmVmb3JlIHRoZSBhbmltYXRpb24gYmVnaW5zLlxuICAgICAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtdW5jaGVja2VkLWNoZWNrZWQtY2hlY2ttYXJrLXBhdGggJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uICogMiBsaW5lYXIgMHM7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUge1xuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBhbmltYXRpb246IG1kYy1jaGVja2JveC11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmsgJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uIGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi1jaGVja2VkLXVuY2hlY2tlZCB7XG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgge1xuICAgICAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtY2hlY2tlZC11bmNoZWNrZWQtY2hlY2ttYXJrLXBhdGggJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uIGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi1jaGVja2VkLWluZGV0ZXJtaW5hdGUge1xuICAgIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gICAgICBhbmltYXRpb246IG1kYy1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtY2hlY2ttYXJrICRtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiBsaW5lYXIgMHM7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBhbmltYXRpb246IG1kYy1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrICRtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiBsaW5lYXIgMHM7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtaW5kZXRlcm1pbmF0ZS1jaGVja2VkIHtcbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmsge1xuICAgICAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWNoZWNrbWFyayAkbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hhbmdlLWR1cmF0aW9uXyBsaW5lYXIgMHM7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBhbmltYXRpb246IG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtbWl4ZWRtYXJrICRtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGFuZ2UtZHVyYXRpb25fIGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi1pbmRldGVybWluYXRlLXVuY2hlY2tlZCB7XG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWNsYXJhdGlvbi1jb2xvbi1zcGFjZS1hZnRlclxuICAgICAgYW5pbWF0aW9uOlxuICAgICAgICBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQtbWl4ZWRtYXJrICRtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGFuZ2UtZHVyYXRpb25fICogLjYgbGluZWFyIDBzO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC10eXBlXG59XG5cbi8vIEJhY2tncm91bmRcblxuQG1peGluIG1kYy1jaGVja2JveC11bm1hcmtlZC1iYWNrZ3JvdW5kLXNlbGVjdG9yLWVuYWJsZWRfIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eVxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOm5vdCg6Y2hlY2tlZCk6bm90KDppbmRldGVybWluYXRlKSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtdW5tYXJrZWQtYmFja2dyb3VuZC1zZWxlY3Rvci1kaXNhYmxlZF8ge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5XG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmRpc2FibGVkOm5vdCg6Y2hlY2tlZCk6bm90KDppbmRldGVybWluYXRlKSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtbWFya2VkLWJhY2tncm91bmQtc2VsZWN0b3ItZW5hYmxlZF8ge1xuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmluZGV0ZXJtaW5hdGUgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoZWNrYm94LW1hcmtlZC1iYWNrZ3JvdW5kLXNlbGVjdG9yLWRpc2FibGVkXyB7XG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmRpc2FibGVkOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpkaXNhYmxlZDppbmRldGVybWluYXRlIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGVja2JveF9fYmFja2dyb3VuZF8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgKCRtZGMtY2hlY2tib3gtdG91Y2gtYXJlYSAtICRtZGMtY2hlY2tib3gtc2l6ZSkgLyAyLCBcIi5tZGMtY2hlY2tib3hcIik7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAoJG1kYy1jaGVja2JveC10b3VjaC1hcmVhIC0gJG1kYy1jaGVja2JveC1zaXplKSAvIDI7XG4gICAgYm90dG9tOiAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogJG1kYy1jaGVja2JveC11aS1wY3Q7XG4gICAgaGVpZ2h0OiAkbWRjLWNoZWNrYm94LXVpLXBjdDtcbiAgICAvLyBib3JkZXItY29sb3IgaXMgb3ZlcnJpZGRlbiBieSB0aGUgbWRjLWNoZWNrYm94LXVubWFya2VkLXN0cm9rZS1jb2xvcigpIG1peGluXG4gICAgYm9yZGVyOiAkbWRjLWNoZWNrYm94LWJvcmRlci13aWR0aCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHdpbGwtY2hhbmdlOiBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3I7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1leGl0KGJhY2tncm91bmQtY29sb3IpLFxuICAgICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZXhpdChib3JkZXItY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX2JhY2tncm91bmQtLW1hcmtlZF8ge1xuICB0cmFuc2l0aW9uOlxuICAgIG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWVudGVyKGJvcmRlci1jb2xvciksXG4gICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZW50ZXIoYmFja2dyb3VuZC1jb2xvcik7XG59XG5cbi8vIEZvY3VzIGluZGljYXRvclxuXG5AbWl4aW4gbWRjLWNoZWNrYm94X19mb2N1cy1pbmRpY2F0b3JfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fY2hpbGQtLWNvdmVyLXBhcmVudF87XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm07XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1leGl0KG9wYWNpdHkpLFxuICAgICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZXhpdCh0cmFuc2Zvcm0pO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX2ZvY3VzLWluZGljYXRvci0tZm9jdXNlZF8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgyLjc1LCAyLjc1KTtcbiAgICBvcGFjaXR5OiAkbWRjLWNoZWNrYm94LWZvY3VzLWluZGljYXRvci1vcGFjaXR5O1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZW50ZXIob3BhY2l0eSwgMG1zLCA4MG1zKSxcbiAgICAgIG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWVudGVyKHRyYW5zZm9ybSwgMG1zLCA4MG1zKTtcbiAgfVxufVxuXG4vLyBOYXRpdmUgaW5wdXRcblxuQG1peGluIG1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xfIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgb3BhY2l0eTogMDtcbiAgY3Vyc29yOiBpbmhlcml0O1xufVxuXG4vLyBDaGVjayBtYXJrXG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX2NoZWNrbWFya18oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19jaGlsZC0tY292ZXItcGFyZW50XztcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246IG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWV4aXQob3BhY2l0eSwgMG1zLCAkbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZHVyYXRpb24gKiAyKTtcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3gtLXVwZ3JhZGVkICYge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoZWNrYm94X19jaGVja21hcmstLWNoZWNrZWRfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1lbnRlcihvcGFjaXR5LCAwbXMsICRtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDIpLFxuICAgICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZW50ZXIodHJhbnNmb3JtLCAwbXMsICRtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDIpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX2NoZWNrbWFyay0taW5kZXRlcm1pbmF0ZV8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1leGl0KG9wYWNpdHksIDBtcywgJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uKSxcbiAgICAgIG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWV4aXQodHJhbnNmb3JtLCAwbXMsICRtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIH1cbn1cblxuLy8gQ2hlY2sgbWFyayBwYXRoXG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1leGl0KHN0cm9rZS1kYXNob2Zmc2V0LCAwbXMsICRtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDIpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBzdHJva2U6IGN1cnJlbnRDb2xvcjtcbiAgICBzdHJva2Utd2lkdGg6ICRtZGMtY2hlY2tib3gtbWFyay1zdHJva2Utc2l6ZSAqIDEuMztcbiAgICBzdHJva2UtZGFzaG9mZnNldDogJG1kYy1jaGVja2JveC1tYXJrLXBhdGgtbGVuZ3RoXztcbiAgICBzdHJva2UtZGFzaGFycmF5OiAkbWRjLWNoZWNrYm94LW1hcmstcGF0aC1sZW5ndGhfO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoLS1tYXJrZWRfIHtcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG59XG5cbi8vIE1peGVkIG1hcmtcblxuQG1peGluIG1kYy1jaGVja2JveF9fbWl4ZWRtYXJrXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCkgcm90YXRlKDBkZWcpO1xuICAgIGJvcmRlci13aWR0aDogZmxvb3IoJG1kYy1jaGVja2JveC1tYXJrLXN0cm9rZS1zaXplKSAvIDI7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZXhpdChvcGFjaXR5KSxcbiAgICAgIG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWV4aXQodHJhbnNmb3JtKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoZWNrYm94X19taXhlZG1hcmstLWNoZWNrZWRfIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMSkgcm90YXRlKC00NWRlZyk7XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX21peGVkbWFyay0taW5kZXRlcm1pbmF0ZV8ge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgxKSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uLy4uL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9jaGVja2JveC9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9jaGVja2JveC92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi8uLi9yaXBwbGUvY29tbW9uXCI7XG5AaW1wb3J0IFwiLi4vLi4vcmlwcGxlL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5cbi5tZGMtY2hpcCB7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZTtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtYm91bmRlZDtcbiAgQGluY2x1ZGUgbWRjLWNoaXAtc2hhcGUtcmFkaXVzKDUwJSk7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLWZpbGwtY29sb3IoJG1kYy1jaGlwLWZpbGwtY29sb3ItZGVmYXVsdCk7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLWluay1jb2xvcigkbWRjLWNoaXAtaW5rLWNvbG9yLWRlZmF1bHQpO1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShib2R5Mik7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLWhlaWdodCgkbWRjLWNoaXAtaGVpZ2h0LWRlZmF1bHQpO1xuICBAaW5jbHVkZSBtZGMtY2hpcC1sZWFkaW5nLWljb24tbWFyZ2luKCk7XG5cbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogJG1kYy1jaGlwLXZlcnRpY2FsLXBhZGRpbmcgJG1kYy1jaGlwLWhvcml6b250YWwtcGFkZGluZztcbiAgb3V0bGluZTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICY6aG92ZXIge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCBvbi1zdXJmYWNlKTtcbiAgfVxufVxuXG5AYXQtcm9vdCB7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLWxlYWRpbmctaWNvbi1jb2xvcigkbWRjLWNoaXAtaWNvbi1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLXRyYWlsaW5nLWljb24tY29sb3IoJG1kYy1jaGlwLWljb24tY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtY2hpcC1sZWFkaW5nLWljb24tc2l6ZSgkbWRjLWNoaXAtbGVhZGluZy1pY29uLXNpemUpO1xuICBAaW5jbHVkZSBtZGMtY2hpcC10cmFpbGluZy1pY29uLXNpemUoJG1kYy1jaGlwLXRyYWlsaW5nLWljb24tc2l6ZSk7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLXRyYWlsaW5nLWljb24tbWFyZ2luKCk7XG59XG5cbi5tZGMtY2hpcC0tZXhpdCB7XG4gIHRyYW5zaXRpb246ICRtZGMtY2hpcC1leGl0LXRyYW5zaXRpb247XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5tZGMtY2hpcF9fdGV4dCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tZGMtY2hpcF9faWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm1kYy1jaGlwX19jaGVja21hcmsge1xuICBoZWlnaHQ6ICRtZGMtY2hpcC1sZWFkaW5nLWljb24tc2l6ZTtcbn1cblxuLm1kYy1jaGlwX19jaGVja21hcmstcGF0aCB7XG4gIHRyYW5zaXRpb246XG4gICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZXhpdChcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0LFxuICAgICAgJG1kYy1jaGlwLWNoZWNrbWFyay1hbmltYXRpb24tZGVsYXksXG4gICAgICAkbWRjLWNoaXAtY2hlY2ttYXJrLWFuaW1hdGlvbi1kdXJhdGlvblxuICAgICk7XG4gIHN0cm9rZS13aWR0aDogMnB4O1xuICBzdHJva2UtZGFzaG9mZnNldDogJG1kYy1jaGVja2JveC1tYXJrLXBhdGgtbGVuZ3RoXztcbiAgc3Ryb2tlLWRhc2hhcnJheTogJG1kYy1jaGVja2JveC1tYXJrLXBhdGgtbGVuZ3RoXztcbn1cblxuLm1kYy1jaGlwLS1zZWxlY3RlZCAubWRjLWNoaXBfX2NoZWNrbWFyay1wYXRoIHtcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG59XG5cbi8vIENoYW5nZSBjb2xvciBvZiBzZWxlY3RlZCBjaG9pY2UgY2hpcHNcblxuLm1kYy1jaGlwLXNldC0tY2hvaWNlIHtcbiAgLm1kYy1jaGlwIHtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1zZWxlY3RlZC1pbmstY29sb3IocHJpbWFyeSk7XG4gIH1cblxuICAubWRjLWNoaXAtLXNlbGVjdGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCBzdXJmYWNlKTtcbiAgfVxufVxuXG4vLyBBZGQgbGVhZGluZyBjaGVja21hcmsgdG8gZmlsdGVyIGNoaXBzIHdpdGggbm8gbGVhZGluZyBpY29uXG5cbi5tZGMtY2hpcF9fY2hlY2ttYXJrLXN2ZyB7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6ICRtZGMtY2hpcC1sZWFkaW5nLWljb24tc2l6ZTtcbiAgdHJhbnNpdGlvbjogd2lkdGggJG1kYy1jaGlwLXdpZHRoLWFuaW1hdGlvbi1kdXJhdGlvbiAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG59XG5cbi5tZGMtY2hpcC0tc2VsZWN0ZWQgLm1kYy1jaGlwX19jaGVja21hcmstc3ZnIHtcbiAgd2lkdGg6ICRtZGMtY2hpcC1sZWFkaW5nLWljb24tc2l6ZTtcbn1cblxuLy8gQWRkIGxlYWRpbmcgY2hlY2ttYXJrIHRvIGZpbHRlciBjaGlwcyB3aXRoIGEgbGVhZGluZyBpY29uXG5cbi5tZGMtY2hpcC1zZXQtLWZpbHRlciB7XG4gIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZyB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkbWRjLWNoaXAtb3BhY2l0eS1hbmltYXRpb24tZHVyYXRpb24gbGluZWFyO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6ICRtZGMtY2hpcC1sZWFkaW5nLWljb24tZGVsYXk7XG4gICAgb3BhY2l0eTogMTtcblxuICAgICsgLm1kYy1jaGlwX19jaGVja21hcmsge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkbWRjLWNoaXAtb3BhY2l0eS1hbmltYXRpb24tZHVyYXRpb24gbGluZWFyO1xuXG4gICAgICAvLyBEZWxheSB0aGUgY2hlY2ttYXJrIHRyYW5zaXRpb24uXG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAkbWRjLWNoaXAtY2hlY2ttYXJrLXdpdGgtbGVhZGluZy1pY29uLWRlbGF5O1xuICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgLm1kYy1jaGlwX19jaGVja21hcmstc3ZnIHtcbiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMG1zO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hpcC0tc2VsZWN0ZWQgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nIHtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgKyAubWRjLWNoaXBfX2NoZWNrbWFyayB7XG4gICAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgY2hlY2ttYXJrIGhhcyB6ZXJvIHdpZHRoIHdoaWxlIHRoZSBsZWFkaW5nIGljb24gaXMgc3RpbGwgYW5pbWF0aW5nLlxuICAgICAgd2lkdGg6IDA7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZy1oaWRkZW4ubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcge1xuICAgIHdpZHRoOiAwO1xuXG4gICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGxlYWRpbmcgaWNvbiBkb2Vzbid0IGZhZGUgaW4gd2hpbGUgdGhlIGNoZWNrbWFyayBpcyBmYWRpbmcgb3V0LlxuICAgIG9wYWNpdHk6IDA7XG5cbiAgICArIC5tZGMtY2hpcF9fY2hlY2ttYXJrIHtcbiAgICAgIHdpZHRoOiAkbWRjLWNoaXAtbGVhZGluZy1pY29uLXNpemU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xyXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxyXG4vL1xyXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XHJcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcclxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xyXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXHJcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xyXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxyXG4vL1xyXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxyXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cclxuLy9cclxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxyXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcclxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXHJcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcclxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcclxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxyXG4vLyBUSEUgU09GVFdBUkUuXHJcbi8vXHJcblxyXG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcclxuXHJcbi8vXHJcbi8vIEZsaXBzIHRoZSByYWRpdXMgdmFsdWVzIGJhc2VkIG9uIFJUTCBjb250ZXh0LlxyXG4vL1xyXG4vLyBFeGFtcGxlczpcclxuLy9cclxuLy8gMS4gbWRjLXNoYXBlLWZsaXAtcmFkaXVzKCgwLCA0cHgsIDRweCwgMCkpID0+IDRweCAwIDAgNHB4XHJcbi8vIDIuIG1kYy1zaGFwZS1mbGlwLXJhZGl1cygoMCwgOHB4KSkgPT4gOHB4IDBcclxuLy9cclxuQGZ1bmN0aW9uIG1kYy1zaGFwZS1mbGlwLXJhZGl1cygkcmFkaXVzKSB7XHJcbiAgQGlmIHR5cGUtb2YoJHJhZGl1cykgPT0gXCJsaXN0XCIge1xyXG4gICAgQGlmIGxlbmd0aCgkcmFkaXVzKSA+IDQge1xyXG4gICAgICBAZXJyb3IgXCJJbnZhbGlkIHJhZGl1czogJyN7JHJhZGl1c30nIGlzIG1vcmUgdGhhbiA0IHZhbHVlc1wiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmIGxlbmd0aCgkcmFkaXVzKSA9PSA0IHtcclxuICAgIEByZXR1cm4gbnRoKCRyYWRpdXMsIDIpIG50aCgkcmFkaXVzLCAxKSBudGgoJHJhZGl1cywgNCkgbnRoKCRyYWRpdXMsIDMpO1xyXG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRyYWRpdXMpID09IDMge1xyXG4gICAgQHJldHVybiBudGgoJHJhZGl1cywgMikgbnRoKCRyYWRpdXMsIDEpIG50aCgkcmFkaXVzLCAyKSBudGgoJHJhZGl1cywgMyk7XHJcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHJhZGl1cykgPT0gMiB7XHJcbiAgICBAcmV0dXJuIG50aCgkcmFkaXVzLCAyKSBudGgoJHJhZGl1cywgMSk7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuICRyYWRpdXM7XHJcbiAgfVxyXG59XHJcblxyXG4vL1xyXG4vLyBSZXNvbHZlcyB0aGUgcGVyY2VudGFnZSB1bml0IHJhZGl1cyB0byBhcHByb3ByaWF0ZSBhYnNvbHV0ZSByYWRpdXMgdmFsdWUgYmFzZWQgb24gY29tcG9uZW50IGhlaWdodC5cclxuLy8gVXNlIHRoaXMgZm9yIGZpeGVkIGhlaWdodCBjb21wb25lbnRzIG9ubHkuXHJcbi8vXHJcbi8vIEV4YW1wbGVzOlxyXG4vL1xyXG4vLyBtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cygzNnB4LCA1MCUpID0+IGAxOHB4YCAoaS5lLiwgMzZweCAvIDIpXHJcbi8vXHJcbkBmdW5jdGlvbiBtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cygkY29tcG9uZW50LWhlaWdodCwgJHJhZGl1cykge1xyXG4gICRyYWRpdXM6IG1kYy1zaGFwZS1wcm9wLXZhbHVlKCRyYWRpdXMpO1xyXG5cclxuICBAaWYgdHlwZS1vZigkcmFkaXVzKSA9PSBcImxpc3RcIiB7XHJcbiAgICAkcmFkaXVzLXZhbHVlOiAoKTtcclxuXHJcbiAgICBAZWFjaCAkY29ybmVyIGluICRyYWRpdXMge1xyXG4gICAgICAkcmFkaXVzLXZhbHVlOiBhcHBlbmQoJHJhZGl1cy12YWx1ZSwgbWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1mb3ItY29ybmVyXygkY29tcG9uZW50LWhlaWdodCwgJGNvcm5lcikpO1xyXG4gICAgfVxyXG5cclxuICAgIEByZXR1cm4gJHJhZGl1cy12YWx1ZTtcclxuICB9IEBlbHNlIHtcclxuICAgIEByZXR1cm4gbWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1mb3ItY29ybmVyXygkY29tcG9uZW50LWhlaWdodCwgJHJhZGl1cyk7XHJcbiAgfVxyXG59XHJcblxyXG4vL1xyXG4vLyBSZXR1cm5zICRyYWRpdXMgdmFsdWUgb2Ygc2hhcGUgY2F0ZWdvcnkgLSBgbGFyZ2VgLCBgbWVkaXVtYCBvciBgc21hbGxgLlxyXG4vLyBPdGhlcndpc2UsIGl0IHJldHVybnMgdGhlICRyYWRpdXMgaXRzZWxmIGlmIHZhbGlkLlxyXG4vLyAkcmFkaXVzIGNhbiBiZSBhIHNpbmdsZSB2YWx1ZSwgb3IgYSBsaXN0IG9mIHVwIHRvIDQgdmFsdWVzLlxyXG4vL1xyXG4vLyBFeGFtcGxlczpcclxuLy9cclxuLy8gbWRjLXNoYXBlLXByb3AtdmFsdWUoc21hbGwpID0+IDRweFxyXG4vLyBtZGMtc2hhcGUtcHJvcC12YWx1ZShzbWFsbCBzbWFsbCAwIDApID0+IDRweCA0cHggMCAwXHJcbi8vXHJcbkBmdW5jdGlvbiBtZGMtc2hhcGUtcHJvcC12YWx1ZSgkcmFkaXVzKSB7XHJcbiAgQGlmIHR5cGUtb2YoJHJhZGl1cykgPT0gXCJsaXN0XCIge1xyXG4gICAgQGlmIGxlbmd0aCgkcmFkaXVzKSA+IDQge1xyXG4gICAgICBAZXJyb3IgXCJJbnZhbGlkIHJhZGl1czogJyN7JHJhZGl1c30nIGlzIG1vcmUgdGhhbiA0IHZhbHVlc1wiO1xyXG4gICAgfVxyXG5cclxuICAgICRyYWRpdXMtdmFsdWVzOiAoKTtcclxuXHJcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkcmFkaXVzKSB7XHJcbiAgICAgICRjb3JuZXI6IG50aCgkcmFkaXVzLCAkaSk7XHJcblxyXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJG1kYy1zaGFwZS1jYXRlZ29yeS12YWx1ZXMsICRjb3JuZXIpIHtcclxuICAgICAgICAvLyBJZiBhIGNhdGVnb3J5IGlzIGVuY291bnRlcmVkIHdpdGhpbiBhIGxpc3Qgb2YgcmFkaWksIGFwcGx5IHRoZSBjYXRlZ29yeSdzIHZhbHVlIGZvciB0aGUgY29ycmVzcG9uZGluZyBjb3JuZXJcclxuICAgICAgICAkcmFkaXVzLXZhbHVlczpcclxuICAgICAgICAgIGFwcGVuZCgkcmFkaXVzLXZhbHVlcywgbnRoKG1kYy1zaGFwZS11bnBhY2stcmFkaXVzXyhtYXAtZ2V0KCRtZGMtc2hhcGUtY2F0ZWdvcnktdmFsdWVzLCAkY29ybmVyKSksICRpKSk7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICRyYWRpdXMtdmFsdWVzOiBhcHBlbmQoJHJhZGl1cy12YWx1ZXMsIG1kYy1zaGFwZS12YWxpZGF0ZS1yYWRpdXMtdmFsdWVfKCRjb3JuZXIpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEByZXR1cm4gJHJhZGl1cy12YWx1ZXM7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAaWYgbWFwLWhhcy1rZXkoJG1kYy1zaGFwZS1jYXRlZ29yeS12YWx1ZXMsICRyYWRpdXMpIHtcclxuICAgICAgQHJldHVybiBtYXAtZ2V0KCRtZGMtc2hhcGUtY2F0ZWdvcnktdmFsdWVzLCAkcmFkaXVzKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAcmV0dXJuIG1kYy1zaGFwZS12YWxpZGF0ZS1yYWRpdXMtdmFsdWVfKCRyYWRpdXMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy9cclxuLy8gQWNjZXB0cyByYWRpdXMgbnVtYmVyIG9yIGxpc3Qgb2YgMi00IHJhZGl1cyB2YWx1ZXMgYW5kIHJldHVybnMgNCB2YWx1ZSBsaXN0IHdpdGhcclxuLy8gbWFza2VkIGNvcm5lcnMgYXMgbWVudGlvbmVkIGluIGAkbWFza2VkLWNvcm5lcnNgXHJcbi8vXHJcbi8vIEV4YW1wbGU6XHJcbi8vXHJcbi8vIDEuIG1kYy1zaGFwZS1tYXNrLXJhZGl1cygycHggM3B4LCAxIDEgMCAwKSA9PiAycHggM3B4IDAgMFxyXG4vLyAyLiBtZGMtc2hhcGUtbWFzay1yYWRpdXMoOHB4LCAwIDAgMSAxKSA9PiAwIDAgOHB4IDhweFxyXG4vLyAzLiBtZGMtc2hhcGUtbWFzay1yYWRpdXMoNHB4IDRweCA0cHggNHB4LCAwIDEgMSAwKSA9PiAwIDRweCA0cHggMFxyXG4vL1xyXG5AZnVuY3Rpb24gbWRjLXNoYXBlLW1hc2stcmFkaXVzKCRyYWRpdXMsICRtYXNrZWQtY29ybmVycykge1xyXG4gIEBpZiB0eXBlLW9mKCRyYWRpdXMpID09IFwibGlzdFwiIHtcclxuICAgIEBpZiBsZW5ndGgoJHJhZGl1cykgPiA0IHtcclxuICAgICAgQGVycm9yIFwiSW52YWxpZCByYWRpdXM6ICcjeyRyYWRpdXN9JyBpcyBtb3JlIHRoYW4gNCB2YWx1ZXNcIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiBsZW5ndGgoJG1hc2tlZC1jb3JuZXJzKSAhPSA0IHtcclxuICAgIEBlcnJvciBcIkV4cGVjdGVkIG1hc2tlZC1jb3JuZXJzIG9mIGxlbmd0aCA0IGJ1dCBnb3QgJyN7bGVuZ3RoKCRtYXNrZWQtY29ybmVycyl9Jy5cIjtcclxuICB9XHJcblxyXG4gICRyYWRpdXM6IG1kYy1zaGFwZS11bnBhY2stcmFkaXVzXygkcmFkaXVzKTtcclxuXHJcbiAgQHJldHVybiBpZihudGgoJG1hc2tlZC1jb3JuZXJzLCAxKSA9PSAxLCBudGgoJHJhZGl1cywgMSksIDApXHJcbiAgICBpZihudGgoJG1hc2tlZC1jb3JuZXJzLCAyKSA9PSAxLCBudGgoJHJhZGl1cywgMiksIDApXHJcbiAgICBpZihudGgoJG1hc2tlZC1jb3JuZXJzLCAzKSA9PSAxLCBudGgoJHJhZGl1cywgMyksIDApXHJcbiAgICBpZihudGgoJG1hc2tlZC1jb3JuZXJzLCA0KSA9PSAxLCBudGgoJHJhZGl1cywgNCksIDApO1xyXG59XHJcblxyXG4vL1xyXG4vLyBVbnBhY2tzIHNob3J0aGFuZCB2YWx1ZXMgZm9yIGJvcmRlci1yYWRpdXMgKGkuZS4gbGlzdHMgb2YgMS0zIHZhbHVlcykuXHJcbi8vIElmIGEgbGlzdCBvZiA0IHZhbHVlcyBpcyBnaXZlbiwgaXQgaXMgcmV0dXJuZWQgYXMtaXMuXHJcbi8vXHJcbi8vIEV4YW1wbGVzOlxyXG4vL1xyXG4vLyAxLiBtZGMtc2hhcGUtdW5wYWNrLXJhZGl1c18oNHB4KSA9PiA0cHggNHB4IDRweCA0cHhcclxuLy8gMi4gbWRjLXNoYXBlLXVucGFjay1yYWRpdXNfKDRweCAycHgpID0+IDRweCAycHggNHB4IDJweFxyXG4vLyAzLiBtZGMtc2hhcGUtdW5wYWNrLXJhZGl1c18oNHB4IDJweCAycHgpID0+IDRweCAycHggMnB4IDJweFxyXG4vLyAyLiBtZGMtc2hhcGUtdW5wYWNrLXJhZGl1c18oNHB4IDJweCAwIDJweCkgPT4gNHB4IDJweCAwIDJweFxyXG4vL1xyXG4vLyBUT0RPOiBUaGlzIGlzIHByaXZhdGUgZm9yIHB1cnBvc2VzIG9mIGdldHRpbmcgaXQgaW50byBhIHBhdGNoOyBtYWtlIGl0IHB1YmxpYyBmb3IgYSBmdXR1cmUgbWlub3IvbWFqb3IgcmVsZWFzZS5cclxuLy9cclxuQGZ1bmN0aW9uIG1kYy1zaGFwZS11bnBhY2stcmFkaXVzXygkcmFkaXVzKSB7XHJcbiAgQGlmIGxlbmd0aCgkcmFkaXVzKSA9PSA0IHtcclxuICAgIEByZXR1cm4gJHJhZGl1cztcclxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcmFkaXVzKSA9PSAzIHtcclxuICAgIEByZXR1cm4gbnRoKCRyYWRpdXMsIDEpIG50aCgkcmFkaXVzLCAyKSBudGgoJHJhZGl1cywgMykgbnRoKCRyYWRpdXMsIDIpO1xyXG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRyYWRpdXMpID09IDIge1xyXG4gICAgQHJldHVybiBudGgoJHJhZGl1cywgMSkgbnRoKCRyYWRpdXMsIDIpIG50aCgkcmFkaXVzLCAxKSBudGgoJHJhZGl1cywgMik7XHJcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHJhZGl1cykgPT0gMSB7XHJcbiAgICBAcmV0dXJuICRyYWRpdXMgJHJhZGl1cyAkcmFkaXVzICRyYWRpdXM7XHJcbiAgfVxyXG5cclxuICBAZXJyb3IgXCJJbnZhbGlkIHJhZGl1czogJyN7JHJhZGl1c30nIGlzIG1vcmUgdGhhbiA0IHZhbHVlc1wiO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gbWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1mb3ItY29ybmVyXygkY29tcG9uZW50LWhlaWdodCwgJHJhZGl1cykge1xyXG4gIEBpZiB0eXBlLW9mKCRyYWRpdXMpID09IFwibnVtYmVyXCIgYW5kIHVuaXQoJHJhZGl1cykgPT0gXCIlXCIge1xyXG4gICAgLy8gQ29udmVydHMgdGhlIHBlcmNlbnRhZ2UgdG8gbnVtYmVyIHdpdGhvdXQgdW5pdC4gRXhhbXBsZTogNTAlID0+IDUwLlxyXG4gICAgJHBlcmNlbnRhZ2U6ICRyYWRpdXMgLyAoJHJhZGl1cyAqIDAgKyAxKTtcclxuXHJcbiAgICBAcmV0dXJuICRjb21wb25lbnQtaGVpZ2h0ICogKCRwZXJjZW50YWdlIC8gMTAwKTtcclxuICB9IEBlbHNlIHtcclxuICAgIEByZXR1cm4gJHJhZGl1cztcclxuICB9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBtZGMtc2hhcGUtdmFsaWRhdGUtcmFkaXVzLXZhbHVlXygkcmFkaXVzKSB7XHJcbiAgJGlzLW51bWJlcjogdHlwZS1vZigkcmFkaXVzKSA9PSBcIm51bWJlclwiO1xyXG5cclxuICBAaWYgbm90ICgkaXMtbnVtYmVyIG9yIHN0cl9pbmRleCgkcmFkaXVzLCBcInZhcihcIikgb3Igc3RyX2luZGV4KCRyYWRpdXMsIFwiY2FsYyhcIikpIHtcclxuICAgIEBlcnJvciBcIkludmFsaWQgcmFkaXVzOiAjeyRyYWRpdXN9XCI7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRyYWRpdXM7XHJcbn1cclxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvdmFyaWFibGVzXCI7XG5cbiRtZGMtY2hpcC1maWxsLWNvbG9yLWRlZmF1bHQ6IG1peChtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgbWRjLXRoZW1lLXByb3AtdmFsdWUoc3VyZmFjZSksIDEyJSkgIWRlZmF1bHQ7XG4kbWRjLWNoaXAtaW5rLWNvbG9yLWRlZmF1bHQ6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC44NykgIWRlZmF1bHQ7XG4kbWRjLWNoaXAtaG9yaXpvbnRhbC1wYWRkaW5nOiAxMnB4ICFkZWZhdWx0O1xuJG1kYy1jaGlwLXZlcnRpY2FsLXBhZGRpbmc6IDdweCAhZGVmYXVsdDtcbiRtZGMtY2hpcC1oZWlnaHQtZGVmYXVsdDogMzJweCAhZGVmYXVsdDtcblxuJG1kYy1jaGlwLWljb24tY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpICFkZWZhdWx0O1xuJG1kYy1jaGlwLWljb24tb3BhY2l0eTogLjU0ICFkZWZhdWx0O1xuJG1kYy1jaGlwLXRyYWlsaW5nLWljb24taG92ZXItb3BhY2l0eTogLjYyICFkZWZhdWx0O1xuJG1kYy1jaGlwLXRyYWlsaW5nLWljb24tZm9jdXMtb3BhY2l0eTogLjg3ICFkZWZhdWx0O1xuJG1kYy1jaGlwLWxlYWRpbmctaWNvbi1zaXplOiAyMHB4ICFkZWZhdWx0O1xuJG1kYy1jaGlwLXRyYWlsaW5nLWljb24tc2l6ZTogMThweCAhZGVmYXVsdDtcbi8vIFNwZWVkIHVwIGRlbGF5IHRvIGJyaWRnZSBnYXAgYmV0d2VlbiBsZWFkaW5nIGljb24gYW5kIGNoZWNrbWFyayB0cmFuc2l0aW9uLlxuJG1kYy1jaGlwLWxlYWRpbmctaWNvbi1kZWxheTogLTUwbXMgIWRlZmF1bHQ7XG4kbWRjLWNoaXAtY2hlY2ttYXJrLXdpdGgtbGVhZGluZy1pY29uLWRlbGF5OiA4MG1zICFkZWZhdWx0O1xuXG4kbWRjLWNoaXAtY2hlY2ttYXJrLWFuaW1hdGlvbi1kZWxheTogNTBtcyAhZGVmYXVsdDtcbiRtZGMtY2hpcC1jaGVja21hcmstYW5pbWF0aW9uLWR1cmF0aW9uOiAxNTBtcyAhZGVmYXVsdDtcbiRtZGMtY2hpcC13aWR0aC1hbmltYXRpb24tZHVyYXRpb246IDE1MG1zICFkZWZhdWx0O1xuJG1kYy1jaGlwLW9wYWNpdHktYW5pbWF0aW9uLWR1cmF0aW9uOiA3NW1zICFkZWZhdWx0O1xuXG4kbWRjLWNoaXAtbGVhZGluZy1pY29uLW1hcmdpbi10b3A6IC00cHggIWRlZmF1bHQ7XG4kbWRjLWNoaXAtbGVhZGluZy1pY29uLW1hcmdpbi1yaWdodDogNHB4ICFkZWZhdWx0O1xuJG1kYy1jaGlwLWxlYWRpbmctaWNvbi1tYXJnaW4tYm90dG9tOiAtNHB4ICFkZWZhdWx0O1xuJG1kYy1jaGlwLWxlYWRpbmctaWNvbi1tYXJnaW4tbGVmdDogLTRweCAhZGVmYXVsdDtcblxuJG1kYy1jaGlwLXRyYWlsaW5nLWljb24tbWFyZ2luLXRvcDogMCAhZGVmYXVsdDtcbiRtZGMtY2hpcC10cmFpbGluZy1pY29uLW1hcmdpbi1yaWdodDogLTRweCAhZGVmYXVsdDtcbiRtZGMtY2hpcC10cmFpbGluZy1pY29uLW1hcmdpbi1ib3R0b206IDAgIWRlZmF1bHQ7XG4kbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1tYXJnaW4tbGVmdDogNHB4ICFkZWZhdWx0O1xuXG4kbWRjLWNoaXAtZXhpdC10cmFuc2l0aW9uOlxuICBvcGFjaXR5IDc1bXMgJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uLFxuICB3aWR0aCAxNTBtcyAkbWRjLWFuaW1hdGlvbi1kZWNlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uLFxuICBwYWRkaW5nIDEwMG1zIGxpbmVhcixcbiAgbWFyZ2luIDEwMG1zIGxpbmVhciAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vZWxldmF0aW9uL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vc2hhcGUvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1jaGlwLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cyhtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cygkbWRjLWNoaXAtaGVpZ2h0LWRlZmF1bHQsICRyYWRpdXMpLCAkcnRsLXJlZmxleGl2ZSk7XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1maWxsLWNvbG9yLWFjY2Vzc2libGUoJGNvbG9yKSB7XG4gICRmaWxsLXRvbmU6IG1kYy10aGVtZS10b25lKCRjb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWNoaXAtZmlsbC1jb2xvcigkY29sb3IpO1xuXG4gIEBpZiAoJGZpbGwtdG9uZSA9PSBcImRhcmtcIikge1xuICAgIEBpbmNsdWRlIG1kYy1jaGlwLWluay1jb2xvcih0ZXh0LXByaW1hcnktb24tZGFyayk7XG4gICAgQGluY2x1ZGUgbWRjLWNoaXAtc2VsZWN0ZWQtaW5rLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1kYXJrKTtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1sZWFkaW5nLWljb24tY29sb3IodGV4dC1wcmltYXJ5LW9uLWRhcmspO1xuICAgIEBpbmNsdWRlIG1kYy1jaGlwLXRyYWlsaW5nLWljb24tY29sb3IodGV4dC1wcmltYXJ5LW9uLWRhcmspO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWxpZ2h0KTtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1zZWxlY3RlZC1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWxpZ2h0KTtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1sZWFkaW5nLWljb24tY29sb3IodGV4dC1wcmltYXJ5LW9uLWxpZ2h0KTtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC10cmFpbGluZy1pY29uLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1saWdodCk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLWZpbGwtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1pbmstY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJGNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG5cbiAgJjpob3ZlciB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLXNlbGVjdGVkLWluay1jb2xvcigkY29sb3IpIHtcbiAgJi5tZGMtY2hpcCB7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1zZWxlY3RlZCgkY29sb3IpO1xuICB9XG5cbiAgJi5tZGMtY2hpcC0tc2VsZWN0ZWQge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgIEBpbmNsdWRlIG1kYy1jaGlwLWxlYWRpbmctaWNvbi1jb2xvcigkY29sb3IpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAubWRjLWNoaXBfX2NoZWNrbWFyay1wYXRoIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChzdHJva2UsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLW91dGxpbmUoJHdpZHRoOiAxcHgsICRzdHlsZTogc29saWQsICRjb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSkpIHtcbiAgQGluY2x1ZGUgbWRjLWNoaXAtb3V0bGluZS13aWR0aCgkd2lkdGgpO1xuICBAaW5jbHVkZSBtZGMtY2hpcC1vdXRsaW5lLXN0eWxlKCRzdHlsZSk7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLW91dGxpbmUtY29sb3IoJGNvbG9yKTtcbn1cblxuQG1peGluIG1kYy1jaGlwLW91dGxpbmUtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgJGNvbG9yKTtcbn1cblxuQG1peGluIG1kYy1jaGlwLW91dGxpbmUtc3R5bGUoJHN0eWxlKSB7XG4gIGJvcmRlci1zdHlsZTogJHN0eWxlO1xufVxuXG5AbWl4aW4gbWRjLWNoaXAtb3V0bGluZS13aWR0aCgkd2lkdGgsICRob3Jpem9udGFsLXBhZGRpbmc6ICRtZGMtY2hpcC1ob3Jpem9udGFsLXBhZGRpbmcpIHtcbiAgLy8gTm90ZTogQWRqdXN0IHBhZGRpbmcgdG8gbWFpbnRhaW4gY29uc2lzdGVudCB3aWR0aCB3aXRoIG5vbi1vdXRsaW5lZCBjaGlwc1xuICAkaG9yaXpvbnRhbC1wYWRkaW5nLXZhbHVlOiBtYXgoJGhvcml6b250YWwtcGFkZGluZyAtICR3aWR0aCwgMCk7XG4gICR2ZXJ0aWNhbC1wYWRkaW5nLXZhbHVlOiBtYXgoJG1kYy1jaGlwLXZlcnRpY2FsLXBhZGRpbmcgLSAkd2lkdGgsIDApO1xuXG4gIHBhZGRpbmc6ICR2ZXJ0aWNhbC1wYWRkaW5nLXZhbHVlICRob3Jpem9udGFsLXBhZGRpbmctdmFsdWU7XG4gIGJvcmRlci13aWR0aDogJHdpZHRoO1xufVxuXG5AbWl4aW4gbWRjLWNoaXAtaG9yaXpvbnRhbC1wYWRkaW5nKCRwYWRkaW5nKSB7XG4gIHBhZGRpbmc6ICRtZGMtY2hpcC12ZXJ0aWNhbC1wYWRkaW5nICRwYWRkaW5nO1xufVxuXG5AbWl4aW4gbWRjLWNoaXAtaGVpZ2h0KCRoZWlnaHQpIHtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xufVxuXG5AbWl4aW4gbWRjLWNoaXAtc2V0LXNwYWNpbmcoJGdhcC1zaXplKSB7XG4gIHBhZGRpbmc6ICRnYXAtc2l6ZSAvIDI7XG5cbiAgLm1kYy1jaGlwIHtcbiAgICBtYXJnaW46ICRnYXAtc2l6ZSAvIDI7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLWxlYWRpbmctaWNvbi1jb2xvcigkY29sb3IsICRvcGFjaXR5OiAkbWRjLWNoaXAtaWNvbi1vcGFjaXR5KSB7XG4gIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZyB7XG4gICAgY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG9wYWNpdHkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hpcC10cmFpbGluZy1pY29uLWNvbG9yKFxuICAkY29sb3IsXG4gICRvcGFjaXR5OiAkbWRjLWNoaXAtaWNvbi1vcGFjaXR5LFxuICAkaG92ZXItb3BhY2l0eTogJG1kYy1jaGlwLXRyYWlsaW5nLWljb24taG92ZXItb3BhY2l0eSxcbiAgJGZvY3VzLW9wYWNpdHk6ICRtZGMtY2hpcC10cmFpbGluZy1pY29uLWZvY3VzLW9wYWNpdHkpIHtcbiAgLm1kYy1jaGlwX19pY29uLS10cmFpbGluZyB7XG4gICAgY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG9wYWNpdHkpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkaG92ZXItb3BhY2l0eSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkZm9jdXMtb3BhY2l0eSk7XG4gICAgfVxuICB9XG59XG5cbi8vIEZvciBjdXN0b21pemluZyBpY29uIHNpemUsIHdlIG5lZWQgdG8gaW5jcmVhc2Ugc3BlY2lmaXR5IHRvIGVuc3VyZVxuLy8gb3ZlcnJpZGVzIGFwcGx5LiBTdHlsZXMgZGVmaW5lZCBpbiB0aGUgLm1hdGVyaWFsLWljb25zIENTUyBjbGFzcyBhcmVcbi8vIGxvYWRlZCBzZXBhcmF0ZWx5LCBzbyB0aGUgb3JkZXIgb2YgQ1NTIGRlZmluaXRpb25zIGlzIG5vdCBndWFyYW50ZWVkLlxuXG5AbWl4aW4gbWRjLWNoaXAtbGVhZGluZy1pY29uLXNpemUoJHNpemUpIHtcbiAgLm1kYy1jaGlwX19pY29uLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nOm5vdCgubWRjLWNoaXBfX2ljb24tLWxlYWRpbmctaGlkZGVuKSB7XG4gICAgQGluY2x1ZGUgbWRjLWNoaXAtaWNvbi1zaXplXygkc2l6ZSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLXRyYWlsaW5nLWljb24tc2l6ZSgkc2l6ZSkge1xuICAubWRjLWNoaXBfX2ljb24ubWRjLWNoaXBfX2ljb24tLXRyYWlsaW5nIHtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1pY29uLXNpemVfKCRzaXplKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoaXAtaWNvbi1zaXplXygkc2l6ZSkge1xuICB3aWR0aDogJHNpemU7XG4gIGhlaWdodDogJHNpemU7XG4gIGZvbnQtc2l6ZTogJHNpemU7XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1sZWFkaW5nLWljb24tbWFyZ2luKFxuICAkdG9wOiAkbWRjLWNoaXAtbGVhZGluZy1pY29uLW1hcmdpbi10b3AsXG4gICRyaWdodDogJG1kYy1jaGlwLWxlYWRpbmctaWNvbi1tYXJnaW4tcmlnaHQsXG4gICRib3R0b206ICRtZGMtY2hpcC1sZWFkaW5nLWljb24tbWFyZ2luLWJvdHRvbSxcbiAgJGxlZnQ6ICRtZGMtY2hpcC1sZWFkaW5nLWljb24tbWFyZ2luLWxlZnQpIHtcbiAgJi5tZGMtY2hpcC0tc2VsZWN0ZWQgLm1kYy1jaGlwX19jaGVja21hcmssXG4gIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZzpub3QoLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nLWhpZGRlbikge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgJGxlZnQsICRyaWdodCk7XG5cbiAgICBtYXJnaW4tdG9wOiAkdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRib3R0b207XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLXRyYWlsaW5nLWljb24tbWFyZ2luKFxuICAkdG9wOiAkbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1tYXJnaW4tdG9wLFxuICAkcmlnaHQ6ICRtZGMtY2hpcC10cmFpbGluZy1pY29uLW1hcmdpbi1yaWdodCxcbiAgJGJvdHRvbTogJG1kYy1jaGlwLXRyYWlsaW5nLWljb24tbWFyZ2luLWJvdHRvbSxcbiAgJGxlZnQ6ICRtZGMtY2hpcC10cmFpbGluZy1pY29uLW1hcmdpbi1sZWZ0KSB7XG4gIC5tZGMtY2hpcF9faWNvbi0tdHJhaWxpbmcge1xuICAgIG1hcmdpbjogJHRvcCAkcmlnaHQgJGJvdHRvbSAkbGVmdDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoaXAtZWxldmF0aW9uLXRyYW5zaXRpb24oKSB7XG4gIHRyYW5zaXRpb246IG1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbi12YWx1ZSgpO1xuXG4gICYubWRjLWNoaXAtLWV4aXQge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tdmFsdWUoKSxcbiAgICAgICRtZGMtY2hpcC1leGl0LXRyYW5zaXRpb247XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vLi4vYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG5Aa2V5ZnJhbWVzIG1kYy1jaGlwLWVudHJ5IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguOCk7XG4gICAgb3BhY2l0eTogLjQ7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5tZGMtY2hpcC1zZXQge1xuICBAaW5jbHVkZSBtZGMtY2hpcC1zZXQtc3BhY2luZyg4cHgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm1kYy1jaGlwLXNldC0taW5wdXQgLm1kYy1jaGlwIHtcbiAgYW5pbWF0aW9uOiBtZGMtY2hpcC1lbnRyeSAxMDBtcyAkbWRjLWFuaW1hdGlvbi1kZWNlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vZWxldmF0aW9uL21peGluc1wiO1xuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9zaGFwZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS92YXJpYWJsZXNcIjsgLy8gZm9yIG1kYy10aGVtZS1wcm9wLXZhbHVlXG5AaW1wb3J0IFwiLi4vdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLWRpYWxvZy1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgZGlhbG9nXG5cbiAgLm1kYy1kaWFsb2csXG4gIC5tZGMtZGlhbG9nX19zY3JpbSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2cge1xuICAgIEBpbmNsdWRlIG1kYy1kaWFsb2ctY29udGFpbmVyLWZpbGwtY29sb3Ioc3VyZmFjZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1kaWFsb2ctc2NyaW0tY29sb3IoJG1kYy1kaWFsb2ctc2NyaW0tY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtZGlhbG9nLXRpdGxlLWluay1jb2xvcigkbWRjLWRpYWxvZy10aXRsZS1pbmstY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtZGlhbG9nLWNvbnRlbnQtaW5rLWNvbG9yKCRtZGMtZGlhbG9nLWNvbnRlbnQtaW5rLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWRpYWxvZy1zY3JvbGwtZGl2aWRlci1jb2xvcigkbWRjLWRpYWxvZy1zY3JvbGwtZGl2aWRlci1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1kaWFsb2ctbWluLXdpZHRoKCRtZGMtZGlhbG9nLW1pbi13aWR0aCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1kaWFsb2ctbWF4LXdpZHRoKCRtZGMtZGlhbG9nLW1heC13aWR0aCwgJG1kYy1kaWFsb2ctbWFyZ2luLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWRpYWxvZy1tYXgtaGVpZ2h0KG51bGwsICRtZGMtZGlhbG9nLW1hcmdpbiwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1kaWFsb2ctc2hhcGUtcmFkaXVzKG1lZGl1bSwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIFVzZSBgZGlzcGxheTogbm9uZWAgaW5zdGVhZCBvZiBgdmlzaWJpbGl0eTogaGlkZGVuYCB0byBhdm9pZCByZWNhbGN1bGF0aW5nIGxheW91dCB3aGVuIHRoZSBkaWFsb2cgaXMgY2xvc2VkLlxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHotaW5kZXg6ICRtZGMtZGlhbG9nLXotaW5kZXg7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2dfX3NjcmltIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoaXMgd3JhcHBlciBlbGVtZW50IGlzIG5lZWRlZCB0byBtYWtlIG1heC1oZWlnaHQgd29yayBpbiBJRSAxMS5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MvaXNzdWVzLzIxNlxuICAubWRjLWRpYWxvZ19fY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IC8vIElFIDExXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgLy8gRW5zdXJlIFNhZmFyaSBjZW50ZXJzIHRoZSBkaWFsb2cgKGJlY2F1c2UgaXQgdHJlYXRzIHRoZSBjb250YWluZXIncyB3aWR0aCBvZGRseSlcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKC44KTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oMjQsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGZsZXgtZ3JvdzogMDsgLy8gSUUgMTFcbiAgICAgIGZsZXgtc2hyaW5rOiAwOyAvLyBJRSAxMVxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgLy8gSUUgMTFcbiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7IC8vIElFIDExXG5cbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwoXCIubWRjLWRpYWxvZ1wiKSB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtZGlhbG9nX190aXRsZSB7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKDQwcHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShoZWFkbGluZTYsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDAgMjRweCAkbWRjLWRpYWxvZy10aXRsZS1ib3R0b20tcGFkZGluZztcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgICAgQGluY2x1ZGUgbWRjLXJ0bChcIi5tZGMtZGlhbG9nXCIpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fdGl0bGUge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBBZGp1c3QgYm90dG9tIHBhZGRpbmcgdG8gbWFrZSB0aXRsZSBoZWlnaHQgYWxpZ24gdG8gc3BlYyB3aGVuIGRpdmlkZXIgaXMgcHJlc2VudC5cbiAgICAgIC8vIChUaXRsZXMgZm9yIGFsZXJ0IGRpYWxvZ3Mgdy9vIGRpdmlkZXJzIGFsaWduIGJhc2VkIG9uIHRleHQgYmFzZWxpbmUuIEFsbCBzcGVjIHZhbHVlcyBhcmUgZGl2aXNpYmxlIGJ5IDQuKVxuICAgICAgcGFkZGluZy1ib3R0b206ICRtZGMtZGlhbG9nLXRpdGxlLWJvdHRvbS1wYWRkaW5nICsgNnB4O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZGlhbG9nX19jb250ZW50IHtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShib2R5MSwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAyMHB4IDI0cHg7IC8vIE5vdGU6IHRoZSB0b3AgcGFkZGluZyBpcyBvbmx5IDIwcHggZm9yIGRpYWxvZ3Mgd2l0aG91dCB0aXRsZXM7IHNlZSBiZWxvdyBmb3Igb3ZlcnJpZGVcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIH1cblxuICAgIC8vIFRoZSBjb250ZW50IGVsZW1lbnQgYWxyZWFkeSBoYXMgdG9wL2JvdHRvbSBwYWRkaW5nLCBzbyB3ZSBuZWVkIHRvIHN1cHByZXNzIG1hcmdpbnMgb24gaXRzIGZpcnN0L2xhc3QgY2hpbGRyZW4uXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGUgY29udGVudCBlbGVtZW50IGFscmVhZHkgaGFzIHRvcC9ib3R0b20gcGFkZGluZywgc28gd2UgbmVlZCB0byBzdXBwcmVzcyBtYXJnaW5zIG9uIGl0cyBmaXJzdC9sYXN0IGNoaWxkcmVuLlxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gIC5tZGMtZGlhbG9nX190aXRsZSArIC5tZGMtZGlhbG9nX19jb250ZW50IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gRWxpbWluYXRlIHBhZGRpbmcgdG8gYnJpbmcgYXMgY2xvc2UgdG8gc3BlYyBhcyBwb3NzaWJsZSwgcmVseWluZyBvbiB0aXRsZSBwYWRkaW5nLlxuICAgICAgLy8gKFNwZWMgc2VlbXMgaW5jb25zaXN0ZW50IFJFIHRpdGxlL2JvZHkgc3BhY2luZyBvbiBhbGVydCB2cy4gc2ltcGxlIHZhcmlhbnRzLilcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbiAgLm1kYy1kaWFsb2ctLXNjcm9sbGFibGUgLm1kYy1kaWFsb2dfX2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBSZWR1Y2UgYW5kIGVxdWFsaXplIHZlcnRpY2FsIHBhZGRpbmdzIHdoZW4gc2Nyb2xsYWJsZSBkaXZpZGVycyBhcmUgcHJlc2VudFxuICAgICAgLy8gKE5vdGU6IHRoaXMgaXMgaW50ZW50aW9uYWxseSBhZnRlciB0aXRsZSArIGNvbnRlbnQgdG8gdGFrZSBwcmVjZWRlbmNlKVxuICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAubWRjLWRpYWxvZ19fY29udGVudCAubWRjLWxpc3Q6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIE92ZXJyaWRlIGRlZmF1bHQgLm1kYy1saXN0IHBhZGRpbmcgZm9yIGNvbnRlbnQgY29uc2lzdGluZyBleGNsdXNpdmVseSBvZiBhIE1EQyBMaXN0XG4gICAgICBwYWRkaW5nOiA2cHggMCAwOyAvLyBUb3AgcGFkZGluZyBiYWxhbmNlcyB3aXRoIHRpdGxlIGhlaWdodFxuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm4sIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eVxuICAubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fY29udGVudCAubWRjLWxpc3Q6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIE92ZXJyaWRlIGRlZmF1bHQgLm1kYy1saXN0IHBhZGRpbmcgZm9yIGNvbnRlbnQgY29uc2lzdGluZyBleGNsdXNpdmVseSBvZiBhIE1EQyBMaXN0XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZGlhbG9nX19hY3Rpb25zIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgbWluLWhlaWdodDogNTJweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAubWRjLWRpYWxvZy0tc3RhY2tlZCAmIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZ19fYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgOHB4KTtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIGxlZnQsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIFByZXZlbnQgbG9uZyB0ZXh0IGZyb20gb3ZlcmZsb3dpbmcgcGFyZW50IGVsZW1lbnQgaW4gSUUgMTFcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICBAaW5jbHVkZSBtZGMtcnRsKFwiLm1kYy1kaWFsb2dcIikge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtZGlhbG9nLS1zdGFja2VkICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZy0tb3BlbixcbiAgLm1kYy1kaWFsb2ctLW9wZW5pbmcsXG4gIC5tZGMtZGlhbG9nLS1jbG9zaW5nIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZy0tb3BlbmluZyB7XG4gICAgLm1kYy1kaWFsb2dfX3NjcmltIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtZGlhbG9nX19jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSA3NW1zIGxpbmVhciwgbWRjLWFuaW1hdGlvbi1lbnRlcih0cmFuc2Zvcm0sIDE1MG1zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZy0tY2xvc2luZyB7XG4gICAgLm1kYy1kaWFsb2dfX3NjcmltLFxuICAgIC5tZGMtZGlhbG9nX19jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSA3NW1zIGxpbmVhcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWRpYWxvZ19fY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIC8vIERpYWxvZyBjb250YWluZXIgc2NhbGVzIHVwIHdoaWxlIG9wZW5pbmcsIGJ1dCBzaG91bGQgcmVtYWluIHNjYWxlZCB1cCB3aGlsZSBjbG9zaW5nXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2ctLW9wZW4ge1xuICAgIC5tZGMtZGlhbG9nX19zY3JpbSB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtZGlhbG9nX19jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxuXG4gIC8vIENsYXNzIGFwcGxpZWQgdG8gYm9keSB3aGlsZSBkaWFsb2cgaXMgb3BlbiwgdG8gcHJldmVudCBzY3JvbGxpbmcgYmVoaW5kIHRoZSBkaWFsb2dcbiAgLm1kYy1kaWFsb2ctc2Nyb2xsLWxvY2sge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRpYWxvZy1jb250YWluZXItZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtZGlhbG9nLXNjcmltLWNvbG9yKCRjb2xvciwgJG9wYWNpdHk6ICRtZGMtZGlhbG9nLXNjcmltLW9wYWNpdHksICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1kaWFsb2dfX3NjcmltIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRvcGFjaXR5KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1kaWFsb2ctdGl0bGUtaW5rLWNvbG9yKCRjb2xvciwgJG9wYWNpdHk6ICRtZGMtZGlhbG9nLXRpdGxlLWluay1vcGFjaXR5LCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtZGlhbG9nX190aXRsZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG9wYWNpdHkpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRpYWxvZy1jb250ZW50LWluay1jb2xvcigkY29sb3IsICRvcGFjaXR5OiAkbWRjLWRpYWxvZy1jb250ZW50LWluay1vcGFjaXR5LCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtZGlhbG9nX19jb250ZW50IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBjb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkb3BhY2l0eSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtZGlhbG9nLXNjcm9sbC1kaXZpZGVyLWNvbG9yKFxuICAkY29sb3IsXG4gICRvcGFjaXR5OiAkbWRjLWRpYWxvZy1zY3JvbGwtZGl2aWRlci1vcGFjaXR5LFxuICAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpXG4pIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgJi5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX190aXRsZSxcbiAgJi5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX19hY3Rpb25zIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBib3JkZXItY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG9wYWNpdHkpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRpYWxvZy1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRpYWxvZy1taW4td2lkdGgoJG1pbi13aWR0aCwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtZGlhbG9nX19zdXJmYWNlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbWluLXdpZHRoOiAkbWluLXdpZHRoO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRpYWxvZy1tYXgtd2lkdGgoJG1heC13aWR0aCwgJG1hcmdpbiwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkbWF4LXNpemUtY2FsYy1leHByOiBjYWxjKDEwMHZ3IC0gI3skbWFyZ2luICogMn0pO1xuXG4gIC5tZGMtZGlhbG9nX19zdXJmYWNlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGlmICRtYXgtd2lkdGgge1xuICAgICAgICAkbWF4LXdpZHRoLWJyZWFrcG9pbnQ6ICRtYXgtd2lkdGggKyAoJG1hcmdpbiAqIDIpO1xuXG4gICAgICAgIC8vIEZpdCBzbnVnbHkgd2l0aGluIHRoZSB2aWV3cG9ydCBhdCBzbWFsbGVyIHNjcmVlbiBzaXplcy5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgtd2lkdGgtYnJlYWtwb2ludCkge1xuICAgICAgICAgIG1heC13aWR0aDogJG1heC1zaXplLWNhbGMtZXhwcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9uY2UgdGhlIHNjcmVlbiBnZXRzIGJpZyBlbm91Z2gsIGFwcGx5IGEgZml4ZWQgbWF4aW11bSB3aWR0aC5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtYXgtd2lkdGgtYnJlYWtwb2ludCkge1xuICAgICAgICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIG1heC13aWR0aDogJG1heC1zaXplLWNhbGMtZXhwcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1kaWFsb2ctbWF4LWhlaWdodCgkbWF4LWhlaWdodCwgJG1hcmdpbiwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkbWF4LXNpemUtY2FsYy1leHByOiBjYWxjKDEwMHZoIC0gI3skbWFyZ2luICogMn0pO1xuXG4gIC5tZGMtZGlhbG9nX19zdXJmYWNlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGlmICRtYXgtaGVpZ2h0IHtcbiAgICAgICAgJG1heC1oZWlnaHQtYnJlYWtwb2ludDogJG1heC1oZWlnaHQgKyAoJG1hcmdpbiAqIDIpO1xuXG4gICAgICAgIC8vIEZpdCBzbnVnbHkgd2l0aGluIHRoZSB2aWV3cG9ydCBhdCBzbWFsbGVyIHNjcmVlbiBzaXplcy5cbiAgICAgICAgQG1lZGlhIChtYXgtaGVpZ2h0OiAkbWF4LWhlaWdodC1icmVha3BvaW50KSB7XG4gICAgICAgICAgbWF4LWhlaWdodDogJG1heC1zaXplLWNhbGMtZXhwcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9uY2UgdGhlIHNjcmVlbiBnZXRzIGJpZyBlbm91Z2gsIGFwcGx5IGEgZml4ZWQgbWF4aW11bSBoZWlnaHQuXG4gICAgICAgIEBtZWRpYSAobWluLWhlaWdodDogJG1heC1oZWlnaHQtYnJlYWtwb2ludCkge1xuICAgICAgICAgIG1heC1oZWlnaHQ6ICRtYXgtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgbWF4LWhlaWdodDogJG1heC1zaXplLWNhbGMtZXhwcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4kbWRjLWRpYWxvZy1zY3JpbS1jb2xvcjogb24tc3VyZmFjZSAhZGVmYXVsdDtcbiRtZGMtZGlhbG9nLXRpdGxlLWluay1jb2xvcjogb24tc3VyZmFjZSAhZGVmYXVsdDtcbiRtZGMtZGlhbG9nLWNvbnRlbnQtaW5rLWNvbG9yOiBvbi1zdXJmYWNlICFkZWZhdWx0O1xuJG1kYy1kaWFsb2ctc2Nyb2xsLWRpdmlkZXItY29sb3I6IG9uLXN1cmZhY2UgIWRlZmF1bHQ7XG5cbiRtZGMtZGlhbG9nLXNjcmltLW9wYWNpdHk6IC4zMiAhZGVmYXVsdDtcbiRtZGMtZGlhbG9nLXRpdGxlLWluay1vcGFjaXR5OiAuODcgIWRlZmF1bHQ7XG4kbWRjLWRpYWxvZy1jb250ZW50LWluay1vcGFjaXR5OiAuNiAhZGVmYXVsdDtcbiRtZGMtZGlhbG9nLXNjcm9sbC1kaXZpZGVyLW9wYWNpdHk6IC4xMiAhZGVmYXVsdDtcblxuJG1kYy1kaWFsb2ctbWluLXdpZHRoOiAyODBweCAhZGVmYXVsdDtcbiRtZGMtZGlhbG9nLW1heC13aWR0aDogNTYwcHggIWRlZmF1bHQ7XG4kbWRjLWRpYWxvZy1tYXJnaW46IDE2cHggIWRlZmF1bHQ7XG4kbWRjLWRpYWxvZy10aXRsZS1ib3R0b20tcGFkZGluZzogOXB4ICFkZWZhdWx0O1xuXG4kbWRjLWRpYWxvZy16LWluZGV4OiA3ICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90eXBvZ3JhcGh5L21peGluc1wiO1xuQGltcG9ydCBcIi4uL3R5cG9ncmFwaHkvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBkcmF3ZXJcblxuLm1kYy1kcmF3ZXIge1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLXRpdGxlLWluay1jb2xvcigkbWRjLWRyYXdlci10aXRsZS1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLXN1YnRpdGxlLWluay1jb2xvcigkbWRjLWRyYXdlci1zdWJ0aXRsZS1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLWJvcmRlci1jb2xvcigkbWRjLWRyYXdlci1kaXZpZGVyLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1zdXJmYWNlLWZpbGwtY29sb3IoJG1kYy1kcmF3ZXItc3VyZmFjZS1maWxsLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1pdGVtLWljb24taW5rLWNvbG9yKCRtZGMtZHJhd2VyLWl0ZW0taW5hY3RpdmUtaW5rLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1pdGVtLXRleHQtaW5rLWNvbG9yKCRtZGMtZHJhd2VyLWl0ZW0taW5hY3RpdmUtaW5rLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1pdGVtLWFjdGl2YXRlZC1pY29uLWluay1jb2xvcigkbWRjLWRyYXdlci1pdGVtLWFjdGl2YXRlZC1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLWl0ZW0tYWN0aXZhdGVkLXRleHQtaW5rLWNvbG9yKCRtZGMtZHJhd2VyLWl0ZW0tYWN0aXZhdGVkLWluay1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1kcmF3ZXItc2hhcGUtcmFkaXVzKGxhcmdlKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1pdGVtLXNoYXBlLXJhZGl1cyg0cHgpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLXotaW5kZXgoJG1kYy1kcmF3ZXItei1pbmRleCk7XG4gIEBpbmNsdWRlIG1kYy1kcmF3ZXItd2lkdGgoJG1kYy1kcmF3ZXItd2lkdGgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgLyogQG5vZmxpcCAqL1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDFweDtcbiAgLyogQG5vZmxpcCAqL1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogbm9uZTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBpZ25vcmVcbiAgLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KHN1YnRpdGxlMik7XG5cbiAgICBoZWlnaHQ6IGNhbGMoNDhweCAtIDIgKiAjeyRtZGMtZHJhd2VyLWxpc3QtaXRlbS1zcGFjaW5nfSk7XG4gICAgLy8gVG8gYWNjb21vZGF0ZSBtYXJnaW4gY29uZmxpY3QuXG4gICAgbWFyZ2luOiAoJG1kYy1kcmF3ZXItbGlzdC1pdGVtLXNwYWNpbmcgKiAyKSA4cHg7XG4gICAgcGFkZGluZzogMCAkbWRjLWRyYXdlci1zdXJmYWNlLXBhZGRpbmcgLyAyO1xuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBpZ25vcmVcbiAgLm1kYy1saXN0LWl0ZW06bnRoLWNoaWxkKDEpIHtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuICAubWRjLWxpc3QtaXRlbTpudGgtbGFzdC1jaGlsZCgxKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogaWdub3JlXG4gIC5tZGMtbGlzdC1ncm91cF9fc3ViaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShib2R5Mik7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKDI0cHgpO1xuXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgJG1kYy1kcmF3ZXItc3VyZmFjZS1wYWRkaW5nO1xuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBpZ25vcmVcbiAgLm1kYy1saXN0LWRpdmlkZXIge1xuICAgIG1hcmdpbjogM3B4IDAgNHB4IDA7XG4gIH1cblxuICAvLyBQcmV2ZW50cyBsaXN0IGl0ZW0gY2hpbGRyZW4gZnJvbSBiZWluZyBpbmNsdWRlZCBpbiB0aGUgY2xpY2sgdGFyZ2V0LlxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuICAubWRjLWxpc3QtaXRlbV9fdGV4dCxcbiAgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG59XG5cbi5tZGMtZHJhd2VyLS1hbmltYXRlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcblxuICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIH1cbn1cblxuLm1kYy1kcmF3ZXItLW9wZW5pbmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRtZGMtZHJhd2VyLWFuaW1hdGlvbi1lbnRlcjtcblxuICAvLyBSZXF1aXJlZCB0byBsZXZlbCB0aGUgc3BlY2lmaWNpdHkgd2l0aCBhbmltYXRlIGNsYXNzLlxuICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cblxuLm1kYy1kcmF3ZXItLWNsb3Npbmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkbWRjLWRyYXdlci1hbmltYXRpb24tZXhpdDtcblxuICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIH1cbn1cblxuLm1kYy1kcmF3ZXJfX2hlYWRlciB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiA2NHB4OyAvLyBzYW1lIGFzICRtZGMtdG9wLWFwcC1iYXItcm93LWhlaWdodFxuICBwYWRkaW5nOiAwICRtZGMtZHJhd2VyLXN1cmZhY2UtcGFkZGluZyA0cHg7XG59XG5cbi5tZGMtZHJhd2VyX190aXRsZSB7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGhlYWRsaW5lNik7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXRvcCgzNnB4KTtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtYm90dG9tKDIwcHgpO1xufVxuXG4ubWRjLWRyYXdlcl9fc3VidGl0bGUge1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShib2R5Mik7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXRvcCgyMHB4KTtcblxuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubWRjLWRyYXdlcl9fY29udGVudCB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9saXN0L21peGluc1wiO1xuQGltcG9ydCBcIi4uL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9zaGFwZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLWRyYXdlci1hY3RpdmF0ZWQtb3ZlcmxheS1jb2xvcigkY29sb3IpIHtcbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbSB7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1hY3RpdmF0ZWQoJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRyYXdlci1ib3JkZXItY29sb3IoJGNvbG9yKSB7XG4gICR2YWx1ZTogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkbWRjLWRyYXdlci1kaXZpZGVyLW9wYWNpdHkpO1xuXG4gIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgJHZhbHVlKTtcbn1cblxuQG1peGluIG1kYy1kcmF3ZXItaXRlbS1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IHRydWUpIHtcbiAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmUpO1xufVxuXG5AbWl4aW4gbWRjLWRyYXdlci1zaGFwZS1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgbGVuZ3RoKCRyYWRpdXMpID4gMiB7XG4gICAgQGVycm9yIFwiSW52YWxpZCByYWRpdXM6ICcjeyRyYWRpdXN9JyBjb21wb25lbnQgZG9lc24ndCBhbGxvdyBjdXN0b21pemluZyBhbGwgY29ybmVyc1wiO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkcmFkaXVzKSA9PSAyIHtcbiAgICAkcmFkaXVzOiAwIG50aCgkcmFkaXVzLCAxKSBudGgoJHJhZGl1cywgMikgMDtcbiAgfSBAZWxzZSB7XG4gICAgJHJhZGl1czogMCAkcmFkaXVzICRyYWRpdXMgMDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IHRydWUpO1xufVxuXG5AbWl4aW4gbWRjLWRyYXdlci1kaXZpZGVyLWNvbG9yKCRjb2xvcikge1xuICAkdmFsdWU6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG1kYy1kcmF3ZXItZGl2aWRlci1vcGFjaXR5KTtcblxuICBAaW5jbHVkZSBtZGMtbGlzdC1kaXZpZGVyLWNvbG9yKCR2YWx1ZSk7XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLXRpdGxlLWluay1jb2xvcigkY29sb3IpIHtcbiAgJHZhbHVlOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRtZGMtZHJhd2VyLXRpdGxlLWluay1vcGFjaXR5KTtcblxuICAubWRjLWRyYXdlcl9fdGl0bGUge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkdmFsdWUpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLXN1YnRpdGxlLWluay1jb2xvcigkY29sb3IpIHtcbiAgJHZhbHVlOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRtZGMtZHJhd2VyLXN1YnRpdGxlLWluay1vcGFjaXR5KTtcblxuICBAaW5jbHVkZSBtZGMtbGlzdC1ncm91cC1zdWJoZWFkZXItaW5rLWNvbG9yKCR2YWx1ZSk7XG5cbiAgLm1kYy1kcmF3ZXJfX3N1YnRpdGxlIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJHZhbHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRyYXdlci1maWxsLWNvbG9yLWFjY2Vzc2libGUoJGNvbG9yKSB7XG4gICRhY2Nlc3NpYmxlQ29sb3I6IG1kYy10aGVtZS1hY2Nlc3NpYmxlLWluay1jb2xvcigkY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy1kcmF3ZXItdGl0bGUtaW5rLWNvbG9yKCRhY2Nlc3NpYmxlQ29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLXN1YnRpdGxlLWluay1jb2xvcigkYWNjZXNzaWJsZUNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1pdGVtLXRleHQtaW5rLWNvbG9yKCRhY2Nlc3NpYmxlQ29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLWl0ZW0taWNvbi1pbmstY29sb3IoJGFjY2Vzc2libGVDb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1kcmF3ZXItc3VyZmFjZS1maWxsLWNvbG9yKCRjb2xvcik7XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLWl0ZW0taWNvbi1pbmstY29sb3IoJGNvbG9yKSB7XG4gICR2YWx1ZTogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkbWRjLWRyYXdlci1pdGVtLWluYWN0aXZlLWljb24taW5rLW9wYWNpdHkpO1xuXG4gIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0tZ3JhcGhpYy1pbmstY29sb3IoJHZhbHVlKTtcbn1cblxuQG1peGluIG1kYy1kcmF3ZXItaXRlbS1hY3RpdmF0ZWQtaWNvbi1pbmstY29sb3IoJGNvbG9yKSB7XG4gICR2YWx1ZTogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkbWRjLWRyYXdlci1pdGVtLWFjdGl2ZS1pY29uLWluay1vcGFjaXR5KTtcblxuICAubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLWdyYXBoaWMtaW5rLWNvbG9yKCR2YWx1ZSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1kcmF3ZXItaXRlbS1hY3RpdmF0ZWQtdGV4dC1pbmstY29sb3IoJGNvbG9yKSB7XG4gICR2YWx1ZTogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkbWRjLWRyYXdlci1pdGVtLWFjdGl2ZS10ZXh0LWluay1vcGFjaXR5KTtcblxuICAubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLXByaW1hcnktdGV4dC1pbmstY29sb3IoJHZhbHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRyYXdlci1pdGVtLXRleHQtaW5rLWNvbG9yKCRjb2xvcikge1xuICAkdmFsdWU6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG1kYy1kcmF3ZXItaXRlbS1pbmFjdGl2ZS10ZXh0LWluay1vcGFjaXR5KTtcblxuICAubWRjLWxpc3QtaXRlbSB7XG4gICAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1wcmltYXJ5LXRleHQtaW5rLWNvbG9yKCR2YWx1ZSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1kcmF3ZXItc3VyZmFjZS1maWxsLWNvbG9yKCRjb2xvcikge1xuICAkdmFsdWU6IG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJHZhbHVlKTtcbn1cblxuQG1peGluIG1kYy1kcmF3ZXItc2NyaW0tZmlsbC1jb2xvcigkY29sb3IpIHtcbiAgJHZhbHVlOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRtZGMtZHJhd2VyLW1vZGFsLXNjcmltLW9wYWNpdHkpO1xuXG4gICsgLm1kYy1kcmF3ZXItc2NyaW0ge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICR2YWx1ZSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1kcmF3ZXItei1pbmRleCgkdmFsdWUpIHtcbiAgei1pbmRleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbWRjLWRyYXdlci13aWR0aCgkd2lkdGgpIHtcbiAgd2lkdGg6ICR3aWR0aDtcblxuICAmLm1kYy1kcmF3ZXItLW9wZW46bm90KC5tZGMtZHJhd2VyLS1jbG9zaW5nKSArIC5tZGMtZHJhd2VyLWFwcC1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCAkd2lkdGgpO1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL3RoZW1lL3ZhcmlhYmxlc1wiO1xuXG4vLyBDb2xvcnNcbiRtZGMtZHJhd2VyLXRpdGxlLWluay1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1zdWJ0aXRsZS1pbmstY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItaXRlbS1pbmFjdGl2ZS1pbmstY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItaXRlbS1hY3RpdmF0ZWQtaW5rLWNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShwcmltYXJ5KSAhZGVmYXVsdDtcbiRtZGMtZHJhd2VyLWRpdmlkZXItY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItc3VyZmFjZS1maWxsLWNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShzdXJmYWNlKSAhZGVmYXVsdDtcblxuLy8gT3BhY2l0eVxuJG1kYy1kcmF3ZXItdGl0bGUtaW5rLW9wYWNpdHk6IG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzKGhpZ2gpICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItc3VidGl0bGUtaW5rLW9wYWNpdHk6IG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzKG1lZGl1bSkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1pdGVtLWluYWN0aXZlLWljb24taW5rLW9wYWNpdHk6IG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzKG1lZGl1bSkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1pdGVtLWluYWN0aXZlLXRleHQtaW5rLW9wYWNpdHk6IG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzKGhpZ2gpICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItaXRlbS1hY3RpdmUtaWNvbi1pbmstb3BhY2l0eTogMSAhZGVmYXVsdDtcbiRtZGMtZHJhd2VyLWl0ZW0tYWN0aXZlLXRleHQtaW5rLW9wYWNpdHk6IG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzKGhpZ2gpICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItZGl2aWRlci1vcGFjaXR5OiAuMTIgIWRlZmF1bHQ7XG5cbi8vIFdpZHRoc1xuJG1kYy1kcmF3ZXItd2lkdGg6IDI1NnB4ICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItbGlzdC1pdGVtLXNwYWNpbmc6IDRweCAhZGVmYXVsdDtcbiRtZGMtZHJhd2VyLXN1cmZhY2UtcGFkZGluZzogMTZweCAhZGVmYXVsdDtcblxuLy8gQW5pbWF0aW9uc1xuJG1kYy1kcmF3ZXItYW5pbWF0aW9uLWVudGVyOiAyNTBtcyAhZGVmYXVsdDtcbiRtZGMtZHJhd2VyLWFuaW1hdGlvbi1leGl0OiAyMDBtcyAhZGVmYXVsdDtcblxuLy8gU2NyaW1cbiRtZGMtZHJhd2VyLW1vZGFsLXNjcmltLWNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSAhZGVmYXVsdDtcbiRtZGMtZHJhd2VyLW1vZGFsLXNjcmltLW9wYWNpdHk6IC4zMiAhZGVmYXVsdDtcblxuJG1kYy1kcmF3ZXItei1pbmRleDogNiAhZGVmYXVsdDtcbiRtZGMtZHJhd2VyLW1vZGFsLWVsZXZhdGlvbjogMTYgIWRlZmF1bHQ7XG4iLCIvLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxyXG4vL1xyXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XHJcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcclxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xyXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXHJcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xyXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxyXG4vL1xyXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxyXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cclxuLy9cclxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxyXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcclxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXHJcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcclxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcclxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxyXG4vLyBUSEUgU09GVFdBUkUuXHJcblxyXG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9zaGFwZS9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL3JpcHBsZS9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL3RoZW1lL2Z1bmN0aW9uc1wiO1xyXG5AaW1wb3J0IFwiLi4vdHlwb2dyYXBoeS9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL3R5cG9ncmFwaHkvdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcclxuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcclxuXHJcbi8vXHJcbi8vIFB1YmxpY1xyXG4vL1xyXG5cclxuQG1peGluIG1kYy1saXN0LWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcclxuICBAaW5jbHVkZSBtZGMtbGlzdC13aXRob3V0LXJpcHBsZSgkcXVlcnkpO1xyXG4gIEBpbmNsdWRlIG1kYy1saXN0LXJpcHBsZSgkcXVlcnkpO1xyXG59XHJcblxyXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXHJcbi8vIGxpc3Qgc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtbGlzdC1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cclxuQG1peGluIG1kYy1saXN0LXdpdGhvdXQtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcclxuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcclxuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xyXG4gICRmZWF0LXR5cG9ncmFwaHk6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCB0eXBvZ3JhcGh5KTtcclxuXHJcbiAgJGl0ZW0tcHJpbWFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodDogMzJweDtcclxuICAkaXRlbS1zZWNvbmRhcnktdGV4dC1iYXNlbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgJGRlbnNlLWl0ZW0tcHJpbWFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodDogMjRweDtcclxuICAkZGl2aWRlci1jb2xvcjogaWYoXHJcbiAgICBtZGMtdGhlbWUtdG9uZSgkbWRjLXRoZW1lLWJhY2tncm91bmQpID09IFwiZGFya1wiLFxyXG4gICAgJG1kYy1saXN0LWRpdmlkZXItY29sb3Itb24tZGFyay1iZyxcclxuICAgICRtZGMtbGlzdC1kaXZpZGVyLWNvbG9yLW9uLWxpZ2h0LWJnXHJcbiAgKTtcclxuXHJcbiAgLm1kYy1saXN0IHtcclxuICAgIEBpbmNsdWRlIG1kYy1saXN0LWJhc2VfKCRxdWVyeSk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLXNlY29uZGFyeS10ZXh0LWluay1jb2xvcih0ZXh0LXNlY29uZGFyeS1vbi1iYWNrZ3JvdW5kLCAkcXVlcnkpO1xyXG4gIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0tZ3JhcGhpYy1maWxsLWNvbG9yKHRyYW5zcGFyZW50LCAkcXVlcnkpO1xyXG4gIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0tZ3JhcGhpYy1pbmstY29sb3IodGV4dC1pY29uLW9uLWJhY2tncm91bmQsICRxdWVyeSk7XHJcbiAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1tZXRhLWluay1jb2xvcih0ZXh0LWhpbnQtb24tYmFja2dyb3VuZCwgJHF1ZXJ5KTtcclxuICBAaW5jbHVkZSBtZGMtbGlzdC1ncm91cC1zdWJoZWFkZXItaW5rLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCAkcXVlcnkpO1xyXG5cclxuICAubWRjLWxpc3QtLWRlbnNlIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA0cHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogLjgxMnJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZGMtbGlzdC1pdGVtIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0tYmFzZV87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBcIlNlbGVjdGVkXCIgaXMgZXBoZW1lcmFsIGFuZCBsaWtlbHkgdG8gY2hhbmdlIHNvb24uIEUuZy4sIHNlbGVjdGluZyBvbmUgb3IgbW9yZSBwaG90b3MgdG8gc2hhcmUgaW4gR29vZ2xlIFBob3Rvcy5cclxuICAvLyBcIkFjdGl2YXRlZFwiIGlzIG1vcmUgcGVybWFuZW50LiBFLmcuLCB0aGUgY3VycmVudGx5IGhpZ2hsaWdodGVkIG5hdmlnYXRpb24gZGVzdGluYXRpb24gaW4gYSBkcmF3ZXIuXHJcbiAgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkLFxyXG4gIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQge1xyXG4gICAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1wcmltYXJ5LXRleHQtaW5rLWNvbG9yKHByaW1hcnksICRxdWVyeSk7XHJcbiAgICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLWdyYXBoaWMtaW5rLWNvbG9yKHByaW1hcnksICRxdWVyeSk7XHJcbiAgfVxyXG5cclxuICAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQge1xyXG4gICAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1wcmltYXJ5LXRleHQtaW5rLWNvbG9yKHRleHQtZGlzYWJsZWQtb24tYmFja2dyb3VuZCwgJHF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1saXN0LWdyYXBoaWMtc2l6ZV8oMjRweCk7XHJcblxyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEV4dHJhIHNwZWNpZmljaXR5IGlzIHRvIG92ZXJyaWRlIC5tYXRlcmlhbC1pY29ucyBkaXNwbGF5IHN0eWxlIGlmIHVzZWQgaW5cclxuICAvLyBjb25qdW5jdGlvbiB3aXRoIG1kYy1saXN0LWl0ZW1fX2dyYXBoaWNcclxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cclxuICAubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIHN0eWxlbGludC1lbmFibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXHJcblxyXG4gIC5tZGMtbGlzdC1pdGVtX19tZXRhIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgYXV0bywgMCwgXCIubWRjLWxpc3QtaXRlbVwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZGMtbGlzdC1pdGVtX190ZXh0IHtcclxuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LW92ZXJmbG93LWVsbGlwc2lzKCRxdWVyeSk7XHJcbiAgfVxyXG5cclxuICAvLyBEaXNhYmxlIGludGVyYWN0aW9uIG9uIGxhYmVsIGVsZW1lbnRzIHRoYXQgbWF5IGF1dG9tYXRpY2FsbHlcclxuICAvLyB0b2dnbGUgY29ycmVzcG9uZGluZyBjaGVja2JveCAvIHJhZGlvIGlucHV0LlxyXG4gIC5tZGMtbGlzdC1pdGVtX190ZXh0W2Zvcl0ge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0IHtcclxuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LW92ZXJmbG93LWVsbGlwc2lzKCRxdWVyeSk7XHJcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS10b3AoJGl0ZW0tcHJpbWFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodCwgJHF1ZXJ5KTtcclxuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLWJvdHRvbSgkaXRlbS1zZWNvbmRhcnktdGV4dC1iYXNlbGluZS1oZWlnaHQsICRxdWVyeSk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXHJcbiAgICAubWRjLWxpc3QtLWRlbnNlICYge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS10b3AoJGRlbnNlLWl0ZW0tcHJpbWFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodCwgJHF1ZXJ5KTtcclxuICAgICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtYm90dG9tKCRpdGVtLXNlY29uZGFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodCwgJHF1ZXJ5KTtcclxuICAgIH1cclxuICAgIC8vIHN0eWxlbGludC1lbmFibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXHJcbiAgfVxyXG5cclxuICAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQge1xyXG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoYm9keTIsICRxdWVyeSk7XHJcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1vdmVyZmxvdy1lbGxpcHNpcygkcXVlcnkpO1xyXG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKCRpdGVtLXNlY29uZGFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodCwgJHF1ZXJ5KTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cclxuICAgIC5tZGMtbGlzdC0tZGVuc2UgJiB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXRvcCgkaXRlbS1zZWNvbmRhcnktdGV4dC1iYXNlbGluZS1oZWlnaHQsICRxdWVyeSk7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gc3R5bGVsaW50LWVuYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cclxuICB9XHJcblxyXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxyXG4gIC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW0ge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtbGlzdC1ncmFwaGljLXNpemVfKDIwcHgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1kYy1saXN0LS1hdmF0YXItbGlzdCAubWRjLWxpc3QtaXRlbSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICBoZWlnaHQ6IDU2cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWRjLWxpc3QtLWF2YXRhci1saXN0IC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1saXN0LWdyYXBoaWMtc2l6ZV8oNDBweCk7XHJcblxyXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWRjLWxpc3QtLXR3by1saW5lIC5tZGMtbGlzdC1pdGVtX190ZXh0IHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWRjLWxpc3QtLXR3by1saW5lIC5tZGMtbGlzdC1pdGVtIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIGhlaWdodDogNzJweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZGMtbGlzdC0tdHdvLWxpbmUubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtLFxyXG4gIC5tZGMtbGlzdC0tYXZhdGFyLWxpc3QubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIGhlaWdodDogNjBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZGMtbGlzdC0tYXZhdGFyLWxpc3QubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1saXN0LWdyYXBoaWMtc2l6ZV8oMzZweCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBPbmx5IGNoYW5nZSBtb3VzZSBjdXJzb3IgZm9yIGludGVyYWN0aXZlIGxpc3QgaXRlbXMgd2hpY2ggYXJlIG5vdCBkaXNhYmxlZC5cclxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIE92ZXJyaWRlIGFuY2hvciB0YWcgc3R5bGVzIGZvciB0aGUgdXNlLWNhc2Ugb2YgYSBsaXN0IGJlaW5nIHVzZWQgZm9yIG5hdmlnYXRpb25cclxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtdHlwZSxzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcclxuICBhLm1kYy1saXN0LWl0ZW0ge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1tYXgtdHlwZSxzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcclxuXHJcbiAgLm1kYy1saXN0LWRpdmlkZXIge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xyXG4gICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIE5vdGU6IGlkZWFsbHkgd2UnZCBiZSBhYmxlIHRvIGhvaXN0IHRoaXMgdG8gdGhlIHRvcC1sZXZlbCBgJGZlYXQtY29sb3JgLCBidXQgZG9pbmcgc29cclxuICAvLyB3aWxsIGNhdXNlIHRoZSBgYm9yZGVyYCBkZWNsYXJhdGlvbiBvbiBgLm1kYy1saXN0LWRpdmlkZXJgIGFib3ZlIHRvIG92ZXJyaWRlIGl0LlxyXG4gIEBpbmNsdWRlIG1kYy1saXN0LWRpdmlkZXItY29sb3IoJGRpdmlkZXItY29sb3IsICRxdWVyeSk7XHJcblxyXG4gIC5tZGMtbGlzdC1kaXZpZGVyLS1wYWRkZWQge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgLy8gTGVhdmUgZ2FwcyBvbiBlYWNoIHNpZGUgdG8gbWF0Y2ggdGhlIHBhZGRpbmcgb24gbGlzdCBpdGVtc1xyXG4gICAgICBtYXJnaW46IDAgJG1kYy1saXN0LXNpZGUtcGFkZGluZztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZGMtbGlzdC1kaXZpZGVyLS1pbnNldCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCAkbWRjLWxpc3QtdGV4dC1vZmZzZXQsIFwiLm1kYy1saXN0LWdyb3VwXCIpO1xyXG5cclxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JG1kYy1saXN0LXRleHQtb2Zmc2V0fSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWRjLWxpc3QtZGl2aWRlci0taW5zZXQubWRjLWxpc3QtZGl2aWRlci0tcGFkZGVkIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRtZGMtbGlzdC10ZXh0LW9mZnNldH0gLSAjeyRtZGMtbGlzdC1zaWRlLXBhZGRpbmd9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZGMtbGlzdC1ncm91cCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICAvLyBDYW5jZWwgdG9wL2JvdHRvbSBwYWRkaW5nIG9uIGluZGl2aWR1YWwgbGlzdHMgd2l0aGluIGdyb3VwXHJcbiAgICAgIC5tZGMtbGlzdCB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1kYy1saXN0LWdyb3VwX19zdWJoZWFkZXIge1xyXG4gICAgJG1kYy1saXN0LXN1YmhlYWRlci12aXJ0dWFsLWhlaWdodDogM3JlbTtcclxuICAgICRtZGMtbGlzdC1zdWJoZWFkZXItbGVhZGluZzogbWFwLWdldChtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1zdHlsZXMsIGJvZHkxKSwgbGluZS1oZWlnaHQpO1xyXG4gICAgJG1kYy1saXN0LXN1YmhlYWRlci1tYXJnaW46ICgkbWRjLWxpc3Qtc3ViaGVhZGVyLXZpcnR1YWwtaGVpZ2h0IC0gJG1kYy1saXN0LXN1YmhlYWRlci1sZWFkaW5nKSAvIDI7XHJcblxyXG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoc3VidGl0bGUxLCAkcXVlcnkpO1xyXG5cclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XHJcbiAgICAgIG1hcmdpbjogJG1kYy1saXN0LXN1YmhlYWRlci1tYXJnaW4gJG1kYy1saXN0LXNpZGUtcGFkZGluZztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcclxuLy8gbGlzdCBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1saXN0LWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxyXG5AbWl4aW4gbWRjLWxpc3QtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcclxuICBAaW5jbHVkZSBtZGMtcmlwcGxlLWNvbW1vbigkcXVlcnkpO1xyXG5cclxuICAvLyBMaXN0IGl0ZW1zIHNob3VsZCBzdXBwb3J0IHN0YXRlcyBieSBkZWZhdWx0LCBidXQgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIG9wdCBvdXQuXHJcbiAgLy8gRGlyZWN0IGNoaWxkIGNvbWJpbmF0b3IgaXMgbmVjZXNzYXJ5IGZvciBub24taW50ZXJhY3RpdmUgbW9kaWZpZXIgb24gcGFyZW50IHRvIG5vdFxyXG4gIC8vIG1hdGNoIHRoaXMgc2VsZWN0b3IuXHJcbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLWludGVyYWN0aXZlLXJpcHBsZV8oJHF1ZXJ5KTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtbGlzdC1pdGVtLXByaW1hcnktdGV4dC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XHJcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XHJcblxyXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcclxuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1saXN0LWl0ZW0tc2Vjb25kYXJ5LXRleHQtaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xyXG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xyXG5cclxuICAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtbGlzdC1pdGVtLWdyYXBoaWMtZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcclxuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcclxuXHJcbiAgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1saXN0LWl0ZW0tZ3JhcGhpYy1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XHJcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XHJcblxyXG4gIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLWxpc3QtaXRlbS1tZXRhLWluay1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcclxuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcclxuXHJcbiAgLm1kYy1saXN0LWl0ZW1fX21ldGEge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtbGlzdC1pdGVtLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcclxuICAubWRjLWxpc3QtaXRlbSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlLCAkcXVlcnk6ICRxdWVyeSk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLWxpc3QtZGl2aWRlci1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcclxuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcclxuXHJcbiAgLm1kYy1saXN0LWRpdmlkZXIge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItYm90dG9tLWNvbG9yLCAkY29sb3IpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1saXN0LWdyb3VwLXN1YmhlYWRlci1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XHJcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XHJcblxyXG4gIC5tZGMtbGlzdC1ncm91cF9fc3ViaGVhZGVyIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vL1xyXG4vLyBQcml2YXRlXHJcbi8vXHJcblxyXG5AbWl4aW4gbWRjLWxpc3QtYmFzZV8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xyXG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xyXG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XHJcbiAgJGZlYXQtdHlwb2dyYXBoeTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHR5cG9ncmFwaHkpO1xyXG5cclxuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShzdWJ0aXRsZTEsICRxdWVyeSk7XHJcblxyXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtdHlwb2dyYXBoeSkge1xyXG4gICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBtb2NrcyBhbmQgc3RpY2tlcnNoZWV0LCB0aGUgbGluZS1oZWlnaHQgaXNcclxuICAgIC8vIGFkanVzdGVkIHRvIDI0cHggZm9yIHRleHQgY29udGVudCwgc2FtZSBhcyBmb3IgYm9keTEuXHJcbiAgICAvKiBAYWx0ZXJuYXRlICovXHJcbiAgICBsaW5lLWhlaWdodDogbWFwLWdldChtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1zdHlsZXMsIGJvZHkxKSwgbGluZS1oZWlnaHQpO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDhweCAwO1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1wcmltYXJ5LXRleHQtaW5rLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCAkcXVlcnkpO1xyXG59XHJcblxyXG5AbWl4aW4gbWRjLWxpc3QtaXRlbS1iYXNlXyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgaGVpZ2h0OiA0OHB4O1xyXG4gIHBhZGRpbmc6IDAgJG1kYy1saXN0LXNpZGUtcGFkZGluZztcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAmOmZvY3VzIHtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBSaXBwbGUgc3R5bGVzIGZvciBhbiBpbnRlcmFjdGl2ZSBsaXN0IGl0ZW0gKG9uZSB0aGF0IGlzIGVuYWJsZWQgYW5kIGluc2lkZSBhbiBpbnRlcmFjdGl2ZSBsaXN0KS5cclxuQG1peGluIG1kYy1saXN0LWl0ZW0taW50ZXJhY3RpdmUtcmlwcGxlXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XHJcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlKCRxdWVyeSk7XHJcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XHJcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcyhtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgZmFsc2UsICRxdWVyeSk7XHJcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1hY3RpdmF0ZWQocHJpbWFyeSwgZmFsc2UsICRxdWVyeSk7XHJcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1zZWxlY3RlZChwcmltYXJ5LCBmYWxzZSwgJHF1ZXJ5KTtcclxufVxyXG5cclxuLy8gU2V0cyB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgZ3JhcGhpYyBlbGVtZW50LCBhcyB3ZWxsIGFzIGNhbGN1bGF0ZXMgdGhlIG1hcmdpbnMgZm9yXHJcbi8vIHRoZSBncmFwaGljIGVsZW1lbnQgc3VjaCB0aGF0IHRoZSB0ZXh0IGlzIGFsd2F5cyBvZmZzZXQgYnkgNzJweCwgd2hpY2ggaXMgZGVmaW5lZCB3aXRoaW5cclxuLy8gdGhlIHNwZWMuXHJcbkBtaXhpbiBtZGMtbGlzdC1ncmFwaGljLXNpemVfKCRzaXplKSB7XHJcbiAgJHRleHQtb2Zmc2V0OiA3MnB4O1xyXG4gICRzaWRlLXBhZGRpbmc6ICRtZGMtbGlzdC1zaWRlLXBhZGRpbmc7XHJcbiAgJG1hcmdpbi12YWx1ZTogJHRleHQtb2Zmc2V0IC0gJHNpZGUtcGFkZGluZyAtICRzaXplO1xyXG5cclxuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCByaWdodCwgJG1hcmdpbi12YWx1ZSwgXCIubWRjLWxpc3QtaXRlbVwiKTtcclxuXHJcbiAgd2lkdGg6ICRzaXplO1xyXG4gIGhlaWdodDogJHNpemU7XHJcbn1cclxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi8uLi9hbmltYXRpb24vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4ubWRjLWRyYXdlci0tZGlzbWlzc2libGUge1xuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAwKTtcblxuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgJi5tZGMtZHJhd2VyLS1vcGVuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG59XG5cbi5tZGMtZHJhd2VyLWFwcC1jb250ZW50IHtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgMCk7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi8uLi9hbmltYXRpb24vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vLi4vZWxldmF0aW9uL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLm1kYy1kcmF3ZXItLW1vZGFsIHtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1zY3JpbS1maWxsLWNvbG9yKCRtZGMtZHJhd2VyLW1vZGFsLXNjcmltLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbigkbWRjLWRyYXdlci1tb2RhbC1lbGV2YXRpb24pO1xuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAwKTtcblxuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgJi5tZGMtZHJhd2VyLS1vcGVuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG59XG5cbi5tZGMtZHJhd2VyLXNjcmltIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gIHotaW5kZXg6ICRtZGMtZHJhd2VyLXotaW5kZXggLSAxO1xuXG4gIC5tZGMtZHJhd2VyLS1vcGVuICsgJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAubWRjLWRyYXdlci0tYW5pbWF0ZSArICYge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAubWRjLWRyYXdlci0tb3BlbmluZyArICYge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICRtZGMtZHJhd2VyLWFuaW1hdGlvbi1lbnRlcjtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLm1kYy1kcmF3ZXItLWNsb3NpbmcgKyAmIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkbWRjLWRyYXdlci1hbmltYXRpb24tZXhpdDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4iLCIvLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vZWxldmF0aW9uL21peGluc1wiO1xuQGltcG9ydCBcIi4uL2VsZXZhdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcmlwcGxlL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3NoYXBlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3NoYXBlL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90eXBvZ3JhcGh5L21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtZmFiLWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLWZhYi13aXRob3V0LXJpcHBsZSgkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtZmFiLXJpcHBsZSgkcXVlcnkpO1xufVxuXG5AbWl4aW4gbWRjLWZhYi13aXRob3V0LXJpcHBsZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGZhYlxuXG4gIC5tZGMtZmFiIHtcbiAgICBAaW5jbHVkZSBtZGMtZmFiLWJhc2VfKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtZmFiLWNvbnRhaW5lci1jb2xvcihzZWNvbmRhcnksICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtZmFiLWljb24tc2l6ZSgyNHB4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWZhYi1pbmstY29sb3Iob24tc2Vjb25kYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWZhYi0tbWluaSB7XG4gICAgQGluY2x1ZGUgbWRjLWZhYi0tbWluaV8oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1mYWItLWV4dGVuZGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmFiLS1leHRlbmRlZF8oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1mYWJfX2xhYmVsIHtcbiAgICBAaW5jbHVkZSBtZGMtZmFiLS1sYWJlbF8oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1mYWJfX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mYWJfX2ljb25fKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC8vIEluY3JlYXNlIHNwZWNpZmljaXR5IGZvciBGQUIgaWNvbiBzdHlsZXMgdGhhdCBuZWVkIHRvIG92ZXJyaWRlIHN0eWxlcyBkZWZpbmVkIGZvciAubWF0ZXJpYWwtaWNvbnNcbiAgLy8gKHdoaWNoIGlzIGxvYWRlZCBzZXBhcmF0ZWx5IHNvIHRoZSBvcmRlciBvZiBDU1MgZGVmaW5pdGlvbnMgaXMgbm90IGd1YXJhbnRlZWQpXG4gIC5tZGMtZmFiIC5tZGMtZmFiX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmFiX19pY29uLW92ZXJyaWRlc18oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1mYWItLWV4aXRlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZhYi0tZXhpdGVkXygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG5AbWl4aW4gbWRjLWZhYi1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtcmlwcGxlLWNvbW1vbigkcXVlcnkpO1xuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGZhYlxuXG4gIC5tZGMtZmFiIHtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQoJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMob24tc2Vjb25kYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG5AbWl4aW4gbWRjLWZhYi1hY2Nlc3NpYmxlKCRjb250YWluZXItY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLWZhYi1jb250YWluZXItY29sb3IoJGNvbnRhaW5lci1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICRmaWxsLXRvbmU6IG1kYy10aGVtZS10b25lKCRjb250YWluZXItY29sb3IpO1xuXG4gIEBpZiAoJGZpbGwtdG9uZSA9PSBcImRhcmtcIikge1xuICAgIEBpbmNsdWRlIG1kYy1mYWItaW5rLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1kYXJrLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcyh0ZXh0LXByaW1hcnktb24tZGFyaywgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmFiLWluay1jb2xvcih0ZXh0LXByaW1hcnktb24tbGlnaHQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKHRleHQtcHJpbWFyeS1vbi1saWdodCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZmFiLWNvbnRhaW5lci1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvciwgJGVkZ2VPcHRPdXQ6IHRydWUpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZmFiLWljb24tc2l6ZSgkd2lkdGgsICRoZWlnaHQ6ICR3aWR0aCwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtZmFiX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIGZvbnQtc2l6ZTogJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWItaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWItZXh0ZW5kZWQtZmx1aWQoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWItZXh0ZW5kZWQtcGFkZGluZygkaWNvbi1wYWRkaW5nLCAkbGFiZWwtcGFkZGluZywgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mYWItZXh0ZW5kZWQtbGFiZWwtcGFkZGluZygkbGFiZWwtcGFkZGluZywgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIC8vIE9mZnNldHMgdGhlIG91dGVyIGxhYmVsIHBhZGRpbmcgYnkgZGVkdWN0aW5nIGl0IGZyb20gaWNvbiBwYWRkaW5nLlxuICAubWRjLWZhYl9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgJGljb24tcGFkZGluZyAtICRsYWJlbC1wYWRkaW5nLCAkaWNvbi1wYWRkaW5nKTtcbiAgICB9XG4gIH1cblxuICAvLyBGb3IgRXh0ZW5kZWQgRkFCIHdpdGggdGV4dCBsYWJlbCBmb2xsb3dlZCBieSBpY29uLlxuICAubWRjLWZhYl9fbGFiZWwgKyAubWRjLWZhYl9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgJGljb24tcGFkZGluZywgJGljb24tcGFkZGluZyAtICRsYWJlbC1wYWRkaW5nKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWItZXh0ZW5kZWQtbGFiZWwtcGFkZGluZygkbGFiZWwtcGFkZGluZywgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgcGFkZGluZzogMCAkbGFiZWwtcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZhYi1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICY6bm90KC5tZGMtZmFiLS1leHRlbmRlZCkge1xuICAgIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZhYi1leHRlbmRlZC1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoXG4gICAgbWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1yYWRpdXMoJG1kYy1mYWItZXh0ZW5kZWQtaGVpZ2h0LCAkcmFkaXVzKSxcbiAgICAkcnRsLXJlZmxleGl2ZSxcbiAgICAkcXVlcnk6ICRxdWVyeVxuICApO1xufVxuXG4kbWRjLWZhYi1pY29uLWVudGVyLWRlbGF5XzogOTBtcztcbiRtZGMtZmFiLWljb24tZW50ZXItZHVyYXRpb25fOiAxODBtcztcblxuQG1peGluIG1kYy1mYWItYmFzZV8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDYsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWZhYi1zaGFwZS1yYWRpdXMoNTAlLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6ICRtZGMtZmFiLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRtZGMtZmFiLWhlaWdodDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIGJveC1zaGFkb3cgJG1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbiAkbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbixcbiAgICAgIG9wYWNpdHkgMTVtcyBsaW5lYXIgMzBtcyxcbiAgICAgIG1kYy1hbmltYXRpb24tZW50ZXIodHJhbnNmb3JtLCAkbWRjLWZhYi1pY29uLWVudGVyLWR1cmF0aW9uXyArICRtZGMtZmFiLWljb24tZW50ZXItZGVsYXlfKTtcbiAgfVxuXG4gICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oOCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oMTIsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICAvLyBUT0RPKGFjZHZvcmFrKTogU2hvdWxkIHRoaXMgYmUgcGFpcmVkIHdpdGggc3RhdGVzIGFuZC9vciByaXBwbGU/IFdlIGRvbid0IHdhbnQgdG8gZGlzYWJsZSBvdXRsaW5lXG4gICAgLy8gKGFuIGFjY2Vzc2liaWxpdHkvdXNhYmlsaXR5IGZlYXR1cmUpIHVubGVzcyB3ZSdyZSBjb25maWRlbnQgdGhhdCB0aGVyZSBpcyBhbHNvIGEgdmlzdWFsIGluZGljYXRpb24gdGhhdCB0aGVcbiAgICAvLyBlbGVtZW50IGhhcyBmb2N1cy4gSWYgdGhlIGNsaWVudCBoYXMgY3VzdG9taXplZCB0aGUgRE9NIGluIHNvbWUgdW5leHBlY3RlZCB3YXksIGFuZCBpcyBjZXJ0YWluIHRoYXQgYW5vdGhlclxuICAgIC8vIGVsZW1lbnQgd2lsbCByZWNlaXZlIGZvY3VzIGluc3RlYWQsIHRoZXkgY2FuIGFsd2F5cyBvdmVycmlkZSB0aGlzIHByb3BlcnR5IG1hbnVhbGx5IGluIHRoZWlyIENTUy5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoaXMgYWxsb3dzIGZvciB1c2luZyBTVkdzIHdpdGhpbiB0aGVtIHRvIGFsaWduIHByb3Blcmx5IGluIGFsbCBicm93c2Vycy5cbiAgLy8gQ2FuIHJlbW92ZSBvbmNlOiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk0NTE1IGlzIHJlc29sdmVkLlxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC10eXBlXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogaWdub3JlXG4gID4gc3ZnIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIC8vIHN0eWxlbGludC1lbmFibGUgc2VsZWN0b3ItbWF4LXR5cGVcbn1cblxuQG1peGluIG1kYy1mYWItLW1pbmlfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHdpZHRoOiAkbWRjLWZhYi1taW5pLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRtZGMtZmFiLW1pbmktaGVpZ2h0O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZmFiLS1leHRlbmRlZF8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShidXR0b24sICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWZhYi1leHRlbmRlZC1zaGFwZS1yYWRpdXMoNTAlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1mYWItZXh0ZW5kZWQtcGFkZGluZygkbWRjLWZhYi1leHRlbmRlZC1pY29uLXBhZGRpbmcsICRtZGMtZmFiLWV4dGVuZGVkLWxhYmVsLXBhZGRpbmcsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJG1kYy1mYWItZXh0ZW5kZWQtaGVpZ2h0O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZmFiX19pY29uXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiBtZGMtYW5pbWF0aW9uLWVudGVyKHRyYW5zZm9ybSwgJG1kYy1mYWItaWNvbi1lbnRlci1kdXJhdGlvbl8sICRtZGMtZmFiLWljb24tZW50ZXItZGVsYXlfKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWJfX2xhYmVsXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZmFiX19pY29uLW92ZXJyaWRlc18oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZhYi0tZXhpdGVkXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBvcGFjaXR5IDE1bXMgbGluZWFyIDE1MG1zLFxuICAgICAgbWRjLWFuaW1hdGlvbi1leGl0LXBlcm1hbmVudCh0cmFuc2Zvcm0sIDE4MG1zKTtcbiAgfVxuXG4gIC5tZGMtZmFiX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogbWRjLWFuaW1hdGlvbi1leGl0LXBlcm1hbmVudCh0cmFuc2Zvcm0sIDEzNW1zKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4kbWRjLWZhYi1leHRlbmRlZC1pY29uLXBhZGRpbmc6IDEycHggIWRlZmF1bHQ7XG4kbWRjLWZhYi1leHRlbmRlZC1sYWJlbC1wYWRkaW5nOiAyMHB4ICFkZWZhdWx0O1xuJG1kYy1mYWItaGVpZ2h0OiA1NnB4ICFkZWZhdWx0O1xuJG1kYy1mYWItbWluaS1oZWlnaHQ6IDQwcHggIWRlZmF1bHQ7XG4kbWRjLWZhYi1leHRlbmRlZC1oZWlnaHQ6IDQ4cHggIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9iYXNlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90eXBvZ3JhcGh5L21peGluc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy8gRmxvYXRpbmcgTGFiZWwgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBtdWx0aXBsZSBjb21wb25lbnRzLCBidXQgaXRzIHN0eWxlcyBzaG91bGQgb25seSBiZSBlbWl0dGVkIG9uY2Ugd2hlbiBidW5kbGVkXG5AaW5jbHVkZSBtZGMtYmFzZS1lbWl0LW9uY2UoXCJtZGMtZmxvYXRpbmctbGFiZWxcIikge1xuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBmbG9hdGluZy1sYWJlbFxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShzdWJ0aXRsZTEpO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgdHJhbnNmb3JtICRtZGMtZmxvYXRpbmctbGFiZWwtdHJhbnNpdGlvbi1kdXJhdGlvbiAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb24sXG4gICAgICBjb2xvciAkbWRjLWZsb2F0aW5nLWxhYmVsLXRyYW5zaXRpb24tZHVyYXRpb24gJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBsaW5lLWhlaWdodDogMS4xNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY3Vyc29yOiB0ZXh0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLy8gRm9yY2UgdGhlIGxhYmVsIGludG8gaXRzIG93biBsYXllciB0byBwcmV2ZW50IHZpc2libGUgbGF5ZXIgcHJvbW90aW9uIGFkanVzdG1lbnRzXG4gICAgLy8gd2hlbiB0aGUgcmlwcGxlIGlzIGFjdGl2YXRlZCBiZWhpbmQgaXQuXG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcblxuICAgIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIGN1cnNvcjogYXV0bztcbiAgfVxuXG4gIEBhdC1yb290IHtcbiAgICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oJG1kYy1mbG9hdGluZy1sYWJlbC1wb3NpdGlvbi15KTtcbiAgICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtYW5pbWF0aW9uKHN0YW5kYXJkKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1rZXlmcmFtZXMoc3RhbmRhcmQsICRtZGMtZmxvYXRpbmctbGFiZWwtcG9zaXRpb24teSk7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLWZsb2F0aW5nLWxhYmVsLWluay1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG59XG5cbi8vIFVzZWQgZm9yIHRleHRhcmVhIGluIGNhc2Ugb2Ygc2Nyb2xsaW5nXG5AbWl4aW4gbWRjLWZsb2F0aW5nLWxhYmVsLWZpbGwtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG59XG5cbkBtaXhpbiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2Uta2V5ZnJhbWVzKCRtb2RpZmllciwgJHBvc2l0aW9uWSwgJHBvc2l0aW9uWDogMCUsICRzY2FsZTogLjc1KSB7XG4gIEBrZXlmcmFtZXMgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLSN7JG1vZGlmaWVyfSB7XG4gICAgLyogY2xlYW4tY3NzIGlnbm9yZTpzdGFydCAqL1xuICAgIDAlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAjeyRwb3NpdGlvblh9KSkgdHJhbnNsYXRlWSgtI3skcG9zaXRpb25ZfSkgc2NhbGUoI3skc2NhbGV9KTtcbiAgICB9XG5cbiAgICAzMyUge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC41LCAwLCAuNzAxNzMyLCAuNDk1ODE5KTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDQlIC0gI3skcG9zaXRpb25YfSkpIHRyYW5zbGF0ZVkoLSN7JHBvc2l0aW9uWX0pIHNjYWxlKCN7JHNjYWxlfSk7XG4gICAgfVxuXG4gICAgNjYlIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMzAyNDM1LCAuMzgxMzUyLCAuNTUsIC45NTYzNTIpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTQlIC0gI3skcG9zaXRpb25YfSkpIHRyYW5zbGF0ZVkoLSN7JHBvc2l0aW9uWX0pIHNjYWxlKCN7JHNjYWxlfSk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gI3skcG9zaXRpb25YfSkpIHRyYW5zbGF0ZVkoLSN7JHBvc2l0aW9uWX0pIHNjYWxlKCN7JHNjYWxlfSk7XG4gICAgfVxuICAgIC8qIGNsZWFuLWNzcyBpZ25vcmU6ZW5kICovXG4gIH1cbn1cblxuQG1peGluIG1kYy1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbigkcG9zaXRpb25ZLCAkcG9zaXRpb25YOiAwJSwgJHNjYWxlOiAuNzUpIHtcbiAgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIEBpZiAkcG9zaXRpb25YID4gMCBvciAkcG9zaXRpb25YIDwgMCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEgKiAkcG9zaXRpb25ZKSB0cmFuc2xhdGVYKC0xICogJHBvc2l0aW9uWCkgc2NhbGUoJHNjYWxlKTtcblxuICAgICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMSAqICRwb3NpdGlvblkpIHRyYW5zbGF0ZVgoJHBvc2l0aW9uWCkgc2NhbGUoJHNjYWxlKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMSAqICRwb3NpdGlvblkpIHNjYWxlKCRzY2FsZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtYW5pbWF0aW9uKCRtb2RpZmllcikge1xuICAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gICAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtI3skbW9kaWZpZXJ9IDI1MG1zIDE7XG4gIH1cbn1cblxuQG1peGluIG1kYy1mbG9hdGluZy1sYWJlbC1tYXgtd2lkdGgoJG1heC13aWR0aCkge1xuICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTkgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90eXBvZ3JhcGh5L21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtZm9ybS1maWVsZC1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtZm9ybS1maWVsZCB7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoYm9keTIsICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAgID4gbGFiZWwge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgb3JkZXI6IDA7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogJG1kYy1mb3JtLWZpZWxkLWl0ZW0tc3BhY2luZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAgICAgPiBsYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbWRjLWZvcm0tZmllbGQtaXRlbS1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1mb3JtLWZpZWxkLS1hbGlnbi1lbmQge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAgID4gbGFiZWwge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRtZGMtZm9ybS1maWVsZC1pdGVtLXNwYWNpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXR5cGVcbiAgICAgID4gbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogJG1kYy1mb3JtLWZpZWxkLWl0ZW0tc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE5IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtZm9ybS1maWVsZC1pdGVtLXNwYWNpbmc6IDRweCAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcmlwcGxlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtaWNvbi1idXR0b24tY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtaWNvbi1idXR0b24td2l0aG91dC1yaXBwbGUoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWljb24tYnV0dG9uLXJpcHBsZSgkcXVlcnkpO1xufVxuXG5AbWl4aW4gbWRjLWljb24tYnV0dG9uLXdpdGhvdXQtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBpY29uLWJ1dHRvblxuICAubWRjLWljb24tYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBtZGMtaWNvbi1idXR0b24tYmFzZV8oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1pY29uLWJ1dHRvbl9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gICAgJi5tZGMtaWNvbi1idXR0b25fX2ljb24tLW9uIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1pY29uLWJ1dHRvbi0tb24ge1xuICAgIC5tZGMtaWNvbi1idXR0b25fX2ljb24ge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAgICAgJi5tZGMtaWNvbi1idXR0b25fX2ljb24tLW9uIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuQG1peGluIG1kYy1pY29uLWJ1dHRvbi1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtcmlwcGxlLWNvbW1vbigkcXVlcnkpO1xuXG4gIC5tZGMtaWNvbi1idXR0b24ge1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZSgkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtdW5ib3VuZGVkKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWljb24tYnV0dG9uLXNpemUoJHdpZHRoLCAkaGVpZ2h0OiAkd2lkdGgsICRwYWRkaW5nOiBtYXgoJHdpZHRoLCAkaGVpZ2h0KS8yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB3aWR0aDogJHdpZHRoICsgJHBhZGRpbmcgKiAyO1xuICAgIGhlaWdodDogJGhlaWdodCArICRwYWRkaW5nICogMjtcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBmb250LXNpemU6IG1heCgkd2lkdGgsICRoZWlnaHQpO1xuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gIHN2ZyxcbiAgaW1nIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1pY29uLWJ1dHRvbi1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiBtZGMtaWNvbi1idXR0b24tYmFzZV8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtaWNvbi1idXR0b24tc2l6ZSgkbWRjLWljb24tYnV0dG9uLXNpemUsICRxdWVyeTogJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCB0ZXh0LWRpc2FibGVkLW9uLWxpZ2h0KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy1pY29uLWJ1dHRvbi1zaXplOiAyNHB4ICFkZWZhdWx0O1xuIiwiLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vc2hhcGUvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLWltYWdlLWxpc3QtY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBpbWFnZS1saXN0XG4gIC5tZGMtaW1hZ2UtbGlzdCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAvLyBNYXJnaW4gYW5kIHBhZGRpbmcgYXJlIHNldCB0byBvdmVycmlkZSBkZWZhdWx0IHVzZXIgYWdlbnQgc3R5bGVzIGZvciBsaXN0cywgYW5kIGFsc28gdG8gY2VudGVyIHRoZSBJbWFnZSBMaXN0XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1pbWFnZS1saXN0X19pdGVtLFxuICAubWRjLWltYWdlLWxpc3RfX2ltYWdlLWFzcGVjdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBTdXBwb3J0cyBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvZiBwcm90ZWN0ZWQgc3VwcG9ydGluZyBjb250ZW50IGZvciBpdGVtLCBhbmQgaW1hZ2UgZm9yIGltYWdlLWFzcGVjdC1jb250YWluZXJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1pbWFnZS1saXN0X19pdGVtIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtaW1hZ2UtbGlzdF9faW1hZ2Uge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAvLyBEZXNjZW5kYW50IHNlbGVjdG9yIGFsbG93cyBpbWFnZS1hc3BlY3QtY29udGFpbmVyIHRvIGJlIG9wdGlvbmFsIGluIERPTSBzdHJ1Y3R1cmVcbiAgLm1kYy1pbWFnZS1saXN0X19pbWFnZS1hc3BlY3QtY29udGFpbmVyIC5tZGMtaW1hZ2UtbGlzdF9faW1hZ2Uge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAvLyBCYWNrZ3JvdW5kIHN0eWxlcyB0byBzdXBwb3J0IGRpdiBpbnN0ZWFkIG9mIGltZ1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWltYWdlLWxpc3QtYXNwZWN0KDEsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWltYWdlLWxpc3Qtc2hhcGUtcmFkaXVzKDAsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAubWRjLWltYWdlLWxpc3RfX3N1cHBvcnRpbmcge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCB0ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgICAgbGluZS1oZWlnaHQ6ICRtZGMtaW1hZ2UtbGlzdC1pY29uLXNpemU7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1pbWFnZS1saXN0X19sYWJlbCB7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoc3VidGl0bGUxLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktb3ZlcmZsb3ctZWxsaXBzaXMoJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLy8gTW9kaWZpZXIgZm9yIGxhYmVscy9pY29ucyB3aXRoIHRleHQgcHJvdGVjdGlvbiwgb3ZlcmxheWluZyBpbWFnZXMuXG5cbiAgLm1kYy1pbWFnZS1saXN0LS13aXRoLXRleHQtcHJvdGVjdGlvbiAubWRjLWltYWdlLWxpc3RfX3N1cHBvcnRpbmcge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogJG1kYy1pbWFnZS1saXN0LXRleHQtcHJvdGVjdGlvbi1oZWlnaHQ7XG4gICAgICBwYWRkaW5nOiAwICRtZGMtaW1hZ2UtbGlzdC10ZXh0LXByb3RlY3Rpb24taG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZGMtaW1hZ2UtbGlzdC10ZXh0LXByb3RlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1hc29ucnkgSW1hZ2UgTGlzdCwgdXNpbmcgQ1NTIGNvbHVtbnMgKGkuZS4gcmVuZGVycyBkb3duIHRoZW4gYWNyb3NzKVxuXG4gIC5tZGMtaW1hZ2UtbGlzdC0tbWFzb25yeSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyAvLyBPdmVycmlkZSBmbGV4XG4gICAgfVxuXG4gICAgLm1kYy1pbWFnZS1saXN0X19pdGVtIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtaW1hZ2UtbGlzdF9faW1hZ2Uge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuQG1peGluIG1kYy1pbWFnZS1saXN0LWFzcGVjdCgkd2lkdGgtaGVpZ2h0LXJhdGlvLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1pbWFnZS1saXN0X19pbWFnZS1hc3BlY3QtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJSAvICN7JHdpZHRoLWhlaWdodC1yYXRpb30pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWltYWdlLWxpc3Qtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAubWRjLWltYWdlLWxpc3RfX2ltYWdlIHtcbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAkc2VsZWN0b3I6IGlmKCYsIFwiJi5tZGMtaW1hZ2UtbGlzdC0td2l0aC10ZXh0LXByb3RlY3Rpb25cIiwgXCIubWRjLWltYWdlLWxpc3QtLXdpdGgtdGV4dC1wcm90ZWN0aW9uXCIpO1xuXG4gICN7JHNlbGVjdG9yfSAubWRjLWltYWdlLWxpc3RfX3N1cHBvcnRpbmcge1xuICAgICRtYXNrZWQtcmFkaXVzOiBtZGMtc2hhcGUtbWFzay1yYWRpdXMoJHJhZGl1cywgMCAwIDEgMSk7XG5cbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKCRtYXNrZWQtcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vIFN0YW5kYXJkIEltYWdlIExpc3RcblxuQG1peGluIG1kYy1pbWFnZS1saXN0LXN0YW5kYXJkLWNvbHVtbnMoXG4gICRjb2x1bW4tY291bnQsXG4gICRndXR0ZXItc2l6ZTogJG1kYy1pbWFnZS1saXN0LXN0YW5kYXJkLWd1dHRlci1zaXplLFxuICAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpXG4pIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBUaGlzIHVzZXMgbWFyZ2luIHJhdGhlciB0aGFuIHBhZGRpbmcgdG8gZmFjaWxpdGF0ZSBwcm9wZXJseSBwb3NpdGlvbmluZyB0aGUgc3VwcG9ydGluZyBjb250ZW50IGVsZW1lbnQgd2hlblxuICAvLyAtLXdpdGgtdGV4dC1wcm90ZWN0aW9uIGlzIHVzZWQuXG4gIC5tZGMtaW1hZ2UtbGlzdF9faXRlbSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIFN1YnRyYWN0IGV4dHJhIGZyYWN0aW9uIGZyb20gZWFjaCBpdGVtJ3Mgd2lkdGggdG8gZW5zdXJlIGNvcnJlY3Qgd3JhcHBpbmcgaW4gSUUvRWRnZSB3aGljaCByb3VuZCBkaWZmZXJlbnRseVxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvICN7JGNvbHVtbi1jb3VudH0gLSAjeyRndXR0ZXItc2l6ZSArIDEgLyAkY29sdW1uLWNvdW50fSk7XG4gICAgICBtYXJnaW46ICRndXR0ZXItc2l6ZSAvIDI7XG4gICAgfVxuICB9XG59XG5cbi8vIE1hc29ucnkgSW1hZ2UgTGlzdFxuXG5AbWl4aW4gbWRjLWltYWdlLWxpc3QtbWFzb25yeS1jb2x1bW5zKFxuICAkY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyLXNpemU6ICRtZGMtaW1hZ2UtbGlzdC1tYXNvbnJ5LWd1dHRlci1zaXplLFxuICAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpXG4pIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGNvbHVtbi1jb3VudDogJGNvbHVtbi1jb3VudDtcbiAgICBjb2x1bW4tZ2FwOiAkZ3V0dGVyLXNpemU7XG4gIH1cblxuICAubWRjLWltYWdlLWxpc3RfX2l0ZW0ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZ3V0dGVyLXNpemU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbiRtZGMtaW1hZ2UtbGlzdC1zdGFuZGFyZC1ndXR0ZXItc2l6ZTogNHB4ICFkZWZhdWx0O1xuJG1kYy1pbWFnZS1saXN0LW1hc29ucnktZ3V0dGVyLXNpemU6IDE2cHggIWRlZmF1bHQ7XG4kbWRjLWltYWdlLWxpc3QtaWNvbi1zaXplOiAyNHB4ICFkZWZhdWx0O1xuJG1kYy1pbWFnZS1saXN0LXRleHQtcHJvdGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIC42KSAhZGVmYXVsdDtcbiRtZGMtaW1hZ2UtbGlzdC10ZXh0LXByb3RlY3Rpb24taGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuJG1kYy1pbWFnZS1saXN0LXRleHQtcHJvdGVjdGlvbi1ob3Jpem9udGFsLXBhZGRpbmc6IDE2cHggIWRlZmF1bHQ7XG4iLCIvLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5cbjpyb290IHtcbiAgQGVhY2ggJHNpemUgaW4gbWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKSB7XG4gICAgLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLSN7JHNpemV9OiAje21hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1kZWZhdWx0LW1hcmdpbiwgJHNpemUpfTtcbiAgICAtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItI3skc2l6ZX06ICN7bWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWRlZmF1bHQtZ3V0dGVyLCAkc2l6ZSl9O1xuICAgIC0tbWRjLWxheW91dC1ncmlkLWNvbHVtbi13aWR0aC0jeyRzaXplfTogI3ttYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoLCAkc2l6ZSl9O1xuICB9XG59XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGxheW91dC1ncmlkXG4ubWRjLWxheW91dC1ncmlkIHtcbiAgQGVhY2ggJHNpemUgaW4gbWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKSB7XG4gICAgQGluY2x1ZGUgbWRjLWxheW91dC1ncmlkLW1lZGlhLXF1ZXJ5Xygkc2l6ZSkge1xuICAgICAgJG1hcmdpbjogbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWRlZmF1bHQtbWFyZ2luLCAkc2l6ZSk7XG5cbiAgICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZCgkc2l6ZSwgJG1hcmdpbiwgJG1kYy1sYXlvdXQtZ3JpZC1tYXgtd2lkdGgpO1xuICAgIH1cbiAgfVxufVxuXG4ubWRjLWxheW91dC1ncmlkX19pbm5lciB7XG4gIEBlYWNoICRzaXplIGluIG1hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucykge1xuICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1tZWRpYS1xdWVyeV8oJHNpemUpIHtcbiAgICAgICRtYXJnaW46IG1hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1kZWZhdWx0LW1hcmdpbiwgJHNpemUpO1xuICAgICAgJGd1dHRlcjogbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWRlZmF1bHQtZ3V0dGVyLCAkc2l6ZSk7XG5cbiAgICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1pbm5lcigkc2l6ZSwgJG1hcmdpbiwgJGd1dHRlcik7XG4gICAgfVxuICB9XG59XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwge1xuICAvLyBzZWxlY3QgdGhlIHVwcGVyIGJyZWFrcG9pbnRcbiAgJHVwcGVyLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMpLCAxKTtcblxuICBAZWFjaCAkc2l6ZSBpbiBtYXAta2V5cygkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMpIHtcbiAgICBAaW5jbHVkZSBtZGMtbGF5b3V0LWdyaWQtbWVkaWEtcXVlcnlfKCRzaXplKSB7XG4gICAgICAkZ3V0dGVyOiBtYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtZGVmYXVsdC1ndXR0ZXIsICRzaXplKTtcblxuICAgICAgQGluY2x1ZGUgbWRjLWxheW91dC1ncmlkLWNlbGwoJHNpemUsICRtZGMtbGF5b3V0LWdyaWQtZGVmYXVsdC1jb2x1bW4tc3BhbiwgJGd1dHRlcik7XG5cbiAgICAgIEBmb3IgJHNwYW4gZnJvbSAxIHRocm91Z2ggbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMsICR1cHBlci1icmVha3BvaW50KSB7XG4gICAgICAgIC8vIFNwYW4gY2xhc3Nlcy5cbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbWF4LW5lc3RpbmctZGVwdGhcbiAgICAgICAgQGF0LXJvb3QgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0jeyRzcGFufSxcbiAgICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLSN7JHNwYW59LSN7JHNpemV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBtZGMtbGF5b3V0LWdyaWQtY2VsbC1zcGFuXygkc2l6ZSwgJHNwYW4sICRndXR0ZXIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHN0eWxlbGludC1lbmFibGUgbWF4LW5lc3RpbmctZGVwdGhcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBPcmRlciBvdmVycmlkZSBjbGFzc2VzLlxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIG1hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkdXBwZXItYnJlYWtwb2ludCkge1xuICAgICYtLW9yZGVyLSN7JGl9IHtcbiAgICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1jZWxsLW9yZGVyKCRpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbGlnbm1lbnQgY2xhc3Nlcy5cbiAgJi0tYWxpZ24tdG9wIHtcbiAgICBAaW5jbHVkZSBtZGMtbGF5b3V0LWdyaWQtY2VsbC1hbGlnbih0b3ApO1xuICB9XG5cbiAgJi0tYWxpZ24tbWlkZGxlIHtcbiAgICBAaW5jbHVkZSBtZGMtbGF5b3V0LWdyaWQtY2VsbC1hbGlnbihtaWRkbGUpO1xuICB9XG5cbiAgJi0tYWxpZ24tYm90dG9tIHtcbiAgICBAaW5jbHVkZSBtZGMtbGF5b3V0LWdyaWQtY2VsbC1hbGlnbihib3R0b20pO1xuICB9XG59XG5cbi5tZGMtbGF5b3V0LWdyaWQtLWZpeGVkLWNvbHVtbi13aWR0aCB7XG4gIEBlYWNoICRzaXplIGluIG1hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucykge1xuICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1tZWRpYS1xdWVyeV8oJHNpemUpIHtcbiAgICAgICRtYXJnaW46IG1hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1kZWZhdWx0LW1hcmdpbiwgJHNpemUpO1xuICAgICAgJGd1dHRlcjogbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWRlZmF1bHQtZ3V0dGVyLCAkc2l6ZSk7XG4gICAgICAkY29sdW1uLXdpZHRoOiBtYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoLCAkc2l6ZSk7XG5cbiAgICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1maXhlZC1jb2x1bW4td2lkdGgoJHNpemUsICRtYXJnaW4sICRndXR0ZXIsICRjb2x1bW4td2lkdGgpO1xuICAgIH1cbiAgfVxufVxuXG4ubWRjLWxheW91dC1ncmlkLS1hbGlnbi1sZWZ0IHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm1kYy1sYXlvdXQtZ3JpZC0tYWxpZ24tcmlnaHQge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbiIsIi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIHJldHVybnMgdGhlIGxvd2VyIGdyaWQgYm91bmRhcnkgb3IgbnVsbCBpZiB0aGUgc21hbGxlc3QgZ3JpZCBpcyBzZWxlY3RlZFxuQGZ1bmN0aW9uIG1kYy1sYXlvdXQtZ3JpZC1icmVha3BvaW50LW1pbigkc2l6ZSkge1xuICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucywgJHNpemUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHN0eWxlIHNwZWNpZmllZCEgQ2hvb3NlIG9uZSBvZiAje21hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucyl9XCI7XG4gIH1cbiAgJG1pbjogbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgQHJldHVybiBpZigkbWluID4gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIHJldHVybnMgdGhlIHVwcGVyIGdyaWQgYm91bmRhcnkgb3IgbnVsbCBpZiB0aGUgbGFyZ2VzdCBncmlkIGlzIHNlbGVjdGVkXG5AZnVuY3Rpb24gbWRjLWxheW91dC1ncmlkLWJyZWFrcG9pbnQtbWF4KCRzaXplKSB7XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSkge1xuICAgIEBlcnJvciBcIkludmFsaWQgc3R5bGUgc3BlY2lmaWVkISBDaG9vc2Ugb25lIG9mICN7bWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKX1cIjtcbiAgfVxuICAkbmFtZXM6IG1hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucyk7XG4gICRuOiBpbmRleCgkbmFtZXMsICRzaXplKTtcbiAgJHByZXY6IGlmKCRuID4gMSwgbnRoKCRuYW1lcywgJG4gLSAxKSwgbnVsbCk7XG5cbiAgQHJldHVybiBpZigkcHJldiwgKG1kYy1sYXlvdXQtZ3JpZC1icmVha3BvaW50LW1pbigkcHJldikgLSAxcHgpLCBudWxsKTtcbn1cblxuLy8gUHJpdmF0ZSBtaXhpbnMsIG1lYW50IGZvciBpbnRlcm5hbCB1c2UuXG5AbWl4aW4gbWRjLWxheW91dC1ncmlkLW1lZGlhLXF1ZXJ5Xygkc2l6ZSkge1xuICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucywgJHNpemUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHN0eWxlIHNwZWNpZmllZCEgQ2hvb3NlIG9uZSBvZiAje21hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucyl9XCI7XG4gIH1cblxuICAkbWluOiBtZGMtbGF5b3V0LWdyaWQtYnJlYWtwb2ludC1taW4oJHNpemUpO1xuICAkbWF4OiBtZGMtbGF5b3V0LWdyaWQtYnJlYWtwb2ludC1tYXgoJHNpemUpO1xuXG4gIEBpZiAkbWluID09IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgLy8gUGhvbmVcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICAvLyBUYWJsZXRcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluICE9IG51bGwgYW5kICRtYXggPT0gbnVsbCB7XG4gICAgLy8gRGVza3RvcFxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIC8vIEZhbGxiYWNrIC0gbm8gYnJlYWtwb2ludHMgZGVmaW5lZFxuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtbGF5b3V0LWdyaWQtY2VsbC1zcGFuXygkc2l6ZSwgJHNwYW4sICRndXR0ZXIpIHtcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMsICRzaXplKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCBzdHlsZSBzcGVjaWZpZWQhIENob29zZSBvbmUgb2YgI3ttYXAta2V5cygkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMpfVwiO1xuICB9XG5cbiAgJHBlcmNlbnQ6IHBlcmNlbnRhZ2UoJHNwYW4gLyBtYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucywgJHNpemUpKTtcblxuICBAaWYgJHBlcmNlbnQgPiAxMDAlIHtcbiAgICAkcGVyY2VudDogMTAwJTtcbiAgfVxuXG4gIHdpZHRoOiBjYWxjKCN7JHBlcmNlbnR9IC0gI3skZ3V0dGVyfSk7XG4gIHdpZHRoOiBjYWxjKCN7JHBlcmNlbnR9IC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci0jeyRzaXplfSwgI3skZ3V0dGVyfSkpO1xuXG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiBtaW4oJHNwYW4sIG1hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSkpO1xuICB9XG59XG5cbi8vIFB1YmxpYyBtaXhpbnMsIG1lYW50IGZvciBkZXZlbG9wZXIgdXNhZ2UuXG5AbWl4aW4gbWRjLWxheW91dC1ncmlkKCRzaXplLCAkbWFyZ2luLCAkbWF4LXdpZHRoOiBudWxsKSB7XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSkge1xuICAgIEBlcnJvciBcIkludmFsaWQgc3R5bGUgc3BlY2lmaWVkISBDaG9vc2Ugb25lIG9mICN7bWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKX1cIjtcbiAgfVxuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAkbWFyZ2luO1xuICBwYWRkaW5nOiB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLSN7JHNpemV9LCAjeyRtYXJnaW59KTtcblxuICBAaWYgJG1heC13aWR0aCB7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtbGF5b3V0LWdyaWQtaW5uZXIoJHNpemUsICRtYXJnaW4sICRndXR0ZXIpIHtcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMsICRzaXplKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCBzdHlsZSBzcGVjaWZpZWQhIENob29zZSBvbmUgb2YgI3ttYXAta2V5cygkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMpfVwiO1xuICB9XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIG1hcmdpbjogLSRndXR0ZXIgLyAyO1xuICBtYXJnaW46IGNhbGModmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci0jeyRzaXplfSwgI3skZ3V0dGVyfSkgLyAyICogLTEpO1xuXG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGdyaWQtZ2FwOiAkZ3V0dGVyO1xuICAgIGdyaWQtZ2FwOiB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLSN7JHNpemV9LCAkZ3V0dGVyKTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChtYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucywgJHNpemUpLCBtaW5tYXgoMCwgMWZyKSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1sYXlvdXQtZ3JpZC1jZWxsKCRzaXplLCAkZGVmYXVsdC1zcGFuLCAkZ3V0dGVyKSB7XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSkge1xuICAgIEBlcnJvciBcIkludmFsaWQgc3R5bGUgc3BlY2lmaWVkISBDaG9vc2Ugb25lIG9mICN7bWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKX1cIjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1jZWxsLXNwYW5fKCRzaXplLCAkZGVmYXVsdC1zcGFuLCAkZ3V0dGVyKTtcblxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46ICRndXR0ZXIgLyAyO1xuICBtYXJnaW46IGNhbGModmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci0jeyRzaXplfSwgI3skZ3V0dGVyfSkgLyAyKTtcblxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuQG1peGluIG1kYy1sYXlvdXQtZ3JpZC1jZWxsLW9yZGVyKCRvcmRlcikge1xuICBvcmRlcjogJG9yZGVyO1xufVxuXG5AbWl4aW4gbWRjLWxheW91dC1ncmlkLWNlbGwtYWxpZ24oJHBvc2l0aW9uKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gXCJ0b3BcIiB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcblxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgYWxpZ24tc2VsZjogc3RhcnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRwb3NpdGlvbiA9PSBcIm1pZGRsZVwiIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIH1cblxuICBAaWYgJHBvc2l0aW9uID09IFwiYm90dG9tXCIge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRwb3NpdGlvbiA9PSBcInN0cmV0Y2hcIiB7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWxheW91dC1ncmlkLWZpeGVkLWNvbHVtbi13aWR0aCgkc2l6ZSwgJG1hcmdpbiwgJGd1dHRlciwgJGNvbHVtbi13aWR0aCkge1xuICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucywgJHNpemUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHN0eWxlIHNwZWNpZmllZCEgQ2hvb3NlIG9uZSBvZiAje21hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucyl9XCI7XG4gIH1cblxuICAkY29sdW1uQ291bnQ6IG1hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSk7XG4gICRndXR0ZXItbnVtYmVyOiAkY29sdW1uQ291bnQgLSAxO1xuICAkbWFyZ2luLW51bWJlcjogMjtcblxuICB3aWR0aDogJGNvbHVtbi13aWR0aCAqICRjb2x1bW5Db3VudCArICRndXR0ZXIgKiAkZ3V0dGVyLW51bWJlciArICRtYXJnaW4gKiAkbWFyZ2luLW51bWJlcjtcbiAgd2lkdGg6XG4gICAgY2FsYyhcbiAgICAgIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1jb2x1bW4td2lkdGgtI3skc2l6ZX0sICN7JGNvbHVtbi13aWR0aH0pICogI3skY29sdW1uQ291bnR9ICtcbiAgICAgIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItI3skc2l6ZX0sICN7JGd1dHRlcn0pICogI3skZ3V0dGVyLW51bWJlcn0gK1xuICAgICAgdmFyKC0tbWRjLWxheW91dC1ncmlkLW1hcmdpbi0jeyRzaXplfSwgI3skbWFyZ2lufSkgKiAjeyRtYXJnaW4tbnVtYmVyfVxuICAgICk7XG59XG4iLCIvLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbiRtZGMtbGF5b3V0LWdyaWQtYnJlYWtwb2ludHM6IChcbiAgZGVza3RvcDogODQwcHgsXG4gIHRhYmxldDogNDgwcHgsXG4gIHBob25lOiAwcHhcbikgIWRlZmF1bHQ7XG5cbiRtZGMtbGF5b3V0LWdyaWQtY29sdW1uczogKFxuICBkZXNrdG9wOiAxMixcbiAgdGFibGV0OiA4LFxuICBwaG9uZTogNFxuKSAhZGVmYXVsdDtcblxuJG1kYy1sYXlvdXQtZ3JpZC1kZWZhdWx0LW1hcmdpbjogKFxuICBkZXNrdG9wOiAyNHB4LFxuICB0YWJsZXQ6IDE2cHgsXG4gIHBob25lOiAxNnB4XG4pICFkZWZhdWx0O1xuXG4kbWRjLWxheW91dC1ncmlkLWRlZmF1bHQtZ3V0dGVyOiAoXG4gIGRlc2t0b3A6IDI0cHgsXG4gIHRhYmxldDogMTZweCxcbiAgcGhvbmU6IDE2cHhcbikgIWRlZmF1bHQ7XG5cbiRtZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoOiAoXG4gIGRlc2t0b3A6IDcycHgsXG4gIHRhYmxldDogNzJweCxcbiAgcGhvbmU6IDcycHhcbikgIWRlZmF1bHQ7XG5cbiRtZGMtbGF5b3V0LWdyaWQtZGVmYXVsdC1jb2x1bW4tc3BhbjogNCAhZGVmYXVsdDtcblxuJG1kYy1sYXlvdXQtZ3JpZC1tYXgtd2lkdGg6IG51bGwgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2Jhc2UvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuXG4vLyBMaW5lIFJpcHBsZSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IG11bHRpcGxlIGNvbXBvbmVudHMsIGJ1dCBpdHMgc3R5bGVzIHNob3VsZCBvbmx5IGJlIGVtaXR0ZWQgb25jZSB3aGVuIGJ1bmRsZWRcbkBpbmNsdWRlIG1kYy1iYXNlLWVtaXQtb25jZShcIm1kYy1saW5lLXJpcHBsZVwiKSB7XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGxpbmUtcmlwcGxlXG4gIC5tZGMtbGluZS1yaXBwbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICB0cmFuc2l0aW9uOiBtZGMtbGluZS1yaXBwbGUtdHJhbnNpdGlvbi12YWx1ZSh0cmFuc2Zvcm0pLCBtZGMtbGluZS1yaXBwbGUtdHJhbnNpdGlvbi12YWx1ZShvcGFjaXR5KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IDI7XG4gIH1cblxuICAubWRjLWxpbmUtcmlwcGxlLS1hY3RpdmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAubWRjLWxpbmUtcmlwcGxlLS1kZWFjdGl2YXRpbmcge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5Aa2V5ZnJhbWVzIHByaW1hcnktaW5kZXRlcm1pbmF0ZS10cmFuc2xhdGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgMjAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjUsIDAsIC43MDE3MzIsIC40OTU4MTkpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gIDU5LjE1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4zMDI0MzUsIC4zODEzNTIsIC41NSwgLjk1NjM1Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDgzLjY3MTQyJSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwLjYxMTA1NyUpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcHJpbWFyeS1pbmRldGVybWluYXRlLXNjYWxlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKC4wOCk7XG4gIH1cblxuICAzNi42NSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMzM0NzMxLCAuMTI0ODIsIC43ODU4NDQsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKC4wOCk7XG4gIH1cblxuICA2OS4xNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMDYsIC4xMSwgLjYsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKC42NjE0NzkpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoLjA4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNlY29uZGFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZSB7XG4gIDAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjE1LCAwLCAuNTE1MDU4LCAuNDA5Njg1KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAyNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMzEwMzMsIC4yODQwNTgsIC44LCAuNzMzNzEyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzcuNjUxOTEzJSk7XG4gIH1cblxuICA0OC4zNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNCwgLjYyNzAzNSwgLjYsIC45MDIwMjYpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4NC4zODYxNjUlKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNjAuMjc3NzgyJSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzZWNvbmRhcnktaW5kZXRlcm1pbmF0ZS1zY2FsZSB7XG4gIDAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjIwNTAyOCwgLjA1NzA1MSwgLjU3NjYxLCAuNDUzOTcxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCguMDgpO1xuICB9XG5cbiAgMTkuMTUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjE1MjMxMywgLjE5NjQzMiwgLjY0ODM3NCwgMS4wMDQzMTUpO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKC40NTcxMDQpO1xuICB9XG5cbiAgNDQuMTUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjI1Nzc1OSwgLS4wMDMxNjMsIC4yMTE3NjIsIDEuMzgxNzkpO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKC43Mjc5Nik7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCguMDgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYnVmZmVyaW5nIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBwcmltYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlLXJldmVyc2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgMjAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjUsIDAsIC43MDE3MzIsIC40OTU4MTkpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gIDU5LjE1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4zMDI0MzUsIC4zODEzNTIsIC41NSwgLjk1NjM1Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04My42NzE0MiUpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAuNjExMDU3JSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzZWNvbmRhcnktaW5kZXRlcm1pbmF0ZS10cmFuc2xhdGUtcmV2ZXJzZSB7XG4gIDAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjE1LCAwLCAuNTE1MDU4LCAuNDA5Njg1KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAyNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMzEwMzMsIC4yODQwNTgsIC44LCAuNzMzNzEyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTM3LjY1MTkxMyUpO1xuICB9XG5cbiAgNDguMzUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjQsIC42MjcwMzUsIC42LCAuOTAyMDI2KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTg0LjM4NjE2NSUpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNjAuMjc3NzgyJSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBidWZmZXJpbmctcmV2ZXJzZSB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gIH1cbn1cbiIsIi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLm1kYy1saW5lYXItcHJvZ3Jlc3Mge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICB0cmFuc2l0aW9uOiBtZGMtYW5pbWF0aW9uLWV4aXQtdGVtcG9yYXJ5KG9wYWNpdHksIDI1MG1zKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmX19iYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIHRyYW5zaXRpb246IG1kYy1hbmltYXRpb24tZXhpdC10ZW1wb3JhcnkodHJhbnNmb3JtLCAyNTBtcyk7XG4gIH1cblxuICAmX19iYXItaW5uZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxuXG4gICZfX2J1ZmZlcmluZy1kb3RzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGFuaW1hdGlvbjogYnVmZmVyaW5nIDI1MG1zIGluZmluaXRlIGxpbmVhcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMHB4IDRweDtcbiAgfVxuXG4gICZfX2J1ZmZlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2l0aW9uOiBtZGMtYW5pbWF0aW9uLWV4aXQtdGVtcG9yYXJ5KHRyYW5zZm9ybSwgMjUwbXMpO1xuICB9XG5cbiAgJl9fcHJpbWFyeS1iYXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICB9XG5cbiAgJl9fc2Vjb25kYXJ5LWJhciB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgJi0taW5kZXRlcm1pbmF0ZSB7XG4gICAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2JhciB7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5tZGMtbGluZWFyLXByb2dyZXNzX19wcmltYXJ5LWJhciB7XG4gICAgICBsZWZ0OiAtMTQ1LjE2NjYxMSU7XG4gICAgICBhbmltYXRpb246IHByaW1hcnktaW5kZXRlcm1pbmF0ZS10cmFuc2xhdGUgMnMgaW5maW5pdGUgbGluZWFyO1xuXG4gICAgICA+IC5tZGMtbGluZWFyLXByb2dyZXNzX19iYXItaW5uZXIge1xuICAgICAgICBhbmltYXRpb246IHByaW1hcnktaW5kZXRlcm1pbmF0ZS1zY2FsZSAycyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3NlY29uZGFyeS1iYXIge1xuICAgICAgbGVmdDogLTU0Ljg4ODg5MSU7XG4gICAgICBhbmltYXRpb246IHNlY29uZGFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZSAycyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXG4gICAgICA+IC5tZGMtbGluZWFyLXByb2dyZXNzX19iYXItaW5uZXIge1xuICAgICAgICBhbmltYXRpb246IHNlY29uZGFyeS1pbmRldGVybWluYXRlLXNjYWxlIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS1yZXZlcnNlZCB7XG4gICAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2JhcixcbiAgICAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyIHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHJpZ2h0O1xuICAgIH1cblxuICAgIC5tZGMtbGluZWFyLXByb2dyZXNzX19wcmltYXJ5LWJhciB7XG4gICAgICBhbmltYXRpb24tbmFtZTogcHJpbWFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZS1yZXZlcnNlO1xuICAgIH1cblxuICAgIC5tZGMtbGluZWFyLXByb2dyZXNzX19zZWNvbmRhcnktYmFyIHtcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBzZWNvbmRhcnktaW5kZXRlcm1pbmF0ZS10cmFuc2xhdGUtcmV2ZXJzZTtcbiAgICB9XG5cbiAgICAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyaW5nLWRvdHMge1xuICAgICAgYW5pbWF0aW9uOiBidWZmZXJpbmctcmV2ZXJzZSAyNTBtcyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgfVxuICB9XG5cbiAgJi0tY2xvc2VkIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBhdC1yb290IHtcbiAgQGluY2x1ZGUgbWRjLWxpbmVhci1wcm9ncmVzcy1iYXItY29sb3IocHJpbWFyeSk7XG4gIEBpbmNsdWRlIG1kYy1saW5lYXItcHJvZ3Jlc3MtYnVmZmVyLWNvbG9yKCRtZGMtbGluZWFyLXByb2dyZXNzLWJhc2VsaW5lLWJ1ZmZlci1jb2xvcik7XG59XG5cbi5tZGMtbGluZWFyLXByb2dyZXNzLS1pbmRldGVybWluYXRlLm1kYy1saW5lYXItcHJvZ3Jlc3MtLXJldmVyc2VkIHtcbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3ByaW1hcnktYmFyIHtcbiAgICByaWdodDogLTE0NS4xNjY2MTElO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cblxuICAubWRjLWxpbmVhci1wcm9ncmVzc19fc2Vjb25kYXJ5LWJhciB7XG4gICAgcmlnaHQ6IC01NC44ODg4OTElO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbn1cbiIsIi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL3ZhcmlhYmxlc1wiOyAvLyBmb3IgbWRjLXRoZW1lLXByb3AtdmFsdWVcblxuQG1peGluIG1kYy1saW5lYXItcHJvZ3Jlc3MtYmFyLWNvbG9yKCRjb2xvcikge1xuICAubWRjLWxpbmVhci1wcm9ncmVzc19fYmFyLWlubmVyIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtbGluZWFyLXByb2dyZXNzLWJ1ZmZlci1jb2xvcigkY29sb3IpIHtcbiAgLy8gV2UgbmVlZCB0byBlc2NhcGUgdGhlICcjJyBjaGFyYWN0ZXIgYXMgXCIlMjNcIiBmb3IgU1ZHIGJlY2F1c2UgJyMnIGlzIGEgcmVzZXJ2ZWQgY2hhcmFjdGVyIGluIFVSSXMuXG4gICRjb2xvci12YWx1ZS1mb3ItY3NzOiBtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpO1xuICAkY29sb3ItdmFsdWUtZm9yLXN2ZzogbWRjLWxpbmVhci1wcm9ncmVzcy1zdHItcmVwbGFjZV8odW5xdW90ZShcIiN7JGNvbG9yLXZhbHVlLWZvci1jc3N9XCIpLCBcIiNcIiwgXCIlMjNcIik7XG5cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2J1ZmZlcmluZy1kb3RzIHtcbiAgICAvLyBTVkcgaXMgb3B0aW1pemVkIGZvciBkYXRhIFVSSSAoaHR0cHM6Ly9jb2RlcGVuLmlvL3RpZ3QvcG9zdC9vcHRpbWl6aW5nLXN2Z3MtaW4tZGF0YS11cmlzKVxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jdGlvbi11cmwtcXVvdGVzXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA1IDInIHhtbDpzcGFjZT0ncHJlc2VydmUnIHZpZXdCb3g9JzAgMCA1IDInIHByZXNlcnZlQXNwZWN0UmF0aW89J25vbmUgc2xpY2UnJTNFJTNDY2lyY2xlIGN4PScxJyBjeT0nMScgcj0nMScgZmlsbD0nI3skY29sb3ItdmFsdWUtZm9yLXN2Z30nLyUzRSUzQy9zdmclM0VcIik7XG4gIH1cblxuICAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItdmFsdWUtZm9yLWNzcztcbiAgfVxufVxuXG4vLyBCYXNlZCBvbiBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL3Nhc3Mvc3RyLXJlcGxhY2UtZnVuY3Rpb24vXG5AZnVuY3Rpb24gbWRjLWxpbmVhci1wcm9ncmVzcy1zdHItcmVwbGFjZV8oJHN0cmluZywgJHNlYXJjaCwgJHJlcGxhY2UpIHtcbiAgJGluZGV4OiBzdHItaW5kZXgoJHN0cmluZywgJHNlYXJjaCk7XG5cbiAgQGlmICRpbmRleCB7XG4gICAgJGhlYWQ6IHN0ci1zbGljZSgkc3RyaW5nLCAxLCAkaW5kZXggLSAxKTtcbiAgICAkdGFpbDogbWRjLWxpbmVhci1wcm9ncmVzcy1zdHItcmVwbGFjZV8oc3RyLXNsaWNlKCRzdHJpbmcsICRpbmRleCArIHN0ci1sZW5ndGgoJHNlYXJjaCkpLCAkc2VhcmNoLCAkcmVwbGFjZSk7XG5cbiAgICBAcmV0dXJuICRoZWFkICsgJHJlcGxhY2UgKyAkdGFpbDtcbiAgfVxuXG4gIEByZXR1cm4gJHN0cmluZztcbn1cbiIsIi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuJG1kYy1saW5lYXItcHJvZ3Jlc3MtYmFzZWxpbmUtYnVmZmVyLWNvbG9yOiAjZTZlNmU2ICFkZWZhdWx0O1xuIiwiLy8gQ29weXJpZ2h0IDIwMTYgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG4kbWRjLWxpc3QtZGl2aWRlci1jb2xvci1vbi1saWdodC1iZzogcmdiYSgwLCAwLCAwLCAuMTIpICFkZWZhdWx0O1xuJG1kYy1saXN0LWRpdmlkZXItY29sb3Itb24tZGFyay1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMikgIWRlZmF1bHQ7XG4kbWRjLWxpc3Qtc2lkZS1wYWRkaW5nOiAxNnB4ICFkZWZhdWx0O1xuJG1kYy1saXN0LXRleHQtb2Zmc2V0OiA3MnB4ICFkZWZhdWx0O1xuIiwiLy9cclxuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cclxuLy9cclxuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxyXG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXHJcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcclxuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxyXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcclxuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcclxuLy9cclxuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cclxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXHJcbi8vXHJcbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcclxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXHJcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxyXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXHJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXHJcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cclxuLy8gVEhFIFNPRlRXQVJFLlxyXG4vL1xyXG5cclxuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xyXG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9ydGwvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9saXN0L21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vbGlzdC92YXJpYWJsZXNcIjtcclxuQGltcG9ydCBcIi4uL3JpcHBsZS9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XHJcblxyXG5AbWl4aW4gbWRjLW1lbnUtY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xyXG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xyXG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XHJcblxyXG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtY29tbW9uKCRxdWVyeSk7XHJcblxyXG4gIC8vIEN1c3RvbWl6ZSB0aGUgbWVudS1zdXJmYWNlIGFuZCBjb250YWluZWQgbGlzdCB0byBtYXRjaCB0aGUgbWRjLW1lbnUgc3R5bGVzLlxyXG4gIC5tZGMtbWVudSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLW1ldGEtaW5rLWNvbG9yKCRtZGMtbWVudS1pbmstY29sb3IsICRxdWVyeSk7XHJcbiAgICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLWdyYXBoaWMtaW5rLWNvbG9yKCRtZGMtbWVudS1pbmstY29sb3IsICRxdWVyeSk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgbWluLXdpZHRoOiAkbWRjLW1lbnUtbWluLXdpZHRoO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEluY2x1ZGUgbWRjLWxpc3Qgc2VsZWN0b3IgdG8gZW5zdXJlIGxpc3QtaW5zaWRlLW1lbnUgb3ZlcnJpZGVzIGRlZmF1bHQgbGlzdCBzdHlsZXNcclxuICAgIC5tZGMtbGlzdCB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0tcHJpbWFyeS10ZXh0LWluay1jb2xvcigkbWRjLW1lbnUtaW5rLWNvbG9yLCAkcXVlcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIC5tZGMtbGlzdC1kaXZpZGVyIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgICBtYXJnaW46IDhweCAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm1kYy1saXN0LWl0ZW0ge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgICBjdXJzb3I6IGF1dG87XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL3N0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxyXG4gICAgYS5tZGMtbGlzdC1pdGVtIC5tZGMtbGlzdC1pdGVtX190ZXh0LFxyXG4gICAgYS5tZGMtbGlzdC1pdGVtIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcclxuICB9XHJcblxyXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIG1lbnVcclxuICAubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XHJcbiAgICB9XHJcblxyXG4gICAgLm1kYy1saXN0LWl0ZW0ge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsIDU2cHgsICRtZGMtbGlzdC1zaWRlLXBhZGRpbmcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRXh0cmEgc3BlY2lmaWNpdHkgcmVxdWlyZWQgdG8gb3ZlcnJpZGUgYGRpc3BsYXlgIHByb3BlcnR5IG9uIGBtZGMtbGlzdC1pdGVtX19ncmFwaGljYC5cclxuICAgIC5tZGMtbWVudV9fc2VsZWN0aW9uLWdyb3VwLWljb24ge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xyXG4gICAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsIDE2cHgpO1xyXG5cclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxyXG5cclxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXHJcbiAgLm1kYy1tZW51LWl0ZW0tLXNlbGVjdGVkIC5tZGMtbWVudV9fc2VsZWN0aW9uLWdyb3VwLWljb24ge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1tZW51LXdpZHRoKCR3aWR0aCwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xyXG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcclxuXHJcbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcclxuICAgIEBpZiB1bml0bGVzcygkd2lkdGgpIHtcclxuICAgICAgd2lkdGg6ICR3aWR0aCAqICRtZGMtbWVudS13aWR0aC1iYXNlO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvdmFyaWFibGVzXCI7XG5cbiRtZGMtbWVudS1pbmstY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzKGhpZ2gpKSAhZGVmYXVsdDtcblxuJG1kYy1tZW51LXdpZHRoLWJhc2U6IDU2cHggIWRlZmF1bHQ7XG4kbWRjLW1lbnUtbWluLXdpZHRoOiAyICogJG1kYy1tZW51LXdpZHRoLWJhc2UgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3NoYXBlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vXG4vLyBQdWJsaWNcbi8vXG5cbkBtaXhpbiBtZGMtbWVudS1zdXJmYWNlLWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBtZW51LXN1cmZhY2VcbiAgLm1kYy1tZW51LXN1cmZhY2Uge1xuICAgIEBpbmNsdWRlIG1kYy1tZW51LXN1cmZhY2UtYmFzZV8oJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKCR6LXZhbHVlOiA4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLW1lbnUtc3VyZmFjZS1maWxsLWNvbG9yKHN1cmZhY2UsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLW1lbnUtc3VyZmFjZS1pbmstY29sb3Iob24tc3VyZmFjZSwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtbWVudS1zdXJmYWNlLXNoYXBlLXJhZGl1cyhtZWRpdW0sIGZhbHNlLCAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHRyYW5zZm9ybS1vcmlnaW4sIHRvcCBsZWZ0LCB0b3AgcmlnaHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbWVudS1zdXJmYWNlLS1hbmNob3Ige1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG4gIH1cblxuICAubWRjLW1lbnUtc3VyZmFjZS0tZml4ZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG59XG5cbkBtaXhpbiBtZGMtbWVudS1zdXJmYWNlLWluay1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtbWVudS1zdXJmYWNlLWZpbGwtY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtbWVudS1zdXJmYWNlLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG4vL1xuLy8gUHJpdmF0ZVxuLy9cblxuQG1peGluIG1kYy1tZW51LXN1cmZhY2UtYmFzZV8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAjeyRtZGMtbWVudS1zdXJmYWNlLW1pbi1kaXN0YW5jZS1mcm9tLWVkZ2V9KTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skbWRjLW1lbnUtc3VyZmFjZS1taW4tZGlzdGFuY2UtZnJvbS1lZGdlfSk7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgei1pbmRleDogJG1kYy1tZW51LXN1cmZhY2Utei1pbmRleDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIG9wYWNpdHkgJG1kYy1tZW51LXN1cmZhY2UtZmFkZS1pbi1kdXJhdGlvbiBsaW5lYXIsXG4gICAgICB0cmFuc2Zvcm0gJG1kYy1tZW51LXN1cmZhY2Utc2NhbGUtZHVyYXRpb24gJG1kYy1hbmltYXRpb24tZGVjZWxlcmF0aW9uLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAmLS1vcGVuIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgJi0tYW5pbWF0aW5nLW9wZW4ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKC44KTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgJi0tYW5pbWF0aW5nLWNsb3NlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJG1kYy1tZW51LXN1cmZhY2UtZmFkZS1vdXQtZHVyYXRpb24gbGluZWFyO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtbWVudS1zdXJmYWNlLWZhZGUtaW4tZHVyYXRpb246IC4wM3MgIWRlZmF1bHQ7XG4kbWRjLW1lbnUtc3VyZmFjZS1mYWRlLW91dC1kdXJhdGlvbjogLjA3NXMgIWRlZmF1bHQ7XG4kbWRjLW1lbnUtc3VyZmFjZS1zY2FsZS1kdXJhdGlvbjogLjEycyAhZGVmYXVsdDtcbiRtZGMtbWVudS1zdXJmYWNlLW1pbi1kaXN0YW5jZS1mcm9tLWVkZ2U6IDMycHggIWRlZmF1bHQ7XG4kbWRjLW1lbnUtc3VyZmFjZS16LWluZGV4OiA4ICFkZWZhdWx0OyAvLyBPbmUgYWJvdmUgbWRjLWRpYWxvZ1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vYmFzZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vLyBOb3RjaGVkIE91dGxpbmUgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBtdWx0aXBsZSBjb21wb25lbnRzLCBidXQgaXRzIHN0eWxlcyBzaG91bGQgb25seSBiZSBlbWl0dGVkIG9uY2Ugd2hlbiBidW5kbGVkXG5AaW5jbHVkZSBtZGMtYmFzZS1lbWl0LW9uY2UoXCJtZGMtbm90Y2hlZC1vdXRsaW5lXCIpIHtcbiAgLm1kYy1ub3RjaGVkLW91dGxpbmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICAmX19sZWFkaW5nLFxuICAgICZfX25vdGNoLFxuICAgICZfX3RyYWlsaW5nIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXIgJG1kYy1ub3RjaGVkLW91dGxpbmUtdHJhbnNpdGlvbi1kdXJhdGlvbiAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQ7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAmX19sZWFkaW5nIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KGJvcmRlciwgMXB4IHNvbGlkLCBub25lKTtcblxuICAgICAgd2lkdGg6ICRtZGMtbm90Y2hlZC1vdXRsaW5lLWxlYWRpbmctd2lkdGg7XG4gICAgfVxuXG4gICAgJl9fdHJhaWxpbmcge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkoYm9yZGVyLCBub25lLCAxcHggc29saWQpO1xuXG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgfVxuXG4gICAgJl9fbm90Y2gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gI3skbWRjLW5vdGNoZWQtb3V0bGluZS1sZWFkaW5nLXdpZHRofSAqIDIpO1xuICAgIH1cblxuICAgIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAxN3B4O1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGNsaXA7XG4gICAgfVxuXG4gICAgJi0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLyAuNzUpO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS1ub3RjaGVkIHtcbiAgICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KHBhZGRpbmcsIHJpZ2h0LCA4cHgpO1xuXG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS1uby1sYWJlbCB7XG4gICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy1ub3RjaGVkLW91dGxpbmUtdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXMgIWRlZmF1bHQ7XG4vLyBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIGNvbnN0YW50cy5udW1iZXJzLk1JTl9MRUFESU5HX1NUUk9LRV9FREdFX1BPU0lUSU9OXG4kbWRjLW5vdGNoZWQtb3V0bGluZS1taW4tbGVhZGluZy1zdHJva2UtZWRnZS1wb3NpdGlvbjogMTJweCAhZGVmYXVsdDtcbi8vIFRoZSBnYXAgYmV0d2VlbiB0aGUgc3Ryb2tlIGVuZCBhbmQgZmxvYXRpbmcgbGFiZWxcbi8vIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggY29uc3RhbnRzLm51bWJlcnMuTk9UQ0hfR1VUVEVSX1NJWkVcbiRtZGMtbm90Y2hlZC1vdXRsaW5lLW5vdGNoLWd1dHRlci1zaXplOiA0cHggIWRlZmF1bHQ7XG4kbWRjLW5vdGNoZWQtb3V0bGluZS1sZWFkaW5nLXdpZHRoOiAxMnB4ICFkZWZhdWx0O1xuJG1kYy1ub3RjaGVkLW91dGxpbmUtcGFkZGluZzogNHB4ICFkZWZhdWx0O1xuLy8gVGhpcyB2YXJpYWJsZSBrZWVwcyB0aGUgYmVmb3JlL2FmdGVyIEpTIGxhYmVsIGNlbnRlcmVkIGluIHRoZSBub3RjaCB3aGVuIHRoZSBmb250LXNpemUgaXMgY2hhbmdlZC5cbiRtZGMtbm90Y2hlZC1vdXRsaW5lLWxhYmVsLWFkanVzdDogMTQlICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcmlwcGxlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3JpcHBsZS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtcmFkaW8tY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtcmFkaW8td2l0aG91dC1yaXBwbGUoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXJhZGlvLXJpcHBsZSgkcXVlcnkpO1xufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyByYWRpbyBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1yYWRpby1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiBtZGMtcmFkaW8td2l0aG91dC1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSByYWRpb1xuXG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtcmFkaW8ge1xuICAgIEBpbmNsdWRlIG1kYy1yYWRpby11bmNoZWNrZWQtc3Ryb2tlLWNvbG9yKCRtZGMtcmFkaW8tdW5jaGVja2VkLWNvbG9yLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1yYWRpby1jaGVja2VkLXN0cm9rZS1jb2xvcigkbWRjLXJhZGlvLWJhc2VsaW5lLXRoZW1lLWNvbG9yLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1yYWRpby1pbmstY29sb3IoJG1kYy1yYWRpby1iYXNlbGluZS10aGVtZS1jb2xvciwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtcmFkaW8tZm9jdXMtaW5kaWNhdG9yLWNvbG9yKCRtZGMtcmFkaW8tYmFzZWxpbmUtdGhlbWUtY29sb3IsICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgd2lkdGg6ICRtZGMtcmFkaW8tdG91Y2gtYXJlYTtcbiAgICAgIGhlaWdodDogJG1kYy1yYWRpby10b3VjaC1hcmVhO1xuICAgICAgcGFkZGluZzogKCRtZGMtcmFkaW8tdG91Y2gtYXJlYSAtICRtZGMtcmFkaW8tdWktc2l6ZSkgLyAyO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybSwgYm9yZGVyLWNvbG9yLCBjb2xvcjtcbiAgICB9XG5cbiAgICAvLyBDb250YWluZXIgZm9yIHJhZGlvIGNpcmNsZXMgYW5kIHJpcHBsZS5cbiAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAoJG1kYy1yYWRpby10b3VjaC1hcmVhIC0gJG1kYy1yYWRpby11aS1zaXplKSAvIDI7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHdpZHRoOiAkbWRjLXJhZGlvLXVpLXBjdDtcbiAgICAgICAgaGVpZ2h0OiAkbWRjLXJhZGlvLXVpLXBjdDtcbiAgICAgIH1cblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogbWRjLXJhZGlvLWV4aXQob3BhY2l0eSksIG1kYy1yYWRpby1leGl0KHRyYW5zZm9ybSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vdXRlci1jaXJjbGUge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIHRyYW5zaXRpb246IG1kYy1yYWRpby1leGl0KGJvcmRlci1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9faW5uZXItY2lyY2xlIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xuICAgICAgICBib3JkZXItd2lkdGg6IDEwcHg7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBtZGMtcmFkaW8tZXhpdCh0cmFuc2Zvcm0pLFxuICAgICAgICAgIG1kYy1yYWRpby1leGl0KGJvcmRlci1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9fbmF0aXZlLWNvbnRyb2wge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgY3Vyc29yOiBpbmhlcml0O1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmNoZWNrZWQsXG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmRpc2FibGVkIHtcbiAgICArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBtZGMtcmFkaW8tZW50ZXIob3BhY2l0eSksXG4gICAgICAgICAgbWRjLXJhZGlvLWVudGVyKHRyYW5zZm9ybSk7XG4gICAgICB9XG5cbiAgICAgIC5tZGMtcmFkaW9fX291dGVyLWNpcmNsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogbWRjLXJhZGlvLWVudGVyKGJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgbWRjLXJhZGlvLWVudGVyKHRyYW5zZm9ybSksXG4gICAgICAgICAgICBtZGMtcmFkaW8tZW50ZXIoYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtcmFkaW8tLWRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCB7XG4gICAgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIHtcbiAgICAgIC5tZGMtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSguNSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgICBtZGMtcmFkaW8tZW50ZXIodHJhbnNmb3JtKSxcbiAgICAgICAgICAgIG1kYy1yYWRpby1lbnRlcihib3JkZXItY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWQsXG4gIFthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbCB7XG4gICAgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cblxuICAgICAgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1kYy1yYWRpby1jaXJjbGUtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1kYy1yYWRpby1jaXJjbGUtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpmb2N1cyB7XG4gICAgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgyLCAyKTtcbiAgICAgICAgb3BhY2l0eTogbWFwLWdldCgkbWRjLXJpcHBsZS1kYXJrLWluay1vcGFjaXRpZXMsIGZvY3VzKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBtZGMtcmFkaW8tZW50ZXIob3BhY2l0eSksXG4gICAgICAgICAgbWRjLXJhZGlvLWVudGVyKHRyYW5zZm9ybSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gcmFkaW8gc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtcmFkaW8tY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gbWRjLXJhZGlvLXJpcHBsZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1jb21tb24oJHF1ZXJ5KTtcblxuICAubWRjLXJhZGlvIHtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy11bmJvdW5kZWQoJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJG1kYy1yYWRpby1iYXNlbGluZS10aGVtZS1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQge1xuICAgICAgLm1kYy1yYWRpb19fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtcmFkaW8tdW5jaGVja2VkLXN0cm9rZS1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eVxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDplbmFibGVkOm5vdCg6Y2hlY2tlZCkgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX291dGVyLWNpcmNsZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXJhZGlvLWNoZWNrZWQtc3Ryb2tlLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5XG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6Y2hlY2tlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtcmFkaW8taW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5XG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmVuYWJsZWQgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXJhZGlvLWZvY3VzLWluZGljYXRvci1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1yYWRpb19fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IsICRlZGdlT3B0T3V0OiB0cnVlKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vdGhlbWUvdmFyaWFibGVzXCI7XG5cbiRtZGMtcmFkaW8tdG91Y2gtYXJlYTogNDBweCAhZGVmYXVsdDtcbiRtZGMtcmFkaW8tdWktc2l6ZTogMjBweCAhZGVmYXVsdDtcbiRtZGMtcmFkaW8tdWktcGN0OiBwZXJjZW50YWdlKCRtZGMtcmFkaW8tdWktc2l6ZSAvICRtZGMtcmFkaW8tdG91Y2gtYXJlYSkgIWRlZmF1bHQ7XG4kbWRjLXJhZGlvLXRyYW5zaXRpb24tZHVyYXRpb246IDEyMG1zICFkZWZhdWx0O1xuJG1kYy1yYWRpby1yaXBwbGUtb3BhY2l0eTogLjE0ICFkZWZhdWx0O1xuJG1kYy1yYWRpby1iYXNlbGluZS10aGVtZS1jb2xvcjogc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJG1kYy1yYWRpby11bmNoZWNrZWQtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC41NCkgIWRlZmF1bHQ7XG4kbWRjLXJhZGlvLWNpcmNsZS1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjI2KSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5Aa2V5ZnJhbWVzIG1kYy1zZWxlY3QtZmxvYXQtbmF0aXZlLWNvbnRyb2wge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4iLCIvLyAgQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vICBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyAgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6L1xuLy9cbi8vICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLi9cbi8vXG4vLyAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vICBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy8gUHVibGljIG1peGluc1xuXG5AbWl4aW4gbWRjLXNlbGVjdC1pY29uLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWljb24tY29sb3JfKCRjb2xvcik7XG4gIH1cbn1cblxuLy8gUHJpdmF0ZSBtaXhpbnNcblxuQG1peGluIG1kYy1zZWxlY3QtaWNvbl8ge1xuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWljb24tY29sb3Iob24tc3VyZmFjZSk7XG5cbiAgLm1kYy1zZWxlY3RfX2ljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAxNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6ICRtZGMtc2VsZWN0LWljb24tc2l6ZTtcbiAgICBoZWlnaHQ6ICRtZGMtc2VsZWN0LWljb24tc2l6ZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIG9wYWNpdHk6ICRtZGMtc2VsZWN0LWljb24tb3BhY2l0eTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2VsZWN0LWljb24tY29sb3JfKCRjb2xvcikge1xuICAubWRjLXNlbGVjdF9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zZWxlY3QtaWNvbi1ob3Jpem9udGFsLXBvc2l0aW9uXygkaWNvblBvc2l0aW9uLCAkaW5wdXRQYWRkaW5nKSB7XG4gIC5tZGMtc2VsZWN0X19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkaWNvblBvc2l0aW9uKTtcbiAgfVxuXG4gIC8vIE1vdmUgdGhlIGlucHV0J3MgcG9zaXRpb24sIHRvIGFsbG93IHJvb20gZm9yIHRoZSBpY29uXG4gIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCxcbiAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRpbnB1dFBhZGRpbmcgLyogbGVmdCAqLywgJG1kYy1zZWxlY3QtaWNvbi1yaWdodC1wYWRkaW5nIC8qIHJpZ2h0ICovKTtcbiAgfVxufVxuIiwiLy8gIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyAgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vICBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOi9cbi8vXG4vLyAgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vICBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4vXG4vL1xuLy8gIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyAgVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy1zZWxlY3QtaWNvbi1zaXplOiAyNHB4ICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtaWNvbi1vcGFjaXR5OiAuNTQgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1pY29uLWNvbG9yOiBvbi1zdXJmYWNlICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtaWNvbi1yaWdodC1wYWRkaW5nOiAzMnB4ICFkZWZhdWx0O1xuIiwiLy8gIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyAgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vICBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOi9cbi8vXG4vLyAgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vICBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4vXG4vL1xuLy8gIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyAgVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5cbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiB7XG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtaWNvbl87XG59XG5cbi5tZGMtc2VsZWN0X19pY29uOm5vdChbdGFiaW5kZXhdKSxcbi5tZGMtc2VsZWN0X19pY29uW3RhYmluZGV4PVwiLTFcIl0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLy8gIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyAgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vICBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOi9cbi8vXG4vLyAgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vICBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4vXG4vL1xuLy8gIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyAgVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uLy4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHNlbGVjdC1oZWxwZXItdGV4dFxuLm1kYy1zZWxlY3QtaGVscGVyLXRleHQge1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShjYXB0aW9uKTtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKDE2cHgpO1xuXG4gIG1hcmdpbjogMDtcbiAgdHJhbnNpdGlvbjogbWRjLXNlbGVjdC10cmFuc2l0aW9uKG9wYWNpdHkpO1xuICBvcGFjaXR5OiAwO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbn1cblxuLm1kYy1zZWxlY3QtaGVscGVyLXRleHQtLXBlcnNpc3RlbnQge1xuICB0cmFuc2l0aW9uOiBub25lO1xuICBvcGFjaXR5OiAxO1xuICB3aWxsLWNoYW5nZTogaW5pdGlhbDtcbn1cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG4iLCIvL1xyXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxyXG4vL1xyXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XHJcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcclxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xyXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXHJcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xyXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxyXG4vL1xyXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxyXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cclxuLy9cclxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxyXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcclxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXHJcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcclxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcclxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxyXG4vLyBUSEUgU09GVFdBUkUuXHJcbi8vXHJcblxyXG5AaW1wb3J0IFwiLi9rZXlmcmFtZXNcIjtcclxuQGltcG9ydCBcIi4vbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xyXG5AaW1wb3J0IFwiLi4vYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xyXG5AaW1wb3J0IFwiLi4vbGluZS1yaXBwbGUvbWRjLWxpbmUtcmlwcGxlXCI7XHJcbkBpbXBvcnQgXCIuLi9ub3RjaGVkLW91dGxpbmUvbWRjLW5vdGNoZWQtb3V0bGluZVwiO1xyXG5AaW1wb3J0IFwiLi4vZmxvYXRpbmctbGFiZWwvbWRjLWZsb2F0aW5nLWxhYmVsXCI7XHJcbkBpbXBvcnQgXCIuLi90eXBvZ3JhcGh5L21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vcmlwcGxlL2NvbW1vblwiO1xyXG5AaW1wb3J0IFwiLi4vcmlwcGxlL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi9pY29uL21kYy1zZWxlY3QtaWNvblwiO1xyXG5AaW1wb3J0IFwiLi9oZWxwZXItdGV4dC9tZGMtc2VsZWN0LWhlbHBlci10ZXh0XCI7XHJcbkBpbXBvcnQgXCIuL2hlbHBlci10ZXh0L21peGluc1wiO1xyXG5cclxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgc2VsZWN0XHJcbi5tZGMtc2VsZWN0IHtcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWNvbnRhaW5lci1maWxsLWNvbG9yKCRtZGMtc2VsZWN0LWZpbGwtY29sb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZTtcclxuICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkO1xyXG4gIC8vIFNlbGVjdCBpbnRlbnRpb25hbGx5IG9taXRzIHByZXNzIHJpcHBsZSwgc28gZWFjaCBzdGF0ZSBuZWVkcyB0byBiZSBzcGVjaWZpZWQgaW5kaXZpZHVhbGx5LlxyXG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkbWRjLXNlbGVjdC1pbmstY29sb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaG92ZXItb3BhY2l0eShtZGMtc3RhdGVzLW9wYWNpdHkoJG1kYy1zZWxlY3QtaW5rLWNvbG9yLCBob3ZlcikpO1xyXG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtZm9jdXMtb3BhY2l0eShtZGMtc3RhdGVzLW9wYWNpdHkoJG1kYy1zZWxlY3QtaW5rLWNvbG9yLCBmb2N1cykpO1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtaW5rLWNvbG9yKCRtZGMtc2VsZWN0LWluay1jb2xvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1sYWJlbC1jb2xvcigkbWRjLXNlbGVjdC1sYWJlbC1jb2xvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1ib3R0b20tbGluZS1jb2xvcigkbWRjLXNlbGVjdC1ib3R0b20tbGluZS1pZGxlLWNvbG9yKTtcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWhlbHBlci10ZXh0LWNvbG9yKCRtZGMtc2VsZWN0LWhlbHBlci10ZXh0LWNvbG9yKTtcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LXNoYXBlLXJhZGl1cyhzbWFsbCk7XHJcblxyXG4gIC8vIEZvY3VzZWQgc3RhdGUgY29sb3JzXHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1mb2N1c2VkLWJvdHRvbS1saW5lLWNvbG9yKHByaW1hcnkpO1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtZm9jdXNlZC1sYWJlbC1jb2xvcigkbWRjLXNlbGVjdC1mb2N1c2VkLWxhYmVsLWNvbG9yKTtcclxuXHJcbiAgLy8gSG92ZXIgc3RhdGUgY29sb3JzXHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1ob3Zlci1ib3R0b20tbGluZS1jb2xvcigkbWRjLXNlbGVjdC1ib3R0b20tbGluZS1ob3Zlci1jb2xvcik7XHJcbiAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uKCRtZGMtc2VsZWN0LWxhYmVsLXBvc2l0aW9uLXkpO1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtZmxvYXRpbmctbGFiZWxfO1xyXG5cclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBoZWlnaHQ6ICRtZGMtc2VsZWN0LWhlaWdodDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIC8qIEBhbHRlcm5hdGUgKi9cclxuICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtLCBjb2xvcjtcclxuXHJcbiAgJl9fZHJvcGRvd24taWNvbiB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWRkLWFycm93LXN2Zy1iZ18oJG1kYy1zZWxlY3QtZHJvcGRvd24tY29sb3IsICRtZGMtc2VsZWN0LWRyb3Bkb3duLW9wYWNpdHkpO1xyXG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUobGVmdCwgYXV0bywgcmlnaHQsIDhweCk7XHJcblxyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAxNnB4O1xyXG4gICAgd2lkdGg6IDI0cHg7XHJcbiAgICBoZWlnaHQ6IDI0cHg7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG1kYy1zZWxlY3QtZHJvcGRvd24tdHJhbnNpdGlvbi1kdXJhdGlvbiAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHJcbiAgICAubWRjLXNlbGVjdC0tZm9jdXNlZCAmIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1kZC1hcnJvdy1zdmctYmdfKG1kYy10aGVtZS1wcm9wLXZhbHVlKHByaW1hcnkpLCAxKTtcclxuXHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgdHJhbnNsYXRlWSgtNXB4KTtcclxuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRtZGMtc2VsZWN0LWRyb3Bkb3duLXRyYW5zaXRpb24tZHVyYXRpb24gJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fbmF0aXZlLWNvbnRyb2wge1xyXG4gICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWZvY3VzZWQtbGluZS1yaXBwbGVfIHtcclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAyKTtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1kYy1zZWxlY3QtaGVscGVyLXRleHRfO1xyXG5AaW5jbHVkZSBtZGMtc2VsZWN0LXRleHQtYW5kLWNvbnRyb2xfKCk7XHJcblxyXG4ubWRjLXNlbGVjdC0tb3V0bGluZWQge1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3Qtb3V0bGluZWRfO1xyXG59XHJcblxyXG4ubWRjLXNlbGVjdC0taW52YWxpZCB7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1sYWJlbC1jb2xvcigkbWRjLXNlbGVjdC1lcnJvci1jb2xvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1ib3R0b20tbGluZS1jb2xvcigkbWRjLXNlbGVjdC1lcnJvci1jb2xvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1mb2N1c2VkLWJvdHRvbS1saW5lLWNvbG9yKCRtZGMtc2VsZWN0LWVycm9yLWNvbG9yKTtcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWZvY3VzZWQtbGFiZWwtY29sb3IoJG1kYy1zZWxlY3QtZXJyb3ItY29sb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtaGVscGVyLXRleHQtdmFsaWRhdGlvbi1jb2xvcigkbWRjLXNlbGVjdC1lcnJvci1jb2xvcik7XHJcblxyXG4gIC8vIEhvdmVyIHN0YXRlIGNvbG9yc1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtaG92ZXItYm90dG9tLWxpbmUtY29sb3IoJG1kYy1zZWxlY3QtZXJyb3ItY29sb3IpO1xyXG5cclxuICAmLm1kYy1zZWxlY3QtLW91dGxpbmVkIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3Qtb3V0bGluZS1jb2xvcigkbWRjLXNlbGVjdC1lcnJvci1jb2xvcik7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWhvdmVyLW91dGxpbmUtY29sb3IoJG1kYy1zZWxlY3QtZXJyb3ItY29sb3IpO1xyXG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1mb2N1c2VkLW91dGxpbmUtY29sb3IoJG1kYy1zZWxlY3QtZXJyb3ItY29sb3IpO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1zZWxlY3RfX2Ryb3Bkb3duLWljb24ge1xyXG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1kZC1hcnJvdy1zdmctYmdfKCRtZGMtc2VsZWN0LWVycm9yLWNvbG9yLCAxKTtcclxuICB9XHJcblxyXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cclxuICArIC5tZGMtc2VsZWN0LWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZyB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxufVxyXG5cclxuLm1kYy1zZWxlY3QtLXJlcXVpcmVkIHtcclxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXHJcbiAgLm1kYy1mbG9hdGluZy1sYWJlbDo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCIqXCI7XHJcbiAgfVxyXG59XHJcblxyXG4ubWRjLXNlbGVjdC0tZGlzYWJsZWQge1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtZGlzYWJsZWRfO1xyXG59XHJcblxyXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ge1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3Qtd2l0aC1sZWFkaW5nLWljb25fO1xyXG59XHJcblxyXG4ubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkIHtcclxuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgb24tc3VyZmFjZSk7XHJcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcyhvbi1zdXJmYWNlKTtcclxufVxyXG5cclxuQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWtleWZyYW1lcyhcclxuICBzZWxlY3Qtb3V0bGluZWQtbGVhZGluZy1pY29uLFxyXG4gICRtZGMtc2VsZWN0LW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXksXHJcbiAgJG1kYy1zZWxlY3Qtb3V0bGluZWQtd2l0aC1sZWFkaW5nLWljb24tbGFiZWwtcG9zaXRpb24teFxyXG4pO1xyXG5AaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2Uta2V5ZnJhbWVzKFxyXG4gIHNlbGVjdC1vdXRsaW5lZC1sZWFkaW5nLWljb24tcnRsLFxyXG4gICRtZGMtc2VsZWN0LW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXksXHJcbiAgLSRtZGMtc2VsZWN0LW91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uLWxhYmVsLXBvc2l0aW9uLXhcclxuKTtcclxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvdmFyaWFibGVzXCI7XG5cbiRtZGMtc2VsZWN0LWFycm93LXBhZGRpbmc6IDUycHggIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1sYWJlbC1wYWRkaW5nOiAxNnB4ICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtaGVpZ2h0OiA1NnB4ICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtaWNvbi1wYWRkaW5nOiA0OHB4ICFkZWZhdWx0O1xuXG4kbWRjLXNlbGVjdC1pbmstY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC44NykgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1kcm9wZG93bi1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1pY29uLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuNTQpICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtbGFiZWwtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC42KSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWZvY3VzZWQtbGFiZWwtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUocHJpbWFyeSksIC44NykgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1ib3R0b20tbGluZS1pZGxlLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuNDIpICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtYm90dG9tLWxpbmUtaG92ZXItY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC44NykgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1oZWxwZXItdGV4dC1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjYpICFkZWZhdWx0O1xuXG4kbWRjLXNlbGVjdC1maWxsLWNvbG9yOiBtaXgobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIG1kYy10aGVtZS1wcm9wLXZhbHVlKHN1cmZhY2UpLCA0JSkgIWRlZmF1bHQ7XG5cbiRtZGMtc2VsZWN0LW91dGxpbmVkLWlkbGUtYm9yZGVyOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMjQpICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtZHJvcGRvd24tb3BhY2l0eTogLjU0ICFkZWZhdWx0O1xuXG4vLyBEaXNhYmxlZCBTdHlsZXNcbiRtZGMtc2VsZWN0LWRpc2FibGVkLWxhYmVsLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMzcpICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtZGlzYWJsZWQtaWNvbi1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjM3KSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWRpc2FibGVkLWluay1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjM3KSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWRpc2FibGVkLWZpbGwtY29sb3I6IG1peChtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgbWRjLXRoZW1lLXByb3AtdmFsdWUoc3VyZmFjZSksIDIlKSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWRpc2FibGVkLWRyb3Bkb3duLW9wYWNpdHk6IC4zNyAhZGVmYXVsdDtcblxuLy8gc2hvdWxkIGJlIC4wNiBhZnRlciBtZGMtc2VsZWN0IG9wYWNpdHkgaXMgYXBwbGllZFxuJG1kYy1zZWxlY3Qtb3V0bGluZWQtZGlzYWJsZWQtYm9yZGVyOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMTYpICFkZWZhdWx0O1xuJG1kYy1zZWxlY3Qtb3V0bGluZWQtaG92ZXItYm9yZGVyOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuODcpICFkZWZhdWx0O1xuXG4kbWRjLXNlbGVjdC1sYWJlbC1wb3NpdGlvbi15OiA3MCUgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1vdXRsaW5lLWxhYmVsLW9mZnNldDogMTZweCAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXk6IDEzMCUgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1vdXRsaW5lZC1kZW5zZS1sYWJlbC1wb3NpdGlvbi15OiAxMTAlICFkZWZhdWx0O1xuJG1kYy1zZWxlY3Qtb3V0bGluZWQtd2l0aC1sZWFkaW5nLWljb24tbGFiZWwtcG9zaXRpb24teDogMzJweCAhZGVmYXVsdDtcblxuJG1kYy1zZWxlY3QtZHJvcGRvd24tdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXMgIWRlZmF1bHQ7XG5cbi8vIEVycm9yIGNvbG9yc1xuJG1kYy1zZWxlY3QtZXJyb3ItY29sb3I6IGVycm9yICFkZWZhdWx0O1xuIiwiLy9cclxuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cclxuLy9cclxuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxyXG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXHJcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcclxuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxyXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcclxuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcclxuLy9cclxuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cclxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXHJcbi8vXHJcbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcclxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXHJcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxyXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXHJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXHJcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cclxuLy8gVEhFIFNPRlRXQVJFLlxyXG4vL1xyXG5cclxuQGltcG9ydCBcIi4uL2Zsb2F0aW5nLWxhYmVsL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9zaGFwZS9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL3NoYXBlL2Z1bmN0aW9uc1wiO1xyXG5AaW1wb3J0IFwiLi4vbGluZS1yaXBwbGUvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9ub3RjaGVkLW91dGxpbmUvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9ub3RjaGVkLW91dGxpbmUvdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCIuL2ljb24vbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xyXG5cclxuLy8gUHVibGljXHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1pbmstY29sb3IoJGNvbG9yKSB7XHJcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWluay1jb2xvcl8oJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LWNvbnRhaW5lci1maWxsLWNvbG9yKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkge1xyXG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1jb250YWluZXItZmlsbC1jb2xvcl8oJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LWZvY3VzZWQtbGFiZWwtY29sb3IoJGNvbG9yKSB7XHJcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XHJcbiAgICAmLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1pbmstY29sb3IobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1ob3Zlci1ib3R0b20tbGluZS1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbDpob3ZlciB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LW5hdGl2ZS1jb250cm9sLWJvdHRvbS1saW5lLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtYm90dG9tLWxpbmUtY29sb3IoJGNvbG9yKSB7XHJcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWJvdHRvbS1saW5lLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtZm9jdXNlZC1ib3R0b20tbGluZS1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtZm9jdXNlZC1saW5lLXJpcHBsZS1jb2xvcl8oJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LWxhYmVsLWNvbG9yKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtaW5rLWNvbG9yKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1vdXRsaW5lLWNvbG9yKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkge1xyXG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1vdXRsaW5lLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtaG92ZXItb3V0bGluZS1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtaG92ZXItb3V0bGluZS1jb2xvcl8oJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LWZvY3VzZWQtb3V0bGluZS1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtZm9jdXNlZC1vdXRsaW5lLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3Qtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSkge1xyXG4gIEBpZiBsZW5ndGgoJHJhZGl1cykgPiAyIHtcclxuICAgIEBlcnJvciBcIkludmFsaWQgcmFkaXVzOiAnI3skcmFkaXVzfScgY29tcG9uZW50IGRvZXNuJ3QgYWxsb3cgY3VzdG9taXppbmcgYWxsIGNvcm5lcnNcIjtcclxuICB9XHJcblxyXG4gICRtYXNrZWQtcmFkaXVzOiBtZGMtc2hhcGUtbWFzay1yYWRpdXMoJHJhZGl1cywgMSAxIDAgMCk7XHJcblxyXG4gICYsXHJcbiAgJl9fbmF0aXZlLWNvbnRyb2wge1xyXG4gICAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cyhtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cygkbWRjLXNlbGVjdC1oZWlnaHQsICRtYXNrZWQtcmFkaXVzKSwgJHJ0bC1yZWZsZXhpdmUpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3Qtb3V0bGluZS1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlKSB7XHJcbiAgJHJlc29sdmVkLXJhZGl1czogbnRoKG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtc2VsZWN0LWhlaWdodCwgbWRjLXNoYXBlLXByb3AtdmFsdWUoJHJhZGl1cykpLCAxKTtcclxuXHJcbiAgQGlmIChsZW5ndGgobWRjLXNoYXBlLXByb3AtdmFsdWUoJHJhZGl1cykpID4gMSkge1xyXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1saW5lLWxlbmd0aFxyXG4gICAgQHdhcm4gXCJtZGMtc2VsZWN0LW91dGxpbmUtc2hhcGUtcmFkaXVzIG9ubHkgc3VwcG9ydHMgYSBzaW5nbGUgcmFkaXVzOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21hdGVyaWFsLWNvbXBvbmVudHMvbWF0ZXJpYWwtY29tcG9uZW50cy13ZWIvaXNzdWVzLzQxNDBcIjtcclxuICB9XHJcblxyXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lIHtcclxuICAgIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtc2hhcGUtcmFkaXVzKCRyZXNvbHZlZC1yYWRpdXMsICRydGwtcmVmbGV4aXZlKTtcclxuICB9XHJcblxyXG4gIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKCRyZXNvbHZlZC1yYWRpdXMsICRydGwtcmVmbGV4aXZlKTtcclxuICB9XHJcblxyXG4gIEBpZiAoJHJlc29sdmVkLXJhZGl1cyA+ICRtZGMtbm90Y2hlZC1vdXRsaW5lLWxlYWRpbmctd2lkdGgpIHtcclxuICAgIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KFxyXG4gICAgICAgIHBhZGRpbmcsXHJcbiAgICAgICAgJHJlc29sdmVkLXJhZGl1cyArICRtZGMtbm90Y2hlZC1vdXRsaW5lLXBhZGRpbmcsXHJcbiAgICAgICAgJG1kYy1zZWxlY3QtYXJyb3ctcGFkZGluZ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgICsgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShcclxuICAgICAgICBtYXJnaW4sXHJcbiAgICAgICAgJHJlc29sdmVkLXJhZGl1cyArICRtZGMtbm90Y2hlZC1vdXRsaW5lLXBhZGRpbmcsXHJcbiAgICAgICAgJG1kYy1zZWxlY3Qtb3V0bGluZS1sYWJlbC1vZmZzZXRcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIFByaXZhdGVcclxuQG1peGluIG1kYy1zZWxlY3QtZm9jdXNlZC1saW5lLXJpcHBsZV8ge1xyXG4gICYubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLWxpbmUtcmlwcGxlIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtZm9jdXNlZC1vdXRsaW5lXyB7XHJcbiAgJi5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIHtcclxuICAgIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtc3Ryb2tlLXdpZHRoKDJweCk7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LWZvY3VzZWQtb3V0bGluZS1pZGxlXyB7XHJcbiAgJi5tZGMtc2VsZWN0LS1mb2N1c2VkIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtaW5rLWNvbG9yXygkY29sb3IpIHtcclxuICAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXHJcbiAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1jb250YWluZXItZmlsbC1jb2xvcl8oJGNvbG9yKSB7XHJcbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvcikge1xyXG4gIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCxcclxuICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LW5hdGl2ZS1jb250cm9sLWJvdHRvbS1saW5lLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtbmF0aXZlLWNvbnRyb2wtYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvcikge1xyXG4gIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1ib3R0b20tY29sb3IsICRjb2xvcik7XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LWZvY3VzZWQtbGluZS1yaXBwbGUtY29sb3JfKCRjb2xvcikge1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtZm9jdXNlZC1saW5lLXJpcHBsZV8ge1xyXG4gICAgQGluY2x1ZGUgbWRjLWxpbmUtcmlwcGxlLWNvbG9yKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1kZC1hcnJvdy1zdmctYmdfKCRmaWxsLWhleC1udW1iZXIsICRvcGFjaXR5KSB7XHJcbiAgLy8gTG9va3VwIGNvbG9yIGFuZCByZW1vdmUgbGVhZGluZyAjLlxyXG4gICRmaWxsLWhleC1udW1iZXI6IG1kYy10aGVtZS1wcm9wLXZhbHVlKCRmaWxsLWhleC1udW1iZXIpO1xyXG4gICRmaWxsLWhleC1udW1iZXI6IHN0ci1zbGljZSh1bnF1b3RlKFwiI3skZmlsbC1oZXgtbnVtYmVyfVwiKSwgMik7XHJcblxyXG4gIGJhY2tncm91bmQ6XHJcbiAgICB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIwd2lkdGglM0QlMjIxMHB4JTIyJTIwaGVpZ2h0JTNEJTIyNXB4JTIyJTIwdmlld0JveCUzRCUyMjclMjAxMCUyMDEwJTIwNSUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBpZCUzRCUyMlNoYXBlJTIyJTIwc3Ryb2tlJTNEJTIybm9uZSUyMiUyMGZpbGwlM0QlMjIlMjMjeyRmaWxsLWhleC1udW1iZXJ9JTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUyMG9wYWNpdHklM0QlMjIjeyRvcGFjaXR5fSUyMiUyMHBvaW50cyUzRCUyMjclMjAxMCUyMDEyJTIwMTUlMjAxNyUyMDEwJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwQSUzQyUyRnN2ZyUzRVwiKVxyXG4gICAgbm8tcmVwZWF0XHJcbiAgICBjZW50ZXI7XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LW91dGxpbmUtY29sb3JfKCRjb2xvcikge1xyXG4gIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtY29sb3IoJGNvbG9yKTtcclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtaG92ZXItb3V0bGluZS1jb2xvcl8oJGNvbG9yKSB7XHJcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLWNvbWJpbmF0b3Itc3BhY2UtYWZ0ZXJcclxuICAmOm5vdCgubWRjLXNlbGVjdC0tZm9jdXNlZCkgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sOmhvdmVyIH4sXHJcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWZvY3VzZWQpIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0OmhvdmVyIH4ge1xyXG4gICAgLm1kYy1ub3RjaGVkLW91dGxpbmUge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWNvbG9yKCRjb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1mb2N1c2VkLW91dGxpbmUtY29sb3JfKCRjb2xvcikge1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtZm9jdXNlZC1vdXRsaW5lXyB7XHJcbiAgICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWNvbG9yKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC1mbG9hdGluZy1sYWJlbF8ge1xyXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xyXG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgJG1kYy1zZWxlY3Qtb3V0bGluZS1sYWJlbC1vZmZzZXQpO1xyXG5cclxuICAgIHRvcDogMjFweDtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiB7XHJcbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcclxuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgJG1kYy1zZWxlY3QtaWNvbi1wYWRkaW5nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubWRjLXNlbGVjdC0tb3V0bGluZWQge1xyXG4gICAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICRtZGMtbm90Y2hlZC1vdXRsaW5lLXBhZGRpbmcpO1xyXG5cclxuICAgICAgdG9wOiAxN3B4O1xyXG4gICAgfVxyXG5cclxuICAgICYubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ge1xyXG4gICAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcclxuICAgICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLXNlbGVjdC1pY29uLXBhZGRpbmcgLSAkbWRjLW5vdGNoZWQtb3V0bGluZS1sZWFkaW5nLXdpZHRoKTtcclxuXHJcbiAgICAgICAgJi0tZmxvYXQtYWJvdmUge1xyXG4gICAgICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgJG1kYy1zZWxlY3QtaWNvbi1wYWRkaW5nIC0gJG1kYy1ub3RjaGVkLW91dGxpbmUtbGVhZGluZy13aWR0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXNlbGVjdC13aXRoLWxlYWRpbmctaWNvbl8ge1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtaWNvbi1ob3Jpem9udGFsLXBvc2l0aW9uXygxNnB4LCAkbWRjLXNlbGVjdC1pY29uLXBhZGRpbmcpO1xyXG5cclxuICAmLm1kYy1zZWxlY3QtLW91dGxpbmVkIHtcclxuICAgIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oXHJcbiAgICAgICRtZGMtc2VsZWN0LW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXksXHJcbiAgICAgICRtZGMtc2VsZWN0LW91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uLWxhYmVsLXBvc2l0aW9uLXhcclxuICAgICk7XHJcbiAgICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtYW5pbWF0aW9uKHNlbGVjdC1vdXRsaW5lZC1sZWFkaW5nLWljb24pO1xyXG5cclxuICAgIEBpbmNsdWRlIG1kYy1ydGwge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtYW5pbWF0aW9uKHNlbGVjdC1vdXRsaW5lZC1sZWFkaW5nLWljb24tcnRsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QtaXRlbV9fdGV4dCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShwYWRkaW5nLCAzMnB4IC8qIGxlZnQtdmFsdWUgKi8sIDMycHggLyogcmlnaHQtdmFsdWUgKi8pO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3QtdGV4dC1hbmQtY29udHJvbF8ge1xyXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcclxuICAgIG1pbi13aWR0aDogMjAwcHg7XHJcbiAgICBwYWRkaW5nLXRvcDogMjJweDtcclxuICB9XHJcblxyXG4gIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCxcclxuICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShwYWRkaW5nLCAkbWRjLXNlbGVjdC1sYWJlbC1wYWRkaW5nLCAkbWRjLXNlbGVjdC1hcnJvdy1wYWRkaW5nKTtcclxuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KHN1YnRpdGxlMSk7XHJcblxyXG4gICAgJjo6LW1zLWV4cGFuZCB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6LW1zLXZhbHVlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNvdW50ZXJhY3RzIHRoZSBleHRyYSB0ZXh0IHBhZGRpbmcgdGhhdCBGaXJlZm94IGFkZHMgYnkgZGVmYXVsdFxyXG4gICAgQC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeChcIlwiKSB7XHJcbiAgICAgIHRleHQtaW5kZW50OiAtMnB4O1xyXG4gICAgfVxyXG5cclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogJG1kYy1zZWxlY3QtaGVpZ2h0O1xyXG4gICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgY29sb3I6IGluaGVyaXQ7IC8vIE92ZXJyaWRlIGRlZmF1bHQgdXNlciBhZ2VudCBzdHlsZXNoZWV0XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LWRpc2FibGVkXyB7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1jb250YWluZXItZmlsbC1jb2xvcl8oJG1kYy1zZWxlY3QtZGlzYWJsZWQtZmlsbC1jb2xvcik7XHJcblxyXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLWluay1jb2xvcigkbWRjLXNlbGVjdC1kaXNhYmxlZC1sYWJlbC1jb2xvcik7XHJcbiAgfVxyXG5cclxuICAubWRjLXNlbGVjdF9fZHJvcGRvd24taWNvbiB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWRkLWFycm93LXN2Zy1iZ18oJG1kYy1zZWxlY3QtZHJvcGRvd24tY29sb3IsICRtZGMtc2VsZWN0LWRpc2FibGVkLWRyb3Bkb3duLW9wYWNpdHkpO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1saW5lLXJpcHBsZSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1zZWxlY3RfX2ljb24ge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRtZGMtc2VsZWN0LWRpc2FibGVkLWljb24tY29sb3IpO1xyXG4gIH1cclxuXHJcbiAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxyXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcclxuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkbWRjLXNlbGVjdC1kaXNhYmxlZC1pbmstY29sb3IpO1xyXG5cclxuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcclxuICB9XHJcblxyXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJi5tZGMtc2VsZWN0LS1vdXRsaW5lZCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWNvbnRhaW5lci1maWxsLWNvbG9yXyh0cmFuc3BhcmVudCk7XHJcblxyXG4gICAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxyXG4gICAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xyXG4gICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3Qtb3V0bGluZS1jb2xvcl8oJG1kYy1zZWxlY3Qtb3V0bGluZWQtZGlzYWJsZWQtYm9yZGVyKTtcclxuICB9XHJcblxyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG5cclxuQG1peGluIG1kYy1zZWxlY3Qtb3V0bGluZWRfIHtcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWNvbnRhaW5lci1maWxsLWNvbG9yKHRyYW5zcGFyZW50KTtcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LW91dGxpbmUtY29sb3IoJG1kYy1zZWxlY3Qtb3V0bGluZWQtaWRsZS1ib3JkZXIpO1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtaG92ZXItb3V0bGluZS1jb2xvcigkbWRjLXNlbGVjdC1vdXRsaW5lZC1ob3Zlci1ib3JkZXIpO1xyXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtZm9jdXNlZC1vdXRsaW5lLWNvbG9yKHByaW1hcnkpO1xyXG4gIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24odGV4dC1maWVsZC1vdXRsaW5lZCk7XHJcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1vdXRsaW5lLXNoYXBlLXJhZGl1cyhzbWFsbCk7XHJcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKHRyYW5zcGFyZW50KTtcclxuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWNvbnRhaW5lci1maWxsLWNvbG9yKHRyYW5zcGFyZW50KTtcclxuICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uKCRtZGMtc2VsZWN0LW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXksIDApO1xyXG5cclxuICBib3JkZXI6IG5vbmU7XHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7XHJcblxyXG4gIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCxcclxuICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShwYWRkaW5nLCAkbWRjLXNlbGVjdC1sYWJlbC1wYWRkaW5nLCAkbWRjLXNlbGVjdC1hcnJvdy1wYWRkaW5nKTtcclxuXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgcGFkZGluZy10b3A6IDEycHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgei1pbmRleDogMTtcclxuICB9XHJcblxyXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcclxuICAgIHBhZGRpbmctdG9wOiAxNHB4O1xyXG4gIH1cclxuXHJcbiAgLm1kYy1zZWxlY3RfX2ljb24ge1xyXG4gICAgei1pbmRleDogMjtcclxuICB9XHJcblxyXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMTVyZW07XHJcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtc2VsZWN0LWhlbHBlci10ZXh0XyB7XHJcbiAgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQge1xyXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXHJcbiAgICAubWRjLXNlbGVjdCArICYge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCArICYge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG4gICAgfVxyXG4gICAgLy8gc3R5bGVsaW50LWVuYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cclxuICB9XHJcblxyXG4gIC5tZGMtc2VsZWN0LS1mb2N1c2VkICsgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQ6bm90KC5tZGMtc2VsZWN0LWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZykge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuIiwiLy8gIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyAgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vICBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOi9cbi8vXG4vLyAgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vICBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4vXG4vL1xuLy8gIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyAgVEhFIFNPRlRXQVJFLlxuLy9cblxuLy8gUHVibGljIG1peGluc1xuXG5AbWl4aW4gbWRjLXNlbGVjdC1oZWxwZXItdGV4dC1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1oZWxwZXItdGV4dC1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC1oZWxwZXItdGV4dC12YWxpZGF0aW9uLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWhlbHBlci10ZXh0LXZhbGlkYXRpb24tY29sb3JfKCRjb2xvcik7XG4gIH1cbn1cblxuLy8gUHJpdmF0ZSBtaXhpbnNcblxuQG1peGluIG1kYy1zZWxlY3QtaGVscGVyLXRleHQtY29sb3JfKCRjb2xvcikge1xuICArIC5tZGMtc2VsZWN0LWhlbHBlci10ZXh0IHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC1oZWxwZXItdGV4dC12YWxpZGF0aW9uLWNvbG9yXygkY29sb3IpIHtcbiAgJi5tZGMtc2VsZWN0LS1pbnZhbGlkICsgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuIiwiLy9cclxuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cclxuLy9cclxuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxyXG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXHJcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcclxuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxyXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcclxuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcclxuLy9cclxuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cclxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXHJcbi8vXHJcbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcclxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXHJcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxyXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXHJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXHJcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cclxuLy8gVEhFIFNPRlRXQVJFLlxyXG4vL1xyXG5cclxuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vc2hhcGUvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9zaGFwZS9mdW5jdGlvbnNcIjtcclxuQGltcG9ydCBcIi4uL3J0bC9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XHJcblxyXG5AbWl4aW4gbWRjLW5vdGNoZWQtb3V0bGluZS1jb2xvcigkY29sb3IpIHtcclxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcclxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXHJcbiAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcclxuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtbm90Y2hlZC1vdXRsaW5lLXN0cm9rZS13aWR0aCgkd2lkdGgpIHtcclxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcclxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXHJcbiAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcclxuICAgIGJvcmRlci13aWR0aDogJHdpZHRoO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1ub3RjaGVkLW91dGxpbmUtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSkge1xyXG4gICRyYWRpdXM6IG1kYy1zaGFwZS1wcm9wLXZhbHVlKCRyYWRpdXMpO1xyXG5cclxuICBAaWYgKGxlbmd0aCgkcmFkaXVzKSA+IDEpIHtcclxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGluZS1sZW5ndGhcclxuICAgIEB3YXJuIFwibWRjLW5vdGNoZWQtb3V0bGluZS1zaGFwZS1yYWRpdXMgb25seSBzdXBwb3J0cyBhIHNpbmdsZSByYWRpdXM7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWF0ZXJpYWwtY29tcG9uZW50cy9tYXRlcmlhbC1jb21wb25lbnRzLXdlYi9pc3N1ZXMvNDE0MFwiO1xyXG4gIH1cclxuXHJcbiAgJHJhZGl1czogbnRoKCRyYWRpdXMsIDEpO1xyXG5cclxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKG1kYy1zaGFwZS1tYXNrLXJhZGl1cygkcmFkaXVzLCAxIDAgMCAxKSwgJHJ0bC1yZWZsZXhpdmU6IHRydWUpO1xyXG5cclxuICAgIEBpZiAoJHJhZGl1cyA+ICRtZGMtbm90Y2hlZC1vdXRsaW5lLWxlYWRpbmctd2lkdGgpIHtcclxuICAgICAgd2lkdGg6ICRyYWRpdXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgKCRyYWRpdXMgPiAkbWRjLW5vdGNoZWQtb3V0bGluZS1sZWFkaW5nLXdpZHRoKSB7XHJcbiAgICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gge1xyXG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICN7JHJhZGl1c30gKiAyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKG1kYy1zaGFwZS1tYXNrLXJhZGl1cygkcmFkaXVzLCAwIDEgMSAwKSwgJHJ0bC1yZWZsZXhpdmU6IHRydWUpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1ub3RjaGVkLW91dGxpbmUtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oJHBvc2l0aW9uWSwgJHBvc2l0aW9uWDogMCUsICRzY2FsZTogLjc1KSB7XHJcbiAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uKCRwb3NpdGlvblkgKyAkbWRjLW5vdGNoZWQtb3V0bGluZS1sYWJlbC1hZGp1c3QsICRwb3NpdGlvblgsIDEpO1xyXG5cclxuICAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XHJcbiAgICBmb250LXNpemU6ICgkc2NhbGUgKiAxcmVtKTtcclxuICB9XHJcblxyXG4gIC8vIFR3byBzZWxlY3RvcnMgdG8gZW5zdXJlIHdlIHNlbGVjdCB0aGUgYXBwcm9wcmlhdGUgY2xhc3Mgd2hlbiBhcHBsaWVkIGZyb20gdGhpcyBjb21wb25lbnQgb3IgYSBwYXJlbnQgY29tcG9uZW50LlxyXG4gICYubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQsXHJcbiAgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbigkcG9zaXRpb25ZLCAkcG9zaXRpb25YLCAkc2NhbGUpO1xyXG5cclxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XHJcbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBrZXlmcmFtZXMgbWRjLXNsaWRlci1lbXBoYXNpemUge1xuICAwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA1MCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguODUpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguNTcxKTtcbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi90eXBvZ3JhcGh5L21peGluc1wiO1xuQGltcG9ydCBcIi4uL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgc2xpZGVyXG5cbi5tZGMtc2xpZGVyIHtcbiAgQGluY2x1ZGUgbWRjLXNsaWRlci1jb2xvci1hY2Nlc3NpYmxlKHNlY29uZGFyeSk7XG5cbiAgJi0tZGlzYWJsZWQge1xuICAgICRkaXNhYmxlZC1jb2xvcjogIzlhOWE5YTtcblxuICAgIEBpbmNsdWRlIG1kYy1zbGlkZXItaGlnaGxpZ2h0LWNvbG9yXygkZGlzYWJsZWQtY29sb3IpO1xuICAgIEBpbmNsdWRlIG1kYy1zbGlkZXItcmFpbC1jb2xvcl8oJGRpc2FibGVkLWNvbG9yKTtcbiAgICBAaW5jbHVkZSBtZGMtc2xpZGVyLXJhaWwtdGljay1tYXJrLWNvbG9yXygkZGlzYWJsZWQtY29sb3IpO1xuICAgIEBpbmNsdWRlIG1kYy1zbGlkZXItdGh1bWItY29sb3JfKCRkaXNhYmxlZC1jb2xvcik7XG4gICAgQGluY2x1ZGUgbWRjLXNsaWRlci10aHVtYi1zdHJva2UtY3V0b3V0Xyh3aGl0ZSk7XG5cbiAgICBjdXJzb3I6IGF1dG87XG4gIH1cblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKGJsYWNrLCAwKTtcblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgJl9fdHJhY2stY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gICZfX3RyYWNrIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG5cbiAgICBAaW5jbHVkZSBtZGMtcnRsKFwiLm1kYy1zbGlkZXJcIikge1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xuICAgIH1cbiAgfVxuXG4gICZfX3RyYWNrLW1hcmtlci1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIEBpbmNsdWRlIG1kYy1ydGwoXCIubWRjLXNsaWRlclwiKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAvLyBMYXN0IG1hcmtlciBhdCB0aGUgdmVyeSBlbmQgb2YgdGhlIHNsaWRlciAocmlnaHQtbW9zdCBpbiBMVFIsIGxlZnQtbW9zdCBpbiBSVEwpXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMnB4O1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cbiAgfVxuXG4gICZfX3RyYWNrLW1hcmtlciB7XG4gICAgZmxleDogMTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDJweDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkOjphZnRlciB7XG4gICAgICB3aWR0aDogM3B4O1xuICAgIH1cbiAgfVxuXG4gICZfX3RodW1iLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTVweDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAyMXB4O1xuICAgIC8vIEVuc3VyZSB0aGF0IHRvdWNoaW5nIGFueXdoZXJlIHdpdGhpbiB0aGUgWS1jb29yZGluYXRlIHNwYWNlIG9mIHRodW1iXG4gICAgLy8gaXMgY29uc2lkZXJlZCBcImNsaWNraW5nIG9uIHRoZSB0aHVtYlwiLlxuICAgIGhlaWdodDogMTAwJTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB9XG5cbiAgJl9fdGh1bWIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC41NzEpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMDBtcyBlYXNlLW91dCwgZmlsbCAxMDBtcyBlYXNlLW91dCwgc3Ryb2tlIDEwMG1zIGVhc2Utb3V0O1xuICAgIHN0cm9rZS13aWR0aDogMy41O1xuICB9XG5cbiAgJl9fZm9jdXMtcmluZyB7XG4gICAgd2lkdGg6IDIxcHg7XG4gICAgaGVpZ2h0OiAyMXB4O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNjYuNjdtcyBlYXNlLW91dCwgb3BhY2l0eSAyNjYuNjdtcyBlYXNlLW91dCwgYmFja2dyb3VuZC1jb2xvciAyNjYuNjdtcyBlYXNlLW91dDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gICZfX3BpbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjZweDtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICBtYXJnaW4tbGVmdDogLTJweDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDApIHRyYW5zbGF0ZSgwLCAwKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZS1vdXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlIDUwJSA1MCUgMCU7XG5cbiAgICAvLyBFbnN1cmluZyB0aGF0IHRoZSBwaW4gaXMgaGlnaGVyIHRoYW4gdGhlIHRodW1iIGluIHRoZSBzdGFja2luZyBvcmRlclxuICAgIC8vIHJlbW92ZXMgc29tZSByZW5kZXJpbmcgamFuayBvYnNlcnZlZCBpbiBDaHJvbWUuXG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gICZfX3Bpbi12YWx1ZS1tYXJrZXIge1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGJvZHkyKTtcblxuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgfVxufVxuXG4ubWRjLXNsaWRlci0tYWN0aXZlIHtcbiAgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuLm1kYy1zbGlkZXItLWZvY3VzIHtcbiAgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICBhbmltYXRpb246IG1kYy1zbGlkZXItZW1waGFzaXplIDI2Ni42N21zIGxpbmVhcjtcbiAgfVxuXG4gIC5tZGMtc2xpZGVyX19mb2N1cy1yaW5nIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS41NSwgMS41NSwgMS41NSk7XG4gICAgb3BhY2l0eTogLjI1O1xuICB9XG59XG5cbi5tZGMtc2xpZGVyLS1pbi10cmFuc2l0IHtcbiAgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAxNDBtcztcbiAgfVxufVxuXG4vLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBUaGVyZSBhcmUgbXVsdGlwbGUgY2FzZXMgd2hlcmUgd2Ugd2FudCB0aGUgc2xpZGVyIHRvXG4vLyB0cmFuc2l0aW9uIHNlYW1sZXNzbHkgZXZlbiB0aG91Z2ggd2UncmUganVtcGluZyB0byBhIHNwb3QuIFRoZSBzZWxlY3RvcnNcbi8vIGJlbG93IGhpZ2hsaWdodCB0aGVzZSBjYXNlcy4gVGhlIHNlbGVjdG9ycyBhcmUgc3VwcGxlbWVudGVkIGJ5IGEgY29tbWVudFxuLy8gZGVub3RpbmcgdGhlaXIgc2VtYW50aWMgbWVhbmluZyB3aXRoaW4gdGhlIHNsaWRlci5cblxuLy8gV2hlbiBhIHVzZXIgY2xpY2tzIHNvbWV3aGVyZSBvbiB0aGUgdHJhY2sgdGhhdCBpcyBub3QgZGlyZWN0bHkgdGhlIHNsaWRlclxuLy8gdGh1bWIgY29udGFpbmVyLCB3ZSB0cmFuc2l0aW9uIHRvIHRoZSBwbGFjZSB3aGVyZSB0aGUgdXNlciBjbGlja2VkLlxuLm1kYy1zbGlkZXItLWluLXRyYW5zaXQsXG4vLyBXaGVuIGEgdXNlciBpcyB1c2luZyB0aGUgYXJyb3cga2V5cyB0byBtb2RpZnkgdGhlIHZhbHVlIG9mIHRoZSBzbGlkZXIgcmF0aGVyXG4vLyB0aGFuIGRyYWdnaW5nIHdpdGggYSBwb2ludGVyLCB3ZSB0cmFuc2l0aW9uIGZyb20gb25lIHZhbHVlIHRvIGFub3RoZXIuXG4ubWRjLXNsaWRlcjpmb2N1czpub3QoLm1kYy1zbGlkZXItLWFjdGl2ZSkge1xuICAubWRjLXNsaWRlcl9fdGh1bWItY29udGFpbmVyLFxuICAubWRjLXNsaWRlcl9fdHJhY2sge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA4MG1zIGVhc2U7XG4gIH1cbn1cblxuLm1kYy1zbGlkZXItLWRpc2NyZXRlIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gICYubWRjLXNsaWRlci0tYWN0aXZlIHtcbiAgICAubWRjLXNsaWRlcl9fdGh1bWIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZShjYWxjKDEyIC8gMjEpKTtcbiAgICB9XG5cbiAgICAubWRjLXNsaWRlcl9fcGluIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMSkgdHJhbnNsYXRlKDE5cHgsIC0yMHB4KTtcbiAgICB9XG4gIH1cblxuICAmLm1kYy1zbGlkZXItLWZvY3VzIHtcbiAgICAubWRjLXNsaWRlcl9fdGh1bWIge1xuICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXNsaWRlci0tZGlzcGxheS1tYXJrZXJzIHtcbiAgICAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyLWNvbnRhaW5lciB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuICAvLyBzdHlsZWxpbnQtZW5hYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxufVxuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi90aGVtZS9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZS92YXJpYWJsZXNcIjsgLy8gZm9yIG1kYy10aGVtZS1wcm9wLXZhbHVlXG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy9cbi8vIFB1YmxpY1xuLy9cblxuQG1peGluIG1kYy1zbGlkZXItaGlnaGxpZ2h0LWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtc2xpZGVyLWhpZ2hsaWdodC1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNsaWRlci1yYWlsLWNvbG9yKCRjb2xvciwgJG9wYWNpdHk6ICRtZGMtc2xpZGVyLWJhc2VsaW5lLXJhaWwtb3BhY2l0eSkge1xuICAmOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtc2xpZGVyLXJhaWwtY29sb3JfKCRjb2xvciwgJG9wYWNpdHkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2xpZGVyLXJhaWwtdGljay1tYXJrLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtc2xpZGVyLXJhaWwtdGljay1tYXJrLWNvbG9yXygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2xpZGVyLXRodW1iLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtc2xpZGVyLXRodW1iLWNvbG9yXygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2xpZGVyLWZvY3VzLWhhbG8tY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkge1xuICAgIC5tZGMtc2xpZGVyX19mb2N1cy1yaW5nIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtc2xpZGVyLXZhbHVlLXBpbi1pbmstY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkge1xuICAgIC5tZGMtc2xpZGVyX19waW4ge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtc2xpZGVyLXZhbHVlLXBpbi1maWxsLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIHtcbiAgICAubWRjLXNsaWRlcl9fcGluIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtc2xpZGVyLXZhbHVlLXBpbi1maWxsLWNvbG9yLWFjY2Vzc2libGUoJGNvbG9yKSB7XG4gICRjb2xvci12YWx1ZTogbWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKTtcbiAgJGluay1jb2xvcjogaWYobWRjLXRoZW1lLXRvbmUoJGNvbG9yLXZhbHVlKSA9PSBcImxpZ2h0XCIsIHRleHQtcHJpbWFyeS1vbi1saWdodCwgdGV4dC1wcmltYXJ5LW9uLWRhcmspO1xuXG4gIEBpbmNsdWRlIG1kYy1zbGlkZXItdmFsdWUtcGluLWZpbGwtY29sb3IoJGNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXNsaWRlci12YWx1ZS1waW4taW5rLWNvbG9yKCRpbmstY29sb3IpO1xufVxuXG4vLyBOT1RFOiBUaGlzIG1peGluIHNldHMgdGhlIGNvbG9yIG9mIEFMTCBjdXN0b21pemFibGUgZWxlbWVudHMgaW4gdGhlIHNsaWRlci4gSWYgbmV3IGVsZW1lbnRzIGFyZSBhZGRlZCwgdGhpcyBtaXhpblxuLy8gc2hvdWxkIGJlIHVwZGF0ZWQgdG8gY292ZXIgdGhvc2UgYWRkaXRpb25hbCBlbGVtZW50cy5cbkBtaXhpbiBtZGMtc2xpZGVyLWNvbG9yLWFjY2Vzc2libGUoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIG1kYy1zbGlkZXItaGlnaGxpZ2h0LWNvbG9yKCRjb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1zbGlkZXItcmFpbC1jb2xvcigkY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtc2xpZGVyLXJhaWwtdGljay1tYXJrLWNvbG9yKCRjb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1zbGlkZXItdGh1bWItY29sb3IoJGNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXNsaWRlci1mb2N1cy1oYWxvLWNvbG9yKCRjb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1zbGlkZXItdmFsdWUtcGluLWZpbGwtY29sb3ItYWNjZXNzaWJsZSgkY29sb3IpO1xufVxuXG4vL1xuLy8gUHJpdmF0ZVxuLy9cblxuQG1peGluIG1kYy1zbGlkZXItaGlnaGxpZ2h0LWNvbG9yXygkY29sb3IpIHtcbiAgLm1kYy1zbGlkZXJfX3RyYWNrIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2xpZGVyLXJhaWwtY29sb3JfKCRjb2xvciwgJG9wYWNpdHk6ICRtZGMtc2xpZGVyLWJhc2VsaW5lLXJhaWwtb3BhY2l0eSkge1xuICAubWRjLXNsaWRlcl9fdHJhY2stY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRvcGFjaXR5KSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbGlkZXItcmFpbC10aWNrLW1hcmstY29sb3JfKCRjb2xvcikge1xuICAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyOjphZnRlcixcbiAgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlci1jb250YWluZXI6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2xpZGVyLXRodW1iLWNvbG9yXygkY29sb3IpIHtcbiAgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChmaWxsLCAkY29sb3IpO1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKHN0cm9rZSwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNsaWRlci10aHVtYi1zdHJva2UtY3V0b3V0XygkY29sb3IpIHtcbiAgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgc3Ryb2tlOiAkY29sb3I7XG4gICAgc3Ryb2tlOiB2YXIoLS1tZGMtc2xpZGVyLWJnLWNvbG9yLWJlaGluZC1jb21wb25lbnQsICRjb2xvcik7XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vYW5pbWF0aW9uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL2J1dHRvbi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9pY29uLWJ1dHRvbi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBzbmFja2JhclxuLm1kYy1zbmFja2JhciB7XG4gIEBpbmNsdWRlIG1kYy1zbmFja2Jhci16LWluZGV4KCRtZGMtc25hY2tiYXItei1pbmRleCk7XG4gIEBpbmNsdWRlIG1kYy1zbmFja2Jhci12aWV3cG9ydC1tYXJnaW4oJG1kYy1zbmFja2Jhci12aWV3cG9ydC1tYXJnaW4tbmFycm93KTtcblxuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gIC8vIElnbm9yZSBtb3VzZSBldmVudHMgb24gdGhlIHJvb3QgbGF5b3V0IGVsZW1lbnQuXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gIC8vIEZvciBzb21lIHJlYXNvbiwgaU9TIFNhZmFyaSBkaXNwbGF5cyBhIHRhcCBoaWdobGlnaHQgb24gdGhlIGVudGlyZSBzbmFja2JhciBlbGVtZW50LlxuICAvLyBNb2JpbGUgU2FmYXJpIG9ubHkgc3VwcG9ydHMgYHJnYmFgIHZhbHVlcyBmb3IgdGhpcyBwcm9wZXJ0eTsgbmFtZWQgdmFsdWVzIGxpa2UgYHRyYW5zcGFyZW50YCBhcmUgaWdub3JlZC5cbiAgLy8gRnJvbSBBcHBsZSdzIGRvY3M6XG4gIC8vID4gVGhpcyBwcm9wZXJ0eSBvYmV5cyB0aGUgYWxwaGEgdmFsdWUsIGlmIHNwZWNpZmllZC5cbiAgLy8gPiBJZiB5b3UgZG9u4oCZdCBzcGVjaWZ5IGFuIGFscGhhIHZhbHVlLCBTYWZhcmkgb24gaU9TIGFwcGxpZXMgYSBkZWZhdWx0IGFscGhhIHZhbHVlIHRvIHRoZSBjb2xvci5cbiAgLy8gPiBUbyBkaXNhYmxlIHRhcCBoaWdobGlnaHRpbmcsIHNldCB0aGUgYWxwaGEgdmFsdWUgdG8gMCAoaW52aXNpYmxlKS5cbiAgLy8gPiBJZiB5b3Ugc2V0IHRoZSBhbHBoYSB2YWx1ZSB0byAxLjAgKG9wYXF1ZSksIHRoZSBlbGVtZW50IGlzIG5vdCB2aXNpYmxlIHdoZW4gdGFwcGVkLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2Jlbi1lYi9wb3N0Y3NzLWNvbG9ybWluL2lzc3Vlcy8xXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cblxuQGF0LXJvb3Qge1xuICBAaW5jbHVkZSBtZGMtc25hY2tiYXItZmlsbC1jb2xvcigkbWRjLXNuYWNrYmFyLWZpbGwtY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtc25hY2tiYXItbGFiZWwtaW5rLWNvbG9yKCRtZGMtc25hY2tiYXItbGFiZWwtaW5rLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXNuYWNrYmFyLW1pbi13aWR0aCgkbWRjLXNuYWNrYmFyLW1pbi13aWR0aCk7XG4gIEBpbmNsdWRlIG1kYy1zbmFja2Jhci1tYXgtd2lkdGgoJG1kYy1zbmFja2Jhci1tYXgtd2lkdGgpO1xuICBAaW5jbHVkZSBtZGMtc25hY2tiYXItZWxldmF0aW9uKCRtZGMtc25hY2tiYXItZWxldmF0aW9uKTtcbiAgQGluY2x1ZGUgbWRjLXNuYWNrYmFyLXNoYXBlLXJhZGl1cygkbWRjLXNuYWNrYmFyLXNoYXBlLXJhZGl1cyk7XG59XG5cbi5tZGMtc25hY2tiYXItLW9wZW5pbmcsXG4ubWRjLXNuYWNrYmFyLS1vcGVuLFxuLm1kYy1zbmFja2Jhci0tY2xvc2luZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5tZGMtc25hY2tiYXItLWxlYWRpbmcge1xuICBAaW5jbHVkZSBtZGMtc25hY2tiYXItcG9zaXRpb24tbGVhZGluZztcbn1cblxuLm1kYy1zbmFja2Jhci0tc3RhY2tlZCB7XG4gIEBpbmNsdWRlIG1kYy1zbmFja2Jhci1sYXlvdXQtc3RhY2tlZDtcbn1cblxuLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNmb3JtOiBzY2FsZSguOCk7XG4gIG9wYWNpdHk6IDA7XG5cbiAgLm1kYy1zbmFja2Jhci0tb3BlbiAmIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zaXRpb246XG4gICAgICBtZGMtYW5pbWF0aW9uLWVudGVyKG9wYWNpdHksICRtZGMtc25hY2tiYXItZW50ZXItZHVyYXRpb24pLFxuICAgICAgbWRjLWFuaW1hdGlvbi1lbnRlcih0cmFuc2Zvcm0sICRtZGMtc25hY2tiYXItZW50ZXItZHVyYXRpb24pO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87IC8vIEFsbG93IG1vdXNlIGV2ZW50cyBvbiBzdXJmYWNlIGVsZW1lbnQgd2hpbGUgc25hY2tiYXIgaXMgb3BlblxuICB9XG5cbiAgLm1kYy1zbmFja2Jhci0tY2xvc2luZyAmIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zaXRpb246IG1kYy1hbmltYXRpb24tZXhpdC1wZXJtYW5lbnQob3BhY2l0eSwgJG1kYy1zbmFja2Jhci1leGl0LWR1cmF0aW9uKTtcbiAgfVxufVxuXG4ubWRjLXNuYWNrYmFyX19sYWJlbCB7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KCRtZGMtc25hY2tiYXItbGFiZWwtdHlwZS1zY2FsZSk7XG5cbiAgZmxleC1ncm93OiAxO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDA7XG5cbiAgLy8gMTRweCB0b3AvYm90dG9tIHBhZGRpbmcgbmVlZGVkIHRvIG1ha2UgdGhlIGhlaWdodCA0OHB4LlxuICBwYWRkaW5nOiAxNHB4IDE2cHg7XG59XG5cbi8vIFVzZWQgdG8gcHJldmVudCB2aXN1YWwgamFuayB3aGVuIGFubm91bmNpbmcgbGFiZWwgdGV4dCB0byBzY3JlZW4gcmVhZGVycy5cbi8vIFNlZSB0aGUgYGFubm91bmNlKClgIGZ1bmN0aW9uIGluIHV0aWwuanMgZm9yIGRldGFpbHMuXG4ubWRjLXNuYWNrYmFyX19sYWJlbDo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBjb250ZW50OiBhdHRyKGRhdGEtbWRjLXNuYWNrYmFyLWxhYmVsLXRleHQpO1xufVxuXG4ubWRjLXNuYWNrYmFyX19hY3Rpb25zIHtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCAwLCAkbWRjLXNuYWNrYmFyLXBhZGRpbmcpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubWRjLXNuYWNrYmFyX19hY3Rpb24ge1xuICBAaW5jbHVkZSBtZGMtYnV0dG9uLWluay1jb2xvcigkbWRjLXNuYWNrYmFyLWFjdGlvbi1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRtZGMtc25hY2tiYXItYWN0aW9uLWluay1jb2xvcik7XG59XG5cbi5tZGMtc25hY2tiYXJfX2Rpc21pc3Mge1xuICBAaW5jbHVkZSBtZGMtaWNvbi1idXR0b24taW5rLWNvbG9yKCRtZGMtc25hY2tiYXItZGlzbWlzcy1pbmstY29sb3IpO1xufVxuXG4vLyBUd28gc2VsZWN0b3JzIGFyZSBuZWVkZWQgdG8gaW5jcmVhc2Ugc3BlY2lmaWNpdHkgYWJvdmUgYC5tYXRlcmlhbC1pY29uc2AuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItY2xhc3MtcGF0dGVyblxuLm1kYy1zbmFja2Jhcl9fZGlzbWlzcy5tZGMtc25hY2tiYXJfX2Rpc21pc3Mge1xuICBAaW5jbHVkZSBtZGMtaWNvbi1idXR0b24tc2l6ZSgkbWRjLXNuYWNrYmFyLWRpc21pc3MtaWNvbi1zaXplKTtcbn1cblxuLm1kYy1zbmFja2Jhcl9fYWN0aW9uICsgLm1kYy1zbmFja2Jhcl9fZGlzbWlzcyB7XG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgJG1kYy1zbmFja2Jhci1wYWRkaW5nLCAwKTtcbn1cblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vZWxldmF0aW9uL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3NoYXBlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtc25hY2tiYXItZmlsbC1jb2xvcigkY29sb3IpIHtcbiAgLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNuYWNrYmFyLWxhYmVsLWluay1jb2xvcigkY29sb3IpIHtcbiAgLm1kYy1zbmFja2Jhcl9fbGFiZWwge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc25hY2tiYXItc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSkge1xuICAubWRjLXNuYWNrYmFyX19zdXJmYWNlIHtcbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNuYWNrYmFyLW1pbi13aWR0aCgkbWluLXdpZHRoLCAkbW9iaWxlLWJyZWFrcG9pbnQ6ICRtZGMtc25hY2tiYXItbW9iaWxlLWJyZWFrcG9pbnQpIHtcbiAgLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gICAgbWluLXdpZHRoOiAkbWluLXdpZHRoO1xuXG4gICAgLy8gVGhlIGZpcnN0IG1lZGlhIHF1ZXJ5IGVuc3VyZXMgdGhhdCBzbmFja2JhcnMgYXJlIGFsd2F5cyAxMDAlIHdpZHRoIG9uIG1vYmlsZSBkZXZpY2VzLCBhcyByZXF1aXJlZCBieSB0aGUgc3BlYy5cbiAgICAvLyBUaGUgc2Vjb25kIG1lZGlhIHF1ZXJ5IHByZXZlbnRzIHNuYWNrYmFycyBmcm9tIGJlaW5nIHdpZGVyIHRoYW4gdGhlIHZpZXdwb3J0IGZvciBsYXJnZSBtaW4td2lkdGggdmFsdWVzLlxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbW9iaWxlLWJyZWFrcG9pbnQpLCAobWF4LXdpZHRoOiAkbWluLXdpZHRoKSB7XG4gICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtc25hY2tiYXItbWF4LXdpZHRoKCRtYXgtd2lkdGgpIHtcbiAgLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc25hY2tiYXItZWxldmF0aW9uKCR6LWluZGV4KSB7XG4gIC5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oJHotaW5kZXgpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc25hY2tiYXItdmlld3BvcnQtbWFyZ2luKCRtYXJnaW4pIHtcbiAgbWFyZ2luOiAkbWFyZ2luO1xufVxuXG5AbWl4aW4gbWRjLXNuYWNrYmFyLXotaW5kZXgoJHotaW5kZXgpIHtcbiAgei1pbmRleDogJHotaW5kZXg7XG59XG5cbkBtaXhpbiBtZGMtc25hY2tiYXItcG9zaXRpb24tbGVhZGluZyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuQG1peGluIG1kYy1zbmFja2Jhci1sYXlvdXQtc3RhY2tlZCB7XG4gIC5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cblxuICAubWRjLXNuYWNrYmFyX19hY3Rpb25zIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWRjLXNuYWNrYmFyLXBhZGRpbmc7XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vdGhlbWUvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWUvdmFyaWFibGVzXCI7IC8vIGZvciBtZGMtdGhlbWUtcHJvcC12YWx1ZSgpIGZ1bmN0aW9uXG5cbiRtZGMtc25hY2tiYXItZmlsbC1jb2xvcjogbWl4KG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCBtZGMtdGhlbWUtcHJvcC12YWx1ZShzdXJmYWNlKSwgODAlKSAhZGVmYXVsdDtcbiRtZGMtc25hY2tiYXItbGFiZWwtaW5rLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKHN1cmZhY2UpLCBtZGMtdGhlbWUtdGV4dC1lbXBoYXNpcyhoaWdoKSkgIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLWFjdGlvbi1pbmstY29sb3I6ICNiYjg2ZmMgIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLWRpc21pc3MtaW5rLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKHN1cmZhY2UpLCBtZGMtdGhlbWUtdGV4dC1lbXBoYXNpcyhoaWdoKSkgIWRlZmF1bHQ7XG5cbiRtZGMtc25hY2tiYXItbGFiZWwtdHlwZS1zY2FsZTogYm9keTIgIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLWRpc21pc3MtaWNvbi1zaXplOiAxOHB4ICFkZWZhdWx0O1xuJG1kYy1zbmFja2Jhci1taW4td2lkdGg6IDM0NHB4ICFkZWZhdWx0O1xuJG1kYy1zbmFja2Jhci1tYXgtd2lkdGg6IDY3MnB4ICFkZWZhdWx0O1xuJG1kYy1zbmFja2Jhci1tb2JpbGUtYnJlYWtwb2ludDogNDgwcHggIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLXZpZXdwb3J0LW1hcmdpbi1uYXJyb3c6IDhweCAhZGVmYXVsdDtcbiRtZGMtc25hY2tiYXItdmlld3BvcnQtbWFyZ2luLXdpZGU6IDI0cHggIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLXBhZGRpbmc6IDhweCAhZGVmYXVsdDtcblxuJG1kYy1zbmFja2Jhci1lbGV2YXRpb246IDYgIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLXNoYXBlLXJhZGl1czogc21hbGwgIWRlZmF1bHQ7IC8vIEtleSBmcm9tICRtZGMtc2hhcGUtY2F0ZWdvcnktdmFsdWVzIG9yIENTUyBsZW5ndGggdmFsdWUgKGUuZy4sIDRweClcbiRtZGMtc25hY2tiYXItei1pbmRleDogOCAhZGVmYXVsdDsgLy8gT25lIGFib3ZlIG1kYy1kaWFsb2dcblxuLy8gVGhlc2UgdmFyaWFibGVzIG5lZWQgdG8gYmUga2VwdCBpbiBzeW5jIHdpdGggdGhlIHZhbHVlcyBpbiBjb25zdGFudHMuanMuXG4kbWRjLXNuYWNrYmFyLWVudGVyLWR1cmF0aW9uOiAxNTBtcyAhZGVmYXVsdDtcbiRtZGMtc25hY2tiYXItZXhpdC1kdXJhdGlvbjogNzVtcyAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcmlwcGxlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vL1xuLy8gUHVibGljXG4vL1xuXG5AbWl4aW4gbWRjLXN3aXRjaC1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1zd2l0Y2gtd2l0aG91dC1yaXBwbGUoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXN3aXRjaC1yaXBwbGUoJHF1ZXJ5KTtcbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gc3dpdGNoIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLXN3aXRjaC1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiBtZGMtc3dpdGNoLXdpdGhvdXQtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgc3dpdGNoXG5cbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLXN3aXRjaCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2gtYmFzZV87XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLXN3aXRjaC10b2dnbGVkLW9uLXRyYWNrLWNvbG9yKCRtZGMtc3dpdGNoLWJhc2VsaW5lLXRoZW1lLWNvbG9yLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vbi10aHVtYi1jb2xvcigkbWRjLXN3aXRjaC1iYXNlbGluZS10aGVtZS1jb2xvciwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3dpdGNoLXRvZ2dsZWQtb2ZmLXRyYWNrLWNvbG9yKCRtZGMtc3dpdGNoLXRvZ2dsZWQtb2ZmLXRyYWNrLWNvbG9yLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtdGh1bWItY29sb3IoJG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtdGh1bWItY29sb3IsICRxdWVyeSk7XG4gIH1cblxuICAubWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbF87XG4gICAgfVxuICB9XG5cbiAgLm1kYy1zd2l0Y2hfX3RyYWNrIHtcbiAgICBAaW5jbHVkZSBtZGMtc3dpdGNoX190cmFja18oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheSB7XG4gICAgQGluY2x1ZGUgbWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXlfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLXN3aXRjaF9fdGh1bWIge1xuICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2hfX3RodW1iXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1zd2l0Y2gtLWNoZWNrZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAubWRjLXN3aXRjaF9fdHJhY2sge1xuICAgICAgICBAaW5jbHVkZSBtZGMtc3dpdGNoX190cmFjay1jaGVja2VkXztcbiAgICAgIH1cblxuICAgICAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5IHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXktY2hlY2tlZF87XG4gICAgICB9XG5cbiAgICAgIC5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbCB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2hfX25hdGl2ZS1jb250cm9sLWNoZWNrZWRfO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtc3dpdGNoLS1kaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2gtLWRpc2FibGVkLWJhc2VfO1xuXG4gICAgICAubWRjLXN3aXRjaF9fdGh1bWIge1xuICAgICAgICBAaW5jbHVkZSBtZGMtc3dpdGNoX190aHVtYi1kaXNhYmxlZF87XG4gICAgICB9XG5cbiAgICAgIC5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbCB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2hfX25hdGl2ZS1jb250cm9sLWRpc2FibGVkXztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBzd2l0Y2ggc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtc3dpdGNoLWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIG1kYy1zd2l0Y2gtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1jb21tb24oJHF1ZXJ5KTtcblxuICAubWRjLXN3aXRjaCB7XG4gICAgQGluY2x1ZGUgbWRjLXN3aXRjaC10b2dnbGVkLW9mZi1yaXBwbGUtY29sb3IoJG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtcmlwcGxlLWNvbG9yLCAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5IHtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy11bmJvdW5kZWQoMTAwJSwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRtZGMtc3dpdGNoLWJhc2VsaW5lLXRoZW1lLWNvbG9yLCBmYWxzZSwgJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN3aXRjaC10b2dnbGVkLW9uLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtc3dpdGNoLXRvZ2dsZWQtb24tdHJhY2stY29sb3IoJGNvbG9yLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtc3dpdGNoLXRvZ2dsZWQtb24tdGh1bWItY29sb3IoJGNvbG9yLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtc3dpdGNoLXRvZ2dsZWQtb24tcmlwcGxlLWNvbG9yKCRjb2xvciwgJHF1ZXJ5KTtcbn1cblxuQG1peGluIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtdHJhY2stY29sb3IoJGNvbG9yLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtc3dpdGNoLXRvZ2dsZWQtb2ZmLXRodW1iLWNvbG9yKCRjb2xvciwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXN3aXRjaC10b2dnbGVkLW9mZi1yaXBwbGUtY29sb3IoJGNvbG9yLCAkcXVlcnkpO1xufVxuXG5AbWl4aW4gbWRjLXN3aXRjaC10b2dnbGVkLW9uLXRyYWNrLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmLm1kYy1zd2l0Y2gtLWNoZWNrZWQgLm1kYy1zd2l0Y2hfX3RyYWNrIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN3aXRjaC10b2dnbGVkLW9uLXRodW1iLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmLm1kYy1zd2l0Y2gtLWNoZWNrZWQgLm1kYy1zd2l0Y2hfX3RodW1iIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN3aXRjaC10b2dnbGVkLW9uLXJpcHBsZS1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJi5tZGMtc3dpdGNoLS1jaGVja2VkIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheSB7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcygkY29sb3IsIGZhbHNlLCAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoLXRvZ2dsZWQtb2ZmLXRyYWNrLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RyYWNrIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN3aXRjaC10b2dnbGVkLW9mZi10aHVtYi1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgJjpub3QoLm1kYy1zd2l0Y2gtLWNoZWNrZWQpIC5tZGMtc3dpdGNoX190aHVtYiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtcmlwcGxlLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAmOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5IHtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRjb2xvciwgZmFsc2UsICRxdWVyeSk7XG4gIH1cbn1cblxuLy9cbi8vIFByaXZhdGVcbi8vXG5cbi8vIFN0cnVjdHVyZVxuQG1peGluIG1kYy1zd2l0Y2gtYmFzZV8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoX190cmFja18oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogJG1kYy1zd2l0Y2gtdHJhY2std2lkdGg7XG4gICAgaGVpZ2h0OiAkbWRjLXN3aXRjaC10cmFjay1oZWlnaHQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogJG1kYy1zd2l0Y2gtdHJhY2staGVpZ2h0IC8gMjtcbiAgICBvcGFjaXR5OiAuMzg7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBtZGMtc3dpdGNoLXRyYW5zaXRpb24ob3BhY2l0eSksXG4gICAgICBtZGMtc3dpdGNoLXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciksXG4gICAgICBtZGMtc3dpdGNoLXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXlfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLXN3aXRjaC10YXAtdGFyZ2V0LWluaXRpYWwtcG9zaXRpb24pO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gRW5zdXJlcyB0aGUga25vYiBpcyBjZW50ZXJlZCBvbiB0aGUgdHJhY2suXG4gICAgdG9wOiAtKCgkbWRjLXN3aXRjaC10YXAtdGFyZ2V0LXNpemUgLSAkbWRjLXN3aXRjaC10cmFjay1oZWlnaHQpIC8gMik7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogJG1kYy1zd2l0Y2gtdGFwLXRhcmdldC1zaXplO1xuICAgIGhlaWdodDogJG1kYy1zd2l0Y2gtdGFwLXRhcmdldC1zaXplO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIG1kYy1zd2l0Y2gtdHJhbnNpdGlvbih0cmFuc2Zvcm0pLFxuICAgICAgbWRjLXN3aXRjaC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpLFxuICAgICAgbWRjLXN3aXRjaC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zd2l0Y2hfX25hdGl2ZS1jb250cm9sXyB7XG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsIDApO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogJG1kYy1zd2l0Y2gtbmF0aXZlLWNvbnRyb2wtd2lkdGg7XG4gIGhlaWdodDogJG1kYy1zd2l0Y2gtdGFwLXRhcmdldC1zaXplO1xuICBtYXJnaW46IDA7XG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoX190aHVtYl8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKCR6LXZhbHVlOiAyLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAkbWRjLXN3aXRjaC10aHVtYi1kaWFtZXRlcjtcbiAgICBoZWlnaHQ6ICRtZGMtc3dpdGNoLXRodW1iLWRpYW1ldGVyO1xuICAgIGJvcmRlcjogJG1kYy1zd2l0Y2gtdGh1bWItZGlhbWV0ZXIgLyAyIHNvbGlkO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAvLyBBbGxvdyBldmVudHMgdG8gZ28gdGhyb3VnaCB0byB0aGUgbmF0aXZlIGNvbnRyb2wsIG5lY2Vzc2FyeSBmb3IgSUUgYW5kIEVkZ2UuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMTtcbiAgfVxufVxuXG4vLyBDaGVja2VkIHN0YXRlXG5cbkBtaXhpbiBtZGMtc3dpdGNoX190cmFjay1jaGVja2VkXyB7XG4gIG9wYWNpdHk6IC41NDtcbn1cblxuQG1peGluIG1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5LWNoZWNrZWRfIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRtZGMtc3dpdGNoLXRodW1iLWFjdGl2ZS1tYXJnaW4pO1xuXG4gIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtKCRtZGMtc3dpdGNoLXRodW1iLWFjdGl2ZS1tYXJnaW4pKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2wtY2hlY2tlZF8ge1xuICAvLyBUcmFuc2xhdGUgdGhlIG5hdGl2ZSBjb250cm9sIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gc28gdGhhdCB0aGUgdGFwIHRhcmdldCBzdGF5cyB0aGUgc2FtZS5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0oJG1kYy1zd2l0Y2gtdGh1bWItYWN0aXZlLW1hcmdpbikpO1xuXG4gIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkbWRjLXN3aXRjaC10aHVtYi1hY3RpdmUtbWFyZ2luKTtcbiAgfVxufVxuXG4vLyBEaXNhYmxlZCBzdGF0ZVxuXG5AbWl4aW4gbWRjLXN3aXRjaC0tZGlzYWJsZWQtYmFzZV8ge1xuICBvcGFjaXR5OiAuMzg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5AbWl4aW4gbWRjLXN3aXRjaF9fdGh1bWItZGlzYWJsZWRfIHtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7ICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIG9ubHkgc2hvdyBvdXRsaW5lIG9mIGtub2IuXG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbC1kaXNhYmxlZF8ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi90aGVtZS92YXJpYWJsZXNcIjtcblxuJG1kYy1zd2l0Y2gtdHJhY2std2lkdGg6IDMycHggIWRlZmF1bHQ7XG4kbWRjLXN3aXRjaC10cmFjay1oZWlnaHQ6IDE0cHggIWRlZmF1bHQ7XG4kbWRjLXN3aXRjaC10aHVtYi1kaWFtZXRlcjogMjBweCAhZGVmYXVsdDtcbiRtZGMtc3dpdGNoLXRhcC10YXJnZXQtc2l6ZTogNDhweCAhZGVmYXVsdDtcblxuLy8gQW1vdW50IHRoZSBlZGdlIG9mIHRoZSB0aHVtYiBzaG91bGQgYmUgb2Zmc2V0IGZyb20gdGhlIGVkZ2Ugb2YgdGhlIHRyYWNrLlxuJG1kYy1zd2l0Y2gtdGh1bWItb2Zmc2V0OiA0cHggIWRlZmF1bHQ7XG5cbi8vIFBvc2l0aW9uIGZvciB0aGUgdGFwIHRhcmdldCB0aGF0IGNvbnRhaW5zIHRoZSB0aHVtYiB0byBhbGlnbiB0aGUgdGh1bWIgY29ycmVjdGx5IG9mZnNldCBmcm9tIHRoZSB0cmFjay5cbiRtZGMtc3dpdGNoLXRhcC10YXJnZXQtaW5pdGlhbC1wb3NpdGlvbjpcbiAgLSRtZGMtc3dpdGNoLXRhcC10YXJnZXQtc2l6ZSAvIDIgKyAkbWRjLXN3aXRjaC10aHVtYi1kaWFtZXRlciAvIDIgLVxuICAkbWRjLXN3aXRjaC10aHVtYi1vZmZzZXQgIWRlZmF1bHQ7XG5cbi8vIFZhbHVlIHRvIGNvdmVyIHRoZSB3aG9sZSBzd2l0Y2ggYXJlYSAoaW5jbHVkaW5nIHRoZSByaXBwbGUpIHdpdGggdGhlIG5hdGl2ZSBjb250cm9sLlxuJG1kYy1zd2l0Y2gtbmF0aXZlLWNvbnRyb2wtd2lkdGg6XG4gICRtZGMtc3dpdGNoLXRyYWNrLXdpZHRoICtcbiAgKCRtZGMtc3dpdGNoLXRhcC10YXJnZXQtc2l6ZSAtICRtZGMtc3dpdGNoLXRodW1iLWRpYW1ldGVyKSArXG4gICRtZGMtc3dpdGNoLXRodW1iLW9mZnNldCAqIDIgIWRlZmF1bHQ7XG5cbiRtZGMtc3dpdGNoLXRodW1iLWFjdGl2ZS1tYXJnaW46XG4gICRtZGMtc3dpdGNoLXRyYWNrLXdpZHRoIC0gJG1kYy1zd2l0Y2gtdGh1bWItZGlhbWV0ZXIgKyAkbWRjLXN3aXRjaC10aHVtYi1vZmZzZXQgKiAyICFkZWZhdWx0O1xuXG4kbWRjLXN3aXRjaC10b2dnbGVkLW9mZi10aHVtYi1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUoc3VyZmFjZSkgIWRlZmF1bHQ7XG4kbWRjLXN3aXRjaC10b2dnbGVkLW9mZi10cmFjay1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG4kbWRjLXN3aXRjaC10b2dnbGVkLW9mZi1yaXBwbGUtY29sb3I6ICM5ZTllOWUgIWRlZmF1bHQ7XG4kbWRjLXN3aXRjaC1kaXNhYmxlZC10aHVtYi1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUoc3VyZmFjZSkgIWRlZmF1bHQ7XG4kbWRjLXN3aXRjaC1kaXNhYmxlZC10cmFjay1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG5cbiRtZGMtc3dpdGNoLWJhc2VsaW5lLXRoZW1lLWNvbG9yOiBzZWNvbmRhcnkgIWRlZmF1bHQ7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuQGltcG9ydCBcIi4uL3RoZW1lL21peGluc1wiO1xuXG5AbWl4aW4gbWRjLXRhYi1pbmRpY2F0b3Itc3VyZmFjZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuQG1peGluIG1kYy10YWItaW5kaWNhdG9yLXVuZGVybGluZS1jb2xvcigkY29sb3IpIHtcbiAgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRhYi1pbmRpY2F0b3ItdW5kZXJsaW5lLWhlaWdodCgkaGVpZ2h0KSB7XG4gID4gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRhYi1pbmRpY2F0b3ItdW5kZXJsaW5lLXRvcC1jb3JuZXItcmFkaXVzKCRyYWRpdXMpIHtcbiAgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRhYi1pbmRpY2F0b3ItaWNvbi1jb2xvcigkY29sb3IpIHtcbiAgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLWljb24ge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGFiLWluZGljYXRvci1pY29uLWhlaWdodCgkaGVpZ2h0KSB7XG4gID4gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS1pY29uIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkaGVpZ2h0O1xuICB9XG59XG4iLCIvL1xyXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxyXG4vL1xyXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XHJcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcclxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xyXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXHJcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xyXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxyXG4vL1xyXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxyXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cclxuLy9cclxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxyXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcclxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXHJcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcclxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcclxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxyXG4vLyBUSEUgU09GVFdBUkUuXHJcbi8vXHJcblxyXG5AaW1wb3J0IFwiLi4vcmlwcGxlL2NvbW1vblwiO1xyXG5AaW1wb3J0IFwiLi4vcmlwcGxlL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vdHlwb2dyYXBoeS9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL3RhYi1pbmRpY2F0b3IvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcclxuXHJcbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHRhYlxyXG5cclxuLm1kYy10YWIge1xyXG4gIEBpbmNsdWRlIG1kYy10YWItdGV4dC1sYWJlbC1jb2xvcihvbi1zdXJmYWNlKTtcclxuICBAaW5jbHVkZSBtZGMtdGFiLWljb24tY29sb3Iob24tc3VyZmFjZSk7XHJcbiAgQGluY2x1ZGUgbWRjLXRhYi1pbmRpY2F0b3Itc3VyZmFjZTtcclxuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShidXR0b24pO1xyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXg6IDEgMCBhdXRvO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgaGVpZ2h0OiAkbWRjLXRhYi1oZWlnaHQ7XHJcbiAgcGFkZGluZzogMCAyNHB4O1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICB6LWluZGV4OiAxO1xyXG5cclxuICAvLyBGaXJlZm94IHN0aWxsIGRyYXdzIGEgZG90dGVkIGJvcmRlciBhcm91bmQgZm9jdXNlZCBidXR0b25zIHVubGVzcyBzcGVjaWZpY2FsbHkgb3ZlcnJpZGRlbi5cclxuICAmOjotbW96LWZvY3VzLWlubmVyIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4ubWRjLXRhYi0tbWluLXdpZHRoIHtcclxuICBmbGV4OiAwIDEgYXV0bztcclxufVxyXG5cclxuLm1kYy10YWJfX3JpcHBsZSB7XHJcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlO1xyXG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQ7XHJcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcyhwcmltYXJ5KTtcclxuXHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4ubWRjLXRhYl9fY29udGVudCB7XHJcbiAgQGluY2x1ZGUgbWRjLXRhYi1pbmRpY2F0b3Itc3VyZmFjZTtcclxuXHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGhlaWdodDogaW5oZXJpdDtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG5cclxuLm1kYy10YWJfX3RleHQtbGFiZWwsXHJcbi5tZGMtdGFiX19pY29uIHtcclxuICB0cmFuc2l0aW9uOiAxNTBtcyBjb2xvciBsaW5lYXIsIDE1MG1zIG9wYWNpdHkgbGluZWFyO1xyXG4gIHotaW5kZXg6IDI7XHJcbn1cclxuXHJcbi5tZGMtdGFiX190ZXh0LWxhYmVsIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgb3BhY2l0eTogJG1kYy10YWItdGV4dC1sYWJlbC1vcGFjaXR5O1xyXG4gIC8vIFNldHRpbmcgbGluZS1oZWlnaHQgaGVyZSBvdmVycmlkZXMgdGhlIGxpbmUtaGVpZ2h0IGZyb20gdGhlIHR5cG9ncmFwaHlcclxuICAvLyBtaXhpbiBhYm92ZS4gVGhlIGxpbmUtaGVpZ2h0IG5lZWRzIHRvIGJlIG92ZXJyaWRkZW4gc28gdGhhdCB0aGUgc3BhY2luZ1xyXG4gIC8vIGJldHdlZW4gdGhlIHRleHQgbGFiZWwgYW5kIHRoZSBpY29uIGFzIHdlbGwgYXMgdGhlIHRleHQgbGFiZWwgYW5kIHRoZVxyXG4gIC8vIGJvdHRvbSBvZiB0aGUgdGFiIHJlbWFpbiB0aGUgc2FtZS5cclxuICBsaW5lLWhlaWdodDogMTtcclxufVxyXG5cclxuLm1kYy10YWJfX2ljb24ge1xyXG4gIHdpZHRoOiAkbWRjLXRhYi1pY29uLXNpemU7XHJcbiAgaGVpZ2h0OiAkbWRjLXRhYi1pY29uLXNpemU7XHJcbiAgb3BhY2l0eTogJG1kYy10YWItaWNvbi1vcGFjaXR5O1xyXG4gIGZvbnQtc2l6ZTogJG1kYy10YWItaWNvbi1zaXplO1xyXG59XHJcblxyXG4ubWRjLXRhYi0tc3RhY2tlZCB7XHJcbiAgaGVpZ2h0OiAkbWRjLXRhYi1zdGFja2VkLWhlaWdodDtcclxufVxyXG5cclxuLm1kYy10YWItLXN0YWNrZWQgLm1kYy10YWJfX2NvbnRlbnQge1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbn1cclxuXHJcbi5tZGMtdGFiLS1zdGFja2VkIC5tZGMtdGFiX19pY29uIHtcclxuICBwYWRkaW5nLXRvcDogMTJweDtcclxufVxyXG5cclxuLm1kYy10YWItLXN0YWNrZWQgLm1kYy10YWJfX3RleHQtbGFiZWwge1xyXG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xyXG59XHJcblxyXG4ubWRjLXRhYi0tYWN0aXZlIHtcclxuICBAaW5jbHVkZSBtZGMtdGFiLXRleHQtbGFiZWwtY29sb3IocHJpbWFyeSk7XHJcbiAgQGluY2x1ZGUgbWRjLXRhYi1pY29uLWNvbG9yKHByaW1hcnkpO1xyXG5cclxuICAubWRjLXRhYl9fdGV4dC1sYWJlbCxcclxuICAubWRjLXRhYl9faWNvbiB7XHJcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAxMDBtcztcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG59XHJcblxyXG4ubWRjLXRhYjpub3QoLm1kYy10YWItLXN0YWNrZWQpIC5tZGMtdGFiX19pY29uICsgLm1kYy10YWJfX3RleHQtbGFiZWwge1xyXG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChwYWRkaW5nLCBsZWZ0LCA4cHgpO1xyXG59XHJcblxyXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxyXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy10YWItaWNvbi1zaXplOiAyNHB4ICFkZWZhdWx0O1xuJG1kYy10YWItaGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuJG1kYy10YWItc3RhY2tlZC1oZWlnaHQ6IDcycHggIWRlZmF1bHQ7XG4kbWRjLXRhYi10ZXh0LWxhYmVsLW9wYWNpdHk6IC42ICFkZWZhdWx0O1xuJG1kYy10YWItaWNvbi1vcGFjaXR5OiAuNTQgIWRlZmF1bHQ7XG4iLCIvL1xyXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxyXG4vL1xyXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XHJcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcclxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xyXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXHJcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xyXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxyXG4vL1xyXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxyXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cclxuLy9cclxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxyXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcclxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXHJcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcclxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcclxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxyXG4vLyBUSEUgU09GVFdBUkUuXHJcbi8vXHJcblxyXG5AaW1wb3J0IFwiLi4vcmlwcGxlL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XHJcblxyXG4vLyBQdWJsaWMgbWl4aW5zXHJcblxyXG5AbWl4aW4gbWRjLXRhYi10ZXh0LWxhYmVsLWNvbG9yKCRjb2xvcikge1xyXG4gIC5tZGMtdGFiX190ZXh0LWxhYmVsIHtcclxuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10YWItaWNvbi1jb2xvcigkY29sb3IpIHtcclxuICAubWRjLXRhYl9faWNvbiB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcclxuXHJcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRhYi1zdGF0ZXMtY29sb3IoJGNvbG9yKSB7XHJcbiAgLm1kYy10YWJfX3JpcHBsZSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRhYi1pbmstY29sb3IoJGNvbG9yKSB7XHJcbiAgQGluY2x1ZGUgbWRjLXRhYi1pY29uLWNvbG9yKCRjb2xvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRhYi1zdGF0ZXMtY29sb3IoJGNvbG9yKTtcclxuICBAaW5jbHVkZSBtZGMtdGFiLXRleHQtbGFiZWwtY29sb3IoJGNvbG9yKTtcclxufVxyXG5cclxuQG1peGluIG1kYy10YWItYWN0aXZlLXRleHQtbGFiZWwtY29sb3IoJGNvbG9yKSB7XHJcbiAgJi5tZGMtdGFiLS1hY3RpdmUge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRhYi10ZXh0LWxhYmVsLWNvbG9yKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRhYi1hY3RpdmUtaWNvbi1jb2xvcigkY29sb3IpIHtcclxuICAmLm1kYy10YWItLWFjdGl2ZSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGFiLWljb24tY29sb3IoJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGFiLXBhcmVudC1wb3NpdGlvbmluZyB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRhYi1maXhlZC13aWR0aCgkd2lkdGgpIHtcclxuICBmbGV4OiAwIDEgJHdpZHRoO1xyXG59XHJcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG5AaW1wb3J0IFwiLi9taXhpbnNcIjtcblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgdGFiLWJhclxuXG4ubWRjLXRhYi1iYXIge1xuICBAaW5jbHVkZSBtZGMtdGFiLWJhci13aWR0aCgxMDAlKTtcbn1cblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG5AbWl4aW4gbWRjLXRhYi1iYXItd2lkdGgoJHdpZHRoKSB7XG4gIHdpZHRoOiAkd2lkdGg7XG59XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSB0YWItaW5kaWNhdG9yXG5cbi5tZGMtdGFiLWluZGljYXRvciB7XG4gIEBpbmNsdWRlIG1kYy10YWItaW5kaWNhdG9yLXVuZGVybGluZS1jb2xvcihwcmltYXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXRhYi1pbmRpY2F0b3ItdW5kZXJsaW5lLWhlaWdodCgycHgpO1xuICBAaW5jbHVkZSBtZGMtdGFiLWluZGljYXRvci1pY29uLWNvbG9yKHNlY29uZGFyeSk7XG4gIEBpbmNsdWRlIG1kYy10YWItaW5kaWNhdG9yLWljb24taGVpZ2h0KDM0cHgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTtcbn1cblxuLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0taWNvbiB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5tZGMtdGFiLWluZGljYXRvci0tYWN0aXZlID4gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLy8gU2xpZGUgYnkgZGVmYXVsdFxuLm1kYy10YWItaW5kaWNhdG9yID4gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogMjUwbXMgdHJhbnNmb3JtICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbn1cblxuLy8gLS1uby10cmFuc2l0aW9uIGlzIGFwcGxpZWQgaW4gY2FzZXMgd2hlcmUgc3R5bGVzIG5lZWQgdG8gYmUgYXBwbGllZCBpbW1lZGlhdGVseSB0byBzZXQgdXAgYSB0cmFuc2l0aW9uXG4ubWRjLXRhYi1pbmRpY2F0b3ItLW5vLXRyYW5zaXRpb24gPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4ubWRjLXRhYi1pbmRpY2F0b3ItLWZhZGUgPiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICB0cmFuc2l0aW9uOiAxNTBtcyBvcGFjaXR5IGxpbmVhcjtcbn1cblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBpZ25vcmVcbi5tZGMtdGFiLWluZGljYXRvci0tYWN0aXZlLm1kYy10YWItaW5kaWNhdG9yLS1mYWRlID4gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMTAwbXM7XG59XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi90YWIvbWl4aW5zXCI7XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHRhYi1zY3JvbGxlclxuLm1kYy10YWItc2Nyb2xsZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG59XG5cbi8vIFNlbGVjdG9yIGZvciB0ZXN0IGVsZW1lbnQgdXNlZCB0byBmZWF0dXJlLWRldGVjdCBob3Jpem9udGFsIHNjcm9sbGJhciBoZWlnaHRcbi5tZGMtdGFiLXNjcm9sbGVyX190ZXN0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsO1xufVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWFyZWEge1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1hcmVhLFxuLm1kYy10YWItc2Nyb2xsZXJfX3Rlc3Qge1xuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLyBUaGlzIG1vZGlmaWVyIGNsYXNzIHdpbGwgYmUgYWRkZWQgaW4gSlMgYWZ0ZXIgY29tcHV0aW5nIHRoZSBPUyBzY3JvbGxiYXIgc2l6ZSBpbiBvcmRlciB0byBoaWRlIHRoZSBzY3JvbGxiYXIuXG4ubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWFyZWEtLXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcbn1cblxuLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1jb250ZW50IHtcbiAgQGluY2x1ZGUgbWRjLXRhYi1wYXJlbnQtcG9zaXRpb25pbmc7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMSAwIGF1dG87XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbn1cblxuLm1kYy10YWItc2Nyb2xsZXItLWFsaWduLXN0YXJ0IC5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtY29udGVudCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLm1kYy10YWItc2Nyb2xsZXItLWFsaWduLWVuZCAubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWNvbnRlbnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4ubWRjLXRhYi1zY3JvbGxlci0tYWxpZ24tY2VudGVyIC5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtY29udGVudCB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubWRjLXRhYi1zY3JvbGxlci0tYW5pbWF0aW5nIC5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtYXJlYSB7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiBhdXRvO1xufVxuXG4ubWRjLXRhYi1zY3JvbGxlci0tYW5pbWF0aW5nIC5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtY29udGVudCB7XG4gIHRyYW5zaXRpb246IDI1MG1zIHRyYW5zZm9ybSAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG59XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uLy4uL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHRleHQtZmllbGQtaGVscGVyLXRleHRcblxuLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0IHtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoY2FwdGlvbik7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXRvcCgxNnB4KTtcblxuICBtYXJnaW46IDA7XG4gIHRyYW5zaXRpb246IG1kYy10ZXh0LWZpZWxkLXRyYW5zaXRpb24ob3BhY2l0eSk7XG4gIG9wYWNpdHk6IDA7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xufVxuXG4ubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtLXBlcnNpc3RlbnQge1xuICB0cmFuc2l0aW9uOiBub25lO1xuICBvcGFjaXR5OiAxO1xuICB3aWxsLWNoYW5nZTogaW5pdGlhbDtcbn1cblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOSBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXJcblxuLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyIHtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoY2FwdGlvbik7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXRvcCgxNnB4KTtcbiAgLy8gS2VlcCBmbGV4IGl0ZW0gYWxpZ24gdG8gdHJhaWxpbmcgc2lkZSBvbiBhYnNlbmNlIG9mIGhlbHBlciB0ZXh0LlxuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCBhdXRvKTtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KHBhZGRpbmcsIGxlZnQsIDE2cHgpO1xuXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uLy4uL3RoZW1lL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uLy4uL3RoZW1lL21peGluc1wiO1xuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbixcbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tZGMtdGV4dC1maWVsZF9faWNvbjpub3QoW3RhYmluZGV4XSksXG4ubWRjLXRleHQtZmllbGRfX2ljb25bdGFiaW5kZXg9XCItMVwiXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9mbG9hdGluZy1sYWJlbC9tZGMtZmxvYXRpbmctbGFiZWxcIjtcbkBpbXBvcnQgXCIuLi9saW5lLXJpcHBsZS9tZGMtbGluZS1yaXBwbGVcIjtcbkBpbXBvcnQgXCIuLi9ub3RjaGVkLW91dGxpbmUvbWRjLW5vdGNoZWQtb3V0bGluZVwiO1xuQGltcG9ydCBcIi4uL3JpcHBsZS9jb21tb25cIjtcbkBpbXBvcnQgXCIuLi9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdHlwb2dyYXBoeS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4vaGVscGVyLXRleHQvbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHRcIjtcbkBpbXBvcnQgXCIuL2NoYXJhY3Rlci1jb3VudGVyL21kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyXCI7XG5AaW1wb3J0IFwiLi9pY29uL21kYy10ZXh0LWZpZWxkLWljb25cIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHRleHQtZmllbGRcblxuLm1kYy10ZXh0LWZpZWxkIHtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlO1xuICAvLyBUZXh0IEZpZWxkIGludGVudGlvbmFsbHkgb21pdHMgcHJlc3MgcmlwcGxlLCBzbyBlYWNoIHN0YXRlIG5lZWRzIHRvIGJlIHNwZWNpZmllZCBpbmRpdmlkdWFsbHkuXG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkbWRjLXRleHQtZmllbGQtaW5rLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1ob3Zlci1vcGFjaXR5KG1kYy1zdGF0ZXMtb3BhY2l0eSgkbWRjLXRleHQtZmllbGQtaW5rLWNvbG9yLCBob3ZlcikpO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWZvY3VzLW9wYWNpdHkobWRjLXN0YXRlcy1vcGFjaXR5KCRtZGMtdGV4dC1maWVsZC1pbmstY29sb3IsIGZvY3VzKSk7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQ7XG5cbiAgLy8gU2hhcGVcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtc2hhcGUtcmFkaXVzKHNtYWxsKTtcblxuICAvLyBDb2xvcnNcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtbGFiZWwtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWxhYmVsKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaW5rLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1jYXJldC1jb2xvcihwcmltYXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWJvdHRvbS1saW5lLWlkbGUpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1ob3Zlci1ib3R0b20tbGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtaG92ZXIpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1saW5lLXJpcHBsZS1jb2xvcl8ocHJpbWFyeSk7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZ1bGx3aWR0aC1ib3R0b20tbGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtZnVsbHdpZHRoLWJvdHRvbS1saW5lLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXItY29sb3IoJG1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaWNvbi1jb2xvcigkbWRjLXRleHQtZmllbGQtaWNvbi1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZpbGwtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWJhY2tncm91bmQpO1xuXG4gIC8vIEZsb2F0aW5nIExhYmVsXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZsb2F0aW5nLWxhYmVsXztcblxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6ICRtZGMtdGV4dC1maWVsZC1oZWlnaHQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybSwgY29sb3I7XG59XG5cbi5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShzdWJ0aXRsZTEpO1xuXG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAyMHB4IDE2cHggNnB4O1xuICB0cmFuc2l0aW9uOiBtZGMtdGV4dC1maWVsZC10cmFuc2l0aW9uKG9wYWNpdHkpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgdHJhbnNpdGlvbjogbWRjLXRleHQtZmllbGQtdHJhbnNpdGlvbihvcGFjaXR5LCAkZHVyYXRpb246IDY3bXMpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgY29sb3I6ICRtZGMtdGV4dC1maWVsZC1wbGFjZWhvbGRlci1pbmstY29sb3I7XG4gIH1cblxuICAvLyBPdmVycmlkZSB0aGUgcGxhY2Vob2xkZXIgc3R5bGVzIGluIElFIHdpdGggaW1wb3J0YW50IHJ1bGUgdG8gaW1wcm92ZSBzcGVjaWZpY2l0eS5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW5vLXZlbmRvci1wcmVmaXhcbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkbWRjLXRleHQtZmllbGQtcGxhY2Vob2xkZXItaW5rLWNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBBbHdheXMgc2hvdyBwbGFjZWhvbGRlciBmb3IgdGV4dCBmaWVsZHMgdGhhdCBoYXMgbm8gbGFiZWwgYW5kIHNob3cgb25seSBvbiBmb2N1c2VkIHN0YXRlIHdoZW4gbGFiZWwgaXMgcHJlc2VudC5cbiAgLm1kYy10ZXh0LWZpZWxkLS1mdWxsd2lkdGggJjo6cGxhY2Vob2xkZXIsXG4gIC5tZGMtdGV4dC1maWVsZC0tbm8tbGFiZWwgJjo6cGxhY2Vob2xkZXIsXG4gIC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAmOjpwbGFjZWhvbGRlciB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogNDBtcztcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxMTBtcztcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSByZWQgb3V0bGluZSBvbiBmaXJlZm94XG4gICY6aW52YWxpZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gIC8vIEtlZXAgQ2hyb21lIGF1dG9maWxsIGJlaGluZCB0aGUgbm90Y2hlZCBvdXRsaW5lXG4gICY6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgei1pbmRleDogYXV0byAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gVmVydGljYWxseSBjZW50ZXIgYWxpZ25zIHRoZSB0ZXh0IGlucHV0IHBsYWNlaG9sZGVyIGFuZCB2YWx1ZSBmb3Igb25seSBmaWxsZWQgdmFyaWFudC5cbiAgLm1kYy10ZXh0LWZpZWxkLS1uby1sYWJlbDpub3QoLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpICYge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gIH1cbn1cbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbi8vIE1vdmUgbGFiZWwgd2hlbiB0ZXh0LWZpZWxkIGdldHMgYXV0by1maWxsZWQgaW4gQ2hyb21lLlxuLm1kYy10ZXh0LWZpZWxkX19pbnB1dDotd2Via2l0LWF1dG9maWxsICsgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSguNzUpO1xuICBjdXJzb3I6IGF1dG87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZF87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWZvY3VzZWQge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1mb2N1c2VkXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kaXNhYmxlZF87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGVuc2VfO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtd2l0aC1sZWFkaW5nLWljb25fO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGVuc2Utd2l0aC1sZWFkaW5nLWljb25fO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbiB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLXdpdGgtdHJhaWxpbmctaWNvbl87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbiB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLXdpdGgtYm90aC1pY29uc187XG59XG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pY29uLFxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIGJvdHRvbTogMTZweDtcbiAgdHJhbnNmb3JtOiBzY2FsZSguOCk7XG59XG4vLyBzdHlsZWxpbnQtZW5hYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWRlbnNlLXdpdGgtbGVhZGluZy1pY29uXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZGVuc2Utd2l0aC10cmFpbGluZy1pY29uXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWRlbnNlLXdpdGgtYm90aC1pY29uc187XG59XG5cbi5tZGMtdGV4dC1maWVsZC0tZGVuc2Uge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1kZW5zZV87XG59XG5cbkBpbmNsdWRlIG1kYy1yZXF1aXJlZC10ZXh0LWZpZWxkLWxhYmVsLWFzdGVyaXNrXyB7XG4gIG1hcmdpbi1sZWZ0OiAxcHg7XG4gIGNvbnRlbnQ6IFwiKlwiO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtdGV4dGFyZWFfO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aCB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZ1bGx3aWR0aF87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0tZnVsbHdpZHRoLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZnVsbHdpZHRoLWludmFsaWRfO1xufVxuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSB0ZXh0LWZpZWxkLWhlbHBlci10ZXh0XG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbi5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAubWRjLXRleHQtZmllbGQtLWRlbnNlICsgJiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICB9XG5cbiAgLm1kYy10ZXh0LWZpZWxkICsgJiB7XG4gICAgcGFkZGluZy1yaWdodDogJG1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lLXBhZGRpbmc7XG4gICAgcGFkZGluZy1sZWZ0OiAkbWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUtcGFkZGluZztcbiAgfVxufVxuLy8gc3R5bGVsaW50LWVuYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG5cbi8vIG1kYy1mb3JtLWZpZWxkIHR3ZWFrcyB0byBhbGlnbiB0ZXh0IGZpZWxkIGxhYmVsIGNvcnJlY3RseVxuLy8gc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXR5cGVcbi5tZGMtZm9ybS1maWVsZCA+IC5tZGMtdGV4dC1maWVsZCArIGxhYmVsIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cbi8vIHN0eWxlbGludC1lbmFibGUgc2VsZWN0b3ItbWF4LXR5cGVcblxuLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZm9jdXNlZF87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWZvY3VzZWQge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC10ZXh0YXJlYS1zdHJva2UtY29sb3IocHJpbWFyeSk7XG59XG5cbi5tZGMtdGV4dC1maWVsZC0taW52YWxpZCB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWludmFsaWRfO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtaW52YWxpZF87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWludmFsaWQge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1pbnZhbGlkXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWRpc2FibGVkXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC10ZXh0YXJlYS1kaXNhYmxlZF87XG59XG5cbkBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1rZXlmcmFtZXMoXG4gIHRleHQtZmllbGQtZGVuc2UsXG4gICRtZGMtdGV4dC1maWVsZC1kZW5zZS1sYWJlbC1wb3NpdGlvbi15LFxuICAwJSxcbiAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWxhYmVsLXNjYWxlXG4pO1xuQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWtleWZyYW1lcyh0ZXh0LWZpZWxkLW91dGxpbmVkLCAkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teSk7XG5AaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2Uta2V5ZnJhbWVzKFxuICB0ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLFxuICAkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGVuc2UtbGFiZWwtcG9zaXRpb24teSxcbiAgMCUsXG4gICRtZGMtdGV4dC1maWVsZC1kZW5zZS1sYWJlbC1zY2FsZVxuKTtcbkBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1rZXlmcmFtZXMoXG4gIHRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uLFxuICAkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teSxcbiAgJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uLWxhYmVsLXBvc2l0aW9uLXhcbik7XG5AaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2Uta2V5ZnJhbWVzKFxuICB0ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbi1kZW5zZSxcbiAgJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLWxhYmVsLXBvc2l0aW9uLXksXG4gICRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZS13aXRoLWxlYWRpbmctaWNvbi1sYWJlbC1wb3NpdGlvbi14LFxuICAkbWRjLXRleHQtZmllbGQtZGVuc2UtbGFiZWwtc2NhbGVcbik7XG5AaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2Uta2V5ZnJhbWVzKFxuICB0ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbi1ydGwsXG4gICRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1sYWJlbC1wb3NpdGlvbi15LFxuICAtJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uLWxhYmVsLXBvc2l0aW9uLXhcbik7XG5AaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2Uta2V5ZnJhbWVzKFxuICB0ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbi1kZW5zZS1ydGwsXG4gICRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZS1sYWJlbC1wb3NpdGlvbi15LFxuICAtJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLXdpdGgtbGVhZGluZy1pY29uLWxhYmVsLXBvc2l0aW9uLXgsXG4gICRtZGMtdGV4dC1maWVsZC1kZW5zZS1sYWJlbC1zY2FsZVxuKTtcbkBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1rZXlmcmFtZXModGV4dGFyZWEsICRtZGMtdGV4dC1maWVsZC10ZXh0YXJlYS1sYWJlbC1wb3NpdGlvbi15LCAwJSk7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cbiRtZGMtdGV4dC1maWVsZC1lcnJvcjogZXJyb3IgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtZnVsbHdpZHRoLWJvdHRvbS1saW5lLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMTIpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWRpc2FibGVkLWJvcmRlcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjA2KSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1pY29uOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMykgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtaG92ZXI6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC44NykgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtaWRsZTogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjQyKSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1sYWJlbDogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjYpICFkZWZhdWx0O1xuXG4kbWRjLXRleHQtZmllbGQtaW5rLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuODcpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuNikgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtaWNvbi1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjU0KSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1mb2N1c2VkLWxhYmVsLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKHByaW1hcnkpLCAuODcpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLXBsYWNlaG9sZGVyLWluay1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjU0KSAhZGVmYXVsdDtcblxuJG1kYy10ZXh0LWZpZWxkLWRpc2FibGVkLWxhYmVsLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMzcpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWRpc2FibGVkLWluay1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjM3KSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1oZWxwZXItdGV4dC1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjM3KSAhZGVmYXVsdDtcblxuJG1kYy10ZXh0LWZpZWxkLWJhY2tncm91bmQ6IG1peChtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgbWRjLXRoZW1lLXByb3AtdmFsdWUoc3VyZmFjZSksIDQlKSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBtaXgobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIG1kYy10aGVtZS1wcm9wLXZhbHVlKHN1cmZhY2UpLCAyJSkgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtc2Vjb25kYXJ5LXRleHQ6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC42KSAhZGVmYXVsdDtcblxuJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWlkbGUtYm9yZGVyOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMjQpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRpc2FibGVkLWJvcmRlcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjA2KSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1ob3Zlci1ib3JkZXI6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC44NykgIWRlZmF1bHQ7XG5cbiRtZGMtdGV4dGFyZWEtYm9yZGVyOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuNzMpICFkZWZhdWx0O1xuJG1kYy10ZXh0YXJlYS1iYWNrZ3JvdW5kOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKHN1cmZhY2UpLCAxKSAhZGVmYXVsdDtcbiRtZGMtdGV4dGFyZWEtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMjYpICFkZWZhdWx0O1xuLy8gY2Fubm90IGJlIHRyYW5zcGFyZW50IGJlY2F1c2UgbXVsdGlsaW5lIHRleHRhcmVhIGlucHV0XG4vLyB3aWxsIG1ha2UgdGV4dCB1bnJlYWRhYmxlXG4kbWRjLXRleHRhcmVhLWRpc2FibGVkLWJhY2tncm91bmQ6IHJnYmEoMjQ5LCAyNDksIDI0OSwgMSkgIWRlZmF1bHQ7XG5cbiRtZGMtdGV4dC1maWVsZC1oZWlnaHQ6IDU2cHggIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtbGFiZWwtcG9zaXRpb24teTogNTAlICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWxhYmVsLW9mZnNldDogMTZweCAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1kZW5zZS1sYWJlbC1wb3NpdGlvbi15OiA3MCUgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtZGVuc2UtbGFiZWwtc2NhbGU6IC44ICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXk6IDEzMCUgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGVuc2UtbGFiZWwtcG9zaXRpb24teTogMTIwJSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbi1sYWJlbC1wb3NpdGlvbi14OiAwICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLXdpdGgtbGVhZGluZy1pY29uLWxhYmVsLXBvc2l0aW9uLXg6IDIxcHggIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtbGFiZWwtcG9zaXRpb24teTogMTMwJSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZS1wYWRkaW5nOiAxNnB4ICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWlucHV0LXBhZGRpbmc6IDE2cHggIWRlZmF1bHQ7XG4vLyBOb3RlIHRoYXQgdGhlIHNjYWxlIGZhY3RvciBpcyBhbiBleWViYWxsZWQgYXBwcm94aW1hdGlvbiBvZiB3aGF0J3Mgc2hvd24gaW4gdGhlIG1vY2tzLlxuIiwiLy9cclxuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cclxuLy9cclxuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxyXG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXHJcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcclxuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxyXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcclxuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcclxuLy9cclxuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cclxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXHJcbi8vXHJcbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcclxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXHJcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxyXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXHJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXHJcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cclxuLy8gVEhFIFNPRlRXQVJFLlxyXG4vL1xyXG5cclxuQGltcG9ydCBcIi4uL2Zsb2F0aW5nLWxhYmVsL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vbGluZS1yaXBwbGUvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9ub3RjaGVkLW91dGxpbmUvbWl4aW5zXCI7XHJcbkBpbXBvcnQgXCIuLi9ub3RjaGVkLW91dGxpbmUvdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCIuLi90aGVtZS9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL3NoYXBlL21peGluc1wiO1xyXG5AaW1wb3J0IFwiLi4vc2hhcGUvZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXItdGV4dC9taXhpbnNcIjtcclxuQGltcG9ydCBcImNoYXJhY3Rlci1jb3VudGVyL21peGluc1wiO1xyXG5AaW1wb3J0IFwiaWNvbi9taXhpbnNcIjtcclxuQGltcG9ydCBcImljb24vdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xyXG5AaW1wb3J0IFwiLi9mdW5jdGlvbnNcIjtcclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlKSB7XHJcbiAgQGlmIGxlbmd0aCgkcmFkaXVzKSA+IDIge1xyXG4gICAgQGVycm9yIFwiSW52YWxpZCByYWRpdXM6ICcjeyRyYWRpdXN9JyBjb21wb25lbnQgZG9lc24ndCBhbGxvdyBjdXN0b21pemluZyBhbGwgY29ybmVyc1wiO1xyXG4gIH1cclxuXHJcbiAgJG1hc2tlZC1yYWRpdXM6IG1kYy1zaGFwZS1tYXNrLXJhZGl1cygkcmFkaXVzLCAxIDEgMCAwKTtcclxuXHJcbiAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cyhcclxuICAgIG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtdGV4dC1maWVsZC1oZWlnaHQsICRtYXNrZWQtcmFkaXVzKSxcclxuICAgICRydGwtcmVmbGV4aXZlXHJcbiAgKTtcclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UpIHtcclxuICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSk7XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1pbmstY29sb3IoJGNvbG9yKSB7XHJcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaW5rLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWZpbGwtY29sb3IoJGNvbG9yKSB7XHJcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZmlsbC1jb2xvcl8oJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC10ZXh0YXJlYS1zdHJva2UtY29sb3IoJGNvbG9yKSB7XHJcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtc3Ryb2tlLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhLWZpbGwtY29sb3IoJGNvbG9yKSB7XHJcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtZmlsbC1jb2xvcl8oJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1mdWxsd2lkdGgtYm90dG9tLWxpbmUtY29sb3IoJGNvbG9yKSB7XHJcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZnVsbHdpZHRoLWJvdHRvbS1saW5lLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWJvdHRvbS1saW5lLWNvbG9yKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaG92ZXItYm90dG9tLWxpbmUtY29sb3IoJGNvbG9yKSB7XHJcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1ob3Zlci1ib3R0b20tbGluZS1jb2xvcl8oJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1saW5lLXJpcHBsZS1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1saW5lLXJpcHBsZS1jb2xvcl8oJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1sYWJlbC1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1sYWJlbC1pbmstY29sb3JfKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtb3V0bGluZS1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWNvbG9yKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaG92ZXItb3V0bGluZS1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1ob3Zlci1vdXRsaW5lLWNvbG9yXygkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWZvY3VzZWQtb3V0bGluZS1jb2xvcigkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1mb2N1c2VkLW91dGxpbmUtY29sb3JfKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtY2FyZXQtY29sb3IoJGNvbG9yKSB7XHJcbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjYXJldC1jb2xvciwgJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFByaXZhdGUgbWl4aW5zXHJcblxyXG4vLyBCYXNlbGluZVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWRpc2FibGVkXyB7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtY29sb3JfKCRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1ib3JkZXIpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWluay1jb2xvcl8oJG1kYy10ZXh0LWZpZWxkLWRpc2FibGVkLWluay1jb2xvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtbGFiZWwtaW5rLWNvbG9yXygkbWRjLXRleHQtZmllbGQtZGlzYWJsZWQtbGFiZWwtY29sb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LWNvbG9yXygkbWRjLXRleHQtZmllbGQtZGlzYWJsZWQtaGVscGVyLXRleHQtY29sb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLWNvbG9yXygkbWRjLXRleHQtZmllbGQtZGlzYWJsZWQtaGVscGVyLXRleHQtY29sb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24tY29sb3JfKCRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1pY29uKTtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1mdWxsd2lkdGgtYm90dG9tLWxpbmUtY29sb3JfKCRtZGMtdGV4dC1maWVsZC1mdWxsd2lkdGgtYm90dG9tLWxpbmUtY29sb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZpbGwtY29sb3JfKCRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcclxuXHJcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHJcbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaW52YWxpZF8ge1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWJvdHRvbS1saW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaG92ZXItYm90dG9tLWxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWVycm9yKTtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1saW5lLXJpcHBsZS1jb2xvcigkbWRjLXRleHQtZmllbGQtZXJyb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWxhYmVsLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtdmFsaWRhdGlvbi1jb2xvcigkbWRjLXRleHQtZmllbGQtZXJyb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWNhcmV0LWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XHJcblxyXG4gICYubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbiB7XHJcbiAgICAmOm5vdCgubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24tY29sb3IoJG1kYy10ZXh0LWZpZWxkLWVycm9yKTtcclxuICAgIH1cclxuXHJcbiAgICAmLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbiB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24tY29sb3IoJG1kYy10ZXh0LWZpZWxkLWVycm9yLCAvKiBzdHlsZVNlY29uZEljb24gKi8gdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZm9jdXNlZF8ge1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWxhYmVsLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1mb2N1c2VkLWxhYmVsLWNvbG9yKTtcclxuXHJcbiAgQGluY2x1ZGUgbWRjLXJlcXVpcmVkLXRleHQtZmllbGQtbGFiZWwtYXN0ZXJpc2tfIHtcclxuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkbWRjLXRleHQtZmllbGQtZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0Om5vdCgubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnKSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWRlbnNlXyB7XHJcbiAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uKFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWxhYmVsLXBvc2l0aW9uLXksXHJcbiAgICAwJSxcclxuICAgICRtZGMtdGV4dC1maWVsZC1kZW5zZS1sYWJlbC1zY2FsZVxyXG4gICk7XHJcbiAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWFuaW1hdGlvbih0ZXh0LWZpZWxkLWRlbnNlKTtcclxuXHJcbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XHJcbiAgICBwYWRkaW5nOiAxMnB4IDEycHggMDtcclxuICB9XHJcblxyXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xyXG4gICAgZm9udC1zaXplOiAuODEzcmVtO1xyXG5cclxuICAgICYtLWZsb2F0LWFib3ZlIHtcclxuICAgICAgZm9udC1zaXplOiAuODEzcmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy1yZXF1aXJlZC10ZXh0LWZpZWxkLWxhYmVsLWFzdGVyaXNrXygpIHtcclxuICAubWRjLXRleHQtZmllbGRfX2lucHV0OnJlcXVpcmVkIH4ge1xyXG4gICAgLm1kYy1mbG9hdGluZy1sYWJlbDo6YWZ0ZXIsXHJcbiAgICAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLWZsb2F0aW5nLWxhYmVsOjphZnRlciB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLW91dGxpbmUtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSkge1xyXG4gICRyZXNvbHZlZC1yYWRpdXM6IG50aChtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cygkbWRjLXRleHQtZmllbGQtaGVpZ2h0LCBtZGMtc2hhcGUtcHJvcC12YWx1ZSgkcmFkaXVzKSksIDEpO1xyXG5cclxuICBAaWYgKGxlbmd0aChtZGMtc2hhcGUtcHJvcC12YWx1ZSgkcmFkaXVzKSkgPiAxKSB7XHJcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxpbmUtbGVuZ3RoXHJcbiAgICBAd2FybiBcIm1kYy10ZXh0LWZpZWxkLW91dGxpbmUtc2hhcGUtcmFkaXVzIG9ubHkgc3VwcG9ydHMgYSBzaW5nbGUgcmFkaXVzOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21hdGVyaWFsLWNvbXBvbmVudHMvbWF0ZXJpYWwtY29tcG9uZW50cy13ZWIvaXNzdWVzLzQxNDBcIjtcclxuICB9XHJcblxyXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lIHtcclxuICAgIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtc2hhcGUtcmFkaXVzKCRyZXNvbHZlZC1yYWRpdXMsICRydGwtcmVmbGV4aXZlKTtcclxuICB9XHJcblxyXG4gIEBpZiAoJHJlc29sdmVkLXJhZGl1cyA+ICRtZGMtbm90Y2hlZC1vdXRsaW5lLWxlYWRpbmctd2lkdGgpIHtcclxuICAgIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShwYWRkaW5nLCAkcmVzb2x2ZWQtcmFkaXVzICsgJG1kYy1ub3RjaGVkLW91dGxpbmUtcGFkZGluZywgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUge1xyXG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShwYWRkaW5nLCAkcmVzb2x2ZWQtcmFkaXVzICsgJG1kYy1ub3RjaGVkLW91dGxpbmUtcGFkZGluZywgJHJlc29sdmVkLXJhZGl1cyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZmxvYXRpbmctbGFiZWxfIHtcclxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcclxuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICRtZGMtdGV4dC1maWVsZC1sYWJlbC1vZmZzZXQpO1xyXG5cclxuICAgIHRvcDogMThweDtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJi0tdGV4dGFyZWEge1xyXG4gICAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICRtZGMtbm90Y2hlZC1vdXRsaW5lLXBhZGRpbmcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tb3V0bGluZWQge1xyXG4gICAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICRtZGMtbm90Y2hlZC1vdXRsaW5lLXBhZGRpbmcpO1xyXG5cclxuICAgICAgdG9wOiAxN3B4O1xyXG4gICAgfVxyXG5cclxuICAgICYtLXdpdGgtbGVhZGluZy1pY29uIHtcclxuICAgICAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgKCRtZGMtdGV4dC1maWVsZC1pY29uLXBhZGRpbmcgLSAkbWRjLW5vdGNoZWQtb3V0bGluZS1sZWFkaW5nLXdpZHRoKSk7XHJcblxyXG4gICAgICAgICYtLWZsb2F0LWFib3ZlIHtcclxuICAgICAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKFxyXG4gICAgICAgICAgICBsZWZ0LFxyXG4gICAgICAgICAgICAoJG1kYy10ZXh0LWZpZWxkLWljb24tcGFkZGluZyAtICRtZGMtbm90Y2hlZC1vdXRsaW5lLWxlYWRpbmctd2lkdGgpICsgJG1kYy1ub3RjaGVkLW91dGxpbmUtcGFkZGluZ1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIE91dGxpbmVkXHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGlzYWJsZWRfIHtcclxuICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kaXNhYmxlZC1ib3JkZXIpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZpbGwtY29sb3JfKHRyYW5zcGFyZW50KTtcclxuXHJcbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XHJcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWludmFsaWRfIHtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1vdXRsaW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaG92ZXItb3V0bGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtZXJyb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZvY3VzZWQtb3V0bGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtZXJyb3IpO1xyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZm9jdXNlZF8ge1xyXG4gIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtc3Ryb2tlLXdpZHRoKDJweCk7XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZV8ge1xyXG4gIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oXHJcbiAgICAkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGVuc2UtbGFiZWwtcG9zaXRpb24teSxcclxuICAgIDAlLFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWxhYmVsLXNjYWxlXHJcbiAgKTtcclxuICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtYW5pbWF0aW9uKHRleHQtZmllbGQtb3V0bGluZWQtZGVuc2UpO1xyXG5cclxuICBoZWlnaHQ6IDQ4cHg7XHJcblxyXG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xyXG4gICAgcGFkZGluZzogMTJweCAxMnB4IDdweDtcclxuICB9XHJcblxyXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xyXG4gICAgdG9wOiAxNHB4O1xyXG4gIH1cclxuXHJcbiAgLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcclxuICAgIHRvcDogMTJweDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZF8ge1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWlkbGUtYm9yZGVyKTtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1ob3Zlci1vdXRsaW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1ob3Zlci1ib3JkZXIpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZvY3VzZWQtb3V0bGluZS1jb2xvcihwcmltYXJ5KTtcclxuICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtYW5pbWF0aW9uKHRleHQtZmllbGQtb3V0bGluZWQpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmUtc2hhcGUtcmFkaXVzKHNtYWxsKTtcclxuICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uKCRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1sYWJlbC1wb3NpdGlvbi15KTtcclxuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWJhc2UtY29sb3IodHJhbnNwYXJlbnQpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZpbGwtY29sb3IodHJhbnNwYXJlbnQpO1xyXG5cclxuICBib3JkZXI6IG5vbmU7XHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7XHJcblxyXG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHBhZGRpbmc6IDEycHggMTZweCAxNHB4O1xyXG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7IC8vIEZGIGFkZHMgdW53YW50ZWQgYm9yZGVyIGluIEhDIG1vZGUgb24gd2luZG93cy5cclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgei1pbmRleDogMTtcclxuICB9XHJcblxyXG4gIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWhvdmVyLW91dGxpbmUtY29sb3JfKCRjb2xvcikge1xyXG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkge1xyXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLWNvbWJpbmF0b3Itc3BhY2UtYWZ0ZXJcclxuICAgIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIgfixcclxuICAgIC5tZGMtdGV4dC1maWVsZF9faWNvbjpob3ZlciB+IHtcclxuICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmUge1xyXG4gICAgICAgIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtY29sb3IoJGNvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWZvY3VzZWQtb3V0bGluZS1jb2xvcl8oJGNvbG9yKSB7XHJcbiAgJi5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWNvbG9yKCRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBJY29uc1xyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXdpdGgtbGVhZGluZy1pY29uXyB7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaWNvbi1ob3Jpem9udGFsLXBvc2l0aW9uXyhcclxuICAgIGxlZnQsXHJcbiAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wb3NpdGlvbixcclxuICAgICRtZGMtdGV4dC1maWVsZC1pY29uLXBhZGRpbmcsXHJcbiAgICAkbWRjLXRleHQtZmllbGQtaW5wdXQtcGFkZGluZ1xyXG4gICk7XHJcblxyXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xyXG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgJG1kYy10ZXh0LWZpZWxkLWljb24tcGFkZGluZyk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZGVuc2Utd2l0aC1sZWFkaW5nLWljb25fIHtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1pY29uLWhvcml6b250YWwtcG9zaXRpb25fKFxyXG4gICAgbGVmdCxcclxuICAgICRtZGMtdGV4dC1maWVsZC1kZW5zZS1pY29uLXBvc2l0aW9uLFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWljb24tcGFkZGluZyxcclxuICAgICRtZGMtdGV4dC1maWVsZC1pbnB1dC1wYWRkaW5nXHJcbiAgKTtcclxuXHJcbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wYWRkaW5nKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbl8ge1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24taG9yaXpvbnRhbC1wb3NpdGlvbl8oXHJcbiAgICBsZWZ0LFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWljb24tcG9zaXRpb24sXHJcbiAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wYWRkaW5nLFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWlucHV0LXBhZGRpbmdcclxuICApO1xyXG4gIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXksIDMycHgpO1xyXG4gIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24odGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24pO1xyXG5cclxuICBAaW5jbHVkZSBtZGMtcnRsIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24odGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tcnRsKTtcclxuICB9XHJcblxyXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xyXG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgJG1kYy10ZXh0LWZpZWxkLWljb24tcGFkZGluZyAtICRtZGMtbm90Y2hlZC1vdXRsaW5lLWxlYWRpbmctd2lkdGgpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLXdpdGgtbGVhZGluZy1pY29uXyB7XHJcbiAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbihcclxuICAgICRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZS1sYWJlbC1wb3NpdGlvbi15LFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLXdpdGgtbGVhZGluZy1pY29uLWxhYmVsLXBvc2l0aW9uLXgsXHJcbiAgICAkbWRjLXRleHQtZmllbGQtZGVuc2UtbGFiZWwtc2NhbGVcclxuICApO1xyXG4gIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24odGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tZGVuc2UpO1xyXG5cclxuICBAaW5jbHVkZSBtZGMtcnRsIHtcclxuICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24odGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tZGVuc2UtcnRsKTtcclxuICB9XHJcblxyXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xyXG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWljb24tcGFkZGluZyAtICRtZGMtbm90Y2hlZC1vdXRsaW5lLWxlYWRpbmctd2lkdGgpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXdpdGgtdHJhaWxpbmctaWNvbl8ge1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24taG9yaXpvbnRhbC1wb3NpdGlvbl8oXHJcbiAgICByaWdodCxcclxuICAgICRtZGMtdGV4dC1maWVsZC10cmFpbGluZy1pY29uLXBvc2l0aW9uLFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWljb24tcGFkZGluZyxcclxuICAgICRtZGMtdGV4dC1maWVsZC1pbnB1dC1wYWRkaW5nXHJcbiAgKTtcclxuXHJcbiAgLy8gT3V0bGluZWQgdXNlcyAxNnB4IGZvciB0ZXh0IGFsaWdubWVudCB3aGVuIHVzaW5nIGEgdHJhaWxpbmcgaWNvbi5cclxuICAmLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1pY29uLWhvcml6b250YWwtcG9zaXRpb25fKFxyXG4gICAgICByaWdodCxcclxuICAgICAgJG1kYy10ZXh0LWZpZWxkLWljb24tcG9zaXRpb24sXHJcbiAgICAgICRtZGMtdGV4dC1maWVsZC1pY29uLXBhZGRpbmcsXHJcbiAgICAgICRtZGMtdGV4dC1maWVsZC1pbnB1dC1wYWRkaW5nXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWRlbnNlLXdpdGgtdHJhaWxpbmctaWNvbl8ge1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24taG9yaXpvbnRhbC1wb3NpdGlvbl8oXHJcbiAgICByaWdodCxcclxuICAgICRtZGMtdGV4dC1maWVsZC1kZW5zZS1pY29uLXBvc2l0aW9uLFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWljb24tcGFkZGluZyxcclxuICAgICRtZGMtdGV4dC1maWVsZC1pbnB1dC1wYWRkaW5nXHJcbiAgKTtcclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXdpdGgtYm90aC1pY29uc18ge1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24taG9yaXpvbnRhbC1wb3NpdGlvbi10d28taWNvbnNfKFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWljb24tcG9zaXRpb24sXHJcbiAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wYWRkaW5nLFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLXRyYWlsaW5nLWljb24tcG9zaXRpb24sXHJcbiAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wYWRkaW5nXHJcbiAgKTtcclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWRlbnNlLXdpdGgtYm90aC1pY29uc18ge1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24taG9yaXpvbnRhbC1wb3NpdGlvbi10d28taWNvbnNfKFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWljb24tcG9zaXRpb24sXHJcbiAgICAkbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wYWRkaW5nLFxyXG4gICAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWljb24tcG9zaXRpb24sXHJcbiAgICAkbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wYWRkaW5nXHJcbiAgKTtcclxufVxyXG5cclxuLy8gRnVsbCBXaWR0aFxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZnVsbHdpZHRoXyB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIHtcclxuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcih0cmFuc3BhcmVudCk7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1maWxsLWNvbG9yKHRyYW5zcGFyZW50KTtcclxuXHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xyXG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1mdWxsd2lkdGgtaW52YWxpZF8ge1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZ1bGx3aWR0aC1ib3R0b20tbGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtZXJyb3IpO1xyXG59XHJcblxyXG4vLyBUZXh0YXJlYVxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtZGlzYWJsZWRfIHtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kaXNhYmxlZF87XHJcbiAgLyogQGFsdGVybmF0ZSAqL1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhLWZpbGwtY29sb3JfKCRtZGMtdGV4dGFyZWEtZGlzYWJsZWQtYmFja2dyb3VuZCk7XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC10ZXh0YXJlYS1pbnZhbGlkXyB7XHJcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtZXJyb3IpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhvdmVyLW91dGxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWVycm9yKTtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1mb2N1c2VkLW91dGxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWVycm9yKTtcclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhXyB7XHJcbiAgLy8gTm90ZTogVGhlIHJlZmFjdG9yIHRvIGFkZCB0aGUgZmlsbGVkIHRleHRhcmVhIHN0eWxlIHdpbGwgcmVzdWx0IGluIGEgbG90IG9mIHRoZSBzcGVjaWZpY2l0eSBpc3N1ZXMgdGhhdCB0aGVcclxuICAvLyB0ZXh0YXJlYSBoYXMgYmVpbmcgcmVzb2x2ZWQgYnkgdXNpbmcgdGhlIHNhbWUgLS1vdXRsaW5lZCB2YXJpYW50IGNsYXNzIGFzIHRoZSB0ZXh0IGZpZWxkLlxyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWlkbGUtYm9yZGVyKTtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1ob3Zlci1vdXRsaW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1ob3Zlci1ib3JkZXIpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZvY3VzZWQtb3V0bGluZS1jb2xvcihwcmltYXJ5KTtcclxuICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtYW5pbWF0aW9uKHRleHQtZmllbGQtb3V0bGluZWQpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmUtc2hhcGUtcmFkaXVzKHNtYWxsKTtcclxuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWJhc2UtY29sb3IodHJhbnNwYXJlbnQpO1xyXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZpbGwtY29sb3IodHJhbnNwYXJlbnQpO1xyXG4gIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXksIDAlKTtcclxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlci1wb3NpdGlvbigxNnB4LCAxM3B4KTtcclxuXHJcbiAgJHBhZGRpbmctaW5zZXQ6IDE2cHg7XHJcblxyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIHdpZHRoOiBhdXRvO1xyXG4gIGhlaWdodDogYXV0bztcclxuICB0cmFuc2l0aW9uOiBub25lO1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG5cclxuICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcclxuICAgIGFsaWduLXNlbGY6IGF1dG87XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgbWFyZ2luOiAkcGFkZGluZy1pbnNldC8yIDFweCAxcHggMDtcclxuICAgIHBhZGRpbmc6IDAgJHBhZGRpbmctaW5zZXQgJHBhZGRpbmctaW5zZXQ7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIgKyAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7IC8vIExlYXZlcyBzcGFjZSBmb3IgY2hhcmFjdGVyIGNvdW50ZXIgaWYgaXQgZXhpc3RzLlxyXG4gICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcclxuICAgIHRvcDogMTdweDtcclxuICAgIGJvdHRvbTogYXV0bztcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIHtcclxuICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWZvY3VzZWRfO1xyXG4gIH1cclxufVxyXG5cclxuLy8gQ3VzdG9taXphdGlvblxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWluay1jb2xvcl8oJGNvbG9yKSB7XHJcbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1maWxsLWNvbG9yXygkY29sb3IpIHtcclxuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtc3Ryb2tlLWNvbG9yXygkY29sb3IpIHtcclxuICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWNvbG9yKCRjb2xvcik7XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC10ZXh0YXJlYS1maWxsLWNvbG9yXygkY29sb3IpIHtcclxuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZnVsbHdpZHRoLWJvdHRvbS1saW5lLWNvbG9yXygkY29sb3IpIHtcclxuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItYm90dG9tLWNvbG9yLCAkY29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWJvdHRvbS1saW5lLWNvbG9yXygkY29sb3IpIHtcclxuICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcclxuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1ib3R0b20tY29sb3IsICRjb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaG92ZXItYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvcikge1xyXG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIge1xyXG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWJvdHRvbS1jb2xvciwgJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1saW5lLXJpcHBsZS1jb2xvcl8oJGNvbG9yKSB7XHJcbiAgLm1kYy1saW5lLXJpcHBsZSB7XHJcbiAgICBAaW5jbHVkZSBtZGMtbGluZS1yaXBwbGUtY29sb3IoJGNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1sYWJlbC1pbmstY29sb3JfKCRjb2xvcikge1xyXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xyXG4gICAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLWluay1jb2xvcigkY29sb3IpO1xyXG4gIH1cclxufVxyXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuLy8gUHVibGljIG1peGluc1xuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtdmFsaWRhdGlvbi1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LXZhbGlkYXRpb24tY29sb3JfKCRjb2xvcik7XG4gIH1cbn1cblxuLy8gUHJpdmF0ZSBtaXhpbnNcblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LWNvbG9yXygkY29sb3IpIHtcbiAgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0IHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtdmFsaWRhdGlvbi1jb2xvcl8oJGNvbG9yKSB7XG4gICYubWRjLXRleHQtZmllbGQtLWludmFsaWQgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZyB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOSBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vLi4vcnRsL21peGluc1wiO1xuXG4vLyBQdWJsaWMgbWl4aW5zXG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlci1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLWNvbG9yXygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlci1wb3NpdGlvbigkeE9mZnNldCwgJHlPZmZzZXQpIHtcbiAgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihyaWdodCwgJHhPZmZzZXQpO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogJHlPZmZzZXQ7XG4gIH1cbn1cblxuLy8gUHJpdmF0ZSBtaXhpbnNcblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLWNvbG9yXygkY29sb3IpIHtcbiAgLy8gQ2hhcmFjdGVyIGNvdW50ZXIgaXMgcGxhY2VkIGluc2lkZSBtZGMtdGV4dGZpZWxkIGVsZW1lbnQgKGZvciB0ZXh0YXJlYSB2YXJpYW50ICkgb3JcbiAgLy8gaW5zaWRlIGhlbHBlciBsaW5lIHdoaWNoIGlzIHNpYmxpbmcgdG8gbWRjLXRleHRmaWVsZC5cbiAgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLFxuICArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuLy8gUHVibGljIG1peGluc1xuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaWNvbi1jb2xvcigkY29sb3IsICRzdHlsZVNlY29uZEljb246IGZhbHNlKSB7XG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1pY29uLWNvbG9yXygkY29sb3IsICRzdHlsZVNlY29uZEljb24pO1xuICB9XG59XG5cbi8vIFByaXZhdGUgbWl4aW5zXG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1pY29uLWhvcml6b250YWwtcG9zaXRpb25fKCRwb3NpdGlvbi1wcm9wZXJ0eSwgJHBvc2l0aW9uLCAkcGFkZGluZywgJGlucHV0LXBhZGRpbmcpIHtcbiAgLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbigkcG9zaXRpb24tcHJvcGVydHksICRwb3NpdGlvbik7XG4gIH1cblxuICAvLyBNb3ZlIHRoZSBpbnB1dCdzIHBvc2l0aW9uLCB0byBhbGxvdyByb29tIGZvciB0aGUgaWNvblxuICBAaWYgKCRwb3NpdGlvbi1wcm9wZXJ0eSA9PSBsZWZ0KSB7XG4gICAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShwYWRkaW5nLCAkcGFkZGluZywgJGlucHV0LXBhZGRpbmcpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShwYWRkaW5nLCAkaW5wdXQtcGFkZGluZywgJHBhZGRpbmcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaWNvbi1ob3Jpem9udGFsLXBvc2l0aW9uLXR3by1pY29uc18oXG4gICRwb3NpdGlvbi1sZWZ0LFxuICAkcGFkZGluZy1sZWZ0LFxuICAkcG9zaXRpb24tcmlnaHQsXG4gICRwYWRkaW5nLXJpZ2h0XG4pIHtcbiAgLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZShsZWZ0LCAkcG9zaXRpb24tbGVmdCwgcmlnaHQsIGF1dG8pO1xuXG4gICAgfiAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUocmlnaHQsICRwb3NpdGlvbi1yaWdodCwgbGVmdCwgYXV0byk7XG4gICAgfVxuICB9XG5cbiAgLy8gTW92ZSB0aGUgaW5wdXQncyBwb3NpdGlvbiwgdG8gYWxsb3cgcm9vbSBmb3IgdGhlIGljb25zLlxuICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShwYWRkaW5nLCAkcGFkZGluZy1sZWZ0LCAkcGFkZGluZy1yaWdodCk7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWljb24tY29sb3JfKCRjb2xvciwgJHN0eWxlU2Vjb25kSWNvbjogZmFsc2UpIHtcbiAgLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgICBAaWYgKCRzdHlsZVNlY29uZEljb24pIHtcbiAgICAgIC8vIFNlbGVjdCB0aGUgc2Vjb25kIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgcmVnYXJkbGVzcyBvZiBlbGVtZW50IHR5cGUuXG4gICAgICB+IC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy10ZXh0LWZpZWxkLWljb24tcG9zaXRpb246IDE2cHggIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtdHJhaWxpbmctaWNvbi1wb3NpdGlvbjogMTJweCAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1pY29uLXBhZGRpbmc6IDQ4cHggIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wYWRkaW5nOiA0NHB4ICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWljb24tcG9zaXRpb246IDEycHggIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wYWRkaW5nOiAzOHB4ICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi90eXBvZ3JhcGh5L21peGluc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgdG9wLWFwcC1iYXJcbi5tZGMtdG9wLWFwcC1iYXIge1xuICBAaW5jbHVkZSBtZGMtdG9wLWFwcC1iYXItZmlsbC1jb2xvci1hY2Nlc3NpYmxlKHByaW1hcnkpO1xuICBAaW5jbHVkZSBtZGMtdG9wLWFwcC1iYXItaWNvbi1pbmstY29sb3Iob24tcHJpbWFyeSk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiA0O1xuXG4gICZfX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRtZGMtdG9wLWFwcC1iYXItcm93LWhlaWdodDtcbiAgfVxuXG4gICZfX3NlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6ICRtZGMtdG9wLWFwcC1iYXItc2VjdGlvbi12ZXJ0aWNhbC1wYWRkaW5nICRtZGMtdG9wLWFwcC1iYXItc2VjdGlvbi1ob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgei1pbmRleDogMTtcblxuICAgICYtLWFsaWduLXN0YXJ0IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIG9yZGVyOiAtMTtcbiAgICB9XG5cbiAgICAmLS1hbGlnbi1lbmQge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShoZWFkbGluZTYpO1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChwYWRkaW5nLCBsZWZ0LCAkbWRjLXRvcC1hcHAtYmFyLXRpdGxlLWxlZnQtcGFkZGluZyk7XG5cbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gICZfX2FjdGlvbi1pdGVtLFxuICAmX19uYXZpZ2F0aW9uLWljb24ge1xuICAgIEBpbmNsdWRlIG1kYy10b3AtYXBwLWJhci1pY29uXztcbiAgfVxufVxuXG5AYXQtcm9vdCB7XG4gIEBpbmNsdWRlIG1kYy10b3AtYXBwLWJhci1zaG9ydC1zaGFwZS1yYWRpdXMoMjRweCk7XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0IHtcbiAgdG9wOiAwO1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBhdXRvO1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAyNTBtcyAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG5cbiAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgICBoZWlnaHQ6ICRtZGMtdG9wLWFwcC1iYXItbW9iaWxlLXJvdy1oZWlnaHQ7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAkbWRjLXRvcC1hcHAtYmFyLW1vYmlsZS1zZWN0aW9uLXBhZGRpbmc7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQge1xuICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDQpO1xuXG4gIHdpZHRoOiAkbWRjLXRvcC1hcHAtYmFyLXNob3J0LWNvbGxhcHNlZC13aWR0aDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMzAwbXMgJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuXG4gIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ge1xuICAgIHRyYW5zaXRpb246IHBhZGRpbmcgMTUwbXMgJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICB9XG59XG5cbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWhhcy1hY3Rpb24taXRlbSB7XG4gIHdpZHRoOiAkbWRjLXRvcC1hcHAtYmFyLXNob3J0LWNvbGxhcHNlZC13aWR0aCAqIDI7XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbi0tYWxpZ24tZW5kIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gocGFkZGluZywgcmlnaHQsIDEycHgpO1xuICB9XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLWRlbnNlIHtcbiAgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgICBoZWlnaHQ6ICRtZGMtdG9wLWFwcC1iYXItZGVuc2Utcm93LWhlaWdodDtcbiAgfVxuXG4gIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAgJG1kYy10b3AtYXBwLWJhci1kZW5zZS1zZWN0aW9uLWhvcml6b250YWwtcGFkZGluZztcbiAgfVxuXG4gIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gocGFkZGluZywgbGVmdCwgJG1kYy10b3AtYXBwLWJhci1kZW5zZS10aXRsZS1sZWZ0LXBhZGRpbmcpO1xuICB9XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCB7XG4gIC5tZGMtdG9wLWFwcC1iYXJfX3JvdyB7XG4gICAgaGVpZ2h0OiAkbWRjLXRvcC1hcHAtYmFyLXByb21pbmVudC1yb3ctaGVpZ2h0O1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWRjLXRvcC1hcHAtYmFyLXByb21pbmVudC10aXRsZS1ib3R0b20tcGFkZGluZztcbiAgfVxuXG4gIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLFxuICAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIH1cbn1cblxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuLm1kYy10b3AtYXBwLWJhci0tZml4ZWQge1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGxpbmVhcjtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tZml4ZWQtc2Nyb2xsZWQge1xuICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDQpO1xuXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgbGluZWFyO1xufVxuXG4vLyBTcGVjaWZpYyBzdHlsZXMgZm9yIHByb21pbmVudCBhbmQgZGVuc2Ugc3R5bGVkIHRvcCBhcHAgYmFyXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbi5tZGMtdG9wLWFwcC1iYXItLWRlbnNlLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IHtcbiAgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgICBoZWlnaHQ6ICRtZGMtdG9wLWFwcC1iYXItZGVuc2Utcm93LWhlaWdodCAqIDI7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAwICRtZGMtdG9wLWFwcC1iYXItc2VjdGlvbi1ob3Jpem9udGFsLXBhZGRpbmc7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KHBhZGRpbmcsIGxlZnQsICRtZGMtdG9wLWFwcC1iYXItdGl0bGUtbGVmdC1wYWRkaW5nKTtcblxuICAgIHBhZGRpbmctYm90dG9tOiAkbWRjLXRvcC1hcHAtYmFyLXByb21pbmVudC1kZW5zZS10aXRsZS1ib3R0b20tcGFkZGluZztcbiAgfVxufVxuLy8gc3R5bGVsaW50LWVuYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cblxuLm1kYy10b3AtYXBwLWJhci0tZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6ICRtZGMtdG9wLWFwcC1iYXItcm93LWhlaWdodDtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UtZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6ICRtZGMtdG9wLWFwcC1iYXItZGVuc2Utcm93LWhlaWdodDtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6ICRtZGMtdG9wLWFwcC1iYXItbW9iaWxlLXJvdy1oZWlnaHQ7XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudC1maXhlZC1hZGp1c3Qge1xuICBwYWRkaW5nLXRvcDogJG1kYy10b3AtYXBwLWJhci1wcm9taW5lbnQtcm93LWhlaWdodDtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UtcHJvbWluZW50LWZpeGVkLWFkanVzdCB7XG4gIHBhZGRpbmctdG9wOiAkbWRjLXRvcC1hcHAtYmFyLWRlbnNlLXJvdy1oZWlnaHQgKiAyO1xufVxuXG4vLyBNb2JpbGUgU3R5bGVzXG5AaW5jbHVkZSBtZGMtdG9wLWFwcC1iYXItbW9iaWxlLWJyZWFrcG9pbnRfO1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vcmlwcGxlL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lL3ZhcmlhYmxlc1wiOyAvLyBmb3IgbWRjLXRoZW1lLWFjY2Vzc2libGUtaW5rLWNvbG9yXG5AaW1wb3J0IFwiLi4vdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vc2hhcGUvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy9cbi8vIFB1YmxpY1xuLy9cblxuQG1peGluIG1kYy10b3AtYXBwLWJhci1pbmstY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xufVxuXG5AbWl4aW4gbWRjLXRvcC1hcHAtYmFyLWZpbGwtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG59XG5cbkBtaXhpbiBtZGMtdG9wLWFwcC1iYXItZmlsbC1jb2xvci1hY2Nlc3NpYmxlKCRjb2xvcikge1xuICBAaW5jbHVkZSBtZGMtdG9wLWFwcC1iYXItZmlsbC1jb2xvcigkY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtdG9wLWFwcC1iYXItaW5rLWNvbG9yKG1kYy10aGVtZS1hY2Nlc3NpYmxlLWluay1jb2xvcigkY29sb3IpKTtcbn1cblxuQG1peGluIG1kYy10b3AtYXBwLWJhci1pY29uLWluay1jb2xvcigkY29sb3IpIHtcbiAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0sXG4gIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdG9wLWFwcC1iYXItc2hvcnQtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiB0cnVlKSB7XG4gIEBpZiBsZW5ndGgoJHJhZGl1cykgPiAxIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHJhZGl1czogJyN7JHJhZGl1c30nIGNvbXBvbmVudCBkb2Vzbid0IGFsbG93IGN1c3RvbWl6aW5nIGFsbCBjb3JuZXJzXCI7XG4gIH1cblxuICAkcmFkaXVzOiAwIDAgJHJhZGl1cyAwO1xuXG4gICRzZWxlY3RvcjogaWYoJiwgXCImLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkXCIsIFwiLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkXCIpO1xuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cyhcbiAgICAgIG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtdG9wLWFwcC1iYXItZGVuc2Utcm93LWhlaWdodCwgJHJhZGl1cyksXG4gICAgICAkcnRsLXJlZmxleGl2ZVxuICAgICk7XG4gIH1cbn1cblxuQG1peGluIG1kYy10b3AtYXBwLWJhci1tb2JpbGUtYnJlYWtwb2ludF8oJG1vYmlsZS1icmVha3BvaW50OiAkbWRjLXRvcC1hcHAtYmFyLW1vYmlsZS1icmVha3BvaW50KSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAkbW9iaWxlLWJyZWFrcG9pbnQpIHtcbiAgICAubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICAgICAgaGVpZ2h0OiAkbWRjLXRvcC1hcHAtYmFyLW1vYmlsZS1yb3ctaGVpZ2h0O1xuICAgIH1cblxuICAgIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24ge1xuICAgICAgcGFkZGluZzogJG1kYy10b3AtYXBwLWJhci1tb2JpbGUtc2VjdGlvbi1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0IHtcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDIwMG1zICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICB9XG5cbiAgICAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQge1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggMjUwbXMgJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuXG4gICAgICAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1lbmQge1xuICAgICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gocGFkZGluZywgcmlnaHQsICRtZGMtdG9wLWFwcC1iYXItc2hvcnQtY29sbGFwc2VkLXJpZ2h0LWljb24tcGFkZGluZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IHtcbiAgICAgIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRtZGMtdG9wLWFwcC1iYXItcHJvbWluZW50LW1vYmlsZS10aXRsZS1ib3R0b20tcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLXRvcC1hcHAtYmFyLS1maXhlZC1hZGp1c3Qge1xuICAgICAgcGFkZGluZy10b3A6ICRtZGMtdG9wLWFwcC1iYXItbW9iaWxlLXJvdy1oZWlnaHQ7XG4gICAgfVxuICB9XG59XG5cbi8vXG4vLyBQcml2YXRlXG4vL1xuXG4vLyBBcHBsaWVzIHN0eWxlcyB0byB0aGUgZGlmZmVyZW50IHR5cGVzIG9mIGljb25zIHRoYXQgY2FuIGV4aXN0IGluIHRvcC1hcHAtYmFycy5cbi8vIEJvdGggLm1kYy10b3AtYXBwLWJhcl9faWNvbiBhbmQgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uIHNoYXJlIGFsbCBzdHlsZXMgZXhjZXB0IGZvclxuLy8gaG9yaXpvbnRhbCBwYWRkaW5nLlxuQG1peGluIG1kYy10b3AtYXBwLWJhci1pY29uXygpIHtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlO1xuICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy11bmJvdW5kZWQ7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LXNocmluazogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAkbWRjLXRvcC1hcHAtYmFyLWljb24tc2l6ZSArICRtZGMtdG9wLWFwcC1iYXItaWNvbi1wYWRkaW5nICogMjtcbiAgaGVpZ2h0OiAkbWRjLXRvcC1hcHAtYmFyLWljb24tc2l6ZSArICRtZGMtdG9wLWFwcC1iYXItaWNvbi1wYWRkaW5nICogMjtcbiAgcGFkZGluZzogJG1kYy10b3AtYXBwLWJhci1pY29uLXBhZGRpbmc7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbi8vIERlZmF1bHQgc3R5bGVzXG4kbWRjLXRvcC1hcHAtYmFyLXJvdy1oZWlnaHQ6IDY0cHggIWRlZmF1bHQ7XG4kbWRjLXRvcC1hcHAtYmFyLXRpdGxlLWxlZnQtcGFkZGluZzogMjBweCAhZGVmYXVsdDtcbiRtZGMtdG9wLWFwcC1iYXItc2VjdGlvbi12ZXJ0aWNhbC1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG4kbWRjLXRvcC1hcHAtYmFyLXNlY3Rpb24taG9yaXpvbnRhbC1wYWRkaW5nOiAxMnB4ICFkZWZhdWx0O1xuXG4kbWRjLXRvcC1hcHAtYmFyLWljb24tcGFkZGluZzogMTJweCAhZGVmYXVsdDtcbiRtZGMtdG9wLWFwcC1iYXItaWNvbi1zaXplOiAyNHB4ICFkZWZhdWx0O1xuXG4kbWRjLXRvcC1hcHAtYmFyLW1vYmlsZS1icmVha3BvaW50OiA1OTlweCAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBtb2JpbGUgc3R5bGVzXG4kbWRjLXRvcC1hcHAtYmFyLW1vYmlsZS1yb3ctaGVpZ2h0OiA1NnB4ICFkZWZhdWx0O1xuJG1kYy10b3AtYXBwLWJhci1tb2JpbGUtc2VjdGlvbi1wYWRkaW5nOiA0cHggIWRlZmF1bHQ7XG5cbi8vIFNob3J0IHRvcCBhcHAgYmFyXG4kbWRjLXRvcC1hcHAtYmFyLXNob3J0LWNvbGxhcHNlZC1ib3JkZXItcmFkaXVzOiA0cHggIWRlZmF1bHQ7XG4kbWRjLXRvcC1hcHAtYmFyLXNob3J0LWNvbGxhcHNlZC13aWR0aDogNTZweCAhZGVmYXVsdDtcbiRtZGMtdG9wLWFwcC1iYXItc2hvcnQtY29sbGFwc2VkLXJpZ2h0LWljb24tcGFkZGluZzogMTJweCAhZGVmYXVsdDtcblxuLy8gUHJvbWluZW50IHN0eWxlc1xuJG1kYy10b3AtYXBwLWJhci1wcm9taW5lbnQtcm93LWhlaWdodDogMTI4cHggIWRlZmF1bHQ7XG4kbWRjLXRvcC1hcHAtYmFyLXByb21pbmVudC10aXRsZS1ib3R0b20tcGFkZGluZzogMnB4ICFkZWZhdWx0O1xuXG4vLyBQcm9taW5lbnQgbW9iaWxlIHN0eWxlc1xuJG1kYy10b3AtYXBwLWJhci1wcm9taW5lbnQtbW9iaWxlLXRpdGxlLWJvdHRvbS1wYWRkaW5nOiA2cHggIWRlZmF1bHQ7XG5cbi8vIERlbnNlIHN0eWxlc1xuJG1kYy10b3AtYXBwLWJhci1kZW5zZS1yb3ctaGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuJG1kYy10b3AtYXBwLWJhci1kZW5zZS1zZWN0aW9uLWhvcml6b250YWwtcGFkZGluZzogNHB4ICFkZWZhdWx0O1xuJG1kYy10b3AtYXBwLWJhci1kZW5zZS10aXRsZS1sZWZ0LXBhZGRpbmc6IDEycHggIWRlZmF1bHQ7XG5cbi8vIERlbnNlICYgUHJvbWluZW50IHN0eWxlc1xuJG1kYy10b3AtYXBwLWJhci1wcm9taW5lbnQtZGVuc2UtdGl0bGUtYm90dG9tLXBhZGRpbmc6IDlweCAhZGVmYXVsdDtcbiIsIi5uZ3gtbWRjLWZvcm0tZmllbGQtLWZsdWlkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXg6IGF1dG87XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG4iLCIubmd4LW1kYy1jaGlwLS1wcmltYXJ5IHtcclxuICBAaW5jbHVkZSBtZGMtY2hpcC1maWxsLWNvbG9yLWFjY2Vzc2libGUoJG1kYy10aGVtZS1wcmltYXJ5KTtcclxufVxyXG5cclxuLm5neC1tZGMtY2hpcC0tc2Vjb25kYXJ5IHtcclxuICBAaW5jbHVkZSBtZGMtY2hpcC1maWxsLWNvbG9yLWFjY2Vzc2libGUoJG1kYy10aGVtZS1zZWNvbmRhcnkpO1xyXG59XHJcbiIsIi5uZ3gtbWRjLWZhYi1leHRlbmRlZC0tZmx1aWQge1xyXG4gIEBpbmNsdWRlIG1kYy1mYWItZXh0ZW5kZWQtZmx1aWQ7XHJcbn1cclxuXHJcbi5uZ3gtbWRjLWZhYi0tYm90dG9tLXJpZ2h0IHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgcmlnaHQ6IDFyZW07XHJcbiAgYm90dG9tOiAxcmVtO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XHJcbiAgLm5neC1tZGMtZmFiLS1ib3R0b20tcmlnaHQge1xyXG4gICAgcmlnaHQ6IDEuNXJlbTtcclxuICAgIGJvdHRvbTogMS41cmVtO1xyXG4gIH1cclxufVxyXG5cclxuLm5neC1tZGMtZmFiLS1ib3R0b20tbGVmdCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGJvdHRvbTogMXJlbTtcclxuICBsZWZ0OiAxcmVtO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XHJcbiAgLm5neC1tZGMtZmFiLS1ib3R0b20tbGVmdCB7XHJcbiAgICBib3R0b206IDEuNXJlbTtcclxuICAgIGxlZnQ6IDEuNXJlbTtcclxuICB9XHJcbn1cclxuIiwiLm5neC1tZGMtaWNvbi0tY2xpY2thYmxlLFxyXG5hLm5neC1tZGMtaWNvbiB7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuICB1c2VyLXNlbGVjdDogbm9uZTtcclxufVxyXG5cclxuLm5neC1tZGMtaWNvbi0taW5saW5lIHtcclxuICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgaGVpZ2h0OiBpbmhlcml0O1xyXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG4gIHdpZHRoOiBpbmhlcml0O1xyXG59XHJcbiIsIi5tZGMtaW1hZ2UtbGlzdF9faXRlbSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuIiwiLm1kYy1saW5lYXItcHJvZ3Jlc3Mge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4ubWRjLWxpbmVhci1wcm9ncmVzcy0tc2Vjb25kYXJ5IHtcclxuICBAaW5jbHVkZSBtZGMtbGluZWFyLXByb2dyZXNzLWJhci1jb2xvcigkbWRjLXRoZW1lLXNlY29uZGFyeSk7XHJcbn1cclxuIiwiLm1kYy1saXN0LFxyXG4ubWRjLWxpc3QtZGl2aWRlciB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5uZ3gtbWRjLWxpc3QtLWJvcmRlciB7XHJcbiAgLm1kYy1saXN0LWl0ZW0ge1xyXG4gICAgLyogQWRkIHRoZSBsaXN0IHNpZGUgcGFkZGluZyBwYWRkaW5nIHRvIHRoZSBsaXN0IGl0ZW0uICovXHJcbiAgICBwYWRkaW5nOiAwIDE2cHg7XHJcblxyXG4gICAgLyogQWRkIGEgYm9yZGVyIGFyb3VuZCBlYWNoIGVsZW1lbnQuICovXHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIC4xMik7XHJcbiAgfVxyXG5cclxuICAvKiBFbnN1cmUgYWRqYWNlbnQgYm9yZGVycyBkb24ndCBjb2xsaWRlIHdpdGggb25lIGFub3RoZXIuICovXHJcbiAgLm1kYy1saXN0LWl0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgYm9yZGVyLXRvcDogbm9uZTtcclxuICB9XHJcbn1cclxuIiwiLm1kYy1tZW51LXN1cmZhY2UtLWFuY2hvciB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcbiIsIi5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG59XHJcbiIsIi5tZGMtc2xpZGVyIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuIiwiLm5neC1tZGMtc25hY2tiYXItLXRyYWlsaW5nIHtcclxuICBAbWVkaWEgKG1pbi13aWR0aDogJG1kYy1zbmFja2Jhci1tb2JpbGUtYnJlYWtwb2ludCkge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICB9XHJcbn1cclxuIiwiLm5neC1tZGMtdGFiLS1kaXNhYmxlZCB7XHJcbiAgQGluY2x1ZGUgbWRjLXRhYi10ZXh0LWxhYmVsLWNvbG9yKHJnYmEoYmxhY2ssIC4zKSk7XHJcbiAgQGluY2x1ZGUgbWRjLXRhYi1pY29uLWNvbG9yKHJnYmEoYmxhY2ssIC4zKSk7XHJcblxyXG4gIC5tZGMtdGFiLWluZGljYXRvciB7XHJcbiAgICBAaW5jbHVkZSBtZGMtdGFiLWluZGljYXRvci11bmRlcmxpbmUtY29sb3IocmdiYShibGFjaywgLjMpKTtcclxuICB9XHJcblxyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG4iLCIubWRjLXRhYi1iYXIge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcbiIsIi5tZGMtdGFiLXNjcm9sbGVyIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG4iLCJAaW1wb3J0ICd+QGFuZ3VsYXItbWRjL3RoZW1lL21hdGVyaWFsJztcclxuXHJcbi5tYXNvbnJ5LWltYWdlLWxpc3Qge1xyXG4gIEBpbmNsdWRlIG1kYy1pbWFnZS1saXN0LW1hc29ucnktY29sdW1ucygzKTtcclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDU5OXB4KSB7XHJcbiAgLm1hc29ucnktaW1hZ2UtbGlzdCB7XHJcbiAgICBAaW5jbHVkZSBtZGMtaW1hZ2UtbGlzdC1tYXNvbnJ5LWNvbHVtbnMoMik7XHJcbiAgfVxyXG59Il19 */"
/***/ }),
/***/ "./src/app/brand-list/brand-list.component.ts":
/*!****************************************************!*\
!*** ./src/app/brand-list/brand-list.component.ts ***!
\****************************************************/
/*! exports provided: BrandListComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BrandListComponent", function() { return BrandListComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
/* harmony import */ var _shared_product_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/product.service */ "./src/app/shared/product.service.ts");
/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
/* harmony import */ var _shared_product_filter_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/product-filter.service */ "./src/app/shared/product-filter.service.ts");
var BrandListComponent = /** @class */ (function () {
function BrandListComponent(productService, productFilterService) {
this.productService = productService;
this.productFilterService = productFilterService;
this.brandselected = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
}
BrandListComponent.prototype.ngOnInit = function () {
this.brands$ = this.productService.getProductSet().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(function (x) {
if (x) {
return x.Brands;
}
return [];
}));
};
BrandListComponent.prototype.onBrandSelected = function (brand) {
this.brandselected.emit(brand);
this.productFilterService.setBrandCode(brand.BrandCode);
};
BrandListComponent.prototype.getManufacturerImageURL = function (brand) {
return 'https://www.msprodimages.com/Manufacturers%20Logo-Small%20Size/' + brand.BrandCode + '.jpg';
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"])(),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:type", Object)
], BrandListComponent.prototype, "brandselected", void 0);
BrandListComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-brand-list',
template: __webpack_require__(/*! ./brand-list.component.html */ "./src/app/brand-list/brand-list.component.html"),
styles: [__webpack_require__(/*! ./brand-list.component.scss */ "./src/app/brand-list/brand-list.component.scss")]
}),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:paramtypes", [_shared_product_service__WEBPACK_IMPORTED_MODULE_2__["ProductService"], _shared_product_filter_service__WEBPACK_IMPORTED_MODULE_4__["ProductFilterService"]])
], BrandListComponent);
return BrandListComponent;
}());
/***/ }),
/***/ "./src/app/category-list/category-list.component.html":
/*!************************************************************!*\
!*** ./src/app/category-list/category-list.component.html ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = "\n
\n \n \n \n \n {{node.name}}
\n \n \n \n \n \n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\n \n \n {{node.name}}
\n \n \n
\n\n \n "
/***/ }),
/***/ "./src/app/category-list/category-list.component.scss":
/*!************************************************************!*\
!*** ./src/app/category-list/category-list.component.scss ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NhdGVnb3J5LWxpc3QvY2F0ZWdvcnktbGlzdC5jb21wb25lbnQuc2NzcyJ9 */"
/***/ }),
/***/ "./src/app/category-list/category-list.component.ts":
/*!**********************************************************!*\
!*** ./src/app/category-list/category-list.component.ts ***!
\**********************************************************/
/*! exports provided: CategoryListComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CategoryListComponent", function() { return CategoryListComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
/* harmony import */ var _shared_product_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/product.service */ "./src/app/shared/product.service.ts");
/* harmony import */ var _angular_cdk_tree__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/cdk/tree */ "./node_modules/@angular/cdk/esm5/tree.es5.js");
/* harmony import */ var _angular_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material */ "./node_modules/@angular/material/esm5/material.es5.js");
/* harmony import */ var _shared_product_filter_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../shared/product-filter.service */ "./src/app/shared/product-filter.service.ts");
var CategoryListComponent = /** @class */ (function () {
function CategoryListComponent(productService, productFilterService) {
var _this = this;
this.productService = productService;
this.productFilterService = productFilterService;
this.categoryselected = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
this.transformer = function (node, level) {
return {
expandable: !!node.SubCategories && node.SubCategories.length > 0,
name: node.Name,
level: level,
category: node
};
};
this.treeControl = new _angular_cdk_tree__WEBPACK_IMPORTED_MODULE_3__["FlatTreeControl"](function (node) { return node.level; }, function (node) { return node.expandable; });
this.treeFlattener = new _angular_material__WEBPACK_IMPORTED_MODULE_4__["MatTreeFlattener"](this.transformer, function (node) { return node.level; }, function (node) { return node.expandable; }, function (node) { return node.SubCategories; });
this.dataSource = new _angular_material__WEBPACK_IMPORTED_MODULE_4__["MatTreeFlatDataSource"](this.treeControl, this.treeFlattener);
this.hasChild = function (_, node) { return node.expandable; };
this.productService.getProductSet().subscribe(function (x) {
if (x && x.Categories) {
_this.dataSource.data = x.Categories;
}
});
}
CategoryListComponent.prototype.ngOnInit = function () {
};
CategoryListComponent.prototype.categorySelected = function (node) {
console.log(node);
if (node.category) {
if (node.level === 0) {
this.productFilterService.setCategoryLevel1(node.category);
}
else if (node.level === 1) {
this.productFilterService.setCategoryLevel2(node.category.parent, node.category);
}
else if (node.level === 2) {
this.productFilterService.setCategoryLevel3(node.category.parent.parent, node.category.parent, node.category);
}
this.categoryselected.emit(node.category);
}
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"])(),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:type", Object)
], CategoryListComponent.prototype, "categoryselected", void 0);
CategoryListComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-category-list',
template: __webpack_require__(/*! ./category-list.component.html */ "./src/app/category-list/category-list.component.html"),
styles: [__webpack_require__(/*! ./category-list.component.scss */ "./src/app/category-list/category-list.component.scss")]
}),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:paramtypes", [_shared_product_service__WEBPACK_IMPORTED_MODULE_2__["ProductService"], _shared_product_filter_service__WEBPACK_IMPORTED_MODULE_5__["ProductFilterService"]])
], CategoryListComponent);
return CategoryListComponent;
}());
/***/ }),
/***/ "./src/app/delayed-image/delayed-image.component.html":
/*!************************************************************!*\
!*** ./src/app/delayed-image/delayed-image.component.html ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = " \r\n \r\n\r\n image \r\n
"
/***/ }),
/***/ "./src/app/delayed-image/delayed-image.component.ts":
/*!**********************************************************!*\
!*** ./src/app/delayed-image/delayed-image.component.ts ***!
\**********************************************************/
/*! exports provided: DelayedImageComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DelayedImageComponent", function() { return DelayedImageComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
/* harmony import */ var _angular_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material */ "./node_modules/@angular/material/esm5/material.es5.js");
/* harmony import */ var _image_viewer_image_viewer_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../image-viewer/image-viewer.component */ "./src/app/image-viewer/image-viewer.component.ts");
var DelayedImageComponent = /** @class */ (function () {
function DelayedImageComponent(cdr, dialog) {
this.cdr = cdr;
this.dialog = dialog;
this.delayMs = 200;
// @ViewChild('someInput') imageTag: ElementRef;
this.currentSrc = '';
this.cancelRequest = false;
this.hasLoaded = false;
}
DelayedImageComponent.prototype.ngOnInit = function () {
this.resetImageSource(); // this.imageTag.nativeElement.addEventListener('load', this.imageLoaded);
};
DelayedImageComponent.prototype.getImgClass = function () {
if (this.hasLoaded) {
return 'delayed-image';
}
return 'delayed-image hide';
};
DelayedImageComponent.prototype.getSpinnerClass = function () {
if (this.hasLoaded) {
return 'delayed-spinner hide';
}
return 'delayed-spinner';
};
DelayedImageComponent.prototype.imageLoaded = function () {
//console.log('image loaded: ' + this.currentSrc);
if (this.src && this.src !== '' && this.src === this.currentSrc) {
this.hasLoaded = true;
this.cdr.detectChanges();
}
};
DelayedImageComponent.prototype.setupDelayedImageLoad = function () {
var _this = this;
//this.delayImageLoad();
var originalSrc = this.src;
var that = this;
if (this.cache) {
this.cache.match(new Request(this.src)).then(function (r) {
if (originalSrc !== that.src) {
// we are no longer loading the same img, ditch
//console.log(originalSrc + ' doesnt match ' + that.src);
return;
}
if (r) {
//console.log('in cache: ' + this.src);
_this.currentSrc = _this.src;
that.cdr.detectChanges();
}
else {
//console.log('not in cache: ' + originalSrc);
_this.delayImageLoad();
}
});
}
else {
this.delayImageLoad();
}
};
DelayedImageComponent.prototype.ngOnDestroy = function () {
this.cancelRequest = true;
};
DelayedImageComponent.prototype.delayImageLoad = function () {
//console.log('delaying the load of ' + this.src);
// this.currentSrc = null;
// this.cdr.detectChanges();
var that = this;
var srcToLoad = this.src;
setTimeout(function () {
if (that.cancelRequest) {
return;
}
if (srcToLoad !== that.src) {
return;
}
that.currentSrc = that.src;
that.cdr.detectChanges();
}, that.delayMs);
};
DelayedImageComponent.prototype.imageClicked = function () {
this.dialog.open(_image_viewer_image_viewer_component__WEBPACK_IMPORTED_MODULE_3__["ImageViewerComponent"], { data: { imgURL: this.fullSizeSrc } });
};
DelayedImageComponent.prototype.resetImageSource = function () {
this.currentSrc = '';
if (this.src && this.src !== '') {
this.hasLoaded = false;
this.cdr.detectChanges();
this.setupDelayedImageLoad();
return;
}
// src is undefined or blank
this.hasLoaded = true;
this.cdr.detectChanges();
};
DelayedImageComponent.prototype.ngOnChanges = function (changes) {
this.resetImageSource();
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])(),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:type", String)
], DelayedImageComponent.prototype, "src", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])(),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:type", String)
], DelayedImageComponent.prototype, "fullSizeSrc", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])('delay-ms'),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:type", Number)
], DelayedImageComponent.prototype, "delayMs", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])(),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:type", String)
], DelayedImageComponent.prototype, "height", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])(),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:type", String)
], DelayedImageComponent.prototype, "width", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])(),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:type", String)
], DelayedImageComponent.prototype, "crossorigin", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])(),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:type", Cache)
], DelayedImageComponent.prototype, "cache", void 0);
DelayedImageComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-delayed-image',
template: __webpack_require__(/*! ./delayed-image.component.html */ "./src/app/delayed-image/delayed-image.component.html"),
changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectionStrategy"].OnPush,
styles: [".hide {display: none !important;}"]
}),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:paramtypes", [_angular_core__WEBPACK_IMPORTED_MODULE_1__["ChangeDetectorRef"], _angular_material__WEBPACK_IMPORTED_MODULE_2__["MatDialog"]])
], DelayedImageComponent);
return DelayedImageComponent;
}());
/***/ }),
/***/ "./src/app/help/help.component.html":
/*!******************************************!*\
!*** ./src/app/help/help.component.html ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = "\n
\n \n \n Lane Automotive \n Pricing and Availability Tool \n \n \n \n This tool is made available to the customers and vendors of Lane Automotive to quickly look up\n retail prices and availability of the products we carry.\n
\n \n \n
\n There are no search results. Use the search menu to find products.\n \n
"
/***/ }),
/***/ "./src/app/help/help.component.scss":
/*!******************************************!*\
!*** ./src/app/help/help.component.scss ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = ".help-header-image {\n background-image: url(\"/assets/desaturated72x72-icon.png\");\n background-size: cover;\n border-radius: 0% !important; }\n\n.help-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 70vh; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaGVscC9DOlxcUmVwb3NcXFByb2R1Y3RPZmZlcmluZ1xccHJvZHVjdC1vZmZlcmluZy9zcmNcXGFwcFxcaGVscFxcaGVscC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDJEQUEwRDtFQUMxRCx1QkFBc0I7RUFDdEIsNkJBQTRCLEVBQzdCOztBQUVEO0VBQ0ksY0FBYTtFQUNiLHVCQUFzQjtFQUN0QixvQkFBbUI7RUFDbkIsd0JBQXVCO0VBQ3ZCLGFBQVcsRUFDZCIsImZpbGUiOiJzcmMvYXBwL2hlbHAvaGVscC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oZWxwLWhlYWRlci1pbWFnZSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2Rlc2F0dXJhdGVkNzJ4NzItaWNvbi5wbmcnKTtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5oZWxwLWNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGhlaWdodDo3MHZoO1xyXG59XHJcblxyXG4iXX0= */"
/***/ }),
/***/ "./src/app/help/help.component.ts":
/*!****************************************!*\
!*** ./src/app/help/help.component.ts ***!
\****************************************/
/*! exports provided: HelpComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HelpComponent", function() { return HelpComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
/* harmony import */ var _shared_product_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/product.service */ "./src/app/shared/product.service.ts");
/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
// This component is for displaying a help/about screen in the product search results whenever there are no product results
// This should prompt the user to use the filters on the left as well as let them know about app features (maybe mention offline usage?)
var HelpComponent = /** @class */ (function () {
function HelpComponent(productService) {
this.productService = productService;
}
HelpComponent.prototype.ngOnInit = function () {
this.hasFilteredProducts$ = this.productService.getFilteredProducts().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(function (x) { return x.length > 0; }));
};
HelpComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-help',
template: __webpack_require__(/*! ./help.component.html */ "./src/app/help/help.component.html"),
styles: [__webpack_require__(/*! ./help.component.scss */ "./src/app/help/help.component.scss")]
}),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:paramtypes", [_shared_product_service__WEBPACK_IMPORTED_MODULE_2__["ProductService"]])
], HelpComponent);
return HelpComponent;
}());
/***/ }),
/***/ "./src/app/image-viewer/image-viewer.component.html":
/*!**********************************************************!*\
!*** ./src/app/image-viewer/image-viewer.component.html ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = " "
/***/ }),
/***/ "./src/app/image-viewer/image-viewer.component.scss":
/*!**********************************************************!*\
!*** ./src/app/image-viewer/image-viewer.component.scss ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ltYWdlLXZpZXdlci9pbWFnZS12aWV3ZXIuY29tcG9uZW50LnNjc3MifQ== */"
/***/ }),
/***/ "./src/app/image-viewer/image-viewer.component.ts":
/*!********************************************************!*\
!*** ./src/app/image-viewer/image-viewer.component.ts ***!
\********************************************************/
/*! exports provided: ImageViewerComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ImageViewerComponent", function() { return ImageViewerComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
/* harmony import */ var _angular_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material */ "./node_modules/@angular/material/esm5/material.es5.js");
var ImageViewerComponent = /** @class */ (function () {
function ImageViewerComponent(dialogRef, data) {
this.dialogRef = dialogRef;
this.data = data;
}
ImageViewerComponent.prototype.ngOnInit = function () {
console.log('imageData:' + this.data);
};
ImageViewerComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-image-viewer',
template: __webpack_require__(/*! ./image-viewer.component.html */ "./src/app/image-viewer/image-viewer.component.html"),
styles: [__webpack_require__(/*! ./image-viewer.component.scss */ "./src/app/image-viewer/image-viewer.component.scss")]
}),
tslib__WEBPACK_IMPORTED_MODULE_0__["__param"](1, Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Inject"])(_angular_material__WEBPACK_IMPORTED_MODULE_2__["MAT_DIALOG_DATA"])),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:paramtypes", [_angular_material__WEBPACK_IMPORTED_MODULE_2__["MatDialogRef"], Object])
], ImageViewerComponent);
return ImageViewerComponent;
}());
/***/ }),
/***/ "./src/app/product-filter/product-filter.component.html":
/*!**************************************************************!*\
!*** ./src/app/product-filter/product-filter.component.html ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = "\n \n \n \n\n \n \n \n\n \n \n \n \n {{brand.Name}} \n \n \n \n close \n \n \n\n\n \n \n \n \n {{category.Name}} \n \n \n \n close \n \n \n\n \n \n \n \n {{category.Name}} \n \n \n \n close \n \n \n\n \n \n \n \n {{category.Name}} \n \n \n \n close \n \n \n\n \n\n \n \n 0\">Results: {{filteredProductCount}} \n \n refresh Reset\n \n \n \n\n\n
"
/***/ }),
/***/ "./src/app/product-filter/product-filter.component.scss":
/*!**************************************************************!*\
!*** ./src/app/product-filter/product-filter.component.scss ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = ".filter-form-container {\n display: flex;\n flex-direction: column; }\n\n.filter-form-container > * {\n width: 100%; }\n\n.push-right-flex {\n /* This fills the remaining space, by using flexbox. \r\n Every toolbar row uses a flexbox row layout. */\n flex: 1 1 auto; }\n\n.white-toolbar {\n background-color: white !important; }\n\r\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJvZHVjdC1maWx0ZXIvQzpcXFJlcG9zXFxQcm9kdWN0T2ZmZXJpbmdcXHByb2R1Y3Qtb2ZmZXJpbmcvc3JjXFxhcHBcXHByb2R1Y3QtZmlsdGVyXFxwcm9kdWN0LWZpbHRlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGNBQWE7RUFDYix1QkFBc0IsRUFDdkI7O0FBRUQ7RUFDRSxZQUFXLEVBQ1o7O0FBR0Q7RUFDRTtvREFDa0Q7RUFDbEQsZUFBYyxFQUNmOztBQUVEO0VBQ0UsbUNBQWtDLEVBQ25DIiwiZmlsZSI6InNyYy9hcHAvcHJvZHVjdC1maWx0ZXIvcHJvZHVjdC1maWx0ZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZmlsdGVyLWZvcm0tY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5maWx0ZXItZm9ybS1jb250YWluZXIgPiAqIHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuXHJcbi5wdXNoLXJpZ2h0LWZsZXgge1xyXG4gIC8qIFRoaXMgZmlsbHMgdGhlIHJlbWFpbmluZyBzcGFjZSwgYnkgdXNpbmcgZmxleGJveC4gXHJcbiAgICAgRXZlcnkgdG9vbGJhciByb3cgdXNlcyBhIGZsZXhib3ggcm93IGxheW91dC4gKi9cclxuICBmbGV4OiAxIDEgYXV0bztcclxufVxyXG5cclxuLndoaXRlLXRvb2xiYXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbn0iXX0= */"
/***/ }),
/***/ "./src/app/product-filter/product-filter.component.ts":
/*!************************************************************!*\
!*** ./src/app/product-filter/product-filter.component.ts ***!
\************************************************************/
/*! exports provided: ProductFilterComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProductFilterComponent", function() { return ProductFilterComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
/* harmony import */ var _shared_product_filter_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/product-filter.service */ "./src/app/shared/product-filter.service.ts");
/* harmony import */ var _shared_product_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/product.service */ "./src/app/shared/product.service.ts");
/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js");
var ProductFilterComponent = /** @class */ (function () {
function ProductFilterComponent(productFilterService, productService) {
this.productFilterService = productFilterService;
this.productService = productService;
this.partNumberPrefix = null;
this.manufacturerPartNumber = null;
this.brandCode = null;
// categoryLevel1: Category = null;
// categoryLevel2: Category = null;
// categoryLevel3: Category = null;
this.mfgPartInput = new _angular_forms__WEBPACK_IMPORTED_MODULE_5__["FormControl"]();
this.partInput = new _angular_forms__WEBPACK_IMPORTED_MODULE_5__["FormControl"]();
this.categoryLevel1Auto = new _angular_forms__WEBPACK_IMPORTED_MODULE_5__["FormControl"]();
this.categoryLevel2Auto = new _angular_forms__WEBPACK_IMPORTED_MODULE_5__["FormControl"]();
this.categoryLevel3Auto = new _angular_forms__WEBPACK_IMPORTED_MODULE_5__["FormControl"]();
this.categoriesLevel1 = [];
this.categoriesLevel2 = [];
this.categoriesLevel3 = [];
this.filteredCategoriesLevel2 = null;
this.brandAuto = new _angular_forms__WEBPACK_IMPORTED_MODULE_5__["FormControl"]();
this.brands = [];
}
ProductFilterComponent.prototype.hasFilteredValue = function () {
if (this.filters &&
((this.filters.brandCode && this.filters.brandCode.length > 0) ||
(this.filters.partNumberPrefix && this.filters.partNumberPrefix.length > 0) ||
(this.filters.manufacturerPartNumber && this.filters.manufacturerPartNumber.length > 0) ||
this.filters.categoryLevel1 ||
this.filters.categoryLevel2 ||
this.filters.categoryLevel3)) {
return true;
}
return false;
};
ProductFilterComponent.prototype.ngOnInit = function () {
var _this = this;
this.productService.getProductSet().subscribe(function (x) {
if (x) {
_this.brands = x.Brands;
_this.brandAuto.setValue('');
_this.categoriesLevel1 = x.Categories;
_this.categoryLevel1Auto.setValue('');
}
});
this.productService.getFilteredProducts().subscribe(function (x) {
if (x) {
_this.filteredProductCount = x.length;
}
});
this.filteredCategoriesLevel1$ = this.categoryLevel1Auto.valueChanges.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__["startWith"])(''), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__["map"])(function (input) {
if (input.Name === undefined) {
var inputUpper_1 = input.toUpperCase();
return _this.categoriesLevel1.filter(function (category) { return category.Name.toUpperCase().startsWith(inputUpper_1); });
}
else {
var category = input;
_this.categoriesLevel2 = category.SubCategories;
_this.categoryLevel2Auto.setValue('', { emitEvent: false });
_this.categoryLevel3Auto.setValue('', { emitEvent: false });
_this.filteredCategoriesLevel2 = _this.categoriesLevel2;
_this.selectedCategoryLevel1 = category;
_this.categoriesLevel3 = null;
_this.productFilterService.setCategoryLevel1(category);
window.hideKeyboard('categoryLevel1Ref');
return _this.categoriesLevel1;
}
}));
this.categoryLevel2Auto.valueChanges.subscribe(function (input) {
if (input.Name === undefined) {
// its a string and we are filtering
var inputUpper_2 = input.toUpperCase();
_this.filteredCategoriesLevel2 = _this.categoriesLevel2.filter(function (category) { return category.Name.toUpperCase().startsWith(inputUpper_2); });
}
else {
// its a category that was selected
var category = input;
_this.categoriesLevel3 = category.SubCategories;
_this.filteredCategoriesLevel3 = _this.categoriesLevel3;
_this.categoryLevel3Auto.setValue('', { emitEvent: false });
_this.selectedCategoryLevel2 = category;
_this.filteredCategoriesLevel2 = _this.categoriesLevel2;
_this.productFilterService.setCategoryLevel2(_this.selectedCategoryLevel1, _this.selectedCategoryLevel2);
window.hideKeyboard('categoryLeve2Ref');
}
});
this.categoryLevel3Auto.valueChanges.subscribe(function (input) {
if (input.Name === undefined) {
// its a string and we are filtering
var inputUpper_3 = input.toUpperCase();
_this.filteredCategoriesLevel3 = _this.categoriesLevel3.filter(function (category) { return category.Name.toUpperCase().startsWith(inputUpper_3); });
}
else {
// its a category that was selected
var category = input;
_this.selectedCategoryLevel3 = category;
_this.filteredCategoriesLevel3 = _this.categoriesLevel3;
_this.productFilterService.setCategoryLevel3(_this.selectedCategoryLevel1, _this.selectedCategoryLevel2, _this.selectedCategoryLevel3);
window.hideKeyboard('categoryLevel3Ref');
}
});
this.filteredBrands$ = this.brandAuto.valueChanges.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__["startWith"])(''), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__["map"])(function (input) {
if (input.Name === undefined) {
console.log('filtering brand auto complete to ' + input);
var inputUpper_4 = input.toUpperCase();
return _this.brands.filter(function (brand) { return brand.Name.toUpperCase().startsWith(inputUpper_4); });
}
else {
// happens when (input is Brand) because of a selection
var brand = input;
_this.selectedBrand = brand;
console.log('telling filter to service to use: ' + brand.BrandCode);
_this.productFilterService.setBrandCode(brand.BrandCode);
window.hideKeyboard('brandAutoRef');
//this.brandAutoRef.blur();
return _this.brands;
}
}));
this.productFilterService.getProductFilters().subscribe(function (x) {
_this.filters = x;
if (_this.selectedBrand && x.brandCode === _this.selectedBrand.BrandCode) {
console.log('selected brand already matched new brand code');
}
else {
var newSelectedBrand = _this.brands.find(function (brand) { return brand.BrandCode === x.brandCode; });
if (newSelectedBrand) {
console.log('setting brand auto complete value to ' + newSelectedBrand.Name);
_this.brandAuto.setValue(newSelectedBrand);
}
}
if (x.categoryLevel3) {
_this.selectedCategoryLevel1 = x.categoryLevel1;
_this.selectedCategoryLevel2 = x.categoryLevel2;
_this.selectedCategoryLevel3 = x.categoryLevel3;
_this.filteredCategoriesLevel2 = x.categoryLevel1.SubCategories;
_this.filteredCategoriesLevel3 = x.categoryLevel2.SubCategories;
_this.categoriesLevel2 = x.categoryLevel1.SubCategories;
_this.categoriesLevel3 = x.categoryLevel2.SubCategories;
_this.categoryLevel1Auto.setValue(x.categoryLevel1, { emitEvent: false });
_this.categoryLevel2Auto.setValue(x.categoryLevel2, { emitEvent: false });
_this.categoryLevel3Auto.setValue(x.categoryLevel3, { emitEvent: false });
}
else if (x.categoryLevel2) {
_this.selectedCategoryLevel1 = x.categoryLevel1;
_this.selectedCategoryLevel2 = x.categoryLevel2;
_this.selectedCategoryLevel3 = null;
_this.filteredCategoriesLevel2 = x.categoryLevel1.SubCategories;
_this.filteredCategoriesLevel3 = x.categoryLevel2.SubCategories;
_this.categoriesLevel2 = x.categoryLevel1.SubCategories;
_this.categoriesLevel3 = x.categoryLevel2.SubCategories;
_this.categoryLevel1Auto.setValue(x.categoryLevel1, { emitEvent: false });
_this.categoryLevel2Auto.setValue(x.categoryLevel2, { emitEvent: false });
_this.categoryLevel3Auto.setValue('');
}
else if (x.categoryLevel1) {
_this.selectedCategoryLevel1 = x.categoryLevel1;
_this.selectedCategoryLevel2 = null;
_this.selectedCategoryLevel3 = null;
_this.filteredCategoriesLevel2 = x.categoryLevel1.SubCategories;
_this.filteredCategoriesLevel3 = null;
_this.categoriesLevel2 = x.categoryLevel1.SubCategories;
_this.categoryLevel1Auto.setValue(x.categoryLevel1, { emitEvent: false });
_this.categoryLevel2Auto.setValue('');
}
});
};
ProductFilterComponent.prototype.partNumberPrefixChanged = function ($event) {
this.productFilterService.setPartNumberPrefix($event.target.value);
};
ProductFilterComponent.prototype.mfgPartNumberChanged = function ($event) {
this.productFilterService.setManufacturerPartNumber($event.target.value);
};
ProductFilterComponent.prototype.getManufacturerImageURL = function (brand) {
return 'https://www.msprodimages.com/Manufacturers%20Logo-Small%20Size/' + brand.BrandCode + '.jpg';
};
ProductFilterComponent.prototype.getBrandDisplay = function (brand) {
return brand ? brand.Name : undefined;
};
ProductFilterComponent.prototype.getCategoryDisplay = function (category) {
return category ? category.Name : undefined;
};
ProductFilterComponent.prototype.clearBrand = function () {
this.selectedBrand = null;
this.brandAuto.setValue('');
this.productFilterService.setBrandCode('');
};
ProductFilterComponent.prototype.clearCategoryLevel1 = function () {
this.selectedCategoryLevel1 = null;
this.selectedCategoryLevel2 = null;
this.selectedCategoryLevel3 = null;
this.categoryLevel1Auto.setValue('');
this.categoryLevel2Auto.setValue('', { emitEvent: false });
this.categoryLevel3Auto.setValue('', { emitEvent: false });
this.productFilterService.setCategoryLevel1(null);
this.filteredCategoriesLevel2 = null;
this.filteredCategoriesLevel3 = null;
};
ProductFilterComponent.prototype.clearCategoryLevel2 = function () {
this.selectedCategoryLevel2 = null;
this.selectedCategoryLevel3 = null;
this.categoryLevel2Auto.setValue('');
this.categoryLevel3Auto.setValue('', { emitEvent: false });
this.productFilterService.setCategoryLevel2(this.selectedCategoryLevel1, null);
this.filteredCategoriesLevel2 = this.categoriesLevel2;
this.categoriesLevel3 = null;
this.filteredCategoriesLevel3 = null;
};
ProductFilterComponent.prototype.clearCategoryLevel3 = function () {
this.selectedCategoryLevel3 = null;
this.categoryLevel3Auto.setValue('');
this.productFilterService.setCategoryLevel3(this.selectedCategoryLevel1, this.selectedCategoryLevel2, null);
this.filteredCategoriesLevel3 = this.categoriesLevel3;
};
ProductFilterComponent.prototype.clearFilters = function () {
this.clearBrand();
this.clearCategoryLevel1();
this.mfgPartInput.setValue('', { emitEvent: false });
this.partInput.setValue('', { emitEvent: false });
this.productFilterService.setPartNumberPrefix('');
this.productFilterService.setManufacturerPartNumber('');
};
ProductFilterComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-product-filter',
template: __webpack_require__(/*! ./product-filter.component.html */ "./src/app/product-filter/product-filter.component.html"),
styles: [__webpack_require__(/*! ./product-filter.component.scss */ "./src/app/product-filter/product-filter.component.scss")]
}),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:paramtypes", [_shared_product_filter_service__WEBPACK_IMPORTED_MODULE_2__["ProductFilterService"], _shared_product_service__WEBPACK_IMPORTED_MODULE_3__["ProductService"]])
], ProductFilterComponent);
return ProductFilterComponent;
}());
/***/ }),
/***/ "./src/app/product-list/product-list.component.html":
/*!**********************************************************!*\
!*** ./src/app/product-list/product-list.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 {{product.PartNumber}} - {{product.Name}} \r\n
\r\n
\r\n by {{product.Brand}}\r\n
\r\n
\r\n {{product.Description}}\r\n
\r\n
\r\n ${{product.RetailPrice}} \r\n 0\">{{product.QuantityAvailable}} in stock \r\n Currently out of stock \r\n
\r\n
\r\n ${{product.RetailPrice}} \r\n ${{product.Price}} \r\n 0\">{{product.QuantityAvailable}} in stock \r\n Currently out of stock \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n \r\n "
/***/ }),
/***/ "./src/app/product-list/product-list.component.scss":
/*!**********************************************************!*\
!*** ./src/app/product-list/product-list.component.scss ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = ".product-viewport {\n height: 100%;\n width: 100%; }\n\n.product-row-small {\n display: flex;\n justify-content: center;\n align-items: flex-start;\n height: 150px; }\n\n.product-title-small {\n font-size: 12px;\n font-weight: 700;\n margin-bottom: 10px;\n margin-top: 0px; }\n\n.product-brand-small {\n margin-top: -12px;\n margin-bottom: -14px;\n font-size: 10px;\n font-weight: lighter;\n color: gray; }\n\n.product-text-small {\n width: 245px;\n padding-left: 5px; }\n\n.product-description-small {\n color: rgba(0, 0, 0, 0.54);\n font-size: 12px;\n line-height: 16px;\n margin-top: 16px;\n margin-bottom: 0; }\n\n.product-availability {\n font-weight: 700;\n font-size: 16px; }\n\n.product-row {\n display: flex;\n justify-content: center;\n align-items: flex-start;\n height: 200px; }\n\n.product-title {\n font-size: 24px;\n font-weight: 700;\n margin-bottom: 10px;\n margin-top: 0px; }\n\n.product-brand {\n margin-top: -12px;\n margin-bottom: -14px;\n font-size: 14px;\n color: gray; }\n\n.product-text {\n width: 450px;\n padding-left: 15px; }\n\n.product-description {\n color: rgba(0, 0, 0, 0.54);\n font-size: 18px;\n line-height: 22px;\n margin-top: 24px;\n margin-bottom: 0; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJvZHVjdC1saXN0L0M6XFxSZXBvc1xcUHJvZHVjdE9mZmVyaW5nXFxwcm9kdWN0LW9mZmVyaW5nL3NyY1xcYXBwXFxwcm9kdWN0LWxpc3RcXHByb2R1Y3QtbGlzdC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNFLGFBQVk7RUFDWixZQUFXLEVBQ1o7O0FBRUQ7RUFDRSxjQUFhO0VBQ2Isd0JBQXVCO0VBQ3ZCLHdCQUF1QjtFQUN2QixjQUFhLEVBQ2Q7O0FBRUQ7RUFDRSxnQkFBZTtFQUNmLGlCQUFnQjtFQUNoQixvQkFBbUI7RUFDbkIsZ0JBQWUsRUFDaEI7O0FBRUQ7RUFDRSxrQkFBaUI7RUFDakIscUJBQW9CO0VBQ3BCLGdCQUFlO0VBQ2YscUJBQW9CO0VBQ3BCLFlBQVcsRUFDWjs7QUFFRDtFQUNFLGFBQVk7RUFDWixrQkFBaUIsRUFDbEI7O0FBRUQ7RUFDRSwyQkFBc0I7RUFDdEIsZ0JBQWU7RUFDZixrQkFBaUI7RUFDakIsaUJBQWdCO0VBQ2hCLGlCQUFlLEVBQ2hCOztBQUVEO0VBQ0UsaUJBQWdCO0VBQ2hCLGdCQUFlLEVBQ2hCOztBQUlEO0VBQ0UsY0FBYTtFQUNiLHdCQUF1QjtFQUN2Qix3QkFBdUI7RUFDdkIsY0FBYSxFQUNkOztBQUVEO0VBQ0UsZ0JBQWU7RUFDZixpQkFBZ0I7RUFDaEIsb0JBQW1CO0VBQ25CLGdCQUFlLEVBQ2hCOztBQUVEO0VBQ0Usa0JBQWlCO0VBQ2pCLHFCQUFvQjtFQUNwQixnQkFBZTtFQUNmLFlBQVcsRUFDWjs7QUFFRDtFQUNFLGFBQVk7RUFDWixtQkFBa0IsRUFDbkI7O0FBRUQ7RUFDRSwyQkFBc0I7RUFDdEIsZ0JBQWU7RUFDZixrQkFBaUI7RUFDakIsaUJBQWdCO0VBQ2hCLGlCQUFlLEVBQ2hCIiwiZmlsZSI6InNyYy9hcHAvcHJvZHVjdC1saXN0L3Byb2R1Y3QtbGlzdC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4ucHJvZHVjdC12aWV3cG9ydCB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ucHJvZHVjdC1yb3ctc21hbGwge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgaGVpZ2h0OiAxNTBweDtcclxufVxyXG5cclxuLnByb2R1Y3QtdGl0bGUtc21hbGwge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgbWFyZ2luLXRvcDogMHB4O1xyXG59XHJcblxyXG4ucHJvZHVjdC1icmFuZC1zbWFsbCB7XHJcbiAgbWFyZ2luLXRvcDogLTEycHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogLTE0cHg7XHJcbiAgZm9udC1zaXplOiAxMHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xyXG4gIGNvbG9yOiBncmF5O1xyXG59XHJcblxyXG4ucHJvZHVjdC10ZXh0LXNtYWxsIHtcclxuICB3aWR0aDogMjQ1cHg7XHJcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcbi5wcm9kdWN0LWRlc2NyaXB0aW9uLXNtYWxsIHtcclxuICBjb2xvcjogcmdiYSgwLDAsMCwuNTQpO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBsaW5lLWhlaWdodDogMTZweDtcclxuICBtYXJnaW4tdG9wOiAxNnB4O1xyXG4gIG1hcmdpbi1ib3R0b206MDtcclxufVxyXG5cclxuLnByb2R1Y3QtYXZhaWxhYmlsaXR5IHtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxufVxyXG5cclxuXHJcblxyXG4ucHJvZHVjdC1yb3cge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgaGVpZ2h0OiAyMDBweDtcclxufVxyXG5cclxuLnByb2R1Y3QtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMjRweDtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgbWFyZ2luLXRvcDogMHB4O1xyXG59XHJcblxyXG4ucHJvZHVjdC1icmFuZCB7XHJcbiAgbWFyZ2luLXRvcDogLTEycHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogLTE0cHg7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIGNvbG9yOiBncmF5O1xyXG59XHJcblxyXG4ucHJvZHVjdC10ZXh0IHtcclxuICB3aWR0aDogNDUwcHg7XHJcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xyXG59XHJcblxyXG4ucHJvZHVjdC1kZXNjcmlwdGlvbiB7XHJcbiAgY29sb3I6IHJnYmEoMCwwLDAsLjU0KTtcclxuICBmb250LXNpemU6IDE4cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDIycHg7XHJcbiAgbWFyZ2luLXRvcDogMjRweDtcclxuICBtYXJnaW4tYm90dG9tOjA7XHJcbn1cclxuIl19 */"
/***/ }),
/***/ "./src/app/product-list/product-list.component.ts":
/*!********************************************************!*\
!*** ./src/app/product-list/product-list.component.ts ***!
\********************************************************/
/*! exports provided: ProductListComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProductListComponent", function() { return ProductListComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
/* harmony import */ var _shared_product_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/product.service */ "./src/app/shared/product.service.ts");
/* harmony import */ var _angular_cdk_scrolling__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/cdk/scrolling */ "./node_modules/@angular/cdk/esm5/scrolling.es5.js");
/* harmony import */ var _app_settings_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../app-settings.service */ "./src/app/app-settings.service.ts");
var ProductListComponent = /** @class */ (function () {
function ProductListComponent(productService, appSettingsService) {
this.productService = productService;
this.appSettingsService = appSettingsService;
this.partNumberFilter = '';
this.productsLoaded = false;
this.delayImages = false;
this.productColumnWidth = 350;
}
ProductListComponent.prototype.ngOnInit = function () {
var that = this;
caches.open('product-images').then(function (cache) {
that.cache = cache;
});
this.filteredProducts$ = this.productService.getFilteredProducts();
this.useLargeSize = window.innerWidth > 900;
};
ProductListComponent.prototype.onResize = function (event) {
if (!this.scrollViewport) {
return;
}
var lastLargeSize = this.useLargeSize;
this.useLargeSize = window.innerWidth > 900;
// If we changed size profiles, then the viewport size chagned
// and we need to enqueue scrolling to the same index other wise
// the user will lose their place in the list
if (lastLargeSize !== this.useLargeSize) {
var currentIndex_1 = this.scrollViewport.getRenderedRange().start;
var that_1 = this;
setTimeout(function () {
that_1.scrollViewport.scrollToIndex(currentIndex_1);
}, 100);
}
};
ProductListComponent.prototype.getProductRowClass = function () {
if (this.useLargeSize) {
return 'product-row';
}
return 'product-row-small';
};
ProductListComponent.prototype.getProductTitleClass = function () {
if (this.useLargeSize) {
return 'product-title';
}
return 'product-title-small';
};
ProductListComponent.prototype.getProductBrandClass = function () {
if (this.useLargeSize) {
return 'product-brand';
}
return 'product-brand-small';
};
ProductListComponent.prototype.getProductTextClass = function () {
if (this.useLargeSize) {
return 'product-text';
}
return 'product-text-small';
};
ProductListComponent.prototype.getProductDescriptionClass = function () {
if (this.useLargeSize) {
return 'product-description';
}
return 'product-description-small';
};
ProductListComponent.prototype.getProductHeight = function () {
if (this.useLargeSize) {
return 200;
}
return 150;
};
ProductListComponent.prototype.getImageSize = function () {
if (this.useLargeSize) {
return 100;
}
return 70;
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"])("scrollViewport"),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:type", _angular_cdk_scrolling__WEBPACK_IMPORTED_MODULE_3__["CdkVirtualScrollViewport"])
], ProductListComponent.prototype, "scrollViewport", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["HostListener"])('window:resize', ['$event']),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:type", Function),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:paramtypes", [Object]),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:returntype", void 0)
], ProductListComponent.prototype, "onResize", null);
ProductListComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-product-list',
template: __webpack_require__(/*! ./product-list.component.html */ "./src/app/product-list/product-list.component.html"),
styles: [__webpack_require__(/*! ./product-list.component.scss */ "./src/app/product-list/product-list.component.scss")]
}),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:paramtypes", [_shared_product_service__WEBPACK_IMPORTED_MODULE_2__["ProductService"], _app_settings_service__WEBPACK_IMPORTED_MODULE_4__["AppSettingsService"]])
], ProductListComponent);
return ProductListComponent;
}());
/***/ }),
/***/ "./src/app/shared/product-filter.service.ts":
/*!**************************************************!*\
!*** ./src/app/shared/product-filter.service.ts ***!
\**************************************************/
/*! exports provided: ProductFilterService */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProductFilterService", function() { return ProductFilterService; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.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");
var ProductFilterService = /** @class */ (function () {
function ProductFilterService() {
this.productFilters = {
brandCode: null,
categoryLevel1: null,
categoryLevel2: null,
categoryLevel3: null,
manufacturerPartNumber: null,
partNumberPrefix: null
};
this.productFiltersSubject = new rxjs__WEBPACK_IMPORTED_MODULE_2__["BehaviorSubject"](this.productFilters);
}
ProductFilterService.prototype.getProductFilters = function () {
return this.productFiltersSubject.asObservable();
};
ProductFilterService.prototype.setBrandCode = function (brandCode) {
//console.log('Setting new brand code in service: ' + brandCode);
if (this.productFilters.brandCode !== brandCode) {
this.productFilters.brandCode = brandCode;
this.productFiltersSubject.next(this.productFilters);
}
};
ProductFilterService.prototype.setCategoryLevel1 = function (category) {
if (this.productFilters.categoryLevel1 !== category) {
this.productFilters.categoryLevel1 = category;
this.productFilters.categoryLevel2 = null;
this.productFilters.categoryLevel3 = null;
this.productFiltersSubject.next(this.productFilters);
}
};
ProductFilterService.prototype.setCategoryLevel2 = function (categoryLevel1, categoryLevel2) {
if (this.productFilters.categoryLevel2 !== categoryLevel2) {
this.productFilters.categoryLevel1 = categoryLevel1;
this.productFilters.categoryLevel2 = categoryLevel2;
this.productFilters.categoryLevel3 = null;
this.productFiltersSubject.next(this.productFilters);
}
};
ProductFilterService.prototype.setCategoryLevel3 = function (categoryLevel1, categoryLevel2, categoryLevel3) {
if (this.productFilters.categoryLevel3 !== categoryLevel3) {
this.productFilters.categoryLevel1 = categoryLevel1;
this.productFilters.categoryLevel2 = categoryLevel2;
this.productFilters.categoryLevel3 = categoryLevel3;
this.productFiltersSubject.next(this.productFilters);
}
};
ProductFilterService.prototype.setManufacturerPartNumber = function (manufacturerPartNumber) {
if (this.productFilters.manufacturerPartNumber !== manufacturerPartNumber) {
this.productFilters.manufacturerPartNumber = manufacturerPartNumber;
this.productFiltersSubject.next(this.productFilters);
}
};
ProductFilterService.prototype.setPartNumberPrefix = function (partNumberPrefix) {
if (this.productFilters.partNumberPrefix !== partNumberPrefix) {
this.productFilters.partNumberPrefix = partNumberPrefix;
this.productFiltersSubject.next(this.productFilters);
}
};
ProductFilterService = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({
providedIn: 'root'
}),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:paramtypes", [])
], ProductFilterService);
return ProductFilterService;
}());
/***/ }),
/***/ "./src/app/shared/product.service.ts":
/*!*******************************************!*\
!*** ./src/app/shared/product.service.ts ***!
\*******************************************/
/*! exports provided: ProductService */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProductService", function() { return ProductService; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/fesm5/http.js");
/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js");
/* harmony import */ var _product_filter_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./product-filter.service */ "./src/app/shared/product-filter.service.ts");
var ProductService = /** @class */ (function () {
function ProductService(http, productFilterService) {
var _this = this;
this.http = http;
this.productFilterService = productFilterService;
this.productSetSubject = new rxjs__WEBPACK_IMPORTED_MODULE_3__["BehaviorSubject"](null);
this.filteredProductSubject = new rxjs__WEBPACK_IMPORTED_MODULE_3__["BehaviorSubject"](null);
this.filters = null;
this.loadProductSet();
var that = this;
setInterval(function () { that.loadProductSet(); }, 60 * 30 * 1000);
this.productFilterService.getProductFilters().subscribe(function (x) {
_this.filters = x;
_this.filterProducts();
});
}
ProductService.prototype.getProductSet = function () {
return this.productSetSubject.asObservable();
};
ProductService.prototype.getFilteredProducts = function () {
return this.filteredProductSubject.asObservable();
};
ProductService.prototype.loadProductSet = function () {
var _this = this;
this.http.get('/products.json').subscribe(function (x) {
_this.currentProductSet = x;
_this.setCategoryReferences();
_this.setProductValues();
_this.productSetSubject.next(x);
_this.filterProducts();
});
};
ProductService.prototype.setProductValues = function () {
//Setting values that can be inferred from data, as opposed to serializing them from the server
this.currentProductSet.Products.forEach(function (x) {
x.BrandCode = x.PartNumber.substring(0, 3).toUpperCase();
x.ImageURL = x.HasImage ? 'https://msimg.blob.core.windows.net/product/small/' + x.PartNumber + '.jpg' : '/assets/NoImage.png';
x.FullSizeImageURL = x.HasImage ? 'https://msimg.blob.core.windows.net/product/large/' + x.PartNumber + '.jpg' : '/assets/NoImage.png';
});
};
// We want the categories to have references to their parents,
// but JSON serialization has issues passing in recursive data
// so we'll just assign the parents after deserialization
ProductService.prototype.setCategoryReferences = function () {
this.currentProductSet.Categories.forEach(function (department) {
if (department.SubCategories) {
department.SubCategories.forEach(function (category) {
category.parent = department;
if (category.SubCategories) {
category.SubCategories.forEach(function (subcategory) {
subcategory.parent = category;
});
}
});
}
});
};
ProductService.prototype.filterProducts = function () {
var _this = this;
if (this.currentProductSet && this.currentProductSet.Products) {
var filterHit = 0;
var filteredProducts = this.currentProductSet.Products;
//console.log('product count' + filteredProducts.length);
if (this.filters) {
//console.log('filtering to brand code: ' + this.filters.brandCode);
if (this.filters.brandCode && this.filters.brandCode.length > 0) {
var brandCodeFilterUpper_1 = this.filters.brandCode.toUpperCase();
filteredProducts = filteredProducts.filter(function (x) { return x.BrandCode === brandCodeFilterUpper_1; });
filterHit++;
}
if (this.filters.partNumberPrefix && this.filters.partNumberPrefix.length > 0) {
var partNumberPrefixUpper_1 = this.filters.partNumberPrefix.toUpperCase();
filteredProducts = filteredProducts.filter(function (x) { return x.PartNumber.startsWith(partNumberPrefixUpper_1); });
filterHit++;
}
if (this.filters.manufacturerPartNumber && this.filters.manufacturerPartNumber.length > 0) {
var manufacturerPartNumberUpper_1 = this.filters.manufacturerPartNumber.toUpperCase();
filteredProducts = filteredProducts.filter(function (x) { return x.ManufacturerPartNumber.startsWith(manufacturerPartNumberUpper_1); });
filterHit++;
}
if (this.filters.categoryLevel1) {
filteredProducts = filteredProducts.filter(function (x) { return x.CategoryLevel1 === _this.filters.categoryLevel1.Name; });
filterHit++;
}
if (this.filters.categoryLevel2) {
filteredProducts = filteredProducts.filter(function (x) { return x.CategoryLevel2 === _this.filters.categoryLevel2.Name; });
filterHit++;
}
if (this.filters.categoryLevel3) {
filteredProducts = filteredProducts.filter(function (x) { return x.CategoryLevel3 === _this.filters.categoryLevel3.Name; });
filterHit++;
}
}
//console.log('filteredProductsLength: ' + filteredProducts.length);
if (filterHit == 0) {
// no filters were used. Instead of returning all products, assume they haven't started searching and return none
this.filteredProductSubject.next([]);
}
else {
this.filteredProductSubject.next(filteredProducts);
}
}
};
ProductService = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({
providedIn: 'root'
}),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:paramtypes", [_angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpClient"], _product_filter_service__WEBPACK_IMPORTED_MODULE_4__["ProductFilterService"]])
], ProductService);
return ProductService;
}());
/***/ }),
/***/ "./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 hammerjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! hammerjs */ "./node_modules/hammerjs/hammer.js");
/* harmony import */ var hammerjs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(hammerjs__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
/* harmony import */ var _angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_2__ = __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_3__ = __webpack_require__(/*! ./app/app.module */ "./src/app/app.module.ts");
/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./environments/environment */ "./src/environments/environment.ts");
if (_environments_environment__WEBPACK_IMPORTED_MODULE_4__["environment"].production) {
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["enableProdMode"])();
}
Object(_angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_2__["platformBrowserDynamic"])().bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_3__["AppModule"])
.catch(function (err) { return console.error(err); });
/***/ }),
/***/ 0:
/*!***************************!*\
!*** multi ./src/main.ts ***!
\***************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(/*! C:\Repos\ProductOffering\product-offering\src\main.ts */"./src/main.ts");
/***/ })
},[[0,"runtime","vendor"]]]);
//# sourceMappingURL=main.js.map