@wizishop/wizi-block 14.1.19-beta → 14.1.20-beta
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.
- package/esm2020/lib/structures/map/background-form-left/map-background-form-left.component.mjs +36 -44
- package/esm2020/lib/structures/map/background-form-right/map-background-form-right.component.mjs +36 -44
- package/esm2020/lib/structures/map/fullpage/map-fullpage.component.mjs +35 -45
- package/esm2020/lib/structures/map/left-text/map-left-text.component.mjs +33 -43
- package/esm2020/lib/structures/map/right-text/map-right-text.component.mjs +33 -43
- package/esm2020/lib/structures/map/text-form/map-text-form.component.mjs +36 -46
- package/esm2020/lib/structures/structures.module.mjs +5 -1
- package/fesm2015/wizishop-wizi-block.mjs +194 -243
- package/fesm2015/wizishop-wizi-block.mjs.map +1 -1
- package/fesm2020/wizishop-wizi-block.mjs +194 -243
- package/fesm2020/wizishop-wizi-block.mjs.map +1 -1
- package/lib/structures/map/background-form-left/map-background-form-left.component.d.ts +8 -6
- package/lib/structures/map/background-form-right/map-background-form-right.component.d.ts +8 -6
- package/lib/structures/map/fullpage/map-fullpage.component.d.ts +7 -5
- package/lib/structures/map/left-text/map-left-text.component.d.ts +7 -5
- package/lib/structures/map/right-text/map-right-text.component.d.ts +7 -5
- package/lib/structures/map/text-form/map-text-form.component.d.ts +8 -6
- package/lib/structures/structures.module.d.ts +5 -4
- package/package.json +1 -1
- package/wizi-block.scss +374 -374
package/esm2020/lib/structures/map/background-form-left/map-background-form-left.component.mjs
CHANGED
|
@@ -2,7 +2,6 @@ import { Component, ElementRef, ViewChild } from '@angular/core';
|
|
|
2
2
|
import { FORM_NAME_ID_FORM } from '../../../dtos/forms/forms.dto';
|
|
3
3
|
import { StructuresComponent } from '../../structures.component';
|
|
4
4
|
import { icon, latLng, marker, tileLayer } from 'leaflet';
|
|
5
|
-
import places from 'places.js';
|
|
6
5
|
import { ApiService } from '../../../services/utils/api.service';
|
|
7
6
|
import { MapBackgroundFormLeftService } from '../../../services/blocks/map/map-background-form-left.service';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
@@ -14,14 +13,17 @@ import * as i5 from "../../../shared/components/structure-select/structure-selec
|
|
|
14
13
|
import * as i6 from "../../../shared/components/loader/loader.component";
|
|
15
14
|
import * as i7 from "@wizishop/wizi-editor";
|
|
16
15
|
import * as i8 from "@asymmetrik/ngx-leaflet";
|
|
17
|
-
import * as i9 from "
|
|
18
|
-
import * as i10 from "
|
|
16
|
+
import * as i9 from "ngx-google-places-autocomplete";
|
|
17
|
+
import * as i10 from "../../../shared/pipes/answer-type/answer-type.pipe";
|
|
18
|
+
import * as i11 from "@ngx-translate/core";
|
|
19
19
|
export class MapBackgroundFormLeftComponent extends StructuresComponent {
|
|
20
20
|
constructor(apiService) {
|
|
21
21
|
super();
|
|
22
22
|
this.apiService = apiService;
|
|
23
23
|
this.address = '';
|
|
24
|
+
this.triggerAddress = '';
|
|
24
25
|
this.editPlaceMap = null;
|
|
26
|
+
this.firstTimeTrigger = false;
|
|
25
27
|
this.options = {};
|
|
26
28
|
this.layers = [];
|
|
27
29
|
this.showMap = false;
|
|
@@ -44,27 +46,17 @@ export class MapBackgroundFormLeftComponent extends StructuresComponent {
|
|
|
44
46
|
}
|
|
45
47
|
});
|
|
46
48
|
}
|
|
47
|
-
|
|
48
|
-
const placesAutocomplete = places({
|
|
49
|
-
appId: 'pl9OI1NPY62Y',
|
|
50
|
-
apiKey: '290e5a0e33e751c85c36690d502991fc',
|
|
51
|
-
container: this.input.nativeElement,
|
|
52
|
-
});
|
|
53
|
-
placesAutocomplete.on('change', (algoliaReturnElement) => {
|
|
54
|
-
this.setCoordinateOnPlaces(algoliaReturnElement);
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
setCoordinateOnPlaces(algoliaReturnElement) {
|
|
49
|
+
setCoordinateOnPlaces(googleResults) {
|
|
58
50
|
this.showMap = false;
|
|
59
51
|
this.options = {
|
|
60
|
-
layers: [tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom:
|
|
52
|
+
layers: [tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: 'WiziShop' })],
|
|
61
53
|
zoom: 18,
|
|
62
54
|
zoomControl: false,
|
|
63
|
-
center: latLng(
|
|
55
|
+
center: latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng),
|
|
64
56
|
};
|
|
65
|
-
this.center = latLng(
|
|
57
|
+
this.center = latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng);
|
|
66
58
|
this.layers = [
|
|
67
|
-
marker([
|
|
59
|
+
marker([googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng], {
|
|
68
60
|
icon: icon({
|
|
69
61
|
iconSize: [25, 41],
|
|
70
62
|
iconAnchor: [13, 41],
|
|
@@ -73,23 +65,32 @@ export class MapBackgroundFormLeftComponent extends StructuresComponent {
|
|
|
73
65
|
}),
|
|
74
66
|
}),
|
|
75
67
|
];
|
|
76
|
-
this.contentBlock[this.FORM_NAME_COORDINATE_Y] =
|
|
77
|
-
this.contentBlock[this.FORM_NAME_COORDINATE_X] =
|
|
78
|
-
this.address =
|
|
68
|
+
this.contentBlock[this.FORM_NAME_COORDINATE_Y] = googleResults.suggestion.latlng.lat;
|
|
69
|
+
this.contentBlock[this.FORM_NAME_COORDINATE_X] = googleResults.suggestion.latlng.lng;
|
|
70
|
+
this.address = googleResults.suggestion.value;
|
|
79
71
|
this.showMap = true;
|
|
80
72
|
this.persist();
|
|
81
73
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
74
|
+
handleAddressChange(event) {
|
|
75
|
+
this.googleMapReturnElement = {
|
|
76
|
+
suggestion: {
|
|
77
|
+
latlng: {
|
|
78
|
+
lat: event.geometry.location.lat(),
|
|
79
|
+
lng: event.geometry.location.lng(),
|
|
80
|
+
},
|
|
81
|
+
value: event.name,
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
this.setCoordinateOnPlaces(this.googleMapReturnElement);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Avoid partial map loaded at the initialization
|
|
88
|
+
* @param map
|
|
89
|
+
*/
|
|
90
|
+
onMapReady(map) {
|
|
91
|
+
setTimeout(() => {
|
|
92
|
+
map.invalidateSize();
|
|
93
|
+
}, 0);
|
|
93
94
|
}
|
|
94
95
|
selectThisForm() {
|
|
95
96
|
if (this.selectedValue === null) {
|
|
@@ -101,23 +102,14 @@ export class MapBackgroundFormLeftComponent extends StructuresComponent {
|
|
|
101
102
|
this.contentBlock[FORM_NAME_ID_FORM] = this.selectedValue.id;
|
|
102
103
|
this.persist();
|
|
103
104
|
}
|
|
104
|
-
/**
|
|
105
|
-
* Avoid partial map loaded at the initialization
|
|
106
|
-
* @param map
|
|
107
|
-
*/
|
|
108
|
-
onMapReady(map) {
|
|
109
|
-
setTimeout(() => {
|
|
110
|
-
map.invalidateSize();
|
|
111
|
-
}, 0);
|
|
112
|
-
}
|
|
113
105
|
}
|
|
114
106
|
MapBackgroundFormLeftComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MapBackgroundFormLeftComponent, deps: [{ token: i1.ApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
115
|
-
MapBackgroundFormLeftComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: MapBackgroundFormLeftComponent, selector: "wb-map-background-form-left", viewQueries: [{ propertyName: "input", first: true, predicate: ["myInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"wb-map-background-form-left\">\n <div class=\"wb-map-background-form-left__container__config\" *ngIf=\"showMap\">\n <wb-structure-config
|
|
107
|
+
MapBackgroundFormLeftComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: MapBackgroundFormLeftComponent, selector: "wb-map-background-form-left", viewQueries: [{ propertyName: "input", first: true, predicate: ["myInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"wb-map-background-form-left\">\n <div class=\"wb-map-background-form-left__container__config\" *ngIf=\"showMap\">\n <wb-structure-config [blockUUID]=\"uuid\" [position]=\"TYPE_CONFIG_POSITION_RIGHT_TOP\" [isFullwidth]=\"true\">\n <p>{{ 'wb.structures.template.19' | translate }}</p>\n <input\n id=\"address-input-edit{{ uuid }}\"\n type=\"text\"\n [(ngModel)]=\"address\"\n #myInputEdit\n (click)=\"myInputEdit.select()\"\n ngx-google-places-autocomplete\n (onAddressChange)=\"handleAddressChange($event)\"\n />\n </wb-structure-config>\n </div>\n <div class=\"wb-map-background-form-left__selector\" *ngIf=\"!showMap\">\n <p>{{ 'wb.structures.template.19' | translate }}</p>\n <input\n id=\"address-input{{ uuid }}\"\n type=\"text\"\n [(ngModel)]=\"address\"\n #myInput\n (click)=\"myInput.select()\"\n ngx-google-places-autocomplete\n (onAddressChange)=\"handleAddressChange($event)\"\n />\n </div>\n <div class=\"columns is-gapless\" *ngIf=\"showMap\">\n <div class=\"column\">\n <div *ngIf=\"selectedDetailForm.length === 0\">\n <div *ngIf=\"forms.length === 0\" class=\"wb-map-background-form-left__loader\">\n <wb-loader></wb-loader>\n </div>\n <div class=\"wb-map-background-form-left__selector-form\" *ngIf=\"forms.length > 0\">\n <wb-structure-select\n [selectedValue]=\"selectedValue\"\n [forms]=\"forms\"\n (changed)=\"selectedValue = $event; selectThisForm()\"\n ></wb-structure-select>\n </div>\n </div>\n <div *ngIf=\"selectedDetailForm.length > 0\" class=\"wb-map-background-form-left__container-form\">\n <div class=\"wb-map-background-form-left__container-form__editor\">\n <div>\n <wz-editor\n [(ngModel)]=\"contents[BASE_BLOCK_CONTENT][FORM_NAME_TITLE]\"\n (ngModelChange)=\"persist()\"\n [placeholder]=\"'wb.shared.components.quill.1' | translate\"\n >\n </wz-editor>\n </div>\n <div>\n <wz-editor\n [(ngModel)]=\"contents[BASE_BLOCK_CONTENT][FORM_NAME_CONTENT]\"\n (ngModelChange)=\"persist()\"\n [placeholder]=\"'wb.shared.components.quill.1' | translate\"\n >\n </wz-editor>\n </div>\n </div>\n <div class=\"wb-map-background-form-left__container-form__content\">\n <div *ngFor=\"let select of selectedDetailForm\">\n <p [innerHTML]=\"select.title\"></p>\n <p>{{ select.type | answerPipe | translate }}</p>\n </div>\n <div>\n <wb-structure-select\n [selectedValue]=\"selectedValue\"\n [forms]=\"forms\"\n (changed)=\"selectedValue = $event; selectThisForm()\"\n ></wb-structure-select>\n \n <button>{{ selectedValue.submit_label }}</button>\n </div>\n </div>\n </div>\n <div class=\"wb-map-background-form-left__container\">\n <div>\n <div class=\"wb-map-background-form-left__cover\"></div>\n <div\n class=\"wb-map-background-form-left__container__map\"\n leaflet\n [leafletOptions]=\"options\"\n [leafletLayers]=\"layers\"\n [(leafletCenter)]=\"center\"\n (leafletMapReady)=\"onMapReady($event)\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.StructureConfigComponent, selector: "wb-structure-config", inputs: ["isActive", "blockUUID", "position", "isFullwidth", "small", "extraSmall"] }, { kind: "component", type: i5.StructureSelectComponent, selector: "wb-structure-select", inputs: ["selectedValue", "forms", "large", "icon", "label"], outputs: ["changed"] }, { kind: "component", type: i6.LoaderComponent, selector: "wb-loader" }, { kind: "component", type: i7.WiziEditorComponent, selector: "wz-editor", inputs: ["placeholder", "position"] }, { kind: "directive", type: i8.LeafletDirective, selector: "[leaflet]", inputs: ["leafletFitBoundsOptions", "leafletPanOptions", "leafletZoomOptions", "leafletZoomPanOptions", "leafletOptions", "leafletZoom", "leafletCenter", "leafletFitBounds", "leafletMaxBounds", "leafletMinZoom", "leafletMaxZoom"], outputs: ["leafletMapReady", "leafletZoomChange", "leafletCenterChange", "leafletClick", "leafletDoubleClick", "leafletMouseDown", "leafletMouseUp", "leafletMouseMove", "leafletMouseOver", "leafletMouseOut", "leafletMapMove", "leafletMapMoveStart", "leafletMapMoveEnd", "leafletMapZoom", "leafletMapZoomStart", "leafletMapZoomEnd"] }, { kind: "directive", type: i8.LeafletLayersDirective, selector: "[leafletLayers]", inputs: ["leafletLayers"] }, { kind: "directive", type: i9.GooglePlaceDirective, selector: "[ngx-google-places-autocomplete]", inputs: ["options"], outputs: ["onAddressChange"], exportAs: ["ngx-places"] }, { kind: "pipe", type: i10.AnswerTypePipe, name: "answerPipe" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] });
|
|
116
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MapBackgroundFormLeftComponent, decorators: [{
|
|
117
109
|
type: Component,
|
|
118
|
-
args: [{ selector: MapBackgroundFormLeftService.selector(), template: "<div class=\"wb-map-background-form-left\">\n <div class=\"wb-map-background-form-left__container__config\" *ngIf=\"showMap\">\n <wb-structure-config
|
|
110
|
+
args: [{ selector: MapBackgroundFormLeftService.selector(), template: "<div class=\"wb-map-background-form-left\">\n <div class=\"wb-map-background-form-left__container__config\" *ngIf=\"showMap\">\n <wb-structure-config [blockUUID]=\"uuid\" [position]=\"TYPE_CONFIG_POSITION_RIGHT_TOP\" [isFullwidth]=\"true\">\n <p>{{ 'wb.structures.template.19' | translate }}</p>\n <input\n id=\"address-input-edit{{ uuid }}\"\n type=\"text\"\n [(ngModel)]=\"address\"\n #myInputEdit\n (click)=\"myInputEdit.select()\"\n ngx-google-places-autocomplete\n (onAddressChange)=\"handleAddressChange($event)\"\n />\n </wb-structure-config>\n </div>\n <div class=\"wb-map-background-form-left__selector\" *ngIf=\"!showMap\">\n <p>{{ 'wb.structures.template.19' | translate }}</p>\n <input\n id=\"address-input{{ uuid }}\"\n type=\"text\"\n [(ngModel)]=\"address\"\n #myInput\n (click)=\"myInput.select()\"\n ngx-google-places-autocomplete\n (onAddressChange)=\"handleAddressChange($event)\"\n />\n </div>\n <div class=\"columns is-gapless\" *ngIf=\"showMap\">\n <div class=\"column\">\n <div *ngIf=\"selectedDetailForm.length === 0\">\n <div *ngIf=\"forms.length === 0\" class=\"wb-map-background-form-left__loader\">\n <wb-loader></wb-loader>\n </div>\n <div class=\"wb-map-background-form-left__selector-form\" *ngIf=\"forms.length > 0\">\n <wb-structure-select\n [selectedValue]=\"selectedValue\"\n [forms]=\"forms\"\n (changed)=\"selectedValue = $event; selectThisForm()\"\n ></wb-structure-select>\n </div>\n </div>\n <div *ngIf=\"selectedDetailForm.length > 0\" class=\"wb-map-background-form-left__container-form\">\n <div class=\"wb-map-background-form-left__container-form__editor\">\n <div>\n <wz-editor\n [(ngModel)]=\"contents[BASE_BLOCK_CONTENT][FORM_NAME_TITLE]\"\n (ngModelChange)=\"persist()\"\n [placeholder]=\"'wb.shared.components.quill.1' | translate\"\n >\n </wz-editor>\n </div>\n <div>\n <wz-editor\n [(ngModel)]=\"contents[BASE_BLOCK_CONTENT][FORM_NAME_CONTENT]\"\n (ngModelChange)=\"persist()\"\n [placeholder]=\"'wb.shared.components.quill.1' | translate\"\n >\n </wz-editor>\n </div>\n </div>\n <div class=\"wb-map-background-form-left__container-form__content\">\n <div *ngFor=\"let select of selectedDetailForm\">\n <p [innerHTML]=\"select.title\"></p>\n <p>{{ select.type | answerPipe | translate }}</p>\n </div>\n <div>\n <wb-structure-select\n [selectedValue]=\"selectedValue\"\n [forms]=\"forms\"\n (changed)=\"selectedValue = $event; selectThisForm()\"\n ></wb-structure-select>\n \n <button>{{ selectedValue.submit_label }}</button>\n </div>\n </div>\n </div>\n <div class=\"wb-map-background-form-left__container\">\n <div>\n <div class=\"wb-map-background-form-left__cover\"></div>\n <div\n class=\"wb-map-background-form-left__container__map\"\n leaflet\n [leafletOptions]=\"options\"\n [leafletLayers]=\"layers\"\n [(leafletCenter)]=\"center\"\n (leafletMapReady)=\"onMapReady($event)\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
119
111
|
}], ctorParameters: function () { return [{ type: i1.ApiService }]; }, propDecorators: { input: [{
|
|
120
112
|
type: ViewChild,
|
|
121
113
|
args: ['myInput']
|
|
122
114
|
}] } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWJhY2tncm91bmQtZm9ybS1sZWZ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpemktYmxvY2svc3JjL2xpYi9zdHJ1Y3R1cmVzL21hcC9iYWNrZ3JvdW5kLWZvcm0tbGVmdC9tYXAtYmFja2dyb3VuZC1mb3JtLWxlZnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2l6aS1ibG9jay9zcmMvbGliL3N0cnVjdHVyZXMvbWFwL2JhY2tncm91bmQtZm9ybS1sZWZ0L21hcC1iYWNrZ3JvdW5kLWZvcm0tbGVmdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzFELE9BQU8sTUFBTSxNQUFNLFdBQVcsQ0FBQztBQUUvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0RBQStELENBQUM7Ozs7Ozs7Ozs7OztBQU83RyxNQUFNLE9BQU8sOEJBQ1QsU0FBUSxtQkFBNkM7SUFtQnJELFlBQW9CLFVBQXNCO1FBQ3RDLEtBQUssRUFBRSxDQUFDO1FBRFEsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWhCMUMsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUdiLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXBCLFlBQU8sR0FBRyxFQUFFLENBQUM7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QUFFLENBQUM7UUFDN0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsR0FBRztRQUNWLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzs7MkhBcEhRLDhCQUE4QjsrR0FBOUIsOEJBQThCLDRMQ2hCM0MseWdJQWlGQTsyRkRqRWEsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNJLDRCQUE0QixDQUFDLFFBQVEsRUFBRTtpR0FNM0IsS0FBSztzQkFBMUIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGT1JNX05BTUVfSURfRk9STSB9IGZyb20gJy4uLy4uLy4uL2R0b3MvZm9ybXMvZm9ybXMuZHRvJztcbmltcG9ydCB7IFN0cnVjdHVyZXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zdHJ1Y3R1cmVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcGVuTWFwRHRvIH0gZnJvbSAnLi4vLi4vLi4vZHRvcy9hcGlzL21hcHMvb3Blbi1tYXAuZHRvJztcbmltcG9ydCB7IGljb24sIGxhdExuZywgbWFya2VyLCB0aWxlTGF5ZXIgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCBwbGFjZXMgZnJvbSAncGxhY2VzLmpzJztcbmltcG9ydCB7IEZvcm1MaXN0RHRvIH0gZnJvbSAnLi4vLi4vLi4vZHRvcy9hcGlzL2Zvcm1zL2Zvcm0tbGlzdC5kdG8nO1xuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL2FwaS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcEJhY2tncm91bmRGb3JtTGVmdER0byB9IGZyb20gJy4uLy4uLy4uL2R0b3MvYmxvY2tzL21hcC9tYXAtYmFja2dyb3VuZC1mb3JtLWxlZnQuZHRvJztcbmltcG9ydCB7IE1hcEJhY2tncm91bmRGb3JtTGVmdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ibG9ja3MvbWFwL21hcC1iYWNrZ3JvdW5kLWZvcm0tbGVmdC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1EZXRhaWxEdG8gfSBmcm9tICcuLi8uLi8uLi9kdG9zL2FwaXMvZm9ybXMvZm9ybS1kZXRhaWwuZHRvJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IE1hcEJhY2tncm91bmRGb3JtTGVmdFNlcnZpY2Uuc2VsZWN0b3IoKSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFwLWJhY2tncm91bmQtZm9ybS1sZWZ0LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTWFwQmFja2dyb3VuZEZvcm1MZWZ0Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBTdHJ1Y3R1cmVzQ29tcG9uZW50PE1hcEJhY2tncm91bmRGb3JtTGVmdER0bz5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKCdteUlucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY7XG4gICAgYWRkcmVzcyA9ICcnO1xuICAgIGNlbnRlcjtcblxuICAgIGVkaXRQbGFjZU1hcCA9IG51bGw7XG5cbiAgICBvcHRpb25zID0ge307XG4gICAgbGF5ZXJzID0gW107XG5cbiAgICBzaG93TWFwID0gZmFsc2U7XG5cbiAgICBmb3JtczogRm9ybUxpc3REdG9bXSA9IFtdO1xuXG4gICAgc2VsZWN0ZWRWYWx1ZTogRm9ybUxpc3REdG8gPSBudWxsO1xuXG4gICAgc2VsZWN0ZWREZXRhaWxGb3JtOiBGb3JtRGV0YWlsRHRvW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldENvbXBvbmVudFNlcnZpY2UoTWFwQmFja2dyb3VuZEZvcm1MZWZ0U2VydmljZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgdGhpcy5hcGlTZXJ2aWNlLmdldEZvcm1zTGlzdCgpLnN1YnNjcmliZSgobGlzdHM6IEZvcm1MaXN0RHRvW10pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybXMgPSBsaXN0cztcblxuICAgICAgICAgICAgaWYgKHRoaXMuY29udGVudEJsb2NrW0ZPUk1fTkFNRV9JRF9GT1JNXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybXMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodi5pZCA9PT0gdGhpcy5jb250ZW50QmxvY2tbRk9STV9OQU1FX0lEX0ZPUk1dKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB2O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RUaGlzRm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGxhY2VzQXV0b2NvbXBsZXRlID0gcGxhY2VzKHtcbiAgICAgICAgICAgIGFwcElkOiAncGw5T0kxTlBZNjJZJyxcbiAgICAgICAgICAgIGFwaUtleTogJzI5MGU1YTBlMzNlNzUxYzg1YzM2NjkwZDUwMjk5MWZjJyxcbiAgICAgICAgICAgIGNvbnRhaW5lcjogdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LFxuICAgICAgICB9KTtcblxuICAgICAgICBwbGFjZXNBdXRvY29tcGxldGUub24oJ2NoYW5nZScsIChhbGdvbGlhUmV0dXJuRWxlbWVudDogT3Blbk1hcER0bykgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDb29yZGluYXRlT25QbGFjZXMoYWxnb2xpYVJldHVybkVsZW1lbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRDb29yZGluYXRlT25QbGFjZXMoYWxnb2xpYVJldHVybkVsZW1lbnQ6IE9wZW5NYXBEdG8pIHtcbiAgICAgICAgdGhpcy5zaG93TWFwID0gZmFsc2U7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGxheWVyczogW3RpbGVMYXllcignaHR0cDovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsIHsgbWF4Wm9vbTogMTYsIGF0dHJpYnV0aW9uOiAnV2l6aVNob3AnIH0pXSxcbiAgICAgICAgICAgIHpvb206IDE4LFxuICAgICAgICAgICAgem9vbUNvbnRyb2w6IGZhbHNlLFxuICAgICAgICAgICAgY2VudGVyOiBsYXRMbmcoYWxnb2xpYVJldHVybkVsZW1lbnQuc3VnZ2VzdGlvbi5sYXRsbmcubGF0LCBhbGdvbGlhUmV0dXJuRWxlbWVudC5zdWdnZXN0aW9uLmxhdGxuZy5sbmcpLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNlbnRlciA9IGxhdExuZyhhbGdvbGlhUmV0dXJuRWxlbWVudC5zdWdnZXN0aW9uLmxhdGxuZy5sYXQsIGFsZ29saWFSZXR1cm5FbGVtZW50LnN1Z2dlc3Rpb24ubGF0bG5nLmxuZyk7XG4gICAgICAgIHRoaXMubGF5ZXJzID0gW1xuICAgICAgICAgICAgbWFya2VyKFthbGdvbGlhUmV0dXJuRWxlbWVudC5zdWdnZXN0aW9uLmxhdGxuZy5sYXQsIGFsZ29saWFSZXR1cm5FbGVtZW50LnN1Z2dlc3Rpb24ubGF0bG5nLmxuZ10sIHtcbiAgICAgICAgICAgICAgICBpY29uOiBpY29uKHtcbiAgICAgICAgICAgICAgICAgICAgaWNvblNpemU6IFsyNSwgNDFdLFxuICAgICAgICAgICAgICAgICAgICBpY29uQW5jaG9yOiBbMTMsIDQxXSxcbiAgICAgICAgICAgICAgICAgICAgaWNvblVybDogJ2Fzc2V0cy9ibG9ja3MvaW1hZ2VzL21hcHMvbWFya2VyLWljb24ucG5nJyxcbiAgICAgICAgICAgICAgICAgICAgc2hhZG93VXJsOiAnYXNzZXRzL2Jsb2Nrcy9pbWFnZXMvbWFwcy9tYXJrZXItc2hhZG93LnBuZycsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgXTtcblxuICAgICAgICB0aGlzLmNvbnRlbnRCbG9ja1t0aGlzLkZPUk1fTkFNRV9DT09SRElOQVRFX1ldID0gYWxnb2xpYVJldHVybkVsZW1lbnQuc3VnZ2VzdGlvbi5sYXRsbmcubGF0O1xuICAgICAgICB0aGlzLmNvbnRlbnRCbG9ja1t0aGlzLkZPUk1fTkFNRV9DT09SRElOQVRFX1hdID0gYWxnb2xpYVJldHVybkVsZW1lbnQuc3VnZ2VzdGlvbi5sYXRsbmcubG5nO1xuXG4gICAgICAgIHRoaXMuYWRkcmVzcyA9IGFsZ29saWFSZXR1cm5FbGVtZW50LnN1Z2dlc3Rpb24udmFsdWU7XG4gICAgICAgIHRoaXMuc2hvd01hcCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5wZXJzaXN0KCk7XG4gICAgfVxuXG4gICAgY3JlYXRlRWRpdEFsZ29saWFJbnB1dCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWRpdFBsYWNlTWFwID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRQbGFjZU1hcCA9IHBsYWNlcyh7XG4gICAgICAgICAgICAgICAgYXBwSWQ6ICdwbDlPSTFOUFk2MlknLFxuICAgICAgICAgICAgICAgIGFwaUtleTogJzI5MGU1YTBlMzNlNzUxYzg1YzM2NjkwZDUwMjk5MWZjJyxcbiAgICAgICAgICAgICAgICBjb250YWluZXI6IDxIVE1MSW5wdXRFbGVtZW50PmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNhZGRyZXNzLWlucHV0LWVkaXQnICsgdGhpcy51dWlkKSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmVkaXRQbGFjZU1hcC5vbignY2hhbmdlJywgKGFsZ29saWFSZXR1cm5FbGVtZW50OiBPcGVuTWFwRHRvKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRDb29yZGluYXRlT25QbGFjZXMoYWxnb2xpYVJldHVybkVsZW1lbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RUaGlzRm9ybSgpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXBpU2VydmljZS5nZXRGb3Jtc0RldGFpbCh0aGlzLnNlbGVjdGVkVmFsdWUuaWQpLnN1YnNjcmliZSgobGlzdHM6IEZvcm1EZXRhaWxEdG9bXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGFpbEZvcm0gPSBsaXN0cztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29udGVudEJsb2NrW0ZPUk1fTkFNRV9JRF9GT1JNXSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZS5pZDtcbiAgICAgICAgdGhpcy5wZXJzaXN0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXZvaWQgcGFydGlhbCBtYXAgbG9hZGVkIGF0IHRoZSBpbml0aWFsaXphdGlvblxuICAgICAqIEBwYXJhbSBtYXBcbiAgICAgKi9cbiAgICBvbk1hcFJlYWR5KG1hcCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIG1hcC5pbnZhbGlkYXRlU2l6ZSgpO1xuICAgICAgICB9LCAwKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwid2ItbWFwLWJhY2tncm91bmQtZm9ybS1sZWZ0XCI+XG4gICAgPGRpdiBjbGFzcz1cIndiLW1hcC1iYWNrZ3JvdW5kLWZvcm0tbGVmdF9fY29udGFpbmVyX19jb25maWdcIiAqbmdJZj1cInNob3dNYXBcIj5cbiAgICAgICAgPHdiLXN0cnVjdHVyZS1jb25maWdcbiAgICAgICAgICAgIFtibG9ja1VVSURdPVwidXVpZFwiXG4gICAgICAgICAgICBbcG9zaXRpb25dPVwiVFlQRV9DT05GSUdfUE9TSVRJT05fUklHSFRfVE9QXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjcmVhdGVFZGl0QWxnb2xpYUlucHV0KClcIlxuICAgICAgICAgICAgW2lzRnVsbHdpZHRoXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8cD57eyAnd2Iuc3RydWN0dXJlcy50ZW1wbGF0ZS4xOScgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJhZGRyZXNzLWlucHV0LWVkaXR7eyB1dWlkIH19XCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImFkZHJlc3NcIiAjbXlJbnB1dEVkaXQgKGNsaWNrKT1cIm15SW5wdXRFZGl0LnNlbGVjdCgpXCIgLz5cbiAgICAgICAgPC93Yi1zdHJ1Y3R1cmUtY29uZmlnPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLWxlZnRfX3NlbGVjdG9yXCIgKm5nSWY9XCIhc2hvd01hcFwiPlxuICAgICAgICA8cD57eyAnd2Iuc3RydWN0dXJlcy50ZW1wbGF0ZS4xOScgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDxpbnB1dCBpZD1cImFkZHJlc3MtaW5wdXR7eyB1dWlkIH19XCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImFkZHJlc3NcIiAjbXlJbnB1dCAoY2xpY2spPVwibXlJbnB1dC5zZWxlY3QoKVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbnMgaXMtZ2FwbGVzc1wiICpuZ0lmPVwic2hvd01hcFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWREZXRhaWxGb3JtLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb3Jtcy5sZW5ndGggPT09IDBcIiBjbGFzcz1cIndiLW1hcC1iYWNrZ3JvdW5kLWZvcm0tbGVmdF9fbG9hZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDx3Yi1sb2FkZXI+PC93Yi1sb2FkZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndiLW1hcC1iYWNrZ3JvdW5kLWZvcm0tbGVmdF9fc2VsZWN0b3ItZm9ybVwiICpuZ0lmPVwiZm9ybXMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICA8d2Itc3RydWN0dXJlLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybXNdPVwiZm9ybXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZWQpPVwic2VsZWN0ZWRWYWx1ZSA9ICRldmVudDsgc2VsZWN0VGhpc0Zvcm0oKVwiXG4gICAgICAgICAgICAgICAgICAgID48L3diLXN0cnVjdHVyZS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZERldGFpbEZvcm0ubGVuZ3RoID4gMFwiIGNsYXNzPVwid2ItbWFwLWJhY2tncm91bmQtZm9ybS1sZWZ0X19jb250YWluZXItZm9ybVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLWxlZnRfX2NvbnRhaW5lci1mb3JtX19lZGl0b3JcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx3ei1lZGl0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRlbnRzW0JBU0VfQkxPQ0tfQ09OVEVOVF1bRk9STV9OQU1FX1RJVExFXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicGVyc2lzdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3diLnNoYXJlZC5jb21wb25lbnRzLnF1aWxsLjEnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvd3otZWRpdG9yPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx3ei1lZGl0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRlbnRzW0JBU0VfQkxPQ0tfQ09OVEVOVF1bRk9STV9OQU1FX0NPTlRFTlRdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwZXJzaXN0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2Iuc2hhcmVkLmNvbXBvbmVudHMucXVpbGwuMScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC93ei1lZGl0b3I+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLWxlZnRfX2NvbnRhaW5lci1mb3JtX19jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlbGVjdCBvZiBzZWxlY3RlZERldGFpbEZvcm1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIFtpbm5lckhUTUxdPVwic2VsZWN0LnRpdGxlXCI+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgc2VsZWN0LnR5cGUgfCBhbnN3ZXJQaXBlIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx3Yi1zdHJ1Y3R1cmUtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1zXT1cImZvcm1zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlZCk9XCJzZWxlY3RlZFZhbHVlID0gJGV2ZW50OyBzZWxlY3RUaGlzRm9ybSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3diLXN0cnVjdHVyZS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24+e3sgc2VsZWN0ZWRWYWx1ZS5zdWJtaXRfbGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLWxlZnRfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLWxlZnRfX2NvdmVyXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2ItbWFwLWJhY2tncm91bmQtZm9ybS1sZWZ0X19jb250YWluZXJfX21hcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWFmbGV0XG4gICAgICAgICAgICAgICAgICAgICAgICBbbGVhZmxldE9wdGlvbnNdPVwib3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGVhZmxldExheWVyc109XCJsYXllcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyhsZWFmbGV0Q2VudGVyKV09XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGxlYWZsZXRNYXBSZWFkeSk9XCJvbk1hcFJlYWR5KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWJhY2tncm91bmQtZm9ybS1sZWZ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpemktYmxvY2svc3JjL2xpYi9zdHJ1Y3R1cmVzL21hcC9iYWNrZ3JvdW5kLWZvcm0tbGVmdC9tYXAtYmFja2dyb3VuZC1mb3JtLWxlZnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2l6aS1ibG9jay9zcmMvbGliL3N0cnVjdHVyZXMvbWFwL2JhY2tncm91bmQtZm9ybS1sZWZ0L21hcC1iYWNrZ3JvdW5kLWZvcm0tbGVmdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDOzs7Ozs7Ozs7Ozs7O0FBTzdHLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxtQkFBNkM7SUFxQjdGLFlBQW9CLFVBQXNCO1FBQ3RDLEtBQUssRUFBRSxDQUFDO1FBRFEsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQW5CMUMsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBSXBCLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztR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dCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZPUk1fTkFNRV9JRF9GT1JNIH0gZnJvbSAnLi4vLi4vLi4vZHRvcy9mb3Jtcy9mb3Jtcy5kdG8nO1xuaW1wb3J0IHsgU3RydWN0dXJlc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3N0cnVjdHVyZXMuY29tcG9uZW50JztcbmltcG9ydCB7IE9wZW5NYXBEdG8gfSBmcm9tICcuLi8uLi8uLi9kdG9zL2FwaXMvbWFwcy9vcGVuLW1hcC5kdG8nO1xuaW1wb3J0IHsgaWNvbiwgbGF0TG5nLCBtYXJrZXIsIHRpbGVMYXllciB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IHBsYWNlcyBmcm9tICdwbGFjZXMuanMnO1xuaW1wb3J0IHsgRm9ybUxpc3REdG8gfSBmcm9tICcuLi8uLi8uLi9kdG9zL2FwaXMvZm9ybXMvZm9ybS1saXN0LmR0byc7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwQmFja2dyb3VuZEZvcm1MZWZ0RHRvIH0gZnJvbSAnLi4vLi4vLi4vZHRvcy9ibG9ja3MvbWFwL21hcC1iYWNrZ3JvdW5kLWZvcm0tbGVmdC5kdG8nO1xuaW1wb3J0IHsgTWFwQmFja2dyb3VuZEZvcm1MZWZ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Jsb2Nrcy9tYXAvbWFwLWJhY2tncm91bmQtZm9ybS1sZWZ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybURldGFpbER0byB9IGZyb20gJy4uLy4uLy4uL2R0b3MvYXBpcy9mb3Jtcy9mb3JtLWRldGFpbC5kdG8nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogTWFwQmFja2dyb3VuZEZvcm1MZWZ0U2VydmljZS5zZWxlY3RvcigpLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tYXAtYmFja2dyb3VuZC1mb3JtLWxlZnQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBCYWNrZ3JvdW5kRm9ybUxlZnRDb21wb25lbnQgZXh0ZW5kcyBTdHJ1Y3R1cmVzQ29tcG9uZW50PE1hcEJhY2tncm91bmRGb3JtTGVmdER0bz4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnbXlJbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xuICAgIGFkZHJlc3MgPSAnJztcbiAgICB0cmlnZ2VyQWRkcmVzcyA9ICcnO1xuICAgIGNlbnRlcjtcbiAgICBnb29nbGVNYXBSZXR1cm5FbGVtZW50OiBPcGVuTWFwRHRvO1xuXG4gICAgZWRpdFBsYWNlTWFwID0gbnVsbDtcbiAgICBmaXJzdFRpbWVUcmlnZ2VyID0gZmFsc2U7XG5cbiAgICBvcHRpb25zID0ge307XG4gICAgbGF5ZXJzID0gW107XG5cbiAgICBzaG93TWFwID0gZmFsc2U7XG5cbiAgICBmb3JtczogRm9ybUxpc3REdG9bXSA9IFtdO1xuXG4gICAgc2VsZWN0ZWRWYWx1ZTogRm9ybUxpc3REdG8gPSBudWxsO1xuXG4gICAgc2VsZWN0ZWREZXRhaWxGb3JtOiBGb3JtRGV0YWlsRHRvW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldENvbXBvbmVudFNlcnZpY2UoTWFwQmFja2dyb3VuZEZvcm1MZWZ0U2VydmljZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgdGhpcy5hcGlTZXJ2aWNlLmdldEZvcm1zTGlzdCgpLnN1YnNjcmliZSgobGlzdHM6IEZvcm1MaXN0RHRvW10pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybXMgPSBsaXN0cztcblxuICAgICAgICAgICAgaWYgKHRoaXMuY29udGVudEJsb2NrW0ZPUk1fTkFNRV9JRF9GT1JNXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybXMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodi5pZCA9PT0gdGhpcy5jb250ZW50QmxvY2tbRk9STV9OQU1FX0lEX0ZPUk1dKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB2O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RUaGlzRm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldENvb3JkaW5hdGVPblBsYWNlcyhnb29nbGVSZXN1bHRzOiBPcGVuTWFwRHRvKSB7XG4gICAgICAgIHRoaXMuc2hvd01hcCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICBsYXllcnM6IFt0aWxlTGF5ZXIoJ2h0dHA6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLCB7IG1heFpvb206IDE4LCBhdHRyaWJ1dGlvbjogJ1dpemlTaG9wJyB9KV0sXG4gICAgICAgICAgICB6b29tOiAxOCxcbiAgICAgICAgICAgIHpvb21Db250cm9sOiBmYWxzZSxcbiAgICAgICAgICAgIGNlbnRlcjogbGF0TG5nKGdvb2dsZVJlc3VsdHMuc3VnZ2VzdGlvbi5sYXRsbmcubGF0LCBnb29nbGVSZXN1bHRzLnN1Z2dlc3Rpb24ubGF0bG5nLmxuZyksXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2VudGVyID0gbGF0TG5nKGdvb2dsZVJlc3VsdHMuc3VnZ2VzdGlvbi5sYXRsbmcubGF0LCBnb29nbGVSZXN1bHRzLnN1Z2dlc3Rpb24ubGF0bG5nLmxuZyk7XG4gICAgICAgIHRoaXMubGF5ZXJzID0gW1xuICAgICAgICAgICAgbWFya2VyKFtnb29nbGVSZXN1bHRzLnN1Z2dlc3Rpb24ubGF0bG5nLmxhdCwgZ29vZ2xlUmVzdWx0cy5zdWdnZXN0aW9uLmxhdGxuZy5sbmddLCB7XG4gICAgICAgICAgICAgICAgaWNvbjogaWNvbih7XG4gICAgICAgICAgICAgICAgICAgIGljb25TaXplOiBbMjUsIDQxXSxcbiAgICAgICAgICAgICAgICAgICAgaWNvbkFuY2hvcjogWzEzLCA0MV0sXG4gICAgICAgICAgICAgICAgICAgIGljb25Vcmw6ICdhc3NldHMvYmxvY2tzL2ltYWdlcy9tYXBzL21hcmtlci1pY29uLnBuZycsXG4gICAgICAgICAgICAgICAgICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9ibG9ja3MvaW1hZ2VzL21hcHMvbWFya2VyLXNoYWRvdy5wbmcnLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIF07XG5cbiAgICAgICAgdGhpcy5jb250ZW50QmxvY2tbdGhpcy5GT1JNX05BTUVfQ09PUkRJTkFURV9ZXSA9IGdvb2dsZVJlc3VsdHMuc3VnZ2VzdGlvbi5sYXRsbmcubGF0O1xuICAgICAgICB0aGlzLmNvbnRlbnRCbG9ja1t0aGlzLkZPUk1fTkFNRV9DT09SRElOQVRFX1hdID0gZ29vZ2xlUmVzdWx0cy5zdWdnZXN0aW9uLmxhdGxuZy5sbmc7XG5cbiAgICAgICAgdGhpcy5hZGRyZXNzID0gZ29vZ2xlUmVzdWx0cy5zdWdnZXN0aW9uLnZhbHVlO1xuICAgICAgICB0aGlzLnNob3dNYXAgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMucGVyc2lzdCgpO1xuICAgIH1cblxuICAgIGhhbmRsZUFkZHJlc3NDaGFuZ2UoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5nb29nbGVNYXBSZXR1cm5FbGVtZW50ID0ge1xuICAgICAgICAgICAgc3VnZ2VzdGlvbjoge1xuICAgICAgICAgICAgICAgIGxhdGxuZzoge1xuICAgICAgICAgICAgICAgICAgICBsYXQ6IGV2ZW50Lmdlb21ldHJ5LmxvY2F0aW9uLmxhdCgpLFxuICAgICAgICAgICAgICAgICAgICBsbmc6IGV2ZW50Lmdlb21ldHJ5LmxvY2F0aW9uLmxuZygpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IGV2ZW50Lm5hbWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnNldENvb3JkaW5hdGVPblBsYWNlcyh0aGlzLmdvb2dsZU1hcFJldHVybkVsZW1lbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEF2b2lkIHBhcnRpYWwgbWFwIGxvYWRlZCBhdCB0aGUgaW5pdGlhbGl6YXRpb25cbiAgICAgKiBAcGFyYW0gbWFwXG4gICAgICovXG4gICAgb25NYXBSZWFkeShtYXApIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBtYXAuaW52YWxpZGF0ZVNpemUoKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgc2VsZWN0VGhpc0Zvcm0oKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0Rm9ybXNEZXRhaWwodGhpcy5zZWxlY3RlZFZhbHVlLmlkKS5zdWJzY3JpYmUoKGxpc3RzOiBGb3JtRGV0YWlsRHRvW10pID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXRhaWxGb3JtID0gbGlzdHM7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbnRlbnRCbG9ja1tGT1JNX05BTUVfSURfRk9STV0gPSB0aGlzLnNlbGVjdGVkVmFsdWUuaWQ7XG4gICAgICAgIHRoaXMucGVyc2lzdCgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLWxlZnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwid2ItbWFwLWJhY2tncm91bmQtZm9ybS1sZWZ0X19jb250YWluZXJfX2NvbmZpZ1wiICpuZ0lmPVwic2hvd01hcFwiPlxuICAgICAgICA8d2Itc3RydWN0dXJlLWNvbmZpZyBbYmxvY2tVVUlEXT1cInV1aWRcIiBbcG9zaXRpb25dPVwiVFlQRV9DT05GSUdfUE9TSVRJT05fUklHSFRfVE9QXCIgW2lzRnVsbHdpZHRoXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxwPnt7ICd3Yi5zdHJ1Y3R1cmVzLnRlbXBsYXRlLjE5JyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGlkPVwiYWRkcmVzcy1pbnB1dC1lZGl0e3sgdXVpZCB9fVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgI215SW5wdXRFZGl0XG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm15SW5wdXRFZGl0LnNlbGVjdCgpXCJcbiAgICAgICAgICAgICAgICBuZ3gtZ29vZ2xlLXBsYWNlcy1hdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgICAob25BZGRyZXNzQ2hhbmdlKT1cImhhbmRsZUFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L3diLXN0cnVjdHVyZS1jb25maWc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIndiLW1hcC1iYWNrZ3JvdW5kLWZvcm0tbGVmdF9fc2VsZWN0b3JcIiAqbmdJZj1cIiFzaG93TWFwXCI+XG4gICAgICAgIDxwPnt7ICd3Yi5zdHJ1Y3R1cmVzLnRlbXBsYXRlLjE5JyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cImFkZHJlc3MtaW5wdXR7eyB1dWlkIH19XCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYWRkcmVzc1wiXG4gICAgICAgICAgICAjbXlJbnB1dFxuICAgICAgICAgICAgKGNsaWNrKT1cIm15SW5wdXQuc2VsZWN0KClcIlxuICAgICAgICAgICAgbmd4LWdvb2dsZS1wbGFjZXMtYXV0b2NvbXBsZXRlXG4gICAgICAgICAgICAob25BZGRyZXNzQ2hhbmdlKT1cImhhbmRsZUFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbnMgaXMtZ2FwbGVzc1wiICpuZ0lmPVwic2hvd01hcFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWREZXRhaWxGb3JtLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb3Jtcy5sZW5ndGggPT09IDBcIiBjbGFzcz1cIndiLW1hcC1iYWNrZ3JvdW5kLWZvcm0tbGVmdF9fbG9hZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDx3Yi1sb2FkZXI+PC93Yi1sb2FkZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndiLW1hcC1iYWNrZ3JvdW5kLWZvcm0tbGVmdF9fc2VsZWN0b3ItZm9ybVwiICpuZ0lmPVwiZm9ybXMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICA8d2Itc3RydWN0dXJlLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybXNdPVwiZm9ybXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZWQpPVwic2VsZWN0ZWRWYWx1ZSA9ICRldmVudDsgc2VsZWN0VGhpc0Zvcm0oKVwiXG4gICAgICAgICAgICAgICAgICAgID48L3diLXN0cnVjdHVyZS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZERldGFpbEZvcm0ubGVuZ3RoID4gMFwiIGNsYXNzPVwid2ItbWFwLWJhY2tncm91bmQtZm9ybS1sZWZ0X19jb250YWluZXItZm9ybVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLWxlZnRfX2NvbnRhaW5lci1mb3JtX19lZGl0b3JcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx3ei1lZGl0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRlbnRzW0JBU0VfQkxPQ0tfQ09OVEVOVF1bRk9STV9OQU1FX1RJVExFXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicGVyc2lzdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3diLnNoYXJlZC5jb21wb25lbnRzLnF1aWxsLjEnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvd3otZWRpdG9yPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx3ei1lZGl0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRlbnRzW0JBU0VfQkxPQ0tfQ09OVEVOVF1bRk9STV9OQU1FX0NPTlRFTlRdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwZXJzaXN0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2Iuc2hhcmVkLmNvbXBvbmVudHMucXVpbGwuMScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC93ei1lZGl0b3I+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLWxlZnRfX2NvbnRhaW5lci1mb3JtX19jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlbGVjdCBvZiBzZWxlY3RlZERldGFpbEZvcm1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIFtpbm5lckhUTUxdPVwic2VsZWN0LnRpdGxlXCI+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgc2VsZWN0LnR5cGUgfCBhbnN3ZXJQaXBlIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx3Yi1zdHJ1Y3R1cmUtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1zXT1cImZvcm1zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlZCk9XCJzZWxlY3RlZFZhbHVlID0gJGV2ZW50OyBzZWxlY3RUaGlzRm9ybSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3diLXN0cnVjdHVyZS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24+e3sgc2VsZWN0ZWRWYWx1ZS5zdWJtaXRfbGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLWxlZnRfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLWxlZnRfX2NvdmVyXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2ItbWFwLWJhY2tncm91bmQtZm9ybS1sZWZ0X19jb250YWluZXJfX21hcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWFmbGV0XG4gICAgICAgICAgICAgICAgICAgICAgICBbbGVhZmxldE9wdGlvbnNdPVwib3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGVhZmxldExheWVyc109XCJsYXllcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyhsZWFmbGV0Q2VudGVyKV09XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGxlYWZsZXRNYXBSZWFkeSk9XCJvbk1hcFJlYWR5KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
package/esm2020/lib/structures/map/background-form-right/map-background-form-right.component.mjs
CHANGED
|
@@ -2,7 +2,6 @@ import { Component, ElementRef, ViewChild } from '@angular/core';
|
|
|
2
2
|
import { FORM_NAME_ID_FORM } from '../../../dtos/forms/forms.dto';
|
|
3
3
|
import { StructuresComponent } from '../../structures.component';
|
|
4
4
|
import { icon, latLng, marker, tileLayer } from 'leaflet';
|
|
5
|
-
import places from 'places.js';
|
|
6
5
|
import { ApiService } from '../../../services/utils/api.service';
|
|
7
6
|
import { MapBackgroundFormRightService } from '../../../services/blocks/map/map-background-form-right.service';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
@@ -14,14 +13,17 @@ import * as i5 from "../../../shared/components/structure-select/structure-selec
|
|
|
14
13
|
import * as i6 from "../../../shared/components/loader/loader.component";
|
|
15
14
|
import * as i7 from "@wizishop/wizi-editor";
|
|
16
15
|
import * as i8 from "@asymmetrik/ngx-leaflet";
|
|
17
|
-
import * as i9 from "
|
|
18
|
-
import * as i10 from "
|
|
16
|
+
import * as i9 from "ngx-google-places-autocomplete";
|
|
17
|
+
import * as i10 from "../../../shared/pipes/answer-type/answer-type.pipe";
|
|
18
|
+
import * as i11 from "@ngx-translate/core";
|
|
19
19
|
export class MapBackgroundFormRightComponent extends StructuresComponent {
|
|
20
20
|
constructor(apiService) {
|
|
21
21
|
super();
|
|
22
22
|
this.apiService = apiService;
|
|
23
23
|
this.address = '';
|
|
24
|
+
this.triggerAddress = '';
|
|
24
25
|
this.editPlaceMap = null;
|
|
26
|
+
this.firstTimeTrigger = false;
|
|
25
27
|
this.options = {};
|
|
26
28
|
this.layers = [];
|
|
27
29
|
this.showMap = false;
|
|
@@ -44,27 +46,17 @@ export class MapBackgroundFormRightComponent extends StructuresComponent {
|
|
|
44
46
|
}
|
|
45
47
|
});
|
|
46
48
|
}
|
|
47
|
-
|
|
48
|
-
const placesAutocomplete = places({
|
|
49
|
-
appId: 'pl9OI1NPY62Y',
|
|
50
|
-
apiKey: '290e5a0e33e751c85c36690d502991fc',
|
|
51
|
-
container: this.input.nativeElement,
|
|
52
|
-
});
|
|
53
|
-
placesAutocomplete.on('change', (algoliaReturnElement) => {
|
|
54
|
-
this.setCoordinateOnPlaces(algoliaReturnElement);
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
setCoordinateOnPlaces(algoliaReturnElement) {
|
|
49
|
+
setCoordinateOnPlaces(googleResults) {
|
|
58
50
|
this.showMap = false;
|
|
59
51
|
this.options = {
|
|
60
|
-
layers: [tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom:
|
|
52
|
+
layers: [tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: 'WiziShop' })],
|
|
61
53
|
zoom: 18,
|
|
62
54
|
zoomControl: false,
|
|
63
|
-
center: latLng(
|
|
55
|
+
center: latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng),
|
|
64
56
|
};
|
|
65
|
-
this.center = latLng(
|
|
57
|
+
this.center = latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng);
|
|
66
58
|
this.layers = [
|
|
67
|
-
marker([
|
|
59
|
+
marker([googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng], {
|
|
68
60
|
icon: icon({
|
|
69
61
|
iconSize: [25, 41],
|
|
70
62
|
iconAnchor: [13, 41],
|
|
@@ -73,23 +65,32 @@ export class MapBackgroundFormRightComponent extends StructuresComponent {
|
|
|
73
65
|
}),
|
|
74
66
|
}),
|
|
75
67
|
];
|
|
76
|
-
this.contentBlock[this.FORM_NAME_COORDINATE_Y] =
|
|
77
|
-
this.contentBlock[this.FORM_NAME_COORDINATE_X] =
|
|
78
|
-
this.address =
|
|
68
|
+
this.contentBlock[this.FORM_NAME_COORDINATE_Y] = googleResults.suggestion.latlng.lat;
|
|
69
|
+
this.contentBlock[this.FORM_NAME_COORDINATE_X] = googleResults.suggestion.latlng.lng;
|
|
70
|
+
this.address = googleResults.suggestion.value;
|
|
79
71
|
this.showMap = true;
|
|
80
72
|
this.persist();
|
|
81
73
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
74
|
+
handleAddressChange(event) {
|
|
75
|
+
this.googleMapReturnElement = {
|
|
76
|
+
suggestion: {
|
|
77
|
+
latlng: {
|
|
78
|
+
lat: event.geometry.location.lat(),
|
|
79
|
+
lng: event.geometry.location.lng(),
|
|
80
|
+
},
|
|
81
|
+
value: event.name,
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
this.setCoordinateOnPlaces(this.googleMapReturnElement);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Avoid partial map loaded at the initialization
|
|
88
|
+
* @param map
|
|
89
|
+
*/
|
|
90
|
+
onMapReady(map) {
|
|
91
|
+
setTimeout(() => {
|
|
92
|
+
map.invalidateSize();
|
|
93
|
+
}, 0);
|
|
93
94
|
}
|
|
94
95
|
selectThisForm() {
|
|
95
96
|
if (this.selectedValue === null) {
|
|
@@ -101,23 +102,14 @@ export class MapBackgroundFormRightComponent extends StructuresComponent {
|
|
|
101
102
|
this.contentBlock[FORM_NAME_ID_FORM] = this.selectedValue.id;
|
|
102
103
|
this.persist();
|
|
103
104
|
}
|
|
104
|
-
/**
|
|
105
|
-
* Avoid partial map loaded at the initialization
|
|
106
|
-
* @param map
|
|
107
|
-
*/
|
|
108
|
-
onMapReady(map) {
|
|
109
|
-
setTimeout(() => {
|
|
110
|
-
map.invalidateSize();
|
|
111
|
-
}, 0);
|
|
112
|
-
}
|
|
113
105
|
}
|
|
114
106
|
MapBackgroundFormRightComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MapBackgroundFormRightComponent, deps: [{ token: i1.ApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
115
|
-
MapBackgroundFormRightComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: MapBackgroundFormRightComponent, selector: "wb-map-background-form-right", viewQueries: [{ propertyName: "input", first: true, predicate: ["myInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"wb-map-background-form-right\">\n <div class=\"wb-map-background-form-right__container__config\" *ngIf=\"showMap\">\n <wb-structure-config
|
|
107
|
+
MapBackgroundFormRightComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: MapBackgroundFormRightComponent, selector: "wb-map-background-form-right", viewQueries: [{ propertyName: "input", first: true, predicate: ["myInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"wb-map-background-form-right\">\n <div class=\"wb-map-background-form-right__container__config\" *ngIf=\"showMap\">\n <wb-structure-config [blockUUID]=\"uuid\" [position]=\"TYPE_CONFIG_POSITION_LEFT_TOP\" [isFullwidth]=\"true\">\n <p>{{ 'wb.structures.template.19' | translate }}</p>\n <input\n id=\"address-input-edit{{ uuid }}\"\n type=\"text\"\n [(ngModel)]=\"address\"\n #myInputEdit\n (click)=\"myInputEdit.select()\"\n ngx-google-places-autocomplete\n (onAddressChange)=\"handleAddressChange($event)\"\n />\n </wb-structure-config>\n </div>\n <div class=\"wb-map-background-form-right__selector\" *ngIf=\"!showMap\">\n <p>{{ 'wb.structures.template.19' | translate }}</p>\n <input\n id=\"address-input{{ uuid }}\"\n type=\"text\"\n [(ngModel)]=\"address\"\n #myInput\n (click)=\"myInput.select()\"\n ngx-google-places-autocomplete\n (onAddressChange)=\"handleAddressChange($event)\"\n />\n </div>\n <div class=\"columns is-gapless\" *ngIf=\"showMap\">\n <div class=\"column\">\n <div class=\"wb-map-background-form-right__container\">\n <div *ngIf=\"showMap\">\n <div class=\"wb-map-background-form-right__cover\"></div>\n <div\n class=\"wb-map-background-form-right__container__map\"\n leaflet\n [leafletOptions]=\"options\"\n [leafletLayers]=\"layers\"\n [(leafletCenter)]=\"center\"\n (leafletMapReady)=\"onMapReady($event)\"\n ></div>\n </div>\n </div>\n </div>\n <div class=\"column\">\n <div *ngIf=\"selectedDetailForm.length === 0\">\n <div *ngIf=\"forms.length === 0\" class=\"wb-map-background-form-right__loader\">\n <wb-loader></wb-loader>\n </div>\n <div class=\"wb-map-background-form-right__selector\" *ngIf=\"forms.length > 0\">\n <wb-structure-select\n [selectedValue]=\"selectedValue\"\n [forms]=\"forms\"\n (changed)=\"selectedValue = $event; selectThisForm()\"\n ></wb-structure-select>\n </div>\n </div>\n <div *ngIf=\"selectedDetailForm.length > 0\" class=\"wb-map-background-form-right__container-form\">\n <div class=\"wb-map-background-form-right__container-form__editor\">\n <div>\n <wz-editor\n [(ngModel)]=\"contents[BASE_BLOCK_CONTENT][FORM_NAME_TITLE]\"\n (ngModelChange)=\"persist()\"\n [placeholder]=\"'wb.shared.components.quill.1' | translate\"\n >\n </wz-editor>\n </div>\n <div>\n <wz-editor\n [(ngModel)]=\"contents[BASE_BLOCK_CONTENT][FORM_NAME_CONTENT]\"\n (ngModelChange)=\"persist()\"\n [placeholder]=\"'wb.shared.components.quill.1' | translate\"\n >\n </wz-editor>\n </div>\n </div>\n <div class=\"wb-map-background-form-right__container-form__content\">\n <div *ngFor=\"let select of selectedDetailForm\">\n <p [innerHTML]=\"select.title\"></p>\n <p>{{ select.type | answerPipe | translate }}</p>\n </div>\n <div>\n <wb-structure-select\n [selectedValue]=\"selectedValue\"\n [forms]=\"forms\"\n (changed)=\"selectedValue = $event; selectThisForm()\"\n ></wb-structure-select>\n \n <button>{{ selectedValue.submit_label }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.StructureConfigComponent, selector: "wb-structure-config", inputs: ["isActive", "blockUUID", "position", "isFullwidth", "small", "extraSmall"] }, { kind: "component", type: i5.StructureSelectComponent, selector: "wb-structure-select", inputs: ["selectedValue", "forms", "large", "icon", "label"], outputs: ["changed"] }, { kind: "component", type: i6.LoaderComponent, selector: "wb-loader" }, { kind: "component", type: i7.WiziEditorComponent, selector: "wz-editor", inputs: ["placeholder", "position"] }, { kind: "directive", type: i8.LeafletDirective, selector: "[leaflet]", inputs: ["leafletFitBoundsOptions", "leafletPanOptions", "leafletZoomOptions", "leafletZoomPanOptions", "leafletOptions", "leafletZoom", "leafletCenter", "leafletFitBounds", "leafletMaxBounds", "leafletMinZoom", "leafletMaxZoom"], outputs: ["leafletMapReady", "leafletZoomChange", "leafletCenterChange", "leafletClick", "leafletDoubleClick", "leafletMouseDown", "leafletMouseUp", "leafletMouseMove", "leafletMouseOver", "leafletMouseOut", "leafletMapMove", "leafletMapMoveStart", "leafletMapMoveEnd", "leafletMapZoom", "leafletMapZoomStart", "leafletMapZoomEnd"] }, { kind: "directive", type: i8.LeafletLayersDirective, selector: "[leafletLayers]", inputs: ["leafletLayers"] }, { kind: "directive", type: i9.GooglePlaceDirective, selector: "[ngx-google-places-autocomplete]", inputs: ["options"], outputs: ["onAddressChange"], exportAs: ["ngx-places"] }, { kind: "pipe", type: i10.AnswerTypePipe, name: "answerPipe" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] });
|
|
116
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MapBackgroundFormRightComponent, decorators: [{
|
|
117
109
|
type: Component,
|
|
118
|
-
args: [{ selector: MapBackgroundFormRightService.selector(), template: "<div class=\"wb-map-background-form-right\">\n <div class=\"wb-map-background-form-right__container__config\" *ngIf=\"showMap\">\n <wb-structure-config
|
|
110
|
+
args: [{ selector: MapBackgroundFormRightService.selector(), template: "<div class=\"wb-map-background-form-right\">\n <div class=\"wb-map-background-form-right__container__config\" *ngIf=\"showMap\">\n <wb-structure-config [blockUUID]=\"uuid\" [position]=\"TYPE_CONFIG_POSITION_LEFT_TOP\" [isFullwidth]=\"true\">\n <p>{{ 'wb.structures.template.19' | translate }}</p>\n <input\n id=\"address-input-edit{{ uuid }}\"\n type=\"text\"\n [(ngModel)]=\"address\"\n #myInputEdit\n (click)=\"myInputEdit.select()\"\n ngx-google-places-autocomplete\n (onAddressChange)=\"handleAddressChange($event)\"\n />\n </wb-structure-config>\n </div>\n <div class=\"wb-map-background-form-right__selector\" *ngIf=\"!showMap\">\n <p>{{ 'wb.structures.template.19' | translate }}</p>\n <input\n id=\"address-input{{ uuid }}\"\n type=\"text\"\n [(ngModel)]=\"address\"\n #myInput\n (click)=\"myInput.select()\"\n ngx-google-places-autocomplete\n (onAddressChange)=\"handleAddressChange($event)\"\n />\n </div>\n <div class=\"columns is-gapless\" *ngIf=\"showMap\">\n <div class=\"column\">\n <div class=\"wb-map-background-form-right__container\">\n <div *ngIf=\"showMap\">\n <div class=\"wb-map-background-form-right__cover\"></div>\n <div\n class=\"wb-map-background-form-right__container__map\"\n leaflet\n [leafletOptions]=\"options\"\n [leafletLayers]=\"layers\"\n [(leafletCenter)]=\"center\"\n (leafletMapReady)=\"onMapReady($event)\"\n ></div>\n </div>\n </div>\n </div>\n <div class=\"column\">\n <div *ngIf=\"selectedDetailForm.length === 0\">\n <div *ngIf=\"forms.length === 0\" class=\"wb-map-background-form-right__loader\">\n <wb-loader></wb-loader>\n </div>\n <div class=\"wb-map-background-form-right__selector\" *ngIf=\"forms.length > 0\">\n <wb-structure-select\n [selectedValue]=\"selectedValue\"\n [forms]=\"forms\"\n (changed)=\"selectedValue = $event; selectThisForm()\"\n ></wb-structure-select>\n </div>\n </div>\n <div *ngIf=\"selectedDetailForm.length > 0\" class=\"wb-map-background-form-right__container-form\">\n <div class=\"wb-map-background-form-right__container-form__editor\">\n <div>\n <wz-editor\n [(ngModel)]=\"contents[BASE_BLOCK_CONTENT][FORM_NAME_TITLE]\"\n (ngModelChange)=\"persist()\"\n [placeholder]=\"'wb.shared.components.quill.1' | translate\"\n >\n </wz-editor>\n </div>\n <div>\n <wz-editor\n [(ngModel)]=\"contents[BASE_BLOCK_CONTENT][FORM_NAME_CONTENT]\"\n (ngModelChange)=\"persist()\"\n [placeholder]=\"'wb.shared.components.quill.1' | translate\"\n >\n </wz-editor>\n </div>\n </div>\n <div class=\"wb-map-background-form-right__container-form__content\">\n <div *ngFor=\"let select of selectedDetailForm\">\n <p [innerHTML]=\"select.title\"></p>\n <p>{{ select.type | answerPipe | translate }}</p>\n </div>\n <div>\n <wb-structure-select\n [selectedValue]=\"selectedValue\"\n [forms]=\"forms\"\n (changed)=\"selectedValue = $event; selectThisForm()\"\n ></wb-structure-select>\n \n <button>{{ selectedValue.submit_label }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
119
111
|
}], ctorParameters: function () { return [{ type: i1.ApiService }]; }, propDecorators: { input: [{
|
|
120
112
|
type: ViewChild,
|
|
121
113
|
args: ['myInput']
|
|
122
114
|
}] } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWJhY2tncm91bmQtZm9ybS1yaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXppLWJsb2NrL3NyYy9saWIvc3RydWN0dXJlcy9tYXAvYmFja2dyb3VuZC1mb3JtLXJpZ2h0L21hcC1iYWNrZ3JvdW5kLWZvcm0tcmlnaHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2l6aS1ibG9jay9zcmMvbGliL3N0cnVjdHVyZXMvbWFwL2JhY2tncm91bmQtZm9ybS1yaWdodC9tYXAtYmFja2dyb3VuZC1mb3JtLXJpZ2h0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDMUQsT0FBTyxNQUFNLE1BQU0sV0FBVyxDQUFDO0FBRS9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUS9HLE1BQU0sT0FBTywrQkFDVCxTQUFRLG1CQUE4QztJQW1CdEQsWUFBb0IsVUFBc0I7UUFDdEMsS0FBSyxFQUFFLENBQUM7UUFEUSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBaEIxQyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBR2IsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFcEIsWUFBTyxHQUFHLEVBQUUs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QUFDLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxHQUFHO1FBQ1YsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDVixDQUFDOzs0SEFwSFEsK0JBQStCO2dIQUEvQiwrQkFBK0IsNkxDaEI1QyxnbElBbUZBOzJGRG5FYSwrQkFBK0I7a0JBSjNDLFNBQVM7K0JBQ0ksNkJBQTZCLENBQUMsUUFBUSxFQUFFO2lHQU01QixLQUFLO3NCQUExQixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZPUk1fTkFNRV9JRF9GT1JNIH0gZnJvbSAnLi4vLi4vLi4vZHRvcy9mb3Jtcy9mb3Jtcy5kdG8nO1xuaW1wb3J0IHsgU3RydWN0dXJlc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3N0cnVjdHVyZXMuY29tcG9uZW50JztcbmltcG9ydCB7IE9wZW5NYXBEdG8gfSBmcm9tICcuLi8uLi8uLi9kdG9zL2FwaXMvbWFwcy9vcGVuLW1hcC5kdG8nO1xuaW1wb3J0IHsgaWNvbiwgbGF0TG5nLCBtYXJrZXIsIHRpbGVMYXllciB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IHBsYWNlcyBmcm9tICdwbGFjZXMuanMnO1xuaW1wb3J0IHsgRm9ybUxpc3REdG8gfSBmcm9tICcuLi8uLi8uLi9kdG9zL2FwaXMvZm9ybXMvZm9ybS1saXN0LmR0byc7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwQmFja2dyb3VuZEZvcm1SaWdodFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ibG9ja3MvbWFwL21hcC1iYWNrZ3JvdW5kLWZvcm0tcmlnaHQuc2VydmljZSc7XG5pbXBvcnQgeyBNYXBCYWNrZ3JvdW5kRm9ybVJpZ2h0RHRvIH0gZnJvbSAnLi4vLi4vLi4vZHRvcy9ibG9ja3MvbWFwL21hcC1iYWNrZ3JvdW5kLWZvcm0tcmlnaHQuZHRvJztcbmltcG9ydCB7IEZvcm1EZXRhaWxEdG8gfSBmcm9tICcuLi8uLi8uLi9kdG9zL2FwaXMvZm9ybXMvZm9ybS1kZXRhaWwuZHRvJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IE1hcEJhY2tncm91bmRGb3JtUmlnaHRTZXJ2aWNlLnNlbGVjdG9yKCksXG4gICAgdGVtcGxhdGVVcmw6ICcuL21hcC1iYWNrZ3JvdW5kLWZvcm0tcmlnaHQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBCYWNrZ3JvdW5kRm9ybVJpZ2h0Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBTdHJ1Y3R1cmVzQ29tcG9uZW50PE1hcEJhY2tncm91bmRGb3JtUmlnaHREdG8+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnbXlJbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xuICAgIGFkZHJlc3MgPSAnJztcbiAgICBjZW50ZXI7XG5cbiAgICBlZGl0UGxhY2VNYXAgPSBudWxsO1xuXG4gICAgb3B0aW9ucyA9IHt9O1xuICAgIGxheWVycyA9IFtdO1xuXG4gICAgc2hvd01hcCA9IGZhbHNlO1xuXG4gICAgZm9ybXM6IEZvcm1MaXN0RHRvW10gPSBbXTtcblxuICAgIHNlbGVjdGVkVmFsdWU6IEZvcm1MaXN0RHRvID0gbnVsbDtcblxuICAgIHNlbGVjdGVkRGV0YWlsRm9ybTogRm9ybURldGFpbER0b1tdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXRDb21wb25lbnRTZXJ2aWNlKE1hcEJhY2tncm91bmRGb3JtUmlnaHRTZXJ2aWNlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0Rm9ybXNMaXN0KCkuc3Vic2NyaWJlKChsaXN0czogRm9ybUxpc3REdG9bXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb3JtcyA9IGxpc3RzO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jb250ZW50QmxvY2tbRk9STV9OQU1FX0lEX0ZPUk1dKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3Jtcy5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2LmlkID09PSB0aGlzLmNvbnRlbnRCbG9ja1tGT1JNX05BTUVfSURfRk9STV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHY7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdFRoaXNGb3JtKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwbGFjZXNBdXRvY29tcGxldGUgPSBwbGFjZXMoe1xuICAgICAgICAgICAgYXBwSWQ6ICdwbDlPSTFOUFk2MlknLFxuICAgICAgICAgICAgYXBpS2V5OiAnMjkwZTVhMGUzM2U3NTFjODVjMzY2OTBkNTAyOTkxZmMnLFxuICAgICAgICAgICAgY29udGFpbmVyOiB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHBsYWNlc0F1dG9jb21wbGV0ZS5vbignY2hhbmdlJywgKGFsZ29saWFSZXR1cm5FbGVtZW50OiBPcGVuTWFwRHRvKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENvb3JkaW5hdGVPblBsYWNlcyhhbGdvbGlhUmV0dXJuRWxlbWVudCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldENvb3JkaW5hdGVPblBsYWNlcyhhbGdvbGlhUmV0dXJuRWxlbWVudDogT3Blbk1hcER0bykge1xuICAgICAgICB0aGlzLnNob3dNYXAgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgICAgICAgbGF5ZXJzOiBbdGlsZUxheWVyKCdodHRwOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJywgeyBtYXhab29tOiAxNiwgYXR0cmlidXRpb246ICdXaXppU2hvcCcgfSldLFxuICAgICAgICAgICAgem9vbTogMTgsXG4gICAgICAgICAgICB6b29tQ29udHJvbDogZmFsc2UsXG4gICAgICAgICAgICBjZW50ZXI6IGxhdExuZyhhbGdvbGlhUmV0dXJuRWxlbWVudC5zdWdnZXN0aW9uLmxhdGxuZy5sYXQsIGFsZ29saWFSZXR1cm5FbGVtZW50LnN1Z2dlc3Rpb24ubGF0bG5nLmxuZyksXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2VudGVyID0gbGF0TG5nKGFsZ29saWFSZXR1cm5FbGVtZW50LnN1Z2dlc3Rpb24ubGF0bG5nLmxhdCwgYWxnb2xpYVJldHVybkVsZW1lbnQuc3VnZ2VzdGlvbi5sYXRsbmcubG5nKTtcbiAgICAgICAgdGhpcy5sYXllcnMgPSBbXG4gICAgICAgICAgICBtYXJrZXIoW2FsZ29saWFSZXR1cm5FbGVtZW50LnN1Z2dlc3Rpb24ubGF0bG5nLmxhdCwgYWxnb2xpYVJldHVybkVsZW1lbnQuc3VnZ2VzdGlvbi5sYXRsbmcubG5nXSwge1xuICAgICAgICAgICAgICAgIGljb246IGljb24oe1xuICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZTogWzI1LCA0MV0sXG4gICAgICAgICAgICAgICAgICAgIGljb25BbmNob3I6IFsxMywgNDFdLFxuICAgICAgICAgICAgICAgICAgICBpY29uVXJsOiAnYXNzZXRzL2Jsb2Nrcy9pbWFnZXMvbWFwcy9tYXJrZXItaWNvbi5wbmcnLFxuICAgICAgICAgICAgICAgICAgICBzaGFkb3dVcmw6ICdhc3NldHMvYmxvY2tzL2ltYWdlcy9tYXBzL21hcmtlci1zaGFkb3cucG5nJyxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBdO1xuXG4gICAgICAgIHRoaXMuY29udGVudEJsb2NrW3RoaXMuRk9STV9OQU1FX0NPT1JESU5BVEVfWV0gPSBhbGdvbGlhUmV0dXJuRWxlbWVudC5zdWdnZXN0aW9uLmxhdGxuZy5sYXQ7XG4gICAgICAgIHRoaXMuY29udGVudEJsb2NrW3RoaXMuRk9STV9OQU1FX0NPT1JESU5BVEVfWF0gPSBhbGdvbGlhUmV0dXJuRWxlbWVudC5zdWdnZXN0aW9uLmxhdGxuZy5sbmc7XG5cbiAgICAgICAgdGhpcy5hZGRyZXNzID0gYWxnb2xpYVJldHVybkVsZW1lbnQuc3VnZ2VzdGlvbi52YWx1ZTtcbiAgICAgICAgdGhpcy5zaG93TWFwID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnBlcnNpc3QoKTtcbiAgICB9XG5cbiAgICBjcmVhdGVFZGl0QWxnb2xpYUlucHV0KCkge1xuICAgICAgICBpZiAodGhpcy5lZGl0UGxhY2VNYXAgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdFBsYWNlTWFwID0gcGxhY2VzKHtcbiAgICAgICAgICAgICAgICBhcHBJZDogJ3BsOU9JMU5QWTYyWScsXG4gICAgICAgICAgICAgICAgYXBpS2V5OiAnMjkwZTVhMGUzM2U3NTFjODVjMzY2OTBkNTAyOTkxZmMnLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5lcjogPEhUTUxJbnB1dEVsZW1lbnQ+ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2FkZHJlc3MtaW5wdXQtZWRpdCcgKyB0aGlzLnV1aWQpLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuZWRpdFBsYWNlTWFwLm9uKCdjaGFuZ2UnLCAoYWxnb2xpYVJldHVybkVsZW1lbnQ6IE9wZW5NYXBEdG8pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldENvb3JkaW5hdGVPblBsYWNlcyhhbGdvbGlhUmV0dXJuRWxlbWVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdFRoaXNGb3JtKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hcGlTZXJ2aWNlLmdldEZvcm1zRGV0YWlsKHRoaXMuc2VsZWN0ZWRWYWx1ZS5pZCkuc3Vic2NyaWJlKChsaXN0czogRm9ybURldGFpbER0b1tdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGV0YWlsRm9ybSA9IGxpc3RzO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb250ZW50QmxvY2tbRk9STV9OQU1FX0lEX0ZPUk1dID0gdGhpcy5zZWxlY3RlZFZhbHVlLmlkO1xuICAgICAgICB0aGlzLnBlcnNpc3QoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBdm9pZCBwYXJ0aWFsIG1hcCBsb2FkZWQgYXQgdGhlIGluaXRpYWxpemF0aW9uXG4gICAgICogQHBhcmFtIG1hcFxuICAgICAqL1xuICAgIG9uTWFwUmVhZHkobWFwKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgbWFwLmludmFsaWRhdGVTaXplKCk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLXJpZ2h0XCI+XG4gICAgPGRpdiBjbGFzcz1cIndiLW1hcC1iYWNrZ3JvdW5kLWZvcm0tcmlnaHRfX2NvbnRhaW5lcl9fY29uZmlnXCIgKm5nSWY9XCJzaG93TWFwXCI+XG4gICAgICAgIDx3Yi1zdHJ1Y3R1cmUtY29uZmlnXG4gICAgICAgICAgICBbYmxvY2tVVUlEXT1cInV1aWRcIlxuICAgICAgICAgICAgW3Bvc2l0aW9uXT1cIlRZUEVfQ09ORklHX1BPU0lUSU9OX0xFRlRfVE9QXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjcmVhdGVFZGl0QWxnb2xpYUlucHV0KClcIlxuICAgICAgICAgICAgW2lzRnVsbHdpZHRoXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8cD57eyAnd2Iuc3RydWN0dXJlcy50ZW1wbGF0ZS4xOScgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJhZGRyZXNzLWlucHV0LWVkaXR7eyB1dWlkIH19XCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImFkZHJlc3NcIiAjbXlJbnB1dEVkaXQgKGNsaWNrKT1cIm15SW5wdXRFZGl0LnNlbGVjdCgpXCIgLz5cbiAgICAgICAgPC93Yi1zdHJ1Y3R1cmUtY29uZmlnPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLXJpZ2h0X19zZWxlY3RvclwiICpuZ0lmPVwiIXNob3dNYXBcIj5cbiAgICAgICAgPHA+e3sgJ3diLnN0cnVjdHVyZXMudGVtcGxhdGUuMTknIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8aW5wdXQgaWQ9XCJhZGRyZXNzLWlucHV0e3sgdXVpZCB9fVwiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJhZGRyZXNzXCIgI215SW5wdXQgKGNsaWNrKT1cIm15SW5wdXQuc2VsZWN0KClcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5zIGlzLWdhcGxlc3NcIiAqbmdJZj1cInNob3dNYXBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndiLW1hcC1iYWNrZ3JvdW5kLWZvcm0tcmlnaHRfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93TWFwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLXJpZ2h0X19jb3ZlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIndiLW1hcC1iYWNrZ3JvdW5kLWZvcm0tcmlnaHRfX2NvbnRhaW5lcl9fbWFwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlYWZsZXRcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsZWFmbGV0T3B0aW9uc109XCJvcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsZWFmbGV0TGF5ZXJzXT1cImxheWVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKGxlYWZsZXRDZW50ZXIpXT1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobGVhZmxldE1hcFJlYWR5KT1cIm9uTWFwUmVhZHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkRGV0YWlsRm9ybS5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9ybXMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLXJpZ2h0X19sb2FkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHdiLWxvYWRlcj48L3diLWxvYWRlcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2ItbWFwLWJhY2tncm91bmQtZm9ybS1yaWdodF9fc2VsZWN0b3JcIiAqbmdJZj1cImZvcm1zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHdiLXN0cnVjdHVyZS1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1zXT1cImZvcm1zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2VkKT1cInNlbGVjdGVkVmFsdWUgPSAkZXZlbnQ7IHNlbGVjdFRoaXNGb3JtKClcIlxuICAgICAgICAgICAgICAgICAgICA+PC93Yi1zdHJ1Y3R1cmUtc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWREZXRhaWxGb3JtLmxlbmd0aCA+IDBcIiBjbGFzcz1cIndiLW1hcC1iYWNrZ3JvdW5kLWZvcm0tcmlnaHRfX2NvbnRhaW5lci1mb3JtXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndiLW1hcC1iYWNrZ3JvdW5kLWZvcm0tcmlnaHRfX2NvbnRhaW5lci1mb3JtX19lZGl0b3JcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx3ei1lZGl0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRlbnRzW0JBU0VfQkxPQ0tfQ09OVEVOVF1bRk9STV9OQU1FX1RJVExFXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicGVyc2lzdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3diLnNoYXJlZC5jb21wb25lbnRzLnF1aWxsLjEnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvd3otZWRpdG9yPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx3ei1lZGl0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRlbnRzW0JBU0VfQkxPQ0tfQ09OVEVOVF1bRk9STV9OQU1FX0NPTlRFTlRdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwZXJzaXN0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2Iuc2hhcmVkLmNvbXBvbmVudHMucXVpbGwuMScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC93ei1lZGl0b3I+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLXJpZ2h0X19jb250YWluZXItZm9ybV9fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzZWxlY3Qgb2Ygc2VsZWN0ZWREZXRhaWxGb3JtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBbaW5uZXJIVE1MXT1cInNlbGVjdC50aXRsZVwiPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IHNlbGVjdC50eXBlIHwgYW5zd2VyUGlwZSB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8d2Itc3RydWN0dXJlLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3Jtc109XCJmb3Jtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZWQpPVwic2VsZWN0ZWRWYWx1ZSA9ICRldmVudDsgc2VsZWN0VGhpc0Zvcm0oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC93Yi1zdHJ1Y3R1cmUtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPnt7IHNlbGVjdGVkVmFsdWUuc3VibWl0X2xhYmVsIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWJhY2tncm91bmQtZm9ybS1yaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXppLWJsb2NrL3NyYy9saWIvc3RydWN0dXJlcy9tYXAvYmFja2dyb3VuZC1mb3JtLXJpZ2h0L21hcC1iYWNrZ3JvdW5kLWZvcm0tcmlnaHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2l6aS1ibG9jay9zcmMvbGliL3N0cnVjdHVyZXMvbWFwL2JhY2tncm91bmQtZm9ybS1yaWdodC9tYXAtYmFja2dyb3VuZC1mb3JtLXJpZ2h0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFakUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUUxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRL0csTUFBTSxPQUFPLCtCQUFnQyxTQUFRLG1CQUE4QztJQXFCL0YsWUFBb0IsVUFBc0I7UUFDdEMsS0FBSyxFQUFFLENBQUM7UUFEUSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBbkIxQyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFJcEIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIscUJBQWdCLEdBQUcsS0FBSyxD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bnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGT1JNX05BTUVfSURfRk9STSB9IGZyb20gJy4uLy4uLy4uL2R0b3MvZm9ybXMvZm9ybXMuZHRvJztcbmltcG9ydCB7IFN0cnVjdHVyZXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zdHJ1Y3R1cmVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcGVuTWFwRHRvIH0gZnJvbSAnLi4vLi4vLi4vZHRvcy9hcGlzL21hcHMvb3Blbi1tYXAuZHRvJztcbmltcG9ydCB7IGljb24sIGxhdExuZywgbWFya2VyLCB0aWxlTGF5ZXIgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCB7IEZvcm1MaXN0RHRvIH0gZnJvbSAnLi4vLi4vLi4vZHRvcy9hcGlzL2Zvcm1zL2Zvcm0tbGlzdC5kdG8nO1xuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL2FwaS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcEJhY2tncm91bmRGb3JtUmlnaHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmxvY2tzL21hcC9tYXAtYmFja2dyb3VuZC1mb3JtLXJpZ2h0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwQmFja2dyb3VuZEZvcm1SaWdodER0byB9IGZyb20gJy4uLy4uLy4uL2R0b3MvYmxvY2tzL21hcC9tYXAtYmFja2dyb3VuZC1mb3JtLXJpZ2h0LmR0byc7XG5pbXBvcnQgeyBGb3JtRGV0YWlsRHRvIH0gZnJvbSAnLi4vLi4vLi4vZHRvcy9hcGlzL2Zvcm1zL2Zvcm0tZGV0YWlsLmR0byc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBNYXBCYWNrZ3JvdW5kRm9ybVJpZ2h0U2VydmljZS5zZWxlY3RvcigpLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tYXAtYmFja2dyb3VuZC1mb3JtLXJpZ2h0LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTWFwQmFja2dyb3VuZEZvcm1SaWdodENvbXBvbmVudCBleHRlbmRzIFN0cnVjdHVyZXNDb21wb25lbnQ8TWFwQmFja2dyb3VuZEZvcm1SaWdodER0bz4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnbXlJbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xuICAgIGFkZHJlc3MgPSAnJztcbiAgICB0cmlnZ2VyQWRkcmVzcyA9ICcnO1xuICAgIGNlbnRlcjtcbiAgICBnb29nbGVNYXBSZXR1cm5FbGVtZW50OiBPcGVuTWFwRHRvO1xuXG4gICAgZWRpdFBsYWNlTWFwID0gbnVsbDtcbiAgICBmaXJzdFRpbWVUcmlnZ2VyID0gZmFsc2U7XG5cbiAgICBvcHRpb25zID0ge307XG4gICAgbGF5ZXJzID0gW107XG5cbiAgICBzaG93TWFwID0gZmFsc2U7XG5cbiAgICBmb3JtczogRm9ybUxpc3REdG9bXSA9IFtdO1xuXG4gICAgc2VsZWN0ZWRWYWx1ZTogRm9ybUxpc3REdG8gPSBudWxsO1xuXG4gICAgc2VsZWN0ZWREZXRhaWxGb3JtOiBGb3JtRGV0YWlsRHRvW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldENvbXBvbmVudFNlcnZpY2UoTWFwQmFja2dyb3VuZEZvcm1SaWdodFNlcnZpY2UpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIHRoaXMuYXBpU2VydmljZS5nZXRGb3Jtc0xpc3QoKS5zdWJzY3JpYmUoKGxpc3RzOiBGb3JtTGlzdER0b1tdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvcm1zID0gbGlzdHM7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRlbnRCbG9ja1tGT1JNX05BTUVfSURfRk9STV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1zLmZvckVhY2goKHYpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYuaWQgPT09IHRoaXMuY29udGVudEJsb2NrW0ZPUk1fTkFNRV9JRF9GT1JNXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0VGhpc0Zvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRDb29yZGluYXRlT25QbGFjZXMoZ29vZ2xlUmVzdWx0czogT3Blbk1hcER0bykge1xuICAgICAgICB0aGlzLnNob3dNYXAgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgICAgICAgbGF5ZXJzOiBbdGlsZUxheWVyKCdodHRwOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJywgeyBtYXhab29tOiAxOCwgYXR0cmlidXRpb246ICdXaXppU2hvcCcgfSldLFxuICAgICAgICAgICAgem9vbTogMTgsXG4gICAgICAgICAgICB6b29tQ29udHJvbDogZmFsc2UsXG4gICAgICAgICAgICBjZW50ZXI6IGxhdExuZyhnb29nbGVSZXN1bHRzLnN1Z2dlc3Rpb24ubGF0bG5nLmxhdCwgZ29vZ2xlUmVzdWx0cy5zdWdnZXN0aW9uLmxhdGxuZy5sbmcpLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNlbnRlciA9IGxhdExuZyhnb29nbGVSZXN1bHRzLnN1Z2dlc3Rpb24ubGF0bG5nLmxhdCwgZ29vZ2xlUmVzdWx0cy5zdWdnZXN0aW9uLmxhdGxuZy5sbmcpO1xuICAgICAgICB0aGlzLmxheWVycyA9IFtcbiAgICAgICAgICAgIG1hcmtlcihbZ29vZ2xlUmVzdWx0cy5zdWdnZXN0aW9uLmxhdGxuZy5sYXQsIGdvb2dsZVJlc3VsdHMuc3VnZ2VzdGlvbi5sYXRsbmcubG5nXSwge1xuICAgICAgICAgICAgICAgIGljb246IGljb24oe1xuICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZTogWzI1LCA0MV0sXG4gICAgICAgICAgICAgICAgICAgIGljb25BbmNob3I6IFsxMywgNDFdLFxuICAgICAgICAgICAgICAgICAgICBpY29uVXJsOiAnYXNzZXRzL2Jsb2Nrcy9pbWFnZXMvbWFwcy9tYXJrZXItaWNvbi5wbmcnLFxuICAgICAgICAgICAgICAgICAgICBzaGFkb3dVcmw6ICdhc3NldHMvYmxvY2tzL2ltYWdlcy9tYXBzL21hcmtlci1zaGFkb3cucG5nJyxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBdO1xuXG4gICAgICAgIHRoaXMuY29udGVudEJsb2NrW3RoaXMuRk9STV9OQU1FX0NPT1JESU5BVEVfWV0gPSBnb29nbGVSZXN1bHRzLnN1Z2dlc3Rpb24ubGF0bG5nLmxhdDtcbiAgICAgICAgdGhpcy5jb250ZW50QmxvY2tbdGhpcy5GT1JNX05BTUVfQ09PUkRJTkFURV9YXSA9IGdvb2dsZVJlc3VsdHMuc3VnZ2VzdGlvbi5sYXRsbmcubG5nO1xuXG4gICAgICAgIHRoaXMuYWRkcmVzcyA9IGdvb2dsZVJlc3VsdHMuc3VnZ2VzdGlvbi52YWx1ZTtcbiAgICAgICAgdGhpcy5zaG93TWFwID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnBlcnNpc3QoKTtcbiAgICB9XG5cbiAgICBoYW5kbGVBZGRyZXNzQ2hhbmdlKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwUmV0dXJuRWxlbWVudCA9IHtcbiAgICAgICAgICAgIHN1Z2dlc3Rpb246IHtcbiAgICAgICAgICAgICAgICBsYXRsbmc6IHtcbiAgICAgICAgICAgICAgICAgICAgbGF0OiBldmVudC5nZW9tZXRyeS5sb2NhdGlvbi5sYXQoKSxcbiAgICAgICAgICAgICAgICAgICAgbG5nOiBldmVudC5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBldmVudC5uYW1lLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zZXRDb29yZGluYXRlT25QbGFjZXModGhpcy5nb29nbGVNYXBSZXR1cm5FbGVtZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBdm9pZCBwYXJ0aWFsIG1hcCBsb2FkZWQgYXQgdGhlIGluaXRpYWxpemF0aW9uXG4gICAgICogQHBhcmFtIG1hcFxuICAgICAqL1xuICAgIG9uTWFwUmVhZHkobWFwKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgbWFwLmludmFsaWRhdGVTaXplKCk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIHNlbGVjdFRoaXNGb3JtKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hcGlTZXJ2aWNlLmdldEZvcm1zRGV0YWlsKHRoaXMuc2VsZWN0ZWRWYWx1ZS5pZCkuc3Vic2NyaWJlKChsaXN0czogRm9ybURldGFpbER0b1tdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGV0YWlsRm9ybSA9IGxpc3RzO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb250ZW50QmxvY2tbRk9STV9OQU1FX0lEX0ZPUk1dID0gdGhpcy5zZWxlY3RlZFZhbHVlLmlkO1xuICAgICAgICB0aGlzLnBlcnNpc3QoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwid2ItbWFwLWJhY2tncm91bmQtZm9ybS1yaWdodFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLXJpZ2h0X19jb250YWluZXJfX2NvbmZpZ1wiICpuZ0lmPVwic2hvd01hcFwiPlxuICAgICAgICA8d2Itc3RydWN0dXJlLWNvbmZpZyBbYmxvY2tVVUlEXT1cInV1aWRcIiBbcG9zaXRpb25dPVwiVFlQRV9DT05GSUdfUE9TSVRJT05fTEVGVF9UT1BcIiBbaXNGdWxsd2lkdGhdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHA+e3sgJ3diLnN0cnVjdHVyZXMudGVtcGxhdGUuMTknIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgaWQ9XCJhZGRyZXNzLWlucHV0LWVkaXR7eyB1dWlkIH19XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAjbXlJbnB1dEVkaXRcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibXlJbnB1dEVkaXQuc2VsZWN0KClcIlxuICAgICAgICAgICAgICAgIG5neC1nb29nbGUtcGxhY2VzLWF1dG9jb21wbGV0ZVxuICAgICAgICAgICAgICAgIChvbkFkZHJlc3NDaGFuZ2UpPVwiaGFuZGxlQWRkcmVzc0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvd2Itc3RydWN0dXJlLWNvbmZpZz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwid2ItbWFwLWJhY2tncm91bmQtZm9ybS1yaWdodF9fc2VsZWN0b3JcIiAqbmdJZj1cIiFzaG93TWFwXCI+XG4gICAgICAgIDxwPnt7ICd3Yi5zdHJ1Y3R1cmVzLnRlbXBsYXRlLjE5JyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cImFkZHJlc3MtaW5wdXR7eyB1dWlkIH19XCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYWRkcmVzc1wiXG4gICAgICAgICAgICAjbXlJbnB1dFxuICAgICAgICAgICAgKGNsaWNrKT1cIm15SW5wdXQuc2VsZWN0KClcIlxuICAgICAgICAgICAgbmd4LWdvb2dsZS1wbGFjZXMtYXV0b2NvbXBsZXRlXG4gICAgICAgICAgICAob25BZGRyZXNzQ2hhbmdlKT1cImhhbmRsZUFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbnMgaXMtZ2FwbGVzc1wiICpuZ0lmPVwic2hvd01hcFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2ItbWFwLWJhY2tncm91bmQtZm9ybS1yaWdodF9fY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dNYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndiLW1hcC1iYWNrZ3JvdW5kLWZvcm0tcmlnaHRfX2NvdmVyXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2ItbWFwLWJhY2tncm91bmQtZm9ybS1yaWdodF9fY29udGFpbmVyX19tYXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGVhZmxldFxuICAgICAgICAgICAgICAgICAgICAgICAgW2xlYWZsZXRPcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xlYWZsZXRMYXllcnNdPVwibGF5ZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobGVhZmxldENlbnRlcildPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChsZWFmbGV0TWFwUmVhZHkpPVwib25NYXBSZWFkeSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWREZXRhaWxGb3JtLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb3Jtcy5sZW5ndGggPT09IDBcIiBjbGFzcz1cIndiLW1hcC1iYWNrZ3JvdW5kLWZvcm0tcmlnaHRfX2xvYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8d2ItbG9hZGVyPjwvd2ItbG9hZGVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1tYXAtYmFja2dyb3VuZC1mb3JtLXJpZ2h0X19zZWxlY3RvclwiICpuZ0lmPVwiZm9ybXMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICA8d2Itc3RydWN0dXJlLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybXNdPVwiZm9ybXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZWQpPVwic2VsZWN0ZWRWYWx1ZSA9ICRldmVudDsgc2VsZWN0VGhpc0Zvcm0oKVwiXG4gICAgICAgICAgICAgICAgICAgID48L3diLXN0cnVjdHVyZS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZERldGFpbEZvcm0ubGVuZ3RoID4gMFwiIGNsYXNzPVwid2ItbWFwLWJhY2tncm91bmQtZm9ybS1yaWdodF9fY29udGFpbmVyLWZvcm1cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2ItbWFwLWJhY2tncm91bmQtZm9ybS1yaWdodF9fY29udGFpbmVyLWZvcm1fX2VkaXRvclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHd6LWVkaXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29udGVudHNbQkFTRV9CTE9DS19DT05URU5UXVtGT1JNX05BTUVfVElUTEVdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwZXJzaXN0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInd2Iuc2hhcmVkLmNvbXBvbmVudHMucXVpbGwuMScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC93ei1lZGl0b3I+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHd6LWVkaXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29udGVudHNbQkFTRV9CTE9DS19DT05URU5UXVtGT1JNX05BTUVfQ09OVEVOVF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInBlcnNpc3QoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIid3Yi5zaGFyZWQuY29tcG9uZW50cy5xdWlsbC4xJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3d6LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndiLW1hcC1iYWNrZ3JvdW5kLWZvcm0tcmlnaHRfX2NvbnRhaW5lci1mb3JtX19jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlbGVjdCBvZiBzZWxlY3RlZERldGFpbEZvcm1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIFtpbm5lckhUTUxdPVwic2VsZWN0LnRpdGxlXCI+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgc2VsZWN0LnR5cGUgfCBhbnN3ZXJQaXBlIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx3Yi1zdHJ1Y3R1cmUtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1zXT1cImZvcm1zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlZCk9XCJzZWxlY3RlZFZhbHVlID0gJGV2ZW50OyBzZWxlY3RUaGlzRm9ybSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3diLXN0cnVjdHVyZS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24+e3sgc2VsZWN0ZWRWYWx1ZS5zdWJtaXRfbGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|