vcomply-workflow-engine 6.1.43 → 6.1.44

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.
@@ -60,7 +60,7 @@ export class FrequencyContainerComponent {
60
60
  },
61
61
  {
62
62
  name: 'On Completion Of',
63
- type: 'onCompletionOf',
63
+ type: 'on_complete',
64
64
  },
65
65
  {
66
66
  name: 'Ongoing',
@@ -75,14 +75,14 @@ export class FrequencyContainerComponent {
75
75
  if (this.frequencyDetails.pattern != '') {
76
76
  this.populateFrequency();
77
77
  }
78
- const hideElements = ['random', 'onCompletionOf', 'ongoing'];
78
+ const hideElements = ['random', 'on_complete', 'ongoing'];
79
79
  if (this.mode == 'policy') {
80
80
  hideElements.forEach((element) => {
81
81
  const index = this.frequencyList.findIndex((elementIndex) => elementIndex.type == element);
82
82
  this.frequencyList.splice(index, 1);
83
83
  });
84
84
  }
85
- const hideElements2 = ['daily', 'random', 'onCompletionOf', 'ongoing'];
85
+ const hideElements2 = ['daily', 'random', 'on_complete', 'ongoing'];
86
86
  if (this.mode == 'reviewerFrequency') {
87
87
  this.frequencyTab =
88
88
  this.frequencyDetails?.pattern == '' ? 'weekly' : this.frequencyTab;
@@ -126,7 +126,7 @@ export class FrequencyContainerComponent {
126
126
  this.currentTabName = 'a daily';
127
127
  break;
128
128
  case 6:
129
- this.frequencyTab = 'onCompletionOf';
129
+ this.frequencyTab = 'on_complete';
130
130
  this.currentTabName = 'an on completion of';
131
131
  this.frequencyData.report_id = this.frequencyDetails.selectedReport;
132
132
  break;
@@ -241,7 +241,7 @@ export class FrequencyContainerComponent {
241
241
  isInvalid = true;
242
242
  }
243
243
  break;
244
- case 'onCompletionOf':
244
+ case 'on_complete':
245
245
  if (this.frequencyData.onCompletion?.responsibility > 0) {
246
246
  isInvalid = false;
247
247
  }
@@ -282,11 +282,11 @@ export class FrequencyContainerComponent {
282
282
  this.closeFrequency.emit();
283
283
  }
284
284
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyContainerComponent, deps: [{ token: i1.FrequencyService }, { token: i2.SnackBarService }], target: i0.ɵɵFactoryTarget.Component }); }
285
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FrequencyContainerComponent, selector: "app-frequency-container", inputs: { frequencyDetails: "frequencyDetails", mode: "mode", feature: "feature", pageType: "pageType" }, outputs: { selectedFrequency: "selectedFrequency", closeFrequency: "closeFrequency" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"mode !== 'policy'\">\n <div class=\"frequency-dialog\" *ngIf=\"mode !== 'policy'\">\n <div\n class=\"frequency-dialog-head vx-p-3 vx-mb-4 vx-d-flex vx-align-center vx-justify-between\"\n >\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Set a Frequency</div>\n </div>\n <div class=\"frequency-dialog-body vx-pl-4 vx-pr-4\">\n <div class=\"frequency-dialog-body-inner\" [ngSwitch]=\"frequencyTab\">\n <div class=\"frequency-tab vx-d-flex vx-align-center\">\n <ng-container *ngFor=\"let frequencyType of frequencyList; let i = index\">\n <button (click)=\"changeFrequencyTab(frequencyType)\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0\" [class.active]=\"frequencyType?.type == frequencyTab\">{{ frequencyType?.name }}</button>\n </ng-container>\n </div>\n <div class=\"frequency-tab-bottom vx-pl-4 vx-pr-4\">\n <!-- Daily Frequency Start -->\n <app-frequency-daily\n *ngSwitchCase=\"'daily'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-daily>\n <!-- Daily Frequency End -->\n <!-- Weekly Frequency Start -->\n <app-frequency-weekly\n *ngSwitchCase=\"'weekly'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-weekly>\n <!-- Weekly Frequency End -->\n <!-- Monthly Frequency Start -->\n <app-frequency-monthly\n *ngSwitchCase=\"'monthly'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-monthly>\n <!-- Monthly Frequency End -->\n <!-- Quarterly Frequency Start -->\n <app-frequency-quarterly\n *ngSwitchCase=\"'quarterly'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-quarterly>\n <!-- Quarterly Frequency End -->\n <!-- Biannual Frequency Start -->\n <app-frequency-biannual\n *ngSwitchCase=\"'biannual'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-biannual>\n <!-- Biannual Frequency End -->\n <!-- Annual Frequency Start -->\n <app-frequency-annual\n *ngSwitchCase=\"'annual'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-annual>\n <!-- Annual Frequency End -->\n <!-- One Time Frequency Start -->\n <app-frequency-one-time\n *ngSwitchCase=\"'oneTime'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-one-time>\n <!-- One Time Frequency End -->\n <!-- Random Frequency Start -->\n <app-frequency-random\n *ngSwitchCase=\"'random'\"\n [mode]=\"mode\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-random>\n <!-- Random Frequency End -->\n <!-- On Completion Frequency Start -->\n <app-frequency-on-completion-of\n *ngSwitchCase=\"'onCompletionOf'\"\n [mode]=\"mode\"\n [feature]=\"feature\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n (radioForm)=\"openedRadio($event)\"\n ></app-frequency-on-completion-of>\n <!-- On Completion Frequency End -->\n <!-- Ongoing Frequency Start -->\n <app-frequency-ongoing\n *ngSwitchCase=\"'ongoing'\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-ongoing>\n <!-- Ongoing Frequency End -->\n </div>\n </div>\n </div>\n\n <div class=\"frequency-dialog-footer\" *ngIf=\"!openedRadioForm\">\n <app-floating-bar\n [showFrequencyText]=\"true\"\n [currentFrequency]=\"currentTabName\"\n [isDisabled]=\"isNextDisabled\"\n (closeEvent)=\"save()\"\n (closeList)=\"close()\"\n ></app-floating-bar>\n </div>\n </div>\n</ng-container>\n<!-- When responsibility list show then hide frequency-dialog html -->\n\n<!-- For Policy -->\n<div class=\"frequency-dialog\" *ngIf=\"mode === 'policy'\">\n <div class=\"frequency-dialog-head vx-p-3 vx-mb-4 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Set a Frequency</div>\n </div>\n <div class=\"frequency-dialog-body vx-pl-4 vx-pr-4\">\n <div class=\"frequency-dialog-body-inner\" [ngSwitch]=\"frequencyTab\">\n <div class=\"frequency-tab vx-d-flex vx-align-center\">\n <ng-container *ngFor=\"let frequencyType of frequencyList; let i = index\">\n <button (click)=\"changeFrequencyTab(frequencyType)\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0\" [class.active]=\"frequencyType?.type == frequencyTab\">{{ frequencyType?.name }}</button>\n </ng-container>\n </div>\n <div class=\"frequency-tab-bottom vx-pl-4 vx-pr-4\">\n <!-- Daily Frequency Start -->\n <app-frequency-daily\n *ngSwitchCase=\"'daily'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-daily>\n <!-- Daily Frequency End -->\n <!-- Weekly Frequency Start -->\n <app-frequency-weekly\n *ngSwitchCase=\"'weekly'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-weekly>\n <!-- Weekly Frequency End -->\n <!-- Monthly Frequency Start -->\n <app-frequency-monthly\n *ngSwitchCase=\"'monthly'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-monthly>\n <!-- Monthly Frequency End -->\n <!-- Quarterly Frequency Start -->\n <app-frequency-quarterly\n *ngSwitchCase=\"'quarterly'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-quarterly>\n <!-- Quarterly Frequency End -->\n <!-- Biannual Frequency Start -->\n <app-frequency-biannual\n *ngSwitchCase=\"'biannual'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-biannual>\n <!-- Biannual Frequency End -->\n <!-- Annual Frequency Start -->\n <app-frequency-annual\n *ngSwitchCase=\"'annual'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-annual>\n <!-- Annual Frequency End -->\n <!-- One Time Frequency Start -->\n <app-frequency-one-time\n *ngSwitchCase=\"'oneTime'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-one-time>\n <!-- One Time Frequency End -->\n <!-- Random Frequency Start -->\n <app-frequency-random\n *ngSwitchCase=\"'random'\"\n [mode]=\"mode\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-random>\n <!-- Random Frequency End -->\n <!-- On Completion Frequency Start -->\n <app-frequency-on-completion-of\n *ngSwitchCase=\"'onCompletionOf'\"\n [mode]=\"mode\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-on-completion-of>\n <!-- On Completion Frequency End -->\n <!-- Ongoing Frequency Start -->\n <app-frequency-ongoing\n *ngSwitchCase=\"'ongoing'\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-ongoing>\n <!-- Ongoing Frequency End -->\n </div>\n </div>\n </div>\n <div class=\"frequency-dialog-footer\">\n <app-floating-bar\n [showFrequencyText]=\"true\"\n [currentFrequency]=\"currentTabName\"\n [isDisabled]=\"isNextDisabled\"\n (closeEvent)=\"save()\"\n (closeList)=\"close()\"\n ></app-floating-bar>\n </div>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-dialog{position:fixed;inset:0 500px 0 0;z-index:11}::ng-deep .frequency-dialog:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}@media screen and (max-width: 1280px){::ng-deep .frequency-dialog{right:30px}::ng-deep .frequency-dialog .frequency-dialog-body .frequency-dialog-body-inner .frequency-tab-bottom app-frequency-on-completion-of .frequency-completion .frequency-completion-inner .frequency-completion-bottom app-frequency-responsibility-list .frequency-responsibility-list{right:0;z-index:9999}}::ng-deep .frequency-dialog-head{background:#fbfbfb;border-radius:.125rem .125rem 0 0;border-bottom:1px solid #f1f1f1}::ng-deep .frequency-dialog-head button.back-btn{background:transparent;border-radius:0;border:none}::ng-deep .frequency-dialog-body{height:calc(100vh - 9.75rem);margin:0 auto 1rem;overflow:hidden;overflow-y:auto;width:calc(100% - 2.5rem)}::ng-deep .frequency-dialog-body::-webkit-scrollbar-track{background-color:transparent}::ng-deep .frequency-dialog-body-inner{width:54.5rem;margin:0 auto}@media screen and (min-width: 1366px){::ng-deep .frequency-dialog-body-inner{width:auto}}::ng-deep .frequency-dialog-body .frequency-tab{border:none!important;border-bottom:1px solid #f1f1f1!important;margin-bottom:1.5rem}::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.125rem solid transparent;height:1.5rem;margin-right:1.5rem!important}::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn:last-of-type{margin-right:0!important}@media screen and (max-width: 1366px){::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn{margin-right:1rem!important}}@media screen and (max-width: 1280px){::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn{margin-right:.75rem!important}}::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn.active{color:#1e5dd3!important;border-color:#1e5dd3}::ng-deep .frequency-dialog-footer{padding:0 2rem}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "isResponsibility", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "component", type: i5.FrequencyDailyComponent, selector: "app-frequency-daily", inputs: ["mode", "frequencyData", "startDate", "pageType"], outputs: ["frequencyDetails"] }, { kind: "component", type: i6.FrequencyWeeklyComponent, selector: "app-frequency-weekly", inputs: ["mode", "pageType", "startDate", "frequencyData"], outputs: ["frequencyDetails"] }, { kind: "component", type: i7.FrequencyMonthlyComponent, selector: "app-frequency-monthly", inputs: ["mode", "pageType", "startDate", "frequencyData"], outputs: ["frequencyDetails"] }, { kind: "component", type: i8.FrequencyQuarterlyComponent, selector: "app-frequency-quarterly", inputs: ["mode", "startDate", "frequencyData", "pageType"], outputs: ["frequencyDetails"] }, { kind: "component", type: i9.FrequencyBiannualComponent, selector: "app-frequency-biannual", inputs: ["mode", "pageType", "startDate", "frequencyData"], outputs: ["frequencyDetails"] }, { kind: "component", type: i10.FrequencyAnnualComponent, selector: "app-frequency-annual", inputs: ["pageType", "frequencyData", "mode", "startDate"], outputs: ["frequencyDetails"] }, { kind: "component", type: i11.FrequencyOneTimeComponent, selector: "app-frequency-one-time", inputs: ["pageType", "frequencyData", "mode"], outputs: ["frequencyDetails"] }, { kind: "component", type: i12.FrequencyRandomComponent, selector: "app-frequency-random", inputs: ["mode", "startDate", "frequencyData"], outputs: ["frequencyDetails"] }, { kind: "component", type: i13.FrequencyOnCompletionOfComponent, selector: "app-frequency-on-completion-of", inputs: ["mode", "feature", "startDate", "frequencyData"], outputs: ["frequencyDetails", "radioForm"] }, { kind: "component", type: i14.FrequencyOngoingComponent, selector: "app-frequency-ongoing", inputs: ["selectedType", "selectedOngoingType", "frequencyData", "startDate"], outputs: ["frequencyDetails"] }] }); }
285
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FrequencyContainerComponent, selector: "app-frequency-container", inputs: { frequencyDetails: "frequencyDetails", mode: "mode", feature: "feature", pageType: "pageType" }, outputs: { selectedFrequency: "selectedFrequency", closeFrequency: "closeFrequency" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"mode !== 'policy'\">\n <div class=\"frequency-dialog\" *ngIf=\"mode !== 'policy'\">\n <div class=\"frequency-dialog-head vx-p-3 vx-mb-4 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Set a Frequency</div>\n </div>\n <div class=\"frequency-dialog-body vx-pl-4 vx-pr-4\">\n <div class=\"frequency-dialog-body-inner\" [ngSwitch]=\"frequencyTab\">\n <div class=\"frequency-tab vx-d-flex vx-align-center\">\n <ng-container *ngFor=\"let frequencyType of frequencyList; let i = index\">\n <button (click)=\"changeFrequencyTab(frequencyType)\"\n class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0\"\n [class.active]=\"frequencyType?.type == frequencyTab\">{{ frequencyType?.name }}</button>\n </ng-container>\n </div>\n <div class=\"frequency-tab-bottom vx-pl-4 vx-pr-4\">\n <!-- Daily Frequency Start -->\n <app-frequency-daily *ngSwitchCase=\"'daily'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-daily>\n <!-- Daily Frequency End -->\n <!-- Weekly Frequency Start -->\n <app-frequency-weekly *ngSwitchCase=\"'weekly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-weekly>\n <!-- Weekly Frequency End -->\n <!-- Monthly Frequency Start -->\n <app-frequency-monthly *ngSwitchCase=\"'monthly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-monthly>\n <!-- Monthly Frequency End -->\n <!-- Quarterly Frequency Start -->\n <app-frequency-quarterly *ngSwitchCase=\"'quarterly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-quarterly>\n <!-- Quarterly Frequency End -->\n <!-- Biannual Frequency Start -->\n <app-frequency-biannual *ngSwitchCase=\"'biannual'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-biannual>\n <!-- Biannual Frequency End -->\n <!-- Annual Frequency Start -->\n <app-frequency-annual *ngSwitchCase=\"'annual'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-annual>\n <!-- Annual Frequency End -->\n <!-- One Time Frequency Start -->\n <app-frequency-one-time *ngSwitchCase=\"'oneTime'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-one-time>\n <!-- One Time Frequency End -->\n <!-- Random Frequency Start -->\n <app-frequency-random *ngSwitchCase=\"'random'\" [mode]=\"mode\" (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-random>\n <!-- Random Frequency End -->\n <!-- On Completion Frequency Start -->\n <app-frequency-on-completion-of *ngSwitchCase=\"'on_complete'\" [mode]=\"mode\" [feature]=\"feature\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"\n (radioForm)=\"openedRadio($event)\"></app-frequency-on-completion-of>\n <!-- On Completion Frequency End -->\n <!-- Ongoing Frequency Start -->\n <app-frequency-ongoing *ngSwitchCase=\"'ongoing'\" (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-ongoing>\n <!-- Ongoing Frequency End -->\n </div>\n </div>\n </div>\n\n <div class=\"frequency-dialog-footer\" *ngIf=\"!openedRadioForm\">\n <app-floating-bar [showFrequencyText]=\"true\" [currentFrequency]=\"currentTabName\" [isDisabled]=\"isNextDisabled\"\n (closeEvent)=\"save()\" (closeList)=\"close()\"></app-floating-bar>\n </div>\n </div>\n</ng-container>\n<!-- When responsibility list show then hide frequency-dialog html -->\n\n<!-- For Policy -->\n<div class=\"frequency-dialog\" *ngIf=\"mode === 'policy'\">\n <div class=\"frequency-dialog-head vx-p-3 vx-mb-4 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Set a Frequency</div>\n </div>\n <div class=\"frequency-dialog-body vx-pl-4 vx-pr-4\">\n <div class=\"frequency-dialog-body-inner\" [ngSwitch]=\"frequencyTab\">\n <div class=\"frequency-tab vx-d-flex vx-align-center\">\n <ng-container *ngFor=\"let frequencyType of frequencyList; let i = index\">\n <button (click)=\"changeFrequencyTab(frequencyType)\"\n class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0\"\n [class.active]=\"frequencyType?.type == frequencyTab\">{{ frequencyType?.name }}</button>\n </ng-container>\n </div>\n <div class=\"frequency-tab-bottom vx-pl-4 vx-pr-4\">\n <!-- Daily Frequency Start -->\n <app-frequency-daily *ngSwitchCase=\"'daily'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-daily>\n <!-- Daily Frequency End -->\n <!-- Weekly Frequency Start -->\n <app-frequency-weekly *ngSwitchCase=\"'weekly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-weekly>\n <!-- Weekly Frequency End -->\n <!-- Monthly Frequency Start -->\n <app-frequency-monthly *ngSwitchCase=\"'monthly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-monthly>\n <!-- Monthly Frequency End -->\n <!-- Quarterly Frequency Start -->\n <app-frequency-quarterly *ngSwitchCase=\"'quarterly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-quarterly>\n <!-- Quarterly Frequency End -->\n <!-- Biannual Frequency Start -->\n <app-frequency-biannual *ngSwitchCase=\"'biannual'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-biannual>\n <!-- Biannual Frequency End -->\n <!-- Annual Frequency Start -->\n <app-frequency-annual *ngSwitchCase=\"'annual'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-annual>\n <!-- Annual Frequency End -->\n <!-- One Time Frequency Start -->\n <app-frequency-one-time *ngSwitchCase=\"'oneTime'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-one-time>\n <!-- One Time Frequency End -->\n <!-- Random Frequency Start -->\n <app-frequency-random *ngSwitchCase=\"'random'\" [mode]=\"mode\" (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-random>\n <!-- Random Frequency End -->\n <!-- On Completion Frequency Start -->\n <app-frequency-on-completion-of *ngSwitchCase=\"'on_complete'\" [mode]=\"mode\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-on-completion-of>\n <!-- On Completion Frequency End -->\n <!-- Ongoing Frequency Start -->\n <app-frequency-ongoing *ngSwitchCase=\"'ongoing'\" (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-ongoing>\n <!-- Ongoing Frequency End -->\n </div>\n </div>\n </div>\n <div class=\"frequency-dialog-footer\">\n <app-floating-bar [showFrequencyText]=\"true\" [currentFrequency]=\"currentTabName\" [isDisabled]=\"isNextDisabled\"\n (closeEvent)=\"save()\" (closeList)=\"close()\"></app-floating-bar>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-dialog{position:fixed;inset:0 500px 0 0;z-index:11}::ng-deep .frequency-dialog:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}@media screen and (max-width: 1280px){::ng-deep .frequency-dialog{right:30px}::ng-deep .frequency-dialog .frequency-dialog-body .frequency-dialog-body-inner .frequency-tab-bottom app-frequency-on-completion-of .frequency-completion .frequency-completion-inner .frequency-completion-bottom app-frequency-responsibility-list .frequency-responsibility-list{right:0;z-index:9999}}::ng-deep .frequency-dialog-head{background:#fbfbfb;border-radius:.125rem .125rem 0 0;border-bottom:1px solid #f1f1f1}::ng-deep .frequency-dialog-head button.back-btn{background:transparent;border-radius:0;border:none}::ng-deep .frequency-dialog-body{height:calc(100vh - 9.75rem);margin:0 auto 1rem;overflow:hidden;overflow-y:auto;width:calc(100% - 2.5rem)}::ng-deep .frequency-dialog-body::-webkit-scrollbar-track{background-color:transparent}::ng-deep .frequency-dialog-body-inner{width:54.5rem;margin:0 auto}@media screen and (min-width: 1366px){::ng-deep .frequency-dialog-body-inner{width:auto}}::ng-deep .frequency-dialog-body .frequency-tab{border:none!important;border-bottom:1px solid #f1f1f1!important;margin-bottom:1.5rem}::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.125rem solid transparent;height:1.5rem;margin-right:1.5rem!important}::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn:last-of-type{margin-right:0!important}@media screen and (max-width: 1366px){::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn{margin-right:1rem!important}}@media screen and (max-width: 1280px){::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn{margin-right:.75rem!important}}::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn.active{color:#1e5dd3!important;border-color:#1e5dd3}::ng-deep .frequency-dialog-footer{padding:0 2rem}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "isResponsibility", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "component", type: i5.FrequencyDailyComponent, selector: "app-frequency-daily", inputs: ["mode", "frequencyData", "startDate", "pageType"], outputs: ["frequencyDetails"] }, { kind: "component", type: i6.FrequencyWeeklyComponent, selector: "app-frequency-weekly", inputs: ["mode", "pageType", "startDate", "frequencyData"], outputs: ["frequencyDetails"] }, { kind: "component", type: i7.FrequencyMonthlyComponent, selector: "app-frequency-monthly", inputs: ["mode", "pageType", "startDate", "frequencyData"], outputs: ["frequencyDetails"] }, { kind: "component", type: i8.FrequencyQuarterlyComponent, selector: "app-frequency-quarterly", inputs: ["mode", "startDate", "frequencyData", "pageType"], outputs: ["frequencyDetails"] }, { kind: "component", type: i9.FrequencyBiannualComponent, selector: "app-frequency-biannual", inputs: ["mode", "pageType", "startDate", "frequencyData"], outputs: ["frequencyDetails"] }, { kind: "component", type: i10.FrequencyAnnualComponent, selector: "app-frequency-annual", inputs: ["pageType", "frequencyData", "mode", "startDate"], outputs: ["frequencyDetails"] }, { kind: "component", type: i11.FrequencyOneTimeComponent, selector: "app-frequency-one-time", inputs: ["pageType", "frequencyData", "mode"], outputs: ["frequencyDetails"] }, { kind: "component", type: i12.FrequencyRandomComponent, selector: "app-frequency-random", inputs: ["mode", "startDate", "frequencyData"], outputs: ["frequencyDetails"] }, { kind: "component", type: i13.FrequencyOnCompletionOfComponent, selector: "app-frequency-on-completion-of", inputs: ["mode", "feature", "startDate", "frequencyData"], outputs: ["frequencyDetails", "radioForm"] }, { kind: "component", type: i14.FrequencyOngoingComponent, selector: "app-frequency-ongoing", inputs: ["selectedType", "selectedOngoingType", "frequencyData", "startDate"], outputs: ["frequencyDetails"] }] }); }
286
286
  }
287
287
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyContainerComponent, decorators: [{
288
288
  type: Component,
289
- args: [{ selector: 'app-frequency-container', template: "<ng-container *ngIf=\"mode !== 'policy'\">\n <div class=\"frequency-dialog\" *ngIf=\"mode !== 'policy'\">\n <div\n class=\"frequency-dialog-head vx-p-3 vx-mb-4 vx-d-flex vx-align-center vx-justify-between\"\n >\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Set a Frequency</div>\n </div>\n <div class=\"frequency-dialog-body vx-pl-4 vx-pr-4\">\n <div class=\"frequency-dialog-body-inner\" [ngSwitch]=\"frequencyTab\">\n <div class=\"frequency-tab vx-d-flex vx-align-center\">\n <ng-container *ngFor=\"let frequencyType of frequencyList; let i = index\">\n <button (click)=\"changeFrequencyTab(frequencyType)\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0\" [class.active]=\"frequencyType?.type == frequencyTab\">{{ frequencyType?.name }}</button>\n </ng-container>\n </div>\n <div class=\"frequency-tab-bottom vx-pl-4 vx-pr-4\">\n <!-- Daily Frequency Start -->\n <app-frequency-daily\n *ngSwitchCase=\"'daily'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-daily>\n <!-- Daily Frequency End -->\n <!-- Weekly Frequency Start -->\n <app-frequency-weekly\n *ngSwitchCase=\"'weekly'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-weekly>\n <!-- Weekly Frequency End -->\n <!-- Monthly Frequency Start -->\n <app-frequency-monthly\n *ngSwitchCase=\"'monthly'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-monthly>\n <!-- Monthly Frequency End -->\n <!-- Quarterly Frequency Start -->\n <app-frequency-quarterly\n *ngSwitchCase=\"'quarterly'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-quarterly>\n <!-- Quarterly Frequency End -->\n <!-- Biannual Frequency Start -->\n <app-frequency-biannual\n *ngSwitchCase=\"'biannual'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-biannual>\n <!-- Biannual Frequency End -->\n <!-- Annual Frequency Start -->\n <app-frequency-annual\n *ngSwitchCase=\"'annual'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-annual>\n <!-- Annual Frequency End -->\n <!-- One Time Frequency Start -->\n <app-frequency-one-time\n *ngSwitchCase=\"'oneTime'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-one-time>\n <!-- One Time Frequency End -->\n <!-- Random Frequency Start -->\n <app-frequency-random\n *ngSwitchCase=\"'random'\"\n [mode]=\"mode\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-random>\n <!-- Random Frequency End -->\n <!-- On Completion Frequency Start -->\n <app-frequency-on-completion-of\n *ngSwitchCase=\"'onCompletionOf'\"\n [mode]=\"mode\"\n [feature]=\"feature\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n (radioForm)=\"openedRadio($event)\"\n ></app-frequency-on-completion-of>\n <!-- On Completion Frequency End -->\n <!-- Ongoing Frequency Start -->\n <app-frequency-ongoing\n *ngSwitchCase=\"'ongoing'\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-ongoing>\n <!-- Ongoing Frequency End -->\n </div>\n </div>\n </div>\n\n <div class=\"frequency-dialog-footer\" *ngIf=\"!openedRadioForm\">\n <app-floating-bar\n [showFrequencyText]=\"true\"\n [currentFrequency]=\"currentTabName\"\n [isDisabled]=\"isNextDisabled\"\n (closeEvent)=\"save()\"\n (closeList)=\"close()\"\n ></app-floating-bar>\n </div>\n </div>\n</ng-container>\n<!-- When responsibility list show then hide frequency-dialog html -->\n\n<!-- For Policy -->\n<div class=\"frequency-dialog\" *ngIf=\"mode === 'policy'\">\n <div class=\"frequency-dialog-head vx-p-3 vx-mb-4 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Set a Frequency</div>\n </div>\n <div class=\"frequency-dialog-body vx-pl-4 vx-pr-4\">\n <div class=\"frequency-dialog-body-inner\" [ngSwitch]=\"frequencyTab\">\n <div class=\"frequency-tab vx-d-flex vx-align-center\">\n <ng-container *ngFor=\"let frequencyType of frequencyList; let i = index\">\n <button (click)=\"changeFrequencyTab(frequencyType)\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0\" [class.active]=\"frequencyType?.type == frequencyTab\">{{ frequencyType?.name }}</button>\n </ng-container>\n </div>\n <div class=\"frequency-tab-bottom vx-pl-4 vx-pr-4\">\n <!-- Daily Frequency Start -->\n <app-frequency-daily\n *ngSwitchCase=\"'daily'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-daily>\n <!-- Daily Frequency End -->\n <!-- Weekly Frequency Start -->\n <app-frequency-weekly\n *ngSwitchCase=\"'weekly'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-weekly>\n <!-- Weekly Frequency End -->\n <!-- Monthly Frequency Start -->\n <app-frequency-monthly\n *ngSwitchCase=\"'monthly'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-monthly>\n <!-- Monthly Frequency End -->\n <!-- Quarterly Frequency Start -->\n <app-frequency-quarterly\n *ngSwitchCase=\"'quarterly'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-quarterly>\n <!-- Quarterly Frequency End -->\n <!-- Biannual Frequency Start -->\n <app-frequency-biannual\n *ngSwitchCase=\"'biannual'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-biannual>\n <!-- Biannual Frequency End -->\n <!-- Annual Frequency Start -->\n <app-frequency-annual\n *ngSwitchCase=\"'annual'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-annual>\n <!-- Annual Frequency End -->\n <!-- One Time Frequency Start -->\n <app-frequency-one-time\n *ngSwitchCase=\"'oneTime'\"\n [mode]=\"mode\"\n [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-one-time>\n <!-- One Time Frequency End -->\n <!-- Random Frequency Start -->\n <app-frequency-random\n *ngSwitchCase=\"'random'\"\n [mode]=\"mode\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-random>\n <!-- Random Frequency End -->\n <!-- On Completion Frequency Start -->\n <app-frequency-on-completion-of\n *ngSwitchCase=\"'onCompletionOf'\"\n [mode]=\"mode\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-on-completion-of>\n <!-- On Completion Frequency End -->\n <!-- Ongoing Frequency Start -->\n <app-frequency-ongoing\n *ngSwitchCase=\"'ongoing'\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"\n ></app-frequency-ongoing>\n <!-- Ongoing Frequency End -->\n </div>\n </div>\n </div>\n <div class=\"frequency-dialog-footer\">\n <app-floating-bar\n [showFrequencyText]=\"true\"\n [currentFrequency]=\"currentTabName\"\n [isDisabled]=\"isNextDisabled\"\n (closeEvent)=\"save()\"\n (closeList)=\"close()\"\n ></app-floating-bar>\n </div>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-dialog{position:fixed;inset:0 500px 0 0;z-index:11}::ng-deep .frequency-dialog:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}@media screen and (max-width: 1280px){::ng-deep .frequency-dialog{right:30px}::ng-deep .frequency-dialog .frequency-dialog-body .frequency-dialog-body-inner .frequency-tab-bottom app-frequency-on-completion-of .frequency-completion .frequency-completion-inner .frequency-completion-bottom app-frequency-responsibility-list .frequency-responsibility-list{right:0;z-index:9999}}::ng-deep .frequency-dialog-head{background:#fbfbfb;border-radius:.125rem .125rem 0 0;border-bottom:1px solid #f1f1f1}::ng-deep .frequency-dialog-head button.back-btn{background:transparent;border-radius:0;border:none}::ng-deep .frequency-dialog-body{height:calc(100vh - 9.75rem);margin:0 auto 1rem;overflow:hidden;overflow-y:auto;width:calc(100% - 2.5rem)}::ng-deep .frequency-dialog-body::-webkit-scrollbar-track{background-color:transparent}::ng-deep .frequency-dialog-body-inner{width:54.5rem;margin:0 auto}@media screen and (min-width: 1366px){::ng-deep .frequency-dialog-body-inner{width:auto}}::ng-deep .frequency-dialog-body .frequency-tab{border:none!important;border-bottom:1px solid #f1f1f1!important;margin-bottom:1.5rem}::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.125rem solid transparent;height:1.5rem;margin-right:1.5rem!important}::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn:last-of-type{margin-right:0!important}@media screen and (max-width: 1366px){::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn{margin-right:1rem!important}}@media screen and (max-width: 1280px){::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn{margin-right:.75rem!important}}::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn.active{color:#1e5dd3!important;border-color:#1e5dd3}::ng-deep .frequency-dialog-footer{padding:0 2rem}\n"] }]
289
+ args: [{ selector: 'app-frequency-container', template: "<ng-container *ngIf=\"mode !== 'policy'\">\n <div class=\"frequency-dialog\" *ngIf=\"mode !== 'policy'\">\n <div class=\"frequency-dialog-head vx-p-3 vx-mb-4 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Set a Frequency</div>\n </div>\n <div class=\"frequency-dialog-body vx-pl-4 vx-pr-4\">\n <div class=\"frequency-dialog-body-inner\" [ngSwitch]=\"frequencyTab\">\n <div class=\"frequency-tab vx-d-flex vx-align-center\">\n <ng-container *ngFor=\"let frequencyType of frequencyList; let i = index\">\n <button (click)=\"changeFrequencyTab(frequencyType)\"\n class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0\"\n [class.active]=\"frequencyType?.type == frequencyTab\">{{ frequencyType?.name }}</button>\n </ng-container>\n </div>\n <div class=\"frequency-tab-bottom vx-pl-4 vx-pr-4\">\n <!-- Daily Frequency Start -->\n <app-frequency-daily *ngSwitchCase=\"'daily'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-daily>\n <!-- Daily Frequency End -->\n <!-- Weekly Frequency Start -->\n <app-frequency-weekly *ngSwitchCase=\"'weekly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-weekly>\n <!-- Weekly Frequency End -->\n <!-- Monthly Frequency Start -->\n <app-frequency-monthly *ngSwitchCase=\"'monthly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-monthly>\n <!-- Monthly Frequency End -->\n <!-- Quarterly Frequency Start -->\n <app-frequency-quarterly *ngSwitchCase=\"'quarterly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-quarterly>\n <!-- Quarterly Frequency End -->\n <!-- Biannual Frequency Start -->\n <app-frequency-biannual *ngSwitchCase=\"'biannual'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-biannual>\n <!-- Biannual Frequency End -->\n <!-- Annual Frequency Start -->\n <app-frequency-annual *ngSwitchCase=\"'annual'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-annual>\n <!-- Annual Frequency End -->\n <!-- One Time Frequency Start -->\n <app-frequency-one-time *ngSwitchCase=\"'oneTime'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-one-time>\n <!-- One Time Frequency End -->\n <!-- Random Frequency Start -->\n <app-frequency-random *ngSwitchCase=\"'random'\" [mode]=\"mode\" (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-random>\n <!-- Random Frequency End -->\n <!-- On Completion Frequency Start -->\n <app-frequency-on-completion-of *ngSwitchCase=\"'on_complete'\" [mode]=\"mode\" [feature]=\"feature\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"\n (radioForm)=\"openedRadio($event)\"></app-frequency-on-completion-of>\n <!-- On Completion Frequency End -->\n <!-- Ongoing Frequency Start -->\n <app-frequency-ongoing *ngSwitchCase=\"'ongoing'\" (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-ongoing>\n <!-- Ongoing Frequency End -->\n </div>\n </div>\n </div>\n\n <div class=\"frequency-dialog-footer\" *ngIf=\"!openedRadioForm\">\n <app-floating-bar [showFrequencyText]=\"true\" [currentFrequency]=\"currentTabName\" [isDisabled]=\"isNextDisabled\"\n (closeEvent)=\"save()\" (closeList)=\"close()\"></app-floating-bar>\n </div>\n </div>\n</ng-container>\n<!-- When responsibility list show then hide frequency-dialog html -->\n\n<!-- For Policy -->\n<div class=\"frequency-dialog\" *ngIf=\"mode === 'policy'\">\n <div class=\"frequency-dialog-head vx-p-3 vx-mb-4 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Set a Frequency</div>\n </div>\n <div class=\"frequency-dialog-body vx-pl-4 vx-pr-4\">\n <div class=\"frequency-dialog-body-inner\" [ngSwitch]=\"frequencyTab\">\n <div class=\"frequency-tab vx-d-flex vx-align-center\">\n <ng-container *ngFor=\"let frequencyType of frequencyList; let i = index\">\n <button (click)=\"changeFrequencyTab(frequencyType)\"\n class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0\"\n [class.active]=\"frequencyType?.type == frequencyTab\">{{ frequencyType?.name }}</button>\n </ng-container>\n </div>\n <div class=\"frequency-tab-bottom vx-pl-4 vx-pr-4\">\n <!-- Daily Frequency Start -->\n <app-frequency-daily *ngSwitchCase=\"'daily'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-daily>\n <!-- Daily Frequency End -->\n <!-- Weekly Frequency Start -->\n <app-frequency-weekly *ngSwitchCase=\"'weekly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-weekly>\n <!-- Weekly Frequency End -->\n <!-- Monthly Frequency Start -->\n <app-frequency-monthly *ngSwitchCase=\"'monthly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-monthly>\n <!-- Monthly Frequency End -->\n <!-- Quarterly Frequency Start -->\n <app-frequency-quarterly *ngSwitchCase=\"'quarterly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-quarterly>\n <!-- Quarterly Frequency End -->\n <!-- Biannual Frequency Start -->\n <app-frequency-biannual *ngSwitchCase=\"'biannual'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-biannual>\n <!-- Biannual Frequency End -->\n <!-- Annual Frequency Start -->\n <app-frequency-annual *ngSwitchCase=\"'annual'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-annual>\n <!-- Annual Frequency End -->\n <!-- One Time Frequency Start -->\n <app-frequency-one-time *ngSwitchCase=\"'oneTime'\" [mode]=\"mode\" [pageType]=\"pageType\"\n (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-one-time>\n <!-- One Time Frequency End -->\n <!-- Random Frequency Start -->\n <app-frequency-random *ngSwitchCase=\"'random'\" [mode]=\"mode\" (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-random>\n <!-- Random Frequency End -->\n <!-- On Completion Frequency Start -->\n <app-frequency-on-completion-of *ngSwitchCase=\"'on_complete'\" [mode]=\"mode\"\n (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-on-completion-of>\n <!-- On Completion Frequency End -->\n <!-- Ongoing Frequency Start -->\n <app-frequency-ongoing *ngSwitchCase=\"'ongoing'\" (frequencyDetails)=\"onFrequencySelected($event)\"\n [frequencyData]=\"frequencyDetails\"></app-frequency-ongoing>\n <!-- Ongoing Frequency End -->\n </div>\n </div>\n </div>\n <div class=\"frequency-dialog-footer\">\n <app-floating-bar [showFrequencyText]=\"true\" [currentFrequency]=\"currentTabName\" [isDisabled]=\"isNextDisabled\"\n (closeEvent)=\"save()\" (closeList)=\"close()\"></app-floating-bar>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-dialog{position:fixed;inset:0 500px 0 0;z-index:11}::ng-deep .frequency-dialog:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}@media screen and (max-width: 1280px){::ng-deep .frequency-dialog{right:30px}::ng-deep .frequency-dialog .frequency-dialog-body .frequency-dialog-body-inner .frequency-tab-bottom app-frequency-on-completion-of .frequency-completion .frequency-completion-inner .frequency-completion-bottom app-frequency-responsibility-list .frequency-responsibility-list{right:0;z-index:9999}}::ng-deep .frequency-dialog-head{background:#fbfbfb;border-radius:.125rem .125rem 0 0;border-bottom:1px solid #f1f1f1}::ng-deep .frequency-dialog-head button.back-btn{background:transparent;border-radius:0;border:none}::ng-deep .frequency-dialog-body{height:calc(100vh - 9.75rem);margin:0 auto 1rem;overflow:hidden;overflow-y:auto;width:calc(100% - 2.5rem)}::ng-deep .frequency-dialog-body::-webkit-scrollbar-track{background-color:transparent}::ng-deep .frequency-dialog-body-inner{width:54.5rem;margin:0 auto}@media screen and (min-width: 1366px){::ng-deep .frequency-dialog-body-inner{width:auto}}::ng-deep .frequency-dialog-body .frequency-tab{border:none!important;border-bottom:1px solid #f1f1f1!important;margin-bottom:1.5rem}::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.125rem solid transparent;height:1.5rem;margin-right:1.5rem!important}::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn:last-of-type{margin-right:0!important}@media screen and (max-width: 1366px){::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn{margin-right:1rem!important}}@media screen and (max-width: 1280px){::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn{margin-right:.75rem!important}}::ng-deep .frequency-dialog-body .frequency-tab button.tab-btn.active{color:#1e5dd3!important;border-color:#1e5dd3}::ng-deep .frequency-dialog-footer{padding:0 2rem}\n"] }]
290
290
  }], ctorParameters: function () { return [{ type: i1.FrequencyService }, { type: i2.SnackBarService }]; }, propDecorators: { frequencyDetails: [{
291
291
  type: Input
292
292
  }], selectedFrequency: [{
@@ -300,4 +300,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
300
300
  }], pageType: [{
301
301
  type: Input
302
302
  }] } });
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktY29udGFpbmVyL2ZyZXF1ZW5jeS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LWNvbnRhaW5lci9mcmVxdWVuY3ktY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEdBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBU25DLE1BQU0sT0FBTywyQkFBMkI7SUE0RHRDLFlBQ1UsZ0JBQWtDLEVBQ2xDLFFBQXlCO1FBRHpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUE3RG5DLGlCQUFZLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQUcsU0FBUyxDQUFDO1FBR2pCLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDNUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFZixhQUFRLEdBQWdDLGdCQUFnQixDQUFDO1FBSWxFLGtCQUFhLEdBQUc7WUFDZDtnQkFDRSxJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2Qs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Y0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVU7UUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixJQUFJO0lBRUosSUFBSTtJQUVKLElBQUk7UUFDRixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsS0FBSztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQzsrR0E1U1UsMkJBQTJCO21HQUEzQiwyQkFBMkIscVJDakJ4QyxzclRBd09BOzs0RkR2TmEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLHlCQUF5QjtxSUFRMUIsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNFLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xuaW1wb3J0IHsgRnJlcXVlbmN5U2VydmljZSB9IGZyb20gJy4uL2ZyZXF1ZW5jeS5zZXJ2aWNlJztcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWNvbnRhaW5lci5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIGZyZXF1ZW5jeVRhYiA9ICdkYWlseSc7XG4gIGN1cnJlbnRUYWJOYW1lID0gJ2EgRGFpbHknO1xuXG4gIEBJbnB1dCgpIGZyZXF1ZW5jeURldGFpbHM6IGFueTtcbiAgQE91dHB1dCgpIHNlbGVjdGVkRnJlcXVlbmN5ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZUZyZXF1ZW5jeSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcbiAgQElucHV0KCkgZmVhdHVyZTogYW55O1xuICBASW5wdXQoKSBwYWdlVHlwZTogJ3Jlc3BvbnNpYmlsaXR5JyB8ICdwb2xpY3knID0gJ3Jlc3BvbnNpYmlsaXR5JztcblxuICBmcmVxdWVuY3lEYXRhOiBhbnk7XG5cbiAgZnJlcXVlbmN5TGlzdCA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnRGFpbHknLFxuICAgICAgdHlwZTogJ2RhaWx5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdXZWVrbHknLFxuICAgICAgdHlwZTogJ3dlZWtseScsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnTW9udGhseScsXG4gICAgICB0eXBlOiAnbW9udGhseScsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnUXVhcnRlcmx5JyxcbiAgICAgIHR5cGU6ICdxdWFydGVybHknLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ0JpYW5udWFsJyxcbiAgICAgIHR5cGU6ICdiaWFubnVhbCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnQW5udWFsJyxcbiAgICAgIHR5cGU6ICdhbm51YWwnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ09uZSBUaW1lJyxcbiAgICAgIHR5cGU6ICdvbmVUaW1lJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdSYW5kb20nLFxuICAgICAgdHlwZTogJ3JhbmRvbScsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnT24gQ29tcGxldGlvbiBPZicsXG4gICAgICB0eXBlOiAnb25Db21wbGV0aW9uT2YnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ09uZ29pbmcnLFxuICAgICAgdHlwZTogJ29uZ29pbmcnLFxuICAgIH0sXG4gIF07XG5cbiAgc2VsZWN0ZWRGcmVxdWVuY3lEYXRhOiBhbnk7XG4gIGlzTmV4dERpc2FibGVkOiBhbnkgPSBmYWxzZTtcbiAgZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZjogYW55O1xuICBvcGVuZWRSYWRpb0Zvcm06IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlLFxuICAgIHByaXZhdGUgc25hY2tiYXI6IFNuYWNrQmFyU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfZnJlcXVlbmN5X29uX2NvbXBsZXRpb25fb2YnXG4gICAgKTtcbiAgICBpZiAodGhpcy5mcmVxdWVuY3lEZXRhaWxzLnBhdHRlcm4gIT0gJycpIHtcbiAgICAgIHRoaXMucG9wdWxhdGVGcmVxdWVuY3koKTtcbiAgICB9XG4gICAgY29uc3QgaGlkZUVsZW1lbnRzID0gWydyYW5kb20nLCAnb25Db21wbGV0aW9uT2YnLCAnb25nb2luZyddO1xuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3BvbGljeScpIHtcbiAgICAgIGhpZGVFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZyZXF1ZW5jeUxpc3QuZmluZEluZGV4KFxuICAgICAgICAgIChlbGVtZW50SW5kZXg6IGFueSkgPT4gZWxlbWVudEluZGV4LnR5cGUgPT0gZWxlbWVudFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmZyZXF1ZW5jeUxpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBoaWRlRWxlbWVudHMyID0gWydkYWlseScsICdyYW5kb20nLCAnb25Db21wbGV0aW9uT2YnLCAnb25nb2luZyddO1xuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3Jldmlld2VyRnJlcXVlbmN5Jykge1xuICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPVxuICAgICAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHM/LnBhdHRlcm4gPT0gJycgPyAnd2Vla2x5JyA6IHRoaXMuZnJlcXVlbmN5VGFiO1xuICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscz8ucGF0dGVybiA9PSAnJyA/ICdhIHdlZWtseScgOiB0aGlzLmN1cnJlbnRUYWJOYW1lO1xuXG4gICAgICBoaWRlRWxlbWVudHMyLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZnJlcXVlbmN5TGlzdC5maW5kSW5kZXgoXG4gICAgICAgICAgKGVsZW1lbnRJbmRleDogYW55KSA9PiBlbGVtZW50SW5kZXgudHlwZSA9PSBlbGVtZW50XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5TGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEZyZXF1ZW5jeURhdGEgPSBPYmplY3QuYXNzaWduKHsgLi4udGhpcy5mcmVxdWVuY3lEZXRhaWxzIH0pO1xuICAgIHRoaXMuZnJlcXVlbmN5RGF0YSA9IE9iamVjdC5hc3NpZ24oeyAuLi50aGlzLmZyZXF1ZW5jeURldGFpbHMgfSk7XG4gIH1cblxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcbiAgICBjb25zdCBmcmVxdWVuY3lQYXR0ZXJuID0gcGFyc2VJbnQoXG4gICAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMucGF0dGVybi5zcGxpdCgnficpWzBdXG4gICAgKTtcblxuICAgIHN3aXRjaCAoZnJlcXVlbmN5UGF0dGVybikge1xuICAgICAgY2FzZSAwOlxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdvbmVUaW1lJztcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIG9uZSB0aW1lJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2RhaWx5JztcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIGRhaWx5JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ3dlZWtseSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSB3ZWVrbHknO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzpcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnbW9udGhseSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBtb250aGx5JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDQ6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2FubnVhbCc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYW4gYW5udWFsICc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA1OlxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdkYWlseSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBkYWlseSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA2OlxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdvbkNvbXBsZXRpb25PZic7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYW4gb24gY29tcGxldGlvbiBvZic7XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YS5yZXBvcnRfaWQgPSB0aGlzLmZyZXF1ZW5jeURldGFpbHMuc2VsZWN0ZWRSZXBvcnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA3OlxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdxdWFydGVybHknO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2EgcXVhcnRlcmx5JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDg6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ3JhbmRvbSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSByYW5kb20nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgOTpcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnYmlhbm51YWwnO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2EgYmlhbm51YWwnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTA6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ29uZ29pbmcnO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2FuIG9uZ29pbmcnO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5pc05leHREaXNhYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgY2hhbmdlRnJlcXVlbmN5VGFiKGZyZXF1ZW5jeTogYW55KSB7XG4gICAgdGhpcy5mcmVxdWVuY3lUYWIgPSBmcmVxdWVuY3kudHlwZTtcblxuICAgIGlmIChmcmVxdWVuY3kubmFtZSA9PSAnT25lIFRpbWUnKSB7XG4gICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2Egb25lIHRpbWUnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID1cbiAgICAgICAgZnJlcXVlbmN5Lm5hbWUuc3RhcnRzV2l0aCgnT24nKSB8fFxuICAgICAgICBmcmVxdWVuY3kubmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYW5udWFsJ1xuICAgICAgICAgID8gJ2FuICcgKyBmcmVxdWVuY3kubmFtZVxuICAgICAgICAgIDogJ2EgJyArIGZyZXF1ZW5jeS5uYW1lO1xuICAgIH1cbiAgfVxuXG4gIGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICBsZXQgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgY29uc3QgZnJlcXVlbmN5RGV0YWlscyA9IHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybj8uc3BsaXQoJ34nKTtcbiAgICBzd2l0Y2ggKHRoaXMuZnJlcXVlbmN5VGFiKSB7XG4gICAgICBjYXNlICdkYWlseSc6XG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEuY29udGludW91c19mYWlsZWRfZGF5cyA8IDIpIHtcbiAgICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ0lucHV0IHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMS4nLCAnYWxlcnQnKTtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dlZWtseSc6XG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEuY29udGludW91c19mYWlsZWRfZGF5cyA8IDIpIHtcbiAgICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ0lucHV0IHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMS4nLCAnYWxlcnQnKTtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzWzFdID09ICcnIHx8XG4gICAgICAgICAgIWZyZXF1ZW5jeURldGFpbHNbMV0gfHxcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzLmxlbmd0aCA8IDRcbiAgICAgICAgKSB7XG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbW9udGhseSc6XG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEuY29udGludW91c19mYWlsZWRfZGF5cyA8IDIpIHtcbiAgICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ0lucHV0IHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMS4nLCAnYWxlcnQnKTtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzWzJdID09ICcnIHx8XG4gICAgICAgICAgIWZyZXF1ZW5jeURldGFpbHNbMl0gfHxcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzLmxlbmd0aCA8IDRcbiAgICAgICAgKSB7XG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYmlhbm51YWwnOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgZnJlcXVlbmN5RGV0YWlscy5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzWzJdID09PSAnJyB8fFxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHNbMl0uc3BsaXQoJywnKT8ubGVuZ3RoIDwgMlxuICAgICAgICApIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb25lVGltZSc6XG4gICAgICAgIGlmIChmcmVxdWVuY3lEZXRhaWxzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRUaW1lID0gbW9tZW50KFxuICAgICAgICAgICAgYCR7ZnJlcXVlbmN5RGV0YWlsc1szXX0tJHtmcmVxdWVuY3lEZXRhaWxzWzJdfS0ke2ZyZXF1ZW5jeURldGFpbHNbMV19ICR7dGhpcy5mcmVxdWVuY3lEYXRhLnRpbWVJbjEyaHJ9YCxcbiAgICAgICAgICAgICdERC1NTS1ZWVlZIEhIOm1tIGEnXG4gICAgICAgICAgKS51bml4KCk7XG4gICAgICAgICAgaWYgKERhdGUubm93KCkgLyAxMDAwID4gc2VsZWN0ZWRUaW1lKSB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ1BsZWFzZSBzZXQgYSBmdXR1cmUgZGF0ZS4nLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlzTmV4dERpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvbkNvbXBsZXRpb25PZic6XG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEub25Db21wbGV0aW9uPy5yZXNwb25zaWJpbGl0eSA+IDApIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdyYW5kb20nOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgcGFyc2VJbnQoZnJlcXVlbmN5RGV0YWlsc1sxXSkgPT0gMiAmJlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzWzJdID09ICcnIHx8XG4gICAgICAgICAgICAhZnJlcXVlbmN5RGV0YWlsc1syXSB8fFxuICAgICAgICAgICAgZnJlcXVlbmN5RGV0YWlscy5sZW5ndGggPCA0KVxuICAgICAgICApIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBpc0ludmFsaWQ7XG4gIH1cblxuICBvbkZyZXF1ZW5jeVNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmZyZXF1ZW5jeURhdGEgPSBldmVudDtcbiAgICB0aGlzLmlzTmV4dERpc2FibGVkID0gdGhpcy5pc0ludmFsaWQoKTtcbiAgfVxuXG4gIG9wZW5lZFJhZGlvKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9wZW5lZFJhZGlvRm9ybSA9IGV2ZW50O1xuICB9XG5cbiAgLy8gICBjaGVja05leHRWYWxpZGl0eSgpXG4gIC8vIHtcblxuICAvLyB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLnNlbGVjdGVkRnJlcXVlbmN5LmVtaXQodGhpcy5mcmVxdWVuY3lEYXRhKTtcbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmNsb3NlRnJlcXVlbmN5LmVtaXQoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgIT09ICdwb2xpY3knXCI+XG4gIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nXCIgKm5nSWY9XCJtb2RlICE9PSAncG9saWN5J1wiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1oZWFkIHZ4LXAtMyB2eC1tYi00IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNldCBhIEZyZXF1ZW5jeTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWJvZHkgdngtcGwtNCB2eC1wci00XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1ib2R5LWlubmVyXCIgW25nU3dpdGNoXT1cImZyZXF1ZW5jeVRhYlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXRhYiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZnJlcXVlbmN5VHlwZSBvZiBmcmVxdWVuY3lMaXN0OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjaGFuZ2VGcmVxdWVuY3lUYWIoZnJlcXVlbmN5VHlwZSlcIiBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wYi0yIHZ4LW0tMFwiIFtjbGFzcy5hY3RpdmVdPVwiZnJlcXVlbmN5VHlwZT8udHlwZSA9PSBmcmVxdWVuY3lUYWJcIj57eyBmcmVxdWVuY3lUeXBlPy5uYW1lIH19PC9idXR0b24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXRhYi1ib3R0b20gdngtcGwtNCB2eC1wci00XCI+XG4gICAgICAgICAgPCEtLSBEYWlseSBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGFpbHlcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInZGFpbHknXCJcbiAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICAgICAgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCJcbiAgICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LWRhaWx5PlxuICAgICAgICAgIDwhLS0gRGFpbHkgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIFdlZWtseSBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktd2Vla2x5XG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3dlZWtseSdcIlxuICAgICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgICBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIlxuICAgICAgICAgID48L2FwcC1mcmVxdWVuY3ktd2Vla2x5PlxuICAgICAgICAgIDwhLS0gV2Vla2x5IEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBNb250aGx5IEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1tb250aGx5XG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ21vbnRobHknXCJcbiAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICAgICAgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCJcbiAgICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LW1vbnRobHk+XG4gICAgICAgICAgPCEtLSBNb250aGx5IEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBRdWFydGVybHkgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LXF1YXJ0ZXJseVxuICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidxdWFydGVybHknXCJcbiAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICAgICAgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCJcbiAgICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LXF1YXJ0ZXJseT5cbiAgICAgICAgICA8IS0tIFF1YXJ0ZXJseSBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICAgIDwhLS0gQmlhbm51YWwgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LWJpYW5udWFsXG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2JpYW5udWFsJ1wiXG4gICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICAgIFtwYWdlVHlwZV09XCJwYWdlVHlwZVwiXG4gICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiXG4gICAgICAgICAgPjwvYXBwLWZyZXF1ZW5jeS1iaWFubnVhbD5cbiAgICAgICAgICA8IS0tIEJpYW5udWFsIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgICAgPCEtLSBBbm51YWwgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LWFubnVhbFxuICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidhbm51YWwnXCJcbiAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICAgICAgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCJcbiAgICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LWFubnVhbD5cbiAgICAgICAgICA8IS0tIEFubnVhbCBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICAgIDwhLS0gT25lIFRpbWUgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LW9uZS10aW1lXG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ29uZVRpbWUnXCJcbiAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICAgICAgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCJcbiAgICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LW9uZS10aW1lPlxuICAgICAgICAgIDwhLS0gT25lIFRpbWUgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIFJhbmRvbSBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktcmFuZG9tXG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3JhbmRvbSdcIlxuICAgICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiXG4gICAgICAgICAgPjwvYXBwLWZyZXF1ZW5jeS1yYW5kb20+XG4gICAgICAgICAgPCEtLSBSYW5kb20gRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIE9uIENvbXBsZXRpb24gRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2ZcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInb25Db21wbGV0aW9uT2YnXCJcbiAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiXG4gICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiXG4gICAgICAgICAgICAocmFkaW9Gb3JtKT1cIm9wZW5lZFJhZGlvKCRldmVudClcIlxuICAgICAgICAgID48L2FwcC1mcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZj5cbiAgICAgICAgICA8IS0tIE9uIENvbXBsZXRpb24gRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIE9uZ29pbmcgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LW9uZ29pbmdcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInb25nb2luZydcIlxuICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIlxuICAgICAgICAgID48L2FwcC1mcmVxdWVuY3ktb25nb2luZz5cbiAgICAgICAgICA8IS0tIE9uZ29pbmcgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWZvb3RlclwiICpuZ0lmPVwiIW9wZW5lZFJhZGlvRm9ybVwiPlxuICAgICAgPGFwcC1mbG9hdGluZy1iYXJcbiAgICAgICAgW3Nob3dGcmVxdWVuY3lUZXh0XT1cInRydWVcIlxuICAgICAgICBbY3VycmVudEZyZXF1ZW5jeV09XCJjdXJyZW50VGFiTmFtZVwiXG4gICAgICAgIFtpc0Rpc2FibGVkXT1cImlzTmV4dERpc2FibGVkXCJcbiAgICAgICAgKGNsb3NlRXZlbnQpPVwic2F2ZSgpXCJcbiAgICAgICAgKGNsb3NlTGlzdCk9XCJjbG9zZSgpXCJcbiAgICAgID48L2FwcC1mbG9hdGluZy1iYXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG48IS0tIFdoZW4gcmVzcG9uc2liaWxpdHkgbGlzdCBzaG93IHRoZW4gaGlkZSBmcmVxdWVuY3ktZGlhbG9nIGh0bWwgLS0+XG5cbjwhLS0gRm9yIFBvbGljeSAtLT5cbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nXCIgKm5nSWY9XCJtb2RlID09PSAncG9saWN5J1wiPlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1oZWFkIHZ4LXAtMyB2eC1tYi00IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZXQgYSBGcmVxdWVuY3k8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWJvZHkgdngtcGwtNCB2eC1wci00XCI+XG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYm9keS1pbm5lclwiIFtuZ1N3aXRjaF09XCJmcmVxdWVuY3lUYWJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktdGFiIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZnJlcXVlbmN5VHlwZSBvZiBmcmVxdWVuY3lMaXN0OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2hhbmdlRnJlcXVlbmN5VGFiKGZyZXF1ZW5jeVR5cGUpXCIgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGItMiB2eC1tLTBcIiBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVR5cGU/LnR5cGUgPT0gZnJlcXVlbmN5VGFiXCI+e3sgZnJlcXVlbmN5VHlwZT8ubmFtZSB9fTwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS10YWItYm90dG9tIHZ4LXBsLTQgdngtcHItNFwiPlxuICAgICAgICA8IS0tIERhaWx5IEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGFpbHlcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhaWx5J1wiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIlxuICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LWRhaWx5PlxuICAgICAgICA8IS0tIERhaWx5IEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgIDwhLS0gV2Vla2x5IEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktd2Vla2x5XG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIid3ZWVrbHknXCJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiXG4gICAgICAgID48L2FwcC1mcmVxdWVuY3ktd2Vla2x5PlxuICAgICAgICA8IS0tIFdlZWtseSBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8IS0tIE1vbnRobHkgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1tb250aGx5XG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidtb250aGx5J1wiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIlxuICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LW1vbnRobHk+XG4gICAgICAgIDwhLS0gTW9udGhseSBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8IS0tIFF1YXJ0ZXJseSBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LXF1YXJ0ZXJseVxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIncXVhcnRlcmx5J1wiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIlxuICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LXF1YXJ0ZXJseT5cbiAgICAgICAgPCEtLSBRdWFydGVybHkgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgPCEtLSBCaWFubnVhbCBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWJpYW5udWFsXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidiaWFubnVhbCdcIlxuICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICAgIFtwYWdlVHlwZV09XCJwYWdlVHlwZVwiXG4gICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCJcbiAgICAgICAgPjwvYXBwLWZyZXF1ZW5jeS1iaWFubnVhbD5cbiAgICAgICAgPCEtLSBCaWFubnVhbCBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8IS0tIEFubnVhbCBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWFubnVhbFxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInYW5udWFsJ1wiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIlxuICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LWFubnVhbD5cbiAgICAgICAgPCEtLSBBbm51YWwgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgPCEtLSBPbmUgVGltZSBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LW9uZS10aW1lXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidvbmVUaW1lJ1wiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIlxuICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LW9uZS10aW1lPlxuICAgICAgICA8IS0tIE9uZSBUaW1lIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgIDwhLS0gUmFuZG9tIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktcmFuZG9tXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidyYW5kb20nXCJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIlxuICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LXJhbmRvbT5cbiAgICAgICAgPCEtLSBSYW5kb20gRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgPCEtLSBPbiBDb21wbGV0aW9uIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZlxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInb25Db21wbGV0aW9uT2YnXCJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIlxuICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2Y+XG4gICAgICAgIDwhLS0gT24gQ29tcGxldGlvbiBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8IS0tIE9uZ29pbmcgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1vbmdvaW5nXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidvbmdvaW5nJ1wiXG4gICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCJcbiAgICAgICAgPjwvYXBwLWZyZXF1ZW5jeS1vbmdvaW5nPlxuICAgICAgICA8IS0tIE9uZ29pbmcgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctZm9vdGVyXCI+XG4gICAgPGFwcC1mbG9hdGluZy1iYXJcbiAgICAgIFtzaG93RnJlcXVlbmN5VGV4dF09XCJ0cnVlXCJcbiAgICAgIFtjdXJyZW50RnJlcXVlbmN5XT1cImN1cnJlbnRUYWJOYW1lXCJcbiAgICAgIFtpc0Rpc2FibGVkXT1cImlzTmV4dERpc2FibGVkXCJcbiAgICAgIChjbG9zZUV2ZW50KT1cInNhdmUoKVwiXG4gICAgICAoY2xvc2VMaXN0KT1cImNsb3NlKClcIlxuICAgID48L2FwcC1mbG9hdGluZy1iYXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktY29udGFpbmVyL2ZyZXF1ZW5jeS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LWNvbnRhaW5lci9mcmVxdWVuY3ktY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEdBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBU25DLE1BQU0sT0FBTywyQkFBMkI7SUE0RHRDLFlBQ1UsZ0JBQWtDLEVBQ2xDLFFBQXlCO1FBRHpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUE3RG5DLGlCQUFZLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQUcsU0FBUyxDQUFDO1FBR2pCLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDNUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFZixhQUFRLEdBQWdDLGdCQUFnQixDQUFDO1FBSWxFLGtCQUFhLEdBQUc7WUFDZDtnQkFDRSxJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2Qs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SUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLElBQUk7SUFFSixJQUFJO0lBRUosSUFBSTtRQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDOytHQTVTVSwyQkFBMkI7bUdBQTNCLDJCQUEyQixxUkNqQnhDLG9uUkFzSU07OzRGRHJITywyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UseUJBQXlCO3FJQVExQixnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0UsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZnJlcXVlbmN5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyZXF1ZW5jeS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktY29udGFpbmVyLmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZyZXF1ZW5jeUNvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgZnJlcXVlbmN5VGFiID0gJ2RhaWx5JztcbiAgY3VycmVudFRhYk5hbWUgPSAnYSBEYWlseSc7XG5cbiAgQElucHV0KCkgZnJlcXVlbmN5RGV0YWlsczogYW55O1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRGcmVxdWVuY3kgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNsb3NlRnJlcXVlbmN5ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIG1vZGU6IGFueSA9ICcnO1xuICBASW5wdXQoKSBmZWF0dXJlOiBhbnk7XG4gIEBJbnB1dCgpIHBhZ2VUeXBlOiAncmVzcG9uc2liaWxpdHknIHwgJ3BvbGljeScgPSAncmVzcG9uc2liaWxpdHknO1xuXG4gIGZyZXF1ZW5jeURhdGE6IGFueTtcblxuICBmcmVxdWVuY3lMaXN0ID0gW1xuICAgIHtcbiAgICAgIG5hbWU6ICdEYWlseScsXG4gICAgICB0eXBlOiAnZGFpbHknLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ1dlZWtseScsXG4gICAgICB0eXBlOiAnd2Vla2x5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdNb250aGx5JyxcbiAgICAgIHR5cGU6ICdtb250aGx5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdRdWFydGVybHknLFxuICAgICAgdHlwZTogJ3F1YXJ0ZXJseScsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnQmlhbm51YWwnLFxuICAgICAgdHlwZTogJ2JpYW5udWFsJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdBbm51YWwnLFxuICAgICAgdHlwZTogJ2FubnVhbCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnT25lIFRpbWUnLFxuICAgICAgdHlwZTogJ29uZVRpbWUnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ1JhbmRvbScsXG4gICAgICB0eXBlOiAncmFuZG9tJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdPbiBDb21wbGV0aW9uIE9mJyxcbiAgICAgIHR5cGU6ICdvbl9jb21wbGV0ZScsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnT25nb2luZycsXG4gICAgICB0eXBlOiAnb25nb2luZycsXG4gICAgfSxcbiAgXTtcblxuICBzZWxlY3RlZEZyZXF1ZW5jeURhdGE6IGFueTtcbiAgaXNOZXh0RGlzYWJsZWQ6IGFueSA9IGZhbHNlO1xuICBmZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mOiBhbnk7XG4gIG9wZW5lZFJhZGlvRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzbmFja2JhcjogU25hY2tCYXJTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZlYXR1cmVGbGFnX29uX2NvbXBsZXRpb25fb2YgPSB0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZChcbiAgICAgICdmZl9mcmVxdWVuY3lfb25fY29tcGxldGlvbl9vZidcbiAgICApO1xuICAgIGlmICh0aGlzLmZyZXF1ZW5jeURldGFpbHMucGF0dGVybiAhPSAnJykge1xuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xuICAgIH1cbiAgICBjb25zdCBoaWRlRWxlbWVudHMgPSBbJ3JhbmRvbScsICdvbl9jb21wbGV0ZScsICdvbmdvaW5nJ107XG4gICAgaWYgKHRoaXMubW9kZSA9PSAncG9saWN5Jykge1xuICAgICAgaGlkZUVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZnJlcXVlbmN5TGlzdC5maW5kSW5kZXgoXG4gICAgICAgICAgKGVsZW1lbnRJbmRleDogYW55KSA9PiBlbGVtZW50SW5kZXgudHlwZSA9PSBlbGVtZW50XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5TGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGhpZGVFbGVtZW50czIgPSBbJ2RhaWx5JywgJ3JhbmRvbScsICdvbl9jb21wbGV0ZScsICdvbmdvaW5nJ107XG4gICAgaWYgKHRoaXMubW9kZSA9PSAncmV2aWV3ZXJGcmVxdWVuY3knKSB7XG4gICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscz8ucGF0dGVybiA9PSAnJyA/ICd3ZWVrbHknIDogdGhpcy5mcmVxdWVuY3lUYWI7XG4gICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID1cbiAgICAgICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzPy5wYXR0ZXJuID09ICcnID8gJ2Egd2Vla2x5JyA6IHRoaXMuY3VycmVudFRhYk5hbWU7XG5cbiAgICAgIGhpZGVFbGVtZW50czIuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mcmVxdWVuY3lMaXN0LmZpbmRJbmRleChcbiAgICAgICAgICAoZWxlbWVudEluZGV4OiBhbnkpID0+IGVsZW1lbnRJbmRleC50eXBlID09IGVsZW1lbnRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lMaXN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLnNlbGVjdGVkRnJlcXVlbmN5RGF0YSA9IE9iamVjdC5hc3NpZ24oeyAuLi50aGlzLmZyZXF1ZW5jeURldGFpbHMgfSk7XG4gICAgdGhpcy5mcmVxdWVuY3lEYXRhID0gT2JqZWN0LmFzc2lnbih7IC4uLnRoaXMuZnJlcXVlbmN5RGV0YWlscyB9KTtcbiAgfVxuXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xuICAgIGNvbnN0IGZyZXF1ZW5jeVBhdHRlcm4gPSBwYXJzZUludChcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscy5wYXR0ZXJuLnNwbGl0KCd+JylbMF1cbiAgICApO1xuXG4gICAgc3dpdGNoIChmcmVxdWVuY3lQYXR0ZXJuKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ29uZVRpbWUnO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2Egb25lIHRpbWUnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnZGFpbHknO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2EgZGFpbHknO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnd2Vla2x5JztcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIHdlZWtseSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAzOlxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdtb250aGx5JztcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIG1vbnRobHknO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgNDpcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnYW5udWFsJztcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhbiBhbm51YWwgJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDU6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2RhaWx5JztcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIGRhaWx5JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDY6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ29uX2NvbXBsZXRlJztcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhbiBvbiBjb21wbGV0aW9uIG9mJztcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnJlcG9ydF9pZCA9IHRoaXMuZnJlcXVlbmN5RGV0YWlscy5zZWxlY3RlZFJlcG9ydDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDc6XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ3F1YXJ0ZXJseSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBxdWFydGVybHknO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgODpcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAncmFuZG9tJztcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIHJhbmRvbSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA5OlxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdiaWFubnVhbCc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBiaWFubnVhbCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMDpcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnb25nb2luZyc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYW4gb25nb2luZyc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLmlzTmV4dERpc2FibGVkID0gZmFsc2U7XG4gIH1cblxuICBjaGFuZ2VGcmVxdWVuY3lUYWIoZnJlcXVlbmN5OiBhbnkpIHtcbiAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9IGZyZXF1ZW5jeS50eXBlO1xuXG4gICAgaWYgKGZyZXF1ZW5jeS5uYW1lID09ICdPbmUgVGltZScpIHtcbiAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBvbmUgdGltZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPVxuICAgICAgICBmcmVxdWVuY3kubmFtZS5zdGFydHNXaXRoKCdPbicpIHx8XG4gICAgICAgIGZyZXF1ZW5jeS5uYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdhbm51YWwnXG4gICAgICAgICAgPyAnYW4gJyArIGZyZXF1ZW5jeS5uYW1lXG4gICAgICAgICAgOiAnYSAnICsgZnJlcXVlbmN5Lm5hbWU7XG4gICAgfVxuICB9XG5cbiAgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIGxldCBpc0ludmFsaWQgPSBmYWxzZTtcbiAgICBjb25zdCBmcmVxdWVuY3lEZXRhaWxzID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuPy5zcGxpdCgnficpO1xuICAgIHN3aXRjaCAodGhpcy5mcmVxdWVuY3lUYWIpIHtcbiAgICAgIGNhc2UgJ2RhaWx5JzpcbiAgICAgICAgaWYgKHRoaXMuZnJlcXVlbmN5RGF0YS5jb250aW51b3VzX2ZhaWxlZF9kYXlzIDwgMikge1xuICAgICAgICAgIHRoaXMuc25hY2tiYXIuc2hvdygnSW5wdXQgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAxLicsICdhbGVydCcpO1xuICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5pc05leHREaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnd2Vla2x5JzpcbiAgICAgICAgaWYgKHRoaXMuZnJlcXVlbmN5RGF0YS5jb250aW51b3VzX2ZhaWxlZF9kYXlzIDwgMikge1xuICAgICAgICAgIHRoaXMuc25hY2tiYXIuc2hvdygnSW5wdXQgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAxLicsICdhbGVydCcpO1xuICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5pc05leHREaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHNbMV0gPT0gJycgfHxcbiAgICAgICAgICAhZnJlcXVlbmN5RGV0YWlsc1sxXSB8fFxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHMubGVuZ3RoIDwgNFxuICAgICAgICApIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtb250aGx5JzpcbiAgICAgICAgaWYgKHRoaXMuZnJlcXVlbmN5RGF0YS5jb250aW51b3VzX2ZhaWxlZF9kYXlzIDwgMikge1xuICAgICAgICAgIHRoaXMuc25hY2tiYXIuc2hvdygnSW5wdXQgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAxLicsICdhbGVydCcpO1xuICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5pc05leHREaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHNbMl0gPT0gJycgfHxcbiAgICAgICAgICAhZnJlcXVlbmN5RGV0YWlsc1syXSB8fFxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHMubGVuZ3RoIDwgNFxuICAgICAgICApIHtcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdiaWFubnVhbCc6XG4gICAgICAgIGlmIChcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHNbMl0gPT09ICcnIHx8XG4gICAgICAgICAgZnJlcXVlbmN5RGV0YWlsc1syXS5zcGxpdCgnLCcpPy5sZW5ndGggPCAyXG4gICAgICAgICkge1xuICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvbmVUaW1lJzpcbiAgICAgICAgaWYgKGZyZXF1ZW5jeURldGFpbHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFRpbWUgPSBtb21lbnQoXG4gICAgICAgICAgICBgJHtmcmVxdWVuY3lEZXRhaWxzWzNdfS0ke2ZyZXF1ZW5jeURldGFpbHNbMl19LSR7ZnJlcXVlbmN5RGV0YWlsc1sxXX0gJHt0aGlzLmZyZXF1ZW5jeURhdGEudGltZUluMTJocn1gLFxuICAgICAgICAgICAgJ0RELU1NLVlZWVkgSEg6bW0gYSdcbiAgICAgICAgICApLnVuaXgoKTtcbiAgICAgICAgICBpZiAoRGF0ZS5ub3coKSAvIDEwMDAgPiBzZWxlY3RlZFRpbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tiYXIuc2hvdygnUGxlYXNlIHNldCBhIGZ1dHVyZSBkYXRlLicsICdhbGVydCcpO1xuICAgICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ29uX2NvbXBsZXRlJzpcbiAgICAgICAgaWYgKHRoaXMuZnJlcXVlbmN5RGF0YS5vbkNvbXBsZXRpb24/LnJlc3BvbnNpYmlsaXR5ID4gMCkge1xuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3JhbmRvbSc6XG4gICAgICAgIGlmIChcbiAgICAgICAgICBwYXJzZUludChmcmVxdWVuY3lEZXRhaWxzWzFdKSA9PSAyICYmXG4gICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHNbMl0gPT0gJycgfHxcbiAgICAgICAgICAgICFmcmVxdWVuY3lEZXRhaWxzWzJdIHx8XG4gICAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzLmxlbmd0aCA8IDQpXG4gICAgICAgICkge1xuICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzSW52YWxpZDtcbiAgfVxuXG4gIG9uRnJlcXVlbmN5U2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZnJlcXVlbmN5RGF0YSA9IGV2ZW50O1xuICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSB0aGlzLmlzSW52YWxpZCgpO1xuICB9XG5cbiAgb3BlbmVkUmFkaW8oZXZlbnQ6IGFueSkge1xuICAgIHRoaXMub3BlbmVkUmFkaW9Gb3JtID0gZXZlbnQ7XG4gIH1cblxuICAvLyAgIGNoZWNrTmV4dFZhbGlkaXR5KClcbiAgLy8ge1xuXG4gIC8vIH1cblxuICBzYXZlKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRGcmVxdWVuY3kuZW1pdCh0aGlzLmZyZXF1ZW5jeURhdGEpO1xuICB9XG4gIGNsb3NlKCkge1xuICAgIHRoaXMuY2xvc2VGcmVxdWVuY3kuZW1pdCgpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSAhPT0gJ3BvbGljeSdcIj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2dcIiAqbmdJZj1cIm1vZGUgIT09ICdwb2xpY3knXCI+XG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctaGVhZCB2eC1wLTMgdngtbWItNCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZXQgYSBGcmVxdWVuY3k8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1ib2R5IHZ4LXBsLTQgdngtcHItNFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYm9keS1pbm5lclwiIFtuZ1N3aXRjaF09XCJmcmVxdWVuY3lUYWJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS10YWIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZyZXF1ZW5jeVR5cGUgb2YgZnJlcXVlbmN5TGlzdDsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2hhbmdlRnJlcXVlbmN5VGFiKGZyZXF1ZW5jeVR5cGUpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGItMiB2eC1tLTBcIlxuICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVR5cGU/LnR5cGUgPT0gZnJlcXVlbmN5VGFiXCI+e3sgZnJlcXVlbmN5VHlwZT8ubmFtZSB9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS10YWItYm90dG9tIHZ4LXBsLTQgdngtcHItNFwiPlxuICAgICAgICAgIDwhLS0gRGFpbHkgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LWRhaWx5ICpuZ1N3aXRjaENhc2U9XCInZGFpbHknXCIgW21vZGVdPVwibW9kZVwiIFtwYWdlVHlwZV09XCJwYWdlVHlwZVwiXG4gICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIiBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+PC9hcHAtZnJlcXVlbmN5LWRhaWx5PlxuICAgICAgICAgIDwhLS0gRGFpbHkgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIFdlZWtseSBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktd2Vla2x5ICpuZ1N3aXRjaENhc2U9XCInd2Vla2x5J1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCIgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS13ZWVrbHk+XG4gICAgICAgICAgPCEtLSBXZWVrbHkgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIE1vbnRobHkgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LW1vbnRobHkgKm5nU3dpdGNoQ2FzZT1cIidtb250aGx5J1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCIgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1tb250aGx5PlxuICAgICAgICAgIDwhLS0gTW9udGhseSBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICAgIDwhLS0gUXVhcnRlcmx5IEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1xdWFydGVybHkgKm5nU3dpdGNoQ2FzZT1cIidxdWFydGVybHknXCIgW21vZGVdPVwibW9kZVwiIFtwYWdlVHlwZV09XCJwYWdlVHlwZVwiXG4gICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1xdWFydGVybHk+XG4gICAgICAgICAgPCEtLSBRdWFydGVybHkgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIEJpYW5udWFsIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1iaWFubnVhbCAqbmdTd2l0Y2hDYXNlPVwiJ2JpYW5udWFsJ1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktYmlhbm51YWw+XG4gICAgICAgICAgPCEtLSBCaWFubnVhbCBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICAgIDwhLS0gQW5udWFsIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1hbm51YWwgKm5nU3dpdGNoQ2FzZT1cIidhbm51YWwnXCIgW21vZGVdPVwibW9kZVwiIFtwYWdlVHlwZV09XCJwYWdlVHlwZVwiXG4gICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIiBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+PC9hcHAtZnJlcXVlbmN5LWFubnVhbD5cbiAgICAgICAgICA8IS0tIEFubnVhbCBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICAgIDwhLS0gT25lIFRpbWUgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LW9uZS10aW1lICpuZ1N3aXRjaENhc2U9XCInb25lVGltZSdcIiBbbW9kZV09XCJtb2RlXCIgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+PC9hcHAtZnJlcXVlbmN5LW9uZS10aW1lPlxuICAgICAgICAgIDwhLS0gT25lIFRpbWUgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIFJhbmRvbSBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktcmFuZG9tICpuZ1N3aXRjaENhc2U9XCIncmFuZG9tJ1wiIFttb2RlXT1cIm1vZGVcIiAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1yYW5kb20+XG4gICAgICAgICAgPCEtLSBSYW5kb20gRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgICA8IS0tIE9uIENvbXBsZXRpb24gRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YgKm5nU3dpdGNoQ2FzZT1cIidvbl9jb21wbGV0ZSdcIiBbbW9kZV09XCJtb2RlXCIgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiXG4gICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIiBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCJcbiAgICAgICAgICAgIChyYWRpb0Zvcm0pPVwib3BlbmVkUmFkaW8oJGV2ZW50KVwiPjwvYXBwLWZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mPlxuICAgICAgICAgIDwhLS0gT24gQ29tcGxldGlvbiBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICAgIDwhLS0gT25nb2luZyBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktb25nb2luZyAqbmdTd2l0Y2hDYXNlPVwiJ29uZ29pbmcnXCIgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktb25nb2luZz5cbiAgICAgICAgICA8IS0tIE9uZ29pbmcgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWZvb3RlclwiICpuZ0lmPVwiIW9wZW5lZFJhZGlvRm9ybVwiPlxuICAgICAgPGFwcC1mbG9hdGluZy1iYXIgW3Nob3dGcmVxdWVuY3lUZXh0XT1cInRydWVcIiBbY3VycmVudEZyZXF1ZW5jeV09XCJjdXJyZW50VGFiTmFtZVwiIFtpc0Rpc2FibGVkXT1cImlzTmV4dERpc2FibGVkXCJcbiAgICAgICAgKGNsb3NlRXZlbnQpPVwic2F2ZSgpXCIgKGNsb3NlTGlzdCk9XCJjbG9zZSgpXCI+PC9hcHAtZmxvYXRpbmctYmFyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuPCEtLSBXaGVuIHJlc3BvbnNpYmlsaXR5IGxpc3Qgc2hvdyB0aGVuIGhpZGUgZnJlcXVlbmN5LWRpYWxvZyBodG1sIC0tPlxuXG48IS0tIEZvciBQb2xpY3kgLS0+XG48ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZ1wiICpuZ0lmPVwibW9kZSA9PT0gJ3BvbGljeSdcIj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctaGVhZCB2eC1wLTMgdngtbWItNCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlblwiPlxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2V0IGEgRnJlcXVlbmN5PC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1ib2R5IHZ4LXBsLTQgdngtcHItNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWJvZHktaW5uZXJcIiBbbmdTd2l0Y2hdPVwiZnJlcXVlbmN5VGFiXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXRhYiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZyZXF1ZW5jeVR5cGUgb2YgZnJlcXVlbmN5TGlzdDsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNoYW5nZUZyZXF1ZW5jeVRhYihmcmVxdWVuY3lUeXBlKVwiXG4gICAgICAgICAgICBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wYi0yIHZ4LW0tMFwiXG4gICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVR5cGU/LnR5cGUgPT0gZnJlcXVlbmN5VGFiXCI+e3sgZnJlcXVlbmN5VHlwZT8ubmFtZSB9fTwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS10YWItYm90dG9tIHZ4LXBsLTQgdngtcHItNFwiPlxuICAgICAgICA8IS0tIERhaWx5IEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGFpbHkgKm5nU3dpdGNoQ2FzZT1cIidkYWlseSdcIiBbbW9kZV09XCJtb2RlXCIgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIiBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+PC9hcHAtZnJlcXVlbmN5LWRhaWx5PlxuICAgICAgICA8IS0tIERhaWx5IEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgIDwhLS0gV2Vla2x5IEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktd2Vla2x5ICpuZ1N3aXRjaENhc2U9XCInd2Vla2x5J1wiIFttb2RlXT1cIm1vZGVcIiBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktd2Vla2x5PlxuICAgICAgICA8IS0tIFdlZWtseSBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8IS0tIE1vbnRobHkgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1tb250aGx5ICpuZ1N3aXRjaENhc2U9XCInbW9udGhseSdcIiBbbW9kZV09XCJtb2RlXCIgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIiBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+PC9hcHAtZnJlcXVlbmN5LW1vbnRobHk+XG4gICAgICAgIDwhLS0gTW9udGhseSBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8IS0tIFF1YXJ0ZXJseSBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LXF1YXJ0ZXJseSAqbmdTd2l0Y2hDYXNlPVwiJ3F1YXJ0ZXJseSdcIiBbbW9kZV09XCJtb2RlXCIgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIiBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+PC9hcHAtZnJlcXVlbmN5LXF1YXJ0ZXJseT5cbiAgICAgICAgPCEtLSBRdWFydGVybHkgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgPCEtLSBCaWFubnVhbCBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWJpYW5udWFsICpuZ1N3aXRjaENhc2U9XCInYmlhbm51YWwnXCIgW21vZGVdPVwibW9kZVwiIFtwYWdlVHlwZV09XCJwYWdlVHlwZVwiXG4gICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCIgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPjwvYXBwLWZyZXF1ZW5jeS1iaWFubnVhbD5cbiAgICAgICAgPCEtLSBCaWFubnVhbCBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8IS0tIEFubnVhbCBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWFubnVhbCAqbmdTd2l0Y2hDYXNlPVwiJ2FubnVhbCdcIiBbbW9kZV09XCJtb2RlXCIgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIiBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+PC9hcHAtZnJlcXVlbmN5LWFubnVhbD5cbiAgICAgICAgPCEtLSBBbm51YWwgRnJlcXVlbmN5IEVuZCAtLT5cbiAgICAgICAgPCEtLSBPbmUgVGltZSBGcmVxdWVuY3kgU3RhcnQgLS0+XG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LW9uZS10aW1lICpuZ1N3aXRjaENhc2U9XCInb25lVGltZSdcIiBbbW9kZV09XCJtb2RlXCIgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIiBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+PC9hcHAtZnJlcXVlbmN5LW9uZS10aW1lPlxuICAgICAgICA8IS0tIE9uZSBUaW1lIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICAgIDwhLS0gUmFuZG9tIEZyZXF1ZW5jeSBTdGFydCAtLT5cbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktcmFuZG9tICpuZ1N3aXRjaENhc2U9XCIncmFuZG9tJ1wiIFttb2RlXT1cIm1vZGVcIiAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktcmFuZG9tPlxuICAgICAgICA8IS0tIFJhbmRvbSBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8IS0tIE9uIENvbXBsZXRpb24gRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mICpuZ1N3aXRjaENhc2U9XCInb25fY29tcGxldGUnXCIgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+PC9hcHAtZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2Y+XG4gICAgICAgIDwhLS0gT24gQ29tcGxldGlvbiBGcmVxdWVuY3kgRW5kIC0tPlxuICAgICAgICA8IS0tIE9uZ29pbmcgRnJlcXVlbmN5IFN0YXJ0IC0tPlxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1vbmdvaW5nICpuZ1N3aXRjaENhc2U9XCInb25nb2luZydcIiAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj48L2FwcC1mcmVxdWVuY3ktb25nb2luZz5cbiAgICAgICAgPCEtLSBPbmdvaW5nIEZyZXF1ZW5jeSBFbmQgLS0+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWZvb3RlclwiPlxuICAgIDxhcHAtZmxvYXRpbmctYmFyIFtzaG93RnJlcXVlbmN5VGV4dF09XCJ0cnVlXCIgW2N1cnJlbnRGcmVxdWVuY3ldPVwiY3VycmVudFRhYk5hbWVcIiBbaXNEaXNhYmxlZF09XCJpc05leHREaXNhYmxlZFwiXG4gICAgICAoY2xvc2VFdmVudCk9XCJzYXZlKClcIiAoY2xvc2VMaXN0KT1cImNsb3NlKClcIj48L2FwcC1mbG9hdGluZy1iYXI+XG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -104,7 +104,7 @@ export class FrequencyOnCompletionOfComponent {
104
104
  : '');
105
105
  this.frequencyInfo.pattern =
106
106
  6 + '~' + '0' + '~' + '0' + '~' + this.onCompletionOfInput;
107
- this.frequencyInfo.case = 'onCompletionOf';
107
+ this.frequencyInfo.case = 'on_complete';
108
108
  this.frequencyInfo.failedAfter = this.onCompletionOfFailed;
109
109
  this.frequencyInfo.window = this.onCompletionOfWindow;
110
110
  this.frequencyInfo.timeIn12hr = this.onCompletionOfTime;
@@ -161,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
161
161
  }], radioForm: [{
162
162
  type: Output
163
163
  }] } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPakUsTUFBTSxPQUFPLGdDQUFnQztJQTBCM0MsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF6QjdDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFeEIsaUJBQVksR0FBVyxZQUFZLENBQUM7UUFDcEMsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6Qix5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLGlDQUE0QixHQUFlLEVBQUUsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsMkJBQXNCLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FB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TyxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0UsZ0NBQWdDO3VHQUtqQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQWFHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFHSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xuaW1wb3J0IHsgZWxlbWVudEF0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5T25Db21wbGV0aW9uT2ZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcbiAgQElucHV0KCkgZmVhdHVyZTogYW55O1xuICBERUZBVUxUX1RJTUU6IHN0cmluZyA9IERFRkFVTFRfVElNRTtcbiAgb25Db21wbGV0aW9uT2ZJbnB1dCA9IDE7XG4gIG9uQ29tcGxldGlvbk9mV2luZG93ID0gMztcbiAgb25Db21wbGV0aW9uT2ZGYWlsZWQgPSA1O1xuICBvbkNvbXBsZXRpb25PZlRpbWUgPSBERUZBVUxUX1RJTUU7XG4gIG9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHk6IEFycmF5PGFueT4gPSBbXTtcbiAgaXNMaWZlY3ljbGVNb2RpZmllZCA9IGZhbHNlO1xuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5ID0gMDtcbiAgcGxhY2Vob2xkZXIgPSAnTG9hZGluZy4uLic7XG4gIGZyZXF1ZW5jeUluZm86IGFueTtcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM6IGFueSA9IHt9O1xuXG4gIEBJbnB1dCgpIHN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xuICBASW5wdXQoKSBmcmVxdWVuY3lEYXRhOiBhbnk7XG4gIGxpZmVjeWNsZURldGFpbHM6IGFueSA9ICcwMDAwLTAwLTAwfn4wJztcblxuICBAT3V0cHV0KCkgZnJlcXVlbmN5RGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcmFkaW9Gb3JtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIG9wZW5SYWRpbzogYm9vbGVhbiA9IGZhbHNlO1xuICBmZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mOiBhbnk7XG4gIGJhY2tCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNTZWxlY3RlZERhdGE6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfZnJlcXVlbmN5X29uX2NvbXBsZXRpb25fb2YnXG4gICAgKTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8gPSBPYmplY3QuYXNzaWduKHRoaXMuZnJlcXVlbmN5U2VydmljZS5mcmVxdWVuY3lJbmZvKTtcbiAgICB0aGlzLmdldENvbXBsZXRpb25SZXBvcnRzKCk7XG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcbiAgICB0aGlzLmlzU2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1xuICAgICAgPyBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzKT8ubGVuZ3RoID4gMFxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xuICAgIGNvbnN0IGZyZXF1ZW5jeVNlbGVjdGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4uc3BsaXQoJ34nKTtcbiAgICB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgPSBwYXJzZUludChmcmVxdWVuY3lTZWxlY3RlZFszXSk7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZkZhaWxlZCA9IHRoaXMuZnJlcXVlbmN5RGF0YS5mYWlsZWQ7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZldpbmRvdyA9IHRoaXMuZnJlcXVlbmN5RGF0YS53aW5kb3c7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZlRpbWUgPSB0aGlzLmZyZXF1ZW5jeURhdGEuZmFpbGVkVGltZTtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzID0gdGhpcy5vbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5LmZpbmQoXG4gICAgICAocmVzOiBhbnkpID0+IHJlcy5SZXBvcnRJZCA9PT0gdGhpcy5mcmVxdWVuY3lEYXRhLnNlbGVjdGVkUmVwb3J0XG4gICAgKTtcbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xuICAgIHRoaXMuaXNTZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXG4gICAgICA/IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMpPy5sZW5ndGggPiAwXG4gICAgICA6IGZhbHNlO1xuICB9XG5cbiAgb25UaW1lQ2hhbmdlZChldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZlRpbWUgPSBldmVudDtcbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mV2luZG93ID0gZXZlbnQudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZGYWlsZWQgPSBldmVudC52YWx1ZTtcbiAgICB9XG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcbiAgfVxuXG4gIG9uUmVzcG9uc2liaWxpdHlTZWxlY3Rpb24oZXZlbnQ6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKGV2ZW50LCBcImV2ZW50XCIpO1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMgPSBldmVudDtcbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgZ2V0Q29tcGxldGlvblJlcG9ydHMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5ID0gMDtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gJ1NlbGVjdCBhIFJlc3BvbnNpYmlsaXR5JztcbiAgICB0aGlzLm9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHkgPSBbXTtcblxuICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGE/Lm9uQ29tcGxldGlvblJlcG9ydERldGFpbHMpIHtcbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZSZXNwb25zaWJpbGl0eS5wdXNoKFxuICAgICAgICB0aGlzLmZyZXF1ZW5jeURhdGE/Lm9uQ29tcGxldGlvblJlcG9ydERldGFpbHNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4gIT0gJycgJiZcbiAgICAgIHBhcnNlSW50KHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+JylbMF0pID09PSA2XG4gICAgKSB7XG4gICAgICB0aGlzLnBvcHVsYXRlRnJlcXVlbmN5KCk7XG4gICAgfVxuICB9XG5cbiAgaW5wdXRWYWx1ZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZklucHV0ID0gTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgaWYgKHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA8IDEpIHtcbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA9IDE7XG4gICAgfVxuICAgIHRoaXMuZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCk7XG4gIH1cblxuICBnZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKSB7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBsYWNlaG9sZGVyID1cbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCArXG4gICAgICAnICcgK1xuICAgICAgKHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA+IDEgPyAnZGF5cycgOiAnZGF5JykgK1xuICAgICAgJyBhZnRlciBjb21wbGV0aW9uIG9mICcgK1xuICAgICAgKHRoaXMub25Db21wbGV0aW9uT2ZSZXNwb25zaWJpbGl0eSAmJlxuICAgICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVzcG9uc2liaWxpdHk/LnRpdGxlXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVzcG9uc2liaWxpdHk/LnRpdGxlXG4gICAgICAgIDogJycpO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wYXR0ZXJuID1cbiAgICAgIDYgKyAnficgKyAnMCcgKyAnficgKyAnMCcgKyAnficgKyB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQ7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmNhc2UgPSAnb25Db21wbGV0aW9uT2YnO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRBZnRlciA9IHRoaXMub25Db21wbGV0aW9uT2ZGYWlsZWQ7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLndpbmRvdyA9IHRoaXMub25Db21wbGV0aW9uT2ZXaW5kb3c7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjEyaHIgPSB0aGlzLm9uQ29tcGxldGlvbk9mVGltZTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMjRIciA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS50aW1lRnJvbTEyaFRvMjRoKFxuICAgICAgdGhpcy5vbkNvbXBsZXRpb25PZlRpbWVcbiAgICApO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRfdGltZV91dGMgPSAwO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5vbkNvbXBsZXRpb24gPSB7XG4gICAgICBkdWVBZnRlcjogdGhpcy5vbkNvbXBsZXRpb25PZklucHV0LFxuICAgICAgcmVzcG9uc2liaWxpdHk6IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlc3BvbnNpYmlsaXR5Py5pZCxcbiAgICAgIGFzc2lnbmVlOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5yZXNwb25zaWJpbGl0eT8uYXNzaWduZWVEZXRhaWxzWzBdPy5hc3NpZ25lZSxcbiAgICAgIHJjOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5yZXNwb25zaWJpbGl0eT8uYXNzaWduZWVEZXRhaWxzWzBdPy5yZXNwb25zaWJpbGl0eUNlbnRlclxuICAgIH1cbiAgICBjb25zb2xlLmxvZyh0aGlzLmZyZXF1ZW5jeUluZm8sIFwiZnJlcXVlbmN5SW5mb1wiKTtcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMuZW1pdCh0aGlzLmZyZXF1ZW5jeUluZm8pO1xuICB9XG5cbiAgb3BlblJhZGlvUmVzcG9uc2liaWxpdHkoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudCA9PT0gJ2JhY2tUb09uQ29tcGxldGlvbicpIHtcbiAgICAgIHRoaXMuYmFja0J1dHRvbiA9IHRydWU7XG4gICAgICB0aGlzLm9wZW5SYWRpbyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5SYWRpbyA9IHRydWU7XG4gICAgICB0aGlzLmJhY2tCdXR0b24gPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5yYWRpb0Zvcm0uZW1pdCh0aGlzLm9wZW5SYWRpbyk7XG4gIH1cblxuICByZW1vdmUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyA9IHt9O1xuICAgIHRoaXMuaXNTZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXG4gICAgICA/IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMpPy5sZW5ndGggPiAwXG4gICAgICA6IGZhbHNlO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9IDA7XG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcbiAgfVxuXG4gIHRpbWVTZWxlY3Rpb24oZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBldmVudC5zZWxlY3RlZFZhbHVlO1xuICAgIHRoaXMub25UaW1lQ2hhbmdlZChzZWxlY3RlZFZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jb21wbGV0aW9uXCIgKm5nSWY9XCJtb2RlICE9PSAncG9saWN5JyB8fCBiYWNrQnV0dG9uXCI+XG4gIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+XG4gICAgRFVFIERBVEUgRlJFUVVFTkNZOlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jb21wbGV0aW9uLWlubmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jb21wbGV0aW9uLXRvcCB2eC1wLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgPGlucHV0IGNsYXNzPVwiY291bnROdW1cIiB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJvbkNvbXBsZXRpb25PZklucHV0XCIgKGNoYW5nZSk9XCJpbnB1dFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCIgbWluPVwiMFwiIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTEzIHZ4LXBhcmFncmFwaC10eHRcIj5kYXkgYWZ0ZXIgY29tcGxldGlvbiBvZjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY29tcGxldGlvbi1ib3R0b20gdngtcC0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPlxuICAgICAgICBSRVNQT05TSUJJTElUWVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlc3BvbnNpYmlsaXR5Py50aXRsZVwiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwicGxhY2Vob2xkZXIgPT09ICdMb2FkaW5nLi4uJ1wiXG4gICAgICAgICAgICBjbGFzcz1cInNlbGVjdC1ib3ggdngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1wLTIgdngtcGwtMyB2eC1wci0zIHZ4LW1yLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtdy0xMDBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICBwbGFjZWhvbGRlciA9PT0gXCJMb2FkaW5nLi4uXCJcbiAgICAgICAgICAgID8gXCJMb2FkaW5nLi4uXCJcbiAgICAgICAgICAgIDogXCJTZWxlY3QgYSBSZXNwb25zaWJpbGl0eVwiXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMFwiPiYjeGU5ZTg7PC9pPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVzcG9uc2liaWxpdHk/LnRpdGxlIGFzIHJlc3BOYW1lXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWZ0ZXItc2VsZWN0LWJveCB2eC1wLTEgdngtbXItMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC13LTEwMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC1jaGlwIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtcC0xIHZ4LXBsLTIgdngtcHItMiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTQgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoKVwiPiYjeGU5YWU7PC9pPlxuICAgICAgICAgICAgICA8c3BhbiBbYXBwVG9vbHRpcF09XCJyZXNwTmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPnt7XG4gICAgICAgICAgICAgICAgcmVzcE5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LWJsdWUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wbC0xIHZ4LXByLTEgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblJhZGlvUmVzcG9uc2liaWxpdHkoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LW1yLTFcIiAoY2xpY2spPVwib3BlblJhZGlvUmVzcG9uc2liaWxpdHkoJGV2ZW50KVwiPiYjeGU5MGM7PC9pPlxuICAgICAgICAgICAgICBFRElUXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0ICpuZ0lmPVwib3BlblJhZGlvXCIgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiIFtzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc109XCJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMgPyBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyA6IHt9XG4gICAgICAgICAgICBcIiAoYmFja0J1dHRvbik9XCJvcGVuUmFkaW9SZXNwb25zaWJpbGl0eSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzZWxlY3RlZFJlc3BvbnNpYmlsaXR5KT1cIm9uUmVzcG9uc2liaWxpdHlTZWxlY3Rpb24oJGV2ZW50KVwiPjwvYXBwLWZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1waWNrZXItZ3JvdXAgdngtZC1mbGV4XCIgKm5nSWY9XCIhb3BlblJhZGlvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtZmllbGRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJ0aW1lUGlja2VyLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJpbnB1dFwiIFtwbGFjZWhvbGRlcl09XCJvbkNvbXBsZXRpb25PZlRpbWUgfCB1cHBlcmNhc2VcIiByZWFkb25seSAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsb2NrLWljb24gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHRcIj4mI3hlOTU1OzwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxhcHAtcG9wb3ZlciAjdGltZVBpY2tlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgICAgICA8YXBwLXRpbWUtcGlja2VyIFt0aW1lXT1cIm9uQ29tcGxldGlvbk9mVGltZVwiIChvblRpbWVTZWxlY3Rpb24pPVwiXG4gICAgICAgICAgICAgICAgdGltZVNlbGVjdGlvbigkZXZlbnQpOyB0aW1lUGlja2VyLmNsb3NlUG9wb3ZlcigndG9wJylcbiAgICAgICAgICAgICAgXCI+PC9hcHAtdGltZS1waWNrZXI+XG4gICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxhcHAtZnJlcXVlbmN5LWR1ZS1kYXRlIFtpZF09XCIzXCIgW3BhZ2VOYW1lXT1cIidvbkNvbXBsZXRpb24nXCIgW21vZGVdPVwibW9kZVwiIFtpc0RlYWN0aXZhdGVkXT1cImZhbHNlXCJcbiAgICBbY29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZXaW5kb3dcIiBbbm90Q29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZGYWlsZWRcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIj48L2FwcC1mcmVxdWVuY3ktZHVlLWRhdGU+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIm1vZGUgPT09ICdwb2xpY3knXCIgY2xhc3M9XCJmcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZlwiPlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YtbWVzc2FnZVwiPlxuICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJvbkNvbXBsZXRpb25PZklucHV0XCIgKGNoYW5nZSk9XCJpbnB1dFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiIG1pbj1cIjBcIiBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCIgLz5cbiAgICA8cD57eyBvbkNvbXBsZXRpb25PZklucHV0ID4gMSA/IFwiZGF5c1wiIDogXCJkYXlcIiB9fSBhZnRlciBjb21wbGV0aW9uIG9mPC9wPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJyZXNwb25zaWJpbGl0eVwiPlxuICAgICAgPGNzLXNlbGVjdCBbY2xhc3MuZGlzYWJsZWRdPVwicGxhY2Vob2xkZXIgPT09ICdMb2FkaW5nLi4uJ1wiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNcIlxuICAgICAgICAodmFsdWVDaGFuZ2VkKT1cIm9uUmVzcG9uc2liaWxpdHlTZWxlY3Rpb24oJGV2ZW50KVwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiPlxuICAgICAgICA8Y3Mtb3B0aW9uICpuZ0Zvcj1cIlxuICAgICAgICAgICAgbGV0IHJlc3BvbnNpYmlsaXR5IG9mIG9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHk7XG4gICAgICAgICAgICBsZXQgaSA9IGluZGV4XG4gICAgICAgICAgXCIgW3ZhbHVlXT1cInJlc3BvbnNpYmlsaXR5XCIgW29wdGlvblRvb2x0aXBdPVwicmVzcG9uc2liaWxpdHk/LlJlcG9ydE5hbWVcIj57eyByZXNwb25zaWJpbGl0eT8uUmVwb3J0TmFtZVxuICAgICAgICAgIH19PC9jcy1vcHRpb24+XG4gICAgICA8L2NzLXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGltZVwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcmVhZG9ubHkgYXJpYS1sYWJlbD1cIjEyaHIgZm9ybWF0XCIgWyhuZ01vZGVsKV09XCJvbkNvbXBsZXRpb25PZlRpbWVcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBUaW1lXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxhcHAtZnJlcXVlbmN5LWR1ZS1kYXRlIFtpZF09XCIzXCIgW3BhZ2VOYW1lXT1cIidvbkNvbXBsZXRpb24nXCIgW21vZGVdPVwibW9kZVwiIFtpc0RlYWN0aXZhdGVkXT1cImZhbHNlXCJcbiAgICBbY29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZXaW5kb3dcIiBbbm90Q29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZGYWlsZWRcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIj48L2FwcC1mcmVxdWVuY3ktZHVlLWRhdGU+XG48L2Rpdj4iXX0=
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPakUsTUFBTSxPQUFPLGdDQUFnQztJQTBCM0MsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF6QjdDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFeEIsaUJBQVksR0FBVyxZQUFZLENBQUM7UUFDcEMsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6Qix5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLGlDQUE0QixHQUFlLEVBQUUsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsMkJBQXNCLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FB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Z0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLGdDQUFnQzt1R0FLakMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFhRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZnJlcXVlbmN5LnNlcnZpY2UnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcbmltcG9ydCB7IGVsZW1lbnRBdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERFRkFVTFRfVElNRSB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy90aW1lLmNvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZyZXF1ZW5jeU9uQ29tcGxldGlvbk9mQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbW9kZTogYW55ID0gJyc7XG4gIEBJbnB1dCgpIGZlYXR1cmU6IGFueTtcbiAgREVGQVVMVF9USU1FOiBzdHJpbmcgPSBERUZBVUxUX1RJTUU7XG4gIG9uQ29tcGxldGlvbk9mSW5wdXQgPSAxO1xuICBvbkNvbXBsZXRpb25PZldpbmRvdyA9IDM7XG4gIG9uQ29tcGxldGlvbk9mRmFpbGVkID0gNTtcbiAgb25Db21wbGV0aW9uT2ZUaW1lID0gREVGQVVMVF9USU1FO1xuICBvbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5OiBBcnJheTxhbnk+ID0gW107XG4gIGlzTGlmZWN5Y2xlTW9kaWZpZWQgPSBmYWxzZTtcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSA9IDA7XG4gIHBsYWNlaG9sZGVyID0gJ0xvYWRpbmcuLi4nO1xuICBmcmVxdWVuY3lJbmZvOiBhbnk7XG4gIHNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKSBzdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcbiAgQElucHV0KCkgZnJlcXVlbmN5RGF0YTogYW55O1xuICBsaWZlY3ljbGVEZXRhaWxzOiBhbnkgPSAnMDAwMC0wMC0wMH5+MCc7XG5cbiAgQE91dHB1dCgpIGZyZXF1ZW5jeURldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJhZGlvRm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBvcGVuUmFkaW86IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZjogYW55O1xuICBiYWNrQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG4gIGlzU2VsZWN0ZWREYXRhOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZiA9IHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKFxuICAgICAgJ2ZmX2ZyZXF1ZW5jeV9vbl9jb21wbGV0aW9uX29mJ1xuICAgICk7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvID0gT2JqZWN0LmFzc2lnbih0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZnJlcXVlbmN5SW5mbyk7XG4gICAgdGhpcy5nZXRDb21wbGV0aW9uUmVwb3J0cygpO1xuICAgIHRoaXMuZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCk7XG4gICAgdGhpcy5pc1NlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNcbiAgICAgID8gT2JqZWN0LmtleXModGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyk/Lmxlbmd0aCA+IDBcbiAgICAgIDogZmFsc2U7XG4gIH1cblxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcbiAgICBjb25zdCBmcmVxdWVuY3lTZWxlY3RlZCA9IHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+Jyk7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZklucHV0ID0gcGFyc2VJbnQoZnJlcXVlbmN5U2VsZWN0ZWRbM10pO1xuICAgIHRoaXMub25Db21wbGV0aW9uT2ZGYWlsZWQgPSB0aGlzLmZyZXF1ZW5jeURhdGEuZmFpbGVkO1xuICAgIHRoaXMub25Db21wbGV0aW9uT2ZXaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGEud2luZG93O1xuICAgIHRoaXMub25Db21wbGV0aW9uT2ZUaW1lID0gdGhpcy5mcmVxdWVuY3lEYXRhLmZhaWxlZFRpbWU7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyA9IHRoaXMub25Db21wbGV0aW9uT2ZSZXNwb25zaWJpbGl0eS5maW5kKFxuICAgICAgKHJlczogYW55KSA9PiByZXMuUmVwb3J0SWQgPT09IHRoaXMuZnJlcXVlbmN5RGF0YS5zZWxlY3RlZFJlcG9ydFxuICAgICk7XG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcbiAgICB0aGlzLmlzU2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1xuICAgICAgPyBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzKT8ubGVuZ3RoID4gMFxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIG9uVGltZUNoYW5nZWQoZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMub25Db21wbGV0aW9uT2ZUaW1lID0gZXZlbnQ7XG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC50eXBlID09PSAnY29tcGxldGVkJykge1xuICAgICAgdGhpcy5vbkNvbXBsZXRpb25PZldpbmRvdyA9IGV2ZW50LnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mRmFpbGVkID0gZXZlbnQudmFsdWU7XG4gICAgfVxuICAgIHRoaXMuZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCk7XG4gIH1cblxuICBvblJlc3BvbnNpYmlsaXR5U2VsZWN0aW9uKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZyhldmVudCwgXCJldmVudFwiKTtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzID0gZXZlbnQ7XG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcbiAgfVxuXG4gIGdldENvbXBsZXRpb25SZXBvcnRzKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSA9IDA7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9ICdTZWxlY3QgYSBSZXNwb25zaWJpbGl0eSc7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5ID0gW107XG5cbiAgICBpZiAodGhpcy5mcmVxdWVuY3lEYXRhPy5vbkNvbXBsZXRpb25SZXBvcnREZXRhaWxzKSB7XG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHkucHVzaChcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhPy5vbkNvbXBsZXRpb25SZXBvcnREZXRhaWxzXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuICE9ICcnICYmXG4gICAgICBwYXJzZUludCh0aGlzLmZyZXF1ZW5jeURhdGEucGF0dGVybi5zcGxpdCgnficpWzBdKSA9PT0gNlxuICAgICkge1xuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0VmFsdWVDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA9IE51bWJlcihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIGlmICh0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgPCAxKSB7XG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgPSAxO1xuICAgIH1cbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCkge1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wbGFjZWhvbGRlciA9XG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgK1xuICAgICAgJyAnICtcbiAgICAgICh0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgPiAxID8gJ2RheXMnIDogJ2RheScpICtcbiAgICAgICcgYWZ0ZXIgY29tcGxldGlvbiBvZiAnICtcbiAgICAgICh0aGlzLm9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHkgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlc3BvbnNpYmlsaXR5Py50aXRsZVxuICAgICAgICA/IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlc3BvbnNpYmlsaXR5Py50aXRsZVxuICAgICAgICA6ICcnKTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGF0dGVybiA9XG4gICAgICA2ICsgJ34nICsgJzAnICsgJ34nICsgJzAnICsgJ34nICsgdGhpcy5vbkNvbXBsZXRpb25PZklucHV0O1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jYXNlID0gJ29uX2NvbXBsZXRlJztcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkQWZ0ZXIgPSB0aGlzLm9uQ29tcGxldGlvbk9mRmFpbGVkO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby53aW5kb3cgPSB0aGlzLm9uQ29tcGxldGlvbk9mV2luZG93O1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4xMmhyID0gdGhpcy5vbkNvbXBsZXRpb25PZlRpbWU7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjI0SHIgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UudGltZUZyb20xMmhUbzI0aChcbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZUaW1lXG4gICAgKTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkX3RpbWVfdXRjID0gMDtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ub25Db21wbGV0aW9uID0ge1xuICAgICAgZHVlQWZ0ZXI6IHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCxcbiAgICAgIHJlc3BvbnNpYmlsaXR5OiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5yZXNwb25zaWJpbGl0eT8uaWQsXG4gICAgICBhc3NpZ25lZTogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlRGV0YWlsc1swXT8uYXNzaWduZWUsXG4gICAgICByYzogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlRGV0YWlsc1swXT8ucmVzcG9uc2liaWxpdHlDZW50ZXJcbiAgICB9XG4gICAgY29uc29sZS5sb2codGhpcy5mcmVxdWVuY3lJbmZvLCBcImZyZXF1ZW5jeUluZm9cIik7XG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcbiAgfVxuXG4gIG9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQgPT09ICdiYWNrVG9PbkNvbXBsZXRpb24nKSB7XG4gICAgICB0aGlzLmJhY2tCdXR0b24gPSB0cnVlO1xuICAgICAgdGhpcy5vcGVuUmFkaW8gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuUmFkaW8gPSB0cnVlO1xuICAgICAgdGhpcy5iYWNrQnV0dG9uID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMucmFkaW9Gb3JtLmVtaXQodGhpcy5vcGVuUmFkaW8pO1xuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMgPSB7fTtcbiAgICB0aGlzLmlzU2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1xuICAgICAgPyBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzKT8ubGVuZ3RoID4gMFxuICAgICAgOiBmYWxzZTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucmVwb3J0SWQgPSAwO1xuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscy5lbWl0KHRoaXMuZnJlcXVlbmN5SW5mbyk7XG4gIH1cblxuICB0aW1lU2VsZWN0aW9uKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gZXZlbnQuc2VsZWN0ZWRWYWx1ZTtcbiAgICB0aGlzLm9uVGltZUNoYW5nZWQoc2VsZWN0ZWRWYWx1ZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY29tcGxldGlvblwiICpuZ0lmPVwibW9kZSAhPT0gJ3BvbGljeScgfHwgYmFja0J1dHRvblwiPlxuICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPlxuICAgIERVRSBEQVRFIEZSRVFVRU5DWTpcbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY29tcGxldGlvbi1pbm5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY29tcGxldGlvbi10b3AgdngtcC0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgIDxpbnB1dCBjbGFzcz1cImNvdW50TnVtXCIgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwib25Db21wbGV0aW9uT2ZJbnB1dFwiIChjaGFuZ2UpPVwiaW5wdXRWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiIG1pbj1cIjBcIiBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCIgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0XCI+ZGF5IGFmdGVyIGNvbXBsZXRpb24gb2Y8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWNvbXBsZXRpb24tYm90dG9tIHZ4LXAtM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5cbiAgICAgICAgUkVTUE9OU0lCSUxJVFlcbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5yZXNwb25zaWJpbGl0eT8udGl0bGVcIlxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInBsYWNlaG9sZGVyID09PSAnTG9hZGluZy4uLidcIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3QtYm94IHZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtcC0yIHZ4LXBsLTMgdngtcHItMyB2eC1tci0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXctMTAwXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuUmFkaW9SZXNwb25zaWJpbGl0eSgkZXZlbnQpXCI+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgcGxhY2Vob2xkZXIgPT09IFwiTG9hZGluZy4uLlwiXG4gICAgICAgICAgICA/IFwiTG9hZGluZy4uLlwiXG4gICAgICAgICAgICA6IFwiU2VsZWN0IGEgUmVzcG9uc2liaWxpdHlcIlxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTBcIj4mI3hlOWU4OzwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlc3BvbnNpYmlsaXR5Py50aXRsZSBhcyByZXNwTmFtZVwiXG4gICAgICAgICAgICBjbGFzcz1cImFmdGVyLXNlbGVjdC1ib3ggdngtcC0xIHZ4LW1yLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtdy0xMDBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtY2hpcCB2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXAtMSB2eC1wbC0yIHZ4LXByLTIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTE0IHZ4LW1yLTFcIiAoY2xpY2spPVwicmVtb3ZlKClcIj4mI3hlOWFlOzwvaT5cbiAgICAgICAgICAgICAgPHNwYW4gW2FwcFRvb2x0aXBdPVwicmVzcE5hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj57e1xuICAgICAgICAgICAgICAgIHJlc3BOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiZWRpdC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC1ibHVlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGwtMSB2eC1wci0xIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCIgKGNsaWNrKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIj4mI3hlOTBjOzwvaT5cbiAgICAgICAgICAgICAgRURJVFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdCAqbmdJZj1cIm9wZW5SYWRpb1wiIFtmZWF0dXJlXT1cImZlYXR1cmVcIiBbc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNdPVwiXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzID8gc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMgOiB7fVxuICAgICAgICAgICAgXCIgKGJhY2tCdXR0b24pPVwib3BlblJhZGlvUmVzcG9uc2liaWxpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAoc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSk9XCJvblJlc3BvbnNpYmlsaXR5U2VsZWN0aW9uKCRldmVudClcIj48L2FwcC1mcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtcGlja2VyLWdyb3VwIHZ4LWQtZmxleFwiICpuZ0lmPVwiIW9wZW5SYWRpb1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLWZpZWxkXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwidGltZVBpY2tlci5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiaW5wdXRcIiBbcGxhY2Vob2xkZXJdPVwib25Db21wbGV0aW9uT2ZUaW1lIHwgdXBwZXJjYXNlXCIgcmVhZG9ubHkgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbG9jay1pY29uIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0XCI+JiN4ZTk1NTs8L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8YXBwLXBvcG92ZXIgI3RpbWVQaWNrZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGFwcC10aW1lLXBpY2tlciBbdGltZV09XCJvbkNvbXBsZXRpb25PZlRpbWVcIiAob25UaW1lU2VsZWN0aW9uKT1cIlxuICAgICAgICAgICAgICAgIHRpbWVTZWxlY3Rpb24oJGV2ZW50KTsgdGltZVBpY2tlci5jbG9zZVBvcG92ZXIoJ3RvcCcpXG4gICAgICAgICAgICAgIFwiPjwvYXBwLXRpbWUtcGlja2VyPlxuICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8YXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZSBbaWRdPVwiM1wiIFtwYWdlTmFtZV09XCInb25Db21wbGV0aW9uJ1wiIFttb2RlXT1cIm1vZGVcIiBbaXNEZWFjdGl2YXRlZF09XCJmYWxzZVwiXG4gICAgW2NvbXBsZXRlZFZhbHVlXT1cIm9uQ29tcGxldGlvbk9mV2luZG93XCIgW25vdENvbXBsZXRlZFZhbHVlXT1cIm9uQ29tcGxldGlvbk9mRmFpbGVkXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+PC9hcHAtZnJlcXVlbmN5LWR1ZS1kYXRlPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJtb2RlID09PSAncG9saWN5J1wiIGNsYXNzPVwiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2ZcIj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLW1lc3NhZ2VcIj5cbiAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwib25Db21wbGV0aW9uT2ZJbnB1dFwiIChjaGFuZ2UpPVwiaW5wdXRWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIiBtaW49XCIwXCIgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiIC8+XG4gICAgPHA+e3sgb25Db21wbGV0aW9uT2ZJbnB1dCA+IDEgPyBcImRheXNcIiA6IFwiZGF5XCIgfX0gYWZ0ZXIgY29tcGxldGlvbiBvZjwvcD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZi1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwicmVzcG9uc2liaWxpdHlcIj5cbiAgICAgIDxjcy1zZWxlY3QgW2NsYXNzLmRpc2FibGVkXT1cInBsYWNlaG9sZGVyID09PSAnTG9hZGluZy4uLidcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJvblJlc3BvbnNpYmlsaXR5U2VsZWN0aW9uKCRldmVudClcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIj5cbiAgICAgICAgPGNzLW9wdGlvbiAqbmdGb3I9XCJcbiAgICAgICAgICAgIGxldCByZXNwb25zaWJpbGl0eSBvZiBvbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5O1xuICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxuICAgICAgICAgIFwiIFt2YWx1ZV09XCJyZXNwb25zaWJpbGl0eVwiIFtvcHRpb25Ub29sdGlwXT1cInJlc3BvbnNpYmlsaXR5Py5SZXBvcnROYW1lXCI+e3sgcmVzcG9uc2liaWxpdHk/LlJlcG9ydE5hbWVcbiAgICAgICAgICB9fTwvY3Mtb3B0aW9uPlxuICAgICAgPC9jcy1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRpbWVcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlYWRvbmx5IGFyaWEtbGFiZWw9XCIxMmhyIGZvcm1hdFwiIFsobmdNb2RlbCldPVwib25Db21wbGV0aW9uT2ZUaW1lXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVGltZVwiIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8YXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZSBbaWRdPVwiM1wiIFtwYWdlTmFtZV09XCInb25Db21wbGV0aW9uJ1wiIFttb2RlXT1cIm1vZGVcIiBbaXNEZWFjdGl2YXRlZF09XCJmYWxzZVwiXG4gICAgW2NvbXBsZXRlZFZhbHVlXT1cIm9uQ29tcGxldGlvbk9mV2luZG93XCIgW25vdENvbXBsZXRlZFZhbHVlXT1cIm9uQ29tcGxldGlvbk9mRmFpbGVkXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+PC9hcHAtZnJlcXVlbmN5LWR1ZS1kYXRlPlxuPC9kaXY+Il19