@rangertechnologies/ngnxt 2.1.251 → 2.1.252
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/esm2022/environments/version.mjs +2 -2
- package/esm2022/lib/components/button/nxt-button.component.mjs +4 -4
- package/esm2022/lib/components/custom-calendar/custom-calendar.component.mjs +5 -8
- package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +7 -8
- package/esm2022/lib/components/custom-model/custom-model.component.mjs +3 -5
- package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +3 -3
- package/esm2022/lib/components/datatable/datatable.component.mjs +8 -7
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +9 -9
- package/esm2022/lib/components/icon-selector/icon-selector.component.mjs +3 -4
- package/esm2022/lib/components/list-view-filter/list-view-filter.component.mjs +9 -9
- package/esm2022/lib/components/nxt-input/nxt-input.component.mjs +12 -24
- package/esm2022/lib/components/pagination/pagination.component.mjs +3 -3
- package/esm2022/lib/components/pick-location/pick-location.component.mjs +4 -5
- package/esm2022/lib/components/search-box/search-box.component.mjs +8 -10
- package/esm2022/lib/interfaces/apimeta.mjs +2 -0
- package/esm2022/lib/nxt-app.module.mjs +4 -4
- package/esm2022/lib/pages/booklet/booklet.component.mjs +56 -28
- package/esm2022/lib/pages/builder/element/element.component.mjs +10 -65
- package/esm2022/lib/pages/builder/form/form.component.mjs +3 -6
- package/esm2022/lib/pages/builder/properties/properties.component.mjs +78 -182
- package/esm2022/lib/pages/builder/templates/templates.component.mjs +4 -5
- package/esm2022/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.mjs +4 -5
- package/esm2022/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.mjs +45 -42
- package/esm2022/lib/pages/questionbook/questionbook.component.mjs +31 -12
- package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +8 -12
- package/esm2022/lib/pipe/custom-translate.pipe.mjs +10 -16
- package/esm2022/lib/services/change.service.mjs +46 -0
- package/esm2022/lib/services/country.service.mjs +135 -0
- package/esm2022/lib/services/data.service.mjs +100 -0
- package/esm2022/lib/services/form-builder.service.mjs +402 -0
- package/esm2022/lib/services/pdf-designer.service.mjs +398 -0
- package/esm2022/lib/services/salesforce.service.mjs +41 -0
- package/esm2022/lib/services/shared.service.mjs +100 -0
- package/esm2022/lib/services/storage.service.mjs +59 -0
- package/esm2022/lib/services/template.service.mjs +351 -0
- package/esm2022/lib/services/translation.service.mjs +61 -0
- package/esm2022/public-api.mjs +2 -2
- package/fesm2022/rangertechnologies-ngnxt.mjs +933 -1201
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/lib/components/button/nxt-button.component.d.ts +1 -1
- package/lib/components/custom-calendar/custom-calendar.component.d.ts +1 -1
- package/lib/components/custom-dropdown/custom-dropdown.component.d.ts +2 -2
- package/lib/components/custom-radio/custom-radio.component.d.ts +2 -2
- package/lib/components/datatable/datatable.component.d.ts +3 -3
- package/lib/components/file-upload/file-upload.component.d.ts +2 -2
- package/lib/components/image-cropper/component/image-cropper.component.d.ts +1 -1
- package/lib/components/nxt-input/nxt-input.component.d.ts +2 -2
- package/lib/components/search-box/search-box.component.d.ts +4 -4
- package/lib/interfaces/apimeta.d.ts +15 -0
- package/lib/nxt-app.module.d.ts +1 -1
- package/lib/pages/booklet/booklet.component.d.ts +9 -9
- package/lib/pages/builder/element/element.component.d.ts +4 -10
- package/lib/pages/builder/form/form.component.d.ts +1 -2
- package/lib/pages/builder/properties/properties.component.d.ts +6 -33
- package/lib/pages/builder/templates/templates.component.d.ts +1 -1
- package/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.d.ts +1 -1
- package/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.d.ts +2 -19
- package/lib/pages/questionbook/questionbook.component.d.ts +8 -6
- package/lib/pages/questionnaire/questionnaire.component.d.ts +5 -6
- package/lib/pipe/custom-translate.pipe.d.ts +3 -2
- package/lib/services/{form-builder/form-builder.service.d.ts → form-builder.service.d.ts} +1 -2
- package/lib/services/{pdf-designer/pdf-designer.service.d.ts → pdf-designer.service.d.ts} +1 -1
- package/lib/services/{storage/storage.service.d.ts → storage.service.d.ts} +2 -2
- package/lib/services/{translation/translation.service.d.ts → translation.service.d.ts} +1 -12
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/rangertechnologies-ngnxt-2.1.252.tgz +0 -0
- package/esm2022/lib/services/change/change.service.mjs +0 -46
- package/esm2022/lib/services/country/country.service.mjs +0 -135
- package/esm2022/lib/services/data/data.service.mjs +0 -100
- package/esm2022/lib/services/form-builder/form-builder.service.mjs +0 -485
- package/esm2022/lib/services/pdf-designer/pdf-designer.service.mjs +0 -398
- package/esm2022/lib/services/salesforce/salesforce.service.mjs +0 -41
- package/esm2022/lib/services/shared/shared.service.mjs +0 -100
- package/esm2022/lib/services/storage/storage.service.mjs +0 -59
- package/esm2022/lib/services/template/template.service.mjs +0 -351
- package/esm2022/lib/services/translation/translation.service.mjs +0 -121
- package/rangertechnologies-ngnxt-2.1.251.tgz +0 -0
- /package/lib/services/{change/change.service.d.ts → change.service.d.ts} +0 -0
- /package/lib/services/{country/country.service.d.ts → country.service.d.ts} +0 -0
- /package/lib/services/{data/data.service.d.ts → data.service.d.ts} +0 -0
- /package/lib/services/{salesforce/salesforce.service.d.ts → salesforce.service.d.ts} +0 -0
- /package/lib/services/{shared/shared.service.d.ts → shared.service.d.ts} +0 -0
- /package/lib/services/{template/template.service.d.ts → template.service.d.ts} +0 -0
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter, HostListener, ViewChild } from '@angular/core';
|
|
2
2
|
import { ChangeWrapper } from '../../model/changeWrapper';
|
|
3
|
-
// VD 23JAN24 used service file for callout
|
|
4
3
|
import { CommonModule } from '@angular/common';
|
|
5
4
|
import { FormsModule } from '@angular/forms';
|
|
6
5
|
import { NxtInput } from '../nxt-input/nxt-input.component';
|
|
7
|
-
import { NxtCustomTranslatePipe } from '../../pipe/custom-translate.pipe';
|
|
8
6
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../../services/change
|
|
10
|
-
import * as i2 from "../../services/data
|
|
7
|
+
import * as i1 from "../../services/change.service";
|
|
8
|
+
import * as i2 from "../../services/data.service";
|
|
11
9
|
import * as i3 from "../../i18n.service";
|
|
12
10
|
import * as i4 from "@angular/common";
|
|
13
11
|
export class CustomDropdownComponent {
|
|
@@ -44,6 +42,7 @@ export class CustomDropdownComponent {
|
|
|
44
42
|
labelField;
|
|
45
43
|
valueField;
|
|
46
44
|
subscription;
|
|
45
|
+
//public apiObj:APIMeta;
|
|
47
46
|
uniqueKey;
|
|
48
47
|
apiObj = {};
|
|
49
48
|
showOptions = false;
|
|
@@ -216,13 +215,13 @@ export class CustomDropdownComponent {
|
|
|
216
215
|
}
|
|
217
216
|
}
|
|
218
217
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomDropdownComponent, deps: [{ token: i1.ChangeService }, { token: i2.DataService }, { token: i3.I18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
219
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomDropdownComponent, isStandalone: true, selector: "app-custom-dropdown", inputs: { options: "options", placeholder: "placeholder", apiMeta: "apiMeta", selectedValue: "selectedValue", progressBar: "progressBar", id: "id", readOnly: "readOnly", errorMessage: "errorMessage", error: "error", fromShengel: "fromShengel", question: "question", referenceField: "referenceField", token: "token", mode: "mode", from: "from" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownWrapper", first: true, predicate: ["dropdownWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #dropdownWrapper class=\"dropdown-close\">\n <nxt-input \n [type]=\"'dropdown'\"\n [mode]=\"mode\"\n [from]=\"from\"\n [value]=\"selectedValue\"\n (onFocus)=\"getOptions()\"\n [labelFont]=\"question
|
|
218
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomDropdownComponent, isStandalone: true, selector: "app-custom-dropdown", inputs: { options: "options", placeholder: "placeholder", apiMeta: "apiMeta", selectedValue: "selectedValue", progressBar: "progressBar", id: "id", readOnly: "readOnly", errorMessage: "errorMessage", error: "error", fromShengel: "fromShengel", question: "question", referenceField: "referenceField", token: "token", mode: "mode", from: "from" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownWrapper", first: true, predicate: ["dropdownWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #dropdownWrapper class=\"dropdown-close\">\n <nxt-input \n [type]=\"'dropdown'\"\n [mode]=\"mode\"\n [from]=\"from\"\n [value]=\"selectedValue\"\n (onFocus)=\"getOptions()\"\n [labelFont]=\"question.font\"\n [label]=\"question?.questionText\"\n [labelColor]=\"question.fontColor\"\n [labelSize]=\"question.fontSize\"\n [inputValueSize]=\"question.fontSize\"\n [labelWeight]=\"question.fontWeight\"\n [inputWeight]=\"question.fontWeight\"\n [showLabel]=\"question.style?.showLabel\"\n inputBorder=\"none\" svgHeight=\"20px\" svgWidth=\"20px\"\n [placeholder]=\"placeholder\"\n [required]=\"question.isOptional\" inputBgColor=\"#FAFAFA\"\n [inputId]=\"question.trackingId\"\n [errorMessages]=\"{ required: 'This field is required' }\"\n [inputIconLeftSrc]=\"question.iconLeftSrc\"\n (toggleEmit)=\"toggle()\"\n (clearInputEmit)=\"clearSelection()\"\n [question]=\"question\"\n (inputValue)=\"inputValue($event.value,$event.question)\"\n >\n</nxt-input>\n\n <!-- SKS11JUN25 Dropdown list -->\n <ul class=\"nxt-dropdown-menu\" *ngIf=\"showOptions && options.length > 0\">\n <li *ngFor=\"let item of options\" (mousedown)=\"selectChange(item)\">\n {{ apiObj && !apiObj.isDependentField && item[labelField] ? item[labelField] : item?.value }}\n </li>\n </ul>\n</div>\n<span *ngIf=\"error || invalidFieldIds.includes(id)\" class=\"error-msg\">{{ errorMessage }}</span>\n", styles: [".shengel-custom-select-wrapper{position:relative}.nxt-dropdown-menu{position:absolute;z-index:10;background:#fff;border:1px solid #ccc;max-height:200px;overflow-y:auto;width:100%;margin-top:2px;list-style:none;padding:0}.nxt-dropdown-menu li{padding:8px;cursor:pointer}.nxt-dropdown-menu li:hover{background-color:#f0f0f0}.invalid .shengel-custom-select{border-color:red}.shengel-custom-select{width:100%;padding-right:50px}.dropdown-close{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: NxtInput, selector: "nxt-input", inputs: ["label", "labelFont", "labelWeight", "inputWeight", "labelSize", "inputValueSize", "labelColor", "showLabel", "svgHeight", "svgWidth", "type", "inputIconRightSrc", "inputIconLeftSrc", "required", "minLength", "pattern", "errorMessages", "maxLength", "placeholder", "inputBgColor", "inputBorder", "placeholderColor", "placeholderFont", "placeholderWeight", "placeholderSize", "inputTextColor", "inputHeight", "inputWidth", "inputId", "inputBorderSize", "inputConfig", "confPassVal", "confPass", "mode", "value", "question", "showSuggestion", "ariaOwns", "ariaHasPopup", "isLoading", "options", "minDate", "maxDate", "rows", "from", "hyperLink", "size"], outputs: ["valueChange", "inputValue", "onBlur", "onFocus", "toggleEmit", "nativeInputRef", "removeValueEmit", "hyperlinkEmit"] }] });
|
|
220
219
|
}
|
|
221
220
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomDropdownComponent, decorators: [{
|
|
222
221
|
type: Component,
|
|
223
222
|
args: [{ selector: 'app-custom-dropdown', standalone: true, imports: [
|
|
224
|
-
CommonModule, FormsModule, NxtInput
|
|
225
|
-
], template: "<div #dropdownWrapper class=\"dropdown-close\">\n <nxt-input \n [type]=\"'dropdown'\"\n [mode]=\"mode\"\n [from]=\"from\"\n [value]=\"selectedValue\"\n (onFocus)=\"getOptions()\"\n [labelFont]=\"question
|
|
223
|
+
CommonModule, FormsModule, NxtInput
|
|
224
|
+
], template: "<div #dropdownWrapper class=\"dropdown-close\">\n <nxt-input \n [type]=\"'dropdown'\"\n [mode]=\"mode\"\n [from]=\"from\"\n [value]=\"selectedValue\"\n (onFocus)=\"getOptions()\"\n [labelFont]=\"question.font\"\n [label]=\"question?.questionText\"\n [labelColor]=\"question.fontColor\"\n [labelSize]=\"question.fontSize\"\n [inputValueSize]=\"question.fontSize\"\n [labelWeight]=\"question.fontWeight\"\n [inputWeight]=\"question.fontWeight\"\n [showLabel]=\"question.style?.showLabel\"\n inputBorder=\"none\" svgHeight=\"20px\" svgWidth=\"20px\"\n [placeholder]=\"placeholder\"\n [required]=\"question.isOptional\" inputBgColor=\"#FAFAFA\"\n [inputId]=\"question.trackingId\"\n [errorMessages]=\"{ required: 'This field is required' }\"\n [inputIconLeftSrc]=\"question.iconLeftSrc\"\n (toggleEmit)=\"toggle()\"\n (clearInputEmit)=\"clearSelection()\"\n [question]=\"question\"\n (inputValue)=\"inputValue($event.value,$event.question)\"\n >\n</nxt-input>\n\n <!-- SKS11JUN25 Dropdown list -->\n <ul class=\"nxt-dropdown-menu\" *ngIf=\"showOptions && options.length > 0\">\n <li *ngFor=\"let item of options\" (mousedown)=\"selectChange(item)\">\n {{ apiObj && !apiObj.isDependentField && item[labelField] ? item[labelField] : item?.value }}\n </li>\n </ul>\n</div>\n<span *ngIf=\"error || invalidFieldIds.includes(id)\" class=\"error-msg\">{{ errorMessage }}</span>\n", styles: [".shengel-custom-select-wrapper{position:relative}.nxt-dropdown-menu{position:absolute;z-index:10;background:#fff;border:1px solid #ccc;max-height:200px;overflow-y:auto;width:100%;margin-top:2px;list-style:none;padding:0}.nxt-dropdown-menu li{padding:8px;cursor:pointer}.nxt-dropdown-menu li:hover{background-color:#f0f0f0}.invalid .shengel-custom-select{border-color:red}.shengel-custom-select{width:100%;padding-right:50px}.dropdown-close{position:relative}\n"] }]
|
|
226
225
|
}], ctorParameters: () => [{ type: i1.ChangeService }, { type: i2.DataService }, { type: i3.I18nService }], propDecorators: { options: [{
|
|
227
226
|
type: Input
|
|
228
227
|
}], placeholder: [{
|
|
@@ -262,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
262
261
|
type: HostListener,
|
|
263
262
|
args: ['document:click', ['$event']]
|
|
264
263
|
}] } });
|
|
265
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1kcm9wZG93bi9jdXN0b20tZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLWRyb3Bkb3duL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFZLFlBQVksRUFBYyxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRTdJLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUcxRCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQVcxRSxNQUFNLE9BQU8sdUJBQXVCO0lBc0J4QjtJQUNBO0lBQ0Q7SUF2QkEsT0FBTyxHQUFVLEVBQUUsQ0FBQztJQUNwQixXQUFXLENBQVM7SUFDcEIsT0FBTyxDQUFTO0lBQ2hCLGFBQWEsQ0FBUztJQUN0QixXQUFXLENBQVU7SUFDckIsRUFBRSxDQUFTO0lBQ1gsUUFBUSxHQUFZLEtBQUssQ0FBQyxDQUFDLCtCQUErQjtJQUMxRCxZQUFZLENBQVM7SUFDckIsS0FBSyxDQUFNO0lBQ1gsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixRQUFRLENBQU07SUFDZCxjQUFjLENB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QUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUV1QixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkEwSzlCLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9wdGlvbmFsLCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGFuZ2VXcmFwcGVyIH0gZnJvbSAnLi4vLi4vbW9kZWwvY2hhbmdlV3JhcHBlcic7XG4vLyBIQSAxOURFQzIzIGltcG9ydGVkIHRyYW5zbGF0aW9uIHNlcnZpY2VcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi5zZXJ2aWNlJztcbi8vIFZEIDIzSkFOMjQgdXNlZCBzZXJ2aWNlIGZpbGUgZm9yIGNhbGxvdXRcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE54dElucHV0IH0gZnJvbSAnLi4vbnh0LWlucHV0L254dC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoYW5nZS9jaGFuZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IE54dEN1c3RvbVRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlL2N1c3RvbS10cmFuc2xhdGUucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jdXN0b20tZHJvcGRvd24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgTnh0SW5wdXQsIE54dEN1c3RvbVRyYW5zbGF0ZVBpcGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBvcHRpb25zOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKSBhcGlNZXRhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU6IHN0cmluZztcbiAgQElucHV0KCkgcHJvZ3Jlc3NCYXI6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7IC8vIFZEIDEySnVuMjQgLSByZWFkb25seSBjaGFuZ2VcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVycm9yOiBhbnk7XG4gIEBJbnB1dCgpIGZyb21TaGVuZ2VsOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBhbnk7XG4gIEBJbnB1dCgpIHJlZmVyZW5jZUZpZWxkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRva2VuOiBzdHJpbmc7ICAgIC8vIFZEIDE5SkFOMjQgLSBnZXR0aW5nIHRva2VuIGFzIGlucHV0XG4gIEBJbnB1dCgpIG1vZGU6ICd2aWV3JyB8ICdlZGl0JyB8ICdwcmludCcgPSAnZWRpdCc7IC8vIFNLUzExSlVOMjUgTmV3IG1vZGUgaW5wdXRcbiAgQElucHV0KCkgZnJvbTogYW55XG4gICAgXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAVmlld0NoaWxkKCdkcm9wZG93bldyYXBwZXInKSBkcm9wZG93bldyYXBwZXI6IEVsZW1lbnRSZWY7XG4gIGludmFsaWRGaWVsZElkczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VTZXJ2aWNlOiBDaGFuZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxuICAgIHB1YmxpYyBpMThuU2VydmljZTogSTE4blNlcnZpY2UsXG4gICkgeyBcbiAgICB0aGlzLmNoYW5nZVNlcnZpY2Uuc3VibWl0VmFsaWRhdGUkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgLy8gdG8gZ2V0IHRoZSBlcnJvciBtZXNzYWdlJ3MgZmllbGQgaWQnc1xuICAgICAgdGhpcy5pbnZhbGlkRmllbGRJZHMucHVzaChkYXRhKTtcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIGxhYmVsRmllbGQ6IHN0cmluZztcbiAgcHVibGljIHZhbHVlRmllbGQ6IHN0cmluZztcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyB1bmlxdWVLZXk6IHN0cmluZztcbiAgYXBpT2JqOiBhbnkgPSB7fTtcbiAgc2hvd09wdGlvbnMgPSBmYWxzZTtcblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gIH1cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydtb2RlJ10pIHtcbiAgICAgIHRoaXMubW9kZSA9IGNoYW5nZXNbJ21vZGUnXS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG4gIGdldE9wdGlvbnMoKSB7XG4gICAgdGhpcy5zaG93T3B0aW9ucyA9IHRydWU7XG4gICAgLy9WRCAwN0F1ZzI0IC0gaXNEZXBlbmRlbnRGaWVsZCBjaGFuZ2VcbiAgICAvLyBWRCAyNU9jdDI0IC0gY2hhbmdlc1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyID8gdGhpcy5wbGFjZWhvbGRlciA6ICctLS1TZWxlY3Qgb3B0aW9uLS0tJztcbiAgICBpZiAodGhpcy5hcGlNZXRhKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBNU00tMjdNQVIyNSBFbnN1cmUgcXVlcy5zdWJUZXh0IGlzIGFsd2F5cyBhbiBvYmplY3QgYnkgcGFyc2luZyBpdCBpZiBpdCdzIGEgc3RyaW5nXG4gICAgICAgIHRoaXMuYXBpT2JqID0gdHlwZW9mIHRoaXMuYXBpTWV0YSA9PT0gJ29iamVjdCcgPyB0aGlzLmFwaU1ldGEgOiBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgYXBpT2JqIGFuZCBhcGlPYmouZmllbGQgYXJlIGRlZmluZWRcbiAgICAgICAgaWYgKHRoaXMuYXBpT2JqICYmIHRoaXMuYXBpT2JqLmZpZWxkKSB7XG4gICAgICAgICAgdGhpcy5zaG93T3B0aW9ucyA9IHRydWU7XG4gICAgICAgICAgdGhpcy5sYWJlbEZpZWxkID0gdGhpcy5hcGlPYmouZmllbGQ7XG4gICAgICAgICAgdGhpcy51bmlxdWVLZXkgPSB0aGlzLmFwaU9iai51bmlxdWVLZXk7XG4gICAgICAgICAgY29uc3QgY2FjaGVkT3B0aW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMudW5pcXVlS2V5KTtcbiAgICAgICAgICBpZiAoY2FjaGVkT3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gSlNPTi5wYXJzZShjYWNoZWRPcHRpb25zKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmFwaU9iai5pc0RlcGVuZGVudEZpZWxkKSB7XG4gICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBWRCAwOVNlcDI0LSBzZXR1cCB0aGUgcXVlcnkgcGFyYW0gZm9yIGFwaSBjYWxsIC8vIE1SIDA4SkFOMjQgRGVwZW5kZW50RmllbGQgQVBJIEZpeCBtb3ZlZCBiZWxvdyBsb2dpYyBmcm9tIGFib3ZlIGlmIGNvbmRpdGlvblxuICAgICAgICAgICAgbGV0IGZ1bGxFbmRQb2ludDtcbiAgICAgICAgICAgIGlmICh0aGlzLmFwaU9iai5lbmRwb2ludCkge1xuICAgICAgICAgICAgICBpZiAodGhpcy5hcGlPYmoucXVlcnlWYWx1ZVJlZmVyZW5jZSAmJiB0aGlzLmFwaU9iai5xdWVyeUZpZWxkKSB7XG4gICAgICAgICAgICAgICAgLy8gcHJvY2VzcyB0aGUgZW5kIHBvaW50IHdpdGggcXVlcnkgcGFyYW1cbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlSZWZlcmVuY2VzID0gdGhpcy5hcGlPYmoucXVlcnlWYWx1ZVJlZmVyZW5jZS5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgICAgIGxldCBxdWVyeUZpZWxkcyA9IHRoaXMuYXBpT2JqLnF1ZXJ5RmllbGQuc3BsaXQoJywnKTsgICAgLy8gTVIgMDhKQU4yNCBzaW1pbGFyIHRvIGFib3ZlIHZhbHVlcmVmZXJlbmNlIGdldCBsaXN0IG9mIFFVRVJZIEZpZWxkc1xuICAgICAgICAgICAgICAgIGxldCBxdWVyeVZhbHVlcyA9IHRoaXMuYXBpT2JqLnF1ZXJ5VmFsdWUuc3BsaXQoJywnKTsgICAgLy8gTVIgMDhKQU4yNCBzaW1pbGFyIHRvIGFib3ZlIHZhbHVlcmVmZXJlbmNlIGdldCBsaXN0IG9mIFFVRVJZIFZhbHVlcyAoRGVmYXVsdClcbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlQYXJhbXMgPSBbXTtcbiAgICAgICAgICAgICAgICBsZXQgcUluZGV4ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1SIDA4SkFOMjQgUXVlcnkgSW5kZXhcbiAgICAgICAgICAgICAgICAvLyBJdGVyYXRlIG92ZXIgcXVlcnlSZWZlcmVuY2VzIGFuZCBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaW4gcmVmZXJlbmNlRGF0YVxuICAgICAgICAgICAgICAgIHF1ZXJ5UmVmZXJlbmNlcy5mb3JFYWNoKHJlZmVyZW5jZSA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBGaW5kIHRoZSBlbGVtZW50IGluIHJlZmVyZW5jZURhdGEgdGhhdCBtYXRjaGVzIHRoZSBjdXJyZW50IHJlZmVyZW5jZVxuICAgICAgICAgICAgICAgICAgLy8gUlMgMDlERUMyNCBDaGFuZ2VkIGtleXNcbiAgICAgICAgICAgICAgICAgIGxldCBtYXRjaGluZ0VsZW1lbnQgPSB0aGlzLnF1ZXN0aW9uPy5yZWZlcmVuY2VRdWVyeURhdGEuZmluZChlbGVtZW50ID0+IGVsZW1lbnQucmVmZXJlbmNlRmllbGQgPT09IHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAvLyBJZiBhIG1hdGNoaW5nIGVsZW1lbnQgaXMgZm91bmQsIGdldCBpdHMgaW5wdXQgdmFsdWUgYW5kIGNyZWF0ZSBhIHF1ZXJ5IHBhcmFtZXRlclxuICAgICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZSAmJiBtYXRjaGluZ0VsZW1lbnQpIHsgICAvLyBNUiAwOEpBTjI0IGlmIHJlZmVyZW5jZSBleGlzdCAmIG1hdGNoaW5nIGVsZW1lbnQgZm91bmRcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXMucHVzaChgJHtxdWVyeUZpZWxkc1txSW5kZXhdfT0ke21hdGNoaW5nRWxlbWVudC5pbnB1dH1gKTsgICAgLy8gTVIgMDhKQU4yNCByZW1vdmVkIHJlZmVyZW5jZVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgICAgLy8gTVIgMDhKQU4yNCBpbmNsdWRlZCBvcHRpb24gZm9yIG11bHRpcGxlIHF1ZXJ5IHBhcmFtcyBhbmQgZGVmYXVsdCB2YWx1ZSBpbiBjYXNlIG9mIHJlZmVyZW5jZSBpcyBub3QgZm91bmRcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXMucHVzaChgJHtxdWVyeUZpZWxkc1txSW5kZXhdfT0ke3F1ZXJ5VmFsdWVzW3FJbmRleF19YCk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHFJbmRleCsrO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGZ1bGxFbmRQb2ludCA9IHRoaXMuYXBpT2JqLmVuZHBvaW50ICsgJz8nICsgcXVlcnlQYXJhbXMuam9pbignJicpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGlmIG5vIHF1ZXJ5IHBhcmFtIGdldCB0aGUgYWN0dWFsIGVuZFBvaW50XG4gICAgICAgICAgICAgICAgZnVsbEVuZFBvaW50ID0gdGhpcy5hcGlPYmouZW5kcG9pbnQ7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBWRCAxOUpBTjI0IC0gYWRkZWQgb25lIG1vcmUgcGFyYW0gZm9yIGF1dGhlbnRpY2F0aW9uXG4gICAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuYXBpUmVzcG9uc2UoZnVsbEVuZFBvaW50KT8uc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIEhBIDE4LUpBTi0yNCBBc3NpZ25lZCBhcGlyZXNwb25zZSBkaXJlY3RseSBpZiB3ZSBoYXZlIHRoZSByZXNwb25zZSBpbiBhcnJheSBhbHNvXG4gICAgICAgICAgICAgICAgLy8gVkQgMTlKQU4yNCAtIGlmIHJlc3BvbnNlIGhhcyBrZXkgd2l0aCB2YWx1ZSh3aGljaCBpcyBhcnJheSlcbiAgICAgICAgICAgICAgICBsZXQgcmVzcG9uc2VzO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFwaU9iai52YXJpYWJsZSkge1xuICAgICAgICAgICAgICAgICAgLy8gVkQgMjFNYXkyNCAtIGhhbmRsaW5nIG11bHRpcGxlIGNoaWxkIG9iamVjdHNcbiAgICAgICAgICAgICAgICAgIC8vIFZEIDIyTWF5MjQgLSB1c2VkIGNvbW1vbiBzZXJ2aWNlIGZpbGVcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlcyA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoYXBpUmVzcG9uc2UsIHRoaXMuYXBpT2JqLnZhcmlhYmxlKTtcbiAgICAgICAgICAgICAgICAgIGxldCByZXN1bHRzID0gW107XG4gICAgICAgICAgICAgICAgICAvLyBIQSAxOUpBTjI0IFRvIGF2b2lkIHVuZGVmaW5lZCBlcnJvciBpbiBjb25zb2xlXG4gICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlcz8ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3AgPSByZXNwb25zZXNbaV07XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChyZXNwKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHsgIC8vIFZEIDE5SkFOMjQgLSBpZiByZXNwb25zZSBoYXMgdmFsdWUod2hpY2ggaXMgYXJyYXkpIG9ubHlcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlcyA9IGFwaVJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gcmVzcG9uc2VzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBWRCAyNU9jdDI0IC0gU3RvcmUgZmV0Y2hlZCBvcHRpb25zIGluIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgICAgICAgICBpZiAodGhpcy51bmlxdWVLZXkpIHtcbiAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMudW5pcXVlS2V5LCBKU09OLnN0cmluZ2lmeSh0aGlzLm9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFZEIE5PVjIzIC0gaGFuZGxlIHRoZSBkZXBlbmRlbnQgdXBkYXRlIGZvciBkcm9wZG93blxuICAgICAgICAgICAgLy8gVkQgMDlTZXAyNC0gcHVzaCB0aGUgZGVwZW5kZW50IGZpZWxkIHZhbHVlcyBmb3IgZHJvcGRvd25cbiAgICAgICAgICAgIGxldCBzb3VyY2VJZCA9IHRoaXMuYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQ7XG4gICAgICAgICAgICBpZiAoc291cmNlSWQgJiYgdGhpcy5hcGlPYmoudmFyaWFibGUgfHwgdGhpcy5hcGlPYmoudmFsdWVGaWVsZCkge1xuICAgICAgICAgICAgICAvLyBTdWJzY3JpYmUgZm9yIHRoZSBjaGFuZ2VzXG4gICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jaGFuZ2VTZXJ2aWNlLmNoYW5nZUFubm91bmNlZCQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChjaGFuZ2VWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKGNoYW5nZVZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgJiYgY2hhbmdlVmFsdWUudmFsdWVPYmogIT09IHVuZGVmaW5lZCAmJiAoIEFycmF5LmlzQXJyYXkodGhpcy5hcGlPYmouc291cmNlUXVlc3Rpb25JZCk/IHRoaXMuYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQuaW5jbHVkZXMoY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQpIDogY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgPT09IHRoaXMuYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgLy8gIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGNoYW5nZVZhbHVlLnZhbHVlT2JqW3RoaXMuYXBpT2JqLnZhbHVlRmllbGRdO1xuICAgICAgICAgICAgICAgICAgICAgIC8vICBsZXQgdmFsdWUgPXt9O1xuICAgICAgICAgICAgICAgICAgICAgIC8vICB2YWx1ZVsnbmFtZSddID0gdGhpcy5zZWxlY3RlZFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgIGxldCByZXNwb25zZXM7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYXBpT2JqLnZhcmlhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZXMgPSB0aGlzLmRhdGFTZXJ2aWNlLmdldFZhbHVlKGNoYW5nZVZhbHVlLnZhbHVlT2JqLCB0aGlzLmFwaU9iai52YXJpYWJsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0cyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNwb25zZXM/Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXNwID0gcmVzcG9uc2VzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2gocmVzcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSByZXN1bHRzO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZXMgPSBjaGFuZ2VWYWx1ZS52YWx1ZU9iajtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3BvbnNlcztcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgLy8gVkQgMjVPY3QyNCAtIFN0b3JlIGZldGNoZWQgb3B0aW9ucyBpbiBsb2NhbCBzdG9yYWdlXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudW5pcXVlS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnVuaXF1ZUtleSwgSlNPTi5zdHJpbmdpZnkodGhpcy5vcHRpb25zKSk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VydmljZS5jb25maXJtQ2hhbmdlKGNoYW5nZVZhbHVlLmZyb21RdWVzdGlvbklkKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIGFwaU1ldGE6JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBWRCAyMk1heTI0IC0gdXNlZCBjb21tb24gc2VydmljZSBmaWxlXG5cbiAgc2VsZWN0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBsZXQgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTsgLy8gQ2hhbmdlV3JhcHBlciA9IEpTT04ucGFyc2UoJ3t9Jyk7XG4gICAgY2hhbmdlWydmcm9tUXVlc3Rpb25JZCddID0gdGhpcy5pZDtcbiAgICBjaGFuZ2VbJ3ZhbHVlT2JqJ10gPSBldmVudCA/IGV2ZW50W3RoaXMubGFiZWxGaWVsZF0gPyBldmVudFt0aGlzLmxhYmVsRmllbGRdIDogZXZlbnQ/LnZhbHVlIDogJyc7XG4gICAgY2hhbmdlWydyZWZlcmVuY2VGaWVsZCddID0gdGhpcy5yZWZlcmVuY2VGaWVsZDtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe3F1ZXN0aW9uIDogdGhpcy5xdWVzdGlvbiwgdmFsdWU6IGNoYW5nZX0pO1xuICAgIC8vIG9uY2UgZ290IHZhbHVlIGluIGRyb3Bkb3duIHJlbW92ZSB0aGUgZXJyb3IgdmFsaWRhdGlvblxuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5pbnZhbGlkRmllbGRJZHMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5zaG93T3B0aW9ucyA9IGZhbHNlO1xuICB9XG50b2dnbGUoKXtcbiAgdGhpcy5zaG93T3B0aW9ucyA9ICF0aGlzLnNob3dPcHRpb25zO1xufVxuXG5ASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG5vbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICBpZiAodGhpcy5kcm9wZG93bldyYXBwZXIgJiYgIXRoaXMuZHJvcGRvd25XcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSkge1xuICAgIHRoaXMuc2hvd09wdGlvbnMgPSBmYWxzZTtcbiAgfVxufVxuXG5cbiAgY2xlYXJTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gJyc7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHtxdWVzdGlvbiA6IHRoaXMucXVlc3Rpb24sIHZhbHVlOiB7XG4gICAgICBmcm9tUXVlc3Rpb25JZDogdGhpcy5pZCxcbiAgICAgIHZhbHVlT2JqOiAnJyxcbiAgICAgIHJlZmVyZW5jZUZpZWxkOiB0aGlzLnJlZmVyZW5jZUZpZWxkLFxuICAgIH19KTtcbiAgICB0aGlzLmludmFsaWRGaWVsZElkcyA9IFtdO1xuICB9XG4gIGlucHV0VmFsdWUoZXZlbnQscXVlcyl7XG4gICAgaWYocXVlcy5zaW5nbGVGaWVsZENoYW5nZSl7XG4gICAgICBsZXQgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTsgLy8gQ2hhbmdlV3JhcHBlciA9IEpTT04ucGFyc2UoJ3t9Jyk7XG4gICAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLmlkO1xuICAgICAgY2hhbmdlWyd2YWx1ZU9iaiddID0gZXZlbnQ7XG4gICAgICBjaGFuZ2VbJ3JlZmVyZW5jZUZpZWxkJ10gPSB0aGlzLnJlZmVyZW5jZUZpZWxkO1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHtxdWVzdGlvbiA6IHF1ZXMsIHZhbHVlOiBjaGFuZ2V9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgI2Ryb3Bkb3duV3JhcHBlciBjbGFzcz1cImRyb3Bkb3duLWNsb3NlXCI+XG4gIDxueHQtaW5wdXQgXG4gIFt0eXBlXT1cIidkcm9wZG93bidcIlxuICBbbW9kZV09XCJtb2RlXCJcbiAgW2Zyb21dPVwiZnJvbVwiXG4gIFt2YWx1ZV09XCJzZWxlY3RlZFZhbHVlXCJcbiAgKG9uRm9jdXMpPVwiZ2V0T3B0aW9ucygpXCJcbiAgW2xhYmVsRm9udF09XCJxdWVzdGlvbj8uZm9udFwiXG4gIFtsYWJlbF09XCJxdWVzdGlvbj8ucXVlc3Rpb25UZXh0ID8gKChxdWVzdGlvbj8uaWQrJy5xdWVzdGlvblRleHQnKSB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6IHF1ZXN0aW9uPy5xdWVzdGlvblRleHQpIDogJydcIlxuICBbbGFiZWxDb2xvcl09XCJxdWVzdGlvbj8uZm9udENvbG9yXCJcbiAgW2xhYmVsU2l6ZV09XCJxdWVzdGlvbj8uZm9udFNpemVcIlxuICBbaW5wdXRWYWx1ZVNpemVdPVwicXVlc3Rpb24/LmZvbnRTaXplXCJcbiAgW2xhYmVsV2VpZ2h0XT1cInF1ZXN0aW9uPy5mb250V2VpZ2h0XCJcbiAgW2lucHV0V2VpZ2h0XT1cInF1ZXN0aW9uPy5mb250V2VpZ2h0XCJcbiAgW3Nob3dMYWJlbF09XCJxdWVzdGlvbj8uc3R5bGU/LnNob3dMYWJlbFwiXG4gIGlucHV0Qm9yZGVyPVwibm9uZVwiIHN2Z0hlaWdodD1cIjIwcHhcIiBzdmdXaWR0aD1cIjIwcHhcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBbcmVxdWlyZWRdPVwicXVlc3Rpb24/LmlzT3B0aW9uYWxcIiBbaW5wdXRCZ0NvbG9yXT1cIiBmcm9tID09PSAnbm9ybWFsRHJvcERvd24nID8gJyNlZmY4ZmYnIDogJyNGQUZBRkEnXCJcbiAgW2lucHV0SWRdPVwicXVlc3Rpb24/LnRyYWNraW5nSWRcIlxuICBbZXJyb3JNZXNzYWdlc109XCJ7IHJlcXVpcmVkOiAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcgfVwiXG4gIFtpbnB1dEljb25MZWZ0U3JjXT1cInF1ZXN0aW9uPy5pY29uTGVmdFNyY1wiXG4gICh0b2dnbGVFbWl0KT1cInRvZ2dsZSgpXCJcbiAgKGNsZWFySW5wdXRFbWl0KT1cImNsZWFyU2VsZWN0aW9uKClcIlxuICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxuICAoaW5wdXRWYWx1ZSk9XCJpbnB1dFZhbHVlKCRldmVudC52YWx1ZSwkZXZlbnQucXVlc3Rpb24pXCJcbiAgPlxuPC9ueHQtaW5wdXQ+XG5cbiAgPCEtLSBTS1MxMUpVTjI1IERyb3Bkb3duIGxpc3QgLS0+XG4gIDx1bCBjbGFzcz1cIm54dC1kcm9wZG93bi1tZW51XCIgKm5nSWY9XCJzaG93T3B0aW9ucyAmJiBvcHRpb25zLmxlbmd0aCA+IDBcIj5cbiAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uc1wiIChtb3VzZWRvd24pPVwic2VsZWN0Q2hhbmdlKGl0ZW0pXCI+XG4gICAgICB7eyBhcGlPYmogJiYgIWFwaU9iai5pc0RlcGVuZGVudEZpZWxkICYmIGl0ZW1bbGFiZWxGaWVsZF0gPyBpdGVtW2xhYmVsRmllbGRdIDogaXRlbT8udmFsdWUgfX1cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9kaXY+XG48c3BhbiAqbmdJZj1cImVycm9yIHx8IGludmFsaWRGaWVsZElkcy5pbmNsdWRlcyhpZClcIiBjbGFzcz1cImVycm9yLW1zZ1wiPnt7IGVycm9yTWVzc2FnZSB9fTwvc3Bhbj5cbiJdfQ==
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1kcm9wZG93bi9jdXN0b20tZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLWRyb3Bkb3duL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFZLFlBQVksRUFBYyxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRzdJLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU0xRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7O0FBVzVELE1BQU0sT0FBTyx1QkFBdUI7SUFzQnhCO0lBQ0E7SUFDRDtJQXZCQSxPQUFPLEdBQVUsRUFBRSxDQUFDO0lBQ3BCLFdBQVcsQ0FBUztJQUNwQixPQUFPLENBQVM7SUFDaEIsYUFBYSxDQUFTO0lBQ3RCLFdBQVcsQ0FBVTtJQUNyQixFQUFFLENBQVM7SUFDWCxRQUFRLEdBQVksS0FBSyxDQUFDLENBQUMsK0JBQStCO0lBQzFELFlBQVksQ0FBUztJQUNyQixLQUFLLENBQU07SUFDWCxXQUFXLEdBQVksS0FBSyxDQUFDO0lBQzdCLFFBQVEsQ0FBTTtJQUNkLGNBQWMsQ0FBUztJQUN2QixLQUFLLENBQVMsQ0FBSSxzQ0FBc0M7SUFDeEQsSUFBSSxHQUE4QixNQUFNLENBQUMsQ0FBQyw0QkFBNEI7SUFDdEUsSUFBSSxDQUFLO0lBRVIsV0FBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBRXJDLGVBQWUsQ0FBYTtJQUMxRCxlQUFlLEdBQWEsRUFBRSxDQUFDO0lBQy9CLFlBQ1UsYUFBNEIsRUFDNUIsV0FBd0IsRUFDekIsV0FBd0I7UUFGdkIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDekIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFFL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDcEQsd0NBQXdDO1lBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVNLFVBQVUsQ0FBUztJQUNuQixVQUFVLENBQVM7SUFDMUIsWUFBWSxDQUFlO0lBQzNCLHdCQUF3QjtJQUNqQixTQUFTLENBQVM7SUFDekIsTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUNqQixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBR3BCLFFBQVE7SUFFUixDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBQ0QsVUFBVTtRQUNSLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLHNDQUFzQztRQUN0Qyx1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQztRQUMvRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUM7Z0JBQ0gscUZBQXFGO2dCQUNyRixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUV6RiwrQ0FBK0M7Z0JBQy9DLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztvQkFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztvQkFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztvQkFDdkMsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQzNELElBQUksYUFBYSxFQUFFLENBQUM7d0JBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDM0MsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7NEJBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO3dCQUNwQixDQUFDO3dCQUVELGdJQUFnSTt3QkFDaEksSUFBSSxZQUFZLENBQUM7d0JBQ2pCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQzs0QkFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7Z0NBQzlELHlDQUF5QztnQ0FDekMsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0NBQ2pFLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFJLHNFQUFzRTtnQ0FDOUgsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUksZ0ZBQWdGO2dDQUN4SSxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7Z0NBQ3JCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUF5Qyx5QkFBeUI7Z0NBQ2pGLG1GQUFtRjtnQ0FDbkYsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtvQ0FDbEMsdUVBQXVFO29DQUN2RSwwQkFBMEI7b0NBQzFCLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsQ0FBQztvQ0FDOUcsbUZBQW1GO29DQUNuRixJQUFJLFNBQVMsSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFHLHlEQUF5RDt3Q0FDN0YsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFJLCtCQUErQjtvQ0FDekcsQ0FBQzt5Q0FBTSxDQUFDLENBQUksMkdBQTJHO3dDQUNySCxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7b0NBQ3BFLENBQUM7b0NBRUQsTUFBTSxFQUFFLENBQUM7Z0NBQ1gsQ0FBQyxDQUFDLENBQUM7Z0NBQ0gsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDOzRCQUNwRSxDQUFDO2lDQUFNLENBQUM7Z0NBQ04sNENBQTRDO2dDQUM1QyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7NEJBQ3RDLENBQUM7NEJBRUQsdURBQXVEOzRCQUN2RCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQ0FDcEUsbUZBQW1GO2dDQUNuRiw4REFBOEQ7Z0NBQzlELElBQUksU0FBUyxDQUFDO2dDQUNkLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQ0FDekIsK0NBQStDO29DQUMvQyx3Q0FBd0M7b0NBQ3hDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztvQ0FDekUsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO29DQUNqQixpREFBaUQ7b0NBQ2pELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7d0NBQzNDLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3Q0FDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQ0FDckIsQ0FBQztvQ0FDRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztnQ0FDekIsQ0FBQztxQ0FBTSxDQUFDLENBQUUsMERBQTBEO29DQUNsRSxTQUFTLEdBQUcsV0FBVyxDQUFDO29DQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztnQ0FDM0IsQ0FBQztnQ0FDRCxzREFBc0Q7Z0NBQ3RELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO29DQUNuQixZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQ0FDckUsQ0FBQzs0QkFDSCxDQUFDLENBQUMsQ0FBQTt3QkFDSixDQUFDO3dCQUVELHNEQUFzRDt3QkFDdEQsMkRBQTJEO3dCQUMzRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO3dCQUM1QyxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDOzRCQUMvRCw0QkFBNEI7NEJBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQy9ELENBQUMsV0FBVyxFQUFFLEVBQUU7Z0NBQ2QsSUFBSSxXQUFXLElBQUksU0FBUyxFQUFFLENBQUM7b0NBQzdCLElBQUksV0FBVyxDQUFDLGNBQWMsSUFBSSxXQUFXLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxDQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7d0NBQ3hQLHNFQUFzRTt3Q0FDdEUsa0JBQWtCO3dDQUNsQix1Q0FBdUM7d0NBQ3ZDLElBQUksU0FBUyxDQUFDO3dDQUNkLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQzs0Q0FDekIsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQzs0Q0FDbEYsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDOzRDQUNqQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dEQUMzQyxJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0RBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7NENBQ3JCLENBQUM7NENBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7d0NBQ3pCLENBQUM7NkNBQU0sQ0FBQzs0Q0FDTixTQUFTLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQzs0Q0FDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7d0NBQzNCLENBQUM7d0NBQ0Qsc0RBQXNEO3dDQUN0RCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzs0Q0FDbkIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7d0NBQ3JFLENBQUM7b0NBQ0gsQ0FBQztvQ0FDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7Z0NBQy9ELENBQUM7NEJBQ0gsQ0FBQyxDQUNGLENBQUM7d0JBQ0osQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELHdDQUF3QztJQUV4QyxZQUFZLENBQUMsS0FBVTtRQUNyQixJQUFJLE1BQU0sR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDLENBQUMsb0NBQW9DO1FBQ3RFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBQyxRQUFRLEVBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztRQUNqRSx5REFBeUQ7UUFDekQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzVCLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBQ0gsTUFBTTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7SUFHRCxlQUFlLENBQUMsS0FBaUI7UUFDL0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDakYsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFHQyxjQUFjO1FBQ1osSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBQyxRQUFRLEVBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUU7Z0JBQ3RELGNBQWMsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDdkIsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO2FBQ3BDLEVBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNELFVBQVUsQ0FBQyxLQUFLLEVBQUMsSUFBSTtRQUNuQixJQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBQyxDQUFDO1lBQ3pCLElBQUksTUFBTSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUMsQ0FBQyxvQ0FBb0M7WUFDdEUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBQyxRQUFRLEVBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO3dHQXZOVSx1QkFBdUI7NEZBQXZCLHVCQUF1QixpcUJDdEJwQyxpNENBb0NBLHFnQkRuQkksWUFBWSwrUEFBRSxXQUFXLCtCQUFFLFFBQVE7OzRGQUsxQix1QkFBdUI7a0JBVG5DLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUDt3QkFDUCxZQUFZLEVBQUUsV0FBVyxFQUFFLFFBQVE7cUJBQ3BDO3NJQUtRLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFFdUIsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBMks5QixlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPcHRpb25hbCwgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVBJTWV0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXBpbWV0YSc7XG5pbXBvcnQgeyBDaGFuZ2VXcmFwcGVyIH0gZnJvbSAnLi4vLi4vbW9kZWwvY2hhbmdlV3JhcHBlcic7XG5pbXBvcnQgeyBDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbmdlLnNlcnZpY2UnO1xuLy8gSEEgMTlERUMyMyBpbXBvcnRlZCB0cmFuc2xhdGlvbiBzZXJ2aWNlXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4uc2VydmljZSc7XG4vLyBWRCAyM0pBTjI0IHVzZWQgc2VydmljZSBmaWxlIGZvciBjYWxsb3V0XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOeHRJbnB1dCB9IGZyb20gJy4uL254dC1pbnB1dC9ueHQtaW5wdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWN1c3RvbS1kcm9wZG93bicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBOeHRJbnB1dFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tLWRyb3Bkb3duLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21Ecm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFwaU1ldGE6IHN0cmluZztcbiAgQElucHV0KCkgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nO1xuICBASW5wdXQoKSBwcm9ncmVzc0JhcjogYm9vbGVhbjtcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTsgLy8gVkQgMTJKdW4yNCAtIHJlYWRvbmx5IGNoYW5nZVxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgZXJyb3I6IGFueTtcbiAgQElucHV0KCkgZnJvbVNoZW5nZWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcXVlc3Rpb246IGFueTtcbiAgQElucHV0KCkgcmVmZXJlbmNlRmllbGQ6IHN0cmluZztcbiAgQElucHV0KCkgdG9rZW46IHN0cmluZzsgICAgLy8gVkQgMTlKQU4yNCAtIGdldHRpbmcgdG9rZW4gYXMgaW5wdXRcbiAgQElucHV0KCkgbW9kZTogJ3ZpZXcnIHwgJ2VkaXQnIHwgJ3ByaW50JyA9ICdlZGl0JzsgLy8gU0tTMTFKVU4yNSBOZXcgbW9kZSBpbnB1dFxuICBASW5wdXQoKSBmcm9tOiBhbnlcbiAgICBcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duV3JhcHBlcicpIGRyb3Bkb3duV3JhcHBlcjogRWxlbWVudFJlZjtcbiAgaW52YWxpZEZpZWxkSWRzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZVNlcnZpY2U6IENoYW5nZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXG4gICAgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSxcbiAgKSB7IFxuICAgIHRoaXMuY2hhbmdlU2VydmljZS5zdWJtaXRWYWxpZGF0ZSQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAvLyB0byBnZXQgdGhlIGVycm9yIG1lc3NhZ2UncyBmaWVsZCBpZCdzXG4gICAgICB0aGlzLmludmFsaWRGaWVsZElkcy5wdXNoKGRhdGEpO1xuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgbGFiZWxGaWVsZDogc3RyaW5nO1xuICBwdWJsaWMgdmFsdWVGaWVsZDogc3RyaW5nO1xuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgLy9wdWJsaWMgYXBpT2JqOkFQSU1ldGE7XG4gIHB1YmxpYyB1bmlxdWVLZXk6IHN0cmluZztcbiAgYXBpT2JqOiBhbnkgPSB7fTtcbiAgc2hvd09wdGlvbnMgPSBmYWxzZTtcblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gIH1cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydtb2RlJ10pIHtcbiAgICAgIHRoaXMubW9kZSA9IGNoYW5nZXNbJ21vZGUnXS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG4gIGdldE9wdGlvbnMoKSB7XG4gICAgdGhpcy5zaG93T3B0aW9ucyA9IHRydWU7XG4gICAgLy9WRCAwN0F1ZzI0IC0gaXNEZXBlbmRlbnRGaWVsZCBjaGFuZ2VcbiAgICAvLyBWRCAyNU9jdDI0IC0gY2hhbmdlc1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyID8gdGhpcy5wbGFjZWhvbGRlciA6ICctLS1TZWxlY3Qgb3B0aW9uLS0tJztcbiAgICBpZiAodGhpcy5hcGlNZXRhKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBNU00tMjdNQVIyNSBFbnN1cmUgcXVlcy5zdWJUZXh0IGlzIGFsd2F5cyBhbiBvYmplY3QgYnkgcGFyc2luZyBpdCBpZiBpdCdzIGEgc3RyaW5nXG4gICAgICAgIHRoaXMuYXBpT2JqID0gdHlwZW9mIHRoaXMuYXBpTWV0YSA9PT0gJ29iamVjdCcgPyB0aGlzLmFwaU1ldGEgOiBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgYXBpT2JqIGFuZCBhcGlPYmouZmllbGQgYXJlIGRlZmluZWRcbiAgICAgICAgaWYgKHRoaXMuYXBpT2JqICYmIHRoaXMuYXBpT2JqLmZpZWxkKSB7XG4gICAgICAgICAgdGhpcy5zaG93T3B0aW9ucyA9IHRydWU7XG4gICAgICAgICAgdGhpcy5sYWJlbEZpZWxkID0gdGhpcy5hcGlPYmouZmllbGQ7XG4gICAgICAgICAgdGhpcy51bmlxdWVLZXkgPSB0aGlzLmFwaU9iai51bmlxdWVLZXk7XG4gICAgICAgICAgY29uc3QgY2FjaGVkT3B0aW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMudW5pcXVlS2V5KTtcbiAgICAgICAgICBpZiAoY2FjaGVkT3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gSlNPTi5wYXJzZShjYWNoZWRPcHRpb25zKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmFwaU9iai5pc0RlcGVuZGVudEZpZWxkKSB7XG4gICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBWRCAwOVNlcDI0LSBzZXR1cCB0aGUgcXVlcnkgcGFyYW0gZm9yIGFwaSBjYWxsIC8vIE1SIDA4SkFOMjQgRGVwZW5kZW50RmllbGQgQVBJIEZpeCBtb3ZlZCBiZWxvdyBsb2dpYyBmcm9tIGFib3ZlIGlmIGNvbmRpdGlvblxuICAgICAgICAgICAgbGV0IGZ1bGxFbmRQb2ludDtcbiAgICAgICAgICAgIGlmICh0aGlzLmFwaU9iai5lbmRwb2ludCkge1xuICAgICAgICAgICAgICBpZiAodGhpcy5hcGlPYmoucXVlcnlWYWx1ZVJlZmVyZW5jZSAmJiB0aGlzLmFwaU9iai5xdWVyeUZpZWxkKSB7XG4gICAgICAgICAgICAgICAgLy8gcHJvY2VzcyB0aGUgZW5kIHBvaW50IHdpdGggcXVlcnkgcGFyYW1cbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlSZWZlcmVuY2VzID0gdGhpcy5hcGlPYmoucXVlcnlWYWx1ZVJlZmVyZW5jZS5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgICAgIGxldCBxdWVyeUZpZWxkcyA9IHRoaXMuYXBpT2JqLnF1ZXJ5RmllbGQuc3BsaXQoJywnKTsgICAgLy8gTVIgMDhKQU4yNCBzaW1pbGFyIHRvIGFib3ZlIHZhbHVlcmVmZXJlbmNlIGdldCBsaXN0IG9mIFFVRVJZIEZpZWxkc1xuICAgICAgICAgICAgICAgIGxldCBxdWVyeVZhbHVlcyA9IHRoaXMuYXBpT2JqLnF1ZXJ5VmFsdWUuc3BsaXQoJywnKTsgICAgLy8gTVIgMDhKQU4yNCBzaW1pbGFyIHRvIGFib3ZlIHZhbHVlcmVmZXJlbmNlIGdldCBsaXN0IG9mIFFVRVJZIFZhbHVlcyAoRGVmYXVsdClcbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlQYXJhbXMgPSBbXTtcbiAgICAgICAgICAgICAgICBsZXQgcUluZGV4ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1SIDA4SkFOMjQgUXVlcnkgSW5kZXhcbiAgICAgICAgICAgICAgICAvLyBJdGVyYXRlIG92ZXIgcXVlcnlSZWZlcmVuY2VzIGFuZCBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaW4gcmVmZXJlbmNlRGF0YVxuICAgICAgICAgICAgICAgIHF1ZXJ5UmVmZXJlbmNlcy5mb3JFYWNoKHJlZmVyZW5jZSA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBGaW5kIHRoZSBlbGVtZW50IGluIHJlZmVyZW5jZURhdGEgdGhhdCBtYXRjaGVzIHRoZSBjdXJyZW50IHJlZmVyZW5jZVxuICAgICAgICAgICAgICAgICAgLy8gUlMgMDlERUMyNCBDaGFuZ2VkIGtleXNcbiAgICAgICAgICAgICAgICAgIGxldCBtYXRjaGluZ0VsZW1lbnQgPSB0aGlzLnF1ZXN0aW9uPy5yZWZlcmVuY2VRdWVyeURhdGEuZmluZChlbGVtZW50ID0+IGVsZW1lbnQucmVmZXJlbmNlRmllbGQgPT09IHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAvLyBJZiBhIG1hdGNoaW5nIGVsZW1lbnQgaXMgZm91bmQsIGdldCBpdHMgaW5wdXQgdmFsdWUgYW5kIGNyZWF0ZSBhIHF1ZXJ5IHBhcmFtZXRlclxuICAgICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZSAmJiBtYXRjaGluZ0VsZW1lbnQpIHsgICAvLyBNUiAwOEpBTjI0IGlmIHJlZmVyZW5jZSBleGlzdCAmIG1hdGNoaW5nIGVsZW1lbnQgZm91bmRcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXMucHVzaChgJHtxdWVyeUZpZWxkc1txSW5kZXhdfT0ke21hdGNoaW5nRWxlbWVudC5pbnB1dH1gKTsgICAgLy8gTVIgMDhKQU4yNCByZW1vdmVkIHJlZmVyZW5jZVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgICAgLy8gTVIgMDhKQU4yNCBpbmNsdWRlZCBvcHRpb24gZm9yIG11bHRpcGxlIHF1ZXJ5IHBhcmFtcyBhbmQgZGVmYXVsdCB2YWx1ZSBpbiBjYXNlIG9mIHJlZmVyZW5jZSBpcyBub3QgZm91bmRcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXMucHVzaChgJHtxdWVyeUZpZWxkc1txSW5kZXhdfT0ke3F1ZXJ5VmFsdWVzW3FJbmRleF19YCk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHFJbmRleCsrO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGZ1bGxFbmRQb2ludCA9IHRoaXMuYXBpT2JqLmVuZHBvaW50ICsgJz8nICsgcXVlcnlQYXJhbXMuam9pbignJicpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGlmIG5vIHF1ZXJ5IHBhcmFtIGdldCB0aGUgYWN0dWFsIGVuZFBvaW50XG4gICAgICAgICAgICAgICAgZnVsbEVuZFBvaW50ID0gdGhpcy5hcGlPYmouZW5kcG9pbnQ7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBWRCAxOUpBTjI0IC0gYWRkZWQgb25lIG1vcmUgcGFyYW0gZm9yIGF1dGhlbnRpY2F0aW9uXG4gICAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuYXBpUmVzcG9uc2UoZnVsbEVuZFBvaW50KT8uc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIEhBIDE4LUpBTi0yNCBBc3NpZ25lZCBhcGlyZXNwb25zZSBkaXJlY3RseSBpZiB3ZSBoYXZlIHRoZSByZXNwb25zZSBpbiBhcnJheSBhbHNvXG4gICAgICAgICAgICAgICAgLy8gVkQgMTlKQU4yNCAtIGlmIHJlc3BvbnNlIGhhcyBrZXkgd2l0aCB2YWx1ZSh3aGljaCBpcyBhcnJheSlcbiAgICAgICAgICAgICAgICBsZXQgcmVzcG9uc2VzO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFwaU9iai52YXJpYWJsZSkge1xuICAgICAgICAgICAgICAgICAgLy8gVkQgMjFNYXkyNCAtIGhhbmRsaW5nIG11bHRpcGxlIGNoaWxkIG9iamVjdHNcbiAgICAgICAgICAgICAgICAgIC8vIFZEIDIyTWF5MjQgLSB1c2VkIGNvbW1vbiBzZXJ2aWNlIGZpbGVcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlcyA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoYXBpUmVzcG9uc2UsIHRoaXMuYXBpT2JqLnZhcmlhYmxlKTtcbiAgICAgICAgICAgICAgICAgIGxldCByZXN1bHRzID0gW107XG4gICAgICAgICAgICAgICAgICAvLyBIQSAxOUpBTjI0IFRvIGF2b2lkIHVuZGVmaW5lZCBlcnJvciBpbiBjb25zb2xlXG4gICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlcz8ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3AgPSByZXNwb25zZXNbaV07XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChyZXNwKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHsgIC8vIFZEIDE5SkFOMjQgLSBpZiByZXNwb25zZSBoYXMgdmFsdWUod2hpY2ggaXMgYXJyYXkpIG9ubHlcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlcyA9IGFwaVJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gcmVzcG9uc2VzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBWRCAyNU9jdDI0IC0gU3RvcmUgZmV0Y2hlZCBvcHRpb25zIGluIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgICAgICAgICBpZiAodGhpcy51bmlxdWVLZXkpIHtcbiAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMudW5pcXVlS2V5LCBKU09OLnN0cmluZ2lmeSh0aGlzLm9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFZEIE5PVjIzIC0gaGFuZGxlIHRoZSBkZXBlbmRlbnQgdXBkYXRlIGZvciBkcm9wZG93blxuICAgICAgICAgICAgLy8gVkQgMDlTZXAyNC0gcHVzaCB0aGUgZGVwZW5kZW50IGZpZWxkIHZhbHVlcyBmb3IgZHJvcGRvd25cbiAgICAgICAgICAgIGxldCBzb3VyY2VJZCA9IHRoaXMuYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQ7XG4gICAgICAgICAgICBpZiAoc291cmNlSWQgJiYgdGhpcy5hcGlPYmoudmFyaWFibGUgfHwgdGhpcy5hcGlPYmoudmFsdWVGaWVsZCkge1xuICAgICAgICAgICAgICAvLyBTdWJzY3JpYmUgZm9yIHRoZSBjaGFuZ2VzXG4gICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jaGFuZ2VTZXJ2aWNlLmNoYW5nZUFubm91bmNlZCQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChjaGFuZ2VWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKGNoYW5nZVZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgJiYgY2hhbmdlVmFsdWUudmFsdWVPYmogIT09IHVuZGVmaW5lZCAmJiAoIEFycmF5LmlzQXJyYXkodGhpcy5hcGlPYmouc291cmNlUXVlc3Rpb25JZCk/IHRoaXMuYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQuaW5jbHVkZXMoY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQpIDogY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgPT09IHRoaXMuYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgLy8gIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGNoYW5nZVZhbHVlLnZhbHVlT2JqW3RoaXMuYXBpT2JqLnZhbHVlRmllbGRdO1xuICAgICAgICAgICAgICAgICAgICAgIC8vICBsZXQgdmFsdWUgPXt9O1xuICAgICAgICAgICAgICAgICAgICAgIC8vICB2YWx1ZVsnbmFtZSddID0gdGhpcy5zZWxlY3RlZFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgIGxldCByZXNwb25zZXM7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYXBpT2JqLnZhcmlhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZXMgPSB0aGlzLmRhdGFTZXJ2aWNlLmdldFZhbHVlKGNoYW5nZVZhbHVlLnZhbHVlT2JqLCB0aGlzLmFwaU9iai52YXJpYWJsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0cyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNwb25zZXM/Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXNwID0gcmVzcG9uc2VzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2gocmVzcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSByZXN1bHRzO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZXMgPSBjaGFuZ2VWYWx1ZS52YWx1ZU9iajtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3BvbnNlcztcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgLy8gVkQgMjVPY3QyNCAtIFN0b3JlIGZldGNoZWQgb3B0aW9ucyBpbiBsb2NhbCBzdG9yYWdlXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudW5pcXVlS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnVuaXF1ZUtleSwgSlNPTi5zdHJpbmdpZnkodGhpcy5vcHRpb25zKSk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VydmljZS5jb25maXJtQ2hhbmdlKGNoYW5nZVZhbHVlLmZyb21RdWVzdGlvbklkKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIGFwaU1ldGE6JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBWRCAyMk1heTI0IC0gdXNlZCBjb21tb24gc2VydmljZSBmaWxlXG5cbiAgc2VsZWN0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBsZXQgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTsgLy8gQ2hhbmdlV3JhcHBlciA9IEpTT04ucGFyc2UoJ3t9Jyk7XG4gICAgY2hhbmdlWydmcm9tUXVlc3Rpb25JZCddID0gdGhpcy5pZDtcbiAgICBjaGFuZ2VbJ3ZhbHVlT2JqJ10gPSBldmVudCA/IGV2ZW50W3RoaXMubGFiZWxGaWVsZF0gPyBldmVudFt0aGlzLmxhYmVsRmllbGRdIDogZXZlbnQ/LnZhbHVlIDogJyc7XG4gICAgY2hhbmdlWydyZWZlcmVuY2VGaWVsZCddID0gdGhpcy5yZWZlcmVuY2VGaWVsZDtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe3F1ZXN0aW9uIDogdGhpcy5xdWVzdGlvbiwgdmFsdWU6IGNoYW5nZX0pO1xuICAgIC8vIG9uY2UgZ290IHZhbHVlIGluIGRyb3Bkb3duIHJlbW92ZSB0aGUgZXJyb3IgdmFsaWRhdGlvblxuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5pbnZhbGlkRmllbGRJZHMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5zaG93T3B0aW9ucyA9IGZhbHNlO1xuICB9XG50b2dnbGUoKXtcbiAgdGhpcy5zaG93T3B0aW9ucyA9ICF0aGlzLnNob3dPcHRpb25zO1xufVxuXG5ASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG5vbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICBpZiAodGhpcy5kcm9wZG93bldyYXBwZXIgJiYgIXRoaXMuZHJvcGRvd25XcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSkge1xuICAgIHRoaXMuc2hvd09wdGlvbnMgPSBmYWxzZTtcbiAgfVxufVxuXG5cbiAgY2xlYXJTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gJyc7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHtxdWVzdGlvbiA6IHRoaXMucXVlc3Rpb24sIHZhbHVlOiB7XG4gICAgICBmcm9tUXVlc3Rpb25JZDogdGhpcy5pZCxcbiAgICAgIHZhbHVlT2JqOiAnJyxcbiAgICAgIHJlZmVyZW5jZUZpZWxkOiB0aGlzLnJlZmVyZW5jZUZpZWxkLFxuICAgIH19KTtcbiAgICB0aGlzLmludmFsaWRGaWVsZElkcyA9IFtdO1xuICB9XG4gIGlucHV0VmFsdWUoZXZlbnQscXVlcyl7XG4gICAgaWYocXVlcy5zaW5nbGVGaWVsZENoYW5nZSl7XG4gICAgICBsZXQgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTsgLy8gQ2hhbmdlV3JhcHBlciA9IEpTT04ucGFyc2UoJ3t9Jyk7XG4gICAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLmlkO1xuICAgICAgY2hhbmdlWyd2YWx1ZU9iaiddID0gZXZlbnQ7XG4gICAgICBjaGFuZ2VbJ3JlZmVyZW5jZUZpZWxkJ10gPSB0aGlzLnJlZmVyZW5jZUZpZWxkO1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHtxdWVzdGlvbiA6IHF1ZXMsIHZhbHVlOiBjaGFuZ2V9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgI2Ryb3Bkb3duV3JhcHBlciBjbGFzcz1cImRyb3Bkb3duLWNsb3NlXCI+XG4gIDxueHQtaW5wdXQgXG4gIFt0eXBlXT1cIidkcm9wZG93bidcIlxuICBbbW9kZV09XCJtb2RlXCJcbiAgW2Zyb21dPVwiZnJvbVwiXG4gIFt2YWx1ZV09XCJzZWxlY3RlZFZhbHVlXCJcbiAgKG9uRm9jdXMpPVwiZ2V0T3B0aW9ucygpXCJcbiAgW2xhYmVsRm9udF09XCJxdWVzdGlvbi5mb250XCJcbiAgW2xhYmVsXT1cInF1ZXN0aW9uPy5xdWVzdGlvblRleHRcIlxuICBbbGFiZWxDb2xvcl09XCJxdWVzdGlvbi5mb250Q29sb3JcIlxuICBbbGFiZWxTaXplXT1cInF1ZXN0aW9uLmZvbnRTaXplXCJcbiAgW2lucHV0VmFsdWVTaXplXT1cInF1ZXN0aW9uLmZvbnRTaXplXCJcbiAgW2xhYmVsV2VpZ2h0XT1cInF1ZXN0aW9uLmZvbnRXZWlnaHRcIlxuICBbaW5wdXRXZWlnaHRdPVwicXVlc3Rpb24uZm9udFdlaWdodFwiXG4gIFtzaG93TGFiZWxdPVwicXVlc3Rpb24uc3R5bGU/LnNob3dMYWJlbFwiXG4gIGlucHV0Qm9yZGVyPVwibm9uZVwiIHN2Z0hlaWdodD1cIjIwcHhcIiBzdmdXaWR0aD1cIjIwcHhcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBbcmVxdWlyZWRdPVwicXVlc3Rpb24uaXNPcHRpb25hbFwiIGlucHV0QmdDb2xvcj1cIiNGQUZBRkFcIlxuICBbaW5wdXRJZF09XCJxdWVzdGlvbi50cmFja2luZ0lkXCJcbiAgW2Vycm9yTWVzc2FnZXNdPVwieyByZXF1aXJlZDogJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnIH1cIlxuICBbaW5wdXRJY29uTGVmdFNyY109XCJxdWVzdGlvbi5pY29uTGVmdFNyY1wiXG4gICh0b2dnbGVFbWl0KT1cInRvZ2dsZSgpXCJcbiAgKGNsZWFySW5wdXRFbWl0KT1cImNsZWFyU2VsZWN0aW9uKClcIlxuICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxuICAoaW5wdXRWYWx1ZSk9XCJpbnB1dFZhbHVlKCRldmVudC52YWx1ZSwkZXZlbnQucXVlc3Rpb24pXCJcbiAgPlxuPC9ueHQtaW5wdXQ+XG5cbiAgPCEtLSBTS1MxMUpVTjI1IERyb3Bkb3duIGxpc3QgLS0+XG4gIDx1bCBjbGFzcz1cIm54dC1kcm9wZG93bi1tZW51XCIgKm5nSWY9XCJzaG93T3B0aW9ucyAmJiBvcHRpb25zLmxlbmd0aCA+IDBcIj5cbiAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uc1wiIChtb3VzZWRvd24pPVwic2VsZWN0Q2hhbmdlKGl0ZW0pXCI+XG4gICAgICB7eyBhcGlPYmogJiYgIWFwaU9iai5pc0RlcGVuZGVudEZpZWxkICYmIGl0ZW1bbGFiZWxGaWVsZF0gPyBpdGVtW2xhYmVsRmllbGRdIDogaXRlbT8udmFsdWUgfX1cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9kaXY+XG48c3BhbiAqbmdJZj1cImVycm9yIHx8IGludmFsaWRGaWVsZElkcy5pbmNsdWRlcyhpZClcIiBjbGFzcz1cImVycm9yLW1zZ1wiPnt7IGVycm9yTWVzc2FnZSB9fTwvc3Bhbj5cbiJdfQ==
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
-
import { NxtCustomTranslatePipe } from "../../pipe/custom-translate.pipe";
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
import * as i1 from "@angular/common";
|
|
6
5
|
export class CustomModelComponent {
|
|
@@ -27,14 +26,13 @@ export class CustomModelComponent {
|
|
|
27
26
|
this.saveButtonEmit.emit();
|
|
28
27
|
}
|
|
29
28
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomModelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomModelComponent, isStandalone: true, selector: "app-custom-model", inputs: { modalTitle: "modalTitle", isModalOpen: "isModalOpen", modalSize: "modalSize", saveButtonValue: "saveButtonValue", modalFooter: "modalFooter" }, outputs: { saveButtonEmit: "saveButtonEmit", cancelButtonEmit: "cancelButtonEmit" }, ngImport: i0, template: "<div *ngIf=\"isModalOpen\" class=\"modal\" [ngClass]=\"modalSize\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <span class=\"close\" (click)=\"onCancel()\">×</span>\n <h2>{{ modalTitle }}</h2>\n </div>\n <div class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <!-- /* VD 06Sep24 styling changes */-->\n <div class=\"modal-footer\" *ngIf=\"modalFooter\">\n <button (click)=\"onCancel()\">
|
|
29
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomModelComponent, isStandalone: true, selector: "app-custom-model", inputs: { modalTitle: "modalTitle", isModalOpen: "isModalOpen", modalSize: "modalSize", saveButtonValue: "saveButtonValue", modalFooter: "modalFooter" }, outputs: { saveButtonEmit: "saveButtonEmit", cancelButtonEmit: "cancelButtonEmit" }, ngImport: i0, template: "<div *ngIf=\"isModalOpen\" class=\"modal\" [ngClass]=\"modalSize\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <span class=\"close\" (click)=\"onCancel()\">×</span>\n <h2>{{ modalTitle }}</h2>\n </div>\n <div class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <!-- /* VD 06Sep24 styling changes */-->\n <div class=\"modal-footer\" *ngIf=\"modalFooter\">\n <button (click)=\"onCancel()\">Cancel</button>\n <button (click)=\"onSave()\">{{ saveButtonValue }}</button>\n </div>\n </div>\n</div>\n ", styles: [".modal{display:block;position:fixed;z-index:1;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#0006}.modal-content{background-color:#fefefe;margin:5% auto;padding:20px;border:1px solid #888;width:70%;max-width:90%;max-height:80vh;overflow-y:auto}.modal-header,.modal-footer{padding:10px;text-align:center;display:block}.modal-body{max-height:60vh;overflow-y:auto}.close{color:#aaa;float:right;font-size:28px;font-weight:700}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.modal-footer button{padding:10px 20px;margin:5px;font-size:16px;border:1px solid #ccc;border-radius:4px;cursor:pointer;background-color:#f5f5f5;color:#333}.modal-footer button:hover{background-color:#e0e0e0;border-color:#bbb}@media (max-width: 768px){.modal-content{width:90%;margin:10% auto}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
31
30
|
}
|
|
32
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomModelComponent, decorators: [{
|
|
33
32
|
type: Component,
|
|
34
33
|
args: [{ selector: 'app-custom-model', standalone: true, imports: [
|
|
35
34
|
CommonModule,
|
|
36
|
-
|
|
37
|
-
], template: "<div *ngIf=\"isModalOpen\" class=\"modal\" [ngClass]=\"modalSize\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <span class=\"close\" (click)=\"onCancel()\">×</span>\n <h2>{{ modalTitle }}</h2>\n </div>\n <div class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <!-- /* VD 06Sep24 styling changes */-->\n <div class=\"modal-footer\" *ngIf=\"modalFooter\">\n <button (click)=\"onCancel()\">{{\"CANCEL\" | nxtCustomTranslate : 'Cancel'}}</button>\n <button (click)=\"onSave()\">{{ saveButtonValue }}</button>\n </div>\n </div>\n</div>\n ", styles: [".modal{display:block;position:fixed;z-index:1;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#0006}.modal-content{background-color:#fefefe;margin:5% auto;padding:20px;border:1px solid #888;width:70%;max-width:90%;max-height:80vh;overflow-y:auto}.modal-header,.modal-footer{padding:10px;text-align:center;display:block}.modal-body{max-height:60vh;overflow-y:auto}.close{color:#aaa;float:right;font-size:28px;font-weight:700}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.modal-footer button{padding:10px 20px;margin:5px;font-size:16px;border:1px solid #ccc;border-radius:4px;cursor:pointer;background-color:#f5f5f5;color:#333}.modal-footer button:hover{background-color:#e0e0e0;border-color:#bbb}@media (max-width: 768px){.modal-content{width:90%;margin:10% auto}}\n"] }]
|
|
35
|
+
], template: "<div *ngIf=\"isModalOpen\" class=\"modal\" [ngClass]=\"modalSize\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <span class=\"close\" (click)=\"onCancel()\">×</span>\n <h2>{{ modalTitle }}</h2>\n </div>\n <div class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <!-- /* VD 06Sep24 styling changes */-->\n <div class=\"modal-footer\" *ngIf=\"modalFooter\">\n <button (click)=\"onCancel()\">Cancel</button>\n <button (click)=\"onSave()\">{{ saveButtonValue }}</button>\n </div>\n </div>\n</div>\n ", styles: [".modal{display:block;position:fixed;z-index:1;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#0006}.modal-content{background-color:#fefefe;margin:5% auto;padding:20px;border:1px solid #888;width:70%;max-width:90%;max-height:80vh;overflow-y:auto}.modal-header,.modal-footer{padding:10px;text-align:center;display:block}.modal-body{max-height:60vh;overflow-y:auto}.close{color:#aaa;float:right;font-size:28px;font-weight:700}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.modal-footer button{padding:10px 20px;margin:5px;font-size:16px;border:1px solid #ccc;border-radius:4px;cursor:pointer;background-color:#f5f5f5;color:#333}.modal-footer button:hover{background-color:#e0e0e0;border-color:#bbb}@media (max-width: 768px){.modal-content{width:90%;margin:10% auto}}\n"] }]
|
|
38
36
|
}], ctorParameters: () => [], propDecorators: { modalTitle: [{
|
|
39
37
|
type: Input
|
|
40
38
|
}], isModalOpen: [{
|
|
@@ -50,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
50
48
|
}], cancelButtonEmit: [{
|
|
51
49
|
type: Output
|
|
52
50
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW1vZGVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1tb2RlbC9jdXN0b20tbW9kZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLW1vZGVsL2N1c3RvbS1tb2RlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQzs7O0FBV3RHLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsZ0JBQWdCLENBQUM7SUFDUixVQUFVLENBQU07SUFDaEIsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUNwQixTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ2YsZUFBZSxHQUFHLE1BQU0sQ0FBQztJQUN6QixXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ3pDLGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFckQsTUFBTTtRQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUdELFFBQVE7SUFDUixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7d0dBN0JVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLDJUQ1pqQyxrbUJBZ0JFLHEyQkRURSxZQUFZOzs0RkFLSCxvQkFBb0I7a0JBVGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUDt3QkFDUCxZQUFZO3FCQUNiO3dEQU9RLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWN1c3RvbS1tb2RlbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tbW9kZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tbW9kZWwuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbU1vZGVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuICBASW5wdXQoKSBtb2RhbFRpdGxlOiBhbnk7XG4gIEBJbnB1dCgpIGlzTW9kYWxPcGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1vZGFsU2l6ZSA9ICcnO1xuICBASW5wdXQoKSBzYXZlQnV0dG9uVmFsdWUgPSAnU2F2ZSc7XG4gIEBJbnB1dCgpIG1vZGFsRm9vdGVyID0gdHJ1ZTtcbiAgQE91dHB1dCgpIHNhdmVCdXR0b25FbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxCdXR0b25FbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgb25TYXZlKCkge1xuICAgIHRoaXMuc2F2ZUJ1dHRvbkVtaXQuZW1pdCgpO1xuICB9XG5cbiAgb25DYW5jZWwoKSB7XG4gICAgdGhpcy5jYW5jZWxCdXR0b25FbWl0LmVtaXQoKTtcbiAgfVxuXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBjbG9zZU1vZGFsKCkge1xuICAgIHRoaXMuY2FuY2VsQnV0dG9uRW1pdC5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHNhdmVNb2RhbCgpIHtcbiAgICB0aGlzLnNhdmVCdXR0b25FbWl0LmVtaXQoKTtcbiAgfVxuXG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXNNb2RhbE9wZW5cIiBjbGFzcz1cIm1vZGFsXCIgW25nQ2xhc3NdPVwibW9kYWxTaXplXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjbG9zZVwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICAgICAgPGgyPnt7IG1vZGFsVGl0bGUgfX08L2gyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gLyogVkQgMDZTZXAyNCBzdHlsaW5nIGNoYW5nZXMgKi8tLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIiAqbmdJZj1cIm1vZGFsRm9vdGVyXCI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwib25TYXZlKClcIj57eyBzYXZlQnV0dG9uVmFsdWUgfX08L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4gICJdfQ==
|
|
@@ -2,8 +2,8 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
|
2
2
|
import { ChangeWrapper } from '../../model/changeWrapper';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../services/change
|
|
6
|
-
import * as i2 from "../../services/data
|
|
5
|
+
import * as i1 from "../../services/change.service";
|
|
6
|
+
import * as i2 from "../../services/data.service";
|
|
7
7
|
import * as i3 from "../../i18n.service";
|
|
8
8
|
import * as i4 from "@angular/common";
|
|
9
9
|
export class CustomRadioComponent {
|
|
@@ -156,4 +156,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
156
156
|
}], valueChange: [{
|
|
157
157
|
type: Output
|
|
158
158
|
}] } });
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1yYWRpby9jdXN0b20tcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXJhZGlvL2N1c3RvbS1yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFhL0MsTUFBTSxPQUFPLG9CQUFvQjtJQTJCckI7SUFDQTtJQUNEO0lBM0JBLE9BQU8sR0FBVSxFQUFFLENBQUM7SUFDcEIsUUFBUSxHQUFRLEVBQUUsQ0FBQTtJQUNsQixPQUFPLENBQVM7SUFDaEIsYUFBYSxDQUFTO0lBQ3RCLFdBQVcsQ0FBVTtJQUNyQixFQUFFLENBQVM7SUFDWCxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFlBQVksQ0FBUztJQUNyQixLQUFLLENBQU07SUFDWCxXQUFXLEdBQVksS0FBSyxDQUFDO0lBQzdCLGNBQWMsQ0FBUztJQUN2QixLQUFLLENBQVM7SUFDZCxJQUFJLEdBQThCLE1BQU0sQ0FBQyxDQUFDLGlCQUFpQjtJQUMxRCxXQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFDbkUsZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUV4QixVQUFVLENBQVM7SUFDbkIsVUFBVSxDQUFTO0lBQzFCLFlBQVksQ0FBZTtJQUMzQixhQUFhLENBQU0sQ0FBQyxzRUFBc0U7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LG9CQUFvQiwwYkNqQmpDLDZ5UUEwRU0sc1lEOURGLFlBQVk7OzRGQUtILG9CQUFvQjtrQkFUaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7cUJBQ2I7c0lBTVEsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlV3JhcHBlciB9IGZyb20gJy4uLy4uL21vZGVsL2NoYW5nZVdyYXBwZXInO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoYW5nZS9jaGFuZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEvZGF0YS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWN1c3RvbS1yYWRpbycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tcmFkaW8uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbVJhZGlvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBvcHRpb25zOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBxdWVzdGlvbjogYW55ID0ge31cbiAgQElucHV0KCkgYXBpTWV0YTogc3RyaW5nO1xuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByb2dyZXNzQmFyOiBib29sZWFuO1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSByZWFkT25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgZXJyb3I6IGFueTtcbiAgQElucHV0KCkgZnJvbVNoZW5nZWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVmZXJlbmNlRmllbGQ6IHN0cmluZztcbiAgQElucHV0KCkgdG9rZW46IHN0cmluZztcbiAgQElucHV0KCkgbW9kZTogJ3ZpZXcnIHwgJ2VkaXQnIHwgJ3ByaW50JyA9ICdlZGl0JzsgLy8gTmV3IG1vZGUgaW5wdXRcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBpbnZhbGlkRmllbGRJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgcHVibGljIGxhYmVsRmllbGQ6IHN0cmluZztcbiAgcHVibGljIHZhbHVlRmllbGQ6IHN0cmluZztcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIG9yaWdpbmFsVmFsdWU6IGFueTsgLy8gU0tTMTFKVU4yNSBUbyBzdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWUgd2hlbiBlbnRlcmluZyB2aWV3IGVkaXQgbW9kZVxuICBpc1NhdmVIb3ZlcmVkID0gZmFsc2U7XG4gIGlzRGlzY2FyZEhvdmVyZWQgPSBmYWxzZTtcbiAgdmFsdWU6IENoYW5nZVdyYXBwZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VTZXJ2aWNlOiBDaGFuZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxuICAgIHB1YmxpYyBpMThuU2VydmljZTogSTE4blNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jaGFuZ2VTZXJ2aWNlLnN1Ym1pdFZhbGlkYXRlJC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuaW52YWxpZEZpZWxkSWRzLnB1c2goZGF0YSk7XG4gICAgfSk7XG4gIH1cbiAgdmlld0VkaXQ6IGJvb2xlYW4gPSBmYWxzZSBcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBWRCAzMU5PVjI0IG51bGwgY2hlY2tcbiAgICBpZiAodGhpcy5hcGlNZXRhKSB7XG4gICAgICB0aGlzLmFwaU1ldGEgPSB0eXBlb2YgdGhpcy5hcGlNZXRhID09PSAnb2JqZWN0JyA/IHRoaXMuYXBpTWV0YSA6IEpTT04ucGFyc2UodGhpcy5hcGlNZXRhKTtcbiAgICAgIGxldCBhcGlPYmo6IGFueSA9IHRoaXMuYXBpTWV0YTtcbiAgICAgIHRoaXMubGFiZWxGaWVsZCA9IGFwaU9iai5maWVsZDtcblxuICAgICAgdGhpcy5kYXRhU2VydmljZS5hcGlSZXNwb25zZShhcGlPYmouZW5kcG9pbnQpPy5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGxldCByZXNwb25zZXM7XG4gICAgICAgIGlmIChhcGlPYmoudmFyaWFibGUpIHtcbiAgICAgICAgICByZXNwb25zZXMgPSB0aGlzLmRhdGFTZXJ2aWNlLmdldFZhbHVlKGFwaVJlc3BvbnNlLCBhcGlPYmoudmFyaWFibGUpO1xuICAgICAgICAgIGxldCByZXN1bHRzID0gW107XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNwb25zZXM/Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgcmVzcCA9IHJlc3BvbnNlc1tpXTtcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaChyZXNwKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5vcHRpb25zID0gcmVzdWx0cztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNwb25zZXMgPSBhcGlSZXNwb25zZTtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMgPSByZXNwb25zZXM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBsZXQgc291cmNlSWQgPSBhcGlPYmouc291cmNlUXVlc3Rpb25JZDtcbiAgICAgIGlmIChzb3VyY2VJZCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuY2hhbmdlU2VydmljZS5jaGFuZ2VBbm5vdW5jZWQkLnN1YnNjcmliZShcbiAgICAgICAgICAoY2hhbmdlVmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VWYWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgaWYgKGNoYW5nZVZhbHVlLmZyb21RdWVzdGlvbklkICYmIGNoYW5nZVZhbHVlLnZhbHVlT2JqICE9PSB1bmRlZmluZWQgJiYgKCBBcnJheS5pc0FycmF5KGFwaU9iai5zb3VyY2VRdWVzdGlvbklkKT8gYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQuaW5jbHVkZXMoY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQpIDogY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgPT09IGFwaU9iai5zb3VyY2VRdWVzdGlvbklkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGNoYW5nZVZhbHVlLnZhbHVlT2JqW2FwaU9iai52YWx1ZUZpZWxkXTtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB7fTtcbiAgICAgICAgICAgICAgICB2YWx1ZVsnbmFtZSddID0gdGhpcy5zZWxlY3RlZFZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMucmFkaW9DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VydmljZS5jb25maXJtQ2hhbmdlKGNoYW5nZVZhbHVlLmZyb21RdWVzdGlvbklkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5uZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ21vZGUnXSkge1xuICAgICAgdGhpcy52aWV3RWRpdCA9IGZhbHNlXG4gICAgfVxuICB9XG4gIHJhZGlvQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBsZXQgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTtcbiAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLmlkO1xuICAgIGNoYW5nZVsndmFsdWVPYmonXSA9IGV2ZW50LnRhcmdldD8uaWQgPyBldmVudC50YXJnZXQ/LmlkIDogJyc7XG4gICAgY2hhbmdlWydyZWZlcmVuY2VGaWVsZCddID0gdGhpcy5yZWZlcmVuY2VGaWVsZDtcbiAgICAvLyBTS1MxMUpVTjI1IE9ubHkgZW1pdCB0aGUgdmFsdWUgaWYgbm90IGluIHZpZXcgZWRpdCBtb2RlXG4gICAgaWYgKCF0aGlzLnZpZXdFZGl0KSB7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe3F1ZXN0aW9uIDogdGhpcy5xdWVzdGlvbiwgdmFsdWU6IGNoYW5nZX0pO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0gY2hhbmdlXG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLmludmFsaWRGaWVsZElkcyA9IFtdO1xuICAgIH1cbiAgfVxuICB2aWV3RWRpdENsaWNrKHF1ZXM6IGFueSkge1xuICAgIHRoaXMub3JpZ2luYWxWYWx1ZSA9IHF1ZXMuaW5wdXQ7IC8vIFNLUzExSlVOMjUgU3RvcmUgdGhlIG9yaWdpbmFsIHZhbHVlXG4gICAgdGhpcy52aWV3RWRpdCA9IHRydWU7IC8vIEVudGVyIHZpZXcgZWRpdCBtb2RlXG4gICAgdGhpcy5tb2RlID0gJ2VkaXQnO1xuICB9XG4gIGRpc2NhcmRDaGFuZ2VzKCkge1xuICAgIHRoaXMudmlld0VkaXQgPSBmYWxzZTsgLy8gRXhpdCB2aWV3IGVkaXQgbW9kZVxuICAgIHRoaXMubW9kZSA9ICd2aWV3JzsgLy8gU3dpdGNoIGJhY2sgdG8gdmlldyBtb2RlXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdGhpcy5vcmlnaW5hbFZhbHVlOyAvLyBTS1MxMUpVTjI1IFJlc3RvcmUgdGhlIG9yaWdpbmFsIHZhbHVlXG4gIH1cbiAgc2F2ZUNoYW5nZXMoKSB7XG4gICAgbGV0IHF1ZXMgPSB0aGlzLnF1ZXN0aW9uXG4gICAgcXVlc1snc2luZ2xlRmllbGRDaGFuZ2UnXSA9IHRydWVcbiAgICBsZXQgY2hhbmdlOiBhbnkgPXt9O1xuICAgIGNoYW5nZVsnZnJvbVF1ZXN0aW9uSWQnXSA9IHRoaXMucXVlc3Rpb24uaWQ7XG4gICAgY2hhbmdlWyd2YWx1ZU9iaiddID0gdGhpcy52YWx1ZTtcbiAgICBjaGFuZ2VbJ3JlZmVyZW5jZUZpZWxkJ10gPSB0aGlzLnF1ZXN0aW9uLnJlZmVyZW5jZUZpZWxkO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh7cXVlc3Rpb24gOiBxdWVzLCB2YWx1ZTogY2hhbmdlfSk7IC8vIEVtaXQgdGhlIHVwZGF0ZWQgdmFsdWVcbiAgICB0aGlzLnZpZXdFZGl0ID0gZmFsc2U7IC8vIFNLUzExSlVOMjUgRXhpdCB2aWV3IGVkaXQgbW9kZVxuICAgIHRoaXMubW9kZSA9ICd2aWV3JzsgLy8gU3dpdGNoIGJhY2sgdG8gdmlldyBtb2RlXG4gIH1cbn1cbiIsIjwhLS0gQVAyNk1BUjI1ICBNYXJrIGFzIGNoZWNrZWQgaWYgaXQgbWF0Y2hlcyB0aGUgc2VsZWN0ZWQgdmFsdWUgLS0+XG48ZGl2IGNsYXNzPVwiIGhvdmVyLXdyYXBwZXIgY3VzdG9tLXJhZGlvLWNvbnRhaW5lclwiPlxuICA8ZGl2XG4gICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGZsZXgtd3JhcDogd3JhcDsgcGFkZGluZy1sZWZ0OiA1cHg7IHBhZGRpbmctcmlnaHQ6IDVweDsgYmFja2dyb3VuZC1jb2xvcjogI0ZBRkFGQTsgYm9yZGVyLXJhZGl1czogNXB4O1wiPlxuICAgIEBpZihtb2RlID09PSAnZWRpdCcpe1xuICAgIDxkaXY+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXG4gICAgICAgIFtjbGFzc109XCJpbnZhbGlkRmllbGRJZHMuaW5jbHVkZXMoaWQpIHx8IGVycm9yID8gJ2N1c3RvbS1yYWRpby1vcHRpb24gaW52YWxpZCcgOiAnY3VzdG9tLXJhZGlvLW9wdGlvbidcIj5cblxuICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgW2lkXT1cImFwaU1ldGEgPyBvcHRpb25bbGFiZWxGaWVsZF0gPz8gb3B0aW9uLnZhbHVlIDogb3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCIoc2VsZWN0ZWRWYWx1ZSA/PyAnJykgPT0gb3B0aW9uLnZhbHVlXCIgW25hbWVdPVwiaWRcIiBbdmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJyYWRpb0NoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwibnh0LXJhZGlvLWxhYmVsXCIgW2Zvcl09XCJhcGlNZXRhID8gb3B0aW9uW2xhYmVsRmllbGRdID8/IG9wdGlvbi52YWx1ZSA6IG9wdGlvbi52YWx1ZVwiPlxuICAgICAgICAgIHt7IGFwaU1ldGEgPyBvcHRpb25bbGFiZWxGaWVsZF0gPz8gb3B0aW9uLnZhbHVlIDogb3B0aW9uLnZhbHVlIH19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICB9XG4gICAgPGRpdiAqbmdJZj1cInZpZXdFZGl0XCIgY2xhc3M9XCJmbGV4XCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBtYXJnaW4tbGVmdDogYXV0bztcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJ2aWV3RWRpdCAmJiBvcmlnaW5hbFZhbHVlICE9PSB2YWx1ZVwiIChtb3VzZWVudGVyKT1cImlzU2F2ZUhvdmVyZWQgPSB0cnVlXCIgKG1vdXNlbGVhdmUpPVwiaXNTYXZlSG92ZXJlZCA9IGZhbHNlXCJcbiAgICAgICAgICBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDVweDtcIj5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzU2F2ZUhvdmVyZWRcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk01Ljk1MDIgMC41QzguOTYwMDYgMC41MDAxMDYgMTEuNDAwNCAyLjk0MDMxIDExLjQwMDQgNS45NTAyQzExLjQwMDMgOC45NTk5OSA4Ljk1OTk5IDExLjQwMDMgNS45NTAyIDExLjQwMDRDMi45NDAzMSAxMS40MDA0IDAuNTAwMTA2IDguOTYwMDYgMC41IDUuOTUwMkMwLjUgMi45NDAyNCAyLjk0MDI0IDAuNSA1Ljk1MDIgMC41WlwiXG4gICAgICAgICAgICAgIHN0cm9rZT1cIiM4MzdGOEVcIiAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk04Ljg4MTExIDMuODQ1ODNDOC44MzI2OSAzLjc5NzIgOC43NzUxMyAzLjc1ODYgOC43MTE3NiAzLjczMjI3QzguNjQ4MzggMy43MDU5NCA4LjU4MDQzIDMuNjkyMzggOC41MTE4IDMuNjkyMzhDOC40NDMxNyAzLjY5MjM4IDguMzc1MjEgMy43MDU5NCA4LjMxMTg0IDMuNzMyMjdDOC4yNDg0NiAzLjc1ODYgOC4xOTA5MSAzLjc5NzIgOC4xNDI0OSAzLjg0NTgzTDQuODI2OSA3LjE2MzQ3TDMuMzUyNTMgNS42ODkxQzMuMzA0MDMgNS42NDA2IDMuMjQ2NDYgNS42MDIxMyAzLjE4MzA5IDUuNTc1ODhDMy4xMTk3MiA1LjU0OTY0IDMuMDUxODEgNS41MzYxMyAyLjk4MzIyIDUuNTM2MTNDMi45MTQ2MyA1LjUzNjEzIDIuODQ2NzIgNS41NDk2NCAyLjc4MzM1IDUuNTc1ODhDMi43MTk5OSA1LjYwMjEzIDIuNjYyNDEgNS42NDA2IDIuNjEzOTEgNS42ODkxQzIuNTY1NDEgNS43Mzc2IDIuNTI2OTQgNS43OTUxOCAyLjUwMDY5IDUuODU4NTRDMi40NzQ0NSA1LjkyMTkxIDIuNDYwOTQgNS45ODk4MiAyLjQ2MDk0IDYuMDU4NDFDMi40NjA5NCA2LjEyNyAyLjQ3NDQ1IDYuMTk0OTEgMi41MDA2OSA2LjI1ODI4QzIuNTI2OTQgNi4zMjE2NSAyLjU2NTQxIDYuMzc5MjIgMi42MTM5MSA2LjQyNzcyTDQuNDU2NzcgOC4yNzA1OEM0LjUwNTE5IDguMzE5MjIgNC41NjI3NCA4LjM1NzgxIDQuNjI2MTIgOC4zODQxNEM0LjY4OTUgOC40MTA0NyA0Ljc1NzQ1IDguNDI0MDMgNC44MjYwOCA4LjQyNDAzQzQuODk0NzEgOC40MjQwMyA0Ljk2MjY2IDguNDEwNDcgNS4wMjYwNCA4LjM4NDE0QzUuMDg5NDIgOC4zNTc4MSA1LjE0Njk3IDguMzE5MjIgNS4xOTUzOSA4LjI3MDU4TDguODgxMTEgNC41ODQ0NUM4LjkyOTc0IDQuNTM2MDMgOC45NjgzNCA0LjQ3ODQ4IDguOTk0NjcgNC40MTUxQzkuMDIxIDQuMzUxNzMgOS4wMzQ1NiA0LjI4Mzc3IDkuMDM0NTYgNC4yMTUxNEM5LjAzNDU2IDQuMTQ2NTEgOS4wMjEgNC4wNzg1NiA4Ljk5NDY3IDQuMDE1MThDOC45NjgzNCAzLjk1MTggOC45Mjk3NCAzLjg5NDI1IDguODgxMTEgMy44NDU4M1pcIlxuICAgICAgICAgICAgICBmaWxsPVwiIzgzN0Y4RVwiIC8+XG4gICAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXNTYXZlSG92ZXJlZFwiIChjbGljayk9XCJzYXZlQ2hhbmdlcygpXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxMiAxM1wiIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNNS45NSAxMi44MDA0QzkuMjM2MDkgMTIuODAwNCAxMS45IDEwLjEzNjUgMTEuOSA2Ljg1MDM5QzExLjkgMy41NjQzIDkuMjM2MDkgMC45MDAzOTEgNS45NSAwLjkwMDM5MUMyLjY2MzkxIDAuOTAwMzkxIDAgMy41NjQzIDAgNi44NTAzOUMwIDEwLjEzNjUgMi42NjM5MSAxMi44MDA0IDUuOTUgMTIuODAwNFpcIlxuICAgICAgICAgICAgICBmaWxsPVwiIzI1OTU2NlwiIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTguODgxMTEgNC43NDYyMkM4LjgzMjY5IDQuNjk3NTkgOC43NzUxMyA0LjY1ODk5IDguNzExNzYgNC42MzI2NkM4LjY0ODM4IDQuNjA2MzMgOC41ODA0MyA0LjU5Mjc3IDguNTExOCA0LjU5Mjc3QzguNDQzMTcgNC41OTI3NyA4LjM3NTIxIDQuNjA2MzMgOC4zMTE4NCA0LjYzMjY2QzguMjQ4NDYgNC42NTg5OSA4LjE5MDkxIDQuNjk3NTkgOC4xNDI0OSA0Ljc0NjIyTDQuODI2OSA4LjA2Mzg2TDMuMzUyNTMgNi41ODk0OUMzLjMwNDAzIDYuNTQwOTkgMy4yNDY0NiA2LjUwMjUyIDMuMTgzMDkgNi40NzYyN0MzLjExOTcyIDYuNDUwMDMgMy4wNTE4MSA2LjQzNjUyIDIuOTgzMjIgNi40MzY1MkMyLjkxNDYzIDYuNDM2NTIgMi44NDY3MiA2LjQ1MDAzIDIuNzgzMzUgNi40NzYyN0MyLjcxOTk5IDYuNTAyNTIgMi42NjI0MSA2LjU0MDk5IDIuNjEzOTEgNi41ODk0OUMyLjU2NTQxIDYuNjM3OTkgMi41MjY5NCA2LjY5NTU3IDIuNTAwNjkgNi43NTg5M0MyLjQ3NDQ1IDYuODIyMyAyLjQ2MDk0IDYuODkwMjIgMi40NjA5NCA2Ljk1ODhDMi40NjA5NCA3LjAyNzM5IDIuNDc0NDUgNy4wOTUzMSAyLjUwMDY5IDcuMTU4NjdDMi41MjY5NCA3LjIyMjA0IDIuNTY1NDEgNy4yNzk2MSAyLjYxMzkxIDcuMzI4MTFMNC40NTY3NyA5LjE3MDk3QzQuNTA1MTkgOS4yMTk2MSA0LjU2Mjc0IDkuMjU4MiA0LjYyNjEyIDkuMjg0NTNDNC42ODk1IDkuMzEwODYgNC43NTc0NSA5LjMyNDQyIDQuODI2MDggOS4zMjQ0MkM0Ljg5NDcxIDkuMzI0NDIgNC45NjI2NiA5LjMxMDg2IDUuMDI2MDQgOS4yODQ1M0M1LjA4OTQyIDkuMjU4MiA1LjE0Njk3IDkuMjE5NjEgNS4xOTUzOSA5LjE3MDk3TDguODgxMTEgNS40ODQ4NEM4LjkyOTc0IDUuNDM2NDIgOC45NjgzNCA1LjM3ODg3IDguOTk0NjcgNS4zMTU0OUM5LjAyMSA1LjI1MjEyIDkuMDM0NTYgNS4xODQxNiA5LjAzNDU2IDUuMTE1NTNDOS4wMzQ1NiA1LjA0NjkgOS4wMjEgNC45Nzg5NSA4Ljk5NDY3IDQuOTE1NTdDOC45NjgzNCA0Ljg1MjIgOC45Mjk3NCA0Ljc5NDY1IDguODgxMTEgNC43NDYyMlpcIlxuICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInZpZXdFZGl0ICYmIG9yaWdpbmFsVmFsdWUgIT09IHZhbHVlXCIgKG1vdXNlZW50ZXIpPVwiaXNEaXNjYXJkSG92ZXJlZCA9IHRydWVcIiAobW91c2VsZWF2ZSk9XCJpc0Rpc2NhcmRIb3ZlcmVkID0gZmFsc2VcIj5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzRGlzY2FyZEhvdmVyZWRcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk03LjA1NTU1IDQuMDA4ODNMNS45NCA1LjEyNDM4TDQuODI0NDUgNC4wMDg4M0M0LjU3ODYxIDMuNzYyOTkgNC4xODE5MSAzLjc2Mjk5IDMuOTM2MDcgNC4wMDg4M0MzLjY5MDIzIDQuMjU0NjcgMy42OTAyMyA0LjY1MTM3IDMuOTM2MDcgNC44OTcyMUw1LjA1MTYyIDYuMDEyNzZMMy45MzYwNyA3LjEyODMxQzMuNjkwMjMgNy4zNzQxNSAzLjY5MDIzIDcuNzcwODUgMy45MzYwNyA4LjAxNjY5QzQuMTgxOTEgOC4yNjI1MyA0LjU3ODYxIDguMjYyNTMgNC44MjQ0NSA4LjAxNjY5TDUuOTQgNi45MDExNEw3LjA1NTU1IDguMDE2NjlDNy4zMDEzOSA4LjI2MjUzIDcuNjk4MDkgOC4yNjI1MyA3Ljk0MzkzIDguMDE2NjlDOC4xODk3NyA3Ljc3MDg1IDguMTg5NzcgNy4zNzQxNSA3Ljk0MzkzIDcuMTI4MzFMNi44MjgzOCA2LjAxMjc2TDcuOTQzOTMgNC44OTcyMUM4LjE4OTc3IDQuNjUxMzcgOC4xODk3NyA0LjI1NDY3IDcuOTQzOTMgNC4wMDg4M0M3LjY5ODA5IDMuNzcyODUgNy4zMDAyMSAzLjc3Mjg1IDcuMDU1NTUgNC4wMDg4M1pNNS45NCAwLjA4MjAzMTJDMi43MDAxNyAwLjA4MjAzMTIgMC4wODA4NTk0IDIuNzAxMzQgMC4wODA4NTk0IDUuOTQxMThDMC4wODA4NTk0IDkuMTgxMDEgMi43MDAxNyAxMS44MDAzIDUuOTQgMTEuODAwM0M5LjE3OTgzIDExLjgwMDMgMTEuNzk5MSA5LjE4MTAxIDExLjc5OTEgNS45NDExOEMxMS43OTkxIDIuNzAxMzQgOS4xNzk4MyAwLjA4MjAzMTIgNS45NCAwLjA4MjAzMTJaTTUuOTQgMTAuNjM2N0MzLjM1NDI2IDEwLjYzNjcgMS4yNDQyMiA4LjUyNjY3IDEuMjQ0MjIgNS45NDExOEMxLjI0NDIyIDMuMzU1NTMgMy4zNTQyNiAxLjI0NTQ5IDUuOTQgMS4yNDU0OUM4LjUyNTU4IDEuMjQ1NDkgMTAuNjM1NiAzLjM1NTUzIDEwLjYzNTYgNS45NDExOEMxMC42MzU2IDguNTI2NjcgOC41MjU1OCAxMC42MzY3IDUuOTQgMTAuNjM2N1pcIlxuICAgICAgICAgICAgICBmaWxsPVwiI0IwQURBQlwiIC8+XG4gICAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXNEaXNjYXJkSG92ZXJlZFwiIChjbGljayk9XCJkaXNjYXJkQ2hhbmdlcygpXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxMiAxM1wiXG4gICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNNy4wNTU1NSA0Ljk3NDcxTDUuOTQgNi4wOTAyNkw0LjgyNDQ1IDQuOTc0NzFDNC41Nzg2MSA0LjcyODg3IDQuMTgxOTEgNC43Mjg4NyAzLjkzNjA3IDQuOTc0NzFDMy42OTAyMyA1LjIyMDU1IDMuNjkwMjMgNS42MTcyNSAzLjkzNjA3IDUuODYzMDlMNS4wNTE2MiA2Ljk3ODY0TDMuOTM2MDcgOC4wOTQxOUMzLjY5MDIzIDguMzQwMDMgMy42OTAyMyA4LjczNjczIDMuOTM2MDcgOC45ODI1N0M0LjE4MTkxIDkuMjI4NDEgNC41Nzg2MSA5LjIyODQxIDQuODI0NDUgOC45ODI1N0w1Ljk0IDcuODY3MDJMNy4wNTU1NSA4Ljk4MjU3QzcuMzAxMzkgOS4yMjg0MSA3LjY5ODA5IDkuMjI4NDEgNy45NDM5MyA4Ljk4MjU3QzguMTg5NzcgOC43MzY3MyA4LjE4OTc3IDguMzQwMDMgNy45NDM5MyA4LjA5NDE5TDYuODI4MzggNi45Nzg2NEw3Ljk0MzkzIDUuODYzMDlDOC4xODk3NyA1LjYxNzI1IDguMTg5NzcgNS4yMjA1NSA3Ljk0MzkzIDQuOTc0NzFDNy42OTgwOSA0LjczODczIDcuMzAwMjEgNC43Mzg3MyA3LjA1NTU1IDQuOTc0NzFaTTUuOTQgMS4wNjA2MkMyLjcwMDE3IDEuMDYwNjIgMC4wODA4NTk0IDMuNjc5OTMgMC4wODA4NTk0IDYuOTE5NzdDMC4wODA4NTk0IDEwLjE1OTYgMi43MDAxNyAxMi43Nzg5IDUuOTQgMTIuNzc4OUM5LjE3OTgzIDEyLjc3ODkgMTEuNzk5MSAxMC4xNTk2IDExLjc5OTEgNi45MTk3N0MxMS43OTkxIDMuNjc5OTMgOS4xNzk4MyAxLjA2MDYyIDUuOTQgMS4wNjA2MlpNNS45NCAxMS42MTUzQzMuMzU0MjYgMTEuNjE1MyAxLjI0NDIyIDkuNTA1MjUgMS4yNDQyMiA2LjkxOTc3QzEuMjQ0MjIgNC4zMzQxMiAzLjM1NDI2IDIuMjI0MDggNS45NCAyLjIyNDA4QzguNTI1NTggMi4yMjQwOCAxMC42MzU2IDQuMzM0MTIgMTAuNjM1NiA2LjkxOTc3QzEwLjYzNTYgOS41MDUyNSA4LjUyNTU4IDExLjYxNTMgNS45NCAxMS42MTUzWlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjRkYzNjM2XCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICBAaWYobW9kZSAhPT0gJ2VkaXQnKSB7XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGNvbnRlbnQtc3BhY2UtYmV0d2VlblwiPlxuICAgIDxkaXY+e3tzZWxlY3RlZFZhbHVlIHx8ICctJ319PC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxzdmcgKm5nSWY9XCIhcXVlc3Rpb24uaXNSZWFkT25seSAmJiAhdmlld0VkaXQgXCIgY2xhc3M9XCJlZGl0LWljb25cIiAoY2xpY2spPVwidmlld0VkaXRDbGljayhxdWVzdGlvbilcIiB3aWR0aD1cIjEzXCJcbiAgICAgICAgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDEzIDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICBkPVwiTTEuOTk5ODcgOS4wMDE3TDQuMzk2MDIgMTEuMzk3OUM0LjUwMzcxIDExLjUwNTUgNC42NjUyNSAxMS41MDU1IDQuNzcyOTQgMTEuMzk3OUwxMC43NDk5IDUuMzk0MDFDMTAuODU3NiA1LjI4NjMxIDEwLjg1NzYgNS4xMjQ3NyAxMC43NDk5IDUuMDE3MDhMOC4zODA2NCAyLjY0Nzg1QzguMjcyOTQgMi41NDAxNiA4LjExMTQxIDIuNTQwMTYgOC4wMDM3MSAyLjY0Nzg1TDEuOTk5ODcgOC42NTE3QzEuODkyMTcgOC43NTkzOSAxLjg5MjE3IDguOTIwOTMgMS45OTk4NyA5LjAwMTdaTTkuMTYxNCAxLjU0NDAxQzkuMDUzNzEgMS42NTE3IDkuMDUzNzEgMS44MTMyNCA5LjE2MTQgMS45MjA5M0wxMS41MzA2IDQuMjkwMTZDMTEuNjM4MyA0LjM5Nzg1IDExLjc5OTkgNC4zOTc4NSAxMS45MDc2IDQuMjkwMTZMMTIuNTgwNiAzLjYxNzA4QzEzLjAxMTQgMy4yMTMyNCAxMy4wMTE0IDIuNTY3MDggMTIuNTgwNiAyLjEzNjMxTDExLjMxNTMgMC44NzA5MjhDMTAuODg0NSAwLjQ0MDE1OSAxMC4yMTE0IDAuNDQwMTU5IDkuNzgwNjMgMC44NzA5MjhMOS4xNjE0IDEuNTQ0MDFaTTAuMDA3NTU4NjIgMTIuOTg2M0MtMC4wNDYyODc1IDEzLjI1NTUgMC4xOTYwMiAxMy40OTc5IDAuNDY1MjUxIDEzLjQ0NEwzLjM5OTg3IDEyLjc0NEMzLjUwNzU2IDEyLjcxNzEgMy41ODgzMyAxMi42NjMyIDMuNjQyMTcgMTIuNjA5NEwzLjY5NjAyIDEyLjU1NTVDMy43NDk4NyAxMi41MDE3IDMuNzc2NzkgMTIuMzEzMiAzLjY2OTEgMTIuMjA1NUwxLjI0NjAyIDkuNzgyNDdDMS4xMzgzMyA5LjY3NDc4IDAuOTQ5ODY2IDkuNzAxNyAwLjg5NjAyIDkuNzU1NTRMMC44NDIxNzQgOS44MDkzOUMwLjc2MTQwNSA5Ljg5MDE2IDAuNzM0NDgyIDkuOTcwOTMgMC43MDc1NTkgMTAuMDUxN0wwLjAwNzU1ODYyIDEyLjk4NjNaXCJcbiAgICAgICAgICBmaWxsPVwiI0IwQURBQlwiIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIH1cbiAgPHNwYW4gKm5nSWY9XCJlcnJvciB8fCBpbnZhbGlkRmllbGRJZHMuaW5jbHVkZXMoaWQpXCIgY2xhc3M9XCJlcnJvci1tc2dcIj5cbiAgICB7eyBlcnJvck1lc3NhZ2UgPz8gJ0ludmFsaWQgc2VsZWN0aW9uJyB9fVxuICA8L3NwYW4+XG48L2Rpdj4iXX0=
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1yYWRpby9jdXN0b20tcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXJhZGlvL2N1c3RvbS1yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFNMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFXL0MsTUFBTSxPQUFPLG9CQUFvQjtJQTJCckI7SUFDQTtJQUNEO0lBM0JBLE9BQU8sR0FBVSxFQUFFLENBQUM7SUFDcEIsUUFBUSxHQUFRLEVBQUUsQ0FBQTtJQUNsQixPQUFPLENBQVM7SUFDaEIsYUFBYSxDQUFTO0lBQ3RCLFdBQVcsQ0FBVTtJQUNyQixFQUFFLENBQVM7SUFDWCxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFlBQVksQ0FBUztJQUNyQixLQUFLLENBQU07SUFDWCxXQUFXLEdBQVksS0FBSyxDQUFDO0lBQzdCLGNBQWMsQ0FBUztJQUN2QixLQUFLLENBQVM7SUFDZCxJQUFJLEdBQThCLE1BQU0sQ0FBQyxDQUFDLGlCQUFpQjtJQUMxRCxXQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFDbkUsZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUV4QixVQUFVLENBQVM7SUFDbkIsVUFBVSxDQUFTO0lBQzFCLFlBQVksQ0FBZTtJQUMzQixhQUFhLENBQU0sQ0FBQyxzRUFBc0U7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LG9CQUFvQiwwYkNsQmpDLDZ5UUEwRU0sc1lEN0RGLFlBQVk7OzRGQUtILG9CQUFvQjtrQkFUaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7cUJBQ2I7c0lBTVEsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlV3JhcHBlciB9IGZyb20gJy4uLy4uL21vZGVsL2NoYW5nZVdyYXBwZXInO1xuaW1wb3J0IHsgQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoYW5nZS5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVBJTWV0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXBpbWV0YSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY3VzdG9tLXJhZGlvJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1yYWRpby5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmFkaW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBhbnkgPSB7fVxuICBASW5wdXQoKSBhcGlNZXRhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU6IHN0cmluZztcbiAgQElucHV0KCkgcHJvZ3Jlc3NCYXI6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlYWRPbmx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBASW5wdXQoKSBlcnJvcjogYW55O1xuICBASW5wdXQoKSBmcm9tU2hlbmdlbDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZWZlcmVuY2VGaWVsZDogc3RyaW5nO1xuICBASW5wdXQoKSB0b2tlbjogc3RyaW5nO1xuICBASW5wdXQoKSBtb2RlOiAndmlldycgfCAnZWRpdCcgfCAncHJpbnQnID0gJ2VkaXQnOyAvLyBOZXcgbW9kZSBpbnB1dFxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIGludmFsaWRGaWVsZElkczogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgbGFiZWxGaWVsZDogc3RyaW5nO1xuICBwdWJsaWMgdmFsdWVGaWVsZDogc3RyaW5nO1xuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgb3JpZ2luYWxWYWx1ZTogYW55OyAvLyBTS1MxMUpVTjI1IFRvIHN0b3JlIHRoZSBvcmlnaW5hbCB2YWx1ZSB3aGVuIGVudGVyaW5nIHZpZXcgZWRpdCBtb2RlXG4gIGlzU2F2ZUhvdmVyZWQgPSBmYWxzZTtcbiAgaXNEaXNjYXJkSG92ZXJlZCA9IGZhbHNlO1xuICB2YWx1ZTogQ2hhbmdlV3JhcHBlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZVNlcnZpY2U6IENoYW5nZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXG4gICAgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZVxuICApIHtcbiAgICB0aGlzLmNoYW5nZVNlcnZpY2Uuc3VibWl0VmFsaWRhdGUkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5pbnZhbGlkRmllbGRJZHMucHVzaChkYXRhKTtcbiAgICB9KTtcbiAgfVxuICB2aWV3RWRpdDogYm9vbGVhbiA9IGZhbHNlIFxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFZEIDMxTk9WMjQgbnVsbCBjaGVja1xuICAgIGlmICh0aGlzLmFwaU1ldGEpIHtcbiAgICAgIHRoaXMuYXBpTWV0YSA9IHR5cGVvZiB0aGlzLmFwaU1ldGEgPT09ICdvYmplY3QnID8gdGhpcy5hcGlNZXRhIDogSlNPTi5wYXJzZSh0aGlzLmFwaU1ldGEpO1xuICAgICAgbGV0IGFwaU9iajogYW55ID0gdGhpcy5hcGlNZXRhO1xuICAgICAgdGhpcy5sYWJlbEZpZWxkID0gYXBpT2JqLmZpZWxkO1xuXG4gICAgICB0aGlzLmRhdGFTZXJ2aWNlLmFwaVJlc3BvbnNlKGFwaU9iai5lbmRwb2ludCk/LnN1YnNjcmliZSgoYXBpUmVzcG9uc2UpID0+IHtcbiAgICAgICAgbGV0IHJlc3BvbnNlcztcbiAgICAgICAgaWYgKGFwaU9iai52YXJpYWJsZSkge1xuICAgICAgICAgIHJlc3BvbnNlcyA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoYXBpUmVzcG9uc2UsIGFwaU9iai52YXJpYWJsZSk7XG4gICAgICAgICAgbGV0IHJlc3VsdHMgPSBbXTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlcz8ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciByZXNwID0gcmVzcG9uc2VzW2ldO1xuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3ApO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm9wdGlvbnMgPSByZXN1bHRzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3BvbnNlcyA9IGFwaVJlc3BvbnNlO1xuICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3BvbnNlcztcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGxldCBzb3VyY2VJZCA9IGFwaU9iai5zb3VyY2VRdWVzdGlvbklkO1xuICAgICAgaWYgKHNvdXJjZUlkKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jaGFuZ2VTZXJ2aWNlLmNoYW5nZUFubm91bmNlZCQuc3Vic2NyaWJlKFxuICAgICAgICAgIChjaGFuZ2VWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoYW5nZVZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBpZiAoY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgJiYgY2hhbmdlVmFsdWUudmFsdWVPYmogIT09IHVuZGVmaW5lZCAmJiAoIEFycmF5LmlzQXJyYXkoYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQpPyBhcGlPYmouc291cmNlUXVlc3Rpb25JZC5pbmNsdWRlcyhjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCkgOiBjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCA9PT0gYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gY2hhbmdlVmFsdWUudmFsdWVPYmpbYXBpT2JqLnZhbHVlRmllbGRdO1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHt9O1xuICAgICAgICAgICAgICAgIHZhbHVlWyduYW1lJ10gPSB0aGlzLnNlbGVjdGVkVmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5yYWRpb0NoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VTZXJ2aWNlLmNvbmZpcm1DaGFuZ2UoY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbm5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snbW9kZSddKSB7XG4gICAgICB0aGlzLnZpZXdFZGl0ID0gZmFsc2VcbiAgICB9XG4gIH1cbiAgcmFkaW9DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGxldCBjaGFuZ2UgPSBuZXcgQ2hhbmdlV3JhcHBlcigpO1xuICAgIGNoYW5nZVsnZnJvbVF1ZXN0aW9uSWQnXSA9IHRoaXMuaWQ7XG4gICAgY2hhbmdlWyd2YWx1ZU9iaiddID0gZXZlbnQudGFyZ2V0Py5pZCA/IGV2ZW50LnRhcmdldD8uaWQgOiAnJztcbiAgICBjaGFuZ2VbJ3JlZmVyZW5jZUZpZWxkJ10gPSB0aGlzLnJlZmVyZW5jZUZpZWxkO1xuICAgIC8vIFNLUzExSlVOMjUgT25seSBlbWl0IHRoZSB2YWx1ZSBpZiBub3QgaW4gdmlldyBlZGl0IG1vZGVcbiAgICBpZiAoIXRoaXMudmlld0VkaXQpIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh7cXVlc3Rpb24gOiB0aGlzLnF1ZXN0aW9uLCB2YWx1ZTogY2hhbmdlfSk7XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSBjaGFuZ2VcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMuaW52YWxpZEZpZWxkSWRzID0gW107XG4gICAgfVxuICB9XG4gIHZpZXdFZGl0Q2xpY2socXVlczogYW55KSB7XG4gICAgdGhpcy5vcmlnaW5hbFZhbHVlID0gcXVlcy5pbnB1dDsgLy8gU0tTMTFKVU4yNSBTdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWVcbiAgICB0aGlzLnZpZXdFZGl0ID0gdHJ1ZTsgLy8gRW50ZXIgdmlldyBlZGl0IG1vZGVcbiAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XG4gIH1cbiAgZGlzY2FyZENoYW5nZXMoKSB7XG4gICAgdGhpcy52aWV3RWRpdCA9IGZhbHNlOyAvLyBFeGl0IHZpZXcgZWRpdCBtb2RlXG4gICAgdGhpcy5tb2RlID0gJ3ZpZXcnOyAvLyBTd2l0Y2ggYmFjayB0byB2aWV3IG1vZGVcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB0aGlzLm9yaWdpbmFsVmFsdWU7IC8vIFNLUzExSlVOMjUgUmVzdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWVcbiAgfVxuICBzYXZlQ2hhbmdlcygpIHtcbiAgICBsZXQgcXVlcyA9IHRoaXMucXVlc3Rpb25cbiAgICBxdWVzWydzaW5nbGVGaWVsZENoYW5nZSddID0gdHJ1ZVxuICAgIGxldCBjaGFuZ2U6IGFueSA9e307XG4gICAgY2hhbmdlWydmcm9tUXVlc3Rpb25JZCddID0gdGhpcy5xdWVzdGlvbi5pZDtcbiAgICBjaGFuZ2VbJ3ZhbHVlT2JqJ10gPSB0aGlzLnZhbHVlO1xuICAgIGNoYW5nZVsncmVmZXJlbmNlRmllbGQnXSA9IHRoaXMucXVlc3Rpb24ucmVmZXJlbmNlRmllbGQ7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHtxdWVzdGlvbiA6IHF1ZXMsIHZhbHVlOiBjaGFuZ2V9KTsgLy8gRW1pdCB0aGUgdXBkYXRlZCB2YWx1ZVxuICAgIHRoaXMudmlld0VkaXQgPSBmYWxzZTsgLy8gU0tTMTFKVU4yNSBFeGl0IHZpZXcgZWRpdCBtb2RlXG4gICAgdGhpcy5tb2RlID0gJ3ZpZXcnOyAvLyBTd2l0Y2ggYmFjayB0byB2aWV3IG1vZGVcbiAgfVxufVxuIiwiPCEtLSBBUDI2TUFSMjUgIE1hcmsgYXMgY2hlY2tlZCBpZiBpdCBtYXRjaGVzIHRoZSBzZWxlY3RlZCB2YWx1ZSAtLT5cbjxkaXYgY2xhc3M9XCIgaG92ZXItd3JhcHBlciBjdXN0b20tcmFkaW8tY29udGFpbmVyXCI+XG4gIDxkaXZcbiAgICBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZmxleC13cmFwOiB3cmFwOyBwYWRkaW5nLWxlZnQ6IDVweDsgcGFkZGluZy1yaWdodDogNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFGQUZBOyBib3JkZXItcmFkaXVzOiA1cHg7XCI+XG4gICAgQGlmKG1vZGUgPT09ICdlZGl0Jyl7XG4gICAgPGRpdj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcbiAgICAgICAgW2NsYXNzXT1cImludmFsaWRGaWVsZElkcy5pbmNsdWRlcyhpZCkgfHwgZXJyb3IgPyAnY3VzdG9tLXJhZGlvLW9wdGlvbiBpbnZhbGlkJyA6ICdjdXN0b20tcmFkaW8tb3B0aW9uJ1wiPlxuXG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBbaWRdPVwiYXBpTWV0YSA/IG9wdGlvbltsYWJlbEZpZWxkXSA/PyBvcHRpb24udmFsdWUgOiBvcHRpb24udmFsdWVcIlxuICAgICAgICAgIFtjaGVja2VkXT1cIihzZWxlY3RlZFZhbHVlID8/ICcnKSA9PSBvcHRpb24udmFsdWVcIiBbbmFtZV09XCJpZFwiIFt2YWx1ZV09XCJzZWxlY3RlZFZhbHVlXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInJhZGlvQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJueHQtcmFkaW8tbGFiZWxcIiBbZm9yXT1cImFwaU1ldGEgPyBvcHRpb25bbGFiZWxGaWVsZF0gPz8gb3B0aW9uLnZhbHVlIDogb3B0aW9uLnZhbHVlXCI+XG4gICAgICAgICAge3sgYXBpTWV0YSA/IG9wdGlvbltsYWJlbEZpZWxkXSA/PyBvcHRpb24udmFsdWUgOiBvcHRpb24udmFsdWUgfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2ICpuZ0lmPVwidmlld0VkaXRcIiBjbGFzcz1cImZsZXhcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IG1hcmdpbi1sZWZ0OiBhdXRvO1wiPlxuICAgICAgPGRpdiAqbmdJZj1cInZpZXdFZGl0ICYmIG9yaWdpbmFsVmFsdWUgIT09IHZhbHVlXCIgKG1vdXNlZW50ZXIpPVwiaXNTYXZlSG92ZXJlZCA9IHRydWVcIiAobW91c2VsZWF2ZSk9XCJpc1NhdmVIb3ZlcmVkID0gZmFsc2VcIlxuICAgICAgICAgIHN0eWxlPVwicGFkZGluZy1yaWdodDogNXB4O1wiPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNTYXZlSG92ZXJlZFwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTUuOTUwMiAwLjVDOC45NjAwNiAwLjUwMDEwNiAxMS40MDA0IDIuOTQwMzEgMTEuNDAwNCA1Ljk1MDJDMTEuNDAwMyA4Ljk1OTk5IDguOTU5OTkgMTEuNDAwMyA1Ljk1MDIgMTEuNDAwNEMyLjk0MDMxIDExLjQwMDQgMC41MDAxMDYgOC45NjAwNiAwLjUgNS45NTAyQzAuNSAyLjk0MDI0IDIuOTQwMjQgMC41IDUuOTUwMiAwLjVaXCJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwiIzgzN0Y4RVwiIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTguODgxMTEgMy44NDU4M0M4LjgzMjY5IDMuNzk3MiA4Ljc3NTEzIDMuNzU4NiA4LjcxMTc2IDMuNzMyMjdDOC42NDgzOCAzLjcwNTk0IDguNTgwNDMgMy42OTIzOCA4LjUxMTggMy42OTIzOEM4LjQ0MzE3IDMuNjkyMzggOC4zNzUyMSAzLjcwNTk0IDguMzExODQgMy43MzIyN0M4LjI0ODQ2IDMuNzU4NiA4LjE5MDkxIDMuNzk3MiA4LjE0MjQ5IDMuODQ1ODNMNC44MjY5IDcuMTYzNDdMMy4zNTI1MyA1LjY4OTFDMy4zMDQwMyA1LjY0MDYgMy4yNDY0NiA1LjYwMjEzIDMuMTgzMDkgNS41NzU4OEMzLjExOTcyIDUuNTQ5NjQgMy4wNTE4MSA1LjUzNjEzIDIuOTgzMjIgNS41MzYxM0MyLjkxNDYzIDUuNTM2MTMgMi44NDY3MiA1LjU0OTY0IDIuNzgzMzUgNS41NzU4OEMyLjcxOTk5IDUuNjAyMTMgMi42NjI0MSA1LjY0MDYgMi42MTM5MSA1LjY4OTFDMi41NjU0MSA1LjczNzYgMi41MjY5NCA1Ljc5NTE4IDIuNTAwNjkgNS44NTg1NEMyLjQ3NDQ1IDUuOTIxOTEgMi40NjA5NCA1Ljk4OTgyIDIuNDYwOTQgNi4wNTg0MUMyLjQ2MDk0IDYuMTI3IDIuNDc0NDUgNi4xOTQ5MSAyLjUwMDY5IDYuMjU4MjhDMi41MjY5NCA2LjMyMTY1IDIuNTY1NDEgNi4zNzkyMiAyLjYxMzkxIDYuNDI3NzJMNC40NTY3NyA4LjI3MDU4QzQuNTA1MTkgOC4zMTkyMiA0LjU2Mjc0IDguMzU3ODEgNC42MjYxMiA4LjM4NDE0QzQuNjg5NSA4LjQxMDQ3IDQuNzU3NDUgOC40MjQwMyA0LjgyNjA4IDguNDI0MDNDNC44OTQ3MSA4LjQyNDAzIDQuOTYyNjYgOC40MTA0NyA1LjAyNjA0IDguMzg0MTRDNS4wODk0MiA4LjM1NzgxIDUuMTQ2OTcgOC4zMTkyMiA1LjE5NTM5IDguMjcwNThMOC44ODExMSA0LjU4NDQ1QzguOTI5NzQgNC41MzYwMyA4Ljk2ODM0IDQuNDc4NDggOC45OTQ2NyA0LjQxNTFDOS4wMjEgNC4zNTE3MyA5LjAzNDU2IDQuMjgzNzcgOS4wMzQ1NiA0LjIxNTE0QzkuMDM0NTYgNC4xNDY1MSA5LjAyMSA0LjA3ODU2IDguOTk0NjcgNC4wMTUxOEM4Ljk2ODM0IDMuOTUxOCA4LjkyOTc0IDMuODk0MjUgOC44ODExMSAzLjg0NTgzWlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjODM3RjhFXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cblxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJpc1NhdmVIb3ZlcmVkXCIgKGNsaWNrKT1cInNhdmVDaGFuZ2VzKClcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk01Ljk1IDEyLjgwMDRDOS4yMzYwOSAxMi44MDA0IDExLjkgMTAuMTM2NSAxMS45IDYuODUwMzlDMTEuOSAzLjU2NDMgOS4yMzYwOSAwLjkwMDM5MSA1Ljk1IDAuOTAwMzkxQzIuNjYzOTEgMC45MDAzOTEgMCAzLjU2NDMgMCA2Ljg1MDM5QzAgMTAuMTM2NSAyLjY2MzkxIDEyLjgwMDQgNS45NSAxMi44MDA0WlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjMjU5NTY2XCIgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNOC44ODExMSA0Ljc0NjIyQzguODMyNjkgNC42OTc1OSA4Ljc3NTEzIDQuNjU4OTkgOC43MTE3NiA0LjYzMjY2QzguNjQ4MzggNC42MDYzMyA4LjU4MDQzIDQuNTkyNzcgOC41MTE4IDQuNTkyNzdDOC40NDMxNyA0LjU5Mjc3IDguMzc1MjEgNC42MDYzMyA4LjMxMTg0IDQuNjMyNjZDOC4yNDg0NiA0LjY1ODk5IDguMTkwOTEgNC42OTc1OSA4LjE0MjQ5IDQuNzQ2MjJMNC44MjY5IDguMDYzODZMMy4zNTI1MyA2LjU4OTQ5QzMuMzA0MDMgNi41NDA5OSAzLjI0NjQ2IDYuNTAyNTIgMy4xODMwOSA2LjQ3NjI3QzMuMTE5NzIgNi40NTAwMyAzLjA1MTgxIDYuNDM2NTIgMi45ODMyMiA2LjQzNjUyQzIuOTE0NjMgNi40MzY1MiAyLjg0NjcyIDYuNDUwMDMgMi43ODMzNSA2LjQ3NjI3QzIuNzE5OTkgNi41MDI1MiAyLjY2MjQxIDYuNTQwOTkgMi42MTM5MSA2LjU4OTQ5QzIuNTY1NDEgNi42Mzc5OSAyLjUyNjk0IDYuNjk1NTcgMi41MDA2OSA2Ljc1ODkzQzIuNDc0NDUgNi44MjIzIDIuNDYwOTQgNi44OTAyMiAyLjQ2MDk0IDYuOTU4OEMyLjQ2MDk0IDcuMDI3MzkgMi40NzQ0NSA3LjA5NTMxIDIuNTAwNjkgNy4xNTg2N0MyLjUyNjk0IDcuMjIyMDQgMi41NjU0MSA3LjI3OTYxIDIuNjEzOTEgNy4zMjgxMUw0LjQ1Njc3IDkuMTcwOTdDNC41MDUxOSA5LjIxOTYxIDQuNTYyNzQgOS4yNTgyIDQuNjI2MTIgOS4yODQ1M0M0LjY4OTUgOS4zMTA4NiA0Ljc1NzQ1IDkuMzI0NDIgNC44MjYwOCA5LjMyNDQyQzQuODk0NzEgOS4zMjQ0MiA0Ljk2MjY2IDkuMzEwODYgNS4wMjYwNCA5LjI4NDUzQzUuMDg5NDIgOS4yNTgyIDUuMTQ2OTcgOS4yMTk2MSA1LjE5NTM5IDkuMTcwOTdMOC44ODExMSA1LjQ4NDg0QzguOTI5NzQgNS40MzY0MiA4Ljk2ODM0IDUuMzc4ODcgOC45OTQ2NyA1LjMxNTQ5QzkuMDIxIDUuMjUyMTIgOS4wMzQ1NiA1LjE4NDE2IDkuMDM0NTYgNS4xMTU1M0M5LjAzNDU2IDUuMDQ2OSA5LjAyMSA0Ljk3ODk1IDguOTk0NjcgNC45MTU1N0M4Ljk2ODM0IDQuODUyMiA4LjkyOTc0IDQuNzk0NjUgOC44ODExMSA0Ljc0NjIyWlwiXG4gICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidmlld0VkaXQgJiYgb3JpZ2luYWxWYWx1ZSAhPT0gdmFsdWVcIiAobW91c2VlbnRlcik9XCJpc0Rpc2NhcmRIb3ZlcmVkID0gdHJ1ZVwiIChtb3VzZWxlYXZlKT1cImlzRGlzY2FyZEhvdmVyZWQgPSBmYWxzZVwiPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNEaXNjYXJkSG92ZXJlZFwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTcuMDU1NTUgNC4wMDg4M0w1Ljk0IDUuMTI0MzhMNC44MjQ0NSA0LjAwODgzQzQuNTc4NjEgMy43NjI5OSA0LjE4MTkxIDMuNzYyOTkgMy45MzYwNyA0LjAwODgzQzMuNjkwMjMgNC4yNTQ2NyAzLjY5MDIzIDQuNjUxMzcgMy45MzYwNyA0Ljg5NzIxTDUuMDUxNjIgNi4wMTI3NkwzLjkzNjA3IDcuMTI4MzFDMy42OTAyMyA3LjM3NDE1IDMuNjkwMjMgNy43NzA4NSAzLjkzNjA3IDguMDE2NjlDNC4xODE5MSA4LjI2MjUzIDQuNTc4NjEgOC4yNjI1MyA0LjgyNDQ1IDguMDE2NjlMNS45NCA2LjkwMTE0TDcuMDU1NTUgOC4wMTY2OUM3LjMwMTM5IDguMjYyNTMgNy42OTgwOSA4LjI2MjUzIDcuOTQzOTMgOC4wMTY2OUM4LjE4OTc3IDcuNzcwODUgOC4xODk3NyA3LjM3NDE1IDcuOTQzOTMgNy4xMjgzMUw2LjgyODM4IDYuMDEyNzZMNy45NDM5MyA0Ljg5NzIxQzguMTg5NzcgNC42NTEzNyA4LjE4OTc3IDQuMjU0NjcgNy45NDM5MyA0LjAwODgzQzcuNjk4MDkgMy43NzI4NSA3LjMwMDIxIDMuNzcyODUgNy4wNTU1NSA0LjAwODgzWk01Ljk0IDAuMDgyMDMxMkMyLjcwMDE3IDAuMDgyMDMxMiAwLjA4MDg1OTQgMi43MDEzNCAwLjA4MDg1OTQgNS45NDExOEMwLjA4MDg1OTQgOS4xODEwMSAyLjcwMDE3IDExLjgwMDMgNS45NCAxMS44MDAzQzkuMTc5ODMgMTEuODAwMyAxMS43OTkxIDkuMTgxMDEgMTEuNzk5MSA1Ljk0MTE4QzExLjc5OTEgMi43MDEzNCA5LjE3OTgzIDAuMDgyMDMxMiA1Ljk0IDAuMDgyMDMxMlpNNS45NCAxMC42MzY3QzMuMzU0MjYgMTAuNjM2NyAxLjI0NDIyIDguNTI2NjcgMS4yNDQyMiA1Ljk0MTE4QzEuMjQ0MjIgMy4zNTU1MyAzLjM1NDI2IDEuMjQ1NDkgNS45NCAxLjI0NTQ5QzguNTI1NTggMS4yNDU0OSAxMC42MzU2IDMuMzU1NTMgMTAuNjM1NiA1Ljk0MTE4QzEwLjYzNTYgOC41MjY2NyA4LjUyNTU4IDEwLjYzNjcgNS45NCAxMC42MzY3WlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjQjBBREFCXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cblxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJpc0Rpc2NhcmRIb3ZlcmVkXCIgKGNsaWNrKT1cImRpc2NhcmRDaGFuZ2VzKClcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk03LjA1NTU1IDQuOTc0NzFMNS45NCA2LjA5MDI2TDQuODI0NDUgNC45NzQ3MUM0LjU3ODYxIDQuNzI4ODcgNC4xODE5MSA0LjcyODg3IDMuOTM2MDcgNC45NzQ3MUMzLjY5MDIzIDUuMjIwNTUgMy42OTAyMyA1LjYxNzI1IDMuOTM2MDcgNS44NjMwOUw1LjA1MTYyIDYuOTc4NjRMMy45MzYwNyA4LjA5NDE5QzMuNjkwMjMgOC4zNDAwMyAzLjY5MDIzIDguNzM2NzMgMy45MzYwNyA4Ljk4MjU3QzQuMTgxOTEgOS4yMjg0MSA0LjU3ODYxIDkuMjI4NDEgNC44MjQ0NSA4Ljk4MjU3TDUuOTQgNy44NjcwMkw3LjA1NTU1IDguOTgyNTdDNy4zMDEzOSA5LjIyODQxIDcuNjk4MDkgOS4yMjg0MSA3Ljk0MzkzIDguOTgyNTdDOC4xODk3NyA4LjczNjczIDguMTg5NzcgOC4zNDAwMyA3Ljk0MzkzIDguMDk0MTlMNi44MjgzOCA2Ljk3ODY0TDcuOTQzOTMgNS44NjMwOUM4LjE4OTc3IDUuNjE3MjUgOC4xODk3NyA1LjIyMDU1IDcuOTQzOTMgNC45NzQ3MUM3LjY5ODA5IDQuNzM4NzMgNy4zMDAyMSA0LjczODczIDcuMDU1NTUgNC45NzQ3MVpNNS45NCAxLjA2MDYyQzIuNzAwMTcgMS4wNjA2MiAwLjA4MDg1OTQgMy42Nzk5MyAwLjA4MDg1OTQgNi45MTk3N0MwLjA4MDg1OTQgMTAuMTU5NiAyLjcwMDE3IDEyLjc3ODkgNS45NCAxMi43Nzg5QzkuMTc5ODMgMTIuNzc4OSAxMS43OTkxIDEwLjE1OTYgMTEuNzk5MSA2LjkxOTc3QzExLjc5OTEgMy42Nzk5MyA5LjE3OTgzIDEuMDYwNjIgNS45NCAxLjA2MDYyWk01Ljk0IDExLjYxNTNDMy4zNTQyNiAxMS42MTUzIDEuMjQ0MjIgOS41MDUyNSAxLjI0NDIyIDYuOTE5NzdDMS4yNDQyMiA0LjMzNDEyIDMuMzU0MjYgMi4yMjQwOCA1Ljk0IDIuMjI0MDhDOC41MjU1OCAyLjIyNDA4IDEwLjYzNTYgNC4zMzQxMiAxMC42MzU2IDYuOTE5NzdDMTAuNjM1NiA5LjUwNTI1IDguNTI1NTggMTEuNjE1MyA1Ljk0IDExLjYxNTNaXCJcbiAgICAgICAgICAgICAgZmlsbD1cIiNGRjM2MzZcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIEBpZihtb2RlICE9PSAnZWRpdCcpIHtcbiAgPGRpdiBjbGFzcz1cImZsZXggY29udGVudC1zcGFjZS1iZXR3ZWVuXCI+XG4gICAgPGRpdj57e3NlbGVjdGVkVmFsdWUgfHwgJy0nfX08L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPHN2ZyAqbmdJZj1cIiFxdWVzdGlvbi5pc1JlYWRPbmx5ICYmICF2aWV3RWRpdCBcIiBjbGFzcz1cImVkaXQtaWNvblwiIChjbGljayk9XCJ2aWV3RWRpdENsaWNrKHF1ZXN0aW9uKVwiIHdpZHRoPVwiMTNcIlxuICAgICAgICBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTMgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGQ9XCJNMS45OTk4NyA5LjAwMTdMNC4zOTYwMiAxMS4zOTc5QzQuNTAzNzEgMTEuNTA1NSA0LjY2NTI1IDExLjUwNTUgNC43NzI5NCAxMS4zOTc5TDEwLjc0OTkgNS4zOTQwMUMxMC44NTc2IDUuMjg2MzEgMTAuODU3NiA1LjEyNDc3IDEwLjc0OTkgNS4wMTcwOEw4LjM4MDY0IDIuNjQ3ODVDOC4yNzI5NCAyLjU0MDE2IDguMTExNDEgMi41NDAxNiA4LjAwMzcxIDIuNjQ3ODVMMS45OTk4NyA4LjY1MTdDMS44OTIxNyA4Ljc1OTM5IDEuODkyMTcgOC45MjA5MyAxLjk5OTg3IDkuMDAxN1pNOS4xNjE0IDEuNTQ0MDFDOS4wNTM3MSAxLjY1MTcgOS4wNTM3MSAxLjgxMzI0IDkuMTYxNCAxLjkyMDkzTDExLjUzMDYgNC4yOTAxNkMxMS42MzgzIDQuMzk3ODUgMTEuNzk5OSA0LjM5Nzg1IDExLjkwNzYgNC4yOTAxNkwxMi41ODA2IDMuNjE3MDhDMTMuMDExNCAzLjIxMzI0IDEzLjAxMTQgMi41NjcwOCAxMi41ODA2IDIuMTM2MzFMMTEuMzE1MyAwLjg3MDkyOEMxMC44ODQ1IDAuNDQwMTU5IDEwLjIxMTQgMC40NDAxNTkgOS43ODA2MyAwLjg3MDkyOEw5LjE2MTQgMS41NDQwMVpNMC4wMDc1NTg2MiAxMi45ODYzQy0wLjA0NjI4NzUgMTMuMjU1NSAwLjE5NjAyIDEzLjQ5NzkgMC40NjUyNTEgMTMuNDQ0TDMuMzk5ODcgMTIuNzQ0QzMuNTA3NTYgMTIuNzE3MSAzLjU4ODMzIDEyLjY2MzIgMy42NDIxNyAxMi42MDk0TDMuNjk2MDIgMTIuNTU1NUMzLjc0OTg3IDEyLjUwMTcgMy43NzY3OSAxMi4zMTMyIDMuNjY5MSAxMi4yMDU1TDEuMjQ2MDIgOS43ODI0N0MxLjEzODMzIDkuNjc0NzggMC45NDk4NjYgOS43MDE3IDAuODk2MDIgOS43NTU1NEwwLjg0MjE3NCA5LjgwOTM5QzAuNzYxNDA1IDkuODkwMTYgMC43MzQ0ODIgOS45NzA5MyAwLjcwNzU1OSAxMC4wNTE3TDAuMDA3NTU4NjIgMTIuOTg2M1pcIlxuICAgICAgICAgIGZpbGw9XCIjQjBBREFCXCIgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgfVxuICA8c3BhbiAqbmdJZj1cImVycm9yIHx8IGludmFsaWRGaWVsZElkcy5pbmNsdWRlcyhpZClcIiBjbGFzcz1cImVycm9yLW1zZ1wiPlxuICAgIHt7IGVycm9yTWVzc2FnZSA/PyAnSW52YWxpZCBzZWxlY3Rpb24nIH19XG4gIDwvc3Bhbj5cbjwvZGl2PiJdfQ==
|