@dsivd/prestations-ng 16.4.0-beta.3 → 16.4.0-beta.5

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.
@@ -26,13 +26,18 @@ export class FoehnMultiUploadComponent extends AbstractFoehnUploaderComponent {
26
26
  this.dictionaryService = dictionaryService;
27
27
  this.growlService = growlService;
28
28
  this.url = 'api/document';
29
- this.shouldDisplayFileSavedConfirmation = true;
30
29
  this.pendingUploadService = pendingUploadService;
31
30
  this.multiUploadService = multiUploadService;
32
31
  }
33
32
  get pendingFiles() {
34
33
  return this.pendingUploadService.getPendingFiles(this.name);
35
34
  }
35
+ get addedFiles() {
36
+ if (this.pendingUploadService.hasPendingFiles(this.name)) {
37
+ return this.pendingFiles;
38
+ }
39
+ return !!this.model ? this.model : [];
40
+ }
36
41
  ngOnInit() {
37
42
  super.ngOnInit();
38
43
  // eslint-disable-next-line rxjs-angular/prefer-async-pipe
@@ -120,7 +125,9 @@ export class FoehnMultiUploadComponent extends AbstractFoehnUploaderComponent {
120
125
  }
121
126
  populateFileItemList(fileList) {
122
127
  let files = Array.from(fileList);
123
- if (!files.length) {
128
+ if (!files.length ||
129
+ this.isMaxFilesCountReached(files) ||
130
+ this.isMaxFilesSizeReached(files)) {
124
131
  return;
125
132
  }
126
133
  // When drag/drop and asked for single upload, we ensure we store only one file for upload
@@ -198,7 +205,7 @@ export class FoehnMultiUploadComponent extends AbstractFoehnUploaderComponent {
198
205
  }
199
206
  }
200
207
  FoehnMultiUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnMultiUploadComponent, deps: [{ token: i1.MultiUploadService }, { token: i2.PendingUploadService }, { token: i3.ApplicationInfoService }, { token: i4.FoehnConfirmModalService }, { token: i5.SdkDictionaryService }, { token: i6.GrowlBrokerService }], target: i0.ɵɵFactoryTarget.Component });
201
- FoehnMultiUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnMultiUploadComponent, selector: "foehn-multi-upload", inputs: { url: "url", reference: "reference", shouldDisplayFileSavedConfirmation: "shouldDisplayFileSavedConfirmation" }, providers: [
208
+ FoehnMultiUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnMultiUploadComponent, selector: "foehn-multi-upload", inputs: { url: "url", reference: "reference" }, providers: [
202
209
  {
203
210
  provide: FoehnInputComponent,
204
211
  useExisting: forwardRef(() => FoehnMultiUploadComponent),
@@ -206,7 +213,7 @@ FoehnMultiUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
206
213
  },
207
214
  { provide: MultiUploadService, useClass: MultiUploadService },
208
215
  { provide: UploadProgressService, useClass: UploadProgressService }
209
- ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [class.drop-zone-highlight]=\"showDropZone\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n (drop)=\"onDrop($event)\"\n (dragenter)=\"onDragenter($event)\"\n (dragleave)=\"onDragleave($event)\"\n (dragover)=\"onDragover($event)\"\n #fallBackTrigger\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts\n [component]=\"this\"\n [shouldErrorsBeLive]=\"hasLiveUploadErrors()\"\n ></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <!-- PRESTAKIT-309: Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"reference\">\n <div\n *ngFor=\"let document of model; trackBy: trackByDocument\"\n class=\"file file-uploaded\"\n >\n <!-- prettier-ignore -->\n <a [href]=\"multiUploadService.getDownloadUrl(url, document)\">{{ document.filename }}</a>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(document.fileSize) }}\n <abbr\n [title]=\"\n 'foehn-uploader.abbr-megaoctet-title' | fromDictionary\n \"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-uploaded\"\n (click)=\"removeFile(document)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: document.filename }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary uploaded-global-info\"\n *ngIf=\"showGlobalInfos(model)\"\n [innerHTML]=\"getGlobalInfos(model)\"\n ></small>\n </ng-container>\n\n <ng-container *ngIf=\"!reference\">\n <div\n *ngFor=\"let pending of pendingFiles; trackBy: trackByPending\"\n class=\"file file-pending\"\n >\n <span>{{ pending.name }}</span>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(pending.size) }}\n <abbr\n [title]=\"\n 'foehn-uploader.abbr-megaoctet-title' | fromDictionary\n \"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-pending\"\n (click)=\"removeFile(pending)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: pending.name }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary pending-global-info\"\n *ngIf=\"showGlobalInfos(pendingFiles)\"\n [innerHTML]=\"getGlobalInfos(pendingFiles)\"\n ></small>\n </ng-container>\n\n <ng-container *ngIf=\"canAddMoreFiles()\">\n <input\n class=\"form-control-file actual-input\"\n type=\"file\"\n [name]=\"name || label\"\n [multiple]=\"multiple\"\n [attr.accept]=\"\n overrideAcceptedExtensions\n ? overrideAcceptedExtensions\n : uploaderHelper.accept\n ? uploaderHelper.accept\n : null\n \"\n (change)=\"onFileChange($event)\"\n #inputFile\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'sr-only': !showUploadButton }\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n #entryComponent\n >\n {{ multiple ? chooseButtonLabelMultiple : chooseButtonLabel }}\n </button>\n\n <div\n *ngIf=\"dragAndDrop\"\n aria-hidden=\"true\"\n class=\"dropfile\"\n [class.dropfile-border-transparent]=\"showDropZone\"\n (click)=\"inputFile.click()\"\n >\n {{ multiple ? dropZoneLabelMultiple : dropZoneLabel }}\n </div>\n </ng-container>\n\n <foehn-upload-progress-bar\n *ngIf=\"reference\"\n [progressBarTriggerHtmlElement]=\"\n inputElement?.nativeElement || fallBackTrigger\n \"\n ></foehn-upload-progress-bar>\n</div>\n", styles: [".dropfile{width:300px;border:3px dashed #bbb;text-align:center;margin-top:10px;cursor:pointer;padding:15px 3px}.dropfile-border-transparent{border-color:var(--white)}.actual-input{display:none}.file-list{margin-top:20px}.icon-button{border:0;background-color:transparent}.icon-button:hover{cursor:pointer}:host ::ng-deep .svg-inline--fa{color:#000!important}.drop-zone-highlight{outline:3px dashed #bbb}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "component", type: i9.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "directive", type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i11.FoehnUploadProgressBarComponent, selector: "foehn-upload-progress-bar", inputs: ["progressBarTriggerHtmlElement"] }, { kind: "pipe", type: i12.SdkDictionaryPipe, name: "fromDictionary" }] });
216
+ ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group container-box\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [class.drop-zone-highlight]=\"showDropZone\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n (drop)=\"onDrop($event)\"\n (dragenter)=\"onDragenter($event)\"\n (dragleave)=\"onDragleave($event)\"\n (dragover)=\"onDragover($event)\"\n #fallBackTrigger\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts\n [component]=\"this\"\n [shouldErrorsBeLive]=\"hasLiveUploadErrors()\"\n ></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <!-- PRESTAKIT-309: Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"reference\">\n <div\n *ngFor=\"let document of model; trackBy: trackByDocument\"\n class=\"file file-uploaded\"\n >\n <!-- prettier-ignore -->\n <a [href]=\"multiUploadService.getDownloadUrl(url, document)\">{{ document.filename }}</a>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(document.fileSize) }}\n <abbr\n [title]=\"\n 'foehn-uploader.abbr-megaoctet-title' | fromDictionary\n \"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-uploaded\"\n (click)=\"removeFile(document)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: document.filename }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary uploaded-global-info\"\n *ngIf=\"showGlobalInfos(model)\"\n [innerHTML]=\"getGlobalInfos(model)\"\n ></small>\n </ng-container>\n\n <ng-container *ngIf=\"!reference\">\n <div\n *ngFor=\"let pending of pendingFiles; trackBy: trackByPending\"\n class=\"file file-pending\"\n >\n <span>{{ pending.name }}</span>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(pending.size) }}\n <abbr\n [title]=\"\n 'foehn-uploader.abbr-megaoctet-title' | fromDictionary\n \"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-pending\"\n (click)=\"removeFile(pending)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: pending.name }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary pending-global-info\"\n *ngIf=\"showGlobalInfos(pendingFiles)\"\n [innerHTML]=\"getGlobalInfos(pendingFiles)\"\n ></small>\n </ng-container>\n\n <ng-container *ngIf=\"canAddMoreFiles()\">\n <input\n class=\"form-control-file actual-input\"\n type=\"file\"\n [name]=\"name || label\"\n [multiple]=\"multiple\"\n [attr.accept]=\"\n overrideAcceptedExtensions\n ? overrideAcceptedExtensions\n : uploaderHelper.accept\n ? uploaderHelper.accept\n : null\n \"\n (change)=\"onFileChange($event)\"\n #inputFile\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'sr-only': !showUploadButton }\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n #entryComponent\n >\n {{ multiple ? chooseButtonLabelMultiple : chooseButtonLabel }}\n </button>\n\n <div\n *ngIf=\"dragAndDrop\"\n aria-hidden=\"true\"\n class=\"dropfile\"\n [class.dropfile-border-transparent]=\"showDropZone\"\n (click)=\"inputFile.click()\"\n >\n {{ multiple ? dropZoneLabelMultiple : dropZoneLabel }}\n </div>\n </ng-container>\n\n <foehn-upload-progress-bar\n *ngIf=\"reference\"\n [progressBarTriggerHtmlElement]=\"\n inputElement?.nativeElement || fallBackTrigger\n \"\n ></foehn-upload-progress-bar>\n</div>\n", styles: [".dropfile{width:300px;border:3px dashed #bbb;text-align:center;margin-top:10px;cursor:pointer;padding:15px 3px}.dropfile-border-transparent{border-color:var(--white)}.actual-input{display:none}.file-list{margin-top:20px}.icon-button{border:0;background-color:transparent}.icon-button:hover{cursor:pointer}:host ::ng-deep .svg-inline--fa{color:#000!important}.drop-zone-highlight{outline:3px dashed #bbb}.container-box{border:1px solid #ededed;background-color:#fbfbfb;padding:.5rem}.container-box.vd-form-group-danger{border-left:5px solid var(--vd-danger);padding-left:1rem}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "component", type: i9.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "directive", type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i11.FoehnUploadProgressBarComponent, selector: "foehn-upload-progress-bar", inputs: ["progressBarTriggerHtmlElement"] }, { kind: "pipe", type: i12.SdkDictionaryPipe, name: "fromDictionary" }] });
210
217
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnMultiUploadComponent, decorators: [{
211
218
  type: Component,
212
219
  args: [{ selector: 'foehn-multi-upload', providers: [
@@ -217,12 +224,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
217
224
  },
218
225
  { provide: MultiUploadService, useClass: MultiUploadService },
219
226
  { provide: UploadProgressService, useClass: UploadProgressService }
220
- ], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [class.drop-zone-highlight]=\"showDropZone\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n (drop)=\"onDrop($event)\"\n (dragenter)=\"onDragenter($event)\"\n (dragleave)=\"onDragleave($event)\"\n (dragover)=\"onDragover($event)\"\n #fallBackTrigger\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts\n [component]=\"this\"\n [shouldErrorsBeLive]=\"hasLiveUploadErrors()\"\n ></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <!-- PRESTAKIT-309: Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"reference\">\n <div\n *ngFor=\"let document of model; trackBy: trackByDocument\"\n class=\"file file-uploaded\"\n >\n <!-- prettier-ignore -->\n <a [href]=\"multiUploadService.getDownloadUrl(url, document)\">{{ document.filename }}</a>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(document.fileSize) }}\n <abbr\n [title]=\"\n 'foehn-uploader.abbr-megaoctet-title' | fromDictionary\n \"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-uploaded\"\n (click)=\"removeFile(document)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: document.filename }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary uploaded-global-info\"\n *ngIf=\"showGlobalInfos(model)\"\n [innerHTML]=\"getGlobalInfos(model)\"\n ></small>\n </ng-container>\n\n <ng-container *ngIf=\"!reference\">\n <div\n *ngFor=\"let pending of pendingFiles; trackBy: trackByPending\"\n class=\"file file-pending\"\n >\n <span>{{ pending.name }}</span>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(pending.size) }}\n <abbr\n [title]=\"\n 'foehn-uploader.abbr-megaoctet-title' | fromDictionary\n \"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-pending\"\n (click)=\"removeFile(pending)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: pending.name }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary pending-global-info\"\n *ngIf=\"showGlobalInfos(pendingFiles)\"\n [innerHTML]=\"getGlobalInfos(pendingFiles)\"\n ></small>\n </ng-container>\n\n <ng-container *ngIf=\"canAddMoreFiles()\">\n <input\n class=\"form-control-file actual-input\"\n type=\"file\"\n [name]=\"name || label\"\n [multiple]=\"multiple\"\n [attr.accept]=\"\n overrideAcceptedExtensions\n ? overrideAcceptedExtensions\n : uploaderHelper.accept\n ? uploaderHelper.accept\n : null\n \"\n (change)=\"onFileChange($event)\"\n #inputFile\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'sr-only': !showUploadButton }\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n #entryComponent\n >\n {{ multiple ? chooseButtonLabelMultiple : chooseButtonLabel }}\n </button>\n\n <div\n *ngIf=\"dragAndDrop\"\n aria-hidden=\"true\"\n class=\"dropfile\"\n [class.dropfile-border-transparent]=\"showDropZone\"\n (click)=\"inputFile.click()\"\n >\n {{ multiple ? dropZoneLabelMultiple : dropZoneLabel }}\n </div>\n </ng-container>\n\n <foehn-upload-progress-bar\n *ngIf=\"reference\"\n [progressBarTriggerHtmlElement]=\"\n inputElement?.nativeElement || fallBackTrigger\n \"\n ></foehn-upload-progress-bar>\n</div>\n", styles: [".dropfile{width:300px;border:3px dashed #bbb;text-align:center;margin-top:10px;cursor:pointer;padding:15px 3px}.dropfile-border-transparent{border-color:var(--white)}.actual-input{display:none}.file-list{margin-top:20px}.icon-button{border:0;background-color:transparent}.icon-button:hover{cursor:pointer}:host ::ng-deep .svg-inline--fa{color:#000!important}.drop-zone-highlight{outline:3px dashed #bbb}\n"] }]
227
+ ], template: "<div\n class=\"form-group container-box\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [class.drop-zone-highlight]=\"showDropZone\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n (drop)=\"onDrop($event)\"\n (dragenter)=\"onDragenter($event)\"\n (dragleave)=\"onDragleave($event)\"\n (dragover)=\"onDragover($event)\"\n #fallBackTrigger\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts\n [component]=\"this\"\n [shouldErrorsBeLive]=\"hasLiveUploadErrors()\"\n ></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <!-- PRESTAKIT-309: Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"reference\">\n <div\n *ngFor=\"let document of model; trackBy: trackByDocument\"\n class=\"file file-uploaded\"\n >\n <!-- prettier-ignore -->\n <a [href]=\"multiUploadService.getDownloadUrl(url, document)\">{{ document.filename }}</a>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(document.fileSize) }}\n <abbr\n [title]=\"\n 'foehn-uploader.abbr-megaoctet-title' | fromDictionary\n \"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-uploaded\"\n (click)=\"removeFile(document)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: document.filename }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary uploaded-global-info\"\n *ngIf=\"showGlobalInfos(model)\"\n [innerHTML]=\"getGlobalInfos(model)\"\n ></small>\n </ng-container>\n\n <ng-container *ngIf=\"!reference\">\n <div\n *ngFor=\"let pending of pendingFiles; trackBy: trackByPending\"\n class=\"file file-pending\"\n >\n <span>{{ pending.name }}</span>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(pending.size) }}\n <abbr\n [title]=\"\n 'foehn-uploader.abbr-megaoctet-title' | fromDictionary\n \"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-pending\"\n (click)=\"removeFile(pending)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: pending.name }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary pending-global-info\"\n *ngIf=\"showGlobalInfos(pendingFiles)\"\n [innerHTML]=\"getGlobalInfos(pendingFiles)\"\n ></small>\n </ng-container>\n\n <ng-container *ngIf=\"canAddMoreFiles()\">\n <input\n class=\"form-control-file actual-input\"\n type=\"file\"\n [name]=\"name || label\"\n [multiple]=\"multiple\"\n [attr.accept]=\"\n overrideAcceptedExtensions\n ? overrideAcceptedExtensions\n : uploaderHelper.accept\n ? uploaderHelper.accept\n : null\n \"\n (change)=\"onFileChange($event)\"\n #inputFile\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'sr-only': !showUploadButton }\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n #entryComponent\n >\n {{ multiple ? chooseButtonLabelMultiple : chooseButtonLabel }}\n </button>\n\n <div\n *ngIf=\"dragAndDrop\"\n aria-hidden=\"true\"\n class=\"dropfile\"\n [class.dropfile-border-transparent]=\"showDropZone\"\n (click)=\"inputFile.click()\"\n >\n {{ multiple ? dropZoneLabelMultiple : dropZoneLabel }}\n </div>\n </ng-container>\n\n <foehn-upload-progress-bar\n *ngIf=\"reference\"\n [progressBarTriggerHtmlElement]=\"\n inputElement?.nativeElement || fallBackTrigger\n \"\n ></foehn-upload-progress-bar>\n</div>\n", styles: [".dropfile{width:300px;border:3px dashed #bbb;text-align:center;margin-top:10px;cursor:pointer;padding:15px 3px}.dropfile-border-transparent{border-color:var(--white)}.actual-input{display:none}.file-list{margin-top:20px}.icon-button{border:0;background-color:transparent}.icon-button:hover{cursor:pointer}:host ::ng-deep .svg-inline--fa{color:#000!important}.drop-zone-highlight{outline:3px dashed #bbb}.container-box{border:1px solid #ededed;background-color:#fbfbfb;padding:.5rem}.container-box.vd-form-group-danger{border-left:5px solid var(--vd-danger);padding-left:1rem}\n"] }]
221
228
  }], ctorParameters: function () { return [{ type: i1.MultiUploadService }, { type: i2.PendingUploadService }, { type: i3.ApplicationInfoService }, { type: i4.FoehnConfirmModalService }, { type: i5.SdkDictionaryService }, { type: i6.GrowlBrokerService }]; }, propDecorators: { url: [{
222
229
  type: Input
223
230
  }], reference: [{
224
231
  type: Input
225
- }], shouldDisplayFileSavedConfirmation: [{
226
- type: Input
227
232
  }] } });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbXVsdGktdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi11cGxvYWQvZm9laG4tbXVsdGktdXBsb2FkL2ZvZWhuLW11bHRpLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tdXBsb2FkL2ZvZWhuLW11bHRpLXVwbG9hZC9mb2Vobi1tdWx0aS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsS0FBSyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQ0gsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsR0FBRyxFQUNILFlBQVksRUFDZixNQUFNLGdCQUFnQixDQUFDO0FBSXhCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBSTlFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXRGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7OztBQWtCNUQsTUFBTSxPQUFPLHlCQUNULFNBQVEsOEJBQW1EO0lBZ0IzRCxZQUNJLGtCQUFzQyxFQUN0QyxvQkFBMEMsRUFDaEMsc0JBQThDLEVBQzlDLG1CQUE2QyxFQUM3QyxpQkFBdUMsRUFDdkMsWUFBZ0M7UUFFMUMsS0FBSyxDQUNELHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFlBQVksQ0FDZixDQUFDO1FBVlEsMkJB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RUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUU7S0FDdEUsaURDbkNMLHV2TEEyS0E7MkZEdElhLHlCQUF5QjtrQkFkckMsU0FBUzsrQkFDSSxvQkFBb0IsYUFHbkI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7NEJBQ3hELEtBQUssRUFBRSxJQUFJO3lCQUNkO3dCQUNELEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTt3QkFDN0QsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFO3FCQUN0RTs0UkFNRCxHQUFHO3NCQURGLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGtDQUFrQztzQkFEakMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFTVBUWSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIGNhdGNoRXJyb3IsXG4gICAgZmlsdGVyLFxuICAgIG1lcmdlTWFwLFxuICAgIHRhcCxcbiAgICB0aHJvdHRsZVRpbWVcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGb2VobkNvbmZpcm1Nb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9mb2Vobi1jb25maXJtLW1vZGFsL2ZvZWhuLWNvbmZpcm0tbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBHcm93bEJyb2tlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9mb2Vobi1ncm93bC9ncm93bC1icm9rZXIuc2VydmljZSc7XG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZm9laG4taW5wdXQvZm9laG4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1FcnJvciB9IGZyb20gJy4uLy4uL2Zvcm0tZXJyb3InO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvU2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RGb2VoblVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3QtZm9laG4tdXBsb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERvY3VtZW50UmVmZXJlbmNlIH0gZnJvbSAnLi4vZG9jdW1lbnQtcmVmZXJlbmNlJztcbmltcG9ydCB7IFVwbG9hZFByb2dyZXNzU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLXVwbG9hZC1wcm9ncmVzcy1iYXIvdXBsb2FkLXByb2dyZXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTXVsdGlVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9tdWx0aS11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBEb2N1bWVudEVycm9yLCBEb2N1bWVudHNXaXRoRXJyb3JzIH0gZnJvbSAnLi9tdWx0aS11cGxvYWQudHlwZSc7XG5pbXBvcnQgeyBQZW5kaW5nVXBsb2FkU2VydmljZSB9IGZyb20gJy4vcGVuZGluZy11cGxvYWQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tbXVsdGktdXBsb2FkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4tbXVsdGktdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi4vZm9laG4tdXBsb2FkLmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9laG5JbnB1dENvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvZWhuTXVsdGlVcGxvYWRDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgeyBwcm92aWRlOiBNdWx0aVVwbG9hZFNlcnZpY2UsIHVzZUNsYXNzOiBNdWx0aVVwbG9hZFNlcnZpY2UgfSxcbiAgICAgICAgeyBwcm92aWRlOiBVcGxvYWRQcm9ncmVzc1NlcnZpY2UsIHVzZUNsYXNzOiBVcGxvYWRQcm9ncmVzc1NlcnZpY2UgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5NdWx0aVVwbG9hZENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RGb2VoblVwbG9hZGVyQ29tcG9uZW50PERvY3VtZW50UmVmZXJlbmNlW10+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICB1cmwgPSAnYXBpL2RvY3VtZW50JztcblxuICAgIEBJbnB1dCgpXG4gICAgcmVmZXJlbmNlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHNob3VsZERpc3BsYXlGaWxlU2F2ZWRDb25maXJtYXRpb24gPSB0cnVlO1xuXG4gICAgbXVsdGlVcGxvYWRTZXJ2aWNlOiBNdWx0aVVwbG9hZFNlcnZpY2U7XG4gICAgcGVuZGluZ1VwbG9hZFNlcnZpY2U6IFBlbmRpbmdVcGxvYWRTZXJ2aWNlO1xuXG4gICAgcHJpdmF0ZSBwZW5kaW5nVXBsb2FkZWRFcnJvcnNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBtdWx0aVVwbG9hZFNlcnZpY2U6IE11bHRpVXBsb2FkU2VydmljZSxcbiAgICAgICAgcGVuZGluZ1VwbG9hZFNlcnZpY2U6IFBlbmRpbmdVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGNvbmZpcm1Nb2RhbFNlcnZpY2U6IEZvZWhuQ29uZmlybU1vZGFsU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBTZGtEaWN0aW9uYXJ5U2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGdyb3dsU2VydmljZTogR3Jvd2xCcm9rZXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKFxuICAgICAgICAgICAgYXBwbGljYXRpb25JbmZvU2VydmljZSxcbiAgICAgICAgICAgIGNvbmZpcm1Nb2RhbFNlcnZpY2UsXG4gICAgICAgICAgICBkaWN0aW9uYXJ5U2VydmljZSxcbiAgICAgICAgICAgIGdyb3dsU2VydmljZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnBlbmRpbmdVcGxvYWRTZXJ2aWNlID0gcGVuZGluZ1VwbG9hZFNlcnZpY2U7XG4gICAgICAgIHRoaXMubXVsdGlVcGxvYWRTZXJ2aWNlID0gbXVsdGlVcGxvYWRTZXJ2aWNlO1xuICAgIH1cblxuICAgIGdldCBwZW5kaW5nRmlsZXMoKTogRmlsZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGVuZGluZ1VwbG9hZFNlcnZpY2UuZ2V0UGVuZGluZ0ZpbGVzKHRoaXMubmFtZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICB0aGlzLnBlbmRpbmdVcGxvYWRlZEVycm9yc1N1YnNjcmlwdGlvbiA9IHRoaXMucGVuZGluZ1VwbG9hZFNlcnZpY2UucGVuZGluZ1VwbG9hZGVkRXJyb3JzLnN1YnNjcmliZShcbiAgICAgICAgICAgIChyZXNwb25zZTogRG9jdW1lbnRzV2l0aEVycm9ycykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVBlbmRpbmdVcGxvYWRlZEVycm9yc0Zyb21TZXJ2ZXJCeUZvcm1LZXkoXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICAvLyBBZGQgZmlsZXMgbG9naWNcbiAgICAgICAgdGhpcy51cGxvYWRGaWxlc1N1YnNjcmlwdGlvbiA9IHRoaXMudXBsb2FkRmlsZXNTdWJqZWN0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZmlsZXMgPT4gISFmaWxlcyAmJiB0aGlzLmlzTWF4U2VsZWN0aW9uUmVhY2hlZChmaWxlcykpLFxuICAgICAgICAgICAgICAgIC8vIE9ubHkgb25lIGNhbGwgZXZlcnkgMzAwbXMgdG8gc3RvcCBjb25jdXJyZW50IGFjY2Vzc1xuICAgICAgICAgICAgICAgIHRocm90dGxlVGltZSgzMDApLFxuICAgICAgICAgICAgICAgIC8vIE9ubHkgb25lIGNvbmN1cnJlbnQgY2FsbCBhdCB0aGUgdGltZVxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKFxuICAgICAgICAgICAgICAgICAgICBmaWxlcyA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tdWx0aVVwbG9hZFNlcnZpY2UudXBsb2FkRG9jdW1lbnRzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMua2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG91bGREaXNwbGF5RmlsZVNhdmVkQ29uZmlybWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvcnM6IEZvcm1FcnJvcltdID0gW107XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgc3RhdHVzIH06IGFueSA9IGVycm9yO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVySGVscGVyLmFkZEN1c3RvbUVycm9yT3JEZWZhdWx0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLFxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7c3RhdHVzfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tRXJyb3JzLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vdmVycmlkZUFjY2VwdGVkRXh0ZW5zaW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVNYXhGaWxlTmFtZUxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVJbGxlZ2FsQ2hhcmFjdGVyc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hFcnJvcnMoW2Vycm9ycywgdHJ1ZV0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgZG9jdW1lbnRzLCBlcnJvcnMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVJlc3VsdEZyb21TZXJ2ZXIoZG9jdW1lbnRzLCBlcnJvcnMpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRGVsZXRlIGRvY3VtZW50IGxvZ2ljXG4gICAgICAgIHRoaXMuZGVsZXRlRG9jdW1lbnRTdWJzY3JpcHRpb24gPSB0aGlzLmRlbGV0ZURvY3VtZW50U3ViamVjdFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKGRvY3VtZW50ID0+ICEhZG9jdW1lbnQpLFxuICAgICAgICAgICAgICAgIC8vIE9ubHkgb25lIGNhbGwgZXZlcnkgMzAwIG1zIHRvIHN0b3AgY29uY3VycmVudCBhY2Nlc3NcbiAgICAgICAgICAgICAgICB0aHJvdHRsZVRpbWUoMzAwKSxcbiAgICAgICAgICAgICAgICAvLyBPbmx5IG9uZSBjb25jdXJyZW50IGNhbGwgYXQgdGhlIHRpbWVcbiAgICAgICAgICAgICAgICBtZXJnZU1hcChcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubXVsdGlVcGxvYWRTZXJ2aWNlLmRlbGV0ZURvY3VtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAvLyBTaWRlIGVmZmVjdCBvbmNlIHRoZSBkb2N1bWVudCBoYXMgYmVlbiBkZWxldGVkLlxuICAgICAgICAgICAgICAgIHRhcChkb2N1bWVudCA9PiB0aGlzLnJlbW92ZURvY3VtZW50RnJvbU1vZGVsKGRvY3VtZW50KSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcblxuICAgICAgICBpZiAoISF0aGlzLnBlbmRpbmdVcGxvYWRlZEVycm9yc1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nVXBsb2FkZWRFcnJvcnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRyYWNrQnlQZW5kaW5nKGluZGV4OiBudW1iZXIsIHBlbmRpbmc6IEZpbGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcGVuZGluZy5sYXN0TW9kaWZpZWQ7XG4gICAgfVxuXG4gICAgY2FuQWRkTW9yZUZpbGVzKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwgJiYgISF0aGlzLm1vZGVsLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICF0aGlzLnBlbmRpbmdVcGxvYWRTZXJ2aWNlLmhhc1BlbmRpbmdGaWxlcyh0aGlzLm5hbWUpO1xuICAgIH1cblxuICAgIG9uRmlsZUNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gUFJFU1RBS0lULTMwOTogTWFyayBhcyBwcmlzdGluZSBzbyBlcnJvcnMgY2FuIGJlIHNob3duIGRpcmVjdGx5IHRvIHVzZXIgd2hlbiB1cGxvYWRpbmcgZmlsZVxuICAgICAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0OiBIVE1MSW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIHRoaXMucG9wdWxhdGVGaWxlSXRlbUxpc3QodGFyZ2V0LmZpbGVzKTtcbiAgICAgICAgdGFyZ2V0LnZhbHVlID0gbnVsbDsgLy8gcmVzZXQgaGlkZGVuIGZpbGUgaW5wdXQgdmFsdWVzXG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBvbkRyb3AoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwbG9hZGVySGVscGVyLnByZXZlbnRBbmRTdG9wKGV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ0FuZERyb3ApIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVMaXN0OiBGaWxlTGlzdCA9IHRoaXMudXBsb2FkZXJIZWxwZXIuZ2V0VHJhbnNmZXIoZXZlbnQpO1xuICAgICAgICAgICAgaWYgKGZpbGVMaXN0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZUZpbGVJdGVtTGlzdChmaWxlTGlzdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNob3dEcm9wWm9uZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcm90ZWN0ZWQgcmVtb3ZlRmlsZU9uQ29uZmlybWF0aW9uKGRvY3VtZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCEhdGhpcy5yZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIHN1cGVyLnJlbW92ZUZpbGVPbkNvbmZpcm1hdGlvbihkb2N1bWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBUaGUgZG9jdW1lbnQgaGFzbid0IGJlZW4gdXBsb2FkZWQuXG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdVcGxvYWRTZXJ2aWNlLnJlbW92ZVBlbmRpbmdGaWxlKGRvY3VtZW50LCB0aGlzLm5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwb3B1bGF0ZUZpbGVJdGVtTGlzdChmaWxlTGlzdDogRmlsZUxpc3QpOiB2b2lkIHtcbiAgICAgICAgbGV0IGZpbGVzID0gQXJyYXkuZnJvbShmaWxlTGlzdCk7XG5cbiAgICAgICAgaWYgKCFmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdoZW4gZHJhZy9kcm9wIGFuZCBhc2tlZCBmb3Igc2luZ2xlIHVwbG9hZCwgd2UgZW5zdXJlIHdlIHN0b3JlIG9ubHkgb25lIGZpbGUgZm9yIHVwbG9hZFxuICAgICAgICBpZiAodGhpcy5kcmFnQW5kRHJvcCAmJiAhdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgZmlsZXMgPSB0aGlzLm1hbmFnZVNpbmdsZUZpbGUoZmlsZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGlzcGxheSBsb2NhbCBlcnJvcnMgYW5kIHN0b3AgcHJvY2Vzc2luZ1xuICAgICAgICBjb25zdCBmaWxlc0Vycm9ycyA9IHRoaXMuZGlzcGxheUxvY2FsRXJyb3JzKGZpbGVzKTtcbiAgICAgICAgaWYgKGZpbGVzRXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBtb2RlbCBpZiBlbXB0eVxuICAgICAgICBpZiAoIXRoaXMubW9kZWwgfHwgIXRoaXMubW9kZWwubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsID0gW107XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISF0aGlzLnJlZmVyZW5jZSkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBoYXZlIGEgcmVmZXJlbmNlLCB3ZSBzZW5kIGZpbGVzIHRvIHNlcnZlclxuICAgICAgICAgICAgdGhpcy51cGxvYWRGaWxlc1N1YmplY3QubmV4dChmaWxlcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBQUkVTVEFLSVQtMzA5OiBTaW11bGF0ZSB1c2VyIGludGVyYWN0aW9uIHdpdGggY29tcG9uZW50XG4gICAgICAgICAgICAvLyBvbmx5IHdoZW4gbm8gZXJyb3Igc28gaXNQcmlzdGluZSBpcyBzZXQgdG8gZmFsc2UgZm9yIHZhbGlkYXRpb24gcHVycG9zZVxuICAgICAgICAgICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xuXG4gICAgICAgICAgICAvLyBPdGhlcndpc2UsIHdlIHN0b3JlIGZpbGVzIGluIHBlbmRpbmcgc3RvcmFnZVxuICAgICAgICAgICAgdGhpcy5wZW5kaW5nVXBsb2FkU2VydmljZS5hZGRQZW5kaW5nRmlsZXMoXG4gICAgICAgICAgICAgICAgdGhpcy51cmwsXG4gICAgICAgICAgICAgICAgdGhpcy5uYW1lLFxuICAgICAgICAgICAgICAgIHRoaXMubGFiZWwsXG4gICAgICAgICAgICAgICAgZmlsZXMsXG4gICAgICAgICAgICAgICAgdGhpcy5rZXksXG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aXBsZSxcbiAgICAgICAgICAgICAgICB0aGlzLnNob3VsZERpc3BsYXlGaWxlU2F2ZWRDb25maXJtYXRpb25cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc3BsYXlQZW5kaW5nVXBsb2FkZWRFcnJvcnNGcm9tU2VydmVyQnlGb3JtS2V5KFxuICAgICAgICBlcnJvcnM6IERvY3VtZW50RXJyb3JbXSxcbiAgICAgICAgZm9ybUtleTogc3RyaW5nXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVycm9yc0J5Rm9ybUtleSA9IGVycm9ycy5maWx0ZXIoXG4gICAgICAgICAgICAoZXJyb3I6IERvY3VtZW50RXJyb3IpID0+IGVycm9yLmZvcm1LZXkgPT09IGZvcm1LZXlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5RXJyb3JzRnJvbVNlcnZlcihlcnJvcnNCeUZvcm1LZXkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGlzcGxheVJlc3VsdEZyb21TZXJ2ZXIoXG4gICAgICAgIGRvY3VtZW50czogRG9jdW1lbnRSZWZlcmVuY2VbXSxcbiAgICAgICAgZXJyb3JzOiBEb2N1bWVudEVycm9yW11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5RXJyb3JzRnJvbVNlcnZlcihlcnJvcnMpO1xuICAgICAgICB0aGlzLm1vZGVsID0gWy4uLnRoaXMubW9kZWwsIC4uLihkb2N1bWVudHMgfHwgW10pXTtcbiAgICAgICAgdGhpcy50cmlnZ2VyVXNlcklucHV0KHRoaXMubW9kZWwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlRG9jdW1lbnRGcm9tTW9kZWwoZG9jdW1lbnQ6IERvY3VtZW50UmVmZXJlbmNlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tb2RlbC5pbmRleE9mKGRvY3VtZW50KTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSBbLi4udGhpcy5tb2RlbF07XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJVc2VySW5wdXQodGhpcy5tb2RlbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc3BsYXlFcnJvcnNGcm9tU2VydmVyKGVycm9yczogRG9jdW1lbnRFcnJvcltdKTogdm9pZCB7XG4gICAgICAgIGlmICghZXJyb3JzIHx8ICFlcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBQUkVTVEFLSVQtMzA5OiBTaW11bGF0ZSB1c2VyIGludGVyYWN0aW9uIHdpdGggY29tcG9uZW50XG4gICAgICAgICAgICAvLyBvbmx5IHdoZW4gbm8gZXJyb3Igc28gaXNQcmlzdGluZSBpcyBzZXQgdG8gZmFsc2UgZm9yIHZhbGlkYXRpb24gcHVycG9zZVxuICAgICAgICAgICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3RXJyb3JzOiBGb3JtRXJyb3JbXSA9IFtdO1xuICAgICAgICBlcnJvcnMuZm9yRWFjaChlcnJvciA9PlxuICAgICAgICAgICAgdGhpcy51cGxvYWRlckhlbHBlci5hZGRDdXN0b21FcnJvck9yRGVmYXVsdChcbiAgICAgICAgICAgICAgICB0aGlzLm5hbWUsXG4gICAgICAgICAgICAgICAgbmV3RXJyb3JzLFxuICAgICAgICAgICAgICAgIGAke2Vycm9yLmVycm9yQ29kZX1gLFxuICAgICAgICAgICAgICAgIGVycm9yLmxhYmVsLFxuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tRXJyb3JzLFxuICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVBY2NlcHRlZEV4dGVuc2lvbnMsXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVycmlkZU1heEZpbGVOYW1lTGVuZ3RoLFxuICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVJbGxlZ2FsQ2hhcmFjdGVyc1xuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMucmVmcmVzaEVycm9ycyhbbmV3RXJyb3JzLCB0cnVlXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYW5hZ2VTaW5nbGVGaWxlKGZpbGVzOiBGaWxlW10pOiBGaWxlW10ge1xuICAgICAgICAvLyBFZGdlIGJyb3dzZXIgbGV0cyB5b3UgZHJvcCBmaWxlcyBmcm9tIGRpYWxvZyBib3ggd2hlbiBzZWxlY3RpbmcgYSBmaWxlLlxuICAgICAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSBvbmx5IGtlZXAgbGFzdCBzZWxlY3RlZCBmaWxlIGZyb20gdXNlclxuICAgICAgICBpZiAoISF0aGlzLnJlZmVyZW5jZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwgJiYgdGhpcy5tb2RlbC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudE1vZGVsRmlsZXMgPSBbLi4udGhpcy5tb2RlbF07XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgICAgICBjdXJyZW50TW9kZWxGaWxlcy5mb3JFYWNoKChkb2M6IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVGaWxlT25Db25maXJtYXRpb24oZG9jKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50UGVuZGluZ0ZpbGVzID0gWy4uLnRoaXMucGVuZGluZ0ZpbGVzXTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UGVuZGluZ0ZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgIGN1cnJlbnRQZW5kaW5nRmlsZXMuZm9yRWFjaCgoZG9jOiBhbnkpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlRmlsZU9uQ29uZmlybWF0aW9uKGRvYylcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFRoZW4gd2UgZW5zdXJlIHdlIHRha2Ugb25seSBvbmUgZmlsZSBmcm9tIGN1cnJlbnQgc2VsZWN0aW9uXG4gICAgICAgIHJldHVybiBmaWxlcy5zbGljZSgwLCAxKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbY2xhc3MuZHJvcC16b25lLWhpZ2hsaWdodF09XCJzaG93RHJvcFpvbmVcIlxuICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoJ0NvbnRhaW5lcicpXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgKGRyYWdlbnRlcik9XCJvbkRyYWdlbnRlcigkZXZlbnQpXCJcbiAgICAoZHJhZ2xlYXZlKT1cIm9uRHJhZ2xlYXZlKCRldmVudClcIlxuICAgIChkcmFnb3Zlcik9XCJvbkRyYWdvdmVyKCRldmVudClcIlxuICAgICNmYWxsQmFja1RyaWdnZXJcbj5cbiAgICA8bGFiZWxcbiAgICAgICAgW2F0dHIuZm9yXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgKm5nSWY9XCIhIWxhYmVsXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiaXNMYWJlbFNyT25seSA/ICdzci1vbmx5JyA6IGxhYmVsU3R5bGVNb2RpZmllclwiXG4gICAgPlxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImxhYmVsXCI+PC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCIhcmVxdWlyZWQgJiYgIWhpZGVOb3RSZXF1aXJlZEV4dHJhTGFiZWxcIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgJ2ZvZWhuLWlucHV0Lm9wdGlvbmFsJyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuXG4gICAgPGZvZWhuLXZhbGlkYXRpb24tYWxlcnRzXG4gICAgICAgIFtjb21wb25lbnRdPVwidGhpc1wiXG4gICAgICAgIFtzaG91bGRFcnJvcnNCZUxpdmVdPVwiaGFzTGl2ZVVwbG9hZEVycm9ycygpXCJcbiAgICA+PC9mb2Vobi12YWxpZGF0aW9uLWFsZXJ0cz5cblxuICAgIDxzbWFsbFxuICAgICAgICAqbmdJZj1cImhlbHBUZXh0XCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnSGVscCdcIlxuICAgICAgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiaGVscFRleHRcIlxuICAgID48L3NtYWxsPlxuXG4gICAgPCEtLSBQUkVTVEFLSVQtMzA5OiBGYWtlIGlucHV0IHdpdGggTmdNb2RlbCB0byBiZSByZWdpc3RlcmVkIGludG8gRm9ybSBjb250cm9scyAtLT5cbiAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIFtuYW1lXT1cIm5hbWUgfHwgbGFiZWxcIiBbbmdNb2RlbF09XCJtb2RlbFwiIC8+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVmZXJlbmNlXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkb2N1bWVudCBvZiBtb2RlbDsgdHJhY2tCeTogdHJhY2tCeURvY3VtZW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZSBmaWxlLXVwbG9hZGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPCEtLSBwcmV0dGllci1pZ25vcmUgLS0+XG4gICAgICAgICAgICA8YSBbaHJlZl09XCJtdWx0aVVwbG9hZFNlcnZpY2UuZ2V0RG93bmxvYWRVcmwodXJsLCBkb2N1bWVudClcIj57eyBkb2N1bWVudC5maWxlbmFtZSB9fTwvYT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMSBtci0xXCI+XG4gICAgICAgICAgICAgICAgKHt7IHRvTWVnYU9jdGV0cyhkb2N1bWVudC5maWxlU2l6ZSkgfX1cbiAgICAgICAgICAgICAgICA8YWJiclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAnZm9laG4tdXBsb2FkZXIuYWJici1tZWdhb2N0ZXQtdGl0bGUnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdmb2Vobi11cGxvYWRlci5hYmJyLW1lZ2FvY3RldCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgICAgIDwvYWJicj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhcmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGljb24tYnV0dG9uIGRlbGV0ZS11cGxvYWRlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZpbGUoZG9jdW1lbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi10aW1lc1xuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAnZm9laG4tdXBsb2FkZXIuZGVsZXRlLWljb24tdGl0bGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeTogeyBkb2NOYW1lOiBkb2N1bWVudC5maWxlbmFtZSB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvZm9laG4taWNvbi10aW1lcz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c21hbGxcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5IHVwbG9hZGVkLWdsb2JhbC1pbmZvXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0dsb2JhbEluZm9zKG1vZGVsKVwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldEdsb2JhbEluZm9zKG1vZGVsKVwiXG4gICAgICAgID48L3NtYWxsPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFyZWZlcmVuY2VcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBlbmRpbmcgb2YgcGVuZGluZ0ZpbGVzOyB0cmFja0J5OiB0cmFja0J5UGVuZGluZ1wiXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUgZmlsZS1wZW5kaW5nXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3sgcGVuZGluZy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0xIG1yLTFcIj5cbiAgICAgICAgICAgICAgICAoe3sgdG9NZWdhT2N0ZXRzKHBlbmRpbmcuc2l6ZSkgfX1cbiAgICAgICAgICAgICAgICA8YWJiclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAnZm9laG4tdXBsb2FkZXIuYWJici1tZWdhb2N0ZXQtdGl0bGUnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdmb2Vobi11cGxvYWRlci5hYmJyLW1lZ2FvY3RldCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgICAgIDwvYWJicj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhcmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGljb24tYnV0dG9uIGRlbGV0ZS1wZW5kaW5nXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRmlsZShwZW5kaW5nKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZvZWhuLWljb24tdGltZXNcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXVwbG9hZGVyLmRlbGV0ZS1pY29uLXRpdGxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnk6IHsgZG9jTmFtZTogcGVuZGluZy5uYW1lIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9mb2Vobi1pY29uLXRpbWVzPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxzbWFsbFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1zZWNvbmRhcnkgcGVuZGluZy1nbG9iYWwtaW5mb1wiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dHbG9iYWxJbmZvcyhwZW5kaW5nRmlsZXMpXCJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiZ2V0R2xvYmFsSW5mb3MocGVuZGluZ0ZpbGVzKVwiXG4gICAgICAgID48L3NtYWxsPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhbkFkZE1vcmVGaWxlcygpXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZmlsZSBhY3R1YWwtaW5wdXRcIlxuICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiXG4gICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgICAgICAgW2F0dHIuYWNjZXB0XT1cIlxuICAgICAgICAgICAgICAgIG92ZXJyaWRlQWNjZXB0ZWRFeHRlbnNpb25zXG4gICAgICAgICAgICAgICAgICAgID8gb3ZlcnJpZGVBY2NlcHRlZEV4dGVuc2lvbnNcbiAgICAgICAgICAgICAgICAgICAgOiB1cGxvYWRlckhlbHBlci5hY2NlcHRcbiAgICAgICAgICAgICAgICAgICAgPyB1cGxvYWRlckhlbHBlci5hY2NlcHRcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAjaW5wdXRGaWxlXG4gICAgICAgIC8+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdzci1vbmx5JzogIXNob3dVcGxvYWRCdXR0b24gfVwiXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImJ1aWxkSWQoJ0Vycm9yc0NvbnRhaW5lcicpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJpbnB1dEZpbGUuY2xpY2soKVwiXG4gICAgICAgICAgICAjZW50cnlDb21wb25lbnRcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgbXVsdGlwbGUgPyBjaG9vc2VCdXR0b25MYWJlbE11bHRpcGxlIDogY2hvb3NlQnV0dG9uTGFiZWwgfX1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJkcmFnQW5kRHJvcFwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZmlsZVwiXG4gICAgICAgICAgICBbY2xhc3MuZHJvcGZpbGUtYm9yZGVyLXRyYW5zcGFyZW50XT1cInNob3dEcm9wWm9uZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaW5wdXRGaWxlLmNsaWNrKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBtdWx0aXBsZSA/IGRyb3Bab25lTGFiZWxNdWx0aXBsZSA6IGRyb3Bab25lTGFiZWwgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8Zm9laG4tdXBsb2FkLXByb2dyZXNzLWJhclxuICAgICAgICAqbmdJZj1cInJlZmVyZW5jZVwiXG4gICAgICAgIFtwcm9ncmVzc0JhclRyaWdnZXJIdG1sRWxlbWVudF09XCJcbiAgICAgICAgICAgIGlucHV0RWxlbWVudD8ubmF0aXZlRWxlbWVudCB8fCBmYWxsQmFja1RyaWdnZXJcbiAgICAgICAgXCJcbiAgICA+PC9mb2Vobi11cGxvYWQtcHJvZ3Jlc3MtYmFyPlxuPC9kaXY+XG4iXX0=
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbXVsdGktdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi11cGxvYWQvZm9laG4tbXVsdGktdXBsb2FkL2ZvZWhuLW11bHRpLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tdXBsb2FkL2ZvZWhuLW11bHRpLXVwbG9hZC9mb2Vobi1tdWx0aS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsS0FBSyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQ0gsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsR0FBRyxFQUNILFlBQVksRUFDZixNQUFNLGdCQUFnQixDQUFDO0FBSXhCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBSTlFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXRGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7OztBQWtCNUQsTUFBTSxPQUFPLHlCQUNULFNBQVEsOEJBQW1EO0lBYTNELFlBQ0ksa0JBQXNDLEVBQ3RDLG9CQUEwQyxFQUNoQyxzQkFBOEMsRUFDOUMsbUJBQTZDLEVBQzdDLGlCQUF1QyxFQUN2QyxZQUFnQztRQUUxQyxLQUFLLENBQ0Qsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsWUFBWSxDQUNmLENBQUM7UUFWUSwyQkFB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SyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDOztzSEFoVFEseUJBQXlCOzBHQUF6Qix5QkFBeUIsNkZBVnZCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7WUFDeEQsS0FBSyxFQUFFLElBQUk7U0FDZDtRQUNELEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtRQUM3RCxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUU7S0FDdEUsaURDbkNMLHF3TEEyS0E7MkZEdElhLHlCQUF5QjtrQkFkckMsU0FBUzsrQkFDSSxvQkFBb0IsYUFHbkI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7NEJBQ3hELEtBQUssRUFBRSxJQUFJO3lCQUNkO3dCQUNELEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTt3QkFDN0QsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFO3FCQUN0RTs0UkFNRCxHQUFHO3NCQURGLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVNUFRZLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgY2F0Y2hFcnJvcixcbiAgICBmaWx0ZXIsXG4gICAgbWVyZ2VNYXAsXG4gICAgdGFwLFxuICAgIHRocm90dGxlVGltZVxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZvZWhuQ29uZmlybU1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uL2ZvZWhuLWNvbmZpcm0tbW9kYWwvZm9laG4tY29uZmlybS1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyb3dsQnJva2VyU2VydmljZSB9IGZyb20gJy4uLy4uL2ZvZWhuLWdyb3dsL2dyb3dsLWJyb2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUVycm9yIH0gZnJvbSAnLi4vLi4vZm9ybS1lcnJvcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2RrLWRpY3Rpb25hcnkvc2RrLWRpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZvZWhuVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC1mb2Vobi11cGxvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9jdW1lbnRSZWZlcmVuY2UgfSBmcm9tICcuLi9kb2N1bWVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgVXBsb2FkUHJvZ3Jlc3NTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tdXBsb2FkLXByb2dyZXNzLWJhci91cGxvYWQtcHJvZ3Jlc3Muc2VydmljZSc7XG5pbXBvcnQgeyBNdWx0aVVwbG9hZFNlcnZpY2UgfSBmcm9tICcuL211bHRpLXVwbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IERvY3VtZW50RXJyb3IsIERvY3VtZW50c1dpdGhFcnJvcnMgfSBmcm9tICcuL211bHRpLXVwbG9hZC50eXBlJztcbmltcG9ydCB7IFBlbmRpbmdVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9wZW5kaW5nLXVwbG9hZC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1tdWx0aS11cGxvYWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1tdWx0aS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi9mb2Vobi11cGxvYWQuY29tcG9uZW50LmNzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGb2VobklucHV0Q29tcG9uZW50LFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9laG5NdWx0aVVwbG9hZENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7IHByb3ZpZGU6IE11bHRpVXBsb2FkU2VydmljZSwgdXNlQ2xhc3M6IE11bHRpVXBsb2FkU2VydmljZSB9LFxuICAgICAgICB7IHByb3ZpZGU6IFVwbG9hZFByb2dyZXNzU2VydmljZSwgdXNlQ2xhc3M6IFVwbG9hZFByb2dyZXNzU2VydmljZSB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2Vobk11bHRpVXBsb2FkQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdEZvZWhuVXBsb2FkZXJDb21wb25lbnQ8RG9jdW1lbnRSZWZlcmVuY2VbXT5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKVxuICAgIHVybCA9ICdhcGkvZG9jdW1lbnQnO1xuXG4gICAgQElucHV0KClcbiAgICByZWZlcmVuY2U6IHN0cmluZztcblxuICAgIG11bHRpVXBsb2FkU2VydmljZTogTXVsdGlVcGxvYWRTZXJ2aWNlO1xuICAgIHBlbmRpbmdVcGxvYWRTZXJ2aWNlOiBQZW5kaW5nVXBsb2FkU2VydmljZTtcblxuICAgIHByaXZhdGUgcGVuZGluZ1VwbG9hZGVkRXJyb3JzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgbXVsdGlVcGxvYWRTZXJ2aWNlOiBNdWx0aVVwbG9hZFNlcnZpY2UsXG4gICAgICAgIHBlbmRpbmdVcGxvYWRTZXJ2aWNlOiBQZW5kaW5nVXBsb2FkU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBjb25maXJtTW9kYWxTZXJ2aWNlOiBGb2VobkNvbmZpcm1Nb2RhbFNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogU2RrRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBncm93bFNlcnZpY2U6IEdyb3dsQnJva2VyU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2UsXG4gICAgICAgICAgICBjb25maXJtTW9kYWxTZXJ2aWNlLFxuICAgICAgICAgICAgZGljdGlvbmFyeVNlcnZpY2UsXG4gICAgICAgICAgICBncm93bFNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5wZW5kaW5nVXBsb2FkU2VydmljZSA9IHBlbmRpbmdVcGxvYWRTZXJ2aWNlO1xuICAgICAgICB0aGlzLm11bHRpVXBsb2FkU2VydmljZSA9IG11bHRpVXBsb2FkU2VydmljZTtcbiAgICB9XG5cbiAgICBnZXQgcGVuZGluZ0ZpbGVzKCk6IEZpbGVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBlbmRpbmdVcGxvYWRTZXJ2aWNlLmdldFBlbmRpbmdGaWxlcyh0aGlzLm5hbWUpO1xuICAgIH1cblxuICAgIGdldCBhZGRlZEZpbGVzKCk6IEZpbGVbXSB8IERvY3VtZW50UmVmZXJlbmNlW10ge1xuICAgICAgICBpZiAodGhpcy5wZW5kaW5nVXBsb2FkU2VydmljZS5oYXNQZW5kaW5nRmlsZXModGhpcy5uYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGVuZGluZ0ZpbGVzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhIXRoaXMubW9kZWwgPyB0aGlzLm1vZGVsIDogW107XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICB0aGlzLnBlbmRpbmdVcGxvYWRlZEVycm9yc1N1YnNjcmlwdGlvbiA9IHRoaXMucGVuZGluZ1VwbG9hZFNlcnZpY2UucGVuZGluZ1VwbG9hZGVkRXJyb3JzLnN1YnNjcmliZShcbiAgICAgICAgICAgIChyZXNwb25zZTogRG9jdW1lbnRzV2l0aEVycm9ycykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVBlbmRpbmdVcGxvYWRlZEVycm9yc0Zyb21TZXJ2ZXJCeUZvcm1LZXkoXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICAvLyBBZGQgZmlsZXMgbG9naWNcbiAgICAgICAgdGhpcy51cGxvYWRGaWxlc1N1YnNjcmlwdGlvbiA9IHRoaXMudXBsb2FkRmlsZXNTdWJqZWN0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZmlsZXMgPT4gISFmaWxlcyAmJiB0aGlzLmlzTWF4U2VsZWN0aW9uUmVhY2hlZChmaWxlcykpLFxuICAgICAgICAgICAgICAgIC8vIE9ubHkgb25lIGNhbGwgZXZlcnkgMzAwbXMgdG8gc3RvcCBjb25jdXJyZW50IGFjY2Vzc1xuICAgICAgICAgICAgICAgIHRocm90dGxlVGltZSgzMDApLFxuICAgICAgICAgICAgICAgIC8vIE9ubHkgb25lIGNvbmN1cnJlbnQgY2FsbCBhdCB0aGUgdGltZVxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKFxuICAgICAgICAgICAgICAgICAgICBmaWxlcyA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tdWx0aVVwbG9hZFNlcnZpY2UudXBsb2FkRG9jdW1lbnRzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMua2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG91bGREaXNwbGF5RmlsZVNhdmVkQ29uZmlybWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvcnM6IEZvcm1FcnJvcltdID0gW107XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgc3RhdHVzIH06IGFueSA9IGVycm9yO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVySGVscGVyLmFkZEN1c3RvbUVycm9yT3JEZWZhdWx0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLFxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7c3RhdHVzfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tRXJyb3JzLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vdmVycmlkZUFjY2VwdGVkRXh0ZW5zaW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVNYXhGaWxlTmFtZUxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVJbGxlZ2FsQ2hhcmFjdGVyc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hFcnJvcnMoW2Vycm9ycywgdHJ1ZV0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgZG9jdW1lbnRzLCBlcnJvcnMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVJlc3VsdEZyb21TZXJ2ZXIoZG9jdW1lbnRzLCBlcnJvcnMpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRGVsZXRlIGRvY3VtZW50IGxvZ2ljXG4gICAgICAgIHRoaXMuZGVsZXRlRG9jdW1lbnRTdWJzY3JpcHRpb24gPSB0aGlzLmRlbGV0ZURvY3VtZW50U3ViamVjdFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKGRvY3VtZW50ID0+ICEhZG9jdW1lbnQpLFxuICAgICAgICAgICAgICAgIC8vIE9ubHkgb25lIGNhbGwgZXZlcnkgMzAwIG1zIHRvIHN0b3AgY29uY3VycmVudCBhY2Nlc3NcbiAgICAgICAgICAgICAgICB0aHJvdHRsZVRpbWUoMzAwKSxcbiAgICAgICAgICAgICAgICAvLyBPbmx5IG9uZSBjb25jdXJyZW50IGNhbGwgYXQgdGhlIHRpbWVcbiAgICAgICAgICAgICAgICBtZXJnZU1hcChcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubXVsdGlVcGxvYWRTZXJ2aWNlLmRlbGV0ZURvY3VtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAvLyBTaWRlIGVmZmVjdCBvbmNlIHRoZSBkb2N1bWVudCBoYXMgYmVlbiBkZWxldGVkLlxuICAgICAgICAgICAgICAgIHRhcChkb2N1bWVudCA9PiB0aGlzLnJlbW92ZURvY3VtZW50RnJvbU1vZGVsKGRvY3VtZW50KSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcblxuICAgICAgICBpZiAoISF0aGlzLnBlbmRpbmdVcGxvYWRlZEVycm9yc1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nVXBsb2FkZWRFcnJvcnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRyYWNrQnlQZW5kaW5nKGluZGV4OiBudW1iZXIsIHBlbmRpbmc6IEZpbGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcGVuZGluZy5sYXN0TW9kaWZpZWQ7XG4gICAgfVxuXG4gICAgY2FuQWRkTW9yZUZpbGVzKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwgJiYgISF0aGlzLm1vZGVsLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICF0aGlzLnBlbmRpbmdVcGxvYWRTZXJ2aWNlLmhhc1BlbmRpbmdGaWxlcyh0aGlzLm5hbWUpO1xuICAgIH1cblxuICAgIG9uRmlsZUNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gUFJFU1RBS0lULTMwOTogTWFyayBhcyBwcmlzdGluZSBzbyBlcnJvcnMgY2FuIGJlIHNob3duIGRpcmVjdGx5IHRvIHVzZXIgd2hlbiB1cGxvYWRpbmcgZmlsZVxuICAgICAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0OiBIVE1MSW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIHRoaXMucG9wdWxhdGVGaWxlSXRlbUxpc3QodGFyZ2V0LmZpbGVzKTtcbiAgICAgICAgdGFyZ2V0LnZhbHVlID0gbnVsbDsgLy8gcmVzZXQgaGlkZGVuIGZpbGUgaW5wdXQgdmFsdWVzXG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBvbkRyb3AoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwbG9hZGVySGVscGVyLnByZXZlbnRBbmRTdG9wKGV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ0FuZERyb3ApIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVMaXN0OiBGaWxlTGlzdCA9IHRoaXMudXBsb2FkZXJIZWxwZXIuZ2V0VHJhbnNmZXIoZXZlbnQpO1xuICAgICAgICAgICAgaWYgKGZpbGVMaXN0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZUZpbGVJdGVtTGlzdChmaWxlTGlzdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNob3dEcm9wWm9uZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcm90ZWN0ZWQgcmVtb3ZlRmlsZU9uQ29uZmlybWF0aW9uKGRvY3VtZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCEhdGhpcy5yZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIHN1cGVyLnJlbW92ZUZpbGVPbkNvbmZpcm1hdGlvbihkb2N1bWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBUaGUgZG9jdW1lbnQgaGFzbid0IGJlZW4gdXBsb2FkZWQuXG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdVcGxvYWRTZXJ2aWNlLnJlbW92ZVBlbmRpbmdGaWxlKGRvY3VtZW50LCB0aGlzLm5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwb3B1bGF0ZUZpbGVJdGVtTGlzdChmaWxlTGlzdDogRmlsZUxpc3QpOiB2b2lkIHtcbiAgICAgICAgbGV0IGZpbGVzID0gQXJyYXkuZnJvbShmaWxlTGlzdCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWZpbGVzLmxlbmd0aCB8fFxuICAgICAgICAgICAgdGhpcy5pc01heEZpbGVzQ291bnRSZWFjaGVkKGZpbGVzKSB8fFxuICAgICAgICAgICAgdGhpcy5pc01heEZpbGVzU2l6ZVJlYWNoZWQoZmlsZXMpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2hlbiBkcmFnL2Ryb3AgYW5kIGFza2VkIGZvciBzaW5nbGUgdXBsb2FkLCB3ZSBlbnN1cmUgd2Ugc3RvcmUgb25seSBvbmUgZmlsZSBmb3IgdXBsb2FkXG4gICAgICAgIGlmICh0aGlzLmRyYWdBbmREcm9wICYmICF0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICBmaWxlcyA9IHRoaXMubWFuYWdlU2luZ2xlRmlsZShmaWxlcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEaXNwbGF5IGxvY2FsIGVycm9ycyBhbmQgc3RvcCBwcm9jZXNzaW5nXG4gICAgICAgIGNvbnN0IGZpbGVzRXJyb3JzID0gdGhpcy5kaXNwbGF5TG9jYWxFcnJvcnMoZmlsZXMpO1xuICAgICAgICBpZiAoZmlsZXNFcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbml0aWFsaXplIG1vZGVsIGlmIGVtcHR5XG4gICAgICAgIGlmICghdGhpcy5tb2RlbCB8fCAhdGhpcy5tb2RlbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghIXRoaXMucmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGhhdmUgYSByZWZlcmVuY2UsIHdlIHNlbmQgZmlsZXMgdG8gc2VydmVyXG4gICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVzU3ViamVjdC5uZXh0KGZpbGVzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFBSRVNUQUtJVC0zMDk6IFNpbXVsYXRlIHVzZXIgaW50ZXJhY3Rpb24gd2l0aCBjb21wb25lbnRcbiAgICAgICAgICAgIC8vIG9ubHkgd2hlbiBubyBlcnJvciBzbyBpc1ByaXN0aW5lIGlzIHNldCB0byBmYWxzZSBmb3IgdmFsaWRhdGlvbiBwdXJwb3NlXG4gICAgICAgICAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XG5cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgd2Ugc3RvcmUgZmlsZXMgaW4gcGVuZGluZyBzdG9yYWdlXG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdVcGxvYWRTZXJ2aWNlLmFkZFBlbmRpbmdGaWxlcyhcbiAgICAgICAgICAgICAgICB0aGlzLnVybCxcbiAgICAgICAgICAgICAgICB0aGlzLm5hbWUsXG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbCxcbiAgICAgICAgICAgICAgICBmaWxlcyxcbiAgICAgICAgICAgICAgICB0aGlzLmtleSxcbiAgICAgICAgICAgICAgICB0aGlzLm11bHRpcGxlLFxuICAgICAgICAgICAgICAgIHRoaXMuc2hvdWxkRGlzcGxheUZpbGVTYXZlZENvbmZpcm1hdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZGlzcGxheVBlbmRpbmdVcGxvYWRlZEVycm9yc0Zyb21TZXJ2ZXJCeUZvcm1LZXkoXG4gICAgICAgIGVycm9yczogRG9jdW1lbnRFcnJvcltdLFxuICAgICAgICBmb3JtS2V5OiBzdHJpbmdcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXJyb3JzQnlGb3JtS2V5ID0gZXJyb3JzLmZpbHRlcihcbiAgICAgICAgICAgIChlcnJvcjogRG9jdW1lbnRFcnJvcikgPT4gZXJyb3IuZm9ybUtleSA9PT0gZm9ybUtleVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmRpc3BsYXlFcnJvcnNGcm9tU2VydmVyKGVycm9yc0J5Rm9ybUtleSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNwbGF5UmVzdWx0RnJvbVNlcnZlcihcbiAgICAgICAgZG9jdW1lbnRzOiBEb2N1bWVudFJlZmVyZW5jZVtdLFxuICAgICAgICBlcnJvcnM6IERvY3VtZW50RXJyb3JbXVxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc3BsYXlFcnJvcnNGcm9tU2VydmVyKGVycm9ycyk7XG4gICAgICAgIHRoaXMubW9kZWwgPSBbLi4udGhpcy5tb2RlbCwgLi4uKGRvY3VtZW50cyB8fCBbXSldO1xuICAgICAgICB0aGlzLnRyaWdnZXJVc2VySW5wdXQodGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVEb2N1bWVudEZyb21Nb2RlbChkb2N1bWVudDogRG9jdW1lbnRSZWZlcmVuY2UpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1vZGVsLmluZGV4T2YoZG9jdW1lbnQpO1xuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IFsuLi50aGlzLm1vZGVsXTtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlclVzZXJJbnB1dCh0aGlzLm1vZGVsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZGlzcGxheUVycm9yc0Zyb21TZXJ2ZXIoZXJyb3JzOiBEb2N1bWVudEVycm9yW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFlcnJvcnMgfHwgIWVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIFBSRVNUQUtJVC0zMDk6IFNpbXVsYXRlIHVzZXIgaW50ZXJhY3Rpb24gd2l0aCBjb21wb25lbnRcbiAgICAgICAgICAgIC8vIG9ubHkgd2hlbiBubyBlcnJvciBzbyBpc1ByaXN0aW5lIGlzIHNldCB0byBmYWxzZSBmb3IgdmFsaWRhdGlvbiBwdXJwb3NlXG4gICAgICAgICAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdFcnJvcnM6IEZvcm1FcnJvcltdID0gW107XG4gICAgICAgIGVycm9ycy5mb3JFYWNoKGVycm9yID0+XG4gICAgICAgICAgICB0aGlzLnVwbG9hZGVySGVscGVyLmFkZEN1c3RvbUVycm9yT3JEZWZhdWx0KFxuICAgICAgICAgICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICBuZXdFcnJvcnMsXG4gICAgICAgICAgICAgICAgYCR7ZXJyb3IuZXJyb3JDb2RlfWAsXG4gICAgICAgICAgICAgICAgZXJyb3IubGFiZWwsXG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21FcnJvcnMsXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVycmlkZUFjY2VwdGVkRXh0ZW5zaW9ucyxcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlTWF4RmlsZU5hbWVMZW5ndGgsXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVycmlkZUlsbGVnYWxDaGFyYWN0ZXJzXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yZWZyZXNoRXJyb3JzKFtuZXdFcnJvcnMsIHRydWVdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hbmFnZVNpbmdsZUZpbGUoZmlsZXM6IEZpbGVbXSk6IEZpbGVbXSB7XG4gICAgICAgIC8vIEVkZ2UgYnJvd3NlciBsZXRzIHlvdSBkcm9wIGZpbGVzIGZyb20gZGlhbG9nIGJveCB3aGVuIHNlbGVjdGluZyBhIGZpbGUuXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHdlIG9ubHkga2VlcCBsYXN0IHNlbGVjdGVkIGZpbGUgZnJvbSB1c2VyXG4gICAgICAgIGlmICghIXRoaXMucmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbCAmJiB0aGlzLm1vZGVsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50TW9kZWxGaWxlcyA9IFsuLi50aGlzLm1vZGVsXTtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgIGN1cnJlbnRNb2RlbEZpbGVzLmZvckVhY2goKGRvYzogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUZpbGVPbkNvbmZpcm1hdGlvbihkb2MpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRQZW5kaW5nRmlsZXMgPSBbLi4udGhpcy5wZW5kaW5nRmlsZXNdO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRQZW5kaW5nRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgY3VycmVudFBlbmRpbmdGaWxlcy5mb3JFYWNoKChkb2M6IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVGaWxlT25Db25maXJtYXRpb24oZG9jKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gVGhlbiB3ZSBlbnN1cmUgd2UgdGFrZSBvbmx5IG9uZSBmaWxlIGZyb20gY3VycmVudCBzZWxlY3Rpb25cbiAgICAgICAgcmV0dXJuIGZpbGVzLnNsaWNlKDAsIDEpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAgY29udGFpbmVyLWJveFwiXG4gICAgW2NsYXNzLmhhcy1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIFtjbGFzcy52ZC1mb3JtLWdyb3VwLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLmRyb3Atem9uZS1oaWdobGlnaHRdPVwic2hvd0Ryb3Bab25lXCJcbiAgICBbYXR0ci5pZF09XCJidWlsZElkKCdDb250YWluZXInKVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxuICAgIChkcmFnZW50ZXIpPVwib25EcmFnZW50ZXIoJGV2ZW50KVwiXG4gICAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdsZWF2ZSgkZXZlbnQpXCJcbiAgICAoZHJhZ292ZXIpPVwib25EcmFnb3ZlcigkZXZlbnQpXCJcbiAgICAjZmFsbEJhY2tUcmlnZ2VyXG4+XG4gICAgPGxhYmVsXG4gICAgICAgIFthdHRyLmZvcl09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICpuZ0lmPVwiISFsYWJlbFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImlzTGFiZWxTck9ubHkgPyAnc3Itb25seScgOiBsYWJlbFN0eWxlTW9kaWZpZXJcIlxuICAgID5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiIXJlcXVpcmVkICYmICFoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7ICdmb2Vobi1pbnB1dC5vcHRpb25hbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cblxuICAgIDxmb2Vobi12YWxpZGF0aW9uLWFsZXJ0c1xuICAgICAgICBbY29tcG9uZW50XT1cInRoaXNcIlxuICAgICAgICBbc2hvdWxkRXJyb3JzQmVMaXZlXT1cImhhc0xpdmVVcGxvYWRFcnJvcnMoKVwiXG4gICAgPjwvZm9laG4tdmFsaWRhdGlvbi1hbGVydHM+XG5cbiAgICA8c21hbGxcbiAgICAgICAgKm5nSWY9XCJoZWxwVGV4dFwiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpICsgJ0hlbHAnXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImhlbHBUZXh0XCJcbiAgICA+PC9zbWFsbD5cblxuICAgIDwhLS0gUFJFU1RBS0lULTMwOTogRmFrZSBpbnB1dCB3aXRoIE5nTW9kZWwgdG8gYmUgcmVnaXN0ZXJlZCBpbnRvIEZvcm0gY29udHJvbHMgLS0+XG4gICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCIgW25nTW9kZWxdPVwibW9kZWxcIiAvPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlZmVyZW5jZVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZG9jdW1lbnQgb2YgbW9kZWw7IHRyYWNrQnk6IHRyYWNrQnlEb2N1bWVudFwiXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUgZmlsZS11cGxvYWRlZFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDwhLS0gcHJldHRpZXItaWdub3JlIC0tPlxuICAgICAgICAgICAgPGEgW2hyZWZdPVwibXVsdGlVcGxvYWRTZXJ2aWNlLmdldERvd25sb2FkVXJsKHVybCwgZG9jdW1lbnQpXCI+e3sgZG9jdW1lbnQuZmlsZW5hbWUgfX08L2E+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTEgbXItMVwiPlxuICAgICAgICAgICAgICAgICh7eyB0b01lZ2FPY3RldHMoZG9jdW1lbnQuZmlsZVNpemUpIH19XG4gICAgICAgICAgICAgICAgPGFiYnJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXVwbG9hZGVyLmFiYnItbWVnYW9jdGV0LXRpdGxlJyB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyAnZm9laG4tdXBsb2FkZXIuYWJici1tZWdhb2N0ZXQnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgICAgICA8L2FiYnI+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBpY29uLWJ1dHRvbiBkZWxldGUtdXBsb2FkZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGaWxlKGRvY3VtZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZvZWhuLWljb24tdGltZXNcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXVwbG9hZGVyLmRlbGV0ZS1pY29uLXRpdGxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnk6IHsgZG9jTmFtZTogZG9jdW1lbnQuZmlsZW5hbWUgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L2ZvZWhuLWljb24tdGltZXM+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LXNlY29uZGFyeSB1cGxvYWRlZC1nbG9iYWwtaW5mb1wiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dHbG9iYWxJbmZvcyhtb2RlbClcIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJnZXRHbG9iYWxJbmZvcyhtb2RlbClcIlxuICAgICAgICA+PC9zbWFsbD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcmVmZXJlbmNlXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwZW5kaW5nIG9mIHBlbmRpbmdGaWxlczsgdHJhY2tCeTogdHJhY2tCeVBlbmRpbmdcIlxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlIGZpbGUtcGVuZGluZ1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPnt7IHBlbmRpbmcubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMSBtci0xXCI+XG4gICAgICAgICAgICAgICAgKHt7IHRvTWVnYU9jdGV0cyhwZW5kaW5nLnNpemUpIH19XG4gICAgICAgICAgICAgICAgPGFiYnJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXVwbG9hZGVyLmFiYnItbWVnYW9jdGV0LXRpdGxlJyB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyAnZm9laG4tdXBsb2FkZXIuYWJici1tZWdhb2N0ZXQnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgICAgICA8L2FiYnI+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBpY29uLWJ1dHRvbiBkZWxldGUtcGVuZGluZ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZpbGUocGVuZGluZylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLXRpbWVzXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICdmb2Vobi11cGxvYWRlci5kZWxldGUtaWNvbi10aXRsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5OiB7IGRvY05hbWU6IHBlbmRpbmcubmFtZSB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvZm9laG4taWNvbi10aW1lcz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c21hbGxcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5IHBlbmRpbmctZ2xvYmFsLWluZm9cIlxuICAgICAgICAgICAgKm5nSWY9XCJzaG93R2xvYmFsSW5mb3MocGVuZGluZ0ZpbGVzKVwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldEdsb2JhbEluZm9zKHBlbmRpbmdGaWxlcylcIlxuICAgICAgICA+PC9zbWFsbD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYW5BZGRNb3JlRmlsZXMoKVwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sLWZpbGUgYWN0dWFsLWlucHV0XCJcbiAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgIFtuYW1lXT1cIm5hbWUgfHwgbGFiZWxcIlxuICAgICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgICAgIFthdHRyLmFjY2VwdF09XCJcbiAgICAgICAgICAgICAgICBvdmVycmlkZUFjY2VwdGVkRXh0ZW5zaW9uc1xuICAgICAgICAgICAgICAgICAgICA/IG92ZXJyaWRlQWNjZXB0ZWRFeHRlbnNpb25zXG4gICAgICAgICAgICAgICAgICAgIDogdXBsb2FkZXJIZWxwZXIuYWNjZXB0XG4gICAgICAgICAgICAgICAgICAgID8gdXBsb2FkZXJIZWxwZXIuYWNjZXB0XG4gICAgICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgI2lucHV0RmlsZVxuICAgICAgICAvPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc3Itb25seSc6ICFzaG93VXBsb2FkQnV0dG9uIH1cIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpIHx8IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJidWlsZElkKCdFcnJvcnNDb250YWluZXInKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaW5wdXRGaWxlLmNsaWNrKClcIlxuICAgICAgICAgICAgI2VudHJ5Q29tcG9uZW50XG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IG11bHRpcGxlID8gY2hvb3NlQnV0dG9uTGFiZWxNdWx0aXBsZSA6IGNob29zZUJ1dHRvbkxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiZHJhZ0FuZERyb3BcIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZHJvcGZpbGVcIlxuICAgICAgICAgICAgW2NsYXNzLmRyb3BmaWxlLWJvcmRlci10cmFuc3BhcmVudF09XCJzaG93RHJvcFpvbmVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImlucHV0RmlsZS5jbGljaygpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgbXVsdGlwbGUgPyBkcm9wWm9uZUxhYmVsTXVsdGlwbGUgOiBkcm9wWm9uZUxhYmVsIH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGZvZWhuLXVwbG9hZC1wcm9ncmVzcy1iYXJcbiAgICAgICAgKm5nSWY9XCJyZWZlcmVuY2VcIlxuICAgICAgICBbcHJvZ3Jlc3NCYXJUcmlnZ2VySHRtbEVsZW1lbnRdPVwiXG4gICAgICAgICAgICBpbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQgfHwgZmFsbEJhY2tUcmlnZ2VyXG4gICAgICAgIFwiXG4gICAgPjwvZm9laG4tdXBsb2FkLXByb2dyZXNzLWJhcj5cbjwvZGl2PlxuIl19
@@ -141,6 +141,8 @@ export const DEFAULT_DICTIONARY = {
141
141
  'foehn-uploader.abbr-megaoctet-title': 'Megaoctet',
142
142
  'foehn-uploader.delete-icon-title': 'Supprimer {docName}',
143
143
  'foehn-uploader.max-upload-selection-reached': 'Vous ne pouvez pas télécharger plus de {maxSelection} fichiers à la fois.',
144
+ 'foehn-uploader.max-files-count-reached': 'Le nombre total de fichiers téléchargés ne doit pas dépasser {maxFilesCount} fichiers.',
145
+ 'foehn-uploader.max-files-size-reached': 'La taille totale des fichiers téléchargés ne doit pas dépasser {maxFilesSizeInMo} Megaoctets (Mo).',
144
146
  'foehn-uploader.files-saved-success-message': '{successfulDocumentsCount} fichier(s) sauvegardé(s) avec succès',
145
147
  'foehn-uploader.transmission-error-message': 'Une erreur est survenue lors de la transmission de vos documents',
146
148
  'foehn-uploader.files-deleted-success-message': 'Suppression du fichier {filename} réussie',
@@ -237,4 +239,4 @@ export const DEFAULT_DICTIONARY = {
237
239
  'espace-securise.menu.item.deconnection.label': 'Se déconnecter',
238
240
  'espace-securise.menu.item.deconnection.title': 'Se déconnecter'
239
241
  };
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1kaWN0aW9uYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1kaWN0aW9uYXJ5L2RlZmF1bHQtZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBbUI7SUFDOUMsb0NBQW9DLEVBQ2hDLDhDQUE4QztJQUNsRCw2QkFBNkIsRUFDekIsNkRBQTZEO0lBQ2pFLG9DQUFvQyxFQUFFLFFBQVE7SUFDOUMsMkNBQTJDLEVBQ3ZDLHdDQUF3QztJQUM1QyxzQ0FBc0MsRUFBRSxXQUFXO0lBQ25ELHFDQUFxQyxFQUFFLGtDQUFrQztJQUN6RSw2Q0FBNkMsRUFBRSxzQkFBc0I7SUFDckUsNkNBQTZDLEVBQUUsaUJBQWlCO0lBQ2hFLDBDQUEwQyxFQUFFLFNBQVM7SUFDckQseUNBQXlDLEVBQ3JDLHlEQUF5RDtJQUM3RCxtQ0FBbUMsRUFDL0Isa0VBQWtFO0lBQ3RFLGtDQUFrQyxFQUM5QixpREFBaUQ7UUFDakQsaUdBQWlHO1FBQ2pHLHdFQUF3RTtJQUM1RSxzQ0FBc0MsRUFDbEMsOEVBQThFO1FBQzlFLG9EQUFvRDtJQUN4RCx3Q0FBd0MsRUFBRSxLQUFLO0lBQy9DLHVDQUF1QyxFQUFFLEtBQUs7SUFDOUMseUNBQXlDLEVBQ3JDLEVBQUU7UUFDRiwrR0FBK0c7UUFDL0csUUFBUTtRQUNSLGlHQUFpRztJQUNyRyxzQkFBc0IsRUFBRSxjQUFjO0lBQ3RDLGdDQUFnQyxFQUFFLHdCQUF3QjtJQUMxRCw0QkFBNEIsRUFBRSxNQUFNO0lBQ3BDLDhCQUE4QixFQUFFLE1BQU07SUFDdEMsNkJBQTZCLEVBQUUsT0FBTztJQUN0QywrQkFBK0IsRUFBRSxNQUFNO0lBQ3ZDLGlDQUFpQyxFQUM3QixpREFBaUQ7UUFDakQsaUZBQWlGO0lBQ3JGLDhCQUE4QixFQUFFLE9BQU87SUFDdkMsZ0NBQWdDLEVBQUUsU0FB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QUFxQjtJQUNyRSxzQ0FBc0MsRUFBRSx1QkFBdUI7SUFDL0QsdUJBQXVCLEVBQUUscUNBQXFDO0lBQzlELHlCQUF5QixFQUFFLDZCQUE2QjtJQUN4RCx5Q0FBeUMsRUFBRSxTQUFTO0lBQ3BELHlDQUF5QyxFQUFFLFNBQVM7SUFDcEQsNkNBQTZDLEVBQUUsYUFBYTtJQUM1RCw2Q0FBNkMsRUFBRSxhQUFhO0lBQzVELGdEQUFnRCxFQUFFLG1CQUFtQjtJQUNyRSxnREFBZ0QsRUFBRSxtQkFBbUI7SUFDckUsNkRBQTZELEVBQ3pELDZDQUE2QztJQUNqRCw2REFBNkQsRUFDekQsNkNBQTZDO0lBQ2pELHdEQUF3RCxFQUNwRCxvQ0FBb0M7SUFDeEMsd0RBQXdELEVBQ3BELG9DQUFvQztJQUN4Qyw4Q0FBOEMsRUFBRSxnQkFBZ0I7SUFDaEUsOENBQThDLEVBQUUsZ0JBQWdCO0NBQ25FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQgeyBEaWN0aW9uYXJ5VHlwZSB9IGZyb20gJy4vc2RrLWRpY3Rpb25hcnkuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0RJQ1RJT05BUlk6IERpY3Rpb25hcnlUeXBlID0ge1xuICAgICdkcmFmdC1jb250YWluZXIuYnV0dG9uLnNob3ctZHJhZnRzJzpcbiAgICAgICAgJ0RlbWFuZGVzIGVuIGNvdXJzIGRlIHNhaXNpZSA6IHtkcmFmdHNMZW5ndGh9JyxcbiAgICAnZHJhZnQtY29udGFpbmVyLm1vZGFsLnRpdGxlJzpcbiAgICAgICAgJ0lsIGV4aXN0ZSBkw6lqw6AgdW5lIG91IHBsdXNpZXVycyBkZW1hbmRlcyBlbiBjb3VycyBkZSBzYWlzaWUnLFxuICAgICdkcmFmdC1jb250YWluZXIubW9kYWwuY2xvc2UuYnV0dG9uJzogJ0Zlcm1lcicsXG4gICAgJ2RyYWZ0LWNvbnRhaW5lci5tb2RhbC5kcmFmdHMtaW4tZXMuYnV0dG9uJzpcbiAgICAgICAgJ1RvdXRlcyBtZXMgZGVtYW5kZXMgZW4gY291cnMgZGUgc2Fpc2llJyxcbiAgICAnZHJhZnQtY29udGFpbmVyLmxpc3QucmVmZXJlbmNlLmxhYmVsJzogJ1LDqWbDqXJlbmNlJyxcbiAgICAnZHJhZnQtY29udGFpbmVyLmxpc3QucmVmZXJlbmNlLmxpbmsnOiAnUmVwcmVuZHJlIGxhIGRlbWFuZGUge3JlZmVyZW5jZX0nLFxuICAgICdkcmFmdC1jb250YWluZXIubGlzdC5tb2RpZmljYXRpb25EYXRlLmxhYmVsJzogJ0RhdGUgZGUgbW9kaWZpY2F0aW9uJyxcbiAgICAnZHJhZnQtY29udGFpbmVyLmxpc3QucmVmZXJlbmNlSW50ZXJuZS5sYWJlbCc6ICdWb3RyZSByw6lmw6lyZW5jZScsXG4gICAgJ2RyYWZ0LWNvbnRhaW5lci5saXN0LmRldGFpbHMtaW4tZXMubGFiZWwnOiAnRMOpdGFpbHMnLFxuICAgICdkcmFmdC1jb250YWluZXIubGlzdC5kZXRhaWxzLWluLWVzLmxpbmsnOlxuICAgICAgICBcIkNvbnN1bHRlciBsYSBkZW1hbmRlIHtyZWZlcmVuY2V9IGRhbnMgbCdlc3BhY2Ugc8OpY3VyaXPDqVwiLFxuICAgICdmb2Vobi1kZWNpc2lvbi1lbGVjdHJvbmlxdWUudGl0bGUnOlxuICAgICAgICAnQXV0b3Jpc2F0aW9uIGRlIG5vdGlmaWNhdGlvbiBkZXMgZMOpY2lzaW9ucyBwYXIgdm9pZSDDqWxlY3Ryb25pcXVlJyxcbiAgICAnZm9laG4tZGVjaXNpb24tZWxlY3Ryb25pcXVlLmluZm8nOlxuICAgICAgICAnVm90cmUgZGVtYW5kZSBlc3Qgc3VyIGxlIHBvaW50IGTigJnDqnRyZSBlbnZvecOpZS4gJyArXG4gICAgICAgICdDb25mb3Jtw6ltZW50IMOgIGzigJlhcnQuIDQ0YSBMUEEtVkQsIGzigJlhdXRvcml0w6kgcGV1dCBub3RpZmllciBzZXMgZMOpY2lzaW9ucyBwYXIgdm9pZSDDqWxlY3Ryb25pcXVlICcgK1xuICAgICAgICAnYXV4IHBhcnRpZXMgcXVpIG9udCBkb25uw6kgbGV1ciBhY2NvcmQgZXhwbGljaXRlIMOgIGNldHRlIGNvbW11bmljYXRpb24uJyxcbiAgICAnZm9laG4tZGVjaXNpb24tZWxlY3Ryb25pcXVlLnF1ZXN0aW9uJzpcbiAgICAgICAgJ0FjY2VwdGV6LXZvdXMgcXVlIGzigJlhdXRvcml0w6kgY29tcMOpdGVudGUgcG91ciBsZSB0cmFpdGVtZW50IGRlIHZvdHJlIGRlbWFuZGUgJyArXG4gICAgICAgICd2b3VzIG5vdGlmaWUgc2VzIGTDqWNpc2lvbnMgcGFyIHZvaWUgw6lsZWN0cm9uaXF1ZSA/JyxcbiAgICAnZm9laG4tZGVjaXNpb24tZWxlY3Ryb25pcXVlLmFuc3dlci55ZXMnOiAnT3VpJyxcbiAgICAnZm9laG4tZGVjaXNpb24tZWxlY3Ryb25pcXVlLmFuc3dlci5ubyc6ICdOb24nLFxuICAgICdmb2Vobi1kZWNpc2lvbi1lbGVjdHJvbmlxdWUuYW5zd2VyLmluZm8nOlxuICAgICAgICAnJyArXG4gICAgICAgICdTaSB2b3VzIGNsaXF1ZXogc3VyIMKrIE91aSDCuywgdm91cyBhdXRvcmlzZXogbOKAmWF1dG9yaXTDqSDDoCB2b3VzIG5vdGlmaWVyIHNlcyBkw6ljaXNpb25zIHN1ciBsZSBwb3J0YWlsIHPDqWN1cmlzw6kuJyArXG4gICAgICAgICc8YnIgLz4nICtcbiAgICAgICAgJ1NpIHZvdXMgY2xpcXVleiBzdXIgwqsgTm9uIMK7LCB2b3VzIHJlZnVzZXogbGEgbm90aWZpY2F0aW9uIGRlIGTDqWNpc2lvbnMgc3VyIGxlIHBvcnRhaWwgc8OpY3VyaXPDqS4nLFxuICAgICdmb2Vobi1pbnB1dC5vcHRpb25hbCc6ICcoZmFjdWx0YXRpZiknLFxuICAgICdmb2Vobi1pbnB1dC5jbGVhci1idXR0b24ubGFiZWwnOiAnUsOpaW5pdGlhbGlzZXIgbGUgY2hhbXAnLFxuICAgICdmb2Vobi1pbnB1dC1kYXRlLmRheS5sYWJlbCc6ICdKb3VyJyxcbiAgICAnZm9laG4taW5wdXQtZGF0ZS5tb250aC5sYWJlbCc6ICdNb2lzJyxcbiAgICAnZm9laG4taW5wdXQtZGF0ZS55ZWFyLmxhYmVsJzogJ0FubsOpZScsXG4gICAgJ2ZvZWhuLWlucHV0LWVtYWlsLm1vZGFsLnRpdGxlJzogJ0FpZGUnLFxuICAgICdmb2Vobi1pbnB1dC1lbWFpbC5tb2RhbC5jb250ZW50JzpcbiAgICAgICAgXCI8cD5Wb3VzIG4nYXJyaXZleiBwYXMgw6Agc2Fpc2lyIHZvdHJlIG1haWwgPzwvcD5cIiArXG4gICAgICAgICc8cD5NZXJjaSBkXFwnw6ljcmlyZSDDoCA8YSBocmVmPVwibWFpbHRvOmluZm8uY3liZXJAdmQuY2hcIj5pbmZvLmN5YmVyQHZkLmNoPC9hPjwvcD4nLFxuICAgICdmb2Vobi1pbnB1dC10aW1lLmhvdXJzLmxhYmVsJzogJ0hldXJlJyxcbiAgICAnZm9laG4taW5wdXQtdGltZS5taW51dGVzLmxhYmVsJzogJ01pbnV0ZXMnLFxuICAgICdmb2Vobi1pbnB1dC1udW1iZXIuc3RhbmRhcmQtaGVscC10ZXh0LmxhYmVsJzpcbiAgICAgICAgJ1NhaXNpciB1biBub21icmUgZW50cmUge21pblZhbHVlfSBldCB7bWF4VmFsdWV9JyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5jb3VudHJ5LmxhYmVsJzogJ1BheXMnLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmxvY2FsaXR5LmxhYmVsJzogJ05QQSwgTG9jYWxpdMOpJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5zdHJlZXQuaGVscC10ZXh0JzogJ0V4ZW1wbGUgOiBBdmVudWUgZGUgbGEgU2FsbGF6JyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5zdHJlZXQubGFiZWwnOiAnUnVlJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5ob3VzZU51bWJlci5sYWJlbCc6ICdOdW3DqXJvIGRlIHJ1ZScsXG4gICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3MuaG91c2VOdW1iZXIuaGVscC10ZXh0JzpcbiAgICAgICAgXCJFeGVtcGxlIDogNDAgcG91ciB1bmUgYWRyZXNzZSDDoCBsJ0F2ZW51ZSBkZSBsYSBTYWxsYXogNDBcIixcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5wb3N0T2ZmaWNlQm94VGV4dC5sYWJlbCc6ICdDYXNlIHBvc3RhbGUnLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLnBvc3RPZmZpY2VCb3hUZXh0LmhlbHAtdGV4dCc6XG4gICAgICAgICdFeGVtcGxlIDogQ2FzZSBwb3N0YWxlIDEyMiBvdSBDUDEyMiBvdSBDUCAxMjInLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmFkZHJlc3NMaW5lMS5sYWJlbCc6ICdjL28nLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmFkZHJlc3NMaW5lMi5sYWJlbCc6IFwiQ29tcGzDqW1lbnQgZCdhZHJlc3NlXCIsXG4gICAgJ2ZvZWhuLWlucHV0LWZvcmVpZ24tbG9jYWxpdHkuemlwQ29kZS5sYWJlbCc6ICdDb2RlIHBvc3RhbCcsXG4gICAgJ2ZvZWhuLWlucHV0LWZvcmVpZ24tbG9jYWxpdHkubG9jYWxpdHkubGFiZWwnOiAnTG9jYWxpdMOpJyxcbiAgICAnZm9laG4tbmF2aWdhdGlvbi5uZXh0LmxhYmVsJzogJ1N1aXZhbnQnLFxuICAgICdmb2Vobi1uYXZpZ2F0aW9uLnByZXZpb3VzLmxhYmVsJzogJ1Byw6ljw6lkZW50JyxcbiAgICAnZm9laG4tbmF2aWdhdGlvbi50cmFuc21pdC5sYWJlbCc6ICdUcmFuc21ldHRyZScsXG4gICAgJ2ZvZWhuLW5hdmlnYXRpb24uY29udGludWUtbGF0ZXIubGFiZWwnOlxuICAgICAgICAnRW52b3llciB1biBsaWVuIHBvdXIgcmVwcmVuZHJlIGNldHRlIGRlbWFuZGUgcGx1cyB0YXJkJyxcbiAgICAnZm9laG4tbmF2aWdhdGlvbi5yb3V0ZS5pbmRleC5zZXBhcmF0b3InOiAnc3VyJyxcbiAgICAnZm9laG4tcGFnZS5icm93c2VyLW5vdC1zdXBwb3J0ZWQnOlxuICAgICAgICAnQ2V0dGUgcHJlc3RhdGlvbiBu4oCZZXN0IHBhcyBjb21wYXRpYmxlIGF2ZWMgdm90cmUgbmF2aWdhdGV1ci4nLFxuICAgICdmb2Vobi1wYWdlLmJyb3dzZXItZG93bmxvYWQtaW52aXRhdGlvbic6XG4gICAgICAgICdOb3VzIHZvdXMgaW52aXRvbnMgw6AgdXRpbGlzZXIgdW5lIHZlcnNpb24gcsOpY2VudGUgZGUnLFxuICAgICdmb2Vobi1wYWdlLmNvbnRpbnVlLXdpdGgtc2FtZS1icm93c2VyJzogJ0NvbnRpbnVlciBhdmVjIGNlIG5hdmlnYXRldXInLFxuICAgICdmb2Vobi1wYWdlLmJyb3dzZXItZG93bmxvYWQtbGlzdC5vdSc6ICdvdScsXG4gICAgJ2ZvZWhuLXBhZ2UuZXh0ZXJuYWwtbGluay5zck9ubHknOiAnKGxpZW4gZXh0ZXJuZSknLFxuICAgICdmb2Vobi1wYWdlLWNvdW50ZXIubGFiZWwnOiAnUGFnZSB7Y3VycmVudFBhZ2V9IGRlIHtwYWdlQ291bnR9JyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi50aXRsZSc6ICdDb25maXJtYXRpb24nLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnN1Y2Nlc3MtbGFiZWwnOiAnRGVtYW5kZSB0cmFuc21pc2UnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLm5leHQtc3RlcC5zdWNjZXNzLWxhYmVsJzogJ1LDqXBvbnNlIHRyYW5zbWlzZScsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uYWJvcnQtbGFiZWwnOiAnRGVtYW5kZSBhYmFuZG9ubsOpZScsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24ucmVmZXJlbmNlLXRpdGxlLmxhYmVsJzpcbiAgICAgICAgJ0xlIG51bcOpcm8gZGUgcsOpZsOpcmVuY2UgZGUgdm90cmUgZGVtYW5kZSBlc3QnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLm1haWwtc2VudC5sYWJlbCc6XG4gICAgICAgICdWb3VzIHJlY2V2cmV6IHVuIGVtYWlsIGRlIGNvbmZpcm1hdGlvbiBkYW5zIHF1ZWxxdWVzIGluc3RhbnRzLicsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZG93bmxvYWQtcGRmLXJlY2FwLWJ1dHRvbic6XG4gICAgICAgICdUw6lsw6ljaGFyZ2VyIGxhIGRlbWFuZGUgKHBkZiknLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmV4aXQtYnV0dG9uJzogJ1Rlcm1pbmVyJyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5leGl0LWJ1dHRvbi1jb25uZWN0ZWQnOiAnU2UgZMOpY29ubmVjdGVyJyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5leHRyYS1jb250ZW50JzogJyAnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnRyYW5zbWlzc2lvbi1pbmZvcm1hdGlvbi5sYWJlbCc6XG4gICAgICAgICdJbmZvcm1hdGlvbiBzdWl0ZSDDoCBsYSB0cmFuc21pc3Npb24gZGUgdm90cmUgZGVtYW5kZScsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZGVtYW5kLWRldGFpbC1saW5rLmxhYmVsJzpcbiAgICAgICAgJ1ZvdXMgcG91dmV6IGNvbnN1bHRlciB2b3RyZSBkZW1hbmRlIGVuIGNsaXF1YW50IHN1ciA6JyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5kZW1hbmQtcHJvY2Vzc2luZy1wcm9ncmVzcy1saW5rLmxhYmVsJzpcbiAgICAgICAgXCJWb3VzIHBvdXZleiBzdWl2cmUgbCdhdmFuY2VtZW50IGR1IHRyYWl0ZW1lbnQgZGUgdm90cmUgZGVtYW5kZSBcIiArXG4gICAgICAgICdlbiBjbGlxdWFudCBzdXIgOicsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZGVtYW5kLWluLXByb2dyZXNzLnRpdGxlJzogJ0RlbWFuZGUgZW4gY291cnMnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnJlc3VtZS1teS1kZW1hbmQubGFiZWwnOlxuICAgICAgICAnVm91cyBwb3V2ZXogcmVwcmVuZHJlIHZvdHJlIGRlbWFuZGUgZW4gY2xpcXVhbnQgc3VyIGxlIGxpZW4gY2ktZGVzc291cycsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24ucmVzdW1lLW15LWRlbWFuZC5idXR0b24nOiAnUmVwcmVuZHJlIG1hIGRlbWFuZGUnLFxuICAgICdnZXNkZW0uZG93bmxvYWQtcGRmLmJ1dHRvbi50aXRsZSc6ICdUw6lsw6ljaGFyZ2VyIGxlIFBERicsXG4gICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktbG9naW4uc2F2ZS5sYWJlbCc6XG4gICAgICAgICdMZXMgZG9ubsOpZXMgZGUgdm90cmUgZGVtYW5kZSBlbnJlZ2lzdHLDqWUgbGUge2RhdGV9IG9udCDDqXTDqSBjaGFyZ8OpZXMuJyxcbiAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1sb2dpbi5pbnZhbGlkLW90cC5sYWJlbCc6XG4gICAgICAgIFwiTGUgbW90IGRlIHBhc3NlIHNhaXNpIG4nZXN0IHBhcyB2YWxpZGVcIixcbiAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1sb2dpbi5wYXNzd29yZC1nZW5lcmF0aW9uLWZhaWxlZC5sYWJlbCc6XG4gICAgICAgICdJbXBvc3NpYmxlIGRlIGfDqW7DqXJlciB1biBtb3QgZGUgcGFzc2UsIHZldWlsbGV6IHLDqWVzc2F5ZXIgcGx1cyB0YXJkLicsXG4gICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktbG9naW4uZXhwaXJlZC1zZXNzaW9uLmxhYmVsJzpcbiAgICAgICAgJ1ZvdHJlIHNlc3Npb24gYSBleHBpcsOpLCB2ZXVpbGxleiByZWNvbW1lbmNlciB2b3RyZSBzYWlzaWUnLFxuICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5jdXJyZW50LWluZm8ucHJldmlldyc6XG4gICAgICAgICdVbiBsaWVuIGRlIHJlcHJpc2UgYSDDqXTDqSBlbnZvecOpIMOgIDxpPntyZWNvdmVyeU1haWx9PC9pPiAoe2xhc3RSZWdpc3RyYXRpb259KScsXG4gICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm5vdC1jb25uZWN0ZWQuY3VycmVudC1pbmZvJzpcbiAgICAgICAgJzxwPlVuIGxpZW4gZGUgcmVwcmlzZSB2b3VzIGEgw6l0w6kgZW52b3nDqSDDoCBsYSBkYXRlIHN1aXZhbnRlIDogPHN0cm9uZz57bGFzdFJlZ2lzdHJhdGlvbn08L3N0cm9uZz48L3A+JyArXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgICc8cD5MYSBkZW1hbmRlIHBvdXJyYSDDqnRyZSByZXByaXNlIHBlbmRhbnQgPHN0cm9uZz57ZHJhZnREZW1SZXRlbnRpb25EYXlzUHVibGljfSBqb3Vyczwvc3Ryb25nPiwgZW5zdWl0ZSBlbGxlIHNlcmEgc3VwcHJpbcOpZSBkw6lmaW5pdGl2ZW1lbnQgZHUgcG9ydGFpbC48L3A+JyArXG4gICAgICAgICc8cD5Wb3VsZXotdm91cyByZW52b3llciB1biBsaWVuID8gPGJyLz4nICtcbiAgICAgICAgXCJWb3VzIHBvdXZleiBhdXNzaSBjaGFuZ2VyIGwnYWRyZXNzZSBkZSBkZXN0aW5hdGlvbiBldCBsZSBudW3DqXJvIGRlIG1vYmlsZSBwb3VyIGxhIHJlcHJpc2U8L3A+XCIsXG4gICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm1vZGFsSGVhZGVyVGV4dCc6XG4gICAgICAgICdJbmZvcm1hdGlvbnMgcG91ciBsYSByZXByaXNlIGRlIGxhIGRlbWFuZGUnLFxuICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5jb25uZWN0ZWQuaW5mbyc6XG4gICAgICAgICc8cD5Wb3MgZG9ubsOpZXMgb250IMOpdMOpIHNhdXZlZ2FyZMOpZXMsIHZvdXMgcG91dmV6IGFjY8OpZGVyIMOgIGNldHRlIGRlbWFuZGUgZGFucyBsYSBsaXN0ZSA6JyxcbiAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29ubmVjdGVkLmluZm8uZHJhZnQtbGluay10ZXh0JzpcbiAgICAgICAgJ2RlbWFuZGVzIGVuIGNvdXJzIGRlIHNhaXNpZScsXG4gICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm5vdC1jb25uZWN0ZWQubm90LXJlZ2lzdGVyZWQuaW5mbyc6XG4gICAgICAgICc8cD5Wb3VzIGF2ZXogbGEgcG9zc2liaWxpdMOpIGRlIHJlcHJlbmRyZSB2b3RyZSBkZW1hbmRlIHBsdXMgdGFyZCBlbiBjb21wbMOpdGFudCBjZSBmb3JtdWxhaXJlLjwvcD4nICtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgJzxwPkxhIGRlbWFuZGUgcG91cnJhIMOqdHJlIHJlcHJpc2UgcGVuZGFudCA8c3Ryb25nPntkcmFmdERlbVJldGVudGlvbkRheXNQdWJsaWN9IGpvdXJzPC9zdHJvbmc+LCBlbnN1aXRlIGVsbGUgc2VyYSBzdXBwcmltw6llIGTDqWZpbml0aXZlbWVudCBkdSBwb3J0YWlsLjwvcD4nICtcbiAgICAgICAgJzxwIGNsYXNzPVwic21hbGwgbWItMFwiPicgK1xuICAgICAgICBcIjxpPkxlcyBpbmZvcm1hdGlvbnMgZGVtYW5kw6llcyBzb250IHVuaXF1ZW1lbnQgdXRpbGlzw6llcyBwb3VyIHZvdXMgcGVybWV0dHJlIGQnZWZmZWN0dWVyIGxhIHJlcHJpc2UgZGUgZGVtYW5kZS48L2k+XCIgK1xuICAgICAgICAnPC9wPicsXG4gICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm5vdC1jb25uZWN0ZWQuaW5mby5zZW50JzpcbiAgICAgICAgXCI8cD5VbiBtZXNzYWdlIGNvbnRlbmFudCBsZSBsaWVuIGRlIHJlcHJpc2UgZGUgbGEgZGVtYW5kZSBhIMOpdMOpIGVudm95w6kgw6AgbCdhZHJlc3NlIDxzdHJvbmc+e3JlY292ZXJ5TWFpbH08L3N0cm9uZz4uPC9wPlwiICtcbiAgICAgICAgJzxwPicgK1xuICAgICAgICAnVm91cyBwb3V2ZXogY2xpcXVlciBzdXIgY2UgbGllbiBwb3VyIHJlcHJlbmRyZSBsYSBkZW1hbmRlIGVuIHNhaXNpc3NhbnQgbGUgY29kZSBxdWkgc2VyYSBlbnZvecOpIGF1ICcgK1xuICAgICAgICAnPHN0cm9uZz57cmVjb3ZlcnlNb2JpbGV9PC9zdHJvbmc+LicgK1xuICAgICAgICAnPC9wPicgK1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICAnPHA+TGEgZGVtYW5kZSBwb3VycmEgw6p0cmUgcmVwcmlzZSBwZW5kYW50IDxzdHJvbmc+e2RyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpY30gam91cnM8L3N0cm9uZz4sIGVuc3VpdGUgZWxsZSBzZXJhIHN1cHByaW3DqWUgZMOpZmluaXRpdmVtZW50IGR1IHBvcnRhaWwuPC9wPicsXG4gICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm5vdC1jb25uZWN0ZWQuZW1haWwubGFiZWwnOiAnRW1haWwnLFxuICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLmVtYWlsLmhlbHAtdGV4dCc6XG4gICAgICAgICdQYXIgZXhlbXBsZSwgam9obkBkb2UuY2gnLFxuICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLm1vYmlsZS5sYWJlbCc6XG4gICAgICAgICdOdW3DqXJvIGRlIHTDqWzDqXBob25lIG1vYmlsZScsXG4gICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm5vdC1jb25uZWN0ZWQucmVmZXJlbmNlLWludGVybmUubGFiZWwnOlxuICAgICAgICAnVm90cmUgcsOpZsOpcmVuY2UnLFxuICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLnJlZmVyZW5jZS1pbnRlcm5lLmhlbHAtdGV4dCc6XG4gICAgICAgICdWb3RyZSByw6lmw6lyZW5jZSBzZXJhIHV0aWxpc8OpZSBjb21tZSBvYmpldCBkdSBtZXNzYWdlIHF1aSB2b3VzIHNlcmEgZW52b3nDqSBldCB2b3VzIHBlcm1ldHRyYSBkZSByZXRyb3V2ZXIgZmFjaWxlbWVudCBjZSBtZXNzYWdlJyxcbiAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY2FuY2VsLmJ1dHRvbic6ICdGZXJtZXInLFxuICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5zYXZlLmJ1dHRvbic6ICdTYXV2ZWdhcmRlcicsXG4gICAgJ2dlc2RlbS1oYW5kbGVyLnNhdmUtY29uZmlybWF0aW9uLmxhYmVsJzpcbiAgICAgICAgJ1ZvcyBkb25uw6llcyBvbnQgw6l0w6kgc2F1dmVnYXJkw6llcyBkYW5zIHZvdHJlIGVzcGFjZSBzw6ljdXJpc8OpJyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXItYnV0dG9uLmljb24tdGl0bGUnOiAnQWZmaWNoZXIgbGUgY2FsZW5kcmllcicsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLWJ1dHRvbi5zY3JlZW4tcmVhZGVyLnNlbGVjdGVkLWRhdGUnOlxuICAgICAgICAnRGF0ZSBzw6lsZWN0aW9ubsOpZSA6IHtzZWxlY3RlZERhdGV9JyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIuY29udGFpbmVyLmFyaWEtbGFiZWwnOiAnQ2FsZW5kcmllcicsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLmNsb3NlLWJ1dHRvbi5hcmlhLWxhYmVsJzogJ0Zlcm1lciBsZSBjYWxlbmRyaWVyJyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIucHJldmlvdXMtbW9udGgtYnV0dG9uLnRpdGxlJzogJ01vaXMgcHLDqWPDqWRlbnQnLFxuICAgICdmb2Vobi1kYXRlLXBpY2tlci5uZXh0LW1vbnRoLWJ1dHRvbi50aXRsZSc6ICdNb2lzIHN1aXZhbnQnLFxuICAgICdmb2Vobi1kYXRlLXBpY2tlci5zY3JlZW4tcmVhZGVyLmFjdHVhbC1tb250aC1kaXNwbGF5ZWQnOlxuICAgICAgICAnTW9pcyBhY3R1ZWxsZW1lbnQgYWZmaWNow6kgOicsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLnNjcmVlbi1yZWFkZXIubW9udGgtaW5wdXQubGFiZWwnOiAnU8OpbGVjdGlvbm5lciB1biBtb2lzJyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIuc2NyZWVuLXJlYWRlci55ZWFyLWlucHV0LmxhYmVsJzpcbiAgICAgICAgJ1PDqWxlY3Rpb25uZXIgdW5lIGFubsOpZScsXG4gICAgJ2Vycm9ycy5JTUFHRV9OT1RfUkVBREFCTEUnOlxuICAgICAgICBcIlZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBuJ2VzdCBwYXMgdW5lIGltYWdlIHZhbGlkZVwiLFxuICAgICdlcnJvcnMuRklMRU5BTUVfVE9PX0xPTkcnOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGEgdW4gbm9tIGR1IGZpY2hpZXIgcXVpIGV4Y8OoZGUgbGUgbWF4aW11bSBhdXRvcmlzw6kgOiAlMiRzIGNhcmFjdMOocmVzJyxcbiAgICAnZXJyb3JzLkZJTEVfVE9PX1NNQUxMJzpcbiAgICAgICAgJ1ZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBhIHVuZSB0YWlsbGUgaW5mw6lyaWV1cmUgYXUgbWluaW11bSBleGlnw6kgOiAlMiRzIGJ5dGVzJyxcbiAgICAnZXJyb3JzLlBERl9QQVNTV09SRF9MT0NLRUQnOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGVzdCB2ZXJyb3VpbGzDqWUgcGFyIHVuIG1vdCBkZSBwYXNzZScsXG4gICAgJ2Vycm9ycy5QREZfQ09OVEFJTlNfU0NSSVBUJzogJ1ZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBjb250aWVudCB1biBzY3JpcHQnLFxuICAgICdlcnJvcnMuUERGX0hBU19BVFRBQ0hNRU5UUyc6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgY29udGllbnQgdW4gZmljaGllciBhdHRhY2jDqScsXG4gICAgJ2Vycm9ycy5FTVBUWV9QREYnOiAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGVzdCB2aWRlJyxcbiAgICAnZXJyb3JzLlBERl9HRU5FUkFMX1BST0JMRU0nOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGVzdCBjb3Jyb21wdWUgWzxhIGhyZWY9XCJodHRwczovL3d3dy52ZC5jaC9wYWdlLzIwMjE2NzUvXCIgdGFyZ2V0PVwiX2JsYW5rXCI+QWlkZTwvYT5dJyxcbiAgICAnZXJyb3JzLlBERl9IQVNfUkVTVFJJQ1RJT05TJzpcbiAgICAgICAgJ1ZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBlc3QgcHJvdMOpZ8OpZS4gVmV1aWxsZXogZW5sZXZlciB0b3V0ZXMgbGVzIHByb3RlY3Rpb25zIGF2YW50IGRlIGpvaW5kcmUgY2UgZmljaGllci4nLFxuICAgICdlcnJvcnMuRklMRU5BTUVfU0hPVUxEX05PVF9DT05UQUlOJzpcbiAgICAgICAgJ0xlIG5vbSBkZSB2b3RyZSBwacOoY2Ugam9pbnRlICUxJHMgY29udGllbnQgZGVzIGNhcmFjdMOocmVzIGludGVyZGl0cy4nLFxuICAgICdlcnJvcnMuNDA2JzpcbiAgICAgICAgJ1ZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBuZSBjb3JyZXNwb25kIHBhcyBhdSB0eXBlIGRlIGNvbnRlbnUgYXV0b3Jpc8OpJyxcbiAgICAnZXJyb3JzLjQxMyc6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgYSB1bmUgdGFpbGxlIHN1cMOpcmlldXJlIG91IMOpZ2FsZSDDoCBsYSBsaW1pdGUgYXV0b3Jpc8OpZSA6ICUyJHMgTW8nLFxuICAgICdlcnJvcnMuNDE1JzpcbiAgICAgICAgJ0xlIHR5cGUgZGUgdm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIG5lIGZpZ3VyZSBwYXMgcGFybWkgY2V1eCBxdWkgc29udCBhdXRvcmlzw6lzIDogXCIlMiRzXCInLFxuICAgICdlcnJvcnMuNDIyJzogJ0VjaGVjIGRlIGxhIHNhdXZlZ2FyZGUgZGUgbGEgcGnDqGNlIGpvaW50ZSAlMSRzJyxcbiAgICAnZXJyb3JzLjUwMCc6XG4gICAgICAgICdFY2hlYyBkZSBsYSBzYXV2ZWdhcmRlIGRlIGxhIHBpw6hjZSBqb2ludGUgJTEkcy4gVmV1aWxsZXogcsOpZXNzYXllciBhdmVjIHVuIGF1dHJlIGZpY2hpZXIuJyxcbiAgICAnZXJyb3JzLnN1bW1hcnkudGl0bGUnOiAnSWwgeSBhIHVuIHByb2Jsw6htZScsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmNob29zZS1idXR0b24tbGFiZWwnOiAnQ2hvaXNpc3NleiB1biBkb2N1bWVudCcsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmNob29zZS1idXR0b24tbGFiZWwtbXVsdGlwbGUnOlxuICAgICAgICAnQ2hvaXNpc3NleiB1biBvdSBwbHVzaWV1cnMgZG9jdW1lbnRzJyxcbiAgICAnZm9laG4tdXBsb2FkZXIuZHJvcC16b25lLWxhYmVsJzogJ0TDqXBvc2V6IHVuIGRvY3VtZW50IG91IGNsaXF1ZXogaWNpJyxcbiAgICAnZm9laG4tdXBsb2FkZXIuZHJvcC16b25lLWxhYmVsLW11bHRpcGxlJzpcbiAgICAgICAgJ0TDqXBvc2V6IHVuIG91IHBsdXNpZXVycyBkb2N1bWVudHMgb3UgY2xpcXVleiBpY2knLFxuICAgICdmb2Vobi11cGxvYWRlci5kZWxldGUtY29uZmlybWF0aW9uLW1lc3NhZ2UnOlxuICAgICAgICAnw4p0ZXMtdm91cyBzw7tyIGRlIHZvdWxvaXIgc3VwcHJpbWVyIGNlIGZpY2hpZXIgPycsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmFiYnItbWVnYW9jdGV0JzogJ01vJyxcbiAgICAnZm9laG4tdXBsb2FkZXIuYWJici1tZWdhb2N0ZXQtdGl0bGUnOiAnTWVnYW9jdGV0JyxcbiAgICAnZm9laG4tdXBsb2FkZXIuZGVsZXRlLWljb24tdGl0bGUnOiAnU3VwcHJpbWVyIHtkb2NOYW1lfScsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLm1heC11cGxvYWQtc2VsZWN0aW9uLXJlYWNoZWQnOlxuICAgICAgICAnVm91cyBuZSBwb3V2ZXogcGFzIHTDqWzDqWNoYXJnZXIgcGx1cyBkZSB7bWF4U2VsZWN0aW9ufSBmaWNoaWVycyDDoCBsYSBmb2lzLicsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmZpbGVzLXNhdmVkLXN1Y2Nlc3MtbWVzc2FnZSc6XG4gICAgICAgICd7c3VjY2Vzc2Z1bERvY3VtZW50c0NvdW50fSBmaWNoaWVyKHMpIHNhdXZlZ2FyZMOpKHMpIGF2ZWMgc3VjY8OocycsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLnRyYW5zbWlzc2lvbi1lcnJvci1tZXNzYWdlJzpcbiAgICAgICAgJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbGEgdHJhbnNtaXNzaW9uIGRlIHZvcyBkb2N1bWVudHMnLFxuICAgICdmb2Vobi11cGxvYWRlci5maWxlcy1kZWxldGVkLXN1Y2Nlc3MtbWVzc2FnZSc6XG4gICAgICAgICdTdXBwcmVzc2lvbiBkdSBmaWNoaWVyIHtmaWxlbmFtZX0gcsOpdXNzaWUnLFxuICAgICdmb2Vobi11cGxvYWRlci5kZWxldGUtZXJyb3ItbWVzc2FnZSc6XG4gICAgICAgICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGxhIHN1cHByZXNzaW9uIGRlIHZvdHJlIGRvY3VtZW50JyxcbiAgICAnZm9laG4tcGljdHVyZS11cGxvYWQuY2hvb3NlLWJ1dHRvbi1sYWJlbCc6ICdDaG9pc2lzc2V6IHVuZSBwaG90bycsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmxvYWRpbmctbGFiZWwnOiAnQ2hhcmdlbWVudC4uLicsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmludmFsaWQtZmlsZS10eXBlJzpcbiAgICAgICAgJ0xlIHR5cGUgZGUgdm90cmUgcGnDqGNlIGpvaW50ZSB7ZmlsZW5hbWV9IG5lIGZpZ3VyZSBwYXMgcGFybWkgY2V1eCBxdWkgc29udCBhdXRvcmlzw6lzIDogXCJ7YWNjZXB0Rm9ybWF0c31cIicsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmxvYWRpbmctZmFpbHVyZS1sYWJlbCc6XG4gICAgICAgICdJbXBvc3NpYmxlIGRlIGNoYXJnZXIgbGEgcGhvdG8gc8OpbGVjdGlvbm7DqWUnLFxuICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC52YWxpZGF0ZS1zZWxlY3Rpb24tbGFiZWwnOiAnVmFsaWRlciBsYSBzw6lsZWN0aW9uJyxcbiAgICAnZm9laG4tcGljdHVyZS11cGxvYWQuY2FuY2VsLXNlbGVjdGlvbi1sYWJlbCc6ICdBbm51bGVyJyxcbiAgICAnZm9laG4tcGljdHVyZS11cGxvYWQuc2VsZWN0aW9uLW5vdC12YWxpZGF0ZWQtbGFiZWwnOlxuICAgICAgICAnTWVyY2kgZGUgdmFsaWRlciB2b3RyZSBzw6lsZWN0aW9uJyxcbiAgICAnZm9laG4tcGljdHVyZS11cGxvYWQuZGVsZXRlLXBpY3R1cmUtbGFiZWwnOiAnU3VwcHJpbWVyJyxcbiAgICAnZm9laG4tc2VsZWN0Lm5vLXNlbGVjdGlvbi5sYWJlbCc6ICctJyxcbiAgICAnZm9laG4tdGFibGUudG90YWxFbGVtZW50cyc6ICd7dG90YWx9IMOpbMOpbWVudHMgdHJvdXbDqXMnLFxuICAgICdmb2Vobi10YWJsZS50b3RhbEVsZW1lbnRzLjEnOiAnMSDDqWzDqW1lbnQgdHJvdXbDqScsXG4gICAgJ2ZvZWhuLXRhYmxlLnRvdGFsRWxlbWVudHMuMCc6ICdBdWN1biByw6lzdWx0YXQnLFxuICAgICdmb2Vobi10YWJsZS5oZWFkZXIuYWN0aW9ucyc6ICdBY3Rpb25zJyxcbiAgICAnZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci5zdGVwMSc6ICdTYWlzaWUnLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAxLnNyT25seSc6ICdFdGFwZSAxIHN1ciAzLCBTYWlzaWUnLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAyJzogJ1bDqXJpZmljYXRpb24nLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAyLnNyT25seSc6ICdFdGFwZSAyIHN1ciAzLCBWw6lyaWZpY2F0aW9uJyxcbiAgICAnZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci5zdGVwMyc6ICdUcmFuc21pc3Npb24nLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAzLnNyT25seSc6XG4gICAgICAgICdFdGFwZSAzIHN1ciAzLCBEZW1hbmRlIHRyYW5zbWlzZScsXG4gICAgJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5zZWxlY3RlZC5kZWxldGUnOlxuICAgICAgICAnU3VwcHJpbWVyIHtlbGVtZW50TGFiZWx9JyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLnNyLWFubm91bmNlbWVudC5kZWxldGVkJzpcbiAgICAgICAgJ3tlbGVtZW50TGFiZWx9IGEgw6l0w6kgc3VwcHJpbcOpLCcsXG4gICAgJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5zci1hbm5vdW5jZW1lbnQuYWRkZWQnOlxuICAgICAgICAne2VsZW1lbnRMYWJlbH0gYSDDqXTDqSBham91dMOpLCcsXG4gICAgJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5zZWxlY3RlZC1pdGVtcy1saXN0LWxlZ2VuZCc6XG4gICAgICAgICdFbMOpbWVudHMgc8OpbGVjdGlvbm7DqXMnLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuc3ItZGVmYXVsdC1mb2N1cy5uby1lbGVtZW50LXRvLWRlbGV0ZSc6XG4gICAgICAgICdBdWN1biDDqWzDqW1lbnQgc8OpbGVjdGlvbm7DqS4nLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuc3ItZGVmYXVsdC1zZWxlY3RlZC1lbGVtZW50JzpcbiAgICAgICAgJyhzw6lsZWN0aW9uIHBhciBkw6lmYXV0KScsXG4gICAgJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5hdXRvY29tcGxldGUuZW1wdHktbWVzc2FnZSc6XG4gICAgICAgICdUb3VzIGxlcyDDqWzDqW1lbnRzIGRlIGxhIGxpc3RlIGRlIHByb3Bvc2l0aW9uIG9udCBkw6lqw6Agw6l0w6kgYWpvdXTDqXMuJyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmF1dG9jb21wbGV0ZS5zY3JlZW4tcmVhZGVyLmxhYmVsJzpcbiAgICAgICAgJ1PDqWxlY3Rpb25uZXIgdW4gw6lsw6ltZW50IGRhbnMgbGEgbGlzdGUgZGUgcmVjaGVyY2hlJyArXG4gICAgICAgIFwiIGNpLWRlc3NvdXMgcG91ciBsJ2Fqb3V0ZXIgw6Agdm90cmUgc8OpbGVjdGlvbi5cIixcbiAgICAnZm9laG4tYWdlbmRhLmNhbGVuZGFyLWluZGlzcG9uaWJsZSc6XG4gICAgICAgICdMZSBjYWxlbmRyaWVyIGRlcyByZW5kZXotdm91cyBlc3QgYWN0dWVsbGVtZW50IGluZGlzcG9uaWJsZS4nLFxuICAgICdmb2Vobi1hZ2VuZGEucGFnaW5hdGlvbi1hbmNob3IuZmlyc3QtcGFydCc6XG4gICAgICAgICdWb3VzIHBvdXZleiBjaGFuZ2VyIGRlIHNlbWFpbmUgYXUgbW95ZW4gZGUnLFxuICAgICdmb2Vobi1hZ2VuZGEucGFnaW5hdGlvbi1hbmNob3IudG9wLW5leHQtcGFydCc6ICdsYSBwYWdpbmF0aW9uIGNpLWRlc3NvdXMuJyxcbiAgICAnZm9laG4tYWdlbmRhLnBhZ2luYXRpb24tYW5jaG9yLmJvdHRvbS1uZXh0LXBhcnQnOlxuICAgICAgICAnbGEgcGFnaW5hdGlvbiBjaS1kZXNzdXMuJyxcbiAgICAnZm9laG4tYWdlbmRhLnRpbWVzbG90LnNlbGVjdGVkJzogJyBzw6lsZWN0aW9ubsOpJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLm5vLWRpc3BvJzogJyhhdWN1bmUgZGlzcG9uaWJpbGl0w6kpJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLm5ici1kaXNwbyc6ICd7bmJFbGVtZW50c30gZGlzcG9uaWJpbGl0w6lzJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLnNlbGVjdGVkLXRpbWUnOlxuICAgICAgICAne3RpbWVTZWxlY3RlZFZhbHVlfSBzw6lsZWN0aW9ubsOpJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLnNob3ctbW9yZS1zci1vbmx5JzpcbiAgICAgICAgJ0FmZmljaGVyIGxlcyB7bmJyRWxlbWVudHNIaWRkZW59IGRpc3BvbmliaWxpdMOpcyBtYXNxdcOpZXMnLFxuICAgICdmb2Vobi5hZ2VuZGEtdGltZXNsb3QtcGFuZWwuc2hvdy1tb3JlJzpcbiAgICAgICAgJ0FmZmljaGVyIHBsdXMgKHtuYnJFbGVtZW50c0hpZGRlbn0pJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLnNob3ctbGVzcyc6ICdBZmZpY2hlciBtb2lucycsXG4gICAgJ2ZvZWhuLWFnZW5kYS1uYXZpZ2F0aW9uLnByZXZpb3VzLXdlZWsnOiAnU2VtYWluZSBwcsOpY8OpZGVudGUnLFxuICAgICdmb2Vobi1hZ2VuZGEtbmF2aWdhdGlvbi5wcmV2aW91cy13ZWVrLXNyLW9ubHknOlxuICAgICAgICAnU2VtYWluZSBwcsOpY8OpZGVudGUgOiB7cHJldmlvdXNXZWVrfScsXG4gICAgJ2ZvZWhuLWFnZW5kYS1uYXZpZ2F0aW9uLm5leHQtd2Vlayc6ICdTZW1haW5lIHN1aXZhbnRlJyxcbiAgICAnZm9laG4tYWdlbmRhLW5hdmlnYXRpb24ubmV4dC13ZWVrLXNyLW9ubHknOlxuICAgICAgICAnU2VtYWluZSBzdWl2YW50ZSA6IHtuZXh0V2Vla30nLFxuICAgICdmb2Vobi1hZ2VuZGEtbmF2aWdhdGlvbi5uYXYuYXJpYS1sYWJlbCc6ICdDaGFuZ2VyIGRlIHNlbWFpbmUnLFxuICAgICdmb2Vobi1hZ2VuZGEtbmF2aWdhdGlvbi5kYXRlLXBpY2tlci1idXR0b24uc2NyZWVuLXJlYWRlci5zZWxlY3RlZC1kYXRlJzpcbiAgICAgICAgJ1NlbWFpbmUgZHUge3NlbGVjdGVkRGF0ZX0gc8OpbGVjdGlvbm7DqWUnLFxuICAgICdnZXNkZW0tZGVtYW5kLWRldGFpbCc6ICdEw6l0YWlsIGRlIGxhIGRlbWFuZGUge3JlZmVyZW5jZX0nLFxuICAgICdnZXNkZW0tZXJyb3IudGV4dC5oYXMtcmVmZXJlbmNlJzpcbiAgICAgICAgJ1ZvdXMgcG91dmV6IGVzc2F5ZXIgZGUgcmVwcmVuZHJlIHZvdHJlIGRlbWFuZGUgZW4gY2xpcXVhbnQgc3VyIGxlIGxpZW4gY2ktZGVzc291cycsXG4gICAgJ2dlc2RlbS1lcnJvci5saW5rLmhhcy1yZWZlcmVuY2UnOiAnUmVwcmVuZHJlIG1hIGRlbWFuZGUnLFxuICAgICdnZXNkZW0tZXJyb3IudGV4dC5oYXMtbm8tcmVmZXJlbmNlJzpcbiAgICAgICAgJ1ZvdXMgcG91dmV6IHJlY29tbWVuY2VyIHVuZSBkZW1hbmRlIGVuIGNsaXF1YW50IHN1ciBsZSBsaWVuIGNpLWRlc3NvdXMnLFxuICAgICdnZXNkZW0tZXJyb3IubGluay5oYXMtbm8tcmVmZXJlbmNlJzogJ1JlY29tbWVuY2VyJyxcbiAgICAnZ2VzZGVtLWVycm9yLnRleHQucGVuZGluZy1wYXltZW50JzpcbiAgICAgICAgJzxwPlVuIHByb2Jsw6htZSBlc3Qgc3VydmVudSBsb3JzIGRlIGxhIHRyYW5zbWlzc2lvbiBkZSB2b3RyZSBkZW1hbmRlLjwvcD4nICtcbiAgICAgICAgJzxwPjxzdHJvbmc+TWVyY2kgZGUgbmUgcGFzIHJlZmFpcmUgdW5lIG5vdXZlbGxlIGRlbWFuZGUgdG91dCBkZSBzdWl0ZS48L3N0cm9uZz48L3A+JyArXG4gICAgICAgIFwiPHA+U2FucyBjb25maXJtYXRpb24gZGUgbGEgdHJhbnNtaXNzaW9uIGRlIHZvdHJlIGRlbWFuZGUgZGFucyB1biBkw6lsYWkgZCd1biBqb3VyLCBcIiArXG4gICAgICAgICdub3VzIHZvdXMgcHJpb25zIGRlIDxhIGhyZWY9XCJ7c3VwcG9ydExpbmt9XCIgdGFyZ2V0PVwiX2JsYW5rXCI+Y29udGFjdGVyIGxlIHN1cHBvcnQ8L2E+LicsXG4gICAgJ2ZvZWhuLWRyb3Bkb3duLW1lbnUuYXJpYS1sYWJlbCc6ICdNZW51IGTDqXJvdWxhbnQnLFxuICAgICdmb2Vobi1tb2RhbC5idG4tY2xvc2UuYXJpYS1sYWJlbCc6ICdGZXJtZXIgbGEgYm9pdGUgZGUgZGlhbG9ndWUnLFxuICAgICdmb2Vobi1tb2RhbC5idG4tY2xvc2UudGl0bGUnOiAnRmVybWVyJyxcbiAgICAnZm9laG4tdGV4dGFyZWEuY2hhcnMtcmVtYWluaW5nLnBsdXJhbCc6XG4gICAgICAgICd7Y2hhckNvdW50TGVmdH0gY2FyYWN0w6hyZXMgcmVzdGFudHMnLFxuICAgICdmb2Vobi10ZXh0YXJlYS5jaGFycy1yZW1haW5pbmcuc2luZ3VsYXInOlxuICAgICAgICAne2NoYXJDb3VudExlZnR9IGNhcmFjdMOocmUgcmVzdGFudCcsXG4gICAgJ2ZvZWhuLXRleHRhcmVhLmNoYXJzLXJlbWFpbmluZy56ZXJvJzpcbiAgICAgICAgJ1ZvdXMgYXZleiBhdHRlaW50IGxlIG5vbWJyZSBkZSBjYXJhY3TDqHJlcyBhdXRvcmlzw6lzJyxcbiAgICAnZm9laG4tdGV4dGFyZWEuY2hhcnMtcmVtYWluaW5nLmV4Y2VlZGVkJzpcbiAgICAgICAgJ1ZvdXMgYXZleiBkw6lwYXNzw6kgbGUgbm9tYnJlIGRlIGNhcmFjdMOocmVzIGF1dG9yaXPDqXMgZGUge2NoYXJDb3VudExlZnR9JyxcbiAgICAnZm9laG4tdXBsb2FkLXByb2dyZXNzLWJhci50aXRsZSc6ICdUcmFpdGVtZW50IGRlIHZvdHJlIGVudm9pJyxcbiAgICAnZm9laG4tdXBsb2FkLXByb2dyZXNzLWJhci51cGxvYWQnOiAnRW5yZWdpc3RyZW1lbnQgZW4gY291cnMuLi4nLFxuICAgICdmb2Vobi11cGxvYWQtcHJvZ3Jlc3MtYmFyLmdyb3VwLnVwbG9hZCc6XG4gICAgICAgICdMb3Qge3BhY2thZ2VJbmRleH0ve25iUGFja2FnZXN9IDogRW5yZWdpc3RyZW1lbnQgZW4gY291cnMuLi4nLFxuICAgICdmb2Vobi11cGxvYWQtcHJvZ3Jlc3MtYmFyLmFuYWx5c2lzJzpcbiAgICAgICAgJ0FuYWx5c2UgZW4gY291cnMuLi4gTWVyY2kgZGUgcGF0aWVudGVyLicsXG4gICAgJ2ZvZWhuLXVwbG9hZC1wcm9ncmVzcy1iYXIuZ3JvdXAuYW5hbHlzaXMnOlxuICAgICAgICAnTG90IHtwYWNrYWdlSW5kZXh9L3tuYlBhY2thZ2VzfSA6IEFuYWx5c2UgZW4gY291cnMuLi4gTWVyY2kgZGUgcGF0aWVudGVyLicsXG4gICAgJ2ZvZWhuLXVwbG9hZC1wcm9ncmVzcy1iYXIuZ3JvdXAuaW5mbyc6XG4gICAgICAgICdMZSB0w6lsw6ljaGFyZ2VtZW50IHNlIGZhaXQgZW4gcGx1c2lldXJzIGxvdHMgZW4gZm9uY3Rpb24gZHUgbm9tYnJlIGRlIGZpY2hpZXJzIGNoYXJnw6lzJyxcbiAgICAnZXJyb3JzLk5vdE51bGwnOiAnQ2UgY2hhbXAgZG9pdCDDqnRyZSByZW1wbGknLFxuICAgICdmb2Vobi1oZWFkZXIubG9nby50aXRsZSc6XG4gICAgICAgIFwiQWxsZXIgw6AgbGEgcGFnZSBkJ2FjY3VlaWwgZHUgU2l0ZSBkdSBDYW50b24gZGUgVmF1ZFwiLFxuICAgICdmb2Vobi1oZWFkZXIuY3liZXItc2VjdXJlZC1hcmVhLmlkZW50aXR5LnNyT25seSc6ICdWb3RyZSBpZGVudGl0w6knLFxuICAgICdmb2Vobi1oZWFkZXIuY3liZXItc2VjdXJlZC1hcmVhLnRpdGxlJzogJ0VzcGFjZSBzw6ljdXJpc8OpOicsXG4gICAgJ2ZvZWhuLWhlYWRlci5jeWJlci1zZWN1cmVkLWFyZWEuY29ubmVjdGVkLXVzZXInOiAnUGVyc29ubmUgY29ubmVjdMOpZTonLFxuICAgICdmb2Vobi1oZWFkZXIuY3liZXItc2VjdXJlZC1hcmVhLmNvbm5lY3Rpb24uc3JPbmx5JzpcbiAgICAgICAgXCJDb25uZXhpb24gw6AgbCdlc3BhY2Ugc8OpY3VyaXPDqVwiLFxuICAgICdmb2Vobi1oZWFkZXIuY3liZXItc2VjdXJlZC1hcmVhLmNvbm5lY3Rpb24uYnV0dG9uLnRpdGxlJzogJ1NlIGNvbm5lY3RlcicsXG4gICAgJ2ZvZWhuLWhlYWRlci5pYW0tc2VjdXJlZC1hcmVhLmlkZW50aXR5LnNyT25seSc6ICdWb3RyZSBpZGVudGl0w6knLFxuICAgICdmb2Vobi1oZWFkZXIuaWFtLXNlY3VyZWQtYXJlYS5jb25uZWN0ZWQtdXNlcic6ICdQZXJzb25uZSBjb25uZWN0w6llOicsXG4gICAgJ2ZvZWhuLWhlYWRlci5pYW0tc2VjdXJlZC1hcmVhLmxvZ291dCc6IFwiUXVpdHRlciBsJ2FwcGxpY2F0aW9uXCIsXG4gICAgJ2ZvZWhuLXNraXAtbGluay50aXRsZSc6ICdbQWx0KzBdIETDqWJ1dCBkdSBjb250ZW51IGRlIGxhIHBhZ2UnLFxuICAgICdmb2Vobi1za2lwLWxpbmsuY29udGVudCc6ICdEw6lidXQgZHUgY29udGVudSBkZSBsYSBwYWdlJyxcbiAgICAnZXNwYWNlLXNlY3VyaXNlLm1lbnUuaXRlbS5hY2N1ZWlsLmxhYmVsJzogJ0FjY3VlaWwnLFxuICAgICdlc3BhY2Utc2VjdXJpc2UubWVudS5pdGVtLmFjY3VlaWwudGl0bGUnOiAnQWNjdWVpbCcsXG4gICAgJ2VzcGFjZS1zZWN1cmlzZS5tZW51Lml0ZW0ucHJlZmVyZW5jZXMubGFiZWwnOiAnUHLDqWbDqXJlbmNlcycsXG4gICAgJ2VzcGFjZS1zZWN1cmlzZS5tZW51Lml0ZW0ucHJlZmVyZW5jZXMudGl0bGUnOiAnUHLDqWbDqXJlbmNlcycsXG4gICAgJ2VzcGFjZS1zZWN1cmlzZS5tZW51Lml0ZW0uZ2VzdGlvbi1jb21wdGUubGFiZWwnOiAnR2VzdGlvbiBkdSBjb21wdGUnLFxuICAgICdlc3BhY2Utc2VjdXJpc2UubWVudS5pdGVtLmdlc3Rpb24tY29tcHRlLnRpdGxlJzogJ0dlc3Rpb24gZHUgY29tcHRlJyxcbiAgICAnZXNwYWNlLXNlY3VyaXNlLm1lbnUuaXRlbS5vcGVyYXRpb25zLWxpZWVzLWVzcGFjZS1wcm8ubGFiZWwnOlxuICAgICAgICAnT3DDqXJhdGlvbnMgbGnDqWVzIGF1eCBlc3BhY2VzIHByb2Zlc3Npb25uZWxzJyxcbiAgICAnZXNwYWNlLXNlY3VyaXNlLm1lbnUuaXRlbS5vcGVyYXRpb25zLWxpZWVzLWVzcGFjZS1wcm8udGl0bGUnOlxuICAgICAgICAnT3DDqXJhdGlvbnMgbGnDqWVzIGF1eCBlc3BhY2VzIHByb2Zlc3Npb25uZWxzJyxcbiAgICAnZXNwYWNlLXNlY3VyaXNlLm1lbnUuaXRlbS5hZG1pbmlzdHJlci1lc3BhY2UtcHJvLmxhYmVsJzpcbiAgICAgICAgXCJBZG1pbmlzdHJlciBsJ2VzcGFjZSBwcm9mZXNzaW9ubmVsXCIsXG4gICAgJ2VzcGFjZS1zZWN1cmlzZS5tZW51Lml0ZW0uYWRtaW5pc3RyZXItZXNwYWNlLXByby50aXRsZSc6XG4gICAgICAgIFwiQWRtaW5pc3RyZXIgbCdlc3BhY2UgcHJvZmVzc2lvbm5lbFwiLFxuICAgICdlc3BhY2Utc2VjdXJpc2UubWVudS5pdGVtLmRlY29ubmVjdGlvbi5sYWJlbCc6ICdTZSBkw6ljb25uZWN0ZXInLFxuICAgICdlc3BhY2Utc2VjdXJpc2UubWVudS5pdGVtLmRlY29ubmVjdGlvbi50aXRsZSc6ICdTZSBkw6ljb25uZWN0ZXInXG59O1xuIl19
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1kaWN0aW9uYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1kaWN0aW9uYXJ5L2RlZmF1bHQtZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBbUI7SUFDOUMsb0NBQW9DLEVBQ2hDLDhDQUE4QztJQUNsRCw2QkFBNkIsRUFDekIsNkRBQTZEO0lBQ2pFLG9DQUFvQyxFQUFFLFFBQVE7SUFDOUMsMkNBQTJDLEVBQ3ZDLHdDQUF3QztJQUM1QyxzQ0FBc0MsRUFBRSxXQUFXO0lBQ25ELHFDQUFxQyxFQUFFLGtDQUFrQztJQUN6RSw2Q0FBNkMsRUFBRSxzQkFBc0I7SUFDckUsNkNBQTZDLEVBQUUsaUJBQWlCO0lBQ2hFLDBDQUEwQyxFQUFFLFNBQVM7SUFDckQseUNBQXlDLEVBQ3JDLHlEQUF5RDtJQUM3RCxtQ0FBbUMsRUFDL0Isa0VBQWtFO0lBQ3RFLGtDQUFrQyxFQUM5QixpREFBaUQ7UUFDakQsaUdBQWlHO1FBQ2pHLHdFQUF3RTtJQUM1RSxzQ0FBc0MsRUFDbEMsOEVBQThFO1FBQzlFLG9EQUFvRDtJQUN4RCx3Q0FBd0MsRUFBRSxLQUFLO0lBQy9DLHVDQUF1QyxFQUFFLEtBQUs7SUFDOUMseUNBQXlDLEVBQ3JDLEVBQUU7UUFDRiwrR0FBK0c7UUFDL0csUUFBUTtRQUNSLGlHQUFpRztJQUNyRyxzQkFBc0IsRUFBRSxjQUFjO0lBQ3RDLGdDQUFnQyxFQUFFLHdCQUF3QjtJQUMxRCw0QkFBNEIsRUFBRSxNQUFNO0lBQ3BDLDhCQUE4QixFQUFFLE1BQU07SUFDdEMsNkJBQTZCLEVBQUUsT0FBTztJQUN0QywrQkFBK0IsRUFBRSxNQUFNO0lBQ3ZDLGlDQUFpQyxFQUM3QixpREFBaUQ7UUFDakQsaUZBQWlGO0lBQ3JGLDhCQUE4QixFQUFFLE9BQU87SUFDdkMsZ0NBQWdDLEVBQUUsU0FB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RSxjQUFjO0lBQ3pFLCtDQUErQyxFQUFFLGdCQUFnQjtJQUNqRSw4Q0FBOEMsRUFBRSxxQkFBcUI7SUFDckUsc0NBQXNDLEVBQUUsdUJBQXVCO0lBQy9ELHVCQUF1QixFQUFFLHFDQUFxQztJQUM5RCx5QkFBeUIsRUFBRSw2QkFBNkI7SUFDeEQseUNBQXlDLEVBQUUsU0FBUztJQUNwRCx5Q0FBeUMsRUFBRSxTQUFTO0lBQ3BELDZDQUE2QyxFQUFFLGFBQWE7SUFDNUQsNkNBQTZDLEVBQUUsYUFBYTtJQUM1RCxnREFBZ0QsRUFBRSxtQkFBbUI7SUFDckUsZ0RBQWdELEVBQUUsbUJBQW1CO0lBQ3JFLDZEQUE2RCxFQUN6RCw2Q0FBNkM7SUFDakQsNkRBQTZELEVBQ3pELDZDQUE2QztJQUNqRCx3REFBd0QsRUFDcEQsb0NBQW9DO0lBQ3hDLHdEQUF3RCxFQUNwRCxvQ0FBb0M7SUFDeEMsOENBQThDLEVBQUUsZ0JBQWdCO0lBQ2hFLDhDQUE4QyxFQUFFLGdCQUFnQjtDQUNuRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHsgRGljdGlvbmFyeVR5cGUgfSBmcm9tICcuL3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9ESUNUSU9OQVJZOiBEaWN0aW9uYXJ5VHlwZSA9IHtcbiAgICAnZHJhZnQtY29udGFpbmVyLmJ1dHRvbi5zaG93LWRyYWZ0cyc6XG4gICAgICAgICdEZW1hbmRlcyBlbiBjb3VycyBkZSBzYWlzaWUgOiB7ZHJhZnRzTGVuZ3RofScsXG4gICAgJ2RyYWZ0LWNvbnRhaW5lci5tb2RhbC50aXRsZSc6XG4gICAgICAgICdJbCBleGlzdGUgZMOpasOgIHVuZSBvdSBwbHVzaWV1cnMgZGVtYW5kZXMgZW4gY291cnMgZGUgc2Fpc2llJyxcbiAgICAnZHJhZnQtY29udGFpbmVyLm1vZGFsLmNsb3NlLmJ1dHRvbic6ICdGZXJtZXInLFxuICAgICdkcmFmdC1jb250YWluZXIubW9kYWwuZHJhZnRzLWluLWVzLmJ1dHRvbic6XG4gICAgICAgICdUb3V0ZXMgbWVzIGRlbWFuZGVzIGVuIGNvdXJzIGRlIHNhaXNpZScsXG4gICAgJ2RyYWZ0LWNvbnRhaW5lci5saXN0LnJlZmVyZW5jZS5sYWJlbCc6ICdSw6lmw6lyZW5jZScsXG4gICAgJ2RyYWZ0LWNvbnRhaW5lci5saXN0LnJlZmVyZW5jZS5saW5rJzogJ1JlcHJlbmRyZSBsYSBkZW1hbmRlIHtyZWZlcmVuY2V9JyxcbiAgICAnZHJhZnQtY29udGFpbmVyLmxpc3QubW9kaWZpY2F0aW9uRGF0ZS5sYWJlbCc6ICdEYXRlIGRlIG1vZGlmaWNhdGlvbicsXG4gICAgJ2RyYWZ0LWNvbnRhaW5lci5saXN0LnJlZmVyZW5jZUludGVybmUubGFiZWwnOiAnVm90cmUgcsOpZsOpcmVuY2UnLFxuICAgICdkcmFmdC1jb250YWluZXIubGlzdC5kZXRhaWxzLWluLWVzLmxhYmVsJzogJ0TDqXRhaWxzJyxcbiAgICAnZHJhZnQtY29udGFpbmVyLmxpc3QuZGV0YWlscy1pbi1lcy5saW5rJzpcbiAgICAgICAgXCJDb25zdWx0ZXIgbGEgZGVtYW5kZSB7cmVmZXJlbmNlfSBkYW5zIGwnZXNwYWNlIHPDqWN1cmlzw6lcIixcbiAgICAnZm9laG4tZGVjaXNpb24tZWxlY3Ryb25pcXVlLnRpdGxlJzpcbiAgICAgICAgJ0F1dG9yaXNhdGlvbiBkZSBub3RpZmljYXRpb24gZGVzIGTDqWNpc2lvbnMgcGFyIHZvaWUgw6lsZWN0cm9uaXF1ZScsXG4gICAgJ2ZvZWhuLWRlY2lzaW9uLWVsZWN0cm9uaXF1ZS5pbmZvJzpcbiAgICAgICAgJ1ZvdHJlIGRlbWFuZGUgZXN0IHN1ciBsZSBwb2ludCBk4oCZw6p0cmUgZW52b3nDqWUuICcgK1xuICAgICAgICAnQ29uZm9ybcOpbWVudCDDoCBs4oCZYXJ0LiA0NGEgTFBBLVZELCBs4oCZYXV0b3JpdMOpIHBldXQgbm90aWZpZXIgc2VzIGTDqWNpc2lvbnMgcGFyIHZvaWUgw6lsZWN0cm9uaXF1ZSAnICtcbiAgICAgICAgJ2F1eCBwYXJ0aWVzIHF1aSBvbnQgZG9ubsOpIGxldXIgYWNjb3JkIGV4cGxpY2l0ZSDDoCBjZXR0ZSBjb21tdW5pY2F0aW9uLicsXG4gICAgJ2ZvZWhuLWRlY2lzaW9uLWVsZWN0cm9uaXF1ZS5xdWVzdGlvbic6XG4gICAgICAgICdBY2NlcHRlei12b3VzIHF1ZSBs4oCZYXV0b3JpdMOpIGNvbXDDqXRlbnRlIHBvdXIgbGUgdHJhaXRlbWVudCBkZSB2b3RyZSBkZW1hbmRlICcgK1xuICAgICAgICAndm91cyBub3RpZmllIHNlcyBkw6ljaXNpb25zIHBhciB2b2llIMOpbGVjdHJvbmlxdWUgPycsXG4gICAgJ2ZvZWhuLWRlY2lzaW9uLWVsZWN0cm9uaXF1ZS5hbnN3ZXIueWVzJzogJ091aScsXG4gICAgJ2ZvZWhuLWRlY2lzaW9uLWVsZWN0cm9uaXF1ZS5hbnN3ZXIubm8nOiAnTm9uJyxcbiAgICAnZm9laG4tZGVjaXNpb24tZWxlY3Ryb25pcXVlLmFuc3dlci5pbmZvJzpcbiAgICAgICAgJycgK1xuICAgICAgICAnU2kgdm91cyBjbGlxdWV6IHN1ciDCqyBPdWkgwrssIHZvdXMgYXV0b3Jpc2V6IGzigJlhdXRvcml0w6kgw6Agdm91cyBub3RpZmllciBzZXMgZMOpY2lzaW9ucyBzdXIgbGUgcG9ydGFpbCBzw6ljdXJpc8OpLicgK1xuICAgICAgICAnPGJyIC8+JyArXG4gICAgICAgICdTaSB2b3VzIGNsaXF1ZXogc3VyIMKrIE5vbiDCuywgdm91cyByZWZ1c2V6IGxhIG5vdGlmaWNhdGlvbiBkZSBkw6ljaXNpb25zIHN1ciBsZSBwb3J0YWlsIHPDqWN1cmlzw6kuJyxcbiAgICAnZm9laG4taW5wdXQub3B0aW9uYWwnOiAnKGZhY3VsdGF0aWYpJyxcbiAgICAnZm9laG4taW5wdXQuY2xlYXItYnV0dG9uLmxhYmVsJzogJ1LDqWluaXRpYWxpc2VyIGxlIGNoYW1wJyxcbiAgICAnZm9laG4taW5wdXQtZGF0ZS5kYXkubGFiZWwnOiAnSm91cicsXG4gICAgJ2ZvZWhuLWlucHV0LWRhdGUubW9udGgubGFiZWwnOiAnTW9pcycsXG4gICAgJ2ZvZWhuLWlucHV0LWRhdGUueWVhci5sYWJlbCc6ICdBbm7DqWUnLFxuICAgICdmb2Vobi1pbnB1dC1lbWFpbC5tb2RhbC50aXRsZSc6ICdBaWRlJyxcbiAgICAnZm9laG4taW5wdXQtZW1haWwubW9kYWwuY29udGVudCc6XG4gICAgICAgIFwiPHA+Vm91cyBuJ2Fycml2ZXogcGFzIMOgIHNhaXNpciB2b3RyZSBtYWlsID88L3A+XCIgK1xuICAgICAgICAnPHA+TWVyY2kgZFxcJ8OpY3JpcmUgw6AgPGEgaHJlZj1cIm1haWx0bzppbmZvLmN5YmVyQHZkLmNoXCI+aW5mby5jeWJlckB2ZC5jaDwvYT48L3A+JyxcbiAgICAnZm9laG4taW5wdXQtdGltZS5ob3Vycy5sYWJlbCc6ICdIZXVyZScsXG4gICAgJ2ZvZWhuLWlucHV0LXRpbWUubWludXRlcy5sYWJlbCc6ICdNaW51dGVzJyxcbiAgICAnZm9laG4taW5wdXQtbnVtYmVyLnN0YW5kYXJkLWhlbHAtdGV4dC5sYWJlbCc6XG4gICAgICAgICdTYWlzaXIgdW4gbm9tYnJlIGVudHJlIHttaW5WYWx1ZX0gZXQge21heFZhbHVlfScsXG4gICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3MuY291bnRyeS5sYWJlbCc6ICdQYXlzJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5sb2NhbGl0eS5sYWJlbCc6ICdOUEEsIExvY2FsaXTDqScsXG4gICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3Muc3RyZWV0LmhlbHAtdGV4dCc6ICdFeGVtcGxlIDogQXZlbnVlIGRlIGxhIFNhbGxheicsXG4gICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3Muc3RyZWV0LmxhYmVsJzogJ1J1ZScsXG4gICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3MuaG91c2VOdW1iZXIubGFiZWwnOiAnTnVtw6lybyBkZSBydWUnLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmhvdXNlTnVtYmVyLmhlbHAtdGV4dCc6XG4gICAgICAgIFwiRXhlbXBsZSA6IDQwIHBvdXIgdW5lIGFkcmVzc2Ugw6AgbCdBdmVudWUgZGUgbGEgU2FsbGF6IDQwXCIsXG4gICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3MucG9zdE9mZmljZUJveFRleHQubGFiZWwnOiAnQ2FzZSBwb3N0YWxlJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5wb3N0T2ZmaWNlQm94VGV4dC5oZWxwLXRleHQnOlxuICAgICAgICAnRXhlbXBsZSA6IENhc2UgcG9zdGFsZSAxMjIgb3UgQ1AxMjIgb3UgQ1AgMTIyJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5hZGRyZXNzTGluZTEubGFiZWwnOiAnYy9vJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5hZGRyZXNzTGluZTIubGFiZWwnOiBcIkNvbXBsw6ltZW50IGQnYWRyZXNzZVwiLFxuICAgICdmb2Vobi1pbnB1dC1mb3JlaWduLWxvY2FsaXR5LnppcENvZGUubGFiZWwnOiAnQ29kZSBwb3N0YWwnLFxuICAgICdmb2Vobi1pbnB1dC1mb3JlaWduLWxvY2FsaXR5LmxvY2FsaXR5LmxhYmVsJzogJ0xvY2FsaXTDqScsXG4gICAgJ2ZvZWhuLW5hdmlnYXRpb24ubmV4dC5sYWJlbCc6ICdTdWl2YW50JyxcbiAgICAnZm9laG4tbmF2aWdhdGlvbi5wcmV2aW91cy5sYWJlbCc6ICdQcsOpY8OpZGVudCcsXG4gICAgJ2ZvZWhuLW5hdmlnYXRpb24udHJhbnNtaXQubGFiZWwnOiAnVHJhbnNtZXR0cmUnLFxuICAgICdmb2Vobi1uYXZpZ2F0aW9uLmNvbnRpbnVlLWxhdGVyLmxhYmVsJzpcbiAgICAgICAgJ0Vudm95ZXIgdW4gbGllbiBwb3VyIHJlcHJlbmRyZSBjZXR0ZSBkZW1hbmRlIHBsdXMgdGFyZCcsXG4gICAgJ2ZvZWhuLW5hdmlnYXRpb24ucm91dGUuaW5kZXguc2VwYXJhdG9yJzogJ3N1cicsXG4gICAgJ2ZvZWhuLXBhZ2UuYnJvd3Nlci1ub3Qtc3VwcG9ydGVkJzpcbiAgICAgICAgJ0NldHRlIHByZXN0YXRpb24gbuKAmWVzdCBwYXMgY29tcGF0aWJsZSBhdmVjIHZvdHJlIG5hdmlnYXRldXIuJyxcbiAgICAnZm9laG4tcGFnZS5icm93c2VyLWRvd25sb2FkLWludml0YXRpb24nOlxuICAgICAgICAnTm91cyB2b3VzIGludml0b25zIMOgIHV0aWxpc2VyIHVuZSB2ZXJzaW9uIHLDqWNlbnRlIGRlJyxcbiAgICAnZm9laG4tcGFnZS5jb250aW51ZS13aXRoLXNhbWUtYnJvd3Nlcic6ICdDb250aW51ZXIgYXZlYyBjZSBuYXZpZ2F0ZXVyJyxcbiAgICAnZm9laG4tcGFnZS5icm93c2VyLWRvd25sb2FkLWxpc3Qub3UnOiAnb3UnLFxuICAgICdmb2Vobi1wYWdlLmV4dGVybmFsLWxpbmsuc3JPbmx5JzogJyhsaWVuIGV4dGVybmUpJyxcbiAgICAnZm9laG4tcGFnZS1jb3VudGVyLmxhYmVsJzogJ1BhZ2Uge2N1cnJlbnRQYWdlfSBkZSB7cGFnZUNvdW50fScsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24udGl0bGUnOiAnQ29uZmlybWF0aW9uJyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5zdWNjZXNzLWxhYmVsJzogJ0RlbWFuZGUgdHJhbnNtaXNlJyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5uZXh0LXN0ZXAuc3VjY2Vzcy1sYWJlbCc6ICdSw6lwb25zZSB0cmFuc21pc2UnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmFib3J0LWxhYmVsJzogJ0RlbWFuZGUgYWJhbmRvbm7DqWUnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnJlZmVyZW5jZS10aXRsZS5sYWJlbCc6XG4gICAgICAgICdMZSBudW3DqXJvIGRlIHLDqWbDqXJlbmNlIGRlIHZvdHJlIGRlbWFuZGUgZXN0JyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5tYWlsLXNlbnQubGFiZWwnOlxuICAgICAgICAnVm91cyByZWNldnJleiB1biBlbWFpbCBkZSBjb25maXJtYXRpb24gZGFucyBxdWVscXVlcyBpbnN0YW50cy4nLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmRvd25sb2FkLXBkZi1yZWNhcC1idXR0b24nOlxuICAgICAgICAnVMOpbMOpY2hhcmdlciBsYSBkZW1hbmRlIChwZGYpJyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5leGl0LWJ1dHRvbic6ICdUZXJtaW5lcicsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZXhpdC1idXR0b24tY29ubmVjdGVkJzogJ1NlIGTDqWNvbm5lY3RlcicsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZXh0cmEtY29udGVudCc6ICcgJyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi50cmFuc21pc3Npb24taW5mb3JtYXRpb24ubGFiZWwnOlxuICAgICAgICAnSW5mb3JtYXRpb24gc3VpdGUgw6AgbGEgdHJhbnNtaXNzaW9uIGRlIHZvdHJlIGRlbWFuZGUnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmRlbWFuZC1kZXRhaWwtbGluay5sYWJlbCc6XG4gICAgICAgICdWb3VzIHBvdXZleiBjb25zdWx0ZXIgdm90cmUgZGVtYW5kZSBlbiBjbGlxdWFudCBzdXIgOicsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZGVtYW5kLXByb2Nlc3NpbmctcHJvZ3Jlc3MtbGluay5sYWJlbCc6XG4gICAgICAgIFwiVm91cyBwb3V2ZXogc3VpdnJlIGwnYXZhbmNlbWVudCBkdSB0cmFpdGVtZW50IGRlIHZvdHJlIGRlbWFuZGUgXCIgK1xuICAgICAgICAnZW4gY2xpcXVhbnQgc3VyIDonLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmRlbWFuZC1pbi1wcm9ncmVzcy50aXRsZSc6ICdEZW1hbmRlIGVuIGNvdXJzJyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5yZXN1bWUtbXktZGVtYW5kLmxhYmVsJzpcbiAgICAgICAgJ1ZvdXMgcG91dmV6IHJlcHJlbmRyZSB2b3RyZSBkZW1hbmRlIGVuIGNsaXF1YW50IHN1ciBsZSBsaWVuIGNpLWRlc3NvdXMnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnJlc3VtZS1teS1kZW1hbmQuYnV0dG9uJzogJ1JlcHJlbmRyZSBtYSBkZW1hbmRlJyxcbiAgICAnZ2VzZGVtLmRvd25sb2FkLXBkZi5idXR0b24udGl0bGUnOiAnVMOpbMOpY2hhcmdlciBsZSBQREYnLFxuICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LWxvZ2luLnNhdmUubGFiZWwnOlxuICAgICAgICAnTGVzIGRvbm7DqWVzIGRlIHZvdHJlIGRlbWFuZGUgZW5yZWdpc3Ryw6llIGxlIHtkYXRlfSBvbnQgw6l0w6kgY2hhcmfDqWVzLicsXG4gICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktbG9naW4uaW52YWxpZC1vdHAubGFiZWwnOlxuICAgICAgICBcIkxlIG1vdCBkZSBwYXNzZSBzYWlzaSBuJ2VzdCBwYXMgdmFsaWRlXCIsXG4gICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktbG9naW4ucGFzc3dvcmQtZ2VuZXJhdGlvbi1mYWlsZWQubGFiZWwnOlxuICAgICAgICAnSW1wb3NzaWJsZSBkZSBnw6luw6lyZXIgdW4gbW90IGRlIHBhc3NlLCB2ZXVpbGxleiByw6llc3NheWVyIHBsdXMgdGFyZC4nLFxuICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LWxvZ2luLmV4cGlyZWQtc2Vzc2lvbi5sYWJlbCc6XG4gICAgICAgICdWb3RyZSBzZXNzaW9uIGEgZXhwaXLDqSwgdmV1aWxsZXogcmVjb21tZW5jZXIgdm90cmUgc2Fpc2llJyxcbiAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY3VycmVudC1pbmZvLnByZXZpZXcnOlxuICAgICAgICAnVW4gbGllbiBkZSByZXByaXNlIGEgw6l0w6kgZW52b3nDqSDDoCA8aT57cmVjb3ZlcnlNYWlsfTwvaT4gKHtsYXN0UmVnaXN0cmF0aW9ufSknLFxuICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLmN1cnJlbnQtaW5mbyc6XG4gICAgICAgICc8cD5VbiBsaWVuIGRlIHJlcHJpc2Ugdm91cyBhIMOpdMOpIGVudm95w6kgw6AgbGEgZGF0ZSBzdWl2YW50ZSA6IDxzdHJvbmc+e2xhc3RSZWdpc3RyYXRpb259PC9zdHJvbmc+PC9wPicgK1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICAnPHA+TGEgZGVtYW5kZSBwb3VycmEgw6p0cmUgcmVwcmlzZSBwZW5kYW50IDxzdHJvbmc+e2RyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpY30gam91cnM8L3N0cm9uZz4sIGVuc3VpdGUgZWxsZSBzZXJhIHN1cHByaW3DqWUgZMOpZmluaXRpdmVtZW50IGR1IHBvcnRhaWwuPC9wPicgK1xuICAgICAgICAnPHA+Vm91bGV6LXZvdXMgcmVudm95ZXIgdW4gbGllbiA/IDxici8+JyArXG4gICAgICAgIFwiVm91cyBwb3V2ZXogYXVzc2kgY2hhbmdlciBsJ2FkcmVzc2UgZGUgZGVzdGluYXRpb24gZXQgbGUgbnVtw6lybyBkZSBtb2JpbGUgcG91ciBsYSByZXByaXNlPC9wPlwiLFxuICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5tb2RhbEhlYWRlclRleHQnOlxuICAgICAgICAnSW5mb3JtYXRpb25zIHBvdXIgbGEgcmVwcmlzZSBkZSBsYSBkZW1hbmRlJyxcbiAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29ubmVjdGVkLmluZm8nOlxuICAgICAgICAnPHA+Vm9zIGRvbm7DqWVzIG9udCDDqXTDqSBzYXV2ZWdhcmTDqWVzLCB2b3VzIHBvdXZleiBhY2PDqWRlciDDoCBjZXR0ZSBkZW1hbmRlIGRhbnMgbGEgbGlzdGUgOicsXG4gICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLmNvbm5lY3RlZC5pbmZvLmRyYWZ0LWxpbmstdGV4dCc6XG4gICAgICAgICdkZW1hbmRlcyBlbiBjb3VycyBkZSBzYWlzaWUnLFxuICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLm5vdC1yZWdpc3RlcmVkLmluZm8nOlxuICAgICAgICAnPHA+Vm91cyBhdmV6IGxhIHBvc3NpYmlsaXTDqSBkZSByZXByZW5kcmUgdm90cmUgZGVtYW5kZSBwbHVzIHRhcmQgZW4gY29tcGzDqXRhbnQgY2UgZm9ybXVsYWlyZS48L3A+JyArXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgICc8cD5MYSBkZW1hbmRlIHBvdXJyYSDDqnRyZSByZXByaXNlIHBlbmRhbnQgPHN0cm9uZz57ZHJhZnREZW1SZXRlbnRpb25EYXlzUHVibGljfSBqb3Vyczwvc3Ryb25nPiwgZW5zdWl0ZSBlbGxlIHNlcmEgc3VwcHJpbcOpZSBkw6lmaW5pdGl2ZW1lbnQgZHUgcG9ydGFpbC48L3A+JyArXG4gICAgICAgICc8cCBjbGFzcz1cInNtYWxsIG1iLTBcIj4nICtcbiAgICAgICAgXCI8aT5MZXMgaW5mb3JtYXRpb25zIGRlbWFuZMOpZXMgc29udCB1bmlxdWVtZW50IHV0aWxpc8OpZXMgcG91ciB2b3VzIHBlcm1ldHRyZSBkJ2VmZmVjdHVlciBsYSByZXByaXNlIGRlIGRlbWFuZGUuPC9pPlwiICtcbiAgICAgICAgJzwvcD4nLFxuICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLmluZm8uc2VudCc6XG4gICAgICAgIFwiPHA+VW4gbWVzc2FnZSBjb250ZW5hbnQgbGUgbGllbiBkZSByZXByaXNlIGRlIGxhIGRlbWFuZGUgYSDDqXTDqSBlbnZvecOpIMOgIGwnYWRyZXNzZSA8c3Ryb25nPntyZWNvdmVyeU1haWx9PC9zdHJvbmc+LjwvcD5cIiArXG4gICAgICAgICc8cD4nICtcbiAgICAgICAgJ1ZvdXMgcG91dmV6IGNsaXF1ZXIgc3VyIGNlIGxpZW4gcG91ciByZXByZW5kcmUgbGEgZGVtYW5kZSBlbiBzYWlzaXNzYW50IGxlIGNvZGUgcXVpIHNlcmEgZW52b3nDqSBhdSAnICtcbiAgICAgICAgJzxzdHJvbmc+e3JlY292ZXJ5TW9iaWxlfTwvc3Ryb25nPi4nICtcbiAgICAgICAgJzwvcD4nICtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgJzxwPkxhIGRlbWFuZGUgcG91cnJhIMOqdHJlIHJlcHJpc2UgcGVuZGFudCA8c3Ryb25nPntkcmFmdERlbVJldGVudGlvbkRheXNQdWJsaWN9IGpvdXJzPC9zdHJvbmc+LCBlbnN1aXRlIGVsbGUgc2VyYSBzdXBwcmltw6llIGTDqWZpbml0aXZlbWVudCBkdSBwb3J0YWlsLjwvcD4nLFxuICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLmVtYWlsLmxhYmVsJzogJ0VtYWlsJyxcbiAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24ubm90LWNvbm5lY3RlZC5lbWFpbC5oZWxwLXRleHQnOlxuICAgICAgICAnUGFyIGV4ZW1wbGUsIGpvaG5AZG9lLmNoJyxcbiAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24ubm90LWNvbm5lY3RlZC5tb2JpbGUubGFiZWwnOlxuICAgICAgICAnTnVtw6lybyBkZSB0w6lsw6lwaG9uZSBtb2JpbGUnLFxuICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLnJlZmVyZW5jZS1pbnRlcm5lLmxhYmVsJzpcbiAgICAgICAgJ1ZvdHJlIHLDqWbDqXJlbmNlJyxcbiAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24ubm90LWNvbm5lY3RlZC5yZWZlcmVuY2UtaW50ZXJuZS5oZWxwLXRleHQnOlxuICAgICAgICAnVm90cmUgcsOpZsOpcmVuY2Ugc2VyYSB1dGlsaXPDqWUgY29tbWUgb2JqZXQgZHUgbWVzc2FnZSBxdWkgdm91cyBzZXJhIGVudm95w6kgZXQgdm91cyBwZXJtZXR0cmEgZGUgcmV0cm91dmVyIGZhY2lsZW1lbnQgY2UgbWVzc2FnZScsXG4gICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLmNhbmNlbC5idXR0b24nOiAnRmVybWVyJyxcbiAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uc2F2ZS5idXR0b24nOiAnU2F1dmVnYXJkZXInLFxuICAgICdnZXNkZW0taGFuZGxlci5zYXZlLWNvbmZpcm1hdGlvbi5sYWJlbCc6XG4gICAgICAgICdWb3MgZG9ubsOpZXMgb250IMOpdMOpIHNhdXZlZ2FyZMOpZXMgZGFucyB2b3RyZSBlc3BhY2Ugc8OpY3VyaXPDqScsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLWJ1dHRvbi5pY29uLXRpdGxlJzogJ0FmZmljaGVyIGxlIGNhbGVuZHJpZXInLFxuICAgICdmb2Vobi1kYXRlLXBpY2tlci1idXR0b24uc2NyZWVuLXJlYWRlci5zZWxlY3RlZC1kYXRlJzpcbiAgICAgICAgJ0RhdGUgc8OpbGVjdGlvbm7DqWUgOiB7c2VsZWN0ZWREYXRlfScsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLmNvbnRhaW5lci5hcmlhLWxhYmVsJzogJ0NhbGVuZHJpZXInLFxuICAgICdmb2Vobi1kYXRlLXBpY2tlci5jbG9zZS1idXR0b24uYXJpYS1sYWJlbCc6ICdGZXJtZXIgbGUgY2FsZW5kcmllcicsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLnByZXZpb3VzLW1vbnRoLWJ1dHRvbi50aXRsZSc6ICdNb2lzIHByw6ljw6lkZW50JyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIubmV4dC1tb250aC1idXR0b24udGl0bGUnOiAnTW9pcyBzdWl2YW50JyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIuc2NyZWVuLXJlYWRlci5hY3R1YWwtbW9udGgtZGlzcGxheWVkJzpcbiAgICAgICAgJ01vaXMgYWN0dWVsbGVtZW50IGFmZmljaMOpIDonLFxuICAgICdmb2Vobi1kYXRlLXBpY2tlci5zY3JlZW4tcmVhZGVyLm1vbnRoLWlucHV0LmxhYmVsJzogJ1PDqWxlY3Rpb25uZXIgdW4gbW9pcycsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLnNjcmVlbi1yZWFkZXIueWVhci1pbnB1dC5sYWJlbCc6XG4gICAgICAgICdTw6lsZWN0aW9ubmVyIHVuZSBhbm7DqWUnLFxuICAgICdlcnJvcnMuSU1BR0VfTk9UX1JFQURBQkxFJzpcbiAgICAgICAgXCJWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgbidlc3QgcGFzIHVuZSBpbWFnZSB2YWxpZGVcIixcbiAgICAnZXJyb3JzLkZJTEVOQU1FX1RPT19MT05HJzpcbiAgICAgICAgJ1ZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBhIHVuIG5vbSBkdSBmaWNoaWVyIHF1aSBleGPDqGRlIGxlIG1heGltdW0gYXV0b3Jpc8OpIDogJTIkcyBjYXJhY3TDqHJlcycsXG4gICAgJ2Vycm9ycy5GSUxFX1RPT19TTUFMTCc6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgYSB1bmUgdGFpbGxlIGluZsOpcmlldXJlIGF1IG1pbmltdW0gZXhpZ8OpIDogJTIkcyBieXRlcycsXG4gICAgJ2Vycm9ycy5QREZfUEFTU1dPUkRfTE9DS0VEJzpcbiAgICAgICAgJ1ZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBlc3QgdmVycm91aWxsw6llIHBhciB1biBtb3QgZGUgcGFzc2UnLFxuICAgICdlcnJvcnMuUERGX0NPTlRBSU5TX1NDUklQVCc6ICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgY29udGllbnQgdW4gc2NyaXB0JyxcbiAgICAnZXJyb3JzLlBERl9IQVNfQVRUQUNITUVOVFMnOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGNvbnRpZW50IHVuIGZpY2hpZXIgYXR0YWNow6knLFxuICAgICdlcnJvcnMuRU1QVFlfUERGJzogJ1ZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBlc3QgdmlkZScsXG4gICAgJ2Vycm9ycy5QREZfR0VORVJBTF9QUk9CTEVNJzpcbiAgICAgICAgJ1ZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBlc3QgY29ycm9tcHVlIFs8YSBocmVmPVwiaHR0cHM6Ly93d3cudmQuY2gvcGFnZS8yMDIxNjc1L1wiIHRhcmdldD1cIl9ibGFua1wiPkFpZGU8L2E+XScsXG4gICAgJ2Vycm9ycy5QREZfSEFTX1JFU1RSSUNUSU9OUyc6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgZXN0IHByb3TDqWfDqWUuIFZldWlsbGV6IGVubGV2ZXIgdG91dGVzIGxlcyBwcm90ZWN0aW9ucyBhdmFudCBkZSBqb2luZHJlIGNlIGZpY2hpZXIuJyxcbiAgICAnZXJyb3JzLkZJTEVOQU1FX1NIT1VMRF9OT1RfQ09OVEFJTic6XG4gICAgICAgICdMZSBub20gZGUgdm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGNvbnRpZW50IGRlcyBjYXJhY3TDqHJlcyBpbnRlcmRpdHMuJyxcbiAgICAnZXJyb3JzLjQwNic6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgbmUgY29ycmVzcG9uZCBwYXMgYXUgdHlwZSBkZSBjb250ZW51IGF1dG9yaXPDqScsXG4gICAgJ2Vycm9ycy40MTMnOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGEgdW5lIHRhaWxsZSBzdXDDqXJpZXVyZSBvdSDDqWdhbGUgw6AgbGEgbGltaXRlIGF1dG9yaXPDqWUgOiAlMiRzIE1vJyxcbiAgICAnZXJyb3JzLjQxNSc6XG4gICAgICAgICdMZSB0eXBlIGRlIHZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBuZSBmaWd1cmUgcGFzIHBhcm1pIGNldXggcXVpIHNvbnQgYXV0b3Jpc8OpcyA6IFwiJTIkc1wiJyxcbiAgICAnZXJyb3JzLjQyMic6ICdFY2hlYyBkZSBsYSBzYXV2ZWdhcmRlIGRlIGxhIHBpw6hjZSBqb2ludGUgJTEkcycsXG4gICAgJ2Vycm9ycy41MDAnOlxuICAgICAgICAnRWNoZWMgZGUgbGEgc2F1dmVnYXJkZSBkZSBsYSBwacOoY2Ugam9pbnRlICUxJHMuIFZldWlsbGV6IHLDqWVzc2F5ZXIgYXZlYyB1biBhdXRyZSBmaWNoaWVyLicsXG4gICAgJ2Vycm9ycy5zdW1tYXJ5LnRpdGxlJzogJ0lsIHkgYSB1biBwcm9ibMOobWUnLFxuICAgICdmb2Vobi11cGxvYWRlci5jaG9vc2UtYnV0dG9uLWxhYmVsJzogJ0Nob2lzaXNzZXogdW4gZG9jdW1lbnQnLFxuICAgICdmb2Vobi11cGxvYWRlci5jaG9vc2UtYnV0dG9uLWxhYmVsLW11bHRpcGxlJzpcbiAgICAgICAgJ0Nob2lzaXNzZXogdW4gb3UgcGx1c2lldXJzIGRvY3VtZW50cycsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmRyb3Atem9uZS1sYWJlbCc6ICdEw6lwb3NleiB1biBkb2N1bWVudCBvdSBjbGlxdWV6IGljaScsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmRyb3Atem9uZS1sYWJlbC1tdWx0aXBsZSc6XG4gICAgICAgICdEw6lwb3NleiB1biBvdSBwbHVzaWV1cnMgZG9jdW1lbnRzIG91IGNsaXF1ZXogaWNpJyxcbiAgICAnZm9laG4tdXBsb2FkZXIuZGVsZXRlLWNvbmZpcm1hdGlvbi1tZXNzYWdlJzpcbiAgICAgICAgJ8OKdGVzLXZvdXMgc8O7ciBkZSB2b3Vsb2lyIHN1cHByaW1lciBjZSBmaWNoaWVyID8nLFxuICAgICdmb2Vobi11cGxvYWRlci5hYmJyLW1lZ2FvY3RldCc6ICdNbycsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmFiYnItbWVnYW9jdGV0LXRpdGxlJzogJ01lZ2FvY3RldCcsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmRlbGV0ZS1pY29uLXRpdGxlJzogJ1N1cHByaW1lciB7ZG9jTmFtZX0nLFxuICAgICdmb2Vobi11cGxvYWRlci5tYXgtdXBsb2FkLXNlbGVjdGlvbi1yZWFjaGVkJzpcbiAgICAgICAgJ1ZvdXMgbmUgcG91dmV6IHBhcyB0w6lsw6ljaGFyZ2VyIHBsdXMgZGUge21heFNlbGVjdGlvbn0gZmljaGllcnMgw6AgbGEgZm9pcy4nLFxuICAgICdmb2Vobi11cGxvYWRlci5tYXgtZmlsZXMtY291bnQtcmVhY2hlZCc6XG4gICAgICAgICdMZSBub21icmUgdG90YWwgZGUgZmljaGllcnMgdMOpbMOpY2hhcmfDqXMgbmUgZG9pdCBwYXMgZMOpcGFzc2VyIHttYXhGaWxlc0NvdW50fSBmaWNoaWVycy4nLFxuICAgICdmb2Vobi11cGxvYWRlci5tYXgtZmlsZXMtc2l6ZS1yZWFjaGVkJzpcbiAgICAgICAgJ0xhIHRhaWxsZSB0b3RhbGUgZGVzIGZpY2hpZXJzIHTDqWzDqWNoYXJnw6lzIG5lIGRvaXQgcGFzIGTDqXBhc3NlciB7bWF4RmlsZXNTaXplSW5Nb30gTWVnYW9jdGV0cyAoTW8pLicsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmZpbGVzLXNhdmVkLXN1Y2Nlc3MtbWVzc2FnZSc6XG4gICAgICAgICd7c3VjY2Vzc2Z1bERvY3VtZW50c0NvdW50fSBmaWNoaWVyKHMpIHNhdXZlZ2FyZMOpKHMpIGF2ZWMgc3VjY8OocycsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLnRyYW5zbWlzc2lvbi1lcnJvci1tZXNzYWdlJzpcbiAgICAgICAgJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbGEgdHJhbnNtaXNzaW9uIGRlIHZvcyBkb2N1bWVudHMnLFxuICAgICdmb2Vobi11cGxvYWRlci5maWxlcy1kZWxldGVkLXN1Y2Nlc3MtbWVzc2FnZSc6XG4gICAgICAgICdTdXBwcmVzc2lvbiBkdSBmaWNoaWVyIHtmaWxlbmFtZX0gcsOpdXNzaWUnLFxuICAgICdmb2Vobi11cGxvYWRlci5kZWxldGUtZXJyb3ItbWVzc2FnZSc6XG4gICAgICAgICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGxhIHN1cHByZXNzaW9uIGRlIHZvdHJlIGRvY3VtZW50JyxcbiAgICAnZm9laG4tcGljdHVyZS11cGxvYWQuY2hvb3NlLWJ1dHRvbi1sYWJlbCc6ICdDaG9pc2lzc2V6IHVuZSBwaG90bycsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmxvYWRpbmctbGFiZWwnOiAnQ2hhcmdlbWVudC4uLicsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmludmFsaWQtZmlsZS10eXBlJzpcbiAgICAgICAgJ0xlIHR5cGUgZGUgdm90cmUgcGnDqGNlIGpvaW50ZSB7ZmlsZW5hbWV9IG5lIGZpZ3VyZSBwYXMgcGFybWkgY2V1eCBxdWkgc29udCBhdXRvcmlzw6lzIDogXCJ7YWNjZXB0Rm9ybWF0c31cIicsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmxvYWRpbmctZmFpbHVyZS1sYWJlbCc6XG4gICAgICAgICdJbXBvc3NpYmxlIGRlIGNoYXJnZXIgbGEgcGhvdG8gc8OpbGVjdGlvbm7DqWUnLFxuICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC52YWxpZGF0ZS1zZWxlY3Rpb24tbGFiZWwnOiAnVmFsaWRlciBsYSBzw6lsZWN0aW9uJyxcbiAgICAnZm9laG4tcGljdHVyZS11cGxvYWQuY2FuY2VsLXNlbGVjdGlvbi1sYWJlbCc6ICdBbm51bGVyJyxcbiAgICAnZm9laG4tcGljdHVyZS11cGxvYWQuc2VsZWN0aW9uLW5vdC12YWxpZGF0ZWQtbGFiZWwnOlxuICAgICAgICAnTWVyY2kgZGUgdmFsaWRlciB2b3RyZSBzw6lsZWN0aW9uJyxcbiAgICAnZm9laG4tcGljdHVyZS11cGxvYWQuZGVsZXRlLXBpY3R1cmUtbGFiZWwnOiAnU3VwcHJpbWVyJyxcbiAgICAnZm9laG4tc2VsZWN0Lm5vLXNlbGVjdGlvbi5sYWJlbCc6ICctJyxcbiAgICAnZm9laG4tdGFibGUudG90YWxFbGVtZW50cyc6ICd7dG90YWx9IMOpbMOpbWVudHMgdHJvdXbDqXMnLFxuICAgICdmb2Vobi10YWJsZS50b3RhbEVsZW1lbnRzLjEnOiAnMSDDqWzDqW1lbnQgdHJvdXbDqScsXG4gICAgJ2ZvZWhuLXRhYmxlLnRvdGFsRWxlbWVudHMuMCc6ICdBdWN1biByw6lzdWx0YXQnLFxuICAgICdmb2Vobi10YWJsZS5oZWFkZXIuYWN0aW9ucyc6ICdBY3Rpb25zJyxcbiAgICAnZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci5zdGVwMSc6ICdTYWlzaWUnLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAxLnNyT25seSc6ICdFdGFwZSAxIHN1ciAzLCBTYWlzaWUnLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAyJzogJ1bDqXJpZmljYXRpb24nLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAyLnNyT25seSc6ICdFdGFwZSAyIHN1ciAzLCBWw6lyaWZpY2F0aW9uJyxcbiAgICAnZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci5zdGVwMyc6ICdUcmFuc21pc3Npb24nLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAzLnNyT25seSc6XG4gICAgICAgICdFdGFwZSAzIHN1ciAzLCBEZW1hbmRlIHRyYW5zbWlzZScsXG4gICAgJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5zZWxlY3RlZC5kZWxldGUnOlxuICAgICAgICAnU3VwcHJpbWVyIHtlbGVtZW50TGFiZWx9JyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLnNyLWFubm91bmNlbWVudC5kZWxldGVkJzpcbiAgICAgICAgJ3tlbGVtZW50TGFiZWx9IGEgw6l0w6kgc3VwcHJpbcOpLCcsXG4gICAgJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5zci1hbm5vdW5jZW1lbnQuYWRkZWQnOlxuICAgICAgICAne2VsZW1lbnRMYWJlbH0gYSDDqXTDqSBham91dMOpLCcsXG4gICAgJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5zZWxlY3RlZC1pdGVtcy1saXN0LWxlZ2VuZCc6XG4gICAgICAgICdFbMOpbWVudHMgc8OpbGVjdGlvbm7DqXMnLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuc3ItZGVmYXVsdC1mb2N1cy5uby1lbGVtZW50LXRvLWRlbGV0ZSc6XG4gICAgICAgICdBdWN1biDDqWzDqW1lbnQgc8OpbGVjdGlvbm7DqS4nLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuc3ItZGVmYXVsdC1zZWxlY3RlZC1lbGVtZW50JzpcbiAgICAgICAgJyhzw6lsZWN0aW9uIHBhciBkw6lmYXV0KScsXG4gICAgJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5hdXRvY29tcGxldGUuZW1wdHktbWVzc2FnZSc6XG4gICAgICAgICdUb3VzIGxlcyDDqWzDqW1lbnRzIGRlIGxhIGxpc3RlIGRlIHByb3Bvc2l0aW9uIG9udCBkw6lqw6Agw6l0w6kgYWpvdXTDqXMuJyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmF1dG9jb21wbGV0ZS5zY3JlZW4tcmVhZGVyLmxhYmVsJzpcbiAgICAgICAgJ1PDqWxlY3Rpb25uZXIgdW4gw6lsw6ltZW50IGRhbnMgbGEgbGlzdGUgZGUgcmVjaGVyY2hlJyArXG4gICAgICAgIFwiIGNpLWRlc3NvdXMgcG91ciBsJ2Fqb3V0ZXIgw6Agdm90cmUgc8OpbGVjdGlvbi5cIixcbiAgICAnZm9laG4tYWdlbmRhLmNhbGVuZGFyLWluZGlzcG9uaWJsZSc6XG4gICAgICAgICdMZSBjYWxlbmRyaWVyIGRlcyByZW5kZXotdm91cyBlc3QgYWN0dWVsbGVtZW50IGluZGlzcG9uaWJsZS4nLFxuICAgICdmb2Vobi1hZ2VuZGEucGFnaW5hdGlvbi1hbmNob3IuZmlyc3QtcGFydCc6XG4gICAgICAgICdWb3VzIHBvdXZleiBjaGFuZ2VyIGRlIHNlbWFpbmUgYXUgbW95ZW4gZGUnLFxuICAgICdmb2Vobi1hZ2VuZGEucGFnaW5hdGlvbi1hbmNob3IudG9wLW5leHQtcGFydCc6ICdsYSBwYWdpbmF0aW9uIGNpLWRlc3NvdXMuJyxcbiAgICAnZm9laG4tYWdlbmRhLnBhZ2luYXRpb24tYW5jaG9yLmJvdHRvbS1uZXh0LXBhcnQnOlxuICAgICAgICAnbGEgcGFnaW5hdGlvbiBjaS1kZXNzdXMuJyxcbiAgICAnZm9laG4tYWdlbmRhLnRpbWVzbG90LnNlbGVjdGVkJzogJyBzw6lsZWN0aW9ubsOpJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLm5vLWRpc3BvJzogJyhhdWN1bmUgZGlzcG9uaWJpbGl0w6kpJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLm5ici1kaXNwbyc6ICd7bmJFbGVtZW50c30gZGlzcG9uaWJpbGl0w6lzJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLnNlbGVjdGVkLXRpbWUnOlxuICAgICAgICAne3RpbWVTZWxlY3RlZFZhbHVlfSBzw6lsZWN0aW9ubsOpJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLnNob3ctbW9yZS1zci1vbmx5JzpcbiAgICAgICAgJ0FmZmljaGVyIGxlcyB7bmJyRWxlbWVudHNIaWRkZW59IGRpc3BvbmliaWxpdMOpcyBtYXNxdcOpZXMnLFxuICAgICdmb2Vobi5hZ2VuZGEtdGltZXNsb3QtcGFuZWwuc2hvdy1tb3JlJzpcbiAgICAgICAgJ0FmZmljaGVyIHBsdXMgKHtuYnJFbGVtZW50c0hpZGRlbn0pJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLnNob3ctbGVzcyc6ICdBZmZpY2hlciBtb2lucycsXG4gICAgJ2ZvZWhuLWFnZW5kYS1uYXZpZ2F0aW9uLnByZXZpb3VzLXdlZWsnOiAnU2VtYWluZSBwcsOpY8OpZGVudGUnLFxuICAgICdmb2Vobi1hZ2VuZGEtbmF2aWdhdGlvbi5wcmV2aW91cy13ZWVrLXNyLW9ubHknOlxuICAgICAgICAnU2VtYWluZSBwcsOpY8OpZGVudGUgOiB7cHJldmlvdXNXZWVrfScsXG4gICAgJ2ZvZWhuLWFnZW5kYS1uYXZpZ2F0aW9uLm5leHQtd2Vlayc6ICdTZW1haW5lIHN1aXZhbnRlJyxcbiAgICAnZm9laG4tYWdlbmRhLW5hdmlnYXRpb24ubmV4dC13ZWVrLXNyLW9ubHknOlxuICAgICAgICAnU2VtYWluZSBzdWl2YW50ZSA6IHtuZXh0V2Vla30nLFxuICAgICdmb2Vobi1hZ2VuZGEtbmF2aWdhdGlvbi5uYXYuYXJpYS1sYWJlbCc6ICdDaGFuZ2VyIGRlIHNlbWFpbmUnLFxuICAgICdmb2Vobi1hZ2VuZGEtbmF2aWdhdGlvbi5kYXRlLXBpY2tlci1idXR0b24uc2NyZWVuLXJlYWRlci5zZWxlY3RlZC1kYXRlJzpcbiAgICAgICAgJ1NlbWFpbmUgZHUge3NlbGVjdGVkRGF0ZX0gc8OpbGVjdGlvbm7DqWUnLFxuICAgICdnZXNkZW0tZGVtYW5kLWRldGFpbCc6ICdEw6l0YWlsIGRlIGxhIGRlbWFuZGUge3JlZmVyZW5jZX0nLFxuICAgICdnZXNkZW0tZXJyb3IudGV4dC5oYXMtcmVmZXJlbmNlJzpcbiAgICAgICAgJ1ZvdXMgcG91dmV6IGVzc2F5ZXIgZGUgcmVwcmVuZHJlIHZvdHJlIGRlbWFuZGUgZW4gY2xpcXVhbnQgc3VyIGxlIGxpZW4gY2ktZGVzc291cycsXG4gICAgJ2dlc2RlbS1lcnJvci5saW5rLmhhcy1yZWZlcmVuY2UnOiAnUmVwcmVuZHJlIG1hIGRlbWFuZGUnLFxuICAgICdnZXNkZW0tZXJyb3IudGV4dC5oYXMtbm8tcmVmZXJlbmNlJzpcbiAgICAgICAgJ1ZvdXMgcG91dmV6IHJlY29tbWVuY2VyIHVuZSBkZW1hbmRlIGVuIGNsaXF1YW50IHN1ciBsZSBsaWVuIGNpLWRlc3NvdXMnLFxuICAgICdnZXNkZW0tZXJyb3IubGluay5oYXMtbm8tcmVmZXJlbmNlJzogJ1JlY29tbWVuY2VyJyxcbiAgICAnZ2VzZGVtLWVycm9yLnRleHQucGVuZGluZy1wYXltZW50JzpcbiAgICAgICAgJzxwPlVuIHByb2Jsw6htZSBlc3Qgc3VydmVudSBsb3JzIGRlIGxhIHRyYW5zbWlzc2lvbiBkZSB2b3RyZSBkZW1hbmRlLjwvcD4nICtcbiAgICAgICAgJzxwPjxzdHJvbmc+TWVyY2kgZGUgbmUgcGFzIHJlZmFpcmUgdW5lIG5vdXZlbGxlIGRlbWFuZGUgdG91dCBkZSBzdWl0ZS48L3N0cm9uZz48L3A+JyArXG4gICAgICAgIFwiPHA+U2FucyBjb25maXJtYXRpb24gZGUgbGEgdHJhbnNtaXNzaW9uIGRlIHZvdHJlIGRlbWFuZGUgZGFucyB1biBkw6lsYWkgZCd1biBqb3VyLCBcIiArXG4gICAgICAgICdub3VzIHZvdXMgcHJpb25zIGRlIDxhIGhyZWY9XCJ7c3VwcG9ydExpbmt9XCIgdGFyZ2V0PVwiX2JsYW5rXCI+Y29udGFjdGVyIGxlIHN1cHBvcnQ8L2E+LicsXG4gICAgJ2ZvZWhuLWRyb3Bkb3duLW1lbnUuYXJpYS1sYWJlbCc6ICdNZW51IGTDqXJvdWxhbnQnLFxuICAgICdmb2Vobi1tb2RhbC5idG4tY2xvc2UuYXJpYS1sYWJlbCc6ICdGZXJtZXIgbGEgYm9pdGUgZGUgZGlhbG9ndWUnLFxuICAgICdmb2Vobi1tb2RhbC5idG4tY2xvc2UudGl0bGUnOiAnRmVybWVyJyxcbiAgICAnZm9laG4tdGV4dGFyZWEuY2hhcnMtcmVtYWluaW5nLnBsdXJhbCc6XG4gICAgICAgICd7Y2hhckNvdW50TGVmdH0gY2FyYWN0w6hyZXMgcmVzdGFudHMnLFxuICAgICdmb2Vobi10ZXh0YXJlYS5jaGFycy1yZW1haW5pbmcuc2luZ3VsYXInOlxuICAgICAgICAne2NoYXJDb3VudExlZnR9IGNhcmFjdMOocmUgcmVzdGFudCcsXG4gICAgJ2ZvZWhuLXRleHRhcmVhLmNoYXJzLXJlbWFpbmluZy56ZXJvJzpcbiAgICAgICAgJ1ZvdXMgYXZleiBhdHRlaW50IGxlIG5vbWJyZSBkZSBjYXJhY3TDqHJlcyBhdXRvcmlzw6lzJyxcbiAgICAnZm9laG4tdGV4dGFyZWEuY2hhcnMtcmVtYWluaW5nLmV4Y2VlZGVkJzpcbiAgICAgICAgJ1ZvdXMgYXZleiBkw6lwYXNzw6kgbGUgbm9tYnJlIGRlIGNhcmFjdMOocmVzIGF1dG9yaXPDqXMgZGUge2NoYXJDb3VudExlZnR9JyxcbiAgICAnZm9laG4tdXBsb2FkLXByb2dyZXNzLWJhci50aXRsZSc6ICdUcmFpdGVtZW50IGRlIHZvdHJlIGVudm9pJyxcbiAgICAnZm9laG4tdXBsb2FkLXByb2dyZXNzLWJhci51cGxvYWQnOiAnRW5yZWdpc3RyZW1lbnQgZW4gY291cnMuLi4nLFxuICAgICdmb2Vobi11cGxvYWQtcHJvZ3Jlc3MtYmFyLmdyb3VwLnVwbG9hZCc6XG4gICAgICAgICdMb3Qge3BhY2thZ2VJbmRleH0ve25iUGFja2FnZXN9IDogRW5yZWdpc3RyZW1lbnQgZW4gY291cnMuLi4nLFxuICAgICdmb2Vobi11cGxvYWQtcHJvZ3Jlc3MtYmFyLmFuYWx5c2lzJzpcbiAgICAgICAgJ0FuYWx5c2UgZW4gY291cnMuLi4gTWVyY2kgZGUgcGF0aWVudGVyLicsXG4gICAgJ2ZvZWhuLXVwbG9hZC1wcm9ncmVzcy1iYXIuZ3JvdXAuYW5hbHlzaXMnOlxuICAgICAgICAnTG90IHtwYWNrYWdlSW5kZXh9L3tuYlBhY2thZ2VzfSA6IEFuYWx5c2UgZW4gY291cnMuLi4gTWVyY2kgZGUgcGF0aWVudGVyLicsXG4gICAgJ2ZvZWhuLXVwbG9hZC1wcm9ncmVzcy1iYXIuZ3JvdXAuaW5mbyc6XG4gICAgICAgICdMZSB0w6lsw6ljaGFyZ2VtZW50IHNlIGZhaXQgZW4gcGx1c2lldXJzIGxvdHMgZW4gZm9uY3Rpb24gZHUgbm9tYnJlIGRlIGZpY2hpZXJzIGNoYXJnw6lzJyxcbiAgICAnZXJyb3JzLk5vdE51bGwnOiAnQ2UgY2hhbXAgZG9pdCDDqnRyZSByZW1wbGknLFxuICAgICdmb2Vobi1oZWFkZXIubG9nby50aXRsZSc6XG4gICAgICAgIFwiQWxsZXIgw6AgbGEgcGFnZSBkJ2FjY3VlaWwgZHUgU2l0ZSBkdSBDYW50b24gZGUgVmF1ZFwiLFxuICAgICdmb2Vobi1oZWFkZXIuY3liZXItc2VjdXJlZC1hcmVhLmlkZW50aXR5LnNyT25seSc6ICdWb3RyZSBpZGVudGl0w6knLFxuICAgICdmb2Vobi1oZWFkZXIuY3liZXItc2VjdXJlZC1hcmVhLnRpdGxlJzogJ0VzcGFjZSBzw6ljdXJpc8OpOicsXG4gICAgJ2ZvZWhuLWhlYWRlci5jeWJlci1zZWN1cmVkLWFyZWEuY29ubmVjdGVkLXVzZXInOiAnUGVyc29ubmUgY29ubmVjdMOpZTonLFxuICAgICdmb2Vobi1oZWFkZXIuY3liZXItc2VjdXJlZC1hcmVhLmNvbm5lY3Rpb24uc3JPbmx5JzpcbiAgICAgICAgXCJDb25uZXhpb24gw6AgbCdlc3BhY2Ugc8OpY3VyaXPDqVwiLFxuICAgICdmb2Vobi1oZWFkZXIuY3liZXItc2VjdXJlZC1hcmVhLmNvbm5lY3Rpb24uYnV0dG9uLnRpdGxlJzogJ1NlIGNvbm5lY3RlcicsXG4gICAgJ2ZvZWhuLWhlYWRlci5pYW0tc2VjdXJlZC1hcmVhLmlkZW50aXR5LnNyT25seSc6ICdWb3RyZSBpZGVudGl0w6knLFxuICAgICdmb2Vobi1oZWFkZXIuaWFtLXNlY3VyZWQtYXJlYS5jb25uZWN0ZWQtdXNlcic6ICdQZXJzb25uZSBjb25uZWN0w6llOicsXG4gICAgJ2ZvZWhuLWhlYWRlci5pYW0tc2VjdXJlZC1hcmVhLmxvZ291dCc6IFwiUXVpdHRlciBsJ2FwcGxpY2F0aW9uXCIsXG4gICAgJ2ZvZWhuLXNraXAtbGluay50aXRsZSc6ICdbQWx0KzBdIETDqWJ1dCBkdSBjb250ZW51IGRlIGxhIHBhZ2UnLFxuICAgICdmb2Vobi1za2lwLWxpbmsuY29udGVudCc6ICdEw6lidXQgZHUgY29udGVudSBkZSBsYSBwYWdlJyxcbiAgICAnZXNwYWNlLXNlY3VyaXNlLm1lbnUuaXRlbS5hY2N1ZWlsLmxhYmVsJzogJ0FjY3VlaWwnLFxuICAgICdlc3BhY2Utc2VjdXJpc2UubWVudS5pdGVtLmFjY3VlaWwudGl0bGUnOiAnQWNjdWVpbCcsXG4gICAgJ2VzcGFjZS1zZWN1cmlzZS5tZW51Lml0ZW0ucHJlZmVyZW5jZXMubGFiZWwnOiAnUHLDqWbDqXJlbmNlcycsXG4gICAgJ2VzcGFjZS1zZWN1cmlzZS5tZW51Lml0ZW0ucHJlZmVyZW5jZXMudGl0bGUnOiAnUHLDqWbDqXJlbmNlcycsXG4gICAgJ2VzcGFjZS1zZWN1cmlzZS5tZW51Lml0ZW0uZ2VzdGlvbi1jb21wdGUubGFiZWwnOiAnR2VzdGlvbiBkdSBjb21wdGUnLFxuICAgICdlc3BhY2Utc2VjdXJpc2UubWVudS5pdGVtLmdlc3Rpb24tY29tcHRlLnRpdGxlJzogJ0dlc3Rpb24gZHUgY29tcHRlJyxcbiAgICAnZXNwYWNlLXNlY3VyaXNlLm1lbnUuaXRlbS5vcGVyYXRpb25zLWxpZWVzLWVzcGFjZS1wcm8ubGFiZWwnOlxuICAgICAgICAnT3DDqXJhdGlvbnMgbGnDqWVzIGF1eCBlc3BhY2VzIHByb2Zlc3Npb25uZWxzJyxcbiAgICAnZXNwYWNlLXNlY3VyaXNlLm1lbnUuaXRlbS5vcGVyYXRpb25zLWxpZWVzLWVzcGFjZS1wcm8udGl0bGUnOlxuICAgICAgICAnT3DDqXJhdGlvbnMgbGnDqWVzIGF1eCBlc3BhY2VzIHByb2Zlc3Npb25uZWxzJyxcbiAgICAnZXNwYWNlLXNlY3VyaXNlLm1lbnUuaXRlbS5hZG1pbmlzdHJlci1lc3BhY2UtcHJvLmxhYmVsJzpcbiAgICAgICAgXCJBZG1pbmlzdHJlciBsJ2VzcGFjZSBwcm9mZXNzaW9ubmVsXCIsXG4gICAgJ2VzcGFjZS1zZWN1cmlzZS5tZW51Lml0ZW0uYWRtaW5pc3RyZXItZXNwYWNlLXByby50aXRsZSc6XG4gICAgICAgIFwiQWRtaW5pc3RyZXIgbCdlc3BhY2UgcHJvZmVzc2lvbm5lbFwiLFxuICAgICdlc3BhY2Utc2VjdXJpc2UubWVudS5pdGVtLmRlY29ubmVjdGlvbi5sYWJlbCc6ICdTZSBkw6ljb25uZWN0ZXInLFxuICAgICdlc3BhY2Utc2VjdXJpc2UubWVudS5pdGVtLmRlY29ubmVjdGlvbi50aXRsZSc6ICdTZSBkw6ljb25uZWN0ZXInXG59O1xuIl19