@maplander/components 0.20.7 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -34,11 +34,19 @@ export class FiltersComponent {
34
34
  this.METERS_TO_SQ = 10.76391042;
35
35
  this.isOPI = this._config || false;
36
36
  this._subscription = new Subscription();
37
- this.propertyTypeList = ConstantsComponents.PropertyTypeList.map((/**
37
+ /** @type {?} */
38
+ const items = [];
39
+ ConstantsComponents.PropertyTypeList.forEach((/**
38
40
  * @param {?} item
39
41
  * @return {?}
40
42
  */
41
- item => (Object.assign({}, item))));
43
+ (item) => {
44
+ if ((this.hideRoom && item.value !== PropertyTypeEnum.ROOM) ||
45
+ (this.hideResidential && item.value !== PropertyTypeEnum.RESIDENTIAL)) {
46
+ items.push(item);
47
+ }
48
+ }));
49
+ this.propertyTypeList = items;
42
50
  this.bedroomsList = Object.assign([], ConstantsComponents.BedroomList);
43
51
  this.bathroomsList = Object.assign([], ConstantsComponents.BathroomList);
44
52
  this.parkingPlacesList = Object.assign([], ConstantsComponents.ParkingSpacesList);
@@ -173,6 +181,7 @@ export class FiltersComponent {
173
181
  * @return {?}
174
182
  */
175
183
  resetFilters(propertyTypeItemIndex) {
184
+ this.filter.currency = !propertyTypeItemIndex ? 'MXN' : this.filter.currency;
176
185
  this.initComponentByPropertyType(propertyTypeItemIndex);
177
186
  this.surfaceUnitSelected = 0;
178
187
  this.filter = propertyTypeItemIndex ? Utils.getFilterByPropertyType(this.filter) : Utils.getInitialFilter(this.isOPI, this.filter);
@@ -450,7 +459,7 @@ export class FiltersComponent {
450
459
  FiltersComponent.decorators = [
451
460
  { type: Component, args: [{
452
461
  selector: 'lib-filters',
453
- template: "<!-- Todo: [FiltersComponent] Refactor code -->\r\n<form class=\"filters\" [formGroup]=\"filtersForm\" [ngClass]=\"{'filters--opened': propertyTypeSelected.value !== 'NONE'}\">\r\n <ng-template [ngIf]=\"!isOPI\">\r\n <div class=\"float-button-close\">\r\n <button mat-icon-button type=\"button\" class=\"float-button-close__button\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </ng-template>\r\n <div class=\"body\">\r\n <div class=\"--padding\">\r\n <div class=\"header\">\r\n <mat-form-field class=\"currency\" appearance=\"outline\">\r\n <mat-label>Divisa</mat-label>\r\n <mat-select formControlName=\"currency\">\r\n <ng-container *ngFor=\"let currency of currencyList\">\r\n <mat-option [value]=\"currency.type\" (click)=\"changeCurrency(currency.type)\">\r\n {{currency.type}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-button-toggle-group class=\"offering-type-list\" name=\"offering-type\" formControlName=\"offering\"\r\n aria-label=\"Offering type\">\r\n <mat-button-toggle (click)=\"changeOffering('SALE')\" [value]=\"'SALE'\"\r\n [disabled]=\"propertyTypeSelected.value === 'NONE' || propertyTypeSelected.value === 'ROOM'\">\r\n Venta\r\n </mat-button-toggle>\r\n <mat-button-toggle (click)=\"changeOffering('RENT')\" [value]=\"'RENT'\"\r\n [disabled]=\"propertyTypeSelected.value === 'NONE' || propertyTypeSelected.value === 'INVESTMENT'\">\r\n Renta\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n <div class=\"property-type-list mat-elevation-z2\">\r\n <ng-container *ngFor=\"let type of propertyTypeList; let i = index\">\r\n <ng-template [ngIf]=\"type.value !== 'NONE'\">\r\n <div class=\"property-type-list__button\">\r\n <div\r\n class=\"property-type-list__border\"\r\n [ngClass]=\"{'property-type-list__border--active': (type.value === propertyTypeSelected.value) || (propertyTypeSelected.value === 'NONE') || ((type.value === 'HOUSE' || type.value === 'APARTMENT') && propertyTypeSelected.value === 'RESIDENTIAL')}\"\r\n [ngStyle]=\"{'border-color': 'var(--' + type.iconName + ')'}\">\r\n <button mat-mini-fab=\"\" type=\"button\" (click)=\"changePropertyType(i)\"\r\n [ngStyle]=\"{'background-color': 'var(--' + type.iconName + ')'}\">\r\n <span class=\"property-type-list__icon ic-property-{{type.iconName}}\"></span>\r\n </button>\r\n </div>\r\n <span class=\"property-type-list__label\">{{type.shortName}}</span>\r\n <ng-template [ngIf]=\"type.value === 'RESIDENTIAL' && propertyTypeSelected.value === 'RESIDENTIAL'\">\r\n <div class=\"property-type-list__divider property-type-list__divider--left\"></div>\r\n <div class=\"property-type-list__divider property-type-list__divider--right\"></div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n <ng-template [ngIf]=\"isOPI\">\r\n <div class=\"all\">\r\n <button mat-raised-button=\"\" type=\"button\" class=\"all__button\"\r\n [ngClass]=\"{'all__button--active': propertyTypeSelected.value === 'NONE'}\"\r\n (click)=\"changePropertyType(9)\">Todo\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value !== 'NONE'\">\r\n <mat-divider></mat-divider>\r\n <div class=\"--padding\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-price\"></span>\r\n Presupuesto\r\n </h4>\r\n <div class=\"budget\">\r\n <!-- Min price [START] -->\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>M\u00EDnimo</mat-label>\r\n <input autocomplete=\"off\" matInput=\"\" type=\"number\" title=\"Min price\" formControlName=\"minPrice\" min=\"1\" >\r\n <mat-error *ngIf=\"filtersForm.controls['minPrice'].hasError('pattern')\">\r\n Debe ingresar solo numeros\r\n </mat-error>\r\n <mat-error *ngIf=\"filtersForm.controls['minPrice'].hasError('required')\">\r\n Este campo es requerido\r\n </mat-error>\r\n </mat-form-field>\r\n <!-- Min price [END] -->\r\n <!-- Max price [START] -->\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>M\u00E1ximo</mat-label>\r\n <input autocomplete=\"off\" matInput=\"\" type=\"number\" title=\"max price\" formControlName=\"maxPrice\">\r\n <mat-error *ngIf=\"filtersForm.controls['maxPrice'].hasError('pattern')\">\r\n Debe ingresar solo numeros\r\n </mat-error>\r\n <mat-error *ngIf=\"filtersForm.controls['maxPrice'].hasError('required')\">\r\n Este campo es requerido\r\n </mat-error>\r\n <mat-error *ngIf=\"filtersForm.controls['maxPrice'].hasError('currency')\">\r\n Valor minimo excedido\r\n </mat-error>\r\n </mat-form-field>\r\n <!-- Max price [END] -->\r\n </div>\r\n <div class=\"features\">\r\n <ng-template\r\n [ngIf]=\"propertyTypeSelected.value === 'RESIDENTIAL' || propertyTypeSelected.value === 'HOUSE' || propertyTypeSelected.value === 'APARTMENT'\">\r\n <div class=\"features__bedrooms\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-bedroom\"></span>\r\n Habitaciones\r\n </h4>\r\n <mat-button-toggle-group name=\"bedrooms\" aria-label=\"Bedrooms\" formControlName=\"bedrooms\">\r\n <ng-container *ngFor=\"let bedroom of bedroomsList\">\r\n <ng-template [ngIf]=\"bedroom === 0\" [ngIfElse]=\"bedroomNumber\">\r\n <mat-button-toggle [value]=\"bedroom\" class=\"features__bedrooms--unlimited\">\r\n Sin <br> l\u00EDmite\r\n </mat-button-toggle>\r\n </ng-template>\r\n <ng-template #bedroomNumber>\r\n <mat-button-toggle [value]=\"bedroom\">{{bedroom}}+\r\n </mat-button-toggle>\r\n </ng-template>\r\n </ng-container>\r\n </mat-button-toggle-group>\r\n </div>\r\n <div class=\"features__bathrooms\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-bathroom\"></span>\r\n Ba\u00F1os\r\n </h4>\r\n <mat-button-toggle-group name=\"bathrooms\" aria-label=\"Bathrooms\" formControlName=\"bathrooms\">\r\n <ng-container *ngFor=\"let bathroom of bathroomsList\">\r\n <ng-template [ngIf]=\"bathroom === 0\" [ngIfElse]=\"bathroomNumber\">\r\n <mat-button-toggle [value]=\"bathroom\"\r\n class=\"features__bathrooms--unlimited\">\r\n Sin <br> l\u00EDmite\r\n </mat-button-toggle>\r\n </ng-template>\r\n <ng-template #bathroomNumber>\r\n <mat-button-toggle [value]=\"bathroom\">{{bathroom}}+\r\n </mat-button-toggle>\r\n </ng-template>\r\n </ng-container>\r\n </mat-button-toggle-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value !== 'LAND' && propertyTypeSelected.value !== 'INVESTMENT'\">\r\n <div class=\"features__parking-places\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-parking\"></span>\r\n Estacionamientos\r\n </h4>\r\n <mat-button-toggle-group name=\"parking_places\" aria-label=\"Parking Places\"\r\n formControlName=\"parkingPlaces\">\r\n <ng-container *ngFor=\"let parking of parkingPlacesList\">\r\n <ng-template [ngIf]=\"parking === 0\" [ngIfElse]=\"parkingNumber\">\r\n <mat-button-toggle [value]=\"parking\"\r\n class=\"features__parking-places--unlimited\">\r\n Sin <br> l\u00EDmite\r\n </mat-button-toggle>\r\n </ng-template>\r\n <ng-template #parkingNumber>\r\n <mat-button-toggle [value]=\"parking\">{{parking}}+\r\n </mat-button-toggle>\r\n </ng-template>\r\n </ng-container>\r\n </mat-button-toggle-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value !== 'INVESTMENT'\">\r\n <div class=\"features__surface\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-surface\"></span>\r\n Superficie\r\n </h4>\r\n <div class=\"--row\">\r\n <mat-form-field appearance=\"outline\" class=\"--col\">\r\n <mat-label>\u00C1rea</mat-label>\r\n <mat-select formControlName=\"surface\">\r\n <mat-option [value]=\"0\">\r\n Sin l\u00EDmite\r\n </mat-option>\r\n <ng-container *ngFor=\"let surface of surfaceList\">\r\n <mat-option [value]=\"surface\">\r\n {{surface}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-button-toggle-group name=\"unit_surface\" aria-label=\"Unit surface\" formControlName=\"surfaceUnit\">\r\n <mat-button-toggle [value]=\"0\">m2</mat-button-toggle>\r\n <mat-button-toggle [value]=\"1\">sq ft</mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value === 'INVESTMENT'\">\r\n <div class=\"feature investment\">\r\n <h4 class=\"--title\">Retorno de inversi\u00F3n</h4>\r\n <mat-form-field appearance=\"outline\" class=\"--col\">\r\n <mat-label>Porcentaje</mat-label>\r\n <mat-select formControlName=\"roi\">\r\n <mat-option [value]=\"0\">\r\n Sin l\u00EDmite\r\n </mat-option>\r\n <ng-container *ngFor=\"let roi of roiList\">\r\n <mat-option [value]=\"roi\">\r\n {{roi}}%\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </ng-template>\r\n <div class=\"amenities-container\">\r\n <ng-template [ngIf]=\"propertyTypeSelected.amenities.length > 0\">\r\n <div class=\"amenities\">\r\n <h4 class=\"--title\">\r\n Amenidades\r\n </h4>\r\n <div class=\"amenities__list\">\r\n <ng-container *ngFor=\"let amenity of propertyTypeSelected.amenities\">\r\n <div class=\"amenities__amenity\" matRipple (click)=\"updateAmenity(amenity)\">\r\n <span class=\"amenity__icon ic-amenities-{{amenity.iconName}}\"\r\n [ngClass]=\"{'amenity--active': amenity.checked}\"></span>\r\n <span class=\"amenity__label\">{{amenity.name}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.features.length > 0\">\r\n <div class=\"amenities\">\r\n <h4 class=\"--title\">\r\n Caracteristicas de la ubicaci\u00F3n\r\n </h4>\r\n <div class=\"amenities__list\">\r\n <ng-container *ngFor=\"let feature of propertyTypeSelected.features\">\r\n <div class=\"amenities__amenity\" matRipple (click)=\"updateAmenity(feature)\">\r\n <span class=\"amenity__icon ic-amenities-{{feature.iconName}}\"\r\n [ngClass]=\"{'amenity--active': feature.checked}\"></span>\r\n <span class=\"amenity__label\">{{feature.name}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"actions\">\r\n <ng-template [ngIf]=\"!isOPI\" [ngIfElse]=\"closeButtonTemplate\">\r\n <button mat-flat-button=\"\" type=\"button\" class=\"action__button\" color=\"primary\" (click)=\"saveSearchByFilters()\">\r\n GUARDAR\r\n </button>\r\n </ng-template>\r\n <ng-template #closeButtonTemplate>\r\n <button mat-flat-button=\"\" type=\"button\" class=\"action__button\" color=\"primary\" (click)=\"close()\">CERRAR</button>\r\n </ng-template>\r\n <button mat-flat-button=\"\" type=\"button\" class=\"action__button\" color=\"primary\"\r\n (click)=\"resetFilters()\">LIMPIAR\r\n </button>\r\n <button mat-flat-button=\"\" type=\"submit\" class=\"action__button\" color=\"primary\"\r\n (click)=\"applyFilters()\">APLICAR\r\n </button>\r\n </div>\r\n</form>\r\n",
462
+ template: "<!-- Todo: [FiltersComponent] Refactor code -->\r\n<form class=\"filters\" [formGroup]=\"filtersForm\" [ngClass]=\"{'filters--opened': propertyTypeSelected.value !== 'NONE'}\">\r\n <ng-template [ngIf]=\"!isOPI\">\r\n <div class=\"float-button-close\">\r\n <button mat-icon-button type=\"button\" class=\"float-button-close__button\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </ng-template>\r\n <div class=\"body\">\r\n <div class=\"--padding\">\r\n <div class=\"header\">\r\n <mat-form-field class=\"currency\" appearance=\"outline\">\r\n <mat-label>Divisa</mat-label>\r\n <mat-select formControlName=\"currency\">\r\n <ng-container *ngFor=\"let currency of currencyList\">\r\n <mat-option [value]=\"currency.type\" (click)=\"changeCurrency(currency.type)\">\r\n {{currency.type}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-button-toggle-group class=\"offering-type-list\" name=\"offering-type\" formControlName=\"offering\"\r\n aria-label=\"Offering type\">\r\n <mat-button-toggle (click)=\"changeOffering('SALE')\" [value]=\"'SALE'\"\r\n [disabled]=\"propertyTypeSelected.value === 'NONE' || propertyTypeSelected.value === 'ROOM'\">\r\n Venta\r\n </mat-button-toggle>\r\n <mat-button-toggle (click)=\"changeOffering('RENT')\" [value]=\"'RENT'\"\r\n [disabled]=\"propertyTypeSelected.value === 'NONE' || propertyTypeSelected.value === 'INVESTMENT'\">\r\n Renta\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n <div class=\"property-type-list mat-elevation-z2\">\r\n <ng-container *ngFor=\"let type of propertyTypeList; let i = index\">\r\n <ng-template [ngIf]=\"type.value !== 'NONE'\">\r\n <div class=\"property-type-list__button\">\r\n <div\r\n class=\"property-type-list__border\"\r\n [ngClass]=\"{'property-type-list__border--active': (type.value === propertyTypeSelected.value) || (propertyTypeSelected.value === 'NONE') || ((type.value === 'HOUSE' || type.value === 'APARTMENT') && propertyTypeSelected.value === 'RESIDENTIAL')}\"\r\n [ngStyle]=\"{'border-color': 'var(--' + type.iconName + ')'}\">\r\n <button mat-mini-fab=\"\" type=\"button\" (click)=\"changePropertyType(i)\"\r\n [ngStyle]=\"{'background-color': 'var(--' + type.iconName + ')'}\">\r\n <span class=\"property-type-list__icon ic-property-{{type.iconName}}\"></span>\r\n </button>\r\n </div>\r\n <span class=\"property-type-list__label\">{{type.shortName}}</span>\r\n <ng-template [ngIf]=\"type.value === 'RESIDENTIAL' && propertyTypeSelected.value === 'RESIDENTIAL'\">\r\n <div class=\"property-type-list__divider property-type-list__divider--left\"></div>\r\n <div class=\"property-type-list__divider property-type-list__divider--right\"></div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n <ng-template [ngIf]=\"isOPI\">\r\n <div class=\"all\">\r\n <button mat-raised-button=\"\" type=\"button\" class=\"all__button\"\r\n [ngClass]=\"{'all__button--active': propertyTypeSelected.value === 'NONE'}\"\r\n (click)=\"changePropertyType(9)\">Todo\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value !== 'NONE'\">\r\n <mat-divider></mat-divider>\r\n <div class=\"--padding\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-price\"></span>\r\n Presupuesto\r\n </h4>\r\n <div class=\"budget\">\r\n <!-- Min price [START] -->\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>M\u00EDnimo</mat-label>\r\n <input autocomplete=\"off\" matInput=\"\" type=\"number\" title=\"Min price\" formControlName=\"minPrice\" min=\"1\" >\r\n <mat-error *ngIf=\"filtersForm.controls['minPrice'].hasError('pattern')\">\r\n Debe ingresar solo numeros\r\n </mat-error>\r\n <mat-error *ngIf=\"filtersForm.controls['minPrice'].hasError('required')\">\r\n Este campo es requerido\r\n </mat-error>\r\n </mat-form-field>\r\n <!-- Min price [END] -->\r\n <!-- Max price [START] -->\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>M\u00E1ximo</mat-label>\r\n <input autocomplete=\"off\" matInput=\"\" type=\"number\" title=\"max price\" formControlName=\"maxPrice\">\r\n <mat-error *ngIf=\"filtersForm.controls['maxPrice'].hasError('pattern')\">\r\n Debe ingresar solo numeros\r\n </mat-error>\r\n <mat-error *ngIf=\"filtersForm.controls['maxPrice'].hasError('required')\">\r\n Este campo es requerido\r\n </mat-error>\r\n <mat-error *ngIf=\"filtersForm.controls['maxPrice'].hasError('currency')\">\r\n Valor minimo excedido\r\n </mat-error>\r\n </mat-form-field>\r\n <!-- Max price [END] -->\r\n </div>\r\n <div class=\"features\">\r\n <ng-template\r\n [ngIf]=\"propertyTypeSelected.value === 'RESIDENTIAL' || propertyTypeSelected.value === 'HOUSE' || propertyTypeSelected.value === 'APARTMENT'\">\r\n <div class=\"features__bedrooms\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-bedroom\"></span>\r\n Habitaciones\r\n </h4>\r\n <mat-button-toggle-group name=\"bedrooms\" aria-label=\"Bedrooms\" formControlName=\"bedrooms\">\r\n <ng-container *ngFor=\"let bedroom of bedroomsList\">\r\n <ng-template [ngIf]=\"bedroom === 0\" [ngIfElse]=\"bedroomNumber\">\r\n <mat-button-toggle [value]=\"bedroom\" class=\"features__bedrooms--unlimited\">\r\n Sin <br> l\u00EDmite\r\n </mat-button-toggle>\r\n </ng-template>\r\n <ng-template #bedroomNumber>\r\n <mat-button-toggle [value]=\"bedroom\">{{bedroom}}+\r\n </mat-button-toggle>\r\n </ng-template>\r\n </ng-container>\r\n </mat-button-toggle-group>\r\n </div>\r\n <div class=\"features__bathrooms\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-bathroom\"></span>\r\n Ba\u00F1os\r\n </h4>\r\n <mat-button-toggle-group name=\"bathrooms\" aria-label=\"Bathrooms\" formControlName=\"bathrooms\">\r\n <ng-container *ngFor=\"let bathroom of bathroomsList\">\r\n <ng-template [ngIf]=\"bathroom === 0\" [ngIfElse]=\"bathroomNumber\">\r\n <mat-button-toggle [value]=\"bathroom\"\r\n class=\"features__bathrooms--unlimited\">\r\n Sin <br> l\u00EDmite\r\n </mat-button-toggle>\r\n </ng-template>\r\n <ng-template #bathroomNumber>\r\n <mat-button-toggle [value]=\"bathroom\">{{bathroom}}+\r\n </mat-button-toggle>\r\n </ng-template>\r\n </ng-container>\r\n </mat-button-toggle-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value !== 'LAND' && propertyTypeSelected.value !== 'INVESTMENT'\">\r\n <div class=\"features__parking-places\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-parking\"></span>\r\n Estacionamientos\r\n </h4>\r\n <mat-button-toggle-group name=\"parking_places\" aria-label=\"Parking Places\"\r\n formControlName=\"parkingPlaces\">\r\n <ng-container *ngFor=\"let parking of parkingPlacesList\">\r\n <ng-template [ngIf]=\"parking === 0\" [ngIfElse]=\"parkingNumber\">\r\n <mat-button-toggle [value]=\"parking\"\r\n class=\"features__parking-places--unlimited\">\r\n Sin <br> l\u00EDmite\r\n </mat-button-toggle>\r\n </ng-template>\r\n <ng-template #parkingNumber>\r\n <mat-button-toggle [value]=\"parking\">{{parking}}+\r\n </mat-button-toggle>\r\n </ng-template>\r\n </ng-container>\r\n </mat-button-toggle-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value !== 'INVESTMENT'\">\r\n <div class=\"features__surface\">\r\n <h4 class=\"--title\">\r\n <span class=\"ic-features-surface\"></span>\r\n Superficie\r\n </h4>\r\n <div class=\"--row\">\r\n <mat-form-field appearance=\"outline\" class=\"--col\">\r\n <mat-label>\u00C1rea</mat-label>\r\n <mat-select formControlName=\"surface\">\r\n <mat-option [value]=\"0\">\r\n Sin l\u00EDmite\r\n </mat-option>\r\n <ng-container *ngFor=\"let surface of surfaceList\">\r\n <mat-option [value]=\"surface\">\r\n {{surface}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-button-toggle-group name=\"unit_surface\" aria-label=\"Unit surface\" formControlName=\"surfaceUnit\">\r\n <mat-button-toggle [value]=\"0\">m2</mat-button-toggle>\r\n <mat-button-toggle [value]=\"1\">sq ft</mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.value === 'INVESTMENT'\">\r\n <div class=\"feature investment\">\r\n <h4 class=\"--title\">Retorno de inversi\u00F3n</h4>\r\n <mat-form-field appearance=\"outline\" class=\"--col\">\r\n <mat-label>Porcentaje</mat-label>\r\n <mat-select formControlName=\"roi\">\r\n <mat-option [value]=\"0\">\r\n Sin l\u00EDmite\r\n </mat-option>\r\n <ng-container *ngFor=\"let roi of roiList\">\r\n <mat-option [value]=\"roi\">\r\n {{roi}}%\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </ng-template>\r\n <div class=\"amenities-container\">\r\n <ng-template [ngIf]=\"propertyTypeSelected.amenities.length > 0\">\r\n <div class=\"amenities\">\r\n <h4 class=\"--title\">\r\n Amenidades\r\n </h4>\r\n <div class=\"amenities__list\">\r\n <ng-container *ngFor=\"let amenity of propertyTypeSelected.amenities\">\r\n <div class=\"amenities__amenity\" matRipple (click)=\"updateAmenity(amenity)\">\r\n <span class=\"amenity__icon ic-amenities-{{amenity.iconName}}\"\r\n [ngClass]=\"{'amenity--active': amenity.checked}\"></span>\r\n <span class=\"amenity__label\">{{amenity.name}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"propertyTypeSelected.features.length > 0\">\r\n <div class=\"amenities\">\r\n <h4 class=\"--title\">\r\n Caracteristicas de la ubicaci\u00F3n\r\n </h4>\r\n <div class=\"amenities__list\">\r\n <ng-container *ngFor=\"let feature of propertyTypeSelected.features\">\r\n <div class=\"amenities__amenity\" matRipple (click)=\"updateAmenity(feature)\">\r\n <span class=\"amenity__icon ic-amenities-{{feature.iconName}}\"\r\n [ngClass]=\"{'amenity--active': feature.checked}\"></span>\r\n <span class=\"amenity__label\">{{feature.name}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"actions\">\r\n <!--ng-template [ngIf]=\"!isOPI\" [ngIfElse]=\"closeButtonTemplate\">\r\n <button mat-flat-button=\"\" type=\"button\" class=\"action__button\" color=\"primary\" (click)=\"saveSearchByFilters()\">\r\n GUARDAR\r\n </button>\r\n </ng-template-->\r\n <ng-template #closeButtonTemplate>\r\n <button mat-flat-button=\"\" type=\"button\" class=\"action__button\" color=\"primary\" (click)=\"close()\">CERRAR</button>\r\n </ng-template>\r\n <button mat-flat-button=\"\" type=\"button\" class=\"action__button\" color=\"primary\"\r\n (click)=\"resetFilters()\">LIMPIAR\r\n </button>\r\n <button mat-flat-button=\"\" type=\"submit\" class=\"action__button\" color=\"primary\"\r\n (click)=\"applyFilters()\">APLICAR\r\n </button>\r\n </div>\r\n</form>\r\n",
454
463
  styles: [":host{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;display:flex;background:var(--overlay);transition:250ms}.filters--opened{height:90%!important}@media screen and (max-width:600px){.filters--opened{width:100%!important;height:100%!important;top:0!important}}.filters{width:700px;height:auto;margin:auto;border-radius:16px;position:relative;overflow:hidden;transition:150ms}.filters .--padding{padding:16px 48px;box-sizing:border-box}.filters .--row{display:flex;justify-content:space-between;align-items:flex-start}.filters .--col{width:45%}.filters .--title{margin:16px 0;color:#707070}.filters .float-button-close{position:absolute;top:16px;right:16px;height:16px;border-radius:50%}.filters .body{height:calc(100% - 36px);overflow-x:hidden;overflow-y:auto}.filters .header{display:flex;align-items:center;justify-content:space-around;margin-bottom:8px}.filters .listing-types{width:100%;border-radius:16px}.filters .listing-types mat-button-toggle{width:50%;height:36px}.filters ::ng-deep .listing-types mat-button-toggle button{height:36px}.filters ::ng-deep .listing-types mat-button-toggle button .mat-button-toggle-label-content{line-height:36px}.filters .currency ::ng-deep .mat-form-field-wrapper{padding:0}@media screen and (max-width:600px){.filters{width:100%;position:absolute;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;top:initial;bottom:0;left:0}.filters .--padding{padding:16px 24px}.filters .header{flex-direction:column}.filters .currency{width:70%;margin-bottom:8px}}.filters .offering-type-list{width:40%;border-radius:16px}.filters .offering-type-list mat-button-toggle{width:50%;height:36px}.filters ::ng-deep .offering-type-list mat-button-toggle button{height:36px}.filters ::ng-deep .offering-type-list mat-button-toggle button .mat-button-toggle-label-content{line-height:36px}.filters .property-type-list{display:-ms-grid;display:grid;-ms-grid-columns:(calc(100% / 9))[9];grid-template-columns:repeat(9,calc(100% / 9));-ms-grid-rows:(80px)[1];grid-template-rows:repeat(1,80px);border-radius:40px;padding:8px;box-sizing:border-box}.filters .property-type-list .property-type-list__button{margin:auto;position:relative}.filters .property-type-list .property-type-list__button button{box-shadow:none}.filters .property-type-list .property-type-list__icon{width:24px;height:24px;font-size:24px}.filters .property-type-list .property-type-list__border{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:auto;opacity:.7;border-radius:50%;box-sizing:border-box}.filters .property-type-list .property-type-list__border--active{padding:4px;border:2px solid;opacity:1!important}.filters .property-type-list .property-type-list__label{font-size:12px;display:block;margin:8px 0;text-align:center}.filters .property-type-list .property-type-list__divider{width:14%;height:2px;background:#707070;top:30%;position:absolute}.filters .property-type-list .property-type-list__divider--left{left:-9px}.filters .property-type-list .property-type-list__divider--right{right:-9px}@media screen and (max-width:600px){.filters .offering-type-list{width:70%}.filters .property-type-list{-ms-grid-columns:(calc(100% / 3))[3];grid-template-columns:repeat(3,calc(100% / 3));-ms-grid-rows:(80px)[3];grid-template-rows:repeat(3,80px)}.filters .property-type-list .property-type-list__divider{width:60%}.filters .property-type-list .property-type-list__divider--left{left:-38px}.filters .property-type-list .property-type-list__divider--right{right:-38px}}.filters .all{width:100%;margin:8px 0}.filters .all .all__button{margin:0 40%;width:20%;border-radius:16px;background:0 0}.filters .budget{display:flex}.filters .budget mat-form-field{margin-right:8px;width:calc(100% / 2 - 8px)}.filters .features{display:-ms-grid;display:grid;-ms-grid-columns:(50%)[2];grid-template-columns:repeat(2,50%);-ms-grid-rows:(auto)[2];grid-template-rows:repeat(2,auto)}@media screen and (max-width:600px){.filters .all .all__button{width:50%;margin:0 25%}.filters .features{display:block}.filters .amenities-container{flex-direction:column}}.filters .features .features__bathrooms mat-button-toggle-group,.filters .features .features__bedrooms mat-button-toggle-group,.filters .features .features__parking-places mat-button-toggle-group{width:calc(100% - 16px)}.filters .features .features__bathrooms mat-button-toggle-group mat-button-toggle,.filters .features .features__bedrooms mat-button-toggle-group mat-button-toggle,.filters .features .features__parking-places mat-button-toggle-group mat-button-toggle{width:calc(100% / 5)}.filters .features .features__bedrooms--unlimited ::ng-deep .mat-button-toggle-label-content{line-height:16px;padding:8px;font-size:12px}.filters .features .features__bathrooms--unlimited ::ng-deep .mat-button-toggle-label-content{line-height:16px;padding:8px;font-size:12px}.filters .features .features__parking-places--unlimited ::ng-deep .mat-button-toggle-label-content{line-height:16px;padding:8px;font-size:12px}.filters .features .features__surface mat-button-toggle-group{margin-top:6px;margin-right:16px}.filters .amenities-container{width:100%;-ms-grid-column:1;grid-column-start:1;-ms-grid-column-span:2;grid-column-end:3;display:flex}.filters .amenities{width:50%}@media screen and (max-width:600px){.filters .amenities{width:100%}}.filters .amenities__amenity{width:calc(100% / 3 - 24px);height:120px;border-radius:8px;padding:8px;display:inline-flex;flex-direction:column;align-items:center;box-sizing:border-box;margin:0 8px 8px 0;cursor:pointer}.filters .amenity__icon{display:block;width:24px;height:24px;margin:8px auto;font-size:24px;padding:8px;border-radius:50%}.filters .amenity__label{width:100%;display:block;text-align:center;font-size:12px;margin:auto}.filters .actions{display:flex}.filters .actions .action__button{width:50%;border-radius:0}"]
455
464
  }] }
456
465
  ];
@@ -464,11 +473,17 @@ FiltersComponent.ctorParameters = () => [
464
473
  { type: CurrencyConverterService }
465
474
  ];
466
475
  FiltersComponent.propDecorators = {
467
- utils: [{ type: Input }]
476
+ utils: [{ type: Input }],
477
+ hideRoom: [{ type: Input }],
478
+ hideResidential: [{ type: Input }]
468
479
  };
469
480
  if (false) {
470
481
  /** @type {?} */
471
482
  FiltersComponent.prototype.utils;
483
+ /** @type {?} */
484
+ FiltersComponent.prototype.hideRoom;
485
+ /** @type {?} */
486
+ FiltersComponent.prototype.hideResidential;
472
487
  /**
473
488
  * @type {?}
474
489
  * @private
@@ -553,4 +568,4 @@ if (false) {
553
568
  */
554
569
  FiltersComponent.prototype._converter;
555
570
  }
556
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWFwbGFuZGVyL2NvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBYSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBZSxRQUFRLEVBQXNCLGdCQUFnQixFQUFpQixnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9ILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFbEMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRW5FLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBRXhHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUVsRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQU96RixNQUFNLE9BQU8sZ0JBQWdCOzs7Ozs7Ozs7SUFzQjNCLFlBQzZDLE9BQWdCLEVBQ25ELE9BQWtCLEVBQ2xCLElBQWdCLEVBQ2hCLFFBQXdC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WSxDQUFDLE1BQU07Z0JBQ3RFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDeEU7UUFDSCxDQUFDLEVBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7O1lBdlVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsMjJiQUF1Qzs7YUFFeEM7Ozs7MENBd0JJLFFBQVEsWUFBSSxNQUFNLFNBQUMsYUFBYTtZQWhEbkMsU0FBUztZQVBULFVBQVU7WUFvQkosY0FBYztZQVZkLFdBQVc7WUFRWCx3QkFBd0I7OztvQkFlN0IsS0FBSzs7OztJQUFOLGlDQUF3Qjs7Ozs7SUFDeEIsd0NBQTRDOzs7OztJQUM1Qyw0Q0FBbUM7Ozs7O0lBQ25DLDRDQUFtQzs7Ozs7SUFDbkMseUNBQW9DOzs7OztJQUNwQywrQ0FBcUM7O0lBQ3JDLHVDQUE4Qjs7SUFDOUIsNENBQTRDOztJQUM1Qyx3Q0FBOEI7O0lBQzlCLHlDQUErQjs7SUFDL0IsNkNBQW1DOztJQUNuQyx3Q0FBMkI7O0lBQzNCLHdDQUE4Qjs7SUFDOUIsd0NBQThCOztJQUM5Qix1Q0FBNkI7O0lBQzdCLG1DQUF5Qjs7SUFDekIsZ0RBQThDOztJQUM5QyxrQ0FBc0I7O0lBQ3RCLGlDQUFzQjs7SUFDdEIsK0NBQW1DOzs7OztJQUdqQyxtQ0FBMkQ7Ozs7O0lBQzNELG1DQUEwQjs7Ozs7SUFDMUIsZ0NBQXdCOzs7OztJQUN4QixvQ0FBZ0M7Ozs7O0lBQ2hDLHdDQUFpQzs7Ozs7SUFDakMsc0NBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0FwcFV0aWwsIENFUiwgQ3VycmVuY3ksIEZpbHRlciwgTGltaXRQcmljZSwgT2ZmZXJpbmdUeXBlRW51bSwgUHJvcGVydHlSYW5nZSwgUHJvcGVydHlUeXBlRW51bX0gZnJvbSAnQG1hcGxhbmRlci90eXBlcyc7XHJcbmltcG9ydCB7Q29uc3RhbnRzQ29tcG9uZW50c30gZnJvbSAnLi4vLi4vY29uc3RhbnRzQ29tcG9uZW50cyc7XHJcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHtGaWx0ZXJzQ2hhbmdlfSBmcm9tICcuLy4uLy4uL3V0aWxzL21vZGVscy9maWx0ZXJzLWNoYW5nZSc7XHJcbmltcG9ydCB7RmlsdGVyc1dyYXBwZXJ9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzZXMvZmlsdGVycy13cmFwcGVyJztcclxuaW1wb3J0IHtQcm9wZXJ0eVR5cGVJdGVtfSBmcm9tICcuLy4uLy4uL3V0aWxzL21vZGVscy9wcm9wZXJ0eS10eXBlLWl0ZW0nO1xyXG5pbXBvcnQge0N1cnJlbmN5Q29udmVydGVyU2VydmljZX0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9jdXJyZW5jeS1jb252ZXJ0ZXIvY3VycmVuY3ktY29udmVydGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ZpbHRlcnN9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMvZmlsdGVycyc7XHJcbmltcG9ydCB7RmlsdGVyc1NlcnZpY2V9IGZyb20gJy4vZmlsdGVycy5zZXJ2aWNlJztcclxuaW1wb3J0IHtGaWx0ZXJzQ2hhbmdlVHlwZX0gZnJvbSAnLi4vLi4vdXRpbHMvZW51bXMnO1xyXG5pbXBvcnQge0ZJTFRFUlNfVE9LRU59IGZyb20gJy4vdG9rZW4nO1xyXG5pbXBvcnQge01VdGlsc30gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3Nlcy9tVXRpbHMnO1xyXG5pbXBvcnQge0FtZW5pdHlJdGVtfSBmcm9tICcuLi8uLi91dGlscy9tb2RlbHMnO1xyXG5pbXBvcnQge0N1cnJlbmN5RmlsdGVyVmFsaWRhdG9yfSBmcm9tICcuLi9wcm9wZXJ0eS92YWxpZGF0b3JzL2N1cnJlbmN5LWZpbHRlci12YWxpZGF0b3InO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZmlsdGVycycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlcnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEZpbHRlcnMge1xyXG4gIEBJbnB1dCgpIHV0aWxzOiBBcHBVdGlsO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgTUVURVJTX1RPX1NRID0gMTAuNzYzOTEwNDI7XHJcbiAgcHJpdmF0ZSBfdG1wTWluUHJpY2VMaXN0OiBudW1iZXJbXTtcclxuICBwcml2YXRlIF90bXBNYXhQcmljZUxpc3Q6IG51bWJlcltdO1xyXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgX2lzU2hhcmVkUHJvcGVydGllczogYm9vbGVhbjtcclxuICBwdWJsaWMgZmlsdGVyc0Zvcm06IEZvcm1Hcm91cDtcclxuICBwdWJsaWMgcHJvcGVydHlUeXBlTGlzdDogUHJvcGVydHlUeXBlSXRlbVtdO1xyXG4gIHB1YmxpYyBiZWRyb29tc0xpc3Q6IG51bWJlcltdO1xyXG4gIHB1YmxpYyBiYXRocm9vbXNMaXN0OiBudW1iZXJbXTtcclxuICBwdWJsaWMgcGFya2luZ1BsYWNlc0xpc3Q6IG51bWJlcltdO1xyXG4gIHB1YmxpYyBjdXJyZW5jeUxpc3Q6IENFUltdO1xyXG4gIHB1YmxpYyBtaW5QcmljZUxpc3Q6IG51bWJlcltdO1xyXG4gIHB1YmxpYyBtYXhQcmljZUxpc3Q6IG51bWJlcltdO1xyXG4gIHB1YmxpYyBzdXJmYWNlTGlzdDogbnVtYmVyW107XHJcbiAgcHVibGljIHJvaUxpc3Q6IG51bWJlcltdO1xyXG4gIHB1YmxpYyBwcm9wZXJ0eVR5cGVTZWxlY3RlZDogUHJvcGVydHlUeXBlSXRlbTtcclxuICBwdWJsaWMgZmlsdGVyOiBGaWx0ZXI7XHJcbiAgcHVibGljIGlzT1BJOiBib29sZWFuO1xyXG4gIHB1YmxpYyBzdXJmYWNlVW5pdFNlbGVjdGVkOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChGSUxURVJTX1RPS0VOKSBwcml2YXRlIF9jb25maWc6IGJvb2xlYW4sXHJcbiAgICBwcml2YXRlIF9yZW5kZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgX3JlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEZpbHRlcnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfY29udmVydGVyOiBDdXJyZW5jeUNvbnZlcnRlclNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuaXNPUEkgPSB0aGlzLl9jb25maWcgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICB0aGlzLnByb3BlcnR5VHlwZUxpc3QgPSBDb25zdGFudHNDb21wb25lbnRzLlByb3BlcnR5VHlwZUxpc3QubWFwKGl0ZW0gPT4gKHsuLi5pdGVtfSkpO1xyXG4gICAgdGhpcy5iZWRyb29tc0xpc3QgPSBPYmplY3QuYXNzaWduKFtdLCBDb25zdGFudHNDb21wb25lbnRzLkJlZHJvb21MaXN0KTtcclxuICAgIHRoaXMuYmF0aHJvb21zTGlzdCA9IE9iamVjdC5hc3NpZ24oW10sIENvbnN0YW50c0NvbXBvbmVudHMuQmF0aHJvb21MaXN0KTtcclxuICAgIHRoaXMucGFya2luZ1BsYWNlc0xpc3QgPSBPYmplY3QuYXNzaWduKFtdLCBDb25zdGFudHNDb21wb25lbnRzLlBhcmtpbmdTcGFjZXNMaXN0KTtcclxuICAgIHRoaXMuc3VyZmFjZUxpc3QgPSBPYmplY3QuYXNzaWduKFtdLCBDb25zdGFudHNDb21wb25lbnRzLlN1cmZhY2VMaXN0KTtcclxuICAgIHRoaXMucm9pTGlzdCA9IE9iamVjdC5hc3NpZ24oW10sIENvbnN0YW50c0NvbXBvbmVudHMuUk9JTGlzdCk7XHJcbiAgICB0aGlzLnN1cmZhY2VVbml0U2VsZWN0ZWQgPSAwO1xyXG4gICAgdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIHRoaXMuaW5pdENvbXBvbmVudEJ5UHJvcGVydHlUeXBlKCk7XHJcbiAgICB0aGlzLnJlc3RvcmVMYXN0RmlsdGVyc1NhdmVkKHRydWUpO1xyXG4gICAgdGhpcy5saXN0ZW5DaGFuZ2VzT25Gb3JtKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub3BlbkNvbXBvbmVudChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudXRpbHMpIHtcclxuICAgICAgcmV0dXJuIGNvbnNvbGUud2FybignW0ZpbHRlcnNDb21wb25lbnRdIHV0aWxzIHBhcmFtIGlzIHJlcXVpcmVkJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmluaXRDb21wb25lbnQoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWyd1dGlscyddICYmIGNoYW5nZXNbJ3V0aWxzJ10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdbRmlsdGVyc0NvbXBvbmVudF0gdXRpbHMgcmVhZHknKTtcclxuICAgICAgdGhpcy5pbml0Q29tcG9uZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgb3BlbigpOiB2b2lkIHtcclxuICAgIHRoaXMucmVzdG9yZUxhc3RGaWx0ZXJzU2F2ZWQoKTtcclxuICAgIHRoaXMub3BlbkNvbXBvbmVudCh0cnVlKTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vcGVuQ29tcG9uZW50KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVByb3BlcnR5VHlwZShpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlc2V0RmlsdGVycyhpbmRleCk7XHJcbiAgICB0aGlzLmFwcGx5QW1lbml0aWVzKCk7XHJcbiAgICB0aGlzLmZpbHRlci50eXBlID0gdGhpcy5wcm9wZXJ0eVR5cGVTZWxlY3RlZC52YWx1ZTtcclxuICAgIHN3aXRjaCAodGhpcy5wcm9wZXJ0eVR5cGVTZWxlY3RlZC52YWx1ZSkge1xyXG4gICAgICBjYXNlIFByb3BlcnR5VHlwZUVudW0uUk9PTTpcclxuICAgICAgICB0aGlzLmZpbHRlcnNGb3JtLmNvbnRyb2xzWydvZmZlcmluZyddLnNldFZhbHVlKE9mZmVyaW5nVHlwZUVudW0uUkVOVCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUHJvcGVydHlUeXBlRW51bS5JTlZFU1RNRU5UOlxyXG4gICAgICAgIHRoaXMuZmlsdGVyc0Zvcm0uY29udHJvbHNbJ29mZmVyaW5nJ10uc2V0VmFsdWUoT2ZmZXJpbmdUeXBlRW51bS5TQUxFKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZU9mZmVyaW5nKGV2OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyLm9mZmVyaW5nID0gZXYgYXMgT2ZmZXJpbmdUeXBlRW51bTtcclxuICB9XHJcblxyXG4gIGNoYW5nZUN1cnJlbmN5KGV2OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyLmN1cnJlbmN5ID0gZXY7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVBbWVuaXR5KGFtZW5pdHk6IEFtZW5pdHlJdGVtKTogdm9pZCB7XHJcbiAgICBpZiAoYW1lbml0eS5jaGVja2VkKSB7XHJcbiAgICAgIGNvbnN0IGkgPSB0aGlzLmZpbHRlci5leHRyYXMuaW5kZXhPZihhbWVuaXR5LnZhbHVlKTtcclxuICAgICAgaWYgKGkgPiAtMSkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyLmV4dHJhcy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyLmV4dHJhcy5wdXNoKGFtZW5pdHkudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgYW1lbml0eS5jaGVja2VkID0gIWFtZW5pdHkuY2hlY2tlZDtcclxuICB9XHJcblxyXG4gIHNhdmVTZWFyY2hCeUZpbHRlcnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFwcGx5RmlsdGVycyhGaWx0ZXJzQ2hhbmdlVHlwZS5TQVZFKTtcclxuICB9XHJcblxyXG4gIGFwcGx5RmlsdGVycyh0eXBlPzogRmlsdGVyc0NoYW5nZVR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0RmlsdGVyQnlGb3JtKCk7XHJcbiAgICBjb25zdCBmaWx0ZXJUb1NlYXJjaCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZmlsdGVyKTtcclxuICAgIGlmICh0aGlzLnN1cmZhY2VVbml0U2VsZWN0ZWQgPT09IDEpIHtcclxuICAgICAgZmlsdGVyVG9TZWFyY2gubWFpbkFyZWEgPSBmaWx0ZXJUb1NlYXJjaC5tYWluQXJlYSAqIHRoaXMuTUVURVJTX1RPX1NRO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVGaWx0ZXJzU2F2ZWQoZmlsdGVyVG9TZWFyY2gpO1xyXG4gICAgdGhpcy5fc2VydmljZS5zZXRDaGFuZ2Uoe1xyXG4gICAgICB0eXBlOiB0eXBlIHx8IEZpbHRlcnNDaGFuZ2VUeXBlLkFQUExZLFxyXG4gICAgICBmaWx0ZXI6IGZpbHRlclRvU2VhcmNoLFxyXG4gICAgICBmdDogdGhpcy5zdXJmYWNlVW5pdFNlbGVjdGVkID09PSAxLFxyXG4gICAgICBpc1NoYXJlZFByb3BlcnRpZXM6IHRoaXMuX2lzU2hhcmVkUHJvcGVydGllc1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm9wZW5Db21wb25lbnQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRGaWx0ZXJzKHByb3BlcnR5VHlwZUl0ZW1JbmRleD86IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0Q29tcG9uZW50QnlQcm9wZXJ0eVR5cGUocHJvcGVydHlUeXBlSXRlbUluZGV4KTtcclxuICAgIHRoaXMuc3VyZmFjZVVuaXRTZWxlY3RlZCA9IDA7XHJcbiAgICB0aGlzLmZpbHRlciA9IHByb3BlcnR5VHlwZUl0ZW1JbmRleCA/IFV0aWxzLmdldEZpbHRlckJ5UHJvcGVydHlUeXBlKHRoaXMuZmlsdGVyKSA6IFV0aWxzLmdldEluaXRpYWxGaWx0ZXIodGhpcy5pc09QSSwgdGhpcy5maWx0ZXIpO1xyXG4gICAgdGhpcy51cGRhdGVGb3JtQnlGaWx0ZXJzKCk7XHJcbiAgICB0aGlzLnNldFByaWNlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZEZvcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbHRlcnNGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBvZmZlcmluZzogW10sXHJcbiAgICAgIGN1cnJlbmN5OiBbXSxcclxuICAgICAgbWluUHJpY2U6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihuZXcgUmVnRXhwKCcoXlswLTldKyknKSldXSxcclxuICAgICAgbWF4UHJpY2U6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihuZXcgUmVnRXhwKCcoXlswLTldKyknKSldXSxcclxuICAgICAgYmVkcm9vbXM6IFtdLFxyXG4gICAgICBiYXRocm9vbXM6IFtdLFxyXG4gICAgICBwYXJraW5nUGxhY2VzOiBbXSxcclxuICAgICAgc3VyZmFjZTogW10sXHJcbiAgICAgIHN1cmZhY2VVbml0OiBbXSxcclxuICAgICAgcm9pOiBbXVxyXG4gICAgfSwge1xyXG4gICAgICB2YWxpZGF0b3I6IEN1cnJlbmN5RmlsdGVyVmFsaWRhdG9yKCdtaW5QcmljZScsICdtYXhQcmljZScpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRm9ybUJ5RmlsdGVycygpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyc0Zvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgIG9mZmVyaW5nOiB0aGlzLmZpbHRlci5vZmZlcmluZyxcclxuICAgICAgY3VycmVuY3k6IHRoaXMuZmlsdGVyLmN1cnJlbmN5LFxyXG4gICAgICBtaW5QcmljZTogdGhpcy5maWx0ZXIuZG93bkxpbWl0UHJpY2UsXHJcbiAgICAgIG1heFByaWNlOiB0aGlzLmZpbHRlci51cExpbWl0UHJpY2UsXHJcbiAgICAgIGJlZHJvb21zOiB0aGlzLmZpbHRlci5iZWRyb29tcyxcclxuICAgICAgYmF0aHJvb21zOiB0aGlzLmZpbHRlci5iYXRocm9vbXMsXHJcbiAgICAgIHBhcmtpbmdQbGFjZXM6IHRoaXMuZmlsdGVyLnBhcmtpbmdQbGFjZXMsXHJcbiAgICAgIHN1cmZhY2U6IHRoaXMuZmlsdGVyLm1haW5BcmVhLFxyXG4gICAgICBzdXJmYWNlVW5pdDogdGhpcy5zdXJmYWNlVW5pdFNlbGVjdGVkLFxyXG4gICAgICByb2k6IHRoaXMuZmlsdGVyLnJvaVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZpbHRlckJ5Rm9ybSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmZpbHRlcnNGb3JtLnZhbHVlO1xyXG4gICAgdGhpcy5maWx0ZXIub2ZmZXJpbmcgPSBkYXRhLm9mZmVyaW5nO1xyXG4gICAgdGhpcy5maWx0ZXIuY3VycmVuY3kgPSBkYXRhLmN1cnJlbmN5O1xyXG4gICAgdGhpcy5maWx0ZXIuZG93bkxpbWl0UHJpY2UgPSBOdW1iZXIoZGF0YS5taW5QcmljZSk7XHJcbiAgICB0aGlzLmZpbHRlci51cExpbWl0UHJpY2UgPSBOdW1iZXIoZGF0YS5tYXhQcmljZSk7XHJcbiAgICB0aGlzLmZpbHRlci5iZWRyb29tcyA9IE51bWJlcihkYXRhLmJlZHJvb21zKTtcclxuICAgIHRoaXMuZmlsdGVyLmJhdGhyb29tcyA9IE51bWJlcihkYXRhLmJhdGhyb29tcyk7XHJcbiAgICB0aGlzLmZpbHRlci5wYXJraW5nUGxhY2VzID0gTnVtYmVyKGRhdGEucGFya2luZ1BsYWNlcyk7XHJcbiAgICB0aGlzLmZpbHRlci5tYWluQXJlYSA9IE51bWJlcihkYXRhLnN1cmZhY2UpO1xyXG4gICAgdGhpcy5zdXJmYWNlVW5pdFNlbGVjdGVkID0gTnVtYmVyKGRhdGEuc3VyZmFjZVVuaXQpO1xyXG4gICAgdGhpcy5maWx0ZXIucm9pID0gTnVtYmVyKGRhdGEucm9pKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdENvbXBvbmVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdFV0aWxzKCk7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlLmdldENoYW5nZXMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBGaWx0ZXJzQ2hhbmdlKSA9PiB7XHJcbiAgICAgICAgc3dpdGNoIChyZXNwb25zZS50eXBlKSB7XHJcbiAgICAgICAgICBjYXNlIEZpbHRlcnNDaGFuZ2VUeXBlLkxJU1RfVFlQRTpcclxuICAgICAgICAgICAgdGhpcy5faXNTaGFyZWRQcm9wZXJ0aWVzID0gcmVzcG9uc2UuaXNTaGFyZWRQcm9wZXJ0aWVzO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcnNTYXZlZChyZXNwb25zZS5maWx0ZXIpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgRmlsdGVyc0NoYW5nZVR5cGUuQVJFQTpcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJzU2F2ZWQocmVzcG9uc2UuZmlsdGVyKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHRoaXMuX3NlcnZpY2Uuc3RhcnRDb21wb25lbnQobmV3IEZpbHRlcnNXcmFwcGVyKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdFV0aWxzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW5jeUxpc3QgPSB0aGlzLnV0aWxzLmNlcnM7XHJcbiAgICB0aGlzLnNldFByaWNlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRQcmljZXModG8/OiBDdXJyZW5jeSk6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJzRm9ybS5jb250cm9sc1snbWluUHJpY2UnXS5yZXNldCgwKTtcclxuICAgIHRoaXMuZmlsdGVyc0Zvcm0uY29udHJvbHNbJ21heFByaWNlJ10ucmVzZXQoMCk7XHJcbiAgICBjb25zdCBvZmZlcmluZyA9IHRoaXMuZmlsdGVyc0Zvcm0uY29udHJvbHNbJ29mZmVyaW5nJ10udmFsdWU7XHJcbiAgICB0aGlzLm1pblByaWNlTGlzdCA9IHRoaXMuY3JlYXRlUHJpY2VzKHRoaXMudXRpbHMubGltaXRQcmljZSwgdGhpcy5wcm9wZXJ0eVR5cGVTZWxlY3RlZC52YWx1ZSwgb2ZmZXJpbmcpO1xyXG4gICAgdGhpcy5taW5QcmljZUxpc3QgPSB0aGlzLl9jb252ZXJ0ZXIubGlzdCh0aGlzLm1pblByaWNlTGlzdCwgdGhpcy51dGlscy5jZXJzLCBDdXJyZW5jeS5VU0QsIHRvIHx8IHRoaXMuZmlsdGVyLmN1cnJlbmN5IGFzIEN1cnJlbmN5KTtcclxuICAgIHRoaXMubWF4UHJpY2VMaXN0ID0gT2JqZWN0LmFzc2lnbihbXSwgdGhpcy5taW5QcmljZUxpc3QpO1xyXG4gICAgdGhpcy5fdG1wTWluUHJpY2VMaXN0ID0gT2JqZWN0LmFzc2lnbihbXSwgdGhpcy5taW5QcmljZUxpc3QpO1xyXG4gICAgdGhpcy5fdG1wTWF4UHJpY2VMaXN0ID0gT2JqZWN0LmFzc2lnbihbXSwgdGhpcy5tYXhQcmljZUxpc3QpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseUFtZW5pdGllcygpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvcGVydHlUeXBlU2VsZWN0ZWQuYW1lbml0aWVzID0gdGhpcy5wcm9wZXJ0eVR5cGVTZWxlY3RlZC5hbWVuaXRpZXMubWFwKGFtZW5pdHkgPT4ge1xyXG4gICAgICBjb25zdCBpID0gdGhpcy5maWx0ZXIuZXh0cmFzLmluZGV4T2YoYW1lbml0eS52YWx1ZSk7XHJcbiAgICAgIGFtZW5pdHkuY2hlY2tlZCA9IChpID4gLTEpO1xyXG4gICAgICByZXR1cm4gYW1lbml0eTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wcm9wZXJ0eVR5cGVTZWxlY3RlZC5mZWF0dXJlcyA9IHRoaXMucHJvcGVydHlUeXBlU2VsZWN0ZWQuZmVhdHVyZXMubWFwKGFtZW5pdHkgPT4ge1xyXG4gICAgICBjb25zdCBpID0gdGhpcy5maWx0ZXIuZXh0cmFzLmluZGV4T2YoYW1lbml0eS52YWx1ZSk7XHJcbiAgICAgIGFtZW5pdHkuY2hlY2tlZCA9IChpID4gLTEpO1xyXG4gICAgICByZXR1cm4gYW1lbml0eTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVQcmljZXMobGltaXRQcmljZTogTGltaXRQcmljZSwgcHJvcGVydHlUeXBlOiBQcm9wZXJ0eVR5cGVFbnVtLCBvZmZlcmluZzogT2ZmZXJpbmdUeXBlRW51bSk6IG51bWJlcltdIHtcclxuICAgIGxldCBsaXN0OiBudW1iZXJbXSA9IFtdO1xyXG4gICAgbGltaXRQcmljZS5wcm9wZXJ0eVJhbmdlcy5mb3JFYWNoKChyYW5nZTogUHJvcGVydHlSYW5nZSkgPT4ge1xyXG4gICAgICBpZiAocmFuZ2Uub2ZmZXJpbmcgPT09IG9mZmVyaW5nICYmIHJhbmdlLnR5cGUgPT09IHByb3BlcnR5VHlwZSkge1xyXG4gICAgICAgIGxpc3QgPSBNVXRpbHMubGluU3BhY2VFeHAocmFuZ2UubWluLCByYW5nZS5tYXgsIDIwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbGlzdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdENvbXBvbmVudEJ5UHJvcGVydHlUeXBlKHByb3BlcnR5VHlwZUl0ZW1JbmRleDogbnVtYmVyID0gbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wZXJ0eVR5cGVTZWxlY3RlZCA9IEpTT04ucGFyc2UoXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KENvbnN0YW50c0NvbXBvbmVudHMuUHJvcGVydHlUeXBlTGlzdFtwcm9wZXJ0eVR5cGVJdGVtSW5kZXggIT09IG51bGwgPyBwcm9wZXJ0eVR5cGVJdGVtSW5kZXggOiA5XSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVGaWx0ZXJzU2F2ZWQoZmlsdGVyczogRmlsdGVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbHRlciA9IGZpbHRlcnM7XHJcbiAgICBGaWx0ZXJzU2VydmljZS5zYXZlRmlsdGVycyh7XHJcbiAgICAgIGZpbHRlcnM6IGZpbHRlcnMsXHJcbiAgICAgIGZ0OiB0aGlzLnN1cmZhY2VVbml0U2VsZWN0ZWQgPT09IDEsXHJcbiAgICAgIGlzU2hhcmVkUHJvcGVydGllczogdGhpcy5faXNTaGFyZWRQcm9wZXJ0aWVzIHx8IGZhbHNlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzdG9yZUxhc3RGaWx0ZXJzU2F2ZWQoaW5pdD86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpbHRlcnNTYXZlZCA9IEZpbHRlcnNTZXJ2aWNlLmdldEZpbHRlcnNTYXZlZCgpIHx8IG51bGw7XHJcbiAgICB0aGlzLmZpbHRlciA9IGZpbHRlcnNTYXZlZCA/IGZpbHRlcnNTYXZlZC5maWx0ZXJzIDogVXRpbHMuZ2V0SW5pdGlhbEZpbHRlcih0aGlzLmlzT1BJKTtcclxuICAgIGlmIChmaWx0ZXJzU2F2ZWQpIHtcclxuICAgICAgaWYgKGZpbHRlcnNTYXZlZC5mdCkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyLm1haW5BcmVhID0gTnVtYmVyKCh0aGlzLmZpbHRlci5tYWluQXJlYSAvIHRoaXMuTUVURVJTX1RPX1NRKS50b0ZpeGVkKDApKTtcclxuICAgICAgICB0aGlzLnN1cmZhY2VVbml0U2VsZWN0ZWQgPSBmaWx0ZXJzU2F2ZWQuZnQgPyAxIDogMDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9pc1NoYXJlZFByb3BlcnRpZXMgPSBmaWx0ZXJzU2F2ZWQuaXNTaGFyZWRQcm9wZXJ0aWVzIHx8IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wcm9wZXJ0eVR5cGVTZWxlY3RlZCA9IENvbnN0YW50c0NvbXBvbmVudHMuUHJvcGVydHlUeXBlTGlzdC5maW5kKGl0ZW0gPT4gaXRlbS52YWx1ZSA9PT0gdGhpcy5maWx0ZXIudHlwZSk7XHJcbiAgICB0aGlzLmFwcGx5QW1lbml0aWVzKCk7XHJcbiAgICB0aGlzLnVwZGF0ZUZvcm1CeUZpbHRlcnMoKTtcclxuICAgIGlmIChpbml0KSB7XHJcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKEZpbHRlcnNDaGFuZ2VUeXBlLklOSVQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvcGVuQ29tcG9uZW50KG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmIChvcGVuKSB7XHJcbiAgICAgIHRoaXMuX3JlbmRlci5zZXRTdHlsZSh0aGlzLl9yZWYubmF0aXZlRWxlbWVudCwgJ3Zpc2liaWxpdHknLCAndmlzaWJsZScpO1xyXG4gICAgICB0aGlzLl9yZW5kZXIuc2V0U3R5bGUodGhpcy5fcmVmLm5hdGl2ZUVsZW1lbnQsICdvcGFjaXR5JywgJzEnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3JlbmRlci5zZXRTdHlsZSh0aGlzLl9yZWYubmF0aXZlRWxlbWVudCwgJ29wYWNpdHknLCAnMCcpO1xyXG4gICAgICB0aGlzLl9yZW5kZXIuc2V0U3R5bGUodGhpcy5fcmVmLm5hdGl2ZUVsZW1lbnQsICd2aXNpYmlsaXR5JywgJ2NvbGxhcHNlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxpc3RlbkNoYW5nZXNPbkZvcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLmZpbHRlcnNGb3JtLmNvbnRyb2xzWydvZmZlcmluZyddLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0UHJpY2VzKCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgdGhpcy5maWx0ZXJzRm9ybS5jb250cm9sc1snY3VycmVuY3knXS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0UHJpY2VzKHZhbHVlLnRvU3RyaW5nKCkgYXMgQ3VycmVuY3kpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMuZmlsdGVyc0Zvcm0uY29udHJvbHNbJ21pblByaWNlJ10udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubWF4UHJpY2VMaXN0ID0gT2JqZWN0LmFzc2lnbihbXSwgdGhpcy5fdG1wTWF4UHJpY2VMaXN0KTtcclxuICAgICAgICBjb25zdCBpID0gdGhpcy5taW5QcmljZUxpc3QuaW5kZXhPZih2YWx1ZSk7XHJcbiAgICAgICAgaWYgKGkgPiAtMSkge1xyXG4gICAgICAgICAgdGhpcy5tYXhQcmljZUxpc3Quc3BsaWNlKDAsIGkgKyAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgdGhpcy5maWx0ZXJzRm9ybS5jb250cm9sc1snbWF4UHJpY2UnXS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubWluUHJpY2VMaXN0ID0gT2JqZWN0LmFzc2lnbihbXSwgdGhpcy5fdG1wTWluUHJpY2VMaXN0KTtcclxuICAgICAgICBjb25zdCBpID0gdGhpcy5tYXhQcmljZUxpc3QuaW5kZXhPZih2YWx1ZSk7XHJcbiAgICAgICAgaWYgKGkgPiAtMSkge1xyXG4gICAgICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IHRoaXMubWluUHJpY2VMaXN0Lmxlbmd0aCAtIHRoaXMubWF4UHJpY2VMaXN0Lmxlbmd0aDtcclxuICAgICAgICAgIHRoaXMubWluUHJpY2VMaXN0LnNwbGljZShpICsgZGlmZmVyZW5jZSwgdGhpcy5taW5QcmljZUxpc3QubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
571
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWFwbGFuZGVyL2NvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBYSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBZSxRQUFRLEVBQXNCLGdCQUFnQixFQUFpQixnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9ILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFbEMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRW5FLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBRXhHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUVsRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQU96RixNQUFNLE9BQU8sZ0JBQWdCOzs7Ozs7Ozs7SUF3QjNCLFlBQzZDLE9BQWdCLEVBQ25ELE9BQWtCLEVBQ2xCLElBQWdCLEVBQ2hCLFFBQXdCLEVBQ3hCLFlBQXlCLEVBQ3pCLFVBQW9DO1FBTEQsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNuRCxZQUFPLEdBQVAsT0FBTyxDQUFXO1FBQ2xCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBMEI7UUExQjdCLGlCQUFZLEdBQUcsV0FBVyxDQUFDO1FBNEIxQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7Y0FDbEMsS0FBSyxHQUFHLEVBQUU7UUFDaEIsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsT0FBTzs7OztRQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7Z0JBQ3pELENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN2RSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2xCO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7Ozs7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOzs7O0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7U0FDbkU7UUFDRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRTtZQUNyRCxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7Ozs7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDOzs7O0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7Ozs7SUFFRCxrQkFBa0IsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUM7UUFDbkQsUUFBUSxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFO1lBQ3ZDLEtBQUssZ0JBQWdCLENBQUMsSUFBSTtnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0RSxNQUFNO1lBQ1IsS0FBSyxnQkFBZ0IsQ0FBQyxVQUFVO2dCQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RFLE1BQU07U0FDVDtJQUNILENBQUM7Ozs7O0lBRUQsY0FBYyxDQUFDLEVBQVU7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsbUJBQUEsRUFBRSxFQUFvQixDQUFDO0lBQ2hELENBQUM7Ozs7O0lBRUQsY0FBYyxDQUFDLEVBQVU7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7Ozs7O0lBRUQsYUFBYSxDQUFDLE9BQW9CO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTs7a0JBQ2IsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDakM7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QztRQUNELE9BQU8sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ3JDLENBQUM7Ozs7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDOzs7OztJQUVELFlBQVksQ0FBQyxJQUF3QjtRQUNuQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7O2NBQ2pCLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3JELElBQUksSUFBSSxDQUFDLG1CQUFtQixLQUFLLENBQUMsRUFBRTtZQUNsQyxjQUFjLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUN2RTtRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztZQUN0QixJQUFJLEVBQUUsSUFBSSxJQUFJLGlCQUFpQixDQUFDLEtBQUs7WUFDckMsTUFBTSxFQUFFLGNBQWM7WUFDdEIsRUFBRSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxDQUFDO1lBQ2xDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7U0FDN0MsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOzs7OztJQUVELFlBQVksQ0FBQyxxQkFBOEI7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUM3RSxJQUFJLENBQUMsMkJBQTJCLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7Ozs7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUN6QyxRQUFRLEVBQUUsRUFBRTtZQUNaLFFBQVEsRUFBRSxFQUFFO1lBQ1osUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRixRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xGLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLEVBQUU7WUFDYixhQUFhLEVBQUUsRUFBRTtZQUNqQixPQUFPLEVBQUUsRUFBRTtZQUNYLFdBQVcsRUFBRSxFQUFFO1lBQ2YsR0FBRyxFQUFFLEVBQUU7U0FDUixFQUFFO1lBQ0QsU0FBUyxFQUFFLHVCQUF1QixDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7U0FDM0QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUM5QixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1lBQzlCLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWM7WUFDcEMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWTtZQUNsQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1lBQzlCLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDaEMsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYTtZQUN4QyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1lBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1lBQ3JDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUc7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7SUFFTyxlQUFlOztjQUNmLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUs7UUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQzs7Ozs7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxRQUF1QixFQUFFLEVBQUU7WUFDL0QsUUFBUSxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUNyQixLQUFLLGlCQUFpQixDQUFDLFNBQVM7b0JBQzlCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUM7b0JBQ3ZELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJO29CQUN6QixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN6QyxNQUFNO2FBQ1Q7UUFDSCxDQUFDLEVBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDOzs7OztJQUVPLFNBQVM7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDOzs7Ozs7SUFFTyxTQUFTLENBQUMsRUFBYTtRQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDOztjQUN6QyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSztRQUM1RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksbUJBQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQVksQ0FBQyxDQUFDO1FBQ25JLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvRCxDQUFDOzs7OztJQUVPLGNBQWM7UUFDcEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLEdBQUc7Ozs7UUFBQyxPQUFPLENBQUMsRUFBRTs7a0JBQ2hGLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNuRCxPQUFPLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxFQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsR0FBRzs7OztRQUFDLE9BQU8sQ0FBQyxFQUFFOztrQkFDOUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ25ELE9BQU8sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7Ozs7O0lBRU8sWUFBWSxDQUFDLFVBQXNCLEVBQUUsWUFBOEIsRUFBRSxRQUEwQjs7WUFDakcsSUFBSSxHQUFhLEVBQUU7UUFDdkIsVUFBVSxDQUFDLGNBQWMsQ0FBQyxPQUFPOzs7O1FBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDekQsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRTtnQkFDOUQsSUFBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQ3JEO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7OztJQUVPLDJCQUEyQixDQUFDLHdCQUFnQyxJQUFJO1FBQ3RFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0SCxDQUFDOzs7Ozs7SUFFTyxrQkFBa0IsQ0FBQyxPQUFlO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLGNBQWMsQ0FBQyxXQUFXLENBQUM7WUFDekIsT0FBTyxFQUFFLE9BQU87WUFDaEIsRUFBRSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxDQUFDO1lBQ2xDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxLQUFLO1NBQ3RELENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7OztJQUVPLHVCQUF1QixDQUFDLElBQWM7O2NBQ3RDLFlBQVksR0FBRyxjQUFjLENBQUMsZUFBZSxFQUFFLElBQUksSUFBSTtRQUM3RCxJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RixJQUFJLFlBQVksRUFBRTtZQUNoQixJQUFJLFlBQVksQ0FBQyxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxrQkFBa0IsSUFBSSxLQUFLLENBQUM7U0FDckU7UUFDRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsSUFBSTs7OztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDOzs7Ozs7SUFFTyxhQUFhLENBQUMsSUFBYTtRQUNqQyxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDaEU7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDMUU7SUFDSCxDQUFDOzs7OztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVM7OztRQUFDLEdBQUcsRUFBRTtZQUNoRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxFQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUzs7OztRQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1YsT0FBTzthQUNSO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBQSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQVksQ0FBQyxDQUFDO1FBQy9DLENBQUMsRUFBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVM7Ozs7UUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JFLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1YsT0FBTzthQUNSO1lBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzs7a0JBQ3ZELENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNwQztRQUNILENBQUMsRUFBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVM7Ozs7UUFBQyxLQUFLLENBQUMsRUFBRTtZQUNuRSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNWLE9BQU87YUFDUjtZQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7O2tCQUN2RCxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFOztzQkFDSixVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNO2dCQUN0RSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3hFO1FBQ0gsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OztZQWpWRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLGczYkFBdUM7O2FBRXhDOzs7OzBDQTBCSSxRQUFRLFlBQUksTUFBTSxTQUFDLGFBQWE7WUFsRG5DLFNBQVM7WUFQVCxVQUFVO1lBb0JKLGNBQWM7WUFWZCxXQUFXO1lBUVgsd0JBQXdCOzs7b0JBZTdCLEtBQUs7dUJBQ0wsS0FBSzs4QkFDTCxLQUFLOzs7O0lBRk4saUNBQXdCOztJQUN4QixvQ0FBMkI7O0lBQzNCLDJDQUFrQzs7Ozs7SUFDbEMsd0NBQTRDOzs7OztJQUM1Qyw0Q0FBbUM7Ozs7O0lBQ25DLDRDQUFtQzs7Ozs7SUFDbkMseUNBQW9DOzs7OztJQUNwQywrQ0FBcUM7O0lBQ3JDLHVDQUE4Qjs7SUFDOUIsNENBQTRDOztJQUM1Qyx3Q0FBOEI7O0lBQzlCLHlDQUErQjs7SUFDL0IsNkNBQW1DOztJQUNuQyx3Q0FBMkI7O0lBQzNCLHdDQUE4Qjs7SUFDOUIsd0NBQThCOztJQUM5Qix1Q0FBNkI7O0lBQzdCLG1DQUF5Qjs7SUFDekIsZ0RBQThDOztJQUM5QyxrQ0FBc0I7O0lBQ3RCLGlDQUFzQjs7SUFDdEIsK0NBQW1DOzs7OztJQUdqQyxtQ0FBMkQ7Ozs7O0lBQzNELG1DQUEwQjs7Ozs7SUFDMUIsZ0NBQXdCOzs7OztJQUN4QixvQ0FBZ0M7Ozs7O0lBQ2hDLHdDQUFpQzs7Ozs7SUFDakMsc0NBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0FwcFV0aWwsIENFUiwgQ3VycmVuY3ksIEZpbHRlciwgTGltaXRQcmljZSwgT2ZmZXJpbmdUeXBlRW51bSwgUHJvcGVydHlSYW5nZSwgUHJvcGVydHlUeXBlRW51bX0gZnJvbSAnQG1hcGxhbmRlci90eXBlcyc7XHJcbmltcG9ydCB7Q29uc3RhbnRzQ29tcG9uZW50c30gZnJvbSAnLi4vLi4vY29uc3RhbnRzQ29tcG9uZW50cyc7XHJcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHtGaWx0ZXJzQ2hhbmdlfSBmcm9tICcuLy4uLy4uL3V0aWxzL21vZGVscy9maWx0ZXJzLWNoYW5nZSc7XHJcbmltcG9ydCB7RmlsdGVyc1dyYXBwZXJ9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzZXMvZmlsdGVycy13cmFwcGVyJztcclxuaW1wb3J0IHtQcm9wZXJ0eVR5cGVJdGVtfSBmcm9tICcuLy4uLy4uL3V0aWxzL21vZGVscy9wcm9wZXJ0eS10eXBlLWl0ZW0nO1xyXG5pbXBvcnQge0N1cnJlbmN5Q29udmVydGVyU2VydmljZX0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9jdXJyZW5jeS1jb252ZXJ0ZXIvY3VycmVuY3ktY29udmVydGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ZpbHRlcnN9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMvZmlsdGVycyc7XHJcbmltcG9ydCB7RmlsdGVyc1NlcnZpY2V9IGZyb20gJy4vZmlsdGVycy5zZXJ2aWNlJztcclxuaW1wb3J0IHtGaWx0ZXJzQ2hhbmdlVHlwZX0gZnJvbSAnLi4vLi4vdXRpbHMvZW51bXMnO1xyXG5pbXBvcnQge0ZJTFRFUlNfVE9LRU59IGZyb20gJy4vdG9rZW4nO1xyXG5pbXBvcnQge01VdGlsc30gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3Nlcy9tVXRpbHMnO1xyXG5pbXBvcnQge0FtZW5pdHlJdGVtfSBmcm9tICcuLi8uLi91dGlscy9tb2RlbHMnO1xyXG5pbXBvcnQge0N1cnJlbmN5RmlsdGVyVmFsaWRhdG9yfSBmcm9tICcuLi9wcm9wZXJ0eS92YWxpZGF0b3JzL2N1cnJlbmN5LWZpbHRlci12YWxpZGF0b3InO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZmlsdGVycycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlcnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEZpbHRlcnMge1xyXG4gIEBJbnB1dCgpIHV0aWxzOiBBcHBVdGlsO1xyXG4gIEBJbnB1dCgpIGhpZGVSb29tOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhpZGVSZXNpZGVudGlhbDogYm9vbGVhbjtcclxuICBwcml2YXRlIHJlYWRvbmx5IE1FVEVSU19UT19TUSA9IDEwLjc2MzkxMDQyO1xyXG4gIHByaXZhdGUgX3RtcE1pblByaWNlTGlzdDogbnVtYmVyW107XHJcbiAgcHJpdmF0ZSBfdG1wTWF4UHJpY2VMaXN0OiBudW1iZXJbXTtcclxuICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIF9pc1NoYXJlZFByb3BlcnRpZXM6IGJvb2xlYW47XHJcbiAgcHVibGljIGZpbHRlcnNGb3JtOiBGb3JtR3JvdXA7XHJcbiAgcHVibGljIHByb3BlcnR5VHlwZUxpc3Q6IFByb3BlcnR5VHlwZUl0ZW1bXTtcclxuICBwdWJsaWMgYmVkcm9vbXNMaXN0OiBudW1iZXJbXTtcclxuICBwdWJsaWMgYmF0aHJvb21zTGlzdDogbnVtYmVyW107XHJcbiAgcHVibGljIHBhcmtpbmdQbGFjZXNMaXN0OiBudW1iZXJbXTtcclxuICBwdWJsaWMgY3VycmVuY3lMaXN0OiBDRVJbXTtcclxuICBwdWJsaWMgbWluUHJpY2VMaXN0OiBudW1iZXJbXTtcclxuICBwdWJsaWMgbWF4UHJpY2VMaXN0OiBudW1iZXJbXTtcclxuICBwdWJsaWMgc3VyZmFjZUxpc3Q6IG51bWJlcltdO1xyXG4gIHB1YmxpYyByb2lMaXN0OiBudW1iZXJbXTtcclxuICBwdWJsaWMgcHJvcGVydHlUeXBlU2VsZWN0ZWQ6IFByb3BlcnR5VHlwZUl0ZW07XHJcbiAgcHVibGljIGZpbHRlcjogRmlsdGVyO1xyXG4gIHB1YmxpYyBpc09QSTogYm9vbGVhbjtcclxuICBwdWJsaWMgc3VyZmFjZVVuaXRTZWxlY3RlZDogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRklMVEVSU19UT0tFTikgcHJpdmF0ZSBfY29uZmlnOiBib29sZWFuLFxyXG4gICAgcHJpdmF0ZSBfcmVuZGVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIF9yZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBGaWx0ZXJzU2VydmljZSxcclxuICAgIHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgX2NvbnZlcnRlcjogQ3VycmVuY3lDb252ZXJ0ZXJTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmlzT1BJID0gdGhpcy5fY29uZmlnIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gICAgY29uc3QgaXRlbXMgPSBbXTtcclxuICAgIENvbnN0YW50c0NvbXBvbmVudHMuUHJvcGVydHlUeXBlTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGlmICgodGhpcy5oaWRlUm9vbSAmJiBpdGVtLnZhbHVlICE9PSBQcm9wZXJ0eVR5cGVFbnVtLlJPT00pIHx8XHJcbiAgICAgICAgKHRoaXMuaGlkZVJlc2lkZW50aWFsICYmIGl0ZW0udmFsdWUgIT09IFByb3BlcnR5VHlwZUVudW0uUkVTSURFTlRJQUwpKSB7XHJcbiAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnByb3BlcnR5VHlwZUxpc3QgPSBpdGVtcztcclxuICAgIHRoaXMuYmVkcm9vbXNMaXN0ID0gT2JqZWN0LmFzc2lnbihbXSwgQ29uc3RhbnRzQ29tcG9uZW50cy5CZWRyb29tTGlzdCk7XHJcbiAgICB0aGlzLmJhdGhyb29tc0xpc3QgPSBPYmplY3QuYXNzaWduKFtdLCBDb25zdGFudHNDb21wb25lbnRzLkJhdGhyb29tTGlzdCk7XHJcbiAgICB0aGlzLnBhcmtpbmdQbGFjZXNMaXN0ID0gT2JqZWN0LmFzc2lnbihbXSwgQ29uc3RhbnRzQ29tcG9uZW50cy5QYXJraW5nU3BhY2VzTGlzdCk7XHJcbiAgICB0aGlzLnN1cmZhY2VMaXN0ID0gT2JqZWN0LmFzc2lnbihbXSwgQ29uc3RhbnRzQ29tcG9uZW50cy5TdXJmYWNlTGlzdCk7XHJcbiAgICB0aGlzLnJvaUxpc3QgPSBPYmplY3QuYXNzaWduKFtdLCBDb25zdGFudHNDb21wb25lbnRzLlJPSUxpc3QpO1xyXG4gICAgdGhpcy5zdXJmYWNlVW5pdFNlbGVjdGVkID0gMDtcclxuICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgICB0aGlzLmluaXRDb21wb25lbnRCeVByb3BlcnR5VHlwZSgpO1xyXG4gICAgdGhpcy5yZXN0b3JlTGFzdEZpbHRlcnNTYXZlZCh0cnVlKTtcclxuICAgIHRoaXMubGlzdGVuQ2hhbmdlc09uRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLm9wZW5Db21wb25lbnQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnV0aWxzKSB7XHJcbiAgICAgIHJldHVybiBjb25zb2xlLndhcm4oJ1tGaWx0ZXJzQ29tcG9uZW50XSB1dGlscyBwYXJhbSBpcyByZXF1aXJlZCcpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbml0Q29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sndXRpbHMnXSAmJiBjaGFuZ2VzWyd1dGlscyddLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnW0ZpbHRlcnNDb21wb25lbnRdIHV0aWxzIHJlYWR5Jyk7XHJcbiAgICAgIHRoaXMuaW5pdENvbXBvbmVudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG9wZW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlc3RvcmVMYXN0RmlsdGVyc1NhdmVkKCk7XHJcbiAgICB0aGlzLm9wZW5Db21wb25lbnQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMub3BlbkNvbXBvbmVudChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VQcm9wZXJ0eVR5cGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5yZXNldEZpbHRlcnMoaW5kZXgpO1xyXG4gICAgdGhpcy5hcHBseUFtZW5pdGllcygpO1xyXG4gICAgdGhpcy5maWx0ZXIudHlwZSA9IHRoaXMucHJvcGVydHlUeXBlU2VsZWN0ZWQudmFsdWU7XHJcbiAgICBzd2l0Y2ggKHRoaXMucHJvcGVydHlUeXBlU2VsZWN0ZWQudmFsdWUpIHtcclxuICAgICAgY2FzZSBQcm9wZXJ0eVR5cGVFbnVtLlJPT006XHJcbiAgICAgICAgdGhpcy5maWx0ZXJzRm9ybS5jb250cm9sc1snb2ZmZXJpbmcnXS5zZXRWYWx1ZShPZmZlcmluZ1R5cGVFbnVtLlJFTlQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByb3BlcnR5VHlwZUVudW0uSU5WRVNUTUVOVDpcclxuICAgICAgICB0aGlzLmZpbHRlcnNGb3JtLmNvbnRyb2xzWydvZmZlcmluZyddLnNldFZhbHVlKE9mZmVyaW5nVHlwZUVudW0uU0FMRSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VPZmZlcmluZyhldjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbHRlci5vZmZlcmluZyA9IGV2IGFzIE9mZmVyaW5nVHlwZUVudW07XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VDdXJyZW5jeShldjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbHRlci5jdXJyZW5jeSA9IGV2O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQW1lbml0eShhbWVuaXR5OiBBbWVuaXR5SXRlbSk6IHZvaWQge1xyXG4gICAgaWYgKGFtZW5pdHkuY2hlY2tlZCkge1xyXG4gICAgICBjb25zdCBpID0gdGhpcy5maWx0ZXIuZXh0cmFzLmluZGV4T2YoYW1lbml0eS52YWx1ZSk7XHJcbiAgICAgIGlmIChpID4gLTEpIHtcclxuICAgICAgICB0aGlzLmZpbHRlci5leHRyYXMuc3BsaWNlKGksIDEpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlci5leHRyYXMucHVzaChhbWVuaXR5LnZhbHVlKTtcclxuICAgIH1cclxuICAgIGFtZW5pdHkuY2hlY2tlZCA9ICFhbWVuaXR5LmNoZWNrZWQ7XHJcbiAgfVxyXG5cclxuICBzYXZlU2VhcmNoQnlGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5hcHBseUZpbHRlcnMoRmlsdGVyc0NoYW5nZVR5cGUuU0FWRSk7XHJcbiAgfVxyXG5cclxuICBhcHBseUZpbHRlcnModHlwZT86IEZpbHRlcnNDaGFuZ2VUeXBlKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEZpbHRlckJ5Rm9ybSgpO1xyXG4gICAgY29uc3QgZmlsdGVyVG9TZWFyY2ggPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmZpbHRlcik7XHJcbiAgICBpZiAodGhpcy5zdXJmYWNlVW5pdFNlbGVjdGVkID09PSAxKSB7XHJcbiAgICAgIGZpbHRlclRvU2VhcmNoLm1haW5BcmVhID0gZmlsdGVyVG9TZWFyY2gubWFpbkFyZWEgKiB0aGlzLk1FVEVSU19UT19TUTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlRmlsdGVyc1NhdmVkKGZpbHRlclRvU2VhcmNoKTtcclxuICAgIHRoaXMuX3NlcnZpY2Uuc2V0Q2hhbmdlKHtcclxuICAgICAgdHlwZTogdHlwZSB8fCBGaWx0ZXJzQ2hhbmdlVHlwZS5BUFBMWSxcclxuICAgICAgZmlsdGVyOiBmaWx0ZXJUb1NlYXJjaCxcclxuICAgICAgZnQ6IHRoaXMuc3VyZmFjZVVuaXRTZWxlY3RlZCA9PT0gMSxcclxuICAgICAgaXNTaGFyZWRQcm9wZXJ0aWVzOiB0aGlzLl9pc1NoYXJlZFByb3BlcnRpZXNcclxuICAgIH0pO1xyXG4gICAgdGhpcy5vcGVuQ29tcG9uZW50KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHJlc2V0RmlsdGVycyhwcm9wZXJ0eVR5cGVJdGVtSW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyLmN1cnJlbmN5ID0gIXByb3BlcnR5VHlwZUl0ZW1JbmRleCA/ICdNWE4nIDogdGhpcy5maWx0ZXIuY3VycmVuY3k7XHJcbiAgICB0aGlzLmluaXRDb21wb25lbnRCeVByb3BlcnR5VHlwZShwcm9wZXJ0eVR5cGVJdGVtSW5kZXgpO1xyXG4gICAgdGhpcy5zdXJmYWNlVW5pdFNlbGVjdGVkID0gMDtcclxuICAgIHRoaXMuZmlsdGVyID0gcHJvcGVydHlUeXBlSXRlbUluZGV4ID8gVXRpbHMuZ2V0RmlsdGVyQnlQcm9wZXJ0eVR5cGUodGhpcy5maWx0ZXIpIDogVXRpbHMuZ2V0SW5pdGlhbEZpbHRlcih0aGlzLmlzT1BJLCB0aGlzLmZpbHRlcik7XHJcbiAgICB0aGlzLnVwZGF0ZUZvcm1CeUZpbHRlcnMoKTtcclxuICAgIHRoaXMuc2V0UHJpY2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyc0Zvcm0gPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIG9mZmVyaW5nOiBbXSxcclxuICAgICAgY3VycmVuY3k6IFtdLFxyXG4gICAgICBtaW5QcmljZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKG5ldyBSZWdFeHAoJyheWzAtOV0rKScpKV1dLFxyXG4gICAgICBtYXhQcmljZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKG5ldyBSZWdFeHAoJyheWzAtOV0rKScpKV1dLFxyXG4gICAgICBiZWRyb29tczogW10sXHJcbiAgICAgIGJhdGhyb29tczogW10sXHJcbiAgICAgIHBhcmtpbmdQbGFjZXM6IFtdLFxyXG4gICAgICBzdXJmYWNlOiBbXSxcclxuICAgICAgc3VyZmFjZVVuaXQ6IFtdLFxyXG4gICAgICByb2k6IFtdXHJcbiAgICB9LCB7XHJcbiAgICAgIHZhbGlkYXRvcjogQ3VycmVuY3lGaWx0ZXJWYWxpZGF0b3IoJ21pblByaWNlJywgJ21heFByaWNlJylcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVGb3JtQnlGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJzRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgb2ZmZXJpbmc6IHRoaXMuZmlsdGVyLm9mZmVyaW5nLFxyXG4gICAgICBjdXJyZW5jeTogdGhpcy5maWx0ZXIuY3VycmVuY3ksXHJcbiAgICAgIG1pblByaWNlOiB0aGlzLmZpbHRlci5kb3duTGltaXRQcmljZSxcclxuICAgICAgbWF4UHJpY2U6IHRoaXMuZmlsdGVyLnVwTGltaXRQcmljZSxcclxuICAgICAgYmVkcm9vbXM6IHRoaXMuZmlsdGVyLmJlZHJvb21zLFxyXG4gICAgICBiYXRocm9vbXM6IHRoaXMuZmlsdGVyLmJhdGhyb29tcyxcclxuICAgICAgcGFya2luZ1BsYWNlczogdGhpcy5maWx0ZXIucGFya2luZ1BsYWNlcyxcclxuICAgICAgc3VyZmFjZTogdGhpcy5maWx0ZXIubWFpbkFyZWEsXHJcbiAgICAgIHN1cmZhY2VVbml0OiB0aGlzLnN1cmZhY2VVbml0U2VsZWN0ZWQsXHJcbiAgICAgIHJvaTogdGhpcy5maWx0ZXIucm9pXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RmlsdGVyQnlGb3JtKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZmlsdGVyc0Zvcm0udmFsdWU7XHJcbiAgICB0aGlzLmZpbHRlci5vZmZlcmluZyA9IGRhdGEub2ZmZXJpbmc7XHJcbiAgICB0aGlzLmZpbHRlci5jdXJyZW5jeSA9IGRhdGEuY3VycmVuY3k7XHJcbiAgICB0aGlzLmZpbHRlci5kb3duTGltaXRQcmljZSA9IE51bWJlcihkYXRhLm1pblByaWNlKTtcclxuICAgIHRoaXMuZmlsdGVyLnVwTGltaXRQcmljZSA9IE51bWJlcihkYXRhLm1heFByaWNlKTtcclxuICAgIHRoaXMuZmlsdGVyLmJlZHJvb21zID0gTnVtYmVyKGRhdGEuYmVkcm9vbXMpO1xyXG4gICAgdGhpcy5maWx0ZXIuYmF0aHJvb21zID0gTnVtYmVyKGRhdGEuYmF0aHJvb21zKTtcclxuICAgIHRoaXMuZmlsdGVyLnBhcmtpbmdQbGFjZXMgPSBOdW1iZXIoZGF0YS5wYXJraW5nUGxhY2VzKTtcclxuICAgIHRoaXMuZmlsdGVyLm1haW5BcmVhID0gTnVtYmVyKGRhdGEuc3VyZmFjZSk7XHJcbiAgICB0aGlzLnN1cmZhY2VVbml0U2VsZWN0ZWQgPSBOdW1iZXIoZGF0YS5zdXJmYWNlVW5pdCk7XHJcbiAgICB0aGlzLmZpbHRlci5yb2kgPSBOdW1iZXIoZGF0YS5yb2kpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0Q29tcG9uZW50KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0VXRpbHMoKTtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMuX3NlcnZpY2UuZ2V0Q2hhbmdlcygpLnN1YnNjcmliZSgocmVzcG9uc2U6IEZpbHRlcnNDaGFuZ2UpID0+IHtcclxuICAgICAgICBzd2l0Y2ggKHJlc3BvbnNlLnR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgRmlsdGVyc0NoYW5nZVR5cGUuTElTVF9UWVBFOlxyXG4gICAgICAgICAgICB0aGlzLl9pc1NoYXJlZFByb3BlcnRpZXMgPSByZXNwb25zZS5pc1NoYXJlZFByb3BlcnRpZXM7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmlsdGVyc1NhdmVkKHJlc3BvbnNlLmZpbHRlcik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBGaWx0ZXJzQ2hhbmdlVHlwZS5BUkVBOlxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcnNTYXZlZChyZXNwb25zZS5maWx0ZXIpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5fc2VydmljZS5zdGFydENvbXBvbmVudChuZXcgRmlsdGVyc1dyYXBwZXIodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0VXRpbHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmN1cnJlbmN5TGlzdCA9IHRoaXMudXRpbHMuY2VycztcclxuICAgIHRoaXMuc2V0UHJpY2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFByaWNlcyh0bz86IEN1cnJlbmN5KTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbHRlcnNGb3JtLmNvbnRyb2xzWydtaW5QcmljZSddLnJlc2V0KDApO1xyXG4gICAgdGhpcy5maWx0ZXJzRm9ybS5jb250cm9sc1snbWF4UHJpY2UnXS5yZXNldCgwKTtcclxuICAgIGNvbnN0IG9mZmVyaW5nID0gdGhpcy5maWx0ZXJzRm9ybS5jb250cm9sc1snb2ZmZXJpbmcnXS52YWx1ZTtcclxuICAgIHRoaXMubWluUHJpY2VMaXN0ID0gdGhpcy5jcmVhdGVQcmljZXModGhpcy51dGlscy5saW1pdFByaWNlLCB0aGlzLnByb3BlcnR5VHlwZVNlbGVjdGVkLnZhbHVlLCBvZmZlcmluZyk7XHJcbiAgICB0aGlzLm1pblByaWNlTGlzdCA9IHRoaXMuX2NvbnZlcnRlci5saXN0KHRoaXMubWluUHJpY2VMaXN0LCB0aGlzLnV0aWxzLmNlcnMsIEN1cnJlbmN5LlVTRCwgdG8gfHwgdGhpcy5maWx0ZXIuY3VycmVuY3kgYXMgQ3VycmVuY3kpO1xyXG4gICAgdGhpcy5tYXhQcmljZUxpc3QgPSBPYmplY3QuYXNzaWduKFtdLCB0aGlzLm1pblByaWNlTGlzdCk7XHJcbiAgICB0aGlzLl90bXBNaW5QcmljZUxpc3QgPSBPYmplY3QuYXNzaWduKFtdLCB0aGlzLm1pblByaWNlTGlzdCk7XHJcbiAgICB0aGlzLl90bXBNYXhQcmljZUxpc3QgPSBPYmplY3QuYXNzaWduKFtdLCB0aGlzLm1heFByaWNlTGlzdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5QW1lbml0aWVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wZXJ0eVR5cGVTZWxlY3RlZC5hbWVuaXRpZXMgPSB0aGlzLnByb3BlcnR5VHlwZVNlbGVjdGVkLmFtZW5pdGllcy5tYXAoYW1lbml0eSA9PiB7XHJcbiAgICAgIGNvbnN0IGkgPSB0aGlzLmZpbHRlci5leHRyYXMuaW5kZXhPZihhbWVuaXR5LnZhbHVlKTtcclxuICAgICAgYW1lbml0eS5jaGVja2VkID0gKGkgPiAtMSk7XHJcbiAgICAgIHJldHVybiBhbWVuaXR5O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnByb3BlcnR5VHlwZVNlbGVjdGVkLmZlYXR1cmVzID0gdGhpcy5wcm9wZXJ0eVR5cGVTZWxlY3RlZC5mZWF0dXJlcy5tYXAoYW1lbml0eSA9PiB7XHJcbiAgICAgIGNvbnN0IGkgPSB0aGlzLmZpbHRlci5leHRyYXMuaW5kZXhPZihhbWVuaXR5LnZhbHVlKTtcclxuICAgICAgYW1lbml0eS5jaGVja2VkID0gKGkgPiAtMSk7XHJcbiAgICAgIHJldHVybiBhbWVuaXR5O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVByaWNlcyhsaW1pdFByaWNlOiBMaW1pdFByaWNlLCBwcm9wZXJ0eVR5cGU6IFByb3BlcnR5VHlwZUVudW0sIG9mZmVyaW5nOiBPZmZlcmluZ1R5cGVFbnVtKTogbnVtYmVyW10ge1xyXG4gICAgbGV0IGxpc3Q6IG51bWJlcltdID0gW107XHJcbiAgICBsaW1pdFByaWNlLnByb3BlcnR5UmFuZ2VzLmZvckVhY2goKHJhbmdlOiBQcm9wZXJ0eVJhbmdlKSA9PiB7XHJcbiAgICAgIGlmIChyYW5nZS5vZmZlcmluZyA9PT0gb2ZmZXJpbmcgJiYgcmFuZ2UudHlwZSA9PT0gcHJvcGVydHlUeXBlKSB7XHJcbiAgICAgICAgbGlzdCA9IE1VdGlscy5saW5TcGFjZUV4cChyYW5nZS5taW4sIHJhbmdlLm1heCwgMjApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBsaXN0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0Q29tcG9uZW50QnlQcm9wZXJ0eVR5cGUocHJvcGVydHlUeXBlSXRlbUluZGV4OiBudW1iZXIgPSBudWxsKTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BlcnR5VHlwZVNlbGVjdGVkID0gSlNPTi5wYXJzZShcclxuICAgICAgSlNPTi5zdHJpbmdpZnkoQ29uc3RhbnRzQ29tcG9uZW50cy5Qcm9wZXJ0eVR5cGVMaXN0W3Byb3BlcnR5VHlwZUl0ZW1JbmRleCAhPT0gbnVsbCA/IHByb3BlcnR5VHlwZUl0ZW1JbmRleCA6IDldKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUZpbHRlcnNTYXZlZChmaWx0ZXJzOiBGaWx0ZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyID0gZmlsdGVycztcclxuICAgIEZpbHRlcnNTZXJ2aWNlLnNhdmVGaWx0ZXJzKHtcclxuICAgICAgZmlsdGVyczogZmlsdGVycyxcclxuICAgICAgZnQ6IHRoaXMuc3VyZmFjZVVuaXRTZWxlY3RlZCA9PT0gMSxcclxuICAgICAgaXNTaGFyZWRQcm9wZXJ0aWVzOiB0aGlzLl9pc1NoYXJlZFByb3BlcnRpZXMgfHwgZmFsc2VcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXN0b3JlTGFzdEZpbHRlcnNTYXZlZChpbml0PzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgY29uc3QgZmlsdGVyc1NhdmVkID0gRmlsdGVyc1NlcnZpY2UuZ2V0RmlsdGVyc1NhdmVkKCkgfHwgbnVsbDtcclxuICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyc1NhdmVkID8gZmlsdGVyc1NhdmVkLmZpbHRlcnMgOiBVdGlscy5nZXRJbml0aWFsRmlsdGVyKHRoaXMuaXNPUEkpO1xyXG4gICAgaWYgKGZpbHRlcnNTYXZlZCkge1xyXG4gICAgICBpZiAoZmlsdGVyc1NhdmVkLmZ0KSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXIubWFpbkFyZWEgPSBOdW1iZXIoKHRoaXMuZmlsdGVyLm1haW5BcmVhIC8gdGhpcy5NRVRFUlNfVE9fU1EpLnRvRml4ZWQoMCkpO1xyXG4gICAgICAgIHRoaXMuc3VyZmFjZVVuaXRTZWxlY3RlZCA9IGZpbHRlcnNTYXZlZC5mdCA/IDEgOiAwO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX2lzU2hhcmVkUHJvcGVydGllcyA9IGZpbHRlcnNTYXZlZC5pc1NoYXJlZFByb3BlcnRpZXMgfHwgZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLnByb3BlcnR5VHlwZVNlbGVjdGVkID0gQ29uc3RhbnRzQ29tcG9uZW50cy5Qcm9wZXJ0eVR5cGVMaXN0LmZpbmQoaXRlbSA9PiBpdGVtLnZhbHVlID09PSB0aGlzLmZpbHRlci50eXBlKTtcclxuICAgIHRoaXMuYXBwbHlBbWVuaXRpZXMoKTtcclxuICAgIHRoaXMudXBkYXRlRm9ybUJ5RmlsdGVycygpO1xyXG4gICAgaWYgKGluaXQpIHtcclxuICAgICAgdGhpcy5hcHBseUZpbHRlcnMoRmlsdGVyc0NoYW5nZVR5cGUuSU5JVCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9wZW5Db21wb25lbnQob3BlbjogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKG9wZW4pIHtcclxuICAgICAgdGhpcy5fcmVuZGVyLnNldFN0eWxlKHRoaXMuX3JlZi5uYXRpdmVFbGVtZW50LCAndmlzaWJpbGl0eScsICd2aXNpYmxlJyk7XHJcbiAgICAgIHRoaXMuX3JlbmRlci5zZXRTdHlsZSh0aGlzLl9yZWYubmF0aXZlRWxlbWVudCwgJ29wYWNpdHknLCAnMScpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fcmVuZGVyLnNldFN0eWxlKHRoaXMuX3JlZi5uYXRpdmVFbGVtZW50LCAnb3BhY2l0eScsICcwJyk7XHJcbiAgICAgIHRoaXMuX3JlbmRlci5zZXRTdHlsZSh0aGlzLl9yZWYubmF0aXZlRWxlbWVudCwgJ3Zpc2liaWxpdHknLCAnY29sbGFwc2UnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGlzdGVuQ2hhbmdlc09uRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMuZmlsdGVyc0Zvcm0uY29udHJvbHNbJ29mZmVyaW5nJ10udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRQcmljZXMoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLmZpbHRlcnNGb3JtLmNvbnRyb2xzWydjdXJyZW5jeSddLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXRQcmljZXModmFsdWUudG9TdHJpbmcoKSBhcyBDdXJyZW5jeSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgdGhpcy5maWx0ZXJzRm9ybS5jb250cm9sc1snbWluUHJpY2UnXS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tYXhQcmljZUxpc3QgPSBPYmplY3QuYXNzaWduKFtdLCB0aGlzLl90bXBNYXhQcmljZUxpc3QpO1xyXG4gICAgICAgIGNvbnN0IGkgPSB0aGlzLm1pblByaWNlTGlzdC5pbmRleE9mKHZhbHVlKTtcclxuICAgICAgICBpZiAoaSA+IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLm1heFByaWNlTGlzdC5zcGxpY2UoMCwgaSArIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLmZpbHRlcnNGb3JtLmNvbnRyb2xzWydtYXhQcmljZSddLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5taW5QcmljZUxpc3QgPSBPYmplY3QuYXNzaWduKFtdLCB0aGlzLl90bXBNaW5QcmljZUxpc3QpO1xyXG4gICAgICAgIGNvbnN0IGkgPSB0aGlzLm1heFByaWNlTGlzdC5pbmRleE9mKHZhbHVlKTtcclxuICAgICAgICBpZiAoaSA+IC0xKSB7XHJcbiAgICAgICAgICBjb25zdCBkaWZmZXJlbmNlID0gdGhpcy5taW5QcmljZUxpc3QubGVuZ3RoIC0gdGhpcy5tYXhQcmljZUxpc3QubGVuZ3RoO1xyXG4gICAgICAgICAgdGhpcy5taW5QcmljZUxpc3Quc3BsaWNlKGkgKyBkaWZmZXJlbmNlLCB0aGlzLm1pblByaWNlTGlzdC5sZW5ndGggLSAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -204,6 +204,9 @@ ConstantsComponents.LandUseList = [
204
204
  {
205
205
  name: 'Agrícola',
206
206
  value: LandUseEnum.AGRICULTURAL
207
+ }, {
208
+ name: 'No especificado',
209
+ value: LandUseEnum.OTHER
207
210
  }
208
211
  ];
209
212
  ConstantsComponents.AnnounceCheckList = [
@@ -561,4 +564,4 @@ if (false) {
561
564
  /** @type {?} */
562
565
  ConstantsComponents.PropertyStatusList;
563
566
  }
564
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzQ29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtYXBsYW5kZXIvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHNDb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUVoSCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFJdkQsTUFBTSxPQUFPLG1CQUFtQjs7QUFDdkIsNkJBQVMsR0FBa0I7SUFDaEMsVUFBVSxFQUFFO1FBQ1YsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsV0FBVyxDQUFDLFVBQVU7UUFDaEMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxVQUFVO1FBQzdCLElBQUksRUFBRSxTQUFTO0tBQ2hCO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsV0FBVyxDQUFDLFdBQVc7UUFDakMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXO1FBQzlCLElBQUksRUFBRSxpQkFBaUI7S0FDeEI7SUFDRCxrQkFBa0IsRUFBRTtRQUNsQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxXQUFXLENBQUMsa0JBQWtCO1FBQ3hDLEtBQUssRUFBRSxXQUFXLENBQUMsa0JBQWtCO1FBQ3JDLElBQUksRUFBRSw0QkFBNEI7S0FDbkM7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxXQUFXLENBQUMsZ0JBQWdCO1FBQ3RDLEtBQUssRUFBRSxXQUFXLENBQUMsZ0JBQWdCO1FBQ25DLElBQUksRUFBRSxvQkFBb0I7S0FDM0I7SUFDRCxXQUFXLEVBQUUsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMs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SUFDRixtQ0FHRTs7SUFDRix5Q0FFRTs7SUFDRixnQ0F5Q0U7O0lBQ0Ysc0NBMEJFOztJQUNGLGtDQTZERTs7SUFDRixnQ0FFRTs7SUFDRixpQ0FFRTs7SUFDRixzQ0FFRTs7SUFDRixnQ0FFRTs7SUFDRiw0QkFFRTs7SUFDRixxQ0ErTEU7O0lBQ0YscUNBU0U7O0lBQ0YsK0JBT0U7O0lBQ0YsdUNBTUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xhbmRVc2VFbnVtLCBPZmZlcmluZ1R5cGVFbnVtLCBQRmlsZVR5cGVFbnVtLCBQcm9wZXJ0eVR5cGVFbnVtLCBTdGF0dXNUeXBlRW51bX0gZnJvbSAnQG1hcGxhbmRlci90eXBlcyc7XHJcbmltcG9ydCB7QW1lbml0aWVzTGlzdH0gZnJvbSAnLi91dGlscy9tb2RlbHMvYW1lbml0aWVzLWxpc3QnO1xyXG5pbXBvcnQge0FtZW5pdHlOYW1lfSBmcm9tICcuL3V0aWxzL2VudW1zL2FtZW5pdHktbmFtZSc7XHJcbmltcG9ydCB7UHJvcGVydHlUeXBlSXRlbX0gZnJvbSAnLi91dGlscy9tb2RlbHMvcHJvcGVydHktdHlwZS1pdGVtJztcclxuaW1wb3J0IHtQcm9wZXJ0eVN0YXR1c0l0ZW19IGZyb20gJy4vdXRpbHMvbW9kZWxzL3Byb3BlcnR5U3RhdHVzSXRlbSc7XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uc3RhbnRzQ29tcG9uZW50cyB7XHJcbiAgc3RhdGljIEFtZW5pdGllczogQW1lbml0aWVzTGlzdCA9IHtcclxuICAgIHJvb2ZHYXJkZW46IHtcclxuICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIGljb25OYW1lOiBBbWVuaXR5TmFtZS5Sb29mR2FyZGVuLFxyXG4gICAgICB2YWx1ZTogQW1lbml0eU5hbWUuUm9vZkdhcmRlbixcclxuICAgICAgbmFtZTogJ1RlcnJhemEnXHJcbiAgICB9LFxyXG4gICAgcGV0RnJpZW5kbHk6IHtcclxuICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIGljb25OYW1lOiBBbWVuaXR5TmFtZS5QZXRGcmllbmRseSxcclxuICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLlBldEZyaWVuZGx5LFxyXG4gICAgICBuYW1lOiAnQWNlcHRhIE1hc2NvdGFzJ1xyXG4gICAgfSxcclxuICAgIGRpZmZlcmVudEFiaWxpdGllczoge1xyXG4gICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkRpZmZlcmVudEFiaWxpdGllcyxcclxuICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLkRpZmZlcmVudEFiaWxpdGllcyxcclxuICAgICAgbmFtZTogJ0NvbiBjYXBhY2lkYWRlcyBkaWZlcmVudGVzJ1xyXG4gICAgfSxcclxuICAgIGFkamFjZW50Q29tbWVyY2U6IHtcclxuICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIGljb25OYW1lOiBBbWVuaXR5TmFtZS5BZGphY2VudENvbW1lcmNlLFxyXG4gICAgICB2YWx1ZTogQW1lbml0eU5hbWUuQWRqYWNlbnRDb21tZXJjZSxcclxuICAgICAgbmFtZTogJ0NvbWVyY2lvIGFkeWFjZW50ZSdcclxuICAgIH0sXHJcbiAgICBhZGphY2VudEd5bToge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuR3ltLCB2YWx1ZTogQW1lbml0eU5hbWUuQWRqYWNlbnRHeW0sIG5hbWU6ICdHeW0gYWR5YWNlbnRlJ30sXHJcbiAgICBhZGphY2VudFBpY25pYzoge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuQWRqYWNlbnRQaWNuaWMsIHZhbHVlOiBBbWVuaXR5TmFtZS5BZGphY2VudFBpY25pYywgbmFtZTogJ01lcmVuZGVybyBhZHlhY2VudGUnfSxcclxuICAgIGFpckNvbmRpdGlvbmVyOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5BaXJDb25kaXRpb25lciwgdmFsdWU6IEFtZW5pdHlOYW1lLkFpckNvbmRpdGlvbmVyLCBuYW1lOiAnQWlyZSBhY29uZGljaW9uYWRvJ30sXHJcbiAgICBiYWxjb255OiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5CYWxjb255LCB2YWx1ZTogQW1lbml0eU5hbWUuQmFsY29ueSwgbmFtZTogJ0JhbGPDs24nfSxcclxuICAgIGN1c3RvbWVyUGFya2luZzoge1xyXG4gICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkN1c3RvbWVyUGFya2luZyxcclxuICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLkN1c3RvbWVyUGFya2luZyxcclxuICAgICAgbmFtZTogJ0VzdGFjaW9uYW1pZW50byBwYXJhIGNsaWVudGVzJ1xyXG4gICAgfSxcclxuICAgIGRpbmluZ1Jvb206IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkRpbmluZ1Jvb20sIHZhbHVlOiBBbWVuaXR5TmFtZS5EaW5pbmdSb29tLCBuYW1lOiAnQ29tZWRvcid9LFxyXG4gICAgZG91YmxlSGVpZ2h0OiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5Eb3VibGVIZWlnaHQsIHZhbHVlOiBBbWVuaXR5TmFtZS5Eb3VibGVIZWlnaHQsIG5hbWU6ICdEb2JsZSBhbHR1cmEnfSxcclxuICAgIGRyZXNzaW5nUm9vbXM6IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkRyZXNzaW5nUm9vbXMsIHZhbHVlOiBBbWVuaXR5TmFtZS5EcmVzc2luZ1Jvb21zLCBuYW1lOiAnQ29uIHZlc3RpZG9yZXMnfSxcclxuICAgIGZhY2luZ1N0cmVldDoge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuRmFjaW5nU3RyZWV0LCB2YWx1ZTogQW1lbml0eU5hbWUuRmFjaW5nU3RyZWV0LCBuYW1lOiAnRnJlbnRlIGEgY2FsbGUnfSxcclxuICAgIGZpbmlzaGluZ3M6IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkZpbmlzaGluZ3MsIHZhbHVlOiBBbWVuaXR5TmFtZS5GaW5pc2hpbmdzLCBuYW1lOiAnQ29uIGFjYWJhZG9zJ30sXHJcbiAgICBmdXJuaXNoZWQ6IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkZ1cm5pc2hlZCwgdmFsdWU6IEFtZW5pdHlOYW1lLkZ1cm5pc2hlZCwgbmFtZTogJ0FtdWVibGFkYSd9LFxyXG4gICAgZ2FyZGVuOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5HYXJkZW4sIHZhbHVlOiBBbWVuaXR5TmFtZS5HYXJkZW4sIG5hbWU6ICdKYXJkw61uJ30sXHJcbiAgICBneW06IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkd5bSwgdmFsdWU6IEFtZW5pdHlOYW1lLkd5bSwgbmFtZTogJ0d5bSd9LFxyXG4gICAgaGlnaFJlc2lzdGFuY2VGbG9vcnM6IHtcclxuICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIGljb25OYW1lOiBBbWVuaXR5TmFtZS5IaWdoUmVzaXN0YW5jZUZsb29ycyxcclxuICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLkhpZ2hSZXNpc3RhbmNlRmxvb3JzLFxyXG4gICAgICBuYW1lOiAnUGlzb3MgZGUgYWx0YSByZXNpc3RlbmNpYSdcclxuICAgIH0sXHJcbiAgICBoaWdoU3BlZWRJbnRlcm5ldDoge1xyXG4gICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkhpZ2hTcGVlZEludGVybmV0LFxyXG4gICAgICB2YWx1ZTogQW1lbml0eU5hbWUuSGlnaFNwZWVkSW50ZXJuZXQsXHJcbiAgICAgIG5hbWU6ICdJbnRlcm5ldCBkZSBhbHRhIHZlbG9jaWRhZCdcclxuICAgIH0sXHJcbiAgICBpbkNvbW1lcmNpYWxBcmVhOiB7XHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBpY29uTmFtZTogQW1lbml0eU5hbWUuSW5Db21tZXJjaWFsQXJlYSxcclxuICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLkluQ29tbWVyY2lhbEFyZWEsXHJcbiAgICAgIG5hbWU6ICdFbiB6b25hIGNvbWVyY2lhbCdcclxuICAgIH0sXHJcbiAgICBpbkluZHVzdHJpYWxQYXJrOiB7XHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBpY29uTmFtZTogQW1lbml0eU5hbWUuSW5JbmR1c3RyaWFsUGFyayxcclxuICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLkluSW5kdXN0cmlhbFBhcmssXHJcbiAgICAgIG5hbWU6ICdFbiBwYXJxdWUgaW5kdXN0cmlhbCdcclxuICAgIH0sXHJcbiAgICBpblNob3BwaW5nQ2VudGVyOiB7XHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBpY29uTmFtZTogQW1lbml0eU5hbWUuSW5TaG9wcGluZ0NlbnRlcixcclxuICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLkluU2hvcHBpbmdDZW50ZXIsXHJcbiAgICAgIG5hbWU6ICdFbiBjZW50cm8gY29tZXJjaWFsJ1xyXG4gICAgfSxcclxuICAgIGphY3V6emk6IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkphY3V6emksIHZhbHVlOiBBbWVuaXR5TmFtZS5KYWN1enppLCBuYW1lOiAnSmFjdXp6aSd9LFxyXG4gICAga2l0Y2hlblNlcnZpY2VzOiB7XHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBpY29uTmFtZTogQW1lbml0eU5hbWUuS2l0Y2hlblNlcnZpY2VzLFxyXG4gICAgICB2YWx1ZTogQW1lbml0eU5hbWUuS2l0Y2hlblNlcnZpY2VzLFxyXG4gICAgICBuYW1lOiAnU2VydmljaW9zIHBhcmEgY29jaW5hJ1xyXG4gICAgfSxcclxuICAgIG1haWRzQmF0aHJvb206IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLk1haWRzQmF0aHJvb20sIHZhbHVlOiBBbWVuaXR5TmFtZS5NYWlkc0JhdGhyb29tLCBuYW1lOiAnQ3VhcnRvIGRlIFNlcnZpY2lvJ30sXHJcbiAgICBtYW5ldXZlckFyZWE6IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLk1hbmV1dmVyQXJlYSwgdmFsdWU6IEFtZW5pdHlOYW1lLk1hbmV1dmVyQXJlYSwgbmFtZTogJ8OBcmVhIGRlIG1hbmlvYnJhcyd9LFxyXG4gICAgbWVldGluZ1Jvb206IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLk1lZXRpbmdSb29tLCB2YWx1ZTogQW1lbml0eU5hbWUuTWVldGluZ1Jvb20sIG5hbWU6ICdTYWxhIGRlIGNvbmZlcmVuY2lhcyd9LFxyXG4gICAgbWV6emFuaW5lOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5NZXp6YW5pbmUsIHZhbHVlOiBBbWVuaXR5TmFtZS5NZXp6YW5pbmUsIG5hbWU6ICdDb24gZW50cmVwaXNvJ30sXHJcbiAgICBtaXhlZEJ1aWxkaW5nOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5NaXhlZEJ1aWxkaW5nLCB2YWx1ZTogQW1lbml0eU5hbWUuTWl4ZWRCdWlsZGluZywgbmFtZTogJ0VuIGVkaWZpY2lvIG1peHRvJ30sXHJcbiAgICBuYXR1cmFsTGlnaHRpbmc6IHtcclxuICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIGljb25OYW1lOiBBbWVuaXR5TmFtZS5OYXR1cmFsTGlnaHRpbmcsXHJcbiAgICAgIHZhbHVlOiBBbWVuaXR5TmFtZS5OYXR1cmFsTGlnaHRpbmcsXHJcbiAgICAgIG5hbWU6ICdJbHVtaW5hY2lvbiBuYXR1cmFsJ1xyXG4gICAgfSxcclxuICAgIG9mZmljZXM6IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLk9mZmljZXMsIHZhbHVlOiBBbWVuaXR5TmFtZS5PZmZpY2VzLCBuYW1lOiAnQ29uIG9maWNpbmFzJ30sXHJcbiAgICBvcGVuU3BhY2U6IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLk9wZW5TcGFjZSwgdmFsdWU6IEFtZW5pdHlOYW1lLk9wZW5TcGFjZSwgbmFtZTogJ0VzcGFjaW8gYWJpZXJ0byd9LFxyXG4gICAgcGxhdGZvcm1zOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5QbGF0Zm9ybXMsIHZhbHVlOiBBbWVuaXR5TmFtZS5QbGF0Zm9ybXMsIG5hbWU6ICdBbmRlbmVzJ30sXHJcbiAgICBwbGF5Z3JvdW5kOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5QbGF5Z3JvdW5kLCB2YWx1ZTogQW1lbml0eU5hbWUuUGxheWdyb3VuZCwgbmFtZTogJ0p1ZWdvcyBpbmZhbnRpbGVzJ30sXHJcbiAgICBwbGF5cm9vbToge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuUGxheXJvb20sIHZhbHVlOiBBbWVuaXR5TmFtZS5QbGF5cm9vbSwgbmFtZTogJ1NhbMOzbiBkZSBqdWVnb3MnfSxcclxuICAgIHBvb2w6IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLlBvb2wsIHZhbHVlOiBBbWVuaXR5TmFtZS5Qb29sLCBuYW1lOiAnQWxiZXJjYSd9LFxyXG4gICAgcmFpbFNwdXI6IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLlJhaWxTcHVyLCB2YWx1ZTogQW1lbml0eU5hbWUuUmFpbFNwdXIsIG5hbWU6ICdFc3B1ZWxhIGRlIEZGLkNDJ30sXHJcbiAgICByYWlseWFyZDoge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuUmFpbFlhcmQsIHZhbHVlOiBBbWVuaXR5TmFtZS5SYWlsWWFyZCwgbmFtZTogJ1BhdGlvIGRlIG1hbmlvYnJhcyd9LFxyXG4gICAgcmVjZXB0aW9uOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5SZWNlcHRpb24sIHZhbHVlOiBBbWVuaXR5TmFtZS5SZWNlcHRpb24sIG5hbWU6ICdSZWNlcGNpw7NuJ30sXHJcbiAgICBzZWN1cml0eUd1YXJkOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5TZWN1cml0eUd1YXJkLCB2YWx1ZTogQW1lbml0eU5hbWUuU2VjdXJpdHlHdWFyZCwgbmFtZTogJ0NvbiB2aWdpbGFuY2lhJ30sXHJcbiAgICBzdG9yYWdlOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5TdG9yYWdlLCB2YWx1ZTogQW1lbml0eU5hbWUuU3RvcmFnZSwgbmFtZTogJ0JvZGVnYSd9LFxyXG4gICAgdmlzaXRvclBhcmtpbmc6IHtcclxuICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIGljb25OYW1lOiBBbWVuaXR5TmFtZS5WaXNpdG9yUGFya2luZyxcclxuICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLlZpc2l0b3JQYXJraW5nLFxyXG4gICAgICBuYW1lOiAnRXN0YWNpb25hbWllbnRvIHBhcmEgdmlzaXRhcydcclxuICAgIH0sXHJcbiAgICBmZWF0dXJlczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLk5lYXJQdWJsaWNUcmFuc3BvcnRhdGlvbixcclxuICAgICAgICB2YWx1ZTogQW1lbml0eU5hbWUuTmVhclB1YmxpY1RyYW5zcG9ydGF0aW9uLFxyXG4gICAgICAgIG5hbWU6ICdDZXJjYSBkZSBlc3RhY2lvbmVzIGRlIHRyYW5zcG9ydGUnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkFkamFjZW50Q29tbWVyY2UsIHZhbHVlOiBBbWVuaXR5TmFtZS5OZWFyU2hvcHMsIG5hbWU6ICdDZXJjYSBkZSBjb21lcmNpb3MnfSxcclxuICAgICAge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuT25CdXN5Um9hZCwgdmFsdWU6IEFtZW5pdHlOYW1lLk9uQnVzeVJvYWQsIG5hbWU6ICdBdmVuaWRhIHByaW5jaXBhbCd9LFxyXG4gICAgICB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5Db3VudHJ5U2lkZSwgdmFsdWU6IEFtZW5pdHlOYW1lLkNvdW50cnlTaWRlLCBuYW1lOiAnU3VidXJiaW8nfSxcclxuICAgICAge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuRG93bnRvd24sIHZhbHVlOiBBbWVuaXR5TmFtZS5Eb3dudG93biwgbmFtZTogJ0PDqW50cmljbyd9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkdvb2RSZWFjaGFibGVUcmFmZmljLFxyXG4gICAgICAgIHZhbHVlOiBBbWVuaXR5TmFtZS5Hb29kUmVhY2hhYmxlVHJhZmZpYyxcclxuICAgICAgICBuYW1lOiAnU2UgbGxlZ2Egc2luIHRyYWZpY28nXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBpY29uTmFtZTogQW1lbml0eU5hbWUuTmVhckZpdG5lc3NDZW50cmUsXHJcbiAgICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLk5lYXJGaXRuZXNzQ2VudHJlLFxyXG4gICAgICAgIG5hbWU6ICdDZXJjYSBkZSBjZW50cm8gZGVwb3J0aXZvJ1xyXG4gICAgICB9LFxyXG4gICAgICB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5OZWFySGlnaHdheSwgdmFsdWU6IEFtZW5pdHlOYW1lLk5lYXJIaWdod2F5LCBuYW1lOiAnQ2VyY2EgZGUgYXV0b3Bpc3RhJ30sXHJcbiAgICAgIHtcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBpY29uTmFtZTogQW1lbml0eU5hbWUuTmVhckhvc3BpdGFsLFxyXG4gICAgICAgIHZhbHVlOiBBbWVuaXR5TmFtZS5OZWFySG9zcGl0YWwsXHJcbiAgICAgICAgbmFtZTogJ0NlcmNhIGRlIGNlbnRyb3MgZGUgc2FsdWQnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBpY29uTmFtZTogQW1lbml0eU5hbWUuTmVhclBhcmssXHJcbiAgICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLk5lYXJQYXJrLFxyXG4gICAgICAgIG5hbWU6ICdDZXJjYSBkZSBwYXJxdWUnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLk5lYXJTY2hvb2xzLCB2YWx1ZTogQW1lbml0eU5hbWUuTmVhclNjaG9vbHMsIG5hbWU6ICdDZXJjYSBkZSBlc2N1ZWxhcyd9LFxyXG4gICAgICB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5PblF1aWV0Um9hZCwgdmFsdWU6IEFtZW5pdHlOYW1lLk9uUXVpZXRSb2FkLCBuYW1lOiAnRW4gY2FsbGUgdHJhbnF1aWxhJ30sXHJcbiAgICBdXHJcbiAgfTtcclxuICBzdGF0aWMgRHVyYXRpb25MaXN0ID0gW1xyXG4gICAgMzAsIDYwLCA5MCwgMTgwLCAzNjVcclxuICBdO1xyXG4gIHN0YXRpYyBDb21taXNzaW9uTGlzdDoge1NBTEU6IG51bWJlcltdLCBSRU5UOiBudW1iZXJbXX0gPSB7XHJcbiAgICBTQUxFOiBbMC4wNiwgMC4wNTUsIDAuMDUsIDAuMDQ1LCAwLjA0LCAwLjAzNSwgMC4wMzAsIDAuMDI1LCAwLjAyMCwgMC4wMTUsIDAuMDFdLFxyXG4gICAgUkVOVDogWzIsIDEuNSwgMSwgMC41XVxyXG4gIH07XHJcbiAgc3RhdGljIFNoYXJlZENvbW1pc3Npb25MaXN0OiBudW1iZXJbXSA9IFtcclxuICAgIDAuNTAsIDAuNDAsIDAuMzAsIDAuMjAsIDAuMTBcclxuICBdO1xyXG4gIHN0YXRpYyBMYW5kVXNlTGlzdDoge25hbWU6IHN0cmluZywgdmFsdWU6IExhbmRVc2VFbnVtfVtdID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiAnSGFiaXRhY2lvbmFsIHVuaWZhbWlsaWFyJyxcclxuICAgICAgdmFsdWU6IExhbmRVc2VFbnVtLlNJTkdMRV9GQU1JTFlfSE9VU0lOR1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0hhYml0YWNpb25hbCBwbHVyaWZhbWlsaWFyJyxcclxuICAgICAgdmFsdWU6IExhbmRVc2VFbnVtLk1VTFRJX0ZBTUlMWV9IT1VTSU5HXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnSGFiaXRhY2lvbmFsIGNvbiBjb21lcmNpbycsXHJcbiAgICAgIHZhbHVlOiBMYW5kVXNlRW51bS5IT1VTSU5HX1dJVEhfQ09NTUVSQ0VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdIYWJpdGFjaW9uYWwgY29uIG9maWNpbmEnLFxyXG4gICAgICB2YWx1ZTogTGFuZFVzZUVudW0uSE9VU0lOR19XSVRIX09GRklDRVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0hhYml0YWNpb25hbCBtaXh0bycsXHJcbiAgICAgIHZhbHVlOiBMYW5kVXNlRW51bS5NSVhFRF9IT1VTSU5HXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnQ29tZXJjaW8nLFxyXG4gICAgICB2YWx1ZTogTGFuZFVzZUVudW0uQ09NTUVSQ0VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdPZmljaW5hJyxcclxuICAgICAgdmFsdWU6IExhbmRVc2VFbnVtLk9GRklDRVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ1NlcnZpY2lvcycsXHJcbiAgICAgIHZhbHVlOiBMYW5kVXNlRW51bS5TRVJWSUNFU1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0luZHVzdHJpYScsXHJcbiAgICAgIHZhbHVlOiBMYW5kVXNlRW51bS5JTkRVU1RSWVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0FncsOtY29sYScsXHJcbiAgICAgIHZhbHVlOiBMYW5kVXNlRW51bS5BR1JJQ1VMVFVSQUxcclxuICAgIH1cclxuICBdO1xyXG4gIHN0YXRpYyBBbm5vdW5jZUNoZWNrTGlzdCA9IFtcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0xhcyBmb3RvcyB5IHZpZGVvcyBzb24gbG9zIGNvcnJlY3RvcycsXHJcbiAgICAgIHZhbHVlOiAwLFxyXG4gICAgICBjaGVja2VkOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0xhIG9ydG9ncmFmw61hIHkgZ3JhbcOhdGljYSBlcyBjb3JyZWN0YScsXHJcbiAgICAgIHZhbHVlOiAxLFxyXG4gICAgICBjaGVja2VkOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0xvcyBkYXRvcyBkZSBjb250YWN0byBzb24gY29ycmVjdG9zJyxcclxuICAgICAgdmFsdWU6IDIsXHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnTGEgZGlyZWNjacOzbiwgZW1haWwgeSB3ZWIgZXN0w6FuIGNvcnJlY3RvcycsXHJcbiAgICAgIHZhbHVlOiAzLFxyXG4gICAgICBjaGVja2VkOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ1RvZG8gZXN0w6EgY29ycmVjdG8geSBhcHJ1ZWJvIG1pIGFudW5jaW8nLFxyXG4gICAgICB2YWx1ZTogNCxcclxuICAgICAgY2hlY2tlZDogZmFsc2VcclxuICAgIH1cclxuICBdO1xyXG4gIHN0YXRpYyBEb2N1bWVudHNMaXN0OiB7bmFtZTogc3RyaW5nLCB2YWx1ZTogUEZpbGVUeXBlRW51bSwgbG9hZGVkOiBib29sZWFufVtdID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiAnRXNjcml0dXJhJyxcclxuICAgICAgdmFsdWU6IFBGaWxlVHlwZUVudW0uREVFRCxcclxuICAgICAgbG9hZGVkOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0lkZW50aWZpY2FjacOzbiBQcm9waWV0YXJpbycsXHJcbiAgICAgIHZhbHVlOiBQRmlsZVR5cGVFbnVtLk9XTkVSX0lELFxyXG4gICAgICBsb2FkZWQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnUmVjaWJvIGRlIGFndWEnLFxyXG4gICAgICB2YWx1ZTogUEZpbGVUeXBlRW51bS5XQVRFUl9CSUxMLFxyXG4gICAgICBsb2FkZWQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnUmVjaWJvIGRlIGx1eicsXHJcbiAgICAgIHZhbHVlOiBQRmlsZVR5cGVFbnVtLkVMRUNUUklDSVRZX0JJTEwsXHJcbiAgICAgIGxvYWRlZDogZmFsc2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdSZWNpYm8gcHJlZGlhbCcsXHJcbiAgICAgIHZhbHVlOiBQRmlsZVR5cGVFbnVtLlBST1BFUlRZX0JJTEwsXHJcbiAgICAgIGxvYWRlZDogZmFsc2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdDb25zdGFuY2lhIGRlIG5vIGFkZXVkbycsXHJcbiAgICAgIHZhbHVlOiBQRmlsZVR5cGVFbnVtLkNPTlNUQU5DWV9PRl9OT19ERUJULFxyXG4gICAgICBsb2FkZWQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnTGliZXJ0YWQgZGUgR3JhdmFtZW4nLFxyXG4gICAgICB2YWx1ZTogUEZpbGVUeXBlRW51bS5FWEVNUFRJT05fVEFYLFxyXG4gICAgICBsb2FkZWQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnTGljZW5jaWEgZGUgY29uc3RydWNjacOzbicsXHJcbiAgICAgIHZhbHVlOiBQRmlsZVR5cGVFbnVtLkJVSUxESU5HX0xJQ0VOU0UsXHJcbiAgICAgIGxvYWRlZDogZmFsc2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdUZXJtaW5hY2nDs24gZGUgb2JyYScsXHJcbiAgICAgIHZhbHVlOiBQRmlsZVR5cGVFbnVtLkNPTVBMRVRJT05fT0ZfQ09OU1RSVUNUSU9OLFxyXG4gICAgICBsb2FkZWQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnQWxpbmVhY2nDs24geSBuw7ptZXJvIG9maWNpYWwnLFxyXG4gICAgICB2YWx1ZTogUEZpbGVUeXBlRW51bS5BTElHTk1FTlRfQU5EX09GRklDSUFMX05VTUJFUixcclxuICAgICAgbG9hZGVkOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0hpcG90ZWNhJyxcclxuICAgICAgdmFsdWU6IFBGaWxlVHlwZUVudW0uTU9SVEdBR0UsXHJcbiAgICAgIGxvYWRlZDogZmFsc2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdPdHJvcycsXHJcbiAgICAgIHZhbHVlOiBQRmlsZVR5cGVFbnVtLk9USEVSLFxyXG4gICAgICBsb2FkZWQ6IGZhbHNlXHJcbiAgICB9XHJcbiAgXTtcclxuICBzdGF0aWMgQmVkcm9vbUxpc3Q6IG51bWJlcltdID0gW1xyXG4gICAgMCwgMSwgMiwgMywgNFxyXG4gIF07XHJcbiAgc3RhdGljIEJhdGhyb29tTGlzdDogbnVtYmVyW10gPSBbXHJcbiAgICAwLCAxLCAyLCAzLCA0XHJcbiAgXTtcclxuICBzdGF0aWMgUGFya2luZ1NwYWNlc0xpc3Q6IG51bWJlcltdID0gW1xyXG4gICAgMCwgMSwgMiwgMywgNFxyXG4gIF07XHJcbiAgc3RhdGljIFN1cmZhY2VMaXN0OiBudW1iZXJbXSA9IFtcclxuICAgIDUwLCAxMDAsIDE1MCwgMjAwLCAyNTAsIDMwMCwgMzUwLCA0MDAsIDQ1MCwgNTAwLCA1NTAsIDYwMCwgNjUwLCA3MDAsIDc1MCwgODAwLCA4NTAsIDkwMCwgOTUwLCAxMDAwXHJcbiAgXTtcclxuICBzdGF0aWMgUk9JTGlzdDogbnVtYmVyW10gPSBbXHJcbiAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTgsIDE5LCAyMFxyXG4gIF07XHJcbiAgc3RhdGljIFByb3BlcnR5VHlwZUxpc3Q6IFByb3BlcnR5VHlwZUl0ZW1bXSA9IFtcclxuICAgIHtcclxuICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZUVudW0uSE9VU0UsXHJcbiAgICAgIGljb25OYW1lOiAnaG91c2UnLFxyXG4gICAgICBuYW1lOiAnQ2FzYScsXHJcbiAgICAgIHNob3J0TmFtZTogJ0Nhc2EnLFxyXG4gICAgICBmZWF0dXJlczogQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZmVhdHVyZXMsXHJcbiAgICAgIGFtZW5pdGllczogW1xyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmdhcmRlbixcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5wb29sLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnN0b3JhZ2UsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMubWFpZHNCYXRocm9vbSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5zZWN1cml0eUd1YXJkLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnBsYXlncm91bmQsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMudmlzaXRvclBhcmtpbmcsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZ3ltLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmJhbGNvbnksXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuamFjdXp6aSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5wbGF5cm9vbSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5mdXJuaXNoZWQsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucm9vZkdhcmRlbixcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5wZXRGcmllbmRseSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5kaWZmZXJlbnRBYmlsaXRpZXNcclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZUVudW0uUkVTSURFTlRJQUwsXHJcbiAgICAgIGljb25OYW1lOiAncmVzaWRlbnRpYWwnLFxyXG4gICAgICBuYW1lOiAnVml2aWVuZGEnLFxyXG4gICAgICBzaG9ydE5hbWU6ICdWaXZpZW5kYScsXHJcbiAgICAgIGZlYXR1cmVzOiBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5mZWF0dXJlcyxcclxuICAgICAgYW1lbml0aWVzOiBbXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZ2FyZGVuLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnBvb2wsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuc3RvcmFnZSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5tYWlkc0JhdGhyb29tLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnNlY3VyaXR5R3VhcmQsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucGxheWdyb3VuZCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy52aXNpdG9yUGFya2luZyxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5neW0sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuYmFsY29ueSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5qYWN1enppLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnBsYXlyb29tLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmZ1cm5pc2hlZCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5yb29mR2FyZGVuLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnBldEZyaWVuZGx5LFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmRpZmZlcmVudEFiaWxpdGllc1xyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB2YWx1ZTogUHJvcGVydHlUeXBlRW51bS5BUEFSVE1FTlQsXHJcbiAgICAgIGljb25OYW1lOiAnYXBhcnRtZW50JyxcclxuICAgICAgbmFtZTogJ0RlcGFydGFtZW50bycsXHJcbiAgICAgIHNob3J0TmFtZTogJ0RlcHRvJyxcclxuICAgICAgZmVhdHVyZXM6IENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmZlYXR1cmVzLFxyXG4gICAgICBhbWVuaXRpZXM6IFtcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5nYXJkZW4sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucG9vbCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5zdG9yYWdlLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLm1haWRzQmF0aHJvb20sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuc2VjdXJpdHlHdWFyZCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5wbGF5Z3JvdW5kLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnZpc2l0b3JQYXJraW5nLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmd5bSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5iYWxjb255LFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmphY3V6emksXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucGxheXJvb20sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZnVybmlzaGVkLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnJvb2ZHYXJkZW4sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucGV0RnJpZW5kbHksXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZGlmZmVyZW50QWJpbGl0aWVzXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGVFbnVtLlJPT00sXHJcbiAgICAgIGljb25OYW1lOiAncm9vbScsXHJcbiAgICAgIG5hbWU6ICdIYWJpdGFjacOzbicsXHJcbiAgICAgIHNob3J0TmFtZTogJ0hhYml0YWNpw7NuJyxcclxuICAgICAgZmVhdHVyZXM6IENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmZlYXR1cmVzLFxyXG4gICAgICBhbWVuaXRpZXM6IFtcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5nYXJkZW4sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucG9vbCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5zdG9yYWdlLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLm1haWRzQmF0aHJvb20sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuc2VjdXJpdHlHdWFyZCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5wbGF5Z3JvdW5kLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnZpc2l0b3JQYXJraW5nLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmd5bSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5iYWxjb255LFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmphY3V6emksXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucGxheXJvb20sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZnVybmlzaGVkLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmhpZ2hTcGVlZEludGVybmV0LFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnJvb2ZHYXJkZW4sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucGV0RnJpZW5kbHksXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZGlmZmVyZW50QWJpbGl0aWVzXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGVFbnVtLk9GRklDRSxcclxuICAgICAgaWNvbk5hbWU6ICdvZmZpY2UnLFxyXG4gICAgICBuYW1lOiAnT2ZpY2luYScsXHJcbiAgICAgIHNob3J0TmFtZTogJ09maWNpbmEnLFxyXG4gICAgICBmZWF0dXJlczogQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZmVhdHVyZXMsXHJcbiAgICAgIGFtZW5pdGllczogW1xyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnZpc2l0b3JQYXJraW5nLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmZ1cm5pc2hlZCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5oaWdoU3BlZWRJbnRlcm5ldCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5yZWNlcHRpb24sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuYWRqYWNlbnRQaWNuaWMsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMubWVldGluZ1Jvb20sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuYWRqYWNlbnRHeW0sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMub3BlblNwYWNlLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmFpckNvbmRpdGlvbmVyLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmFkamFjZW50Q29tbWVyY2UsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMubWl4ZWRCdWlsZGluZyxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5yb29mR2FyZGVuLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnBldEZyaWVuZGx5LFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmRpZmZlcmVudEFiaWxpdGllc1xyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB2YWx1ZTogUHJvcGVydHlUeXBlRW51bS5SRVRBSUwsXHJcbiAgICAgIGljb25OYW1lOiAncmV0YWlsJyxcclxuICAgICAgbmFtZTogJ0NvbWVyY2lvJyxcclxuICAgICAgc2hvcnROYW1lOiAnQ29tZXJjaW8nLFxyXG4gICAgICBmZWF0dXJlczogQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZmVhdHVyZXMsXHJcbiAgICAgIGFtZW5pdGllczogW1xyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLm1peGVkQnVpbGRpbmcsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZmFjaW5nU3RyZWV0LFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLm1hbmV1dmVyQXJlYSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5raXRjaGVuU2VydmljZXMsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZmluaXNoaW5ncyxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5tZXp6YW5pbmUsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuaW5TaG9wcGluZ0NlbnRlcixcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5pbkNvbW1lcmNpYWxBcmVhLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmN1c3RvbWVyUGFya2luZyxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5kb3VibGVIZWlnaHQsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucm9vZkdhcmRlbixcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5wZXRGcmllbmRseSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5kaWZmZXJlbnRBYmlsaXRpZXNcclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZUVudW0uV0FSRUhPVVNFLFxyXG4gICAgICBpY29uTmFtZTogJ3dhcmVob3VzZScsXHJcbiAgICAgIG5hbWU6ICdCb2RlZ2EnLFxyXG4gICAgICBzaG9ydE5hbWU6ICdCb2RlZ2EnLFxyXG4gICAgICBmZWF0dXJlczogQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZmVhdHVyZXMsXHJcbiAgICAgIGFtZW5pdGllczogW1xyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnNlY3VyaXR5R3VhcmQsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuY3VzdG9tZXJQYXJraW5nLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmRvdWJsZUhlaWdodCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5yYWlseWFyZCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5wbGF0Zm9ybXMsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuaGlnaFJlc2lzdGFuY2VGbG9vcnMsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMub2ZmaWNlcyxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5kcmVzc2luZ1Jvb21zLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmRpbmluZ1Jvb20sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuaW5JbmR1c3RyaWFsUGFyayxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5uYXR1cmFsTGlnaHRpbmcsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucmFpbFNwdXIsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZGlmZmVyZW50QWJpbGl0aWVzXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGVFbnVtLkxBTkQsXHJcbiAgICAgIGljb25OYW1lOiAnbGFuZCcsXHJcbiAgICAgIG5hbWU6ICdUZXJyZW5vJyxcclxuICAgICAgc2hvcnROYW1lOiAnVGVycmVubycsXHJcbiAgICAgIGZlYXR1cmVzOiBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5mZWF0dXJlcyxcclxuICAgICAgYW1lbml0aWVzOiBbXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuc2VjdXJpdHlHdWFyZFxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB2YWx1ZTogUHJvcGVydHlUeXBlRW51bS5JTlZFU1RNRU5ULFxyXG4gICAgICBpY29uTmFtZTogJ2ludmVzdG1lbnQnLFxyXG4gICAgICBuYW1lOiAnSW52ZXJzacOzbicsXHJcbiAgICAgIHNob3J0TmFtZTogJ0ludmVyc2nDs24nLFxyXG4gICAgICBmZWF0dXJlczogQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZmVhdHVyZXMsXHJcbiAgICAgIGFtZW5pdGllczogW11cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGVFbnVtLk5PTkUsXHJcbiAgICAgIG5hbWU6ICdUb2RvJyxcclxuICAgICAgc2hvcnROYW1lOiAnVG9kbycsXHJcbiAgICAgIGljb25OYW1lOiAnYWxsJyxcclxuICAgICAgZmVhdHVyZXM6IFtdLFxyXG4gICAgICBhbWVuaXRpZXM6IFtdXHJcbiAgICB9XHJcbiAgXTtcclxuICBzdGF0aWMgT2ZmZXJpbmdUeXBlTGlzdDogeyB2YWx1ZTogT2ZmZXJpbmdUeXBlRW51bSwgbmFtZTogc3RyaW5nIH1bXSA9IFtcclxuICAgIHtcclxuICAgICAgdmFsdWU6IE9mZmVyaW5nVHlwZUVudW0uU0FMRSxcclxuICAgICAgbmFtZTogJ1ZlbnRhJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdmFsdWU6IE9mZmVyaW5nVHlwZUVudW0uUkVOVCxcclxuICAgICAgbmFtZTogJ1JlbnRhJ1xyXG4gICAgfSxcclxuICBdO1xyXG4gIHN0YXRpYyBMb2NhdGVMaXN0OiBhbnkgPSB7XHJcbiAgICBVU0Q6IHtsb2NhdGU6ICdlbi1VUycsIGN1cnJlbmN5OiAnVVNEJ30sXHJcbiAgICBNWE46IHtsb2NhdGU6ICdlcy1NWCcsIGN1cnJlbmN5OiAnTVhOJ30sXHJcbiAgICBHQlA6IHtsb2NhdGU6ICdlbi1HQicsIGN1cnJlbmN5OiAnR0JQJ30sXHJcbiAgICBFVVI6IHtsb2NhdGU6ICdkZS1ERScsIGN1cnJlbmN5OiAnRVVSJ30sXHJcbiAgICBCUkw6IHtsb2NhdGU6ICdwdC1CUicsIGN1cnJlbmN5OiAnQlJMJ30sXHJcbiAgICBDTlk6IHtsb2NhdGU6ICd6aC1DSCcsIGN1cnJlbmN5OiAnQ05ZJ31cclxuICB9O1xyXG4gIHN0YXRpYyBQcm9wZXJ0eVN0YXR1c0xpc3Q6IFByb3BlcnR5U3RhdHVzSXRlbVtdID0gW1xyXG4gICAgeyBpY29uOiAnYW5ub3VuY2UnLCBuYW1lOiAnQW51bmNpYWRhcycsIHZhbHVlOiBTdGF0dXNUeXBlRW51bS5BTk5PVU5DRUQgfSxcclxuICAgIHsgaWNvbjogJ2V4cGlyZWQnLCBuYW1lOiAnRXhwaXJhZGFzJywgdmFsdWU6IFN0YXR1c1R5cGVFbnVtLkVYUElSRUQgfSxcclxuICAgIHsgaWNvbjogJ2hpZGRlbicsIG5hbWU6ICdPY3VsdGFzJywgdmFsdWU6IFN0YXR1c1R5cGVFbnVtLkhJRERFTiB9LFxyXG4gICAgeyBpY29uOiAncmVhZHknLCBuYW1lOiAnTGlzdGFzIHBhcmEgYW51bmNpYXInLCB2YWx1ZTogU3RhdHVzVHlwZUVudW0uUkVBRFkgfSxcclxuICAgIHsgaWNvbjogJ2RyYWZ0JywgbmFtZTogJ0JvcnJhZG9yJywgdmFsdWU6IFN0YXR1c1R5cGVFbnVtLkRSQUZUICB9XHJcbiAgXTtcclxufVxyXG4iXX0=
567
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzQ29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtYXBsYW5kZXIvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHNDb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUVoSCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFJdkQsTUFBTSxPQUFPLG1CQUFtQjs7QUFDdkIsNkJBQVMsR0FBa0I7SUFDaEMsVUFBVSxFQUFFO1FBQ1YsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsV0FBVyxDQUFDLFVBQVU7UUFDaEMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxVQUFVO1FBQzdCLElBQUksRUFBRSxTQUFTO0tBQ2hCO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsV0FBVyxDQUFDLFdBQVc7UUFDakMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXO1FBQzlCLElBQUksRUFBRSxpQkFBaUI7S0FDeEI7SUFDRCxrQkFBa0IsRUFBRTtRQUNsQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxXQUFXLENBQUMsa0JBQWtCO1FBQ3hDLEtBQUssRUFBRSxXQUFXLENBQUMsa0JBQWtCO1FBQ3JDLElBQUksRUFBRSw0QkFBNEI7S0FDbkM7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxXQUFXLENBQUMsZ0JBQWdCO1FBQ3RDLEtBQUssRUFBRSxXQUFXLENBQUMsZ0JBQWdCO1FBQ25DLElBQUksRUFBRSxvQkFBb0I7S0FDM0I7SUFDRCxXQUFXLEVBQUUsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMs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QUFFLGNBQWMsQ0FBQyxLQUFLLEVBQUc7Q0FDbEUsQ0FBQzs7O0lBM2dCRiw4QkFtSkU7O0lBQ0YsaUNBRUU7O0lBQ0YsbUNBR0U7O0lBQ0YseUNBRUU7O0lBQ0YsZ0NBNENFOztJQUNGLHNDQTBCRTs7SUFDRixrQ0E2REU7O0lBQ0YsZ0NBRUU7O0lBQ0YsaUNBRUU7O0lBQ0Ysc0NBRUU7O0lBQ0YsZ0NBRUU7O0lBQ0YsNEJBRUU7O0lBQ0YscUNBK0xFOztJQUNGLHFDQVNFOztJQUNGLCtCQU9FOztJQUNGLHVDQU1FIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMYW5kVXNlRW51bSwgT2ZmZXJpbmdUeXBlRW51bSwgUEZpbGVUeXBlRW51bSwgUHJvcGVydHlUeXBlRW51bSwgU3RhdHVzVHlwZUVudW19IGZyb20gJ0BtYXBsYW5kZXIvdHlwZXMnO1xyXG5pbXBvcnQge0FtZW5pdGllc0xpc3R9IGZyb20gJy4vdXRpbHMvbW9kZWxzL2FtZW5pdGllcy1saXN0JztcclxuaW1wb3J0IHtBbWVuaXR5TmFtZX0gZnJvbSAnLi91dGlscy9lbnVtcy9hbWVuaXR5LW5hbWUnO1xyXG5pbXBvcnQge1Byb3BlcnR5VHlwZUl0ZW19IGZyb20gJy4vdXRpbHMvbW9kZWxzL3Byb3BlcnR5LXR5cGUtaXRlbSc7XHJcbmltcG9ydCB7UHJvcGVydHlTdGF0dXNJdGVtfSBmcm9tICcuL3V0aWxzL21vZGVscy9wcm9wZXJ0eVN0YXR1c0l0ZW0nO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbnN0YW50c0NvbXBvbmVudHMge1xyXG4gIHN0YXRpYyBBbWVuaXRpZXM6IEFtZW5pdGllc0xpc3QgPSB7XHJcbiAgICByb29mR2FyZGVuOiB7XHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBpY29uTmFtZTogQW1lbml0eU5hbWUuUm9vZkdhcmRlbixcclxuICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLlJvb2ZHYXJkZW4sXHJcbiAgICAgIG5hbWU6ICdUZXJyYXphJ1xyXG4gICAgfSxcclxuICAgIHBldEZyaWVuZGx5OiB7XHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBpY29uTmFtZTogQW1lbml0eU5hbWUuUGV0RnJpZW5kbHksXHJcbiAgICAgIHZhbHVlOiBBbWVuaXR5TmFtZS5QZXRGcmllbmRseSxcclxuICAgICAgbmFtZTogJ0FjZXB0YSBNYXNjb3RhcydcclxuICAgIH0sXHJcbiAgICBkaWZmZXJlbnRBYmlsaXRpZXM6IHtcclxuICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIGljb25OYW1lOiBBbWVuaXR5TmFtZS5EaWZmZXJlbnRBYmlsaXRpZXMsXHJcbiAgICAgIHZhbHVlOiBBbWVuaXR5TmFtZS5EaWZmZXJlbnRBYmlsaXRpZXMsXHJcbiAgICAgIG5hbWU6ICdDb24gY2FwYWNpZGFkZXMgZGlmZXJlbnRlcydcclxuICAgIH0sXHJcbiAgICBhZGphY2VudENvbW1lcmNlOiB7XHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBpY29uTmFtZTogQW1lbml0eU5hbWUuQWRqYWNlbnRDb21tZXJjZSxcclxuICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLkFkamFjZW50Q29tbWVyY2UsXHJcbiAgICAgIG5hbWU6ICdDb21lcmNpbyBhZHlhY2VudGUnXHJcbiAgICB9LFxyXG4gICAgYWRqYWNlbnRHeW06IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkd5bSwgdmFsdWU6IEFtZW5pdHlOYW1lLkFkamFjZW50R3ltLCBuYW1lOiAnR3ltIGFkeWFjZW50ZSd9LFxyXG4gICAgYWRqYWNlbnRQaWNuaWM6IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkFkamFjZW50UGljbmljLCB2YWx1ZTogQW1lbml0eU5hbWUuQWRqYWNlbnRQaWNuaWMsIG5hbWU6ICdNZXJlbmRlcm8gYWR5YWNlbnRlJ30sXHJcbiAgICBhaXJDb25kaXRpb25lcjoge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuQWlyQ29uZGl0aW9uZXIsIHZhbHVlOiBBbWVuaXR5TmFtZS5BaXJDb25kaXRpb25lciwgbmFtZTogJ0FpcmUgYWNvbmRpY2lvbmFkbyd9LFxyXG4gICAgYmFsY29ueToge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuQmFsY29ueSwgdmFsdWU6IEFtZW5pdHlOYW1lLkJhbGNvbnksIG5hbWU6ICdCYWxjw7NuJ30sXHJcbiAgICBjdXN0b21lclBhcmtpbmc6IHtcclxuICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIGljb25OYW1lOiBBbWVuaXR5TmFtZS5DdXN0b21lclBhcmtpbmcsXHJcbiAgICAgIHZhbHVlOiBBbWVuaXR5TmFtZS5DdXN0b21lclBhcmtpbmcsXHJcbiAgICAgIG5hbWU6ICdFc3RhY2lvbmFtaWVudG8gcGFyYSBjbGllbnRlcydcclxuICAgIH0sXHJcbiAgICBkaW5pbmdSb29tOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5EaW5pbmdSb29tLCB2YWx1ZTogQW1lbml0eU5hbWUuRGluaW5nUm9vbSwgbmFtZTogJ0NvbWVkb3InfSxcclxuICAgIGRvdWJsZUhlaWdodDoge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuRG91YmxlSGVpZ2h0LCB2YWx1ZTogQW1lbml0eU5hbWUuRG91YmxlSGVpZ2h0LCBuYW1lOiAnRG9ibGUgYWx0dXJhJ30sXHJcbiAgICBkcmVzc2luZ1Jvb21zOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5EcmVzc2luZ1Jvb21zLCB2YWx1ZTogQW1lbml0eU5hbWUuRHJlc3NpbmdSb29tcywgbmFtZTogJ0NvbiB2ZXN0aWRvcmVzJ30sXHJcbiAgICBmYWNpbmdTdHJlZXQ6IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkZhY2luZ1N0cmVldCwgdmFsdWU6IEFtZW5pdHlOYW1lLkZhY2luZ1N0cmVldCwgbmFtZTogJ0ZyZW50ZSBhIGNhbGxlJ30sXHJcbiAgICBmaW5pc2hpbmdzOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5GaW5pc2hpbmdzLCB2YWx1ZTogQW1lbml0eU5hbWUuRmluaXNoaW5ncywgbmFtZTogJ0NvbiBhY2FiYWRvcyd9LFxyXG4gICAgZnVybmlzaGVkOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5GdXJuaXNoZWQsIHZhbHVlOiBBbWVuaXR5TmFtZS5GdXJuaXNoZWQsIG5hbWU6ICdBbXVlYmxhZGEnfSxcclxuICAgIGdhcmRlbjoge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuR2FyZGVuLCB2YWx1ZTogQW1lbml0eU5hbWUuR2FyZGVuLCBuYW1lOiAnSmFyZMOtbid9LFxyXG4gICAgZ3ltOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5HeW0sIHZhbHVlOiBBbWVuaXR5TmFtZS5HeW0sIG5hbWU6ICdHeW0nfSxcclxuICAgIGhpZ2hSZXNpc3RhbmNlRmxvb3JzOiB7XHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBpY29uTmFtZTogQW1lbml0eU5hbWUuSGlnaFJlc2lzdGFuY2VGbG9vcnMsXHJcbiAgICAgIHZhbHVlOiBBbWVuaXR5TmFtZS5IaWdoUmVzaXN0YW5jZUZsb29ycyxcclxuICAgICAgbmFtZTogJ1Bpc29zIGRlIGFsdGEgcmVzaXN0ZW5jaWEnXHJcbiAgICB9LFxyXG4gICAgaGlnaFNwZWVkSW50ZXJuZXQ6IHtcclxuICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIGljb25OYW1lOiBBbWVuaXR5TmFtZS5IaWdoU3BlZWRJbnRlcm5ldCxcclxuICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLkhpZ2hTcGVlZEludGVybmV0LFxyXG4gICAgICBuYW1lOiAnSW50ZXJuZXQgZGUgYWx0YSB2ZWxvY2lkYWQnXHJcbiAgICB9LFxyXG4gICAgaW5Db21tZXJjaWFsQXJlYToge1xyXG4gICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkluQ29tbWVyY2lhbEFyZWEsXHJcbiAgICAgIHZhbHVlOiBBbWVuaXR5TmFtZS5JbkNvbW1lcmNpYWxBcmVhLFxyXG4gICAgICBuYW1lOiAnRW4gem9uYSBjb21lcmNpYWwnXHJcbiAgICB9LFxyXG4gICAgaW5JbmR1c3RyaWFsUGFyazoge1xyXG4gICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkluSW5kdXN0cmlhbFBhcmssXHJcbiAgICAgIHZhbHVlOiBBbWVuaXR5TmFtZS5JbkluZHVzdHJpYWxQYXJrLFxyXG4gICAgICBuYW1lOiAnRW4gcGFycXVlIGluZHVzdHJpYWwnXHJcbiAgICB9LFxyXG4gICAgaW5TaG9wcGluZ0NlbnRlcjoge1xyXG4gICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkluU2hvcHBpbmdDZW50ZXIsXHJcbiAgICAgIHZhbHVlOiBBbWVuaXR5TmFtZS5JblNob3BwaW5nQ2VudGVyLFxyXG4gICAgICBuYW1lOiAnRW4gY2VudHJvIGNvbWVyY2lhbCdcclxuICAgIH0sXHJcbiAgICBqYWN1enppOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5KYWN1enppLCB2YWx1ZTogQW1lbml0eU5hbWUuSmFjdXp6aSwgbmFtZTogJ0phY3V6emknfSxcclxuICAgIGtpdGNoZW5TZXJ2aWNlczoge1xyXG4gICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLktpdGNoZW5TZXJ2aWNlcyxcclxuICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLktpdGNoZW5TZXJ2aWNlcyxcclxuICAgICAgbmFtZTogJ1NlcnZpY2lvcyBwYXJhIGNvY2luYSdcclxuICAgIH0sXHJcbiAgICBtYWlkc0JhdGhyb29tOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5NYWlkc0JhdGhyb29tLCB2YWx1ZTogQW1lbml0eU5hbWUuTWFpZHNCYXRocm9vbSwgbmFtZTogJ0N1YXJ0byBkZSBTZXJ2aWNpbyd9LFxyXG4gICAgbWFuZXV2ZXJBcmVhOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5NYW5ldXZlckFyZWEsIHZhbHVlOiBBbWVuaXR5TmFtZS5NYW5ldXZlckFyZWEsIG5hbWU6ICfDgXJlYSBkZSBtYW5pb2JyYXMnfSxcclxuICAgIG1lZXRpbmdSb29tOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5NZWV0aW5nUm9vbSwgdmFsdWU6IEFtZW5pdHlOYW1lLk1lZXRpbmdSb29tLCBuYW1lOiAnU2FsYSBkZSBjb25mZXJlbmNpYXMnfSxcclxuICAgIG1lenphbmluZToge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuTWV6emFuaW5lLCB2YWx1ZTogQW1lbml0eU5hbWUuTWV6emFuaW5lLCBuYW1lOiAnQ29uIGVudHJlcGlzbyd9LFxyXG4gICAgbWl4ZWRCdWlsZGluZzoge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuTWl4ZWRCdWlsZGluZywgdmFsdWU6IEFtZW5pdHlOYW1lLk1peGVkQnVpbGRpbmcsIG5hbWU6ICdFbiBlZGlmaWNpbyBtaXh0byd9LFxyXG4gICAgbmF0dXJhbExpZ2h0aW5nOiB7XHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBpY29uTmFtZTogQW1lbml0eU5hbWUuTmF0dXJhbExpZ2h0aW5nLFxyXG4gICAgICB2YWx1ZTogQW1lbml0eU5hbWUuTmF0dXJhbExpZ2h0aW5nLFxyXG4gICAgICBuYW1lOiAnSWx1bWluYWNpb24gbmF0dXJhbCdcclxuICAgIH0sXHJcbiAgICBvZmZpY2VzOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5PZmZpY2VzLCB2YWx1ZTogQW1lbml0eU5hbWUuT2ZmaWNlcywgbmFtZTogJ0NvbiBvZmljaW5hcyd9LFxyXG4gICAgb3BlblNwYWNlOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5PcGVuU3BhY2UsIHZhbHVlOiBBbWVuaXR5TmFtZS5PcGVuU3BhY2UsIG5hbWU6ICdFc3BhY2lvIGFiaWVydG8nfSxcclxuICAgIHBsYXRmb3Jtczoge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuUGxhdGZvcm1zLCB2YWx1ZTogQW1lbml0eU5hbWUuUGxhdGZvcm1zLCBuYW1lOiAnQW5kZW5lcyd9LFxyXG4gICAgcGxheWdyb3VuZDoge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuUGxheWdyb3VuZCwgdmFsdWU6IEFtZW5pdHlOYW1lLlBsYXlncm91bmQsIG5hbWU6ICdKdWVnb3MgaW5mYW50aWxlcyd9LFxyXG4gICAgcGxheXJvb206IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLlBsYXlyb29tLCB2YWx1ZTogQW1lbml0eU5hbWUuUGxheXJvb20sIG5hbWU6ICdTYWzDs24gZGUganVlZ29zJ30sXHJcbiAgICBwb29sOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5Qb29sLCB2YWx1ZTogQW1lbml0eU5hbWUuUG9vbCwgbmFtZTogJ0FsYmVyY2EnfSxcclxuICAgIHJhaWxTcHVyOiB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5SYWlsU3B1ciwgdmFsdWU6IEFtZW5pdHlOYW1lLlJhaWxTcHVyLCBuYW1lOiAnRXNwdWVsYSBkZSBGRi5DQyd9LFxyXG4gICAgcmFpbHlhcmQ6IHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLlJhaWxZYXJkLCB2YWx1ZTogQW1lbml0eU5hbWUuUmFpbFlhcmQsIG5hbWU6ICdQYXRpbyBkZSBtYW5pb2JyYXMnfSxcclxuICAgIHJlY2VwdGlvbjoge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuUmVjZXB0aW9uLCB2YWx1ZTogQW1lbml0eU5hbWUuUmVjZXB0aW9uLCBuYW1lOiAnUmVjZXBjacOzbid9LFxyXG4gICAgc2VjdXJpdHlHdWFyZDoge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuU2VjdXJpdHlHdWFyZCwgdmFsdWU6IEFtZW5pdHlOYW1lLlNlY3VyaXR5R3VhcmQsIG5hbWU6ICdDb24gdmlnaWxhbmNpYSd9LFxyXG4gICAgc3RvcmFnZToge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuU3RvcmFnZSwgdmFsdWU6IEFtZW5pdHlOYW1lLlN0b3JhZ2UsIG5hbWU6ICdCb2RlZ2EnfSxcclxuICAgIHZpc2l0b3JQYXJraW5nOiB7XHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBpY29uTmFtZTogQW1lbml0eU5hbWUuVmlzaXRvclBhcmtpbmcsXHJcbiAgICAgIHZhbHVlOiBBbWVuaXR5TmFtZS5WaXNpdG9yUGFya2luZyxcclxuICAgICAgbmFtZTogJ0VzdGFjaW9uYW1pZW50byBwYXJhIHZpc2l0YXMnXHJcbiAgICB9LFxyXG4gICAgZmVhdHVyZXM6IFtcclxuICAgICAge1xyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGljb25OYW1lOiBBbWVuaXR5TmFtZS5OZWFyUHVibGljVHJhbnNwb3J0YXRpb24sXHJcbiAgICAgICAgdmFsdWU6IEFtZW5pdHlOYW1lLk5lYXJQdWJsaWNUcmFuc3BvcnRhdGlvbixcclxuICAgICAgICBuYW1lOiAnQ2VyY2EgZGUgZXN0YWNpb25lcyBkZSB0cmFuc3BvcnRlJ1xyXG4gICAgICB9LFxyXG4gICAgICB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5BZGphY2VudENvbW1lcmNlLCB2YWx1ZTogQW1lbml0eU5hbWUuTmVhclNob3BzLCBuYW1lOiAnQ2VyY2EgZGUgY29tZXJjaW9zJ30sXHJcbiAgICAgIHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLk9uQnVzeVJvYWQsIHZhbHVlOiBBbWVuaXR5TmFtZS5PbkJ1c3lSb2FkLCBuYW1lOiAnQXZlbmlkYSBwcmluY2lwYWwnfSxcclxuICAgICAge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuQ291bnRyeVNpZGUsIHZhbHVlOiBBbWVuaXR5TmFtZS5Db3VudHJ5U2lkZSwgbmFtZTogJ1N1YnVyYmlvJ30sXHJcbiAgICAgIHtjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLkRvd250b3duLCB2YWx1ZTogQW1lbml0eU5hbWUuRG93bnRvd24sIG5hbWU6ICdDw6ludHJpY28nfSxcclxuICAgICAge1xyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGljb25OYW1lOiBBbWVuaXR5TmFtZS5Hb29kUmVhY2hhYmxlVHJhZmZpYyxcclxuICAgICAgICB2YWx1ZTogQW1lbml0eU5hbWUuR29vZFJlYWNoYWJsZVRyYWZmaWMsXHJcbiAgICAgICAgbmFtZTogJ1NlIGxsZWdhIHNpbiB0cmFmaWNvJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLk5lYXJGaXRuZXNzQ2VudHJlLFxyXG4gICAgICAgIHZhbHVlOiBBbWVuaXR5TmFtZS5OZWFyRml0bmVzc0NlbnRyZSxcclxuICAgICAgICBuYW1lOiAnQ2VyY2EgZGUgY2VudHJvIGRlcG9ydGl2bydcclxuICAgICAgfSxcclxuICAgICAge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuTmVhckhpZ2h3YXksIHZhbHVlOiBBbWVuaXR5TmFtZS5OZWFySGlnaHdheSwgbmFtZTogJ0NlcmNhIGRlIGF1dG9waXN0YSd9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLk5lYXJIb3NwaXRhbCxcclxuICAgICAgICB2YWx1ZTogQW1lbml0eU5hbWUuTmVhckhvc3BpdGFsLFxyXG4gICAgICAgIG5hbWU6ICdDZXJjYSBkZSBjZW50cm9zIGRlIHNhbHVkJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaWNvbk5hbWU6IEFtZW5pdHlOYW1lLk5lYXJQYXJrLFxyXG4gICAgICAgIHZhbHVlOiBBbWVuaXR5TmFtZS5OZWFyUGFyayxcclxuICAgICAgICBuYW1lOiAnQ2VyY2EgZGUgcGFycXVlJ1xyXG4gICAgICB9LFxyXG4gICAgICB7Y2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiBBbWVuaXR5TmFtZS5OZWFyU2Nob29scywgdmFsdWU6IEFtZW5pdHlOYW1lLk5lYXJTY2hvb2xzLCBuYW1lOiAnQ2VyY2EgZGUgZXNjdWVsYXMnfSxcclxuICAgICAge2NoZWNrZWQ6IGZhbHNlLCBpY29uTmFtZTogQW1lbml0eU5hbWUuT25RdWlldFJvYWQsIHZhbHVlOiBBbWVuaXR5TmFtZS5PblF1aWV0Um9hZCwgbmFtZTogJ0VuIGNhbGxlIHRyYW5xdWlsYSd9LFxyXG4gICAgXVxyXG4gIH07XHJcbiAgc3RhdGljIER1cmF0aW9uTGlzdCA9IFtcclxuICAgIDMwLCA2MCwgOTAsIDE4MCwgMzY1XHJcbiAgXTtcclxuICBzdGF0aWMgQ29tbWlzc2lvbkxpc3Q6IHtTQUxFOiBudW1iZXJbXSwgUkVOVDogbnVtYmVyW119ID0ge1xyXG4gICAgU0FMRTogWzAuMDYsIDAuMDU1LCAwLjA1LCAwLjA0NSwgMC4wNCwgMC4wMzUsIDAuMDMwLCAwLjAyNSwgMC4wMjAsIDAuMDE1LCAwLjAxXSxcclxuICAgIFJFTlQ6IFsyLCAxLjUsIDEsIDAuNV1cclxuICB9O1xyXG4gIHN0YXRpYyBTaGFyZWRDb21taXNzaW9uTGlzdDogbnVtYmVyW10gPSBbXHJcbiAgICAwLjUwLCAwLjQwLCAwLjMwLCAwLjIwLCAwLjEwXHJcbiAgXTtcclxuICBzdGF0aWMgTGFuZFVzZUxpc3Q6IHtuYW1lOiBzdHJpbmcsIHZhbHVlOiBMYW5kVXNlRW51bX1bXSA9IFtcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0hhYml0YWNpb25hbCB1bmlmYW1pbGlhcicsXHJcbiAgICAgIHZhbHVlOiBMYW5kVXNlRW51bS5TSU5HTEVfRkFNSUxZX0hPVVNJTkdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdIYWJpdGFjaW9uYWwgcGx1cmlmYW1pbGlhcicsXHJcbiAgICAgIHZhbHVlOiBMYW5kVXNlRW51bS5NVUxUSV9GQU1JTFlfSE9VU0lOR1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0hhYml0YWNpb25hbCBjb24gY29tZXJjaW8nLFxyXG4gICAgICB2YWx1ZTogTGFuZFVzZUVudW0uSE9VU0lOR19XSVRIX0NPTU1FUkNFXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnSGFiaXRhY2lvbmFsIGNvbiBvZmljaW5hJyxcclxuICAgICAgdmFsdWU6IExhbmRVc2VFbnVtLkhPVVNJTkdfV0lUSF9PRkZJQ0VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdIYWJpdGFjaW9uYWwgbWl4dG8nLFxyXG4gICAgICB2YWx1ZTogTGFuZFVzZUVudW0uTUlYRURfSE9VU0lOR1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0NvbWVyY2lvJyxcclxuICAgICAgdmFsdWU6IExhbmRVc2VFbnVtLkNPTU1FUkNFXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnT2ZpY2luYScsXHJcbiAgICAgIHZhbHVlOiBMYW5kVXNlRW51bS5PRkZJQ0VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdTZXJ2aWNpb3MnLFxyXG4gICAgICB2YWx1ZTogTGFuZFVzZUVudW0uU0VSVklDRVNcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdJbmR1c3RyaWEnLFxyXG4gICAgICB2YWx1ZTogTGFuZFVzZUVudW0uSU5EVVNUUllcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdBZ3LDrWNvbGEnLFxyXG4gICAgICB2YWx1ZTogTGFuZFVzZUVudW0uQUdSSUNVTFRVUkFMXHJcbiAgICB9LCB7XHJcbiAgICAgIG5hbWU6ICdObyBlc3BlY2lmaWNhZG8nLFxyXG4gICAgICB2YWx1ZTogTGFuZFVzZUVudW0uT1RIRVJcclxuICAgIH1cclxuICBdO1xyXG4gIHN0YXRpYyBBbm5vdW5jZUNoZWNrTGlzdCA9IFtcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0xhcyBmb3RvcyB5IHZpZGVvcyBzb24gbG9zIGNvcnJlY3RvcycsXHJcbiAgICAgIHZhbHVlOiAwLFxyXG4gICAgICBjaGVja2VkOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0xhIG9ydG9ncmFmw61hIHkgZ3JhbcOhdGljYSBlcyBjb3JyZWN0YScsXHJcbiAgICAgIHZhbHVlOiAxLFxyXG4gICAgICBjaGVja2VkOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0xvcyBkYXRvcyBkZSBjb250YWN0byBzb24gY29ycmVjdG9zJyxcclxuICAgICAgdmFsdWU6IDIsXHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnTGEgZGlyZWNjacOzbiwgZW1haWwgeSB3ZWIgZXN0w6FuIGNvcnJlY3RvcycsXHJcbiAgICAgIHZhbHVlOiAzLFxyXG4gICAgICBjaGVja2VkOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ1RvZG8gZXN0w6EgY29ycmVjdG8geSBhcHJ1ZWJvIG1pIGFudW5jaW8nLFxyXG4gICAgICB2YWx1ZTogNCxcclxuICAgICAgY2hlY2tlZDogZmFsc2VcclxuICAgIH1cclxuICBdO1xyXG4gIHN0YXRpYyBEb2N1bWVudHNMaXN0OiB7bmFtZTogc3RyaW5nLCB2YWx1ZTogUEZpbGVUeXBlRW51bSwgbG9hZGVkOiBib29sZWFufVtdID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiAnRXNjcml0dXJhJyxcclxuICAgICAgdmFsdWU6IFBGaWxlVHlwZUVudW0uREVFRCxcclxuICAgICAgbG9hZGVkOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0lkZW50aWZpY2FjacOzbiBQcm9waWV0YXJpbycsXHJcbiAgICAgIHZhbHVlOiBQRmlsZVR5cGVFbnVtLk9XTkVSX0lELFxyXG4gICAgICBsb2FkZWQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnUmVjaWJvIGRlIGFndWEnLFxyXG4gICAgICB2YWx1ZTogUEZpbGVUeXBlRW51bS5XQVRFUl9CSUxMLFxyXG4gICAgICBsb2FkZWQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnUmVjaWJvIGRlIGx1eicsXHJcbiAgICAgIHZhbHVlOiBQRmlsZVR5cGVFbnVtLkVMRUNUUklDSVRZX0JJTEwsXHJcbiAgICAgIGxvYWRlZDogZmFsc2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdSZWNpYm8gcHJlZGlhbCcsXHJcbiAgICAgIHZhbHVlOiBQRmlsZVR5cGVFbnVtLlBST1BFUlRZX0JJTEwsXHJcbiAgICAgIGxvYWRlZDogZmFsc2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdDb25zdGFuY2lhIGRlIG5vIGFkZXVkbycsXHJcbiAgICAgIHZhbHVlOiBQRmlsZVR5cGVFbnVtLkNPTlNUQU5DWV9PRl9OT19ERUJULFxyXG4gICAgICBsb2FkZWQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnTGliZXJ0YWQgZGUgR3JhdmFtZW4nLFxyXG4gICAgICB2YWx1ZTogUEZpbGVUeXBlRW51bS5FWEVNUFRJT05fVEFYLFxyXG4gICAgICBsb2FkZWQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnTGljZW5jaWEgZGUgY29uc3RydWNjacOzbicsXHJcbiAgICAgIHZhbHVlOiBQRmlsZVR5cGVFbnVtLkJVSUxESU5HX0xJQ0VOU0UsXHJcbiAgICAgIGxvYWRlZDogZmFsc2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdUZXJtaW5hY2nDs24gZGUgb2JyYScsXHJcbiAgICAgIHZhbHVlOiBQRmlsZVR5cGVFbnVtLkNPTVBMRVRJT05fT0ZfQ09OU1RSVUNUSU9OLFxyXG4gICAgICBsb2FkZWQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnQWxpbmVhY2nDs24geSBuw7ptZXJvIG9maWNpYWwnLFxyXG4gICAgICB2YWx1ZTogUEZpbGVUeXBlRW51bS5BTElHTk1FTlRfQU5EX09GRklDSUFMX05VTUJFUixcclxuICAgICAgbG9hZGVkOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0hpcG90ZWNhJyxcclxuICAgICAgdmFsdWU6IFBGaWxlVHlwZUVudW0uTU9SVEdBR0UsXHJcbiAgICAgIGxvYWRlZDogZmFsc2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdPdHJvcycsXHJcbiAgICAgIHZhbHVlOiBQRmlsZVR5cGVFbnVtLk9USEVSLFxyXG4gICAgICBsb2FkZWQ6IGZhbHNlXHJcbiAgICB9XHJcbiAgXTtcclxuICBzdGF0aWMgQmVkcm9vbUxpc3Q6IG51bWJlcltdID0gW1xyXG4gICAgMCwgMSwgMiwgMywgNFxyXG4gIF07XHJcbiAgc3RhdGljIEJhdGhyb29tTGlzdDogbnVtYmVyW10gPSBbXHJcbiAgICAwLCAxLCAyLCAzLCA0XHJcbiAgXTtcclxuICBzdGF0aWMgUGFya2luZ1NwYWNlc0xpc3Q6IG51bWJlcltdID0gW1xyXG4gICAgMCwgMSwgMiwgMywgNFxyXG4gIF07XHJcbiAgc3RhdGljIFN1cmZhY2VMaXN0OiBudW1iZXJbXSA9IFtcclxuICAgIDUwLCAxMDAsIDE1MCwgMjAwLCAyNTAsIDMwMCwgMzUwLCA0MDAsIDQ1MCwgNTAwLCA1NTAsIDYwMCwgNjUwLCA3MDAsIDc1MCwgODAwLCA4NTAsIDkwMCwgOTUwLCAxMDAwXHJcbiAgXTtcclxuICBzdGF0aWMgUk9JTGlzdDogbnVtYmVyW10gPSBbXHJcbiAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTgsIDE5LCAyMFxyXG4gIF07XHJcbiAgc3RhdGljIFByb3BlcnR5VHlwZUxpc3Q6IFByb3BlcnR5VHlwZUl0ZW1bXSA9IFtcclxuICAgIHtcclxuICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZUVudW0uSE9VU0UsXHJcbiAgICAgIGljb25OYW1lOiAnaG91c2UnLFxyXG4gICAgICBuYW1lOiAnQ2FzYScsXHJcbiAgICAgIHNob3J0TmFtZTogJ0Nhc2EnLFxyXG4gICAgICBmZWF0dXJlczogQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZmVhdHVyZXMsXHJcbiAgICAgIGFtZW5pdGllczogW1xyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmdhcmRlbixcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5wb29sLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnN0b3JhZ2UsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMubWFpZHNCYXRocm9vbSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5zZWN1cml0eUd1YXJkLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnBsYXlncm91bmQsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMudmlzaXRvclBhcmtpbmcsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZ3ltLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmJhbGNvbnksXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuamFjdXp6aSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5wbGF5cm9vbSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5mdXJuaXNoZWQsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucm9vZkdhcmRlbixcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5wZXRGcmllbmRseSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5kaWZmZXJlbnRBYmlsaXRpZXNcclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZUVudW0uUkVTSURFTlRJQUwsXHJcbiAgICAgIGljb25OYW1lOiAncmVzaWRlbnRpYWwnLFxyXG4gICAgICBuYW1lOiAnVml2aWVuZGEnLFxyXG4gICAgICBzaG9ydE5hbWU6ICdWaXZpZW5kYScsXHJcbiAgICAgIGZlYXR1cmVzOiBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5mZWF0dXJlcyxcclxuICAgICAgYW1lbml0aWVzOiBbXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZ2FyZGVuLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnBvb2wsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuc3RvcmFnZSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5tYWlkc0JhdGhyb29tLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnNlY3VyaXR5R3VhcmQsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucGxheWdyb3VuZCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy52aXNpdG9yUGFya2luZyxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5neW0sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuYmFsY29ueSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5qYWN1enppLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnBsYXlyb29tLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmZ1cm5pc2hlZCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5yb29mR2FyZGVuLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnBldEZyaWVuZGx5LFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmRpZmZlcmVudEFiaWxpdGllc1xyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB2YWx1ZTogUHJvcGVydHlUeXBlRW51bS5BUEFSVE1FTlQsXHJcbiAgICAgIGljb25OYW1lOiAnYXBhcnRtZW50JyxcclxuICAgICAgbmFtZTogJ0RlcGFydGFtZW50bycsXHJcbiAgICAgIHNob3J0TmFtZTogJ0RlcHRvJyxcclxuICAgICAgZmVhdHVyZXM6IENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmZlYXR1cmVzLFxyXG4gICAgICBhbWVuaXRpZXM6IFtcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5nYXJkZW4sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucG9vbCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5zdG9yYWdlLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLm1haWRzQmF0aHJvb20sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuc2VjdXJpdHlHdWFyZCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5wbGF5Z3JvdW5kLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnZpc2l0b3JQYXJraW5nLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmd5bSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5iYWxjb255LFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmphY3V6emksXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucGxheXJvb20sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZnVybmlzaGVkLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnJvb2ZHYXJkZW4sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucGV0RnJpZW5kbHksXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZGlmZmVyZW50QWJpbGl0aWVzXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGVFbnVtLlJPT00sXHJcbiAgICAgIGljb25OYW1lOiAncm9vbScsXHJcbiAgICAgIG5hbWU6ICdIYWJpdGFjacOzbicsXHJcbiAgICAgIHNob3J0TmFtZTogJ0hhYml0YWNpw7NuJyxcclxuICAgICAgZmVhdHVyZXM6IENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmZlYXR1cmVzLFxyXG4gICAgICBhbWVuaXRpZXM6IFtcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5nYXJkZW4sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucG9vbCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5zdG9yYWdlLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLm1haWRzQmF0aHJvb20sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuc2VjdXJpdHlHdWFyZCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5wbGF5Z3JvdW5kLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnZpc2l0b3JQYXJraW5nLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmd5bSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5iYWxjb255LFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmphY3V6emksXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucGxheXJvb20sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZnVybmlzaGVkLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmhpZ2hTcGVlZEludGVybmV0LFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnJvb2ZHYXJkZW4sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucGV0RnJpZW5kbHksXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZGlmZmVyZW50QWJpbGl0aWVzXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGVFbnVtLk9GRklDRSxcclxuICAgICAgaWNvbk5hbWU6ICdvZmZpY2UnLFxyXG4gICAgICBuYW1lOiAnT2ZpY2luYScsXHJcbiAgICAgIHNob3J0TmFtZTogJ09maWNpbmEnLFxyXG4gICAgICBmZWF0dXJlczogQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZmVhdHVyZXMsXHJcbiAgICAgIGFtZW5pdGllczogW1xyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnZpc2l0b3JQYXJraW5nLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmZ1cm5pc2hlZCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5oaWdoU3BlZWRJbnRlcm5ldCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5yZWNlcHRpb24sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuYWRqYWNlbnRQaWNuaWMsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMubWVldGluZ1Jvb20sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuYWRqYWNlbnRHeW0sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMub3BlblNwYWNlLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmFpckNvbmRpdGlvbmVyLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmFkamFjZW50Q29tbWVyY2UsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMubWl4ZWRCdWlsZGluZyxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5yb29mR2FyZGVuLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnBldEZyaWVuZGx5LFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmRpZmZlcmVudEFiaWxpdGllc1xyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB2YWx1ZTogUHJvcGVydHlUeXBlRW51bS5SRVRBSUwsXHJcbiAgICAgIGljb25OYW1lOiAncmV0YWlsJyxcclxuICAgICAgbmFtZTogJ0NvbWVyY2lvJyxcclxuICAgICAgc2hvcnROYW1lOiAnQ29tZXJjaW8nLFxyXG4gICAgICBmZWF0dXJlczogQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZmVhdHVyZXMsXHJcbiAgICAgIGFtZW5pdGllczogW1xyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLm1peGVkQnVpbGRpbmcsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZmFjaW5nU3RyZWV0LFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLm1hbmV1dmVyQXJlYSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5raXRjaGVuU2VydmljZXMsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZmluaXNoaW5ncyxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5tZXp6YW5pbmUsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuaW5TaG9wcGluZ0NlbnRlcixcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5pbkNvbW1lcmNpYWxBcmVhLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmN1c3RvbWVyUGFya2luZyxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5kb3VibGVIZWlnaHQsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucm9vZkdhcmRlbixcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5wZXRGcmllbmRseSxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5kaWZmZXJlbnRBYmlsaXRpZXNcclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZUVudW0uV0FSRUhPVVNFLFxyXG4gICAgICBpY29uTmFtZTogJ3dhcmVob3VzZScsXHJcbiAgICAgIG5hbWU6ICdCb2RlZ2EnLFxyXG4gICAgICBzaG9ydE5hbWU6ICdCb2RlZ2EnLFxyXG4gICAgICBmZWF0dXJlczogQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZmVhdHVyZXMsXHJcbiAgICAgIGFtZW5pdGllczogW1xyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLnNlY3VyaXR5R3VhcmQsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuY3VzdG9tZXJQYXJraW5nLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmRvdWJsZUhlaWdodCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5yYWlseWFyZCxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5wbGF0Zm9ybXMsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuaGlnaFJlc2lzdGFuY2VGbG9vcnMsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMub2ZmaWNlcyxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5kcmVzc2luZ1Jvb21zLFxyXG4gICAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuQW1lbml0aWVzLmRpbmluZ1Jvb20sXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuaW5JbmR1c3RyaWFsUGFyayxcclxuICAgICAgICBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5uYXR1cmFsTGlnaHRpbmcsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMucmFpbFNwdXIsXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZGlmZmVyZW50QWJpbGl0aWVzXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGVFbnVtLkxBTkQsXHJcbiAgICAgIGljb25OYW1lOiAnbGFuZCcsXHJcbiAgICAgIG5hbWU6ICdUZXJyZW5vJyxcclxuICAgICAgc2hvcnROYW1lOiAnVGVycmVubycsXHJcbiAgICAgIGZlYXR1cmVzOiBDb25zdGFudHNDb21wb25lbnRzLkFtZW5pdGllcy5mZWF0dXJlcyxcclxuICAgICAgYW1lbml0aWVzOiBbXHJcbiAgICAgICAgQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuc2VjdXJpdHlHdWFyZFxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB2YWx1ZTogUHJvcGVydHlUeXBlRW51bS5JTlZFU1RNRU5ULFxyXG4gICAgICBpY29uTmFtZTogJ2ludmVzdG1lbnQnLFxyXG4gICAgICBuYW1lOiAnSW52ZXJzacOzbicsXHJcbiAgICAgIHNob3J0TmFtZTogJ0ludmVyc2nDs24nLFxyXG4gICAgICBmZWF0dXJlczogQ29uc3RhbnRzQ29tcG9uZW50cy5BbWVuaXRpZXMuZmVhdHVyZXMsXHJcbiAgICAgIGFtZW5pdGllczogW11cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGVFbnVtLk5PTkUsXHJcbiAgICAgIG5hbWU6ICdUb2RvJyxcclxuICAgICAgc2hvcnROYW1lOiAnVG9kbycsXHJcbiAgICAgIGljb25OYW1lOiAnYWxsJyxcclxuICAgICAgZmVhdHVyZXM6IFtdLFxyXG4gICAgICBhbWVuaXRpZXM6IFtdXHJcbiAgICB9XHJcbiAgXTtcclxuICBzdGF0aWMgT2ZmZXJpbmdUeXBlTGlzdDogeyB2YWx1ZTogT2ZmZXJpbmdUeXBlRW51bSwgbmFtZTogc3RyaW5nIH1bXSA9IFtcclxuICAgIHtcclxuICAgICAgdmFsdWU6IE9mZmVyaW5nVHlwZUVudW0uU0FMRSxcclxuICAgICAgbmFtZTogJ1ZlbnRhJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdmFsdWU6IE9mZmVyaW5nVHlwZUVudW0uUkVOVCxcclxuICAgICAgbmFtZTogJ1JlbnRhJ1xyXG4gICAgfSxcclxuICBdO1xyXG4gIHN0YXRpYyBMb2NhdGVMaXN0OiBhbnkgPSB7XHJcbiAgICBVU0Q6IHtsb2NhdGU6ICdlbi1VUycsIGN1cnJlbmN5OiAnVVNEJ30sXHJcbiAgICBNWE46IHtsb2NhdGU6ICdlcy1NWCcsIGN1cnJlbmN5OiAnTVhOJ30sXHJcbiAgICBHQlA6IHtsb2NhdGU6ICdlbi1HQicsIGN1cnJlbmN5OiAnR0JQJ30sXHJcbiAgICBFVVI6IHtsb2NhdGU6ICdkZS1ERScsIGN1cnJlbmN5OiAnRVVSJ30sXHJcbiAgICBCUkw6IHtsb2NhdGU6ICdwdC1CUicsIGN1cnJlbmN5OiAnQlJMJ30sXHJcbiAgICBDTlk6IHtsb2NhdGU6ICd6aC1DSCcsIGN1cnJlbmN5OiAnQ05ZJ31cclxuICB9O1xyXG4gIHN0YXRpYyBQcm9wZXJ0eVN0YXR1c0xpc3Q6IFByb3BlcnR5U3RhdHVzSXRlbVtdID0gW1xyXG4gICAgeyBpY29uOiAnYW5ub3VuY2UnLCBuYW1lOiAnQW51bmNpYWRhcycsIHZhbHVlOiBTdGF0dXNUeXBlRW51bS5BTk5PVU5DRUQgfSxcclxuICAgIHsgaWNvbjogJ2V4cGlyZWQnLCBuYW1lOiAnRXhwaXJhZGFzJywgdmFsdWU6IFN0YXR1c1R5cGVFbnVtLkVYUElSRUQgfSxcclxuICAgIHsgaWNvbjogJ2hpZGRlbicsIG5hbWU6ICdPY3VsdGFzJywgdmFsdWU6IFN0YXR1c1R5cGVFbnVtLkhJRERFTiB9LFxyXG4gICAgeyBpY29uOiAncmVhZHknLCBuYW1lOiAnTGlzdGFzIHBhcmEgYW51bmNpYXInLCB2YWx1ZTogU3RhdHVzVHlwZUVudW0uUkVBRFkgfSxcclxuICAgIHsgaWNvbjogJ2RyYWZ0JywgbmFtZTogJ0JvcnJhZG9yJywgdmFsdWU6IFN0YXR1c1R5cGVFbnVtLkRSQUZUICB9XHJcbiAgXTtcclxufVxyXG4iXX0=