verben-workflow-ui 0.5.74 → 0.5.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/src/lib/components/task-history/task-history.component.mjs +2 -2
- package/esm2022/src/lib/components/workflow-designer/escalation-dialog/escalation-dialog.component.mjs +2 -2
- package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs.map +1 -1
- package/package.json +35 -35
|
@@ -125,7 +125,7 @@ export class TaskHistoryComponent {
|
|
|
125
125
|
FromStage: '',
|
|
126
126
|
ToStage: '',
|
|
127
127
|
Code: '',
|
|
128
|
-
TenantId: '
|
|
128
|
+
TenantId: '',
|
|
129
129
|
};
|
|
130
130
|
this.service.saveActionHistory([actionHistory]).then(() => {
|
|
131
131
|
this.newComment = '';
|
|
@@ -218,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
218
218
|
type: Component,
|
|
219
219
|
args: [{ selector: 'lib-task-history', template: "<div class=\"bg-[#F9FAFB]\">\n <header class=\"mx-8 rounded-lg shadow-lg flex justify-between items-center px-6 py-2 bg-[#D4A00773]\">\n <h4 class=\"font-semibold\">{{ taskCode() }}</h4>\n <div class=\"flex gap-4 items-center\">\n <verbena-button (click)=\"addComment()\" text=\"+ Add Comment\" styleType=\"ylw-outline\"\n class=\"ml-auto\"></verbena-button>\n <verben-svg (click)=\"goBack()\" class=\"cursor-pointer\" [width]=\"17\" [height]=\"17\" [icon]=\"'go-back'\"></verben-svg>\n </div>\n </header>\n <section class=\"grid grid-cols-12\">\n <div class=\"bg-[#fff] col-span-7 pl-16 pt-20 relative\">\n <div *ngIf=\"showCommentBox\" class=\"mb-6 mr-10\">\n <h4 class=\"font-bold text-lg mb-2\">Add Comment</h4>\n <!-- <verbena-textarea [(ngModel)]=\"newComment\" label=\"Comment\" class=\"w-full\"></verbena-textarea> -->\n <textarea [(ngModel)]=\"newComment\" label=\"Comment\" class=\"w-full border rounded-md p-2\"></textarea>\n <div class=\"mt-4\">\n <file-upload (selectedFilesChange)=\"onFileSelect($event)\" [multiple]=\"true\" label=\"Attach Files\">\n </file-upload>\n <div *ngIf=\"selectedFiles.length > 0\" class=\"flex flex-wrap gap-3 mt-3\">\n <div *ngFor=\"let file of selectedFiles\">\n <ng-container [ngSwitch]=\"file.Extension\">\n <img *ngSwitchCase=\"'jpg'\" [src]=\"file.Data\"\n class=\"w-[100px] h-[100px] object-cover rounded-md border\" />\n <img *ngSwitchCase=\"'png'\" [src]=\"file.Data\"\n class=\"w-[100px] h-[100px] object-cover rounded-md border\" />\n <video *ngSwitchCase=\"'mp4'\" [src]=\"file.Data\" class=\"w-[150px] rounded-md shadow\" controls></video>\n <audio *ngSwitchCase=\"'mp3'\" [src]=\"file.Data\" controls class=\"w-[150px]\"></audio>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"flex justify-end gap-2 mt-2\">\n <verbena-button (click)=\"addComment()\" text=\"Cancel\" styleType=\"ylw-outline\"></verbena-button>\n <verbena-button (click)=\"saveComment()\" text=\"Save\" bgColor=\"#FFE681\" textColor=\"#404040\" borderRadius=\"10px\"\n pd=\"10px 20px\" width=\"114px\" height=\"39px\"></verbena-button>\n </div>\n </div>\n <span class=\"absolute block h-[90%] h-ninety border border-secondary-200 left-[150px]\"></span>\n <div *ngFor=\"let timeline of history; let i = index\">\n <div>\n <div class=\"flex mb-7\">\n <h5 class=\"w-[100px] cursor-pointer\" (click)=\"setActive(i)\">\n {{ timeline?.CreatedAt | date }}\n </h5>\n <div class=\"ml-24 cursor-pointer min-w-[250px] p-6 rounded-md border-l-2\" [ngClass]=\"{\n 'bg-[#FEFAF1] border-[#FFE681]': active === i,\n 'bg-transparent border-transparent hover:bg-[#F9FAFB]': active !== i\n }\" (click)=\"setActive(i)\">\n <!-- ActionName as primary heading, fallback to ActionType -->\n <h4 class=\"font-bold text-xl text-[#101828] mb-2\">\n {{ timeline.ActionName || timeline.ActionType }}\n </h4>\n\n <!-- Actor information with tooltip -->\n <div class=\"mb-3\">\n <verben-tooltip [top]=\"'0px'\" [left]=\"'0px'\" [textColor]=\"'#000'\" [backgroundColor]=\"'#FFF'\"\n [tooltipContent]=\"actorTooltipTemplate\">\n <p class=\"text-sm text-[#667085] cursor-help inline-flex items-center gap-2\">\n <verben-svg [width]=\"14\" [height]=\"14\" [icon]=\"'user'\" stroke=\"#667085\"></verben-svg>\n <span class=\"font-medium text-[#344054]\">{{ timeline.Actor.Name }}</span>\n </p>\n </verben-tooltip>\n\n <ng-template #actorTooltipTemplate>\n <div class=\"bg-white border border-[#E4E7EC] rounded-lg p-4 shadow-lg w-[280px]\">\n <div class=\"flex gap-3 items-start\">\n <div\n class=\"w-[40px] h-[40px] rounded-full bg-gradient-to-r from-[#D9AEAE] via-[#E3C79F] to-[#FFE681] flex-shrink-0\">\n </div>\n <div class=\"flex-1 min-w-0\">\n <p class=\"font-bold text-sm text-[#101828] mb-1\">\n {{ timeline.Actor.Name }}\n </p>\n <p class=\"text-xs text-[#667085] break-words flex items-start gap-1\">\n <verben-svg [width]=\"12\" [height]=\"12\" [icon]=\"'mail'\" stroke=\"#667085\"></verben-svg>\n <span>{{ timeline.Actor.Identifier }}</span>\n </p>\n <p *ngIf=\"getTagsFromActor(timeline.Actor)\" class=\"text-xs text-[#667085] mt-2\">\n <span class=\"font-medium\">Tags:</span> {{ getTagsFromActor(timeline.Actor) }}\n </p>\n </div>\n </div>\n </div>\n </ng-template>\n </div>\n\n <!-- Action Type (if different from ActionName) -->\n <p *ngIf=\"timeline.ActionName\" class=\"text-sm text-[#667085] mb-2\">\n <span class=\"font-medium\">Operation:</span> {{ timeline.ActionType }}\n </p>\n\n <!-- Stage information for transfer actions -->\n @if (showFromAndTo(timeline.ActionType)) {\n <div class=\"bg-[#F9FAFB] rounded-md p-3 mt-2 space-y-1.5\">\n <p class=\"text-sm flex items-center gap-2\">\n <span class=\"text-[#667085] font-medium\">From:</span>\n <span class=\"text-[#6172F3] font-mono text-xs\">{{ timeline.FromStage }}</span>\n </p>\n <p class=\"text-sm flex items-center gap-2\">\n <span class=\"text-[#667085] font-medium\">To:</span>\n <span class=\"text-[#6172F3] font-mono text-xs\">{{ timeline.ToStage }}</span>\n </p>\n </div>\n }\n\n <!-- View comments button -->\n <button *ngIf=\"timeline.Description\"\n class=\"flex gap-2 items-center w-fit text-[#667085] text-sm border px-3 py-2 rounded-lg bg-[#FCFCFD] mt-3 border-[#E4E7EC] hover:bg-[#F9FAFB] hover:border-[#D0D5DD] transition-colors\">\n <verben-svg [width]=\"15\" [height]=\"15\" [icon]=\"'chat'\"></verben-svg>\n View comments\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-span-5\">\n <div class=\"h-[50px] bg-[#fff]\"></div>\n <div *ngIf=\"active >= 0\" class=\"w-[480px] pl-16 pt-10\">\n <h1 class=\"font-bold text-lg py-2\">Comments</h1>\n <p class=\"text-xs text-[#667085] text-right py-2\">\n {{ history[active].CreatedAt | date }}\n </p>\n <div class=\"bg-[#fff] text-[#101828] leading-relaxed p-8 shadow-md rounded-md\">\n {{ history[active].Description }}\n\n <div *ngIf=\"history[active]?.Files?.length\" class=\"mt-4 border-t pt-4\">\n <h5 class=\"font-bold text-sm mb-2\">Attachments</h5>\n <div class=\"flex flex-col gap-2\">\n <div *ngFor=\"let file of history[active]?.Files\"\n class=\"file-container p-2 flex items-center justify-between gap-3 border rounded-md bg-gray-50\">\n <div class=\"text-sm overflow-x-auto font-semibold\">\n {{ getFileName(file) }}\n </div>\n <span (click)=\"openFile(file)\" class=\"cursor-pointer\">\n <verben-svg [icon]=\"'download-icon'\" [width]=\"20\" [height]=\"20\"></verben-svg>\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n</div>\n", styles: [".bg-\\[#F9FAFB\\]{background-color:#f9fafb}.bg-\\[#D4A00773\\]{background-color:#d4a00773}.bg-\\[#fff\\]{background-color:#fff}.bg-\\[#d3d3d32a\\]{background-color:#d3d3d32a}.bg-\\[#FCFCFD\\]{background-color:#fcfcfd}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-\\[#D9AEAE\\]{--tw-gradient-from: #d9aeae;--tw-gradient-to: rgb(217 174 174 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-\\[#E3C79F\\]{--tw-gradient-to: rgb(227 199 159 / 0);--tw-gradient-stops: var(--tw-gradient-from), #e3c79f, var(--tw-gradient-to)}.to-\\[#FFE681\\]{--tw-gradient-to: #ffe681}.mx-8{margin-left:2rem;margin-right:2rem}.rounded-lg{border-radius:.5rem}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.flex{display:flex}.justify-between{justify-content:space-between}.items-center{align-items:center}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.font-semibold{font-weight:600}.cursor-pointer{cursor:pointer}.grid{display:grid}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.col-span-7{grid-column:span 7 / span 7}.col-span-5{grid-column:span 5 / span 5}.pl-16{padding-left:4rem}.pt-20{padding-top:5rem}.pt-10{padding-top:2.5rem}.relative{position:relative}.absolute{position:absolute}.block{display:block}.h-ninety{height:90%}.border{border-width:1px}.border-secondary-200{border-color:#d7dbe6}.left-\\[150px\\]{left:150px}.mb-7{margin-bottom:1.75rem}.w-\\[100px\\]{width:100px}.ml-24{margin-left:6rem}.min-w-\\[250px\\]{min-width:250px}.p-6{padding:1.5rem}.rounded-md{border-radius:.375rem}.after\\:absolute:after{content:\"\";position:absolute}.after\\:-left-\\[90px\\]:after{left:-90px}.after\\:top-0:after{top:0}.after\\:h-full:after{height:100%}.after\\:border-l-2:after{border-left-width:2px}.border-none{border-style:none}.font-bold{font-weight:700}.text-lg{font-size:1.125rem;line-height:1.75rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-\\[\\#667085\\]{color:#667085}.gap-2{gap:.5rem}.w-fit{width:fit-content}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.mt-2{margin-top:.5rem}.border-\\[#E4E7EC\\]{border-color:#e4e7ec}.ml-\\[3px\\]{margin-left:3px}.underline{text-decoration-line:underline}.text-\\[\\#6172F3\\]{color:#6172f3}.mt-\\[4px\\]{margin-top:4px}.z-\\[10000\\]{z-index:10000}.border-primary{--tw-border-opacity: 1;border-color:rgb(212 160 7 / var(--tw-border-opacity, 1))}.w-\\[326px\\]{width:326px}.gap-4{gap:1rem}.w-\\[50px\\]{width:50px}.rounded-full{border-radius:9999px}.gap-3{gap:.75rem}.mt-4{margin-top:1rem}.h-\\[50px\\]{height:50px}.w-\\[480px\\]{width:480px}.text-xs{font-size:.75rem;line-height:1rem}.text-right{text-align:right}.text-\\[\\#101828\\]{color:#101828}.leading-relaxed{line-height:1.625}.p-8{padding:2rem}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}\n"] }]
|
|
220
220
|
}], ctorParameters: () => [{ type: i1.Location }, { type: i2.TaskHistoryService }, { type: i3.EnvironmentService }, { type: i3.UtilService }] });
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1oaXN0b3J5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvdGFzay1oaXN0b3J5L3Rhc2staGlzdG9yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3Rhc2staGlzdG9yeS90YXNrLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFpQixVQUFVLEVBQTJCLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7QUFTbkksTUFBTSxPQUFPLG9CQUFvQjtJQVVyQjtJQUNBO0lBQ0E7SUFDQTtJQVpWLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDcEMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUM5QixNQUFNLEdBQVcsQ0FBQyxDQUFDO0lBQ25CLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFDaEMsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUN4QixhQUFhLEdBQWUsRUFBRSxDQUFDO0lBQy9CLDJCQUEyQjtJQUUzQixZQUNVLFNBQW1CLEVBQ25CLE9BQTJCLEVBQzNCLE1BQTBCLEVBQzFCLFdBQXdCO1FBSHhCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDOUIsQ0FBQztJQUNMLHFDQUFxQztJQUNyQyxNQUFNO0lBQ04sdUJBQXVCO0lBQ3ZCLHdDQUF3QztJQUN4QyxtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLDRFQUE0RTtJQUM1RSxTQUFTO0lBQ1QsT0FBTztJQUNQLE1BQU07SUFDTix5QkFBeUI7SUFDekIsd0NBQXdDO0lBQ3hDLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsNEVBQTRFO0lBQzVFLFNBQVM7SUFDVCxPQUFPO0lBQ1AsTUFBTTtJQUNOLHFCQUFxQjtJQUNyQixzQ0FBc0M7SUFDdEMsaUJBQWlCO0lBQ2pCLCtCQUErQjtJQUMvQixTQUFTO0lBQ1QsNkVBQTZFO0lBQzdFLE9BQU87SUFDUCxNQUFNO0lBQ04scUJBQXFCO0lBQ3JCLDJDQUEyQztJQUMzQyxpQkFBaUI7SUFDakIsMEJBQTBCO0lBQzFCLHdCQUF3QjtJQUN4QixTQUFTO0lBQ1QsbUJBQW1CO0lBQ25CLE9BQU87SUFDUCxNQUFNO0lBQ04scUJBQXFCO0lBQ3JCLHdDQUF3QztJQUN4QyxtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLDRFQUE0RTtJQUM1RSxTQUFTO0lBQ1QsT0FBTztJQUNQLEtBQUs7SUFFTCxPQUFPLEdBQW9CLEVBQUUsQ0FBQztJQUU5QixRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7WUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxDQUFTO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFZO1FBQzNCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvRCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksYUFBYSxHQUFhLEVBQUUsQ0FBQztRQUNqQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQztnQkFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQy9ELElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ1IsYUFBYSxHQUFHLEdBQUcsQ0FBQztnQkFDdEIsQ0FBQztZQUNILENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixPQUFPO1lBQ1QsQ0FBQztvQkFBUyxDQUFDO2dCQUNULElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUc7WUFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQy9CLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUM1QixVQUFVLEVBQUUsVUFBVSxDQUFDLE9BQU87WUFDOUIsU0FBUyxFQUFFLFdBQVcsQ0FBQyxHQUFHO1lBQzFCLEtBQUssRUFBRSxhQUFhO1lBQ3BCLFdBQVc7WUFDWCxxQ0FBcUM7WUFDckMseUNBQXlDO1lBQ3pDLG9DQUFvQztZQUNwQyxLQUFLO1lBQ0wsUUFBUSxFQUFFLEVBQUU7WUFDWixTQUFTLEVBQUUsRUFBRTtZQUNiLE9BQU8sRUFBRSxFQUFFO1lBQ1gsSUFBSSxFQUFFLEVBQUU7WUFDUixRQUFRLEVBQUUsUUFBUTtTQUNGLENBQUM7UUFFbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDeEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBUztRQUNwQixNQUFNLEtBQUssR0FBUSxJQUFJLENBQUM7UUFFeEIsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBRXpDLE1BQU0sU0FBUyxHQUFlLEVBQUUsQ0FBQztRQUNqQyxNQUFNLE9BQU8sR0FBb0IsRUFBRSxDQUFDO1FBRXBDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFFaEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ3BELE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO29CQUNuQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBZ0IsQ0FBQztvQkFDdkMsU0FBUyxDQUFDLElBQUksQ0FBQzt3QkFDYixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFO3dCQUNyQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFO3dCQUMvQixJQUFJLEVBQUUsTUFBTTt3QkFDWixTQUFTLEVBQUUsV0FBVyxDQUFDLEdBQUc7cUJBQzNCLENBQUMsQ0FBQztvQkFDSCxPQUFPLEVBQUUsQ0FBQztnQkFDWixDQUFDLENBQUM7Z0JBRUYsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QixDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsU0FBaUIsRUFBRTtRQUM1QyxNQUFNLEtBQUssR0FDVCxnRUFBZ0UsQ0FBQztRQUNuRSxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBZTtRQUM5QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDcEIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV2QyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLElBQUksS0FBSyxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFzQjtRQUNsQyxRQUFRLFVBQVUsRUFBRSxDQUFDO1lBQ25CLEtBQUssVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUN2QixLQUFLLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDekIsS0FBSyxVQUFVLENBQUMsV0FBVyxDQUFDO1lBQzVCLEtBQUssVUFBVSxDQUFDLFlBQVk7Z0JBQzFCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsS0FBSyxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQ3hCLEtBQUssVUFBVSxDQUFDLFdBQVcsQ0FBQztZQUM1QixLQUFLLFVBQVUsQ0FBQyxZQUFZO2dCQUMxQixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFlO1FBQ3pCLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDeEIsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQWU7UUFDdEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixDQUN2QyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxPQUFPLEVBQUUsQ0FDckQsQ0FBQztJQUNKLENBQUM7d0dBL05VLG9CQUFvQjs0RkFBcEIsb0JBQW9CLG9NQ1hqQyx5OFBBaUpBOzs0RkR0SWEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uSGlzdG9yeSwgQWN0aW9uVHlwZSwgQWN0b3IsIEZpbGUgYXMgRmlsZURhdGEsIE9iamVjdFN0YXRlLCBPcGVyYXRpb25UeXBlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSwgVXRpbFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBUYXNrSGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuL3Rhc2staGlzdG9yeS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRhc2staGlzdG9yeScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YXNrLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGFzay1oaXN0b3J5LmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBUYXNrSGlzdG9yeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHRhc2tDb2RlID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBvcGVyYXRpb25UeXBlID0gT3BlcmF0aW9uVHlwZTtcbiAgYWN0aXZlOiBudW1iZXIgPSAwO1xuICBzaG93Q29tbWVudEJveDogYm9vbGVhbiA9IGZhbHNlO1xuICBuZXdDb21tZW50OiBzdHJpbmcgPSAnJztcbiAgc2VsZWN0ZWRGaWxlczogRmlsZURhdGFbXSA9IFtdO1xuICAvLyBBY3Rpb25UeXBlID0gQWN0aW9uVHlwZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9sb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBUYXNrSGlzdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbnZTdmM6IEVudmlyb25tZW50U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxTZXJ2aWNlOiBVdGlsU2VydmljZVxuICApIHsgfVxuICAvLyBzaW5nbGVIaXN0b3J5OiBUaW1lbGluZUV2ZW50W10gPSBbXG4gIC8vICAge1xuICAvLyAgICAgRGF0ZTogJzQ6MDUgUE0nLFxuICAvLyAgICAgT3BlcmF0aW9uOiBPcGVyYXRpb25UeXBlLkNvbW1lbnQsXG4gIC8vICAgICBEZXRhaWxzOiB7fSxcbiAgLy8gICAgIEFjdGlvbnM6IFtcbiAgLy8gICAgICAgeyBMYWJlbDogJ1ZpZXcgQ29tbWVudHMnLCBUeXBlOiAnYnV0dG9uJywgQWN0aW9uOiAndmlld0NvbW1lbnRzJyB9LFxuICAvLyAgICAgXSxcbiAgLy8gICB9LFxuICAvLyAgIHtcbiAgLy8gICAgIERhdGU6ICdZZXN0ZXJkYXknLFxuICAvLyAgICAgT3BlcmF0aW9uOiBPcGVyYXRpb25UeXBlLkNvbW1lbnQsXG4gIC8vICAgICBEZXRhaWxzOiB7fSxcbiAgLy8gICAgIEFjdGlvbnM6IFtcbiAgLy8gICAgICAgeyBMYWJlbDogJ1ZpZXcgQ29tbWVudHMnLCBUeXBlOiAnYnV0dG9uJywgQWN0aW9uOiAndmlld0NvbW1lbnRzJyB9LFxuICAvLyAgICAgXSxcbiAgLy8gICB9LFxuICAvLyAgIHtcbiAgLy8gICAgIERhdGU6ICdNYXIgMicsXG4gIC8vICAgICBPcGVyYXRpb246IE9wZXJhdGlvblR5cGUuRm9ybXMsXG4gIC8vICAgICBEZXRhaWxzOiB7XG4gIC8vICAgICAgIEZpbGxlZEJ5OiAnQW5vbnltb3VzJyxcbiAgLy8gICAgIH0sXG4gIC8vICAgICBBY3Rpb25zOiBbeyBMYWJlbDogJ1ZpZXcgRm9ybScsIFR5cGU6ICdidXR0b24nLCBBY3Rpb246ICd2aWV3Rm9ybScgfV0sXG4gIC8vICAgfSxcbiAgLy8gICB7XG4gIC8vICAgICBEYXRlOiAnTm92IDQnLFxuICAvLyAgICAgT3BlcmF0aW9uOiBPcGVyYXRpb25UeXBlLkFzc2lnbm1lbnQsXG4gIC8vICAgICBEZXRhaWxzOiB7XG4gIC8vICAgICAgIEZyb206ICdKb2huIERvZScsXG4gIC8vICAgICAgIFRvOiAnSmFuZSBEb2UnLFxuICAvLyAgICAgfSxcbiAgLy8gICAgIEFjdGlvbnM6IFtdLFxuICAvLyAgIH0sXG4gIC8vICAge1xuICAvLyAgICAgRGF0ZTogJ05vdiA2JyxcbiAgLy8gICAgIE9wZXJhdGlvbjogT3BlcmF0aW9uVHlwZS5Db21tZW50LFxuICAvLyAgICAgRGV0YWlsczoge30sXG4gIC8vICAgICBBY3Rpb25zOiBbXG4gIC8vICAgICAgIHsgTGFiZWw6ICdWaWV3IENvbW1lbnRzJywgVHlwZTogJ2J1dHRvbicsIEFjdGlvbjogJ3ZpZXdDb21tZW50cycgfSxcbiAgLy8gICAgIF0sXG4gIC8vICAgfSxcbiAgLy8gXTtcblxuICBoaXN0b3J5OiBBY3Rpb25IaXN0b3J5W10gPSBbXTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0VGFza0hpc3RvcnkodGhpcy50YXNrQ29kZSgpKS50aGVuKChyZXMpID0+IHtcbiAgICAgIHRoaXMuaGlzdG9yeSA9IHJlcztcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuaGlzdG9yeSk7XG4gICAgfSk7XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5fbG9jYXRpb24uYmFjaygpO1xuICB9XG5cbiAgc2V0QWN0aXZlKGk6IG51bWJlcikge1xuICAgIHRoaXMuYWN0aXZlID0gaTtcbiAgfVxuXG4gIGdldFRhZ3NGcm9tQWN0b3IoYWN0b3I6IEFjdG9yKSB7XG4gICAgcmV0dXJuIGFjdG9yLlRhZ3MubWFwKCh0YWcpID0+IHRhZy5OYW1lKS5qb2luKCcsICcpO1xuICB9XG5cbiAgYWRkQ29tbWVudCgpIHtcbiAgICB0aGlzLnNob3dDb21tZW50Qm94ID0gIXRoaXMuc2hvd0NvbW1lbnRCb3g7XG4gIH1cblxuICBhc3luYyBzYXZlQ29tbWVudCgpIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLm5ld0NvbW1lbnQpO1xuICAgIGlmICghdGhpcy5uZXdDb21tZW50LnRyaW0oKSAmJiB0aGlzLnNlbGVjdGVkRmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHVwbG9hZGVkRmlsZXM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRGaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSSh0cnVlKTtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnVwbG9hZEZpbGVzKHRoaXMuc2VsZWN0ZWRGaWxlcyk7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICB1cGxvYWRlZEZpbGVzID0gcmVzO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdGaWxlIHVwbG9hZCBmYWlsZWQnLCBlcnJvcik7XG4gICAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKGZhbHNlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkoZmFsc2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFjdGlvbkhpc3RvcnkgPSB7XG4gICAgICBUYXNrQ29kZTogdGhpcy50YXNrQ29kZSgpID8/ICcnLFxuICAgICAgRGVzY3JpcHRpb246IHRoaXMubmV3Q29tbWVudCxcbiAgICAgIEFjdGlvblR5cGU6IEFjdGlvblR5cGUuQ29tbWVudCxcbiAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuTmV3LFxuICAgICAgRmlsZXM6IHVwbG9hZGVkRmlsZXMsXG4gICAgICAvLyBBY3Rvcjoge1xuICAgICAgLy8gICBJZDogdGhpcy5zZWxlY3RlZERldGFpbC5BY3RvcklkLFxuICAgICAgLy8gICBOYW1lOiB0aGlzLnNlbGVjdGVkRGV0YWlsLkFjdG9yTmFtZSxcbiAgICAgIC8vICAgVGFnczogdGhpcy5zZWxlY3RlZERldGFpbC5UYWdzLFxuICAgICAgLy8gfSxcbiAgICAgIFdvcmtmbG93OiAnJyxcbiAgICAgIEZyb21TdGFnZTogJycsXG4gICAgICBUb1N0YWdlOiAnJyxcbiAgICAgIENvZGU6ICcnLFxuICAgICAgVGVuYW50SWQ6ICdQRExUQzYnLFxuICAgIH0gYXMgQWN0aW9uSGlzdG9yeTtcblxuICAgIHRoaXMuc2VydmljZS5zYXZlQWN0aW9uSGlzdG9yeShbYWN0aW9uSGlzdG9yeV0pLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5uZXdDb21tZW50ID0gJyc7XG4gICAgICB0aGlzLnNlbGVjdGVkRmlsZXMgPSBbXTtcbiAgICAgIHRoaXMuc2hvd0NvbW1lbnRCb3ggPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VydmljZS5nZXRUYXNrSGlzdG9yeSh0aGlzLnRhc2tDb2RlKCkpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmhpc3RvcnkgPSByZXM7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uRmlsZVNlbGVjdChkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlczogYW55ID0gZGF0YTtcblxuICAgIGlmICghZmlsZXMgfHwgZmlsZXMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICBjb25zdCBmaWxlQXJyYXk6IEZpbGVEYXRhW10gPSBbXTtcbiAgICBjb25zdCByZWFkZXJzOiBQcm9taXNlPHZvaWQ+W10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGZpbGUgPSBmaWxlc1tpXTtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgYmFzZTY0ID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmc7XG4gICAgICAgICAgZmlsZUFycmF5LnB1c2goe1xuICAgICAgICAgICAgRXh0ZW5zaW9uOiBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKSxcbiAgICAgICAgICAgIE5hbWU6IHRoaXMuZ2VuZXJhdGVSYW5kb21Db2RlKCksXG4gICAgICAgICAgICBEYXRhOiBiYXNlNjQsXG4gICAgICAgICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLk5ldyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHJlamVjdChlcnJvcik7XG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlYWRlcnMucHVzaChwcm9taXNlKTtcbiAgICB9XG5cbiAgICBQcm9taXNlLmFsbChyZWFkZXJzKS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdGaWxlcyByZWFkeSB0byB1cGxvYWQ6JywgZmlsZUFycmF5KTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlcyA9IGZpbGVBcnJheTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVSYW5kb21Db2RlKGxlbmd0aDogbnVtYmVyID0gMTApOiBzdHJpbmcge1xuICAgIGNvbnN0IGNoYXJzID1cbiAgICAgICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlc3VsdCArPSBjaGFycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcnMubGVuZ3RoKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVVcmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBmaWxlVXJsLnNwbGl0KCcuJyk7XG4gICAgcmV0dXJuIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBzZXRQcmV2aWV3KHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbCkgcmV0dXJuICcnO1xuICAgIGNvbnN0IGZpcnN0ID0gdmFsLnNwbGl0KCcsJylbMF0udHJpbSgpO1xuXG4gICAgaWYgKGZpcnN0LnN0YXJ0c1dpdGgoJ2h0dHAnKSB8fCBmaXJzdC5zdGFydHNXaXRoKCdkYXRhOicpKSB7XG4gICAgICByZXR1cm4gZmlyc3Q7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5GSUxFX1VSTH0vJHtmaXJzdH1gO1xuICB9XG5cbiAgc2hvd0Zyb21BbmRUbyhhY3Rpb25UeXBlOiBBY3Rpb25UeXBlKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoIChhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIEFjdGlvblR5cGUuUGFzc09uOlxuICAgICAgY2FzZSBBY3Rpb25UeXBlLlBhc3NCYWNrOlxuICAgICAgY2FzZSBBY3Rpb25UeXBlLlNraXBGb3J3YXJkOlxuICAgICAgY2FzZSBBY3Rpb25UeXBlLlNraXBCYWNrd2FyZDpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlIEFjdGlvblR5cGUuQ29tbWVudDpcbiAgICAgIGNhc2UgQWN0aW9uVHlwZS5Gb3JtRmlsbGluZzpcbiAgICAgIGNhc2UgQWN0aW9uVHlwZS5TdGF0dXNDaGFuZ2U6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBnZXRGaWxlTmFtZShmaWxlVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghZmlsZVVybCkgcmV0dXJuICcnO1xuICAgIHJldHVybiBmaWxlVXJsLnNwbGl0KCcvJykucG9wKCkgfHwgJyc7XG4gIH1cblxuICBvcGVuRmlsZShmaWxlVXJsOiBzdHJpbmcpIHtcbiAgICBpZiAoIWZpbGVVcmwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy51dGlsU2VydmljZS5vcGVuRnVsbFJvdXRlSW5OZXdXaW5kb3coXG4gICAgICBgJHt0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5GSUxFX0JBU0VfVVJMfSR7ZmlsZVVybH1gXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJnLVsjRjlGQUZCXVwiPlxuICA8aGVhZGVyIGNsYXNzPVwibXgtOCByb3VuZGVkLWxnIHNoYWRvdy1sZyBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgcHgtNiBweS0yIGJnLVsjRDRBMDA3NzNdXCI+XG4gICAgPGg0IGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiPnt7IHRhc2tDb2RlKCkgfX08L2g0PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC00IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgPHZlcmJlbmEtYnV0dG9uIChjbGljayk9XCJhZGRDb21tZW50KClcIiB0ZXh0PVwiKyBBZGQgQ29tbWVudFwiIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCJcbiAgICAgICAgY2xhc3M9XCJtbC1hdXRvXCI+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgIDx2ZXJiZW4tc3ZnIChjbGljayk9XCJnb0JhY2soKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBbd2lkdGhdPVwiMTdcIiBbaGVpZ2h0XT1cIjE3XCIgW2ljb25dPVwiJ2dvLWJhY2snXCI+PC92ZXJiZW4tc3ZnPlxuICAgIDwvZGl2PlxuICA8L2hlYWRlcj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJncmlkIGdyaWQtY29scy0xMlwiPlxuICAgIDxkaXYgY2xhc3M9XCJiZy1bI2ZmZl0gY29sLXNwYW4tNyBwbC0xNiBwdC0yMCByZWxhdGl2ZVwiPlxuICAgICAgPGRpdiAqbmdJZj1cInNob3dDb21tZW50Qm94XCIgY2xhc3M9XCJtYi02IG1yLTEwXCI+XG4gICAgICAgIDxoNCBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWxnIG1iLTJcIj5BZGQgQ29tbWVudDwvaDQ+XG4gICAgICAgIDwhLS0gPHZlcmJlbmEtdGV4dGFyZWEgWyhuZ01vZGVsKV09XCJuZXdDb21tZW50XCIgbGFiZWw9XCJDb21tZW50XCIgY2xhc3M9XCJ3LWZ1bGxcIj48L3ZlcmJlbmEtdGV4dGFyZWE+IC0tPlxuICAgICAgICA8dGV4dGFyZWEgWyhuZ01vZGVsKV09XCJuZXdDb21tZW50XCIgbGFiZWw9XCJDb21tZW50XCIgY2xhc3M9XCJ3LWZ1bGwgYm9yZGVyIHJvdW5kZWQtbWQgcC0yXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTRcIj5cbiAgICAgICAgICA8ZmlsZS11cGxvYWQgKHNlbGVjdGVkRmlsZXNDaGFuZ2UpPVwib25GaWxlU2VsZWN0KCRldmVudClcIiBbbXVsdGlwbGVdPVwidHJ1ZVwiIGxhYmVsPVwiQXR0YWNoIEZpbGVzXCI+XG4gICAgICAgICAgPC9maWxlLXVwbG9hZD5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRGaWxlcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMyBtdC0zXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmaWxlIG9mIHNlbGVjdGVkRmlsZXNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmlsZS5FeHRlbnNpb25cIj5cbiAgICAgICAgICAgICAgICA8aW1nICpuZ1N3aXRjaENhc2U9XCInanBnJ1wiIFtzcmNdPVwiZmlsZS5EYXRhXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1bMTAwcHhdIGgtWzEwMHB4XSBvYmplY3QtY292ZXIgcm91bmRlZC1tZCBib3JkZXJcIiAvPlxuICAgICAgICAgICAgICAgIDxpbWcgKm5nU3dpdGNoQ2FzZT1cIidwbmcnXCIgW3NyY109XCJmaWxlLkRhdGFcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LVsxMDBweF0gaC1bMTAwcHhdIG9iamVjdC1jb3ZlciByb3VuZGVkLW1kIGJvcmRlclwiIC8+XG4gICAgICAgICAgICAgICAgPHZpZGVvICpuZ1N3aXRjaENhc2U9XCInbXA0J1wiIFtzcmNdPVwiZmlsZS5EYXRhXCIgY2xhc3M9XCJ3LVsxNTBweF0gcm91bmRlZC1tZCBzaGFkb3dcIiBjb250cm9scz48L3ZpZGVvPlxuICAgICAgICAgICAgICAgIDxhdWRpbyAqbmdTd2l0Y2hDYXNlPVwiJ21wMydcIiBbc3JjXT1cImZpbGUuRGF0YVwiIGNvbnRyb2xzIGNsYXNzPVwidy1bMTUwcHhdXCI+PC9hdWRpbz5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktZW5kIGdhcC0yIG10LTJcIj5cbiAgICAgICAgICA8dmVyYmVuYS1idXR0b24gKGNsaWNrKT1cImFkZENvbW1lbnQoKVwiIHRleHQ9XCJDYW5jZWxcIiBzdHlsZVR5cGU9XCJ5bHctb3V0bGluZVwiPjwvdmVyYmVuYS1idXR0b24+XG4gICAgICAgICAgPHZlcmJlbmEtYnV0dG9uIChjbGljayk9XCJzYXZlQ29tbWVudCgpXCIgdGV4dD1cIlNhdmVcIiBiZ0NvbG9yPVwiI0ZGRTY4MVwiIHRleHRDb2xvcj1cIiM0MDQwNDBcIiBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgICAgICAgIHBkPVwiMTBweCAyMHB4XCIgd2lkdGg9XCIxMTRweFwiIGhlaWdodD1cIjM5cHhcIj48L3ZlcmJlbmEtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJhYnNvbHV0ZSBibG9jayBoLVs5MCVdIGgtbmluZXR5IGJvcmRlciBib3JkZXItc2Vjb25kYXJ5LTIwMCBsZWZ0LVsxNTBweF1cIj48L3NwYW4+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0aW1lbGluZSBvZiBoaXN0b3J5OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggbWItN1wiPlxuICAgICAgICAgICAgPGg1IGNsYXNzPVwidy1bMTAwcHhdIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNldEFjdGl2ZShpKVwiPlxuICAgICAgICAgICAgICB7eyB0aW1lbGluZT8uQ3JlYXRlZEF0IHwgZGF0ZSB9fVxuICAgICAgICAgICAgPC9oNT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbC0yNCBjdXJzb3ItcG9pbnRlciBtaW4tdy1bMjUwcHhdIHAtNiByb3VuZGVkLW1kIGJvcmRlci1sLTJcIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2JnLVsjRkVGQUYxXSBib3JkZXItWyNGRkU2ODFdJzogYWN0aXZlID09PSBpLFxuICAgICAgICAgICAgICAgICdiZy10cmFuc3BhcmVudCBib3JkZXItdHJhbnNwYXJlbnQgaG92ZXI6YmctWyNGOUZBRkJdJzogYWN0aXZlICE9PSBpXG4gICAgICAgICAgICAgIH1cIiAoY2xpY2spPVwic2V0QWN0aXZlKGkpXCI+XG4gICAgICAgICAgICAgIDwhLS0gQWN0aW9uTmFtZSBhcyBwcmltYXJ5IGhlYWRpbmcsIGZhbGxiYWNrIHRvIEFjdGlvblR5cGUgLS0+XG4gICAgICAgICAgICAgIDxoNCBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LXhsIHRleHQtWyMxMDE4MjhdIG1iLTJcIj5cbiAgICAgICAgICAgICAgICB7eyB0aW1lbGluZS5BY3Rpb25OYW1lIHx8IHRpbWVsaW5lLkFjdGlvblR5cGUgfX1cbiAgICAgICAgICAgICAgPC9oND5cblxuICAgICAgICAgICAgICA8IS0tIEFjdG9yIGluZm9ybWF0aW9uIHdpdGggdG9vbHRpcCAtLT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICA8dmVyYmVuLXRvb2x0aXAgW3RvcF09XCInMHB4J1wiIFtsZWZ0XT1cIicwcHgnXCIgW3RleHRDb2xvcl09XCInIzAwMCdcIiBbYmFja2dyb3VuZENvbG9yXT1cIicjRkZGJ1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcENvbnRlbnRdPVwiYWN0b3JUb29sdGlwVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbSB0ZXh0LVsjNjY3MDg1XSBjdXJzb3ItaGVscCBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHZlcmJlbi1zdmcgW3dpZHRoXT1cIjE0XCIgW2hlaWdodF09XCIxNFwiIFtpY29uXT1cIid1c2VyJ1wiIHN0cm9rZT1cIiM2NjcwODVcIj48L3ZlcmJlbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1bIzM0NDA1NF1cIj57eyB0aW1lbGluZS5BY3Rvci5OYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDwvdmVyYmVuLXRvb2x0aXA+XG5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2FjdG9yVG9vbHRpcFRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJnLXdoaXRlIGJvcmRlciBib3JkZXItWyNFNEU3RUNdIHJvdW5kZWQtbGcgcC00IHNoYWRvdy1sZyB3LVsyODBweF1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTMgaXRlbXMtc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctWzQwcHhdIGgtWzQwcHhdIHJvdW5kZWQtZnVsbCBiZy1ncmFkaWVudC10by1yIGZyb20tWyNEOUFFQUVdIHZpYS1bI0UzQzc5Rl0gdG8tWyNGRkU2ODFdIGZsZXgtc2hyaW5rLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIG1pbi13LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtc20gdGV4dC1bIzEwMTgyOF0gbWItMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0aW1lbGluZS5BY3Rvci5OYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQteHMgdGV4dC1bIzY2NzA4NV0gYnJlYWstd29yZHMgZmxleCBpdGVtcy1zdGFydCBnYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyBbd2lkdGhdPVwiMTJcIiBbaGVpZ2h0XT1cIjEyXCIgW2ljb25dPVwiJ21haWwnXCIgc3Ryb2tlPVwiIzY2NzA4NVwiPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgdGltZWxpbmUuQWN0b3IuSWRlbnRpZmllciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiZ2V0VGFnc0Zyb21BY3Rvcih0aW1lbGluZS5BY3RvcilcIiBjbGFzcz1cInRleHQteHMgdGV4dC1bIzY2NzA4NV0gbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtXCI+VGFnczo8L3NwYW4+IHt7IGdldFRhZ3NGcm9tQWN0b3IodGltZWxpbmUuQWN0b3IpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPCEtLSBBY3Rpb24gVHlwZSAoaWYgZGlmZmVyZW50IGZyb20gQWN0aW9uTmFtZSkgLS0+XG4gICAgICAgICAgICAgIDxwICpuZ0lmPVwidGltZWxpbmUuQWN0aW9uTmFtZVwiIGNsYXNzPVwidGV4dC1zbSB0ZXh0LVsjNjY3MDg1XSBtYi0yXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bVwiPk9wZXJhdGlvbjo8L3NwYW4+IHt7IHRpbWVsaW5lLkFjdGlvblR5cGUgfX1cbiAgICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICAgIDwhLS0gU3RhZ2UgaW5mb3JtYXRpb24gZm9yIHRyYW5zZmVyIGFjdGlvbnMgLS0+XG4gICAgICAgICAgICAgIEBpZiAoc2hvd0Zyb21BbmRUbyh0aW1lbGluZS5BY3Rpb25UeXBlKSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctWyNGOUZBRkJdIHJvdW5kZWQtbWQgcC0zIG10LTIgc3BhY2UteS0xLjVcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc20gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1bIzY2NzA4NV0gZm9udC1tZWRpdW1cIj5Gcm9tOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1bIzYxNzJGM10gZm9udC1tb25vIHRleHQteHNcIj57eyB0aW1lbGluZS5Gcm9tU3RhZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LVsjNjY3MDg1XSBmb250LW1lZGl1bVwiPlRvOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1bIzYxNzJGM10gZm9udC1tb25vIHRleHQteHNcIj57eyB0aW1lbGluZS5Ub1N0YWdlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICA8IS0tIFZpZXcgY29tbWVudHMgYnV0dG9uIC0tPlxuICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwidGltZWxpbmUuRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBnYXAtMiBpdGVtcy1jZW50ZXIgdy1maXQgdGV4dC1bIzY2NzA4NV0gdGV4dC1zbSBib3JkZXIgcHgtMyBweS0yIHJvdW5kZWQtbGcgYmctWyNGQ0ZDRkRdIG10LTMgYm9yZGVyLVsjRTRFN0VDXSBob3ZlcjpiZy1bI0Y5RkFGQl0gaG92ZXI6Ym9yZGVyLVsjRDBENUREXSB0cmFuc2l0aW9uLWNvbG9yc1wiPlxuICAgICAgICAgICAgICAgIDx2ZXJiZW4tc3ZnIFt3aWR0aF09XCIxNVwiIFtoZWlnaHRdPVwiMTVcIiBbaWNvbl09XCInY2hhdCdcIj48L3ZlcmJlbi1zdmc+XG4gICAgICAgICAgICAgICAgVmlldyBjb21tZW50c1xuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtc3Bhbi01XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaC1bNTBweF0gYmctWyNmZmZdXCI+PC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlID49IDBcIiBjbGFzcz1cInctWzQ4MHB4XSBwbC0xNiBwdC0xMFwiPlxuICAgICAgICA8aDEgY2xhc3M9XCJmb250LWJvbGQgdGV4dC1sZyBweS0yXCI+Q29tbWVudHM8L2gxPlxuICAgICAgICA8cCBjbGFzcz1cInRleHQteHMgdGV4dC1bIzY2NzA4NV0gdGV4dC1yaWdodCBweS0yXCI+XG4gICAgICAgICAge3sgaGlzdG9yeVthY3RpdmVdLkNyZWF0ZWRBdCB8IGRhdGUgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmctWyNmZmZdIHRleHQtWyMxMDE4MjhdIGxlYWRpbmctcmVsYXhlZCBwLTggc2hhZG93LW1kIHJvdW5kZWQtbWRcIj5cbiAgICAgICAgICB7eyBoaXN0b3J5W2FjdGl2ZV0uRGVzY3JpcHRpb24gfX1cblxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJoaXN0b3J5W2FjdGl2ZV0/LkZpbGVzPy5sZW5ndGhcIiBjbGFzcz1cIm10LTQgYm9yZGVyLXQgcHQtNFwiPlxuICAgICAgICAgICAgPGg1IGNsYXNzPVwiZm9udC1ib2xkIHRleHQtc20gbWItMlwiPkF0dGFjaG1lbnRzPC9oNT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpbGUgb2YgaGlzdG9yeVthY3RpdmVdPy5GaWxlc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWNvbnRhaW5lciBwLTIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC0zIGJvcmRlciByb3VuZGVkLW1kIGJnLWdyYXktNTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSBvdmVyZmxvdy14LWF1dG8gZm9udC1zZW1pYm9sZFwiPlxuICAgICAgICAgICAgICAgICAge3sgZ2V0RmlsZU5hbWUoZmlsZSkgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwib3BlbkZpbGUoZmlsZSlcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyBbaWNvbl09XCInZG93bmxvYWQtaWNvbidcIiBbd2lkdGhdPVwiMjBcIiBbaGVpZ2h0XT1cIjIwXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1oaXN0b3J5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvdGFzay1oaXN0b3J5L3Rhc2staGlzdG9yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3Rhc2staGlzdG9yeS90YXNrLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFpQixVQUFVLEVBQTJCLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7QUFTbkksTUFBTSxPQUFPLG9CQUFvQjtJQVVyQjtJQUNBO0lBQ0E7SUFDQTtJQVpWLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDcEMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUM5QixNQUFNLEdBQVcsQ0FBQyxDQUFDO0lBQ25CLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFDaEMsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUN4QixhQUFhLEdBQWUsRUFBRSxDQUFDO0lBQy9CLDJCQUEyQjtJQUUzQixZQUNVLFNBQW1CLEVBQ25CLE9BQTJCLEVBQzNCLE1BQTBCLEVBQzFCLFdBQXdCO1FBSHhCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDOUIsQ0FBQztJQUNMLHFDQUFxQztJQUNyQyxNQUFNO0lBQ04sdUJBQXVCO0lBQ3ZCLHdDQUF3QztJQUN4QyxtQkFBbUI7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VSxDQUFDLE1BQU0sQ0FBQztZQUN2QixLQUFLLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDekIsS0FBSyxVQUFVLENBQUMsV0FBVyxDQUFDO1lBQzVCLEtBQUssVUFBVSxDQUFDLFlBQVk7Z0JBQzFCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsS0FBSyxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQ3hCLEtBQUssVUFBVSxDQUFDLFdBQVcsQ0FBQztZQUM1QixLQUFLLFVBQVUsQ0FBQyxZQUFZO2dCQUMxQixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFlO1FBQ3pCLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDeEIsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQWU7UUFDdEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixDQUN2QyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxPQUFPLEVBQUUsQ0FDckQsQ0FBQztJQUNKLENBQUM7d0dBL05VLG9CQUFvQjs0RkFBcEIsb0JBQW9CLG9NQ1hqQyx5OFBBaUpBOzs0RkR0SWEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uSGlzdG9yeSwgQWN0aW9uVHlwZSwgQWN0b3IsIEZpbGUgYXMgRmlsZURhdGEsIE9iamVjdFN0YXRlLCBPcGVyYXRpb25UeXBlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSwgVXRpbFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBUYXNrSGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuL3Rhc2staGlzdG9yeS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRhc2staGlzdG9yeScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YXNrLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGFzay1oaXN0b3J5LmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBUYXNrSGlzdG9yeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHRhc2tDb2RlID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBvcGVyYXRpb25UeXBlID0gT3BlcmF0aW9uVHlwZTtcbiAgYWN0aXZlOiBudW1iZXIgPSAwO1xuICBzaG93Q29tbWVudEJveDogYm9vbGVhbiA9IGZhbHNlO1xuICBuZXdDb21tZW50OiBzdHJpbmcgPSAnJztcbiAgc2VsZWN0ZWRGaWxlczogRmlsZURhdGFbXSA9IFtdO1xuICAvLyBBY3Rpb25UeXBlID0gQWN0aW9uVHlwZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9sb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBUYXNrSGlzdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbnZTdmM6IEVudmlyb25tZW50U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxTZXJ2aWNlOiBVdGlsU2VydmljZVxuICApIHsgfVxuICAvLyBzaW5nbGVIaXN0b3J5OiBUaW1lbGluZUV2ZW50W10gPSBbXG4gIC8vICAge1xuICAvLyAgICAgRGF0ZTogJzQ6MDUgUE0nLFxuICAvLyAgICAgT3BlcmF0aW9uOiBPcGVyYXRpb25UeXBlLkNvbW1lbnQsXG4gIC8vICAgICBEZXRhaWxzOiB7fSxcbiAgLy8gICAgIEFjdGlvbnM6IFtcbiAgLy8gICAgICAgeyBMYWJlbDogJ1ZpZXcgQ29tbWVudHMnLCBUeXBlOiAnYnV0dG9uJywgQWN0aW9uOiAndmlld0NvbW1lbnRzJyB9LFxuICAvLyAgICAgXSxcbiAgLy8gICB9LFxuICAvLyAgIHtcbiAgLy8gICAgIERhdGU6ICdZZXN0ZXJkYXknLFxuICAvLyAgICAgT3BlcmF0aW9uOiBPcGVyYXRpb25UeXBlLkNvbW1lbnQsXG4gIC8vICAgICBEZXRhaWxzOiB7fSxcbiAgLy8gICAgIEFjdGlvbnM6IFtcbiAgLy8gICAgICAgeyBMYWJlbDogJ1ZpZXcgQ29tbWVudHMnLCBUeXBlOiAnYnV0dG9uJywgQWN0aW9uOiAndmlld0NvbW1lbnRzJyB9LFxuICAvLyAgICAgXSxcbiAgLy8gICB9LFxuICAvLyAgIHtcbiAgLy8gICAgIERhdGU6ICdNYXIgMicsXG4gIC8vICAgICBPcGVyYXRpb246IE9wZXJhdGlvblR5cGUuRm9ybXMsXG4gIC8vICAgICBEZXRhaWxzOiB7XG4gIC8vICAgICAgIEZpbGxlZEJ5OiAnQW5vbnltb3VzJyxcbiAgLy8gICAgIH0sXG4gIC8vICAgICBBY3Rpb25zOiBbeyBMYWJlbDogJ1ZpZXcgRm9ybScsIFR5cGU6ICdidXR0b24nLCBBY3Rpb246ICd2aWV3Rm9ybScgfV0sXG4gIC8vICAgfSxcbiAgLy8gICB7XG4gIC8vICAgICBEYXRlOiAnTm92IDQnLFxuICAvLyAgICAgT3BlcmF0aW9uOiBPcGVyYXRpb25UeXBlLkFzc2lnbm1lbnQsXG4gIC8vICAgICBEZXRhaWxzOiB7XG4gIC8vICAgICAgIEZyb206ICdKb2huIERvZScsXG4gIC8vICAgICAgIFRvOiAnSmFuZSBEb2UnLFxuICAvLyAgICAgfSxcbiAgLy8gICAgIEFjdGlvbnM6IFtdLFxuICAvLyAgIH0sXG4gIC8vICAge1xuICAvLyAgICAgRGF0ZTogJ05vdiA2JyxcbiAgLy8gICAgIE9wZXJhdGlvbjogT3BlcmF0aW9uVHlwZS5Db21tZW50LFxuICAvLyAgICAgRGV0YWlsczoge30sXG4gIC8vICAgICBBY3Rpb25zOiBbXG4gIC8vICAgICAgIHsgTGFiZWw6ICdWaWV3IENvbW1lbnRzJywgVHlwZTogJ2J1dHRvbicsIEFjdGlvbjogJ3ZpZXdDb21tZW50cycgfSxcbiAgLy8gICAgIF0sXG4gIC8vICAgfSxcbiAgLy8gXTtcblxuICBoaXN0b3J5OiBBY3Rpb25IaXN0b3J5W10gPSBbXTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0VGFza0hpc3RvcnkodGhpcy50YXNrQ29kZSgpKS50aGVuKChyZXMpID0+IHtcbiAgICAgIHRoaXMuaGlzdG9yeSA9IHJlcztcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuaGlzdG9yeSk7XG4gICAgfSk7XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5fbG9jYXRpb24uYmFjaygpO1xuICB9XG5cbiAgc2V0QWN0aXZlKGk6IG51bWJlcikge1xuICAgIHRoaXMuYWN0aXZlID0gaTtcbiAgfVxuXG4gIGdldFRhZ3NGcm9tQWN0b3IoYWN0b3I6IEFjdG9yKSB7XG4gICAgcmV0dXJuIGFjdG9yLlRhZ3MubWFwKCh0YWcpID0+IHRhZy5OYW1lKS5qb2luKCcsICcpO1xuICB9XG5cbiAgYWRkQ29tbWVudCgpIHtcbiAgICB0aGlzLnNob3dDb21tZW50Qm94ID0gIXRoaXMuc2hvd0NvbW1lbnRCb3g7XG4gIH1cblxuICBhc3luYyBzYXZlQ29tbWVudCgpIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLm5ld0NvbW1lbnQpO1xuICAgIGlmICghdGhpcy5uZXdDb21tZW50LnRyaW0oKSAmJiB0aGlzLnNlbGVjdGVkRmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHVwbG9hZGVkRmlsZXM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRGaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSSh0cnVlKTtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnVwbG9hZEZpbGVzKHRoaXMuc2VsZWN0ZWRGaWxlcyk7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICB1cGxvYWRlZEZpbGVzID0gcmVzO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdGaWxlIHVwbG9hZCBmYWlsZWQnLCBlcnJvcik7XG4gICAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKGZhbHNlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkoZmFsc2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFjdGlvbkhpc3RvcnkgPSB7XG4gICAgICBUYXNrQ29kZTogdGhpcy50YXNrQ29kZSgpID8/ICcnLFxuICAgICAgRGVzY3JpcHRpb246IHRoaXMubmV3Q29tbWVudCxcbiAgICAgIEFjdGlvblR5cGU6IEFjdGlvblR5cGUuQ29tbWVudCxcbiAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuTmV3LFxuICAgICAgRmlsZXM6IHVwbG9hZGVkRmlsZXMsXG4gICAgICAvLyBBY3Rvcjoge1xuICAgICAgLy8gICBJZDogdGhpcy5zZWxlY3RlZERldGFpbC5BY3RvcklkLFxuICAgICAgLy8gICBOYW1lOiB0aGlzLnNlbGVjdGVkRGV0YWlsLkFjdG9yTmFtZSxcbiAgICAgIC8vICAgVGFnczogdGhpcy5zZWxlY3RlZERldGFpbC5UYWdzLFxuICAgICAgLy8gfSxcbiAgICAgIFdvcmtmbG93OiAnJyxcbiAgICAgIEZyb21TdGFnZTogJycsXG4gICAgICBUb1N0YWdlOiAnJyxcbiAgICAgIENvZGU6ICcnLFxuICAgICAgVGVuYW50SWQ6ICcnLFxuICAgIH0gYXMgQWN0aW9uSGlzdG9yeTtcblxuICAgIHRoaXMuc2VydmljZS5zYXZlQWN0aW9uSGlzdG9yeShbYWN0aW9uSGlzdG9yeV0pLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5uZXdDb21tZW50ID0gJyc7XG4gICAgICB0aGlzLnNlbGVjdGVkRmlsZXMgPSBbXTtcbiAgICAgIHRoaXMuc2hvd0NvbW1lbnRCb3ggPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VydmljZS5nZXRUYXNrSGlzdG9yeSh0aGlzLnRhc2tDb2RlKCkpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmhpc3RvcnkgPSByZXM7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uRmlsZVNlbGVjdChkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlczogYW55ID0gZGF0YTtcblxuICAgIGlmICghZmlsZXMgfHwgZmlsZXMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICBjb25zdCBmaWxlQXJyYXk6IEZpbGVEYXRhW10gPSBbXTtcbiAgICBjb25zdCByZWFkZXJzOiBQcm9taXNlPHZvaWQ+W10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGZpbGUgPSBmaWxlc1tpXTtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgYmFzZTY0ID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmc7XG4gICAgICAgICAgZmlsZUFycmF5LnB1c2goe1xuICAgICAgICAgICAgRXh0ZW5zaW9uOiBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKSxcbiAgICAgICAgICAgIE5hbWU6IHRoaXMuZ2VuZXJhdGVSYW5kb21Db2RlKCksXG4gICAgICAgICAgICBEYXRhOiBiYXNlNjQsXG4gICAgICAgICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLk5ldyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHJlamVjdChlcnJvcik7XG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlYWRlcnMucHVzaChwcm9taXNlKTtcbiAgICB9XG5cbiAgICBQcm9taXNlLmFsbChyZWFkZXJzKS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdGaWxlcyByZWFkeSB0byB1cGxvYWQ6JywgZmlsZUFycmF5KTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlcyA9IGZpbGVBcnJheTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVSYW5kb21Db2RlKGxlbmd0aDogbnVtYmVyID0gMTApOiBzdHJpbmcge1xuICAgIGNvbnN0IGNoYXJzID1cbiAgICAgICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlc3VsdCArPSBjaGFycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcnMubGVuZ3RoKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVVcmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBmaWxlVXJsLnNwbGl0KCcuJyk7XG4gICAgcmV0dXJuIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBzZXRQcmV2aWV3KHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbCkgcmV0dXJuICcnO1xuICAgIGNvbnN0IGZpcnN0ID0gdmFsLnNwbGl0KCcsJylbMF0udHJpbSgpO1xuXG4gICAgaWYgKGZpcnN0LnN0YXJ0c1dpdGgoJ2h0dHAnKSB8fCBmaXJzdC5zdGFydHNXaXRoKCdkYXRhOicpKSB7XG4gICAgICByZXR1cm4gZmlyc3Q7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5GSUxFX1VSTH0vJHtmaXJzdH1gO1xuICB9XG5cbiAgc2hvd0Zyb21BbmRUbyhhY3Rpb25UeXBlOiBBY3Rpb25UeXBlKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoIChhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIEFjdGlvblR5cGUuUGFzc09uOlxuICAgICAgY2FzZSBBY3Rpb25UeXBlLlBhc3NCYWNrOlxuICAgICAgY2FzZSBBY3Rpb25UeXBlLlNraXBGb3J3YXJkOlxuICAgICAgY2FzZSBBY3Rpb25UeXBlLlNraXBCYWNrd2FyZDpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlIEFjdGlvblR5cGUuQ29tbWVudDpcbiAgICAgIGNhc2UgQWN0aW9uVHlwZS5Gb3JtRmlsbGluZzpcbiAgICAgIGNhc2UgQWN0aW9uVHlwZS5TdGF0dXNDaGFuZ2U6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBnZXRGaWxlTmFtZShmaWxlVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghZmlsZVVybCkgcmV0dXJuICcnO1xuICAgIHJldHVybiBmaWxlVXJsLnNwbGl0KCcvJykucG9wKCkgfHwgJyc7XG4gIH1cblxuICBvcGVuRmlsZShmaWxlVXJsOiBzdHJpbmcpIHtcbiAgICBpZiAoIWZpbGVVcmwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy51dGlsU2VydmljZS5vcGVuRnVsbFJvdXRlSW5OZXdXaW5kb3coXG4gICAgICBgJHt0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5GSUxFX0JBU0VfVVJMfSR7ZmlsZVVybH1gXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJnLVsjRjlGQUZCXVwiPlxuICA8aGVhZGVyIGNsYXNzPVwibXgtOCByb3VuZGVkLWxnIHNoYWRvdy1sZyBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgcHgtNiBweS0yIGJnLVsjRDRBMDA3NzNdXCI+XG4gICAgPGg0IGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiPnt7IHRhc2tDb2RlKCkgfX08L2g0PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC00IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgPHZlcmJlbmEtYnV0dG9uIChjbGljayk9XCJhZGRDb21tZW50KClcIiB0ZXh0PVwiKyBBZGQgQ29tbWVudFwiIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCJcbiAgICAgICAgY2xhc3M9XCJtbC1hdXRvXCI+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgIDx2ZXJiZW4tc3ZnIChjbGljayk9XCJnb0JhY2soKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBbd2lkdGhdPVwiMTdcIiBbaGVpZ2h0XT1cIjE3XCIgW2ljb25dPVwiJ2dvLWJhY2snXCI+PC92ZXJiZW4tc3ZnPlxuICAgIDwvZGl2PlxuICA8L2hlYWRlcj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJncmlkIGdyaWQtY29scy0xMlwiPlxuICAgIDxkaXYgY2xhc3M9XCJiZy1bI2ZmZl0gY29sLXNwYW4tNyBwbC0xNiBwdC0yMCByZWxhdGl2ZVwiPlxuICAgICAgPGRpdiAqbmdJZj1cInNob3dDb21tZW50Qm94XCIgY2xhc3M9XCJtYi02IG1yLTEwXCI+XG4gICAgICAgIDxoNCBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWxnIG1iLTJcIj5BZGQgQ29tbWVudDwvaDQ+XG4gICAgICAgIDwhLS0gPHZlcmJlbmEtdGV4dGFyZWEgWyhuZ01vZGVsKV09XCJuZXdDb21tZW50XCIgbGFiZWw9XCJDb21tZW50XCIgY2xhc3M9XCJ3LWZ1bGxcIj48L3ZlcmJlbmEtdGV4dGFyZWE+IC0tPlxuICAgICAgICA8dGV4dGFyZWEgWyhuZ01vZGVsKV09XCJuZXdDb21tZW50XCIgbGFiZWw9XCJDb21tZW50XCIgY2xhc3M9XCJ3LWZ1bGwgYm9yZGVyIHJvdW5kZWQtbWQgcC0yXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTRcIj5cbiAgICAgICAgICA8ZmlsZS11cGxvYWQgKHNlbGVjdGVkRmlsZXNDaGFuZ2UpPVwib25GaWxlU2VsZWN0KCRldmVudClcIiBbbXVsdGlwbGVdPVwidHJ1ZVwiIGxhYmVsPVwiQXR0YWNoIEZpbGVzXCI+XG4gICAgICAgICAgPC9maWxlLXVwbG9hZD5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRGaWxlcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMyBtdC0zXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmaWxlIG9mIHNlbGVjdGVkRmlsZXNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmlsZS5FeHRlbnNpb25cIj5cbiAgICAgICAgICAgICAgICA8aW1nICpuZ1N3aXRjaENhc2U9XCInanBnJ1wiIFtzcmNdPVwiZmlsZS5EYXRhXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1bMTAwcHhdIGgtWzEwMHB4XSBvYmplY3QtY292ZXIgcm91bmRlZC1tZCBib3JkZXJcIiAvPlxuICAgICAgICAgICAgICAgIDxpbWcgKm5nU3dpdGNoQ2FzZT1cIidwbmcnXCIgW3NyY109XCJmaWxlLkRhdGFcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LVsxMDBweF0gaC1bMTAwcHhdIG9iamVjdC1jb3ZlciByb3VuZGVkLW1kIGJvcmRlclwiIC8+XG4gICAgICAgICAgICAgICAgPHZpZGVvICpuZ1N3aXRjaENhc2U9XCInbXA0J1wiIFtzcmNdPVwiZmlsZS5EYXRhXCIgY2xhc3M9XCJ3LVsxNTBweF0gcm91bmRlZC1tZCBzaGFkb3dcIiBjb250cm9scz48L3ZpZGVvPlxuICAgICAgICAgICAgICAgIDxhdWRpbyAqbmdTd2l0Y2hDYXNlPVwiJ21wMydcIiBbc3JjXT1cImZpbGUuRGF0YVwiIGNvbnRyb2xzIGNsYXNzPVwidy1bMTUwcHhdXCI+PC9hdWRpbz5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktZW5kIGdhcC0yIG10LTJcIj5cbiAgICAgICAgICA8dmVyYmVuYS1idXR0b24gKGNsaWNrKT1cImFkZENvbW1lbnQoKVwiIHRleHQ9XCJDYW5jZWxcIiBzdHlsZVR5cGU9XCJ5bHctb3V0bGluZVwiPjwvdmVyYmVuYS1idXR0b24+XG4gICAgICAgICAgPHZlcmJlbmEtYnV0dG9uIChjbGljayk9XCJzYXZlQ29tbWVudCgpXCIgdGV4dD1cIlNhdmVcIiBiZ0NvbG9yPVwiI0ZGRTY4MVwiIHRleHRDb2xvcj1cIiM0MDQwNDBcIiBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgICAgICAgIHBkPVwiMTBweCAyMHB4XCIgd2lkdGg9XCIxMTRweFwiIGhlaWdodD1cIjM5cHhcIj48L3ZlcmJlbmEtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJhYnNvbHV0ZSBibG9jayBoLVs5MCVdIGgtbmluZXR5IGJvcmRlciBib3JkZXItc2Vjb25kYXJ5LTIwMCBsZWZ0LVsxNTBweF1cIj48L3NwYW4+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0aW1lbGluZSBvZiBoaXN0b3J5OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggbWItN1wiPlxuICAgICAgICAgICAgPGg1IGNsYXNzPVwidy1bMTAwcHhdIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNldEFjdGl2ZShpKVwiPlxuICAgICAgICAgICAgICB7eyB0aW1lbGluZT8uQ3JlYXRlZEF0IHwgZGF0ZSB9fVxuICAgICAgICAgICAgPC9oNT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbC0yNCBjdXJzb3ItcG9pbnRlciBtaW4tdy1bMjUwcHhdIHAtNiByb3VuZGVkLW1kIGJvcmRlci1sLTJcIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2JnLVsjRkVGQUYxXSBib3JkZXItWyNGRkU2ODFdJzogYWN0aXZlID09PSBpLFxuICAgICAgICAgICAgICAgICdiZy10cmFuc3BhcmVudCBib3JkZXItdHJhbnNwYXJlbnQgaG92ZXI6YmctWyNGOUZBRkJdJzogYWN0aXZlICE9PSBpXG4gICAgICAgICAgICAgIH1cIiAoY2xpY2spPVwic2V0QWN0aXZlKGkpXCI+XG4gICAgICAgICAgICAgIDwhLS0gQWN0aW9uTmFtZSBhcyBwcmltYXJ5IGhlYWRpbmcsIGZhbGxiYWNrIHRvIEFjdGlvblR5cGUgLS0+XG4gICAgICAgICAgICAgIDxoNCBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LXhsIHRleHQtWyMxMDE4MjhdIG1iLTJcIj5cbiAgICAgICAgICAgICAgICB7eyB0aW1lbGluZS5BY3Rpb25OYW1lIHx8IHRpbWVsaW5lLkFjdGlvblR5cGUgfX1cbiAgICAgICAgICAgICAgPC9oND5cblxuICAgICAgICAgICAgICA8IS0tIEFjdG9yIGluZm9ybWF0aW9uIHdpdGggdG9vbHRpcCAtLT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICA8dmVyYmVuLXRvb2x0aXAgW3RvcF09XCInMHB4J1wiIFtsZWZ0XT1cIicwcHgnXCIgW3RleHRDb2xvcl09XCInIzAwMCdcIiBbYmFja2dyb3VuZENvbG9yXT1cIicjRkZGJ1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcENvbnRlbnRdPVwiYWN0b3JUb29sdGlwVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbSB0ZXh0LVsjNjY3MDg1XSBjdXJzb3ItaGVscCBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHZlcmJlbi1zdmcgW3dpZHRoXT1cIjE0XCIgW2hlaWdodF09XCIxNFwiIFtpY29uXT1cIid1c2VyJ1wiIHN0cm9rZT1cIiM2NjcwODVcIj48L3ZlcmJlbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1bIzM0NDA1NF1cIj57eyB0aW1lbGluZS5BY3Rvci5OYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDwvdmVyYmVuLXRvb2x0aXA+XG5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2FjdG9yVG9vbHRpcFRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJnLXdoaXRlIGJvcmRlciBib3JkZXItWyNFNEU3RUNdIHJvdW5kZWQtbGcgcC00IHNoYWRvdy1sZyB3LVsyODBweF1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTMgaXRlbXMtc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctWzQwcHhdIGgtWzQwcHhdIHJvdW5kZWQtZnVsbCBiZy1ncmFkaWVudC10by1yIGZyb20tWyNEOUFFQUVdIHZpYS1bI0UzQzc5Rl0gdG8tWyNGRkU2ODFdIGZsZXgtc2hyaW5rLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIG1pbi13LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtc20gdGV4dC1bIzEwMTgyOF0gbWItMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0aW1lbGluZS5BY3Rvci5OYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQteHMgdGV4dC1bIzY2NzA4NV0gYnJlYWstd29yZHMgZmxleCBpdGVtcy1zdGFydCBnYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyBbd2lkdGhdPVwiMTJcIiBbaGVpZ2h0XT1cIjEyXCIgW2ljb25dPVwiJ21haWwnXCIgc3Ryb2tlPVwiIzY2NzA4NVwiPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgdGltZWxpbmUuQWN0b3IuSWRlbnRpZmllciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiZ2V0VGFnc0Zyb21BY3Rvcih0aW1lbGluZS5BY3RvcilcIiBjbGFzcz1cInRleHQteHMgdGV4dC1bIzY2NzA4NV0gbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtXCI+VGFnczo8L3NwYW4+IHt7IGdldFRhZ3NGcm9tQWN0b3IodGltZWxpbmUuQWN0b3IpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPCEtLSBBY3Rpb24gVHlwZSAoaWYgZGlmZmVyZW50IGZyb20gQWN0aW9uTmFtZSkgLS0+XG4gICAgICAgICAgICAgIDxwICpuZ0lmPVwidGltZWxpbmUuQWN0aW9uTmFtZVwiIGNsYXNzPVwidGV4dC1zbSB0ZXh0LVsjNjY3MDg1XSBtYi0yXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bVwiPk9wZXJhdGlvbjo8L3NwYW4+IHt7IHRpbWVsaW5lLkFjdGlvblR5cGUgfX1cbiAgICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICAgIDwhLS0gU3RhZ2UgaW5mb3JtYXRpb24gZm9yIHRyYW5zZmVyIGFjdGlvbnMgLS0+XG4gICAgICAgICAgICAgIEBpZiAoc2hvd0Zyb21BbmRUbyh0aW1lbGluZS5BY3Rpb25UeXBlKSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctWyNGOUZBRkJdIHJvdW5kZWQtbWQgcC0zIG10LTIgc3BhY2UteS0xLjVcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc20gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1bIzY2NzA4NV0gZm9udC1tZWRpdW1cIj5Gcm9tOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1bIzYxNzJGM10gZm9udC1tb25vIHRleHQteHNcIj57eyB0aW1lbGluZS5Gcm9tU3RhZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LVsjNjY3MDg1XSBmb250LW1lZGl1bVwiPlRvOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1bIzYxNzJGM10gZm9udC1tb25vIHRleHQteHNcIj57eyB0aW1lbGluZS5Ub1N0YWdlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICA8IS0tIFZpZXcgY29tbWVudHMgYnV0dG9uIC0tPlxuICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwidGltZWxpbmUuRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBnYXAtMiBpdGVtcy1jZW50ZXIgdy1maXQgdGV4dC1bIzY2NzA4NV0gdGV4dC1zbSBib3JkZXIgcHgtMyBweS0yIHJvdW5kZWQtbGcgYmctWyNGQ0ZDRkRdIG10LTMgYm9yZGVyLVsjRTRFN0VDXSBob3ZlcjpiZy1bI0Y5RkFGQl0gaG92ZXI6Ym9yZGVyLVsjRDBENUREXSB0cmFuc2l0aW9uLWNvbG9yc1wiPlxuICAgICAgICAgICAgICAgIDx2ZXJiZW4tc3ZnIFt3aWR0aF09XCIxNVwiIFtoZWlnaHRdPVwiMTVcIiBbaWNvbl09XCInY2hhdCdcIj48L3ZlcmJlbi1zdmc+XG4gICAgICAgICAgICAgICAgVmlldyBjb21tZW50c1xuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtc3Bhbi01XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaC1bNTBweF0gYmctWyNmZmZdXCI+PC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlID49IDBcIiBjbGFzcz1cInctWzQ4MHB4XSBwbC0xNiBwdC0xMFwiPlxuICAgICAgICA8aDEgY2xhc3M9XCJmb250LWJvbGQgdGV4dC1sZyBweS0yXCI+Q29tbWVudHM8L2gxPlxuICAgICAgICA8cCBjbGFzcz1cInRleHQteHMgdGV4dC1bIzY2NzA4NV0gdGV4dC1yaWdodCBweS0yXCI+XG4gICAgICAgICAge3sgaGlzdG9yeVthY3RpdmVdLkNyZWF0ZWRBdCB8IGRhdGUgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmctWyNmZmZdIHRleHQtWyMxMDE4MjhdIGxlYWRpbmctcmVsYXhlZCBwLTggc2hhZG93LW1kIHJvdW5kZWQtbWRcIj5cbiAgICAgICAgICB7eyBoaXN0b3J5W2FjdGl2ZV0uRGVzY3JpcHRpb24gfX1cblxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJoaXN0b3J5W2FjdGl2ZV0/LkZpbGVzPy5sZW5ndGhcIiBjbGFzcz1cIm10LTQgYm9yZGVyLXQgcHQtNFwiPlxuICAgICAgICAgICAgPGg1IGNsYXNzPVwiZm9udC1ib2xkIHRleHQtc20gbWItMlwiPkF0dGFjaG1lbnRzPC9oNT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpbGUgb2YgaGlzdG9yeVthY3RpdmVdPy5GaWxlc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWNvbnRhaW5lciBwLTIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC0zIGJvcmRlciByb3VuZGVkLW1kIGJnLWdyYXktNTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSBvdmVyZmxvdy14LWF1dG8gZm9udC1zZW1pYm9sZFwiPlxuICAgICAgICAgICAgICAgICAge3sgZ2V0RmlsZU5hbWUoZmlsZSkgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwib3BlbkZpbGUoZmlsZSlcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyBbaWNvbl09XCInZG93bmxvYWQtaWNvbidcIiBbd2lkdGhdPVwiMjBcIiBbaGVpZ2h0XT1cIjIwXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -148,7 +148,7 @@ export class EscalationDialogComponent {
|
|
|
148
148
|
...(this.escalation() ?? {
|
|
149
149
|
Id: '',
|
|
150
150
|
Code: '',
|
|
151
|
-
TenantId: '
|
|
151
|
+
TenantId: '',
|
|
152
152
|
Workflow: this.workflowCode(),
|
|
153
153
|
Stage: this.stageCode(),
|
|
154
154
|
Type: this.type(),
|
|
@@ -235,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
235
235
|
}], created: [{
|
|
236
236
|
type: Output
|
|
237
237
|
}] } });
|
|
238
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYWxhdGlvbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1kZXNpZ25lci9lc2NhbGF0aW9uLWRpYWxvZy9lc2NhbGF0aW9uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL2VzY2FsYXRpb24tZGlhbG9nL2VzY2FsYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFnQixVQUFVLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RSxPQUFPLEVBQThCLFdBQVcsRUFBb0Msb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7QUFTcEosTUFBTSxPQUFPLHlCQUF5QjtJQXdEMUI7SUFDQTtJQUNBO0lBekRELE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDbEMsWUFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUN4QyxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3JDLElBQUksR0FBRyxLQUFLLEVBQWtCLENBQUM7SUFFckIsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFNLENBQUM7SUFFM0MsVUFBVSxHQUFzQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFN0Qsa0JBQWtC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QXpCLHlCQUF5QiwrbkJDdEJ0Qyw2M0pBOEZBOzs0RkR4RWEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHVCQUF1Qjs0SUFLeEIsT0FBTztzQkFBZixLQUFLO2dCQUtJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBlZmZlY3QsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5wdXQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgc2lnbmFsLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVkaXRvckNvbmZpZywgRWRpdG9yTW9kZSwgRWRpdG9yU3RhdGUgfSBmcm9tICd2ZXJiZW4tcmVwb3J0aW5nLXVpJztcbmltcG9ydCB7IEVzY2FsYXRpb24sIEVzY2FsYXRpb25UeXBlLCBPYmplY3RTdGF0ZSwgUmVwb3J0U2NoZWR1bGUsIFRhc2tOb3RpZmljYXRpb24sIFRhc2tOb3RpZmljYXRpb25UeXBlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvc2VydmljZXMnO1xuaW1wb3J0IHsgV29ya2Zsb3dEYXRhU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LWRhdGEuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1lc2NhbGF0aW9uLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9lc2NhbGF0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9lc2NhbGF0aW9uLWRpYWxvZy5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRXNjYWxhdGlvbkRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgd29ya2Zsb3dDb2RlID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBzdGFnZUNvZGUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIHR5cGUgPSBpbnB1dDxFc2NhbGF0aW9uVHlwZT4oKTtcblxuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8e30+KCk7XG5cbiAgZXNjYWxhdGlvbjogV3JpdGFibGVTaWduYWw8RXNjYWxhdGlvbiB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xuXG4gIC8vIGVzY2FsYXRpb25Gb3JtO1xuICByZXBvcnRTY2hlZHVsZXM6IFdyaXRhYmxlU2lnbmFsPFJlcG9ydFNjaGVkdWxlW10+ID0gc2lnbmFsKFtdKTtcbiAgLy8gb3BlcmF0aW9uQWN0aW9uczogV3JpdGFibGVTaWduYWw8T3BlcmF0aW9uQWN0aW9uW10+ID0gc2lnbmFsKFtdKTtcblxuICAvLyBzZWxlY3RlZE9wZXJhdGlvbkFjdGlvbjogQmVoYXZpb3JTdWJqZWN0PE9wZXJhdGlvbkFjdGlvbltcIkNvZGVcIl0gfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T3BlcmF0aW9uQWN0aW9uW1wiQ29kZVwiXSB8IG51bGw+KG51bGwpO1xuXG4gIC8vIHNlbGVjdGVkTWVzc2FnZXM6IFdyaXRhYmxlU2lnbmFsPFxuICAvLyAgICgoUmVwb3J0U2NoZWR1bGUgJiB7IElzVGFza0RhdGFTb3VyY2U6IGJvb2xlYW4gfSkgfCBudWxsKVtdXG4gIC8vID4gPSBzaWduYWwoW10pO1xuXG4gIHNlbGVjdGVkTWVzc2FnZXM6ICgoUmVwb3J0U2NoZWR1bGUgJiB7IElzVGFza0RhdGFTb3VyY2U6IGJvb2xlYW47IElzTWVzc2FnZUlkOiBib29sZWFuOyB9KSB8IG51bGwpW10gPSBbXTtcblxuICBlZGl0b3JNb2RlOiBFZGl0b3JNb2RlID0gRWRpdG9yTW9kZS5EZXNpZ25lcjtcbiAgZWRpdG9yQ29uZmlnOiBFZGl0b3JDb25maWcgPSB7XG4gICAgZWRpdGFibGU6IHRydWUsXG4gICAgaGVpZ2h0OiAnJyxcbiAgICB3aWR0aDogJycsXG4gICAgc2hvd1Rvb2xiYXI6IHRydWUsXG4gICAgbWVudUl0ZW1zOiBbXG4gICAgICB7XG4gICAgICAgIExhYmVsOiAnVG9nZ2xlVmlldycsXG4gICAgICAgIEljb246ICdjb2RlLXRvZ2dsZScsXG4gICAgICAgIEljb25XaWR0aDogMjAsXG4gICAgICAgIEljb25IZWlnaHQ6IDIwLFxuICAgICAgICBJc1N0cm9rZTogZmFsc2UsXG4gICAgICAgIEdyb3VwQnk6ICdsb2NhbCcsXG4gICAgICAgIE9uQ2xpY2s6IChldmVudDogRWRpdG9yU3RhdGUgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgICB0aGlzLmVkaXRvck1vZGUgPVxuICAgICAgICAgICAgdGhpcy5lZGl0b3JNb2RlID09IEVkaXRvck1vZGUuRGVzaWduZXJcbiAgICAgICAgICAgICAgPyBFZGl0b3JNb2RlLkNvZGVcbiAgICAgICAgICAgICAgOiBFZGl0b3JNb2RlLkRlc2lnbmVyO1xuICAgICAgICB9LFxuICAgICAgICBJc0Rpc2FibGVkOiAoZXZlbnQ6IEVkaXRvclN0YXRlIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICBJc0VuYWJsZWQ6IChldmVudDogRWRpdG9yU3RhdGUgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5lZGl0b3JNb2RlID09IEVkaXRvck1vZGUuQ29kZTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcblxuICAvLyBJc1Rhc2tEYXRhU291cmNlOiBXcml0YWJsZVNpZ25hbDxib29sZWFuW10+ID0gc2lnbmFsKFtdKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBXb3JrZmxvd0RhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXRpbFNlcnZpY2U6IFV0aWxTZXJ2aWNlXG4gICkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBzdGFnZUNvZGUgPSB0aGlzLnN0YWdlQ29kZSgpO1xuICAgICAgY29uc3Qgd29ya2Zsb3dDb2RlID0gdGhpcy53b3JrZmxvd0NvZGUoKTtcbiAgICAgIGNvbnN0IHR5cGUgPSB0aGlzLnR5cGUoKTtcbiAgICAgIGNvbnNvbGUubG9nKCdTdGFnZSBjb2RlIGNoYW5nZWQ6Jywgc3RhZ2VDb2RlKTtcbiAgICAgIGlmICh3b3JrZmxvd0NvZGUgJiYgc3RhZ2VDb2RlICYmIHR5cGUpIHtcbiAgICAgICAgLy8gdGhpcy5sb2FkRXNjYWxhdGlvbihzdGFnZUNvZGUpO1xuICAgICAgICB0aGlzLnNlYXJjaEVzY2FsYXRpb24od29ya2Zsb3dDb2RlLCBzdGFnZUNvZGUsIHR5cGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGVzY2FsYXRpb24gPSB0aGlzLmVzY2FsYXRpb24oKTtcbiAgICAgIGNvbnN0IHJlcG9ydFNjaGVkdWxlcyA9IHRoaXMucmVwb3J0U2NoZWR1bGVzKCk7XG5cbiAgICAgIGlmIChlc2NhbGF0aW9uICYmIHJlcG9ydFNjaGVkdWxlcykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTWVzc2FnZXMgPSBlc2NhbGF0aW9uLkZ1bGxNZXNzYWdlcy5tYXAoKHsgTWVzc2FnZSwgSXNUYXNrRGF0YVNvdXJjZSwgSXNNZXNzYWdlSWQgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZvdW5kID0gcmVwb3J0U2NoZWR1bGVzLmZpbmQoKHJzKSA9PiBycy5Db2RlID09PSBNZXNzYWdlKTtcbiAgICAgICAgICByZXR1cm4gZm91bmQgPyB7IC4uLmZvdW5kLCBJc1Rhc2tEYXRhU291cmNlLCBJc01lc3NhZ2VJZCB9IDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRPcGVyYXRpb25BY3Rpb24ubmV4dChlc2NhbGF0aW9uLk9wZXJhdGlvbkFjdGlvbiA/PyBudWxsKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJTRVRUSU5HIE9QXCIsIHRoaXMuc2VsZWN0ZWRPcGVyYXRpb25BY3Rpb24pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gdGhpcy5lc2NhbGF0aW9uRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIC8vICAgTWVzc2FnZXM6IHRoaXMuZmIuYXJyYXkoW10pLFxuICAgIC8vIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkUmVwb3J0U2NoZWR1bGVzKCk7XG4gICAgLy8gdGhpcy5sb2FkT3BlcmF0aW9uQWN0aW9ucygpO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRNZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWRkTWVzc2FnZSgpO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKFxuICAgICAgJ0VzY2FsYXRpb25EaWFsb2dDb21wb25lbnQgaW5pdGlhbGl6ZWQgd2l0aCBzdGFnZUNvZGU6JyxcbiAgICAgIHRoaXMuc3RhZ2VDb2RlXG4gICAgKTtcbiAgICAvLyBjb25zb2xlLmxvZygnRXNjYWxhdGlvbkRpYWxvZ0NvbXBvbmVudCB0eXBlOicsIHRoaXMudHlwZSk7XG4gIH1cblxuICAvLyBnZXQgbWVzc2FnZXMoKSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuZXNjYWxhdGlvbkZvcm0uY29udHJvbHNbJ01lc3NhZ2VzJ10gYXMgRm9ybUFycmF5O1xuICAvLyB9XG5cbiAgYWRkTWVzc2FnZSgpIHtcbiAgICB0aGlzLnNlbGVjdGVkTWVzc2FnZXMgPSB0aGlzLnNlbGVjdGVkTWVzc2FnZXMuY29uY2F0KFtudWxsXSk7XG4gIH1cblxuICBkZWxldGVNZXNzYWdlKGxlc3NvbkluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkTWVzc2FnZXMgPSB0aGlzLnNlbGVjdGVkTWVzc2FnZXMuc3BsaWNlKGxlc3NvbkluZGV4LCAxKTtcbiAgfVxuXG4gIG9uTWVzc2FnZVNlbGVjdGVkKHJlcG9ydFNjaGVkdWxlOiBSZXBvcnRTY2hlZHVsZSwgaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnNvbGUubG9nKCdTZWxlY3RlZCBtZXNzYWdlOicsIHJlcG9ydFNjaGVkdWxlLCAnYXQgaW5kZXg6JywgaW5kZXgpO1xuICAgIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyA9IHRoaXMuc2VsZWN0ZWRNZXNzYWdlcy5tYXAoKG1zZywgaSkgPT4ge1xuICAgICAgaWYgKGkgPT09IGluZGV4KSB7XG4gICAgICAgIHJldHVybiB7IC4uLnJlcG9ydFNjaGVkdWxlLCBJc1Rhc2tEYXRhU291cmNlOiBmYWxzZSwgSXNNZXNzYWdlSWQ6IHRydWUgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtc2c7XG4gICAgfSk7XG4gIH1cblxuICBpc1ZhbGlkU2VsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTWVzc2FnZXMuZXZlcnkoKG1zZykgPT4gISFtc2cpO1xuICB9XG5cbiAgYXN5bmMgc2F2ZU1lc3NhZ2VzKCkge1xuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyk7XG4gICAgY29uc3QgdGFza05vdGlmaWNhdGlvbnM6IFRhc2tOb3RpZmljYXRpb25bXSA9IHRoaXMuc2VsZWN0ZWRNZXNzYWdlc1xuICAgICAgLmZpbHRlcigobXNnKSA9PiAhIW1zZylcbiAgICAgIC5tYXAoKG1zZykgPT4gKHtcbiAgICAgICAgSWQ6ICcnLFxuICAgICAgICBDb2RlOiAnJyxcbiAgICAgICAgVGVuYW50SWQ6ICcnLFxuICAgICAgICBNZXNzYWdlOiBtc2cuQ29kZSxcbiAgICAgICAgTmFtZTogbXNnLk5hbWUsXG4gICAgICAgIFN1YmplY3Q6IG1zZy5TdWJqZWN0LFxuICAgICAgICBTZW5kZXJDb25maWc6IG1zZy5NZXNzYWdlQ29uZmlnLFxuICAgICAgICBNZWRpdW06IG1zZy5NZWRpdW0sXG4gICAgICAgIE5vdGlmaWNhdGlvblR5cGU6IFRhc2tOb3RpZmljYXRpb25UeXBlLkVzY2FsYXRpb24sXG4gICAgICAgIElzTWVzc2FnZUlkOiBtc2cuSXNNZXNzYWdlSWQsXG4gICAgICAgIElzVGFza0RhdGFTb3VyY2U6IG1zZy5Jc1Rhc2tEYXRhU291cmNlLFxuICAgICAgICBNZXNzYWdlRGF0YVNvdXJjZTogIW1zZy5Jc1Rhc2tEYXRhU291cmNlID8gbXNnLlJlcG9ydERhdGFTb3VyY2UgOiAnJyxcbiAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5OZXcsXG4gICAgICAgIGlkOiAnJyxcbiAgICAgICAgU2VydmljZU5hbWU6ICcnLFxuICAgICAgICBDcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgIFVwZGF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgIH0pKTtcblxuICAgIC8vIGlmICh0YXNrTm90aWZpY2F0aW9ucy5sZW5ndGgpIHtcbiAgICAvLyB0aGlzLmNyZWF0ZWQuZW1pdCh0YXNrTm90aWZpY2F0aW9ucyk7XG4gICAgY29uc29sZS5sb2codGFza05vdGlmaWNhdGlvbnMpO1xuICAgIHRoaXMub25EaWFsb2dDbG9zZShudWxsKTtcbiAgICBjb25zdCBkYXRhOiBQYXJ0aWFsPEVzY2FsYXRpb24+ID0ge1xuICAgICAgLi4uKHRoaXMuZXNjYWxhdGlvbigpID8/IHtcbiAgICAgICAgSWQ6ICcnLFxuICAgICAgICBDb2RlOiAnJyxcbiAgICAgICAgVGVuYW50SWQ6ICdQRExUQzYnLFxuICAgICAgICBXb3JrZmxvdzogdGhpcy53b3JrZmxvd0NvZGUoKSxcbiAgICAgICAgU3RhZ2U6IHRoaXMuc3RhZ2VDb2RlKCksXG4gICAgICAgIFR5cGU6IHRoaXMudHlwZSgpLFxuICAgICAgICBFeHBpcmF0aW9uV2FybmluZzogMCxcbiAgICAgICAgRHVyYXRpb246IDAsXG4gICAgICAgIE5vdGlmeUFmdGVyOiAwLFxuICAgICAgICBQb3NpdGlvbjogMSxcbiAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5OZXcsXG4gICAgICB9KSxcbiAgICAgIC8vIE9wZXJhdGlvbkFjdGlvbjogdGhpcy5zZWxlY3RlZE9wZXJhdGlvbkFjdGlvbi5nZXRWYWx1ZSgpLFxuICAgICAgTWVzc2FnZXM6IHRhc2tOb3RpZmljYXRpb25zLm1hcCgoeyBDb2RlIH0pID0+IENvZGUpLFxuICAgICAgRnVsbE1lc3NhZ2VzOiB0YXNrTm90aWZpY2F0aW9ucyxcbiAgICB9O1xuICAgIGNvbnNvbGUubG9nKFwiU2F2aW5nIGVzY2FsYXRpb24gZGF0YTpcIiwgZGF0YSk7XG4gICAgdGhpcy5kYXRhU2VydmljZS5zYXZlRXNjYWxhdGlvbnMoW2RhdGFdKS50aGVuKChkYXRhKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhcIkVzY2FsYXRpb24gc2F2ZWQ6XCIsIGRhdGEpO1xuICAgICAgdGhpcy5lc2NhbGF0aW9uLnNldChkYXRhPy5bMF0gPz8gbnVsbCk7XG4gICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNob3dTdWNjZXNzKCdFc2NhbGF0aW9uIHNhdmVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgdGhpcy5vbkRpYWxvZ0Nsb3NlKG51bGwpO1xuICAgIH0pO1xuICAgIC8vIH1cbiAgfVxuXG4gIGRlbGV0ZUVzY2FsYXRpb24oKSB7XG4gICAgY29uc3QgZXNjYWxhdGlvbiA9IHRoaXMuZXNjYWxhdGlvbigpO1xuICAgIGlmIChlc2NhbGF0aW9uKSB7XG4gICAgICB0aGlzLmRhdGFTZXJ2aWNlLmRlbGV0ZUVzY2FsYXRpb25zKFtlc2NhbGF0aW9uLkNvZGVdKS50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiRXNjYWxhdGlvbiBkZWxldGVkOlwiLCBkYXRhKTtcbiAgICAgICAgdGhpcy5lc2NhbGF0aW9uLnNldChudWxsKTtcbiAgICAgICAgdGhpcy5vbkRpYWxvZ0Nsb3NlKG51bGwpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRXNjYWxhdGlvbihzdGFnZUNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNlcnZpY2UuZ2V0RXNjYWxhdGlvbldpdGhQYXJhbShzdGFnZUNvZGUpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuZXNjYWxhdGlvbi5zZXQoZGF0YS5SZXN1bHRbMF0gPz8gbnVsbCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNlYXJjaEVzY2FsYXRpb24oXG4gICAgV29ya2Zsb3c6IHN0cmluZyxcbiAgICBTdGFnZTogc3RyaW5nLFxuICAgIFR5cGU6IEVzY2FsYXRpb25UeXBlXG4gICk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNlcnZpY2VcbiAgICAgIC5zZWFyY2hFc2NhbGF0aW9uV2l0aFBhcmFtKHtcbiAgICAgICAgV29ya2Zsb3csXG4gICAgICAgIFN0YWdlLFxuICAgICAgICBUeXBlLFxuICAgICAgfSlcbiAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuZXNjYWxhdGlvbi5zZXQoZGF0YS5SZXN1bHRbMF0gPz8gbnVsbCk7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiRXNjYWxhdGlvbiBsb2FkZWQ6XCIsIHRoaXMuZXNjYWxhdGlvbigpKTtcbiAgICAgICAgLy8gdGhpcy5zZWxlY3RlZE9wZXJhdGlvbkFjdGlvbi5uZXh0KGRhdGEuUmVzdWx0WzBdPy5PcGVyYXRpb25BY3Rpb24gPz8gbnVsbCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFJlcG9ydFNjaGVkdWxlcygpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmdldFJlcG9ydFNjaGVkdWxlcygpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIHRoaXMucmVwb3J0U2NoZWR1bGVzLnNldChkYXRhLlJlc3VsdCk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBwcml2YXRlIGxvYWRPcGVyYXRpb25BY3Rpb25zKCk6IHZvaWQge1xuICAvLyAgIHRoaXMuZGF0YVNlcnZpY2UuZ2V0T3BlcmF0aW9uQWN0aW9ucygpLnRoZW4oKGRhdGEpID0+IHtcbiAgLy8gICAgIHRoaXMub3BlcmF0aW9uQWN0aW9ucy5zZXQoZGF0YS5SZXN1bHQpO1xuICAvLyAgIH0pO1xuICAvLyB9XG5cbiAgb25EaWFsb2dDbG9zZShldmVudERhdGE6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKCdEaWFsb2cgY2xvc2VkLCByZWNlaXZlZCBkYXRhOicsIGV2ZW50RGF0YSk7XG4gICAgdGhpcy5lc2NhbGF0aW9uLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkTWVzc2FnZXMgPSBbXTtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gIH1cblxuICBvbkRpYWxvZ09wZW4oZXZlbnREYXRhOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZygnRGlhbG9nIG9wZW5lZCwgcmVjZWl2ZWQgZGF0YTonLCBldmVudERhdGEpO1xuICB9XG5cbiAgaXNOb3ROZXcoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZXNjYWxhdGlvbiA9IHRoaXMuZXNjYWxhdGlvbigpO1xuICAgIHJldHVybiBlc2NhbGF0aW9uICE9PSBudWxsICYmIGVzY2FsYXRpb24uRGF0YVN0YXRlICE9PSAnTmV3JztcbiAgfVxufVxuIiwiPHZlcmJlbi1kaWFsb2d1ZSBbc2hvd0Nsb3NlSWNvbl09XCJ0cnVlXCIgW2Rpc21pc3NPdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiIFtjbG9zZU9uRXNjYXBlXT1cInRydWVcIiBbc2l6ZV09XCInbWVkaXVtJ1wiXG4gIFttb2RlXT1cIidkcmF3ZXInXCIgW2Rpc2FibGVGb290ZXJdPVwiZmFsc2VcIiBbaXNWaXNpYmxlXT1cInZpc2libGVcIiBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxuICBbYm9keVRlbXBsYXRlXT1cImJvZHlUZW1wbGF0ZVwiIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiIChvcGVuTW9kYWwpPVwib25EaWFsb2dPcGVuKCRldmVudClcIlxuICAoY2xvc2VNb2RhbCk9XCJvbkRpYWxvZ0Nsb3NlKCRldmVudClcIj5cbjwvdmVyYmVuLWRpYWxvZ3VlPlxuXG48bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyB0ZXh0LXhzIGJvcmRlci1iLTQgYm9yZGVyLVsjRkZFNjgxXVwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJtci00XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkRpYWxvZ0Nsb3NlKCRldmVudClcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYmxvY2sgdy0yLjUgaC0yLjUgYm9yZGVyLXQgYm9yZGVyLWwgYm9yZGVyLVsjM0UzRTNFXS83MCB0cmFuc2Zvcm0gLXJvdGF0ZS00NVwiPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZT5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItNCBzcGFjZS15LTRcIj5cbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwib3BlcmF0aW9uLWFjdGlvblwiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtWyMzRTNFM0VdXCI+XG4gICAgICAgICAgRXNjYWxhdGlvblxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgICAgaWQ9XCJvcGVyYXRpb24tYWN0aW9uXCJcbiAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBPcGVyYXRpb24gQWN0aW9uXCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIm9wZXJhdGlvbkFjdGlvbnMoKVwiXG4gICAgICAgICAgICBvcHRpb25MYWJlbD1cIk5hbWVcIlxuICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJDb2RlXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkT3BlcmF0aW9uQWN0aW9uIHwgYXN5bmNcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0ZWRPcGVyYXRpb25BY3Rpb24ubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICA+PC92ZXJiZW4tZHJvcC1kb3duPlxuICAgICAgPC9kaXY+IC0tPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic3BhY2UteS00XCIgKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2Ygc2VsZWN0ZWRNZXNzYWdlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgICAgICAgPGxhYmVsIFtmb3JdPVwibWVzc2FnZSArICctJyArIGlcIiBjbGFzcz1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LVsjM0UzRTNFXVwiPlxuICAgICAgICAgICAgTWVzc2FnZSB7eyBpICsgMSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPHZlcmJlbi1kcm9wLWRvd24gW2lkXT1cIm1lc3NhZ2UgKyAnLScgKyBpXCIgc2VsZWN0S2V5PVwiQ29kZVwiIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIiB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cImZhbHNlXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgTWVzc2FnZVwiIFtvcHRpb25zXT1cInJlcG9ydFNjaGVkdWxlcygpXCIgb3B0aW9uTGFiZWw9XCJOYW1lXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cIm1lc3NhZ2VcIiAobmdNb2RlbENoYW5nZSk9XCJvbk1lc3NhZ2VTZWxlY3RlZCgkZXZlbnQsIGkpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj48L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAobWVzc2FnZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICA8bGFiZWwgW2Zvcl09XCInaXMtJyArIG1lc3NhZ2UgKyAnLScgKyBpICsgJ3Rhc2stZGF0YS1zb3VyY2UnXCIgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1bIzNFM0UzRV1cIj5cbiAgICAgICAgICAgIElzIFRhc2sgRGF0YSBTb3VyY2U/XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8dmVyYmVuYS1zd2l0Y2ggW2lkXT1cIidpcy0nICsgbWVzc2FnZSArICctJyArIGkgKyAndGFzay1kYXRhLXNvdXJjZSdcIiBvblRleHQ9XCJZZXNcIiBvZmZUZXh0PVwiTm9cIlxuICAgICAgICAgICAgW29uQ29sb3JdPVwiJyMxQTIzN0UnXCIgWyhuZ01vZGVsKV09XCJtZXNzYWdlLklzVGFza0RhdGFTb3VyY2VcIj48L3ZlcmJlbmEtc3dpdGNoPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICA8bGFiZWwgW2Zvcl09XCInaXMtJyArIG1lc3NhZ2UgKyAnLScgKyBpICsgJ2lzLW1lc3NhZ2UtaWQnXCIgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1bIzNFM0UzRV1cIj5cbiAgICAgICAgICAgIElzIE1lc3NhZ2UgSUQ/XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8dmVyYmVuYS1zd2l0Y2ggW2lkXT1cIidpcy0nICsgbWVzc2FnZSArICctJyArIGkgKyAnaXMtbWVzc2FnZS1pZCdcIiBvblRleHQ9XCJZZXNcIiBvZmZUZXh0PVwiTm9cIlxuICAgICAgICAgICAgW29uQ29sb3JdPVwiJyMxQTIzN0UnXCIgWyhuZ01vZGVsKV09XCJtZXNzYWdlLklzTWVzc2FnZUlkXCI+PC92ZXJiZW5hLXN3aXRjaD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci1wcmltYXJ5IC1tLTIgcm91bmRlZC1sZyBmbGV4IGZsZXgtY29sIGdhcC0zXCIgKm5nSWY9XCJtZXNzYWdlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktMyBib3JkZXItYiBib3JkZXItcHJpbWFyeSBweC0yIHB5LTNcIj5cbiAgICAgICAgICAgIDx2ZXJiZW5hLWlucHV0IG5hbWU9XCJTdWJqZWN0XCIgWyhuZ01vZGVsKV09XCJtZXNzYWdlLlN1YmplY3RcIiBbcmVhZE9ubHldPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICA8dmVyYmVuYS1pbnB1dCBuYW1lPVwiUmVjaXBpZW50c1wiIFsobmdNb2RlbCldPVwibWVzc2FnZS5SZWNpcGllbnRzXCIgW3JlYWRPbmx5XT1cInRydWVcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxsaWItZWRpdG9yIFtlZGl0b3JDb25maWddPVwiZWRpdG9yQ29uZmlnXCIgW2VkaXRvck1vZGVdPVwiZWRpdG9yTW9kZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuUGxhaW5NZXNzYWdlXCI+PC9saWItZWRpdG9yPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgZ2FwLTggdy1mdWxsXCI+XG4gICAgPHZlcmJlbmEtYnV0dG9uIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCIgdHlwZT1cImJ1dHRvblwiIHRleHQ9XCJBZGQgTWVzc2FnZVwiIGJnQ29sb3I9XCIjRkZFNjgxXCIgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICBib3JkZXJSYWRpdXM9XCI4cHhcIiBwZD1cIjEwcHggMjBweFwiIGhlaWdodD1cIjM5cHhcIiBmb250V2VpZ2h0PVwiNjAwXCIgZm9udFNpemU9XCIxMnB4XCIgc3ZnPVwiYWRkXCIgW3N2Z0hlaWdodF09XCIxNFwiXG4gICAgICBbc3ZnV2lkdGhdPVwiMTRcIiBbc3ZnU2l6ZV09XCInc20nXCIgKGNsaWNrKT1cImFkZE1lc3NhZ2UoKVwiPjwvdmVyYmVuYS1idXR0b24+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDx2ZXJiZW5hLWJ1dHRvbiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiIHR5cGU9XCJidXR0b25cIiB0ZXh0PVwiRGVsZXRlXCIgYmdDb2xvcj1cIiNGRkU2ODFcIiB0ZXh0Q29sb3I9XCIjNDA0MDQwXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiOHB4XCIgcGQ9XCIxMHB4IDIwcHhcIiB3aWR0aD1cIjExMHB4XCIgaGVpZ2h0PVwiMzlweFwiIGZvbnRXZWlnaHQ9XCI2MDBcIiBmb250U2l6ZT1cIjEycHhcIiBzdmc9XCJkZWxldGVcIlxuICAgICAgICBbc3ZnSGVpZ2h0XT1cIjE0XCIgW3N2Z1dpZHRoXT1cIjE0XCIgW3N2Z1NpemVdPVwiJ3NtJ1wiIChjbGljayk9XCJkZWxldGVFc2NhbGF0aW9uKClcIj48L3ZlcmJlbmEtYnV0dG9uPlxuXG4gICAgICA8dmVyYmVuYS1idXR0b24gc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgdGV4dD1cIlNhdmVcIiBiZ0NvbG9yPVwiI0ZGRTY4MVwiIHRleHRDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCI4cHhcIiBwZD1cIjEwcHggMjBweFwiIHdpZHRoPVwiMTYwcHhcIiBoZWlnaHQ9XCIzOXB4XCIgZm9udFdlaWdodD1cIjYwMFwiIGZvbnRTaXplPVwiMTJweFwiIHN2Zz1cInNlbmRcIlxuICAgICAgICBbc3ZnSGVpZ2h0XT1cIjE0XCIgW3N2Z1dpZHRoXT1cIjE0XCIgW3N2Z1NpemVdPVwiJ3NtJ1wiIChjbGljayk9XCJzYXZlTWVzc2FnZXMoKVwiPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYWxhdGlvbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1kZXNpZ25lci9lc2NhbGF0aW9uLWRpYWxvZy9lc2NhbGF0aW9uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL2VzY2FsYXRpb24tZGlhbG9nL2VzY2FsYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFnQixVQUFVLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RSxPQUFPLEVBQThCLFdBQVcsRUFBb0Msb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7QUFTcEosTUFBTSxPQUFPLHlCQUF5QjtJQXdEMUI7SUFDQTtJQUNBO0lBekRELE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDbEMsWUFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUN4QyxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3JDLElBQUksR0FBRyxLQUFLLEVBQWtCLENBQUM7SUFFckIsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFNLENBQUM7SUFFM0MsVUFBVSxHQUFzQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFN0Qsa0JBQWtC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ekIseUJBQXlCLCtuQkN0QnRDLDYzSkE4RkE7OzRGRHhFYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsdUJBQXVCOzRJQUt4QixPQUFPO3NCQUFmLEtBQUs7Z0JBS0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbnB1dCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRWRpdG9yQ29uZmlnLCBFZGl0b3JNb2RlLCBFZGl0b3JTdGF0ZSB9IGZyb20gJ3ZlcmJlbi1yZXBvcnRpbmctdWknO1xuaW1wb3J0IHsgRXNjYWxhdGlvbiwgRXNjYWxhdGlvblR5cGUsIE9iamVjdFN0YXRlLCBSZXBvcnRTY2hlZHVsZSwgVGFza05vdGlmaWNhdGlvbiwgVGFza05vdGlmaWNhdGlvblR5cGUgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBXb3JrZmxvd0RhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctZGF0YS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWVzY2FsYXRpb24tZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VzY2FsYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VzY2FsYXRpb24tZGlhbG9nLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBFc2NhbGF0aW9uRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICB3b3JrZmxvd0NvZGUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIHN0YWdlQ29kZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgdHlwZSA9IGlucHV0PEVzY2FsYXRpb25UeXBlPigpO1xuXG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjcmVhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7fT4oKTtcblxuICBlc2NhbGF0aW9uOiBXcml0YWJsZVNpZ25hbDxFc2NhbGF0aW9uIHwgbnVsbD4gPSBzaWduYWwobnVsbCk7XG5cbiAgLy8gZXNjYWxhdGlvbkZvcm07XG4gIHJlcG9ydFNjaGVkdWxlczogV3JpdGFibGVTaWduYWw8UmVwb3J0U2NoZWR1bGVbXT4gPSBzaWduYWwoW10pO1xuICAvLyBvcGVyYXRpb25BY3Rpb25zOiBXcml0YWJsZVNpZ25hbDxPcGVyYXRpb25BY3Rpb25bXT4gPSBzaWduYWwoW10pO1xuXG4gIC8vIHNlbGVjdGVkT3BlcmF0aW9uQWN0aW9uOiBCZWhhdmlvclN1YmplY3Q8T3BlcmF0aW9uQWN0aW9uW1wiQ29kZVwiXSB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPcGVyYXRpb25BY3Rpb25bXCJDb2RlXCJdIHwgbnVsbD4obnVsbCk7XG5cbiAgLy8gc2VsZWN0ZWRNZXNzYWdlczogV3JpdGFibGVTaWduYWw8XG4gIC8vICAgKChSZXBvcnRTY2hlZHVsZSAmIHsgSXNUYXNrRGF0YVNvdXJjZTogYm9vbGVhbiB9KSB8IG51bGwpW11cbiAgLy8gPiA9IHNpZ25hbChbXSk7XG5cbiAgc2VsZWN0ZWRNZXNzYWdlczogKChSZXBvcnRTY2hlZHVsZSAmIHsgSXNUYXNrRGF0YVNvdXJjZTogYm9vbGVhbjsgSXNNZXNzYWdlSWQ6IGJvb2xlYW47IH0pIHwgbnVsbClbXSA9IFtdO1xuXG4gIGVkaXRvck1vZGU6IEVkaXRvck1vZGUgPSBFZGl0b3JNb2RlLkRlc2lnbmVyO1xuICBlZGl0b3JDb25maWc6IEVkaXRvckNvbmZpZyA9IHtcbiAgICBlZGl0YWJsZTogdHJ1ZSxcbiAgICBoZWlnaHQ6ICcnLFxuICAgIHdpZHRoOiAnJyxcbiAgICBzaG93VG9vbGJhcjogdHJ1ZSxcbiAgICBtZW51SXRlbXM6IFtcbiAgICAgIHtcbiAgICAgICAgTGFiZWw6ICdUb2dnbGVWaWV3JyxcbiAgICAgICAgSWNvbjogJ2NvZGUtdG9nZ2xlJyxcbiAgICAgICAgSWNvbldpZHRoOiAyMCxcbiAgICAgICAgSWNvbkhlaWdodDogMjAsXG4gICAgICAgIElzU3Ryb2tlOiBmYWxzZSxcbiAgICAgICAgR3JvdXBCeTogJ2xvY2FsJyxcbiAgICAgICAgT25DbGljazogKGV2ZW50OiBFZGl0b3JTdGF0ZSB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgIHRoaXMuZWRpdG9yTW9kZSA9XG4gICAgICAgICAgICB0aGlzLmVkaXRvck1vZGUgPT0gRWRpdG9yTW9kZS5EZXNpZ25lclxuICAgICAgICAgICAgICA/IEVkaXRvck1vZGUuQ29kZVxuICAgICAgICAgICAgICA6IEVkaXRvck1vZGUuRGVzaWduZXI7XG4gICAgICAgIH0sXG4gICAgICAgIElzRGlzYWJsZWQ6IChldmVudDogRWRpdG9yU3RhdGUgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIElzRW5hYmxlZDogKGV2ZW50OiBFZGl0b3JTdGF0ZSB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmVkaXRvck1vZGUgPT0gRWRpdG9yTW9kZS5Db2RlO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xuXG4gIC8vIElzVGFza0RhdGFTb3VyY2U6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW5bXT4gPSBzaWduYWwoW10pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IFdvcmtmbG93RGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1dGlsU2VydmljZTogVXRpbFNlcnZpY2VcbiAgKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHN0YWdlQ29kZSA9IHRoaXMuc3RhZ2VDb2RlKCk7XG4gICAgICBjb25zdCB3b3JrZmxvd0NvZGUgPSB0aGlzLndvcmtmbG93Q29kZSgpO1xuICAgICAgY29uc3QgdHlwZSA9IHRoaXMudHlwZSgpO1xuICAgICAgY29uc29sZS5sb2coJ1N0YWdlIGNvZGUgY2hhbmdlZDonLCBzdGFnZUNvZGUpO1xuICAgICAgaWYgKHdvcmtmbG93Q29kZSAmJiBzdGFnZUNvZGUgJiYgdHlwZSkge1xuICAgICAgICAvLyB0aGlzLmxvYWRFc2NhbGF0aW9uKHN0YWdlQ29kZSk7XG4gICAgICAgIHRoaXMuc2VhcmNoRXNjYWxhdGlvbih3b3JrZmxvd0NvZGUsIHN0YWdlQ29kZSwgdHlwZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZXNjYWxhdGlvbiA9IHRoaXMuZXNjYWxhdGlvbigpO1xuICAgICAgY29uc3QgcmVwb3J0U2NoZWR1bGVzID0gdGhpcy5yZXBvcnRTY2hlZHVsZXMoKTtcblxuICAgICAgaWYgKGVzY2FsYXRpb24gJiYgcmVwb3J0U2NoZWR1bGVzKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyA9IGVzY2FsYXRpb24uRnVsbE1lc3NhZ2VzLm1hcCgoeyBNZXNzYWdlLCBJc1Rhc2tEYXRhU291cmNlLCBJc01lc3NhZ2VJZCB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgZm91bmQgPSByZXBvcnRTY2hlZHVsZXMuZmluZCgocnMpID0+IHJzLkNvZGUgPT09IE1lc3NhZ2UpO1xuICAgICAgICAgIHJldHVybiBmb3VuZCA/IHsgLi4uZm91bmQsIElzVGFza0RhdGFTb3VyY2UsIElzTWVzc2FnZUlkIH0gOiBudWxsO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gdGhpcy5zZWxlY3RlZE9wZXJhdGlvbkFjdGlvbi5uZXh0KGVzY2FsYXRpb24uT3BlcmF0aW9uQWN0aW9uID8/IG51bGwpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlNFVFRJTkcgT1BcIiwgdGhpcy5zZWxlY3RlZE9wZXJhdGlvbkFjdGlvbik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyB0aGlzLmVzY2FsYXRpb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgLy8gICBNZXNzYWdlczogdGhpcy5mYi5hcnJheShbXSksXG4gICAgLy8gfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRSZXBvcnRTY2hlZHVsZXMoKTtcbiAgICAvLyB0aGlzLmxvYWRPcGVyYXRpb25BY3Rpb25zKCk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZE1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hZGRNZXNzYWdlKCk7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coXG4gICAgICAnRXNjYWxhdGlvbkRpYWxvZ0NvbXBvbmVudCBpbml0aWFsaXplZCB3aXRoIHN0YWdlQ29kZTonLFxuICAgICAgdGhpcy5zdGFnZUNvZGVcbiAgICApO1xuICAgIC8vIGNvbnNvbGUubG9nKCdFc2NhbGF0aW9uRGlhbG9nQ29tcG9uZW50IHR5cGU6JywgdGhpcy50eXBlKTtcbiAgfVxuXG4gIC8vIGdldCBtZXNzYWdlcygpIHtcbiAgLy8gICByZXR1cm4gdGhpcy5lc2NhbGF0aW9uRm9ybS5jb250cm9sc1snTWVzc2FnZXMnXSBhcyBGb3JtQXJyYXk7XG4gIC8vIH1cblxuICBhZGRNZXNzYWdlKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyA9IHRoaXMuc2VsZWN0ZWRNZXNzYWdlcy5jb25jYXQoW251bGxdKTtcbiAgfVxuXG4gIGRlbGV0ZU1lc3NhZ2UobGVzc29uSW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyA9IHRoaXMuc2VsZWN0ZWRNZXNzYWdlcy5zcGxpY2UobGVzc29uSW5kZXgsIDEpO1xuICB9XG5cbiAgb25NZXNzYWdlU2VsZWN0ZWQocmVwb3J0U2NoZWR1bGU6IFJlcG9ydFNjaGVkdWxlLCBpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc29sZS5sb2coJ1NlbGVjdGVkIG1lc3NhZ2U6JywgcmVwb3J0U2NoZWR1bGUsICdhdCBpbmRleDonLCBpbmRleCk7XG4gICAgdGhpcy5zZWxlY3RlZE1lc3NhZ2VzID0gdGhpcy5zZWxlY3RlZE1lc3NhZ2VzLm1hcCgobXNnLCBpKSA9PiB7XG4gICAgICBpZiAoaSA9PT0gaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIHsgLi4ucmVwb3J0U2NoZWR1bGUsIElzVGFza0RhdGFTb3VyY2U6IGZhbHNlLCBJc01lc3NhZ2VJZDogdHJ1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1zZztcbiAgICB9KTtcbiAgfVxuXG4gIGlzVmFsaWRTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcy5ldmVyeSgobXNnKSA9PiAhIW1zZyk7XG4gIH1cblxuICBhc3luYyBzYXZlTWVzc2FnZXMoKSB7XG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZE1lc3NhZ2VzKTtcbiAgICBjb25zdCB0YXNrTm90aWZpY2F0aW9uczogVGFza05vdGlmaWNhdGlvbltdID0gdGhpcy5zZWxlY3RlZE1lc3NhZ2VzXG4gICAgICAuZmlsdGVyKChtc2cpID0+ICEhbXNnKVxuICAgICAgLm1hcCgobXNnKSA9PiAoe1xuICAgICAgICBJZDogJycsXG4gICAgICAgIENvZGU6ICcnLFxuICAgICAgICBUZW5hbnRJZDogJycsXG4gICAgICAgIE1lc3NhZ2U6IG1zZy5Db2RlLFxuICAgICAgICBOYW1lOiBtc2cuTmFtZSxcbiAgICAgICAgU3ViamVjdDogbXNnLlN1YmplY3QsXG4gICAgICAgIFNlbmRlckNvbmZpZzogbXNnLk1lc3NhZ2VDb25maWcsXG4gICAgICAgIE1lZGl1bTogbXNnLk1lZGl1bSxcbiAgICAgICAgTm90aWZpY2F0aW9uVHlwZTogVGFza05vdGlmaWNhdGlvblR5cGUuRXNjYWxhdGlvbixcbiAgICAgICAgSXNNZXNzYWdlSWQ6IG1zZy5Jc01lc3NhZ2VJZCxcbiAgICAgICAgSXNUYXNrRGF0YVNvdXJjZTogbXNnLklzVGFza0RhdGFTb3VyY2UsXG4gICAgICAgIE1lc3NhZ2VEYXRhU291cmNlOiAhbXNnLklzVGFza0RhdGFTb3VyY2UgPyBtc2cuUmVwb3J0RGF0YVNvdXJjZSA6ICcnLFxuICAgICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLk5ldyxcbiAgICAgICAgaWQ6ICcnLFxuICAgICAgICBTZXJ2aWNlTmFtZTogJycsXG4gICAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgVXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgfSkpO1xuXG4gICAgLy8gaWYgKHRhc2tOb3RpZmljYXRpb25zLmxlbmd0aCkge1xuICAgIC8vIHRoaXMuY3JlYXRlZC5lbWl0KHRhc2tOb3RpZmljYXRpb25zKTtcbiAgICBjb25zb2xlLmxvZyh0YXNrTm90aWZpY2F0aW9ucyk7XG4gICAgdGhpcy5vbkRpYWxvZ0Nsb3NlKG51bGwpO1xuICAgIGNvbnN0IGRhdGE6IFBhcnRpYWw8RXNjYWxhdGlvbj4gPSB7XG4gICAgICAuLi4odGhpcy5lc2NhbGF0aW9uKCkgPz8ge1xuICAgICAgICBJZDogJycsXG4gICAgICAgIENvZGU6ICcnLFxuICAgICAgICBUZW5hbnRJZDogJycsXG4gICAgICAgIFdvcmtmbG93OiB0aGlzLndvcmtmbG93Q29kZSgpLFxuICAgICAgICBTdGFnZTogdGhpcy5zdGFnZUNvZGUoKSxcbiAgICAgICAgVHlwZTogdGhpcy50eXBlKCksXG4gICAgICAgIEV4cGlyYXRpb25XYXJuaW5nOiAwLFxuICAgICAgICBEdXJhdGlvbjogMCxcbiAgICAgICAgTm90aWZ5QWZ0ZXI6IDAsXG4gICAgICAgIFBvc2l0aW9uOiAxLFxuICAgICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLk5ldyxcbiAgICAgIH0pLFxuICAgICAgLy8gT3BlcmF0aW9uQWN0aW9uOiB0aGlzLnNlbGVjdGVkT3BlcmF0aW9uQWN0aW9uLmdldFZhbHVlKCksXG4gICAgICBNZXNzYWdlczogdGFza05vdGlmaWNhdGlvbnMubWFwKCh7IENvZGUgfSkgPT4gQ29kZSksXG4gICAgICBGdWxsTWVzc2FnZXM6IHRhc2tOb3RpZmljYXRpb25zLFxuICAgIH07XG4gICAgY29uc29sZS5sb2coXCJTYXZpbmcgZXNjYWxhdGlvbiBkYXRhOlwiLCBkYXRhKTtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLnNhdmVFc2NhbGF0aW9ucyhbZGF0YV0pLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKFwiRXNjYWxhdGlvbiBzYXZlZDpcIiwgZGF0YSk7XG4gICAgICB0aGlzLmVzY2FsYXRpb24uc2V0KGRhdGE/LlswXSA/PyBudWxsKTtcbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd1N1Y2Nlc3MoJ0VzY2FsYXRpb24gc2F2ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICB0aGlzLm9uRGlhbG9nQ2xvc2UobnVsbCk7XG4gICAgfSk7XG4gICAgLy8gfVxuICB9XG5cbiAgZGVsZXRlRXNjYWxhdGlvbigpIHtcbiAgICBjb25zdCBlc2NhbGF0aW9uID0gdGhpcy5lc2NhbGF0aW9uKCk7XG4gICAgaWYgKGVzY2FsYXRpb24pIHtcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UuZGVsZXRlRXNjYWxhdGlvbnMoW2VzY2FsYXRpb24uQ29kZV0pLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coXCJFc2NhbGF0aW9uIGRlbGV0ZWQ6XCIsIGRhdGEpO1xuICAgICAgICB0aGlzLmVzY2FsYXRpb24uc2V0KG51bGwpO1xuICAgICAgICB0aGlzLm9uRGlhbG9nQ2xvc2UobnVsbCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRFc2NhbGF0aW9uKHN0YWdlQ29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhU2VydmljZS5nZXRFc2NhbGF0aW9uV2l0aFBhcmFtKHN0YWdlQ29kZSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5lc2NhbGF0aW9uLnNldChkYXRhLlJlc3VsdFswXSA/PyBudWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2VhcmNoRXNjYWxhdGlvbihcbiAgICBXb3JrZmxvdzogc3RyaW5nLFxuICAgIFN0YWdlOiBzdHJpbmcsXG4gICAgVHlwZTogRXNjYWxhdGlvblR5cGVcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhU2VydmljZVxuICAgICAgLnNlYXJjaEVzY2FsYXRpb25XaXRoUGFyYW0oe1xuICAgICAgICBXb3JrZmxvdyxcbiAgICAgICAgU3RhZ2UsXG4gICAgICAgIFR5cGUsXG4gICAgICB9KVxuICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5lc2NhbGF0aW9uLnNldChkYXRhLlJlc3VsdFswXSA/PyBudWxsKTtcbiAgICAgICAgY29uc29sZS5sb2coXCJFc2NhbGF0aW9uIGxvYWRlZDpcIiwgdGhpcy5lc2NhbGF0aW9uKCkpO1xuICAgICAgICAvLyB0aGlzLnNlbGVjdGVkT3BlcmF0aW9uQWN0aW9uLm5leHQoZGF0YS5SZXN1bHRbMF0/Lk9wZXJhdGlvbkFjdGlvbiA/PyBudWxsKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUmVwb3J0U2NoZWR1bGVzKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNlcnZpY2UuZ2V0UmVwb3J0U2NoZWR1bGVzKCkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5yZXBvcnRTY2hlZHVsZXMuc2V0KGRhdGEuUmVzdWx0KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIHByaXZhdGUgbG9hZE9wZXJhdGlvbkFjdGlvbnMoKTogdm9pZCB7XG4gIC8vICAgdGhpcy5kYXRhU2VydmljZS5nZXRPcGVyYXRpb25BY3Rpb25zKCkudGhlbigoZGF0YSkgPT4ge1xuICAvLyAgICAgdGhpcy5vcGVyYXRpb25BY3Rpb25zLnNldChkYXRhLlJlc3VsdCk7XG4gIC8vICAgfSk7XG4gIC8vIH1cblxuICBvbkRpYWxvZ0Nsb3NlKGV2ZW50RGF0YTogYW55KSB7XG4gICAgY29uc29sZS5sb2coJ0RpYWxvZyBjbG9zZWQsIHJlY2VpdmVkIGRhdGE6JywgZXZlbnREYXRhKTtcbiAgICB0aGlzLmVzY2FsYXRpb24uc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyA9IFtdO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uRGlhbG9nT3BlbihldmVudERhdGE6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKCdEaWFsb2cgb3BlbmVkLCByZWNlaXZlZCBkYXRhOicsIGV2ZW50RGF0YSk7XG4gIH1cblxuICBpc05vdE5ldygpOiBib29sZWFuIHtcbiAgICBjb25zdCBlc2NhbGF0aW9uID0gdGhpcy5lc2NhbGF0aW9uKCk7XG4gICAgcmV0dXJuIGVzY2FsYXRpb24gIT09IG51bGwgJiYgZXNjYWxhdGlvbi5EYXRhU3RhdGUgIT09ICdOZXcnO1xuICB9XG59XG4iLCI8dmVyYmVuLWRpYWxvZ3VlIFtzaG93Q2xvc2VJY29uXT1cInRydWVcIiBbZGlzbWlzc091dHNpZGVDbGlja109XCJ0cnVlXCIgW2Nsb3NlT25Fc2NhcGVdPVwidHJ1ZVwiIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgW21vZGVdPVwiJ2RyYXdlcidcIiBbZGlzYWJsZUZvb3Rlcl09XCJmYWxzZVwiIFtpc1Zpc2libGVdPVwidmlzaWJsZVwiIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXG4gIFtib2R5VGVtcGxhdGVdPVwiYm9keVRlbXBsYXRlXCIgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCIgKG9wZW5Nb2RhbCk9XCJvbkRpYWxvZ09wZW4oJGV2ZW50KVwiXG4gIChjbG9zZU1vZGFsKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiPlxuPC92ZXJiZW4tZGlhbG9ndWU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcC0zIHRleHQteHMgYm9yZGVyLWItNCBib3JkZXItWyNGRkU2ODFdXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm1yLTRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJibG9jayB3LTIuNSBoLTIuNSBib3JkZXItdCBib3JkZXItbCBib3JkZXItWyMzRTNFM0VdLzcwIHRyYW5zZm9ybSAtcm90YXRlLTQ1XCI+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYm9keVRlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi00IHNwYWNlLXktNFwiPlxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJvcGVyYXRpb24tYWN0aW9uXCIgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1bIzNFM0UzRV1cIj5cbiAgICAgICAgICBFc2NhbGF0aW9uXG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgICBpZD1cIm9wZXJhdGlvbi1hY3Rpb25cIlxuICAgICAgICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IE9wZXJhdGlvbiBBY3Rpb25cIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwib3BlcmF0aW9uQWN0aW9ucygpXCJcbiAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwiTmFtZVwiXG4gICAgICAgICAgICBvcHRpb25WYWx1ZT1cIkNvZGVcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRPcGVyYXRpb25BY3Rpb24gfCBhc3luY1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZE9wZXJhdGlvbkFjdGlvbi5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgID48L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICA8L2Rpdj4gLS0+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZS15LTRcIiAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBzZWxlY3RlZE1lc3NhZ2VzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJtZXNzYWdlICsgJy0nICsgaVwiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtWyMzRTNFM0VdXCI+XG4gICAgICAgICAgICBNZXNzYWdlIHt7IGkgKyAxIH19XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8dmVyYmVuLWRyb3AtZG93biBbaWRdPVwibWVzc2FnZSArICctJyArIGlcIiBzZWxlY3RLZXk9XCJDb2RlXCIgc3R5bGVDbGFzcz1cInctZnVsbFwiIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICBbbXVsdGlzZWxlY3RdPVwiZmFsc2VcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBNZXNzYWdlXCIgW29wdGlvbnNdPVwicmVwb3J0U2NoZWR1bGVzKClcIiBvcHRpb25MYWJlbD1cIk5hbWVcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwibWVzc2FnZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uTWVzc2FnZVNlbGVjdGVkKCRldmVudCwgaSlcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPjwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChtZXNzYWdlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidpcy0nICsgbWVzc2FnZSArICctJyArIGkgKyAndGFzay1kYXRhLXNvdXJjZSdcIiBjbGFzcz1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LVsjM0UzRTNFXVwiPlxuICAgICAgICAgICAgSXMgVGFzayBEYXRhIFNvdXJjZT9cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDx2ZXJiZW5hLXN3aXRjaCBbaWRdPVwiJ2lzLScgKyBtZXNzYWdlICsgJy0nICsgaSArICd0YXNrLWRhdGEtc291cmNlJ1wiIG9uVGV4dD1cIlllc1wiIG9mZlRleHQ9XCJOb1wiXG4gICAgICAgICAgICBbb25Db2xvcl09XCInIzFBMjM3RSdcIiBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuSXNUYXNrRGF0YVNvdXJjZVwiPjwvdmVyYmVuYS1zd2l0Y2g+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidpcy0nICsgbWVzc2FnZSArICctJyArIGkgKyAnaXMtbWVzc2FnZS1pZCdcIiBjbGFzcz1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LVsjM0UzRTNFXVwiPlxuICAgICAgICAgICAgSXMgTWVzc2FnZSBJRD9cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDx2ZXJiZW5hLXN3aXRjaCBbaWRdPVwiJ2lzLScgKyBtZXNzYWdlICsgJy0nICsgaSArICdpcy1tZXNzYWdlLWlkJ1wiIG9uVGV4dD1cIlllc1wiIG9mZlRleHQ9XCJOb1wiXG4gICAgICAgICAgICBbb25Db2xvcl09XCInIzFBMjM3RSdcIiBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuSXNNZXNzYWdlSWRcIj48L3ZlcmJlbmEtc3dpdGNoPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLXByaW1hcnkgLW0tMiByb3VuZGVkLWxnIGZsZXggZmxleC1jb2wgZ2FwLTNcIiAqbmdJZj1cIm1lc3NhZ2VcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2UteS0zIGJvcmRlci1iIGJvcmRlci1wcmltYXJ5IHB4LTIgcHktM1wiPlxuICAgICAgICAgICAgPHZlcmJlbmEtaW5wdXQgbmFtZT1cIlN1YmplY3RcIiBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuU3ViamVjdFwiIFtyZWFkT25seV09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgIDx2ZXJiZW5hLWlucHV0IG5hbWU9XCJSZWNpcGllbnRzXCIgWyhuZ01vZGVsKV09XCJtZXNzYWdlLlJlY2lwaWVudHNcIiBbcmVhZE9ubHldPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGxpYi1lZGl0b3IgW2VkaXRvckNvbmZpZ109XCJlZGl0b3JDb25maWdcIiBbZWRpdG9yTW9kZV09XCJlZGl0b3JNb2RlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5QbGFpbk1lc3NhZ2VcIj48L2xpYi1lZGl0b3I+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBnYXAtOCB3LWZ1bGxcIj5cbiAgICA8dmVyYmVuYS1idXR0b24gc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgdGV4dD1cIkFkZCBNZXNzYWdlXCIgYmdDb2xvcj1cIiNGRkU2ODFcIiB0ZXh0Q29sb3I9XCIjNDA0MDQwXCJcbiAgICAgIGJvcmRlclJhZGl1cz1cIjhweFwiIHBkPVwiMTBweCAyMHB4XCIgaGVpZ2h0PVwiMzlweFwiIGZvbnRXZWlnaHQ9XCI2MDBcIiBmb250U2l6ZT1cIjEycHhcIiBzdmc9XCJhZGRcIiBbc3ZnSGVpZ2h0XT1cIjE0XCJcbiAgICAgIFtzdmdXaWR0aF09XCIxNFwiIFtzdmdTaXplXT1cIidzbSdcIiAoY2xpY2spPVwiYWRkTWVzc2FnZSgpXCI+PC92ZXJiZW5hLWJ1dHRvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgPHZlcmJlbmEtYnV0dG9uIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCIgdHlwZT1cImJ1dHRvblwiIHRleHQ9XCJEZWxldGVcIiBiZ0NvbG9yPVwiI0ZGRTY4MVwiIHRleHRDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCI4cHhcIiBwZD1cIjEwcHggMjBweFwiIHdpZHRoPVwiMTEwcHhcIiBoZWlnaHQ9XCIzOXB4XCIgZm9udFdlaWdodD1cIjYwMFwiIGZvbnRTaXplPVwiMTJweFwiIHN2Zz1cImRlbGV0ZVwiXG4gICAgICAgIFtzdmdIZWlnaHRdPVwiMTRcIiBbc3ZnV2lkdGhdPVwiMTRcIiBbc3ZnU2l6ZV09XCInc20nXCIgKGNsaWNrKT1cImRlbGV0ZUVzY2FsYXRpb24oKVwiPjwvdmVyYmVuYS1idXR0b24+XG5cbiAgICAgIDx2ZXJiZW5hLWJ1dHRvbiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiIHR5cGU9XCJidXR0b25cIiB0ZXh0PVwiU2F2ZVwiIGJnQ29sb3I9XCIjRkZFNjgxXCIgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjhweFwiIHBkPVwiMTBweCAyMHB4XCIgd2lkdGg9XCIxNjBweFwiIGhlaWdodD1cIjM5cHhcIiBmb250V2VpZ2h0PVwiNjAwXCIgZm9udFNpemU9XCIxMnB4XCIgc3ZnPVwic2VuZFwiXG4gICAgICAgIFtzdmdIZWlnaHRdPVwiMTRcIiBbc3ZnV2lkdGhdPVwiMTRcIiBbc3ZnU2l6ZV09XCInc20nXCIgKGNsaWNrKT1cInNhdmVNZXNzYWdlcygpXCI+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verben-workflow-ui-src-lib-components-task-history.mjs","sources":["../../../projects/verben-workflow-ui/src/lib/components/task-history/task-history.service.ts","../../../projects/verben-workflow-ui/src/lib/components/task-history/task-history.component.ts","../../../projects/verben-workflow-ui/src/lib/components/task-history/task-history.component.html","../../../projects/verben-workflow-ui/src/lib/components/task-history/task-history.module.ts","../../../projects/verben-workflow-ui/src/lib/components/task-history/verben-workflow-ui-src-lib-components-task-history.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ActionHistory } from 'verben-workflow-ui/src/lib/models';\nimport { EnvironmentService, HttpWebRequestService } from 'verben-workflow-ui/src/lib/services';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TaskHistoryService {\n constructor(\n private httpService: HttpWebRequestService,\n private envSvc: EnvironmentService\n ) { }\n\n getTaskHistory(taskCode: string): Promise<any> {\n const url = `GetTaskHistory/${taskCode}`;\n return this.httpService.get(url) as Promise<ActionHistory[]>;\n }\n\n saveActionHistory(actionHistory: ActionHistory[]): Promise<any> {\n const url = `SaveActionHistories`;\n return this.httpService.post(url, actionHistory);\n }\n\n uploadFiles(files: any[]): Promise<any> {\n const url = `SaveFiles`;\n return this.httpService.post(\n url,\n files,\n this.envSvc.environment.FILE_BASE_URL\n );\n }\n}\n","import { Location } from '@angular/common';\nimport { Component, input, OnInit } from '@angular/core';\nimport { ActionHistory, ActionType, Actor, File as FileData, ObjectState, OperationType } from 'verben-workflow-ui/src/lib/models';\nimport { EnvironmentService, UtilService } from 'verben-workflow-ui/src/lib/services';\nimport { TaskHistoryService } from './task-history.service';\n\n@Component({\n selector: 'lib-task-history',\n templateUrl: './task-history.component.html',\n styleUrl: './task-history.component.css',\n})\nexport class TaskHistoryComponent implements OnInit {\n taskCode = input.required<string>();\n operationType = OperationType;\n active: number = 0;\n showCommentBox: boolean = false;\n newComment: string = '';\n selectedFiles: FileData[] = [];\n // ActionType = ActionType;\n\n constructor(\n private _location: Location,\n private service: TaskHistoryService,\n private envSvc: EnvironmentService,\n private utilService: UtilService\n ) { }\n // singleHistory: TimelineEvent[] = [\n // {\n // Date: '4:05 PM',\n // Operation: OperationType.Comment,\n // Details: {},\n // Actions: [\n // { Label: 'View Comments', Type: 'button', Action: 'viewComments' },\n // ],\n // },\n // {\n // Date: 'Yesterday',\n // Operation: OperationType.Comment,\n // Details: {},\n // Actions: [\n // { Label: 'View Comments', Type: 'button', Action: 'viewComments' },\n // ],\n // },\n // {\n // Date: 'Mar 2',\n // Operation: OperationType.Forms,\n // Details: {\n // FilledBy: 'Anonymous',\n // },\n // Actions: [{ Label: 'View Form', Type: 'button', Action: 'viewForm' }],\n // },\n // {\n // Date: 'Nov 4',\n // Operation: OperationType.Assignment,\n // Details: {\n // From: 'John Doe',\n // To: 'Jane Doe',\n // },\n // Actions: [],\n // },\n // {\n // Date: 'Nov 6',\n // Operation: OperationType.Comment,\n // Details: {},\n // Actions: [\n // { Label: 'View Comments', Type: 'button', Action: 'viewComments' },\n // ],\n // },\n // ];\n\n history: ActionHistory[] = [];\n\n ngOnInit(): void {\n this.service.getTaskHistory(this.taskCode()).then((res) => {\n this.history = res;\n console.log(this.history);\n });\n }\n\n goBack() {\n this._location.back();\n }\n\n setActive(i: number) {\n this.active = i;\n }\n\n getTagsFromActor(actor: Actor) {\n return actor.Tags.map((tag) => tag.Name).join(', ');\n }\n\n addComment() {\n this.showCommentBox = !this.showCommentBox;\n }\n\n async saveComment() {\n console.log(this.newComment);\n if (!this.newComment.trim() && this.selectedFiles.length === 0) {\n return;\n }\n\n let uploadedFiles: string[] = [];\n if (this.selectedFiles.length > 0) {\n try {\n this.utilService.sendBI(true);\n const res = await this.service.uploadFiles(this.selectedFiles);\n if (res) {\n uploadedFiles = res;\n }\n } catch (error) {\n console.error('File upload failed', error);\n this.utilService.sendBI(false);\n return;\n } finally {\n this.utilService.sendBI(false);\n }\n }\n\n const actionHistory = {\n TaskCode: this.taskCode() ?? '',\n Description: this.newComment,\n ActionType: ActionType.Comment,\n DataState: ObjectState.New,\n Files: uploadedFiles,\n // Actor: {\n // Id: this.selectedDetail.ActorId,\n // Name: this.selectedDetail.ActorName,\n // Tags: this.selectedDetail.Tags,\n // },\n Workflow: '',\n FromStage: '',\n ToStage: '',\n Code: '',\n TenantId: 'PDLTC6',\n } as ActionHistory;\n\n this.service.saveActionHistory([actionHistory]).then(() => {\n this.newComment = '';\n this.selectedFiles = [];\n this.showCommentBox = false;\n this.service.getTaskHistory(this.taskCode()).then((res) => {\n this.history = res;\n });\n });\n }\n\n onFileSelect(data: any): void {\n const files: any = data;\n\n if (!files || files.length === 0) return;\n\n const fileArray: FileData[] = [];\n const readers: Promise<void>[] = [];\n\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n const reader = new FileReader();\n\n const promise = new Promise<void>((resolve, reject) => {\n reader.onload = () => {\n const base64 = reader.result as string;\n fileArray.push({\n Extension: file.name.split('.').pop(),\n Name: this.generateRandomCode(),\n Data: base64,\n DataState: ObjectState.New,\n });\n resolve();\n };\n\n reader.onerror = (error) => reject(error);\n reader.readAsDataURL(file);\n });\n\n readers.push(promise);\n }\n\n Promise.all(readers).then(() => {\n console.log('Files ready to upload:', fileArray);\n this.selectedFiles = fileArray;\n });\n }\n\n private generateRandomCode(length: number = 10): string {\n const chars =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let result = '';\n for (let i = 0; i < length; i++) {\n result += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return result;\n }\n\n getFileExtension(fileUrl: string): string {\n const parts = fileUrl.split('.');\n return parts[parts.length - 1].toLowerCase();\n }\n\n setPreview(val: string): string {\n if (!val) return '';\n const first = val.split(',')[0].trim();\n\n if (first.startsWith('http') || first.startsWith('data:')) {\n return first;\n }\n return `${this.envSvc.environment.FILE_URL}/${first}`;\n }\n\n showFromAndTo(actionType: ActionType): boolean {\n switch (actionType) {\n case ActionType.PassOn:\n case ActionType.PassBack:\n case ActionType.SkipForward:\n case ActionType.SkipBackward:\n return true;\n case ActionType.Comment:\n case ActionType.FormFilling:\n case ActionType.StatusChange:\n return false;\n }\n }\n\n getFileName(fileUrl: string): string {\n if (!fileUrl) return '';\n return fileUrl.split('/').pop() || '';\n }\n\n openFile(fileUrl: string) {\n if (!fileUrl) {\n return;\n }\n this.utilService.openFullRouteInNewWindow(\n `${this.envSvc.environment.FILE_BASE_URL}${fileUrl}`\n );\n }\n}\n","<div class=\"bg-[#F9FAFB]\">\n <header class=\"mx-8 rounded-lg shadow-lg flex justify-between items-center px-6 py-2 bg-[#D4A00773]\">\n <h4 class=\"font-semibold\">{{ taskCode() }}</h4>\n <div class=\"flex gap-4 items-center\">\n <verbena-button (click)=\"addComment()\" text=\"+ Add Comment\" styleType=\"ylw-outline\"\n class=\"ml-auto\"></verbena-button>\n <verben-svg (click)=\"goBack()\" class=\"cursor-pointer\" [width]=\"17\" [height]=\"17\" [icon]=\"'go-back'\"></verben-svg>\n </div>\n </header>\n <section class=\"grid grid-cols-12\">\n <div class=\"bg-[#fff] col-span-7 pl-16 pt-20 relative\">\n <div *ngIf=\"showCommentBox\" class=\"mb-6 mr-10\">\n <h4 class=\"font-bold text-lg mb-2\">Add Comment</h4>\n <!-- <verbena-textarea [(ngModel)]=\"newComment\" label=\"Comment\" class=\"w-full\"></verbena-textarea> -->\n <textarea [(ngModel)]=\"newComment\" label=\"Comment\" class=\"w-full border rounded-md p-2\"></textarea>\n <div class=\"mt-4\">\n <file-upload (selectedFilesChange)=\"onFileSelect($event)\" [multiple]=\"true\" label=\"Attach Files\">\n </file-upload>\n <div *ngIf=\"selectedFiles.length > 0\" class=\"flex flex-wrap gap-3 mt-3\">\n <div *ngFor=\"let file of selectedFiles\">\n <ng-container [ngSwitch]=\"file.Extension\">\n <img *ngSwitchCase=\"'jpg'\" [src]=\"file.Data\"\n class=\"w-[100px] h-[100px] object-cover rounded-md border\" />\n <img *ngSwitchCase=\"'png'\" [src]=\"file.Data\"\n class=\"w-[100px] h-[100px] object-cover rounded-md border\" />\n <video *ngSwitchCase=\"'mp4'\" [src]=\"file.Data\" class=\"w-[150px] rounded-md shadow\" controls></video>\n <audio *ngSwitchCase=\"'mp3'\" [src]=\"file.Data\" controls class=\"w-[150px]\"></audio>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"flex justify-end gap-2 mt-2\">\n <verbena-button (click)=\"addComment()\" text=\"Cancel\" styleType=\"ylw-outline\"></verbena-button>\n <verbena-button (click)=\"saveComment()\" text=\"Save\" bgColor=\"#FFE681\" textColor=\"#404040\" borderRadius=\"10px\"\n pd=\"10px 20px\" width=\"114px\" height=\"39px\"></verbena-button>\n </div>\n </div>\n <span class=\"absolute block h-[90%] h-ninety border border-secondary-200 left-[150px]\"></span>\n <div *ngFor=\"let timeline of history; let i = index\">\n <div>\n <div class=\"flex mb-7\">\n <h5 class=\"w-[100px] cursor-pointer\" (click)=\"setActive(i)\">\n {{ timeline?.CreatedAt | date }}\n </h5>\n <div class=\"ml-24 cursor-pointer min-w-[250px] p-6 rounded-md border-l-2\" [ngClass]=\"{\n 'bg-[#FEFAF1] border-[#FFE681]': active === i,\n 'bg-transparent border-transparent hover:bg-[#F9FAFB]': active !== i\n }\" (click)=\"setActive(i)\">\n <!-- ActionName as primary heading, fallback to ActionType -->\n <h4 class=\"font-bold text-xl text-[#101828] mb-2\">\n {{ timeline.ActionName || timeline.ActionType }}\n </h4>\n\n <!-- Actor information with tooltip -->\n <div class=\"mb-3\">\n <verben-tooltip [top]=\"'0px'\" [left]=\"'0px'\" [textColor]=\"'#000'\" [backgroundColor]=\"'#FFF'\"\n [tooltipContent]=\"actorTooltipTemplate\">\n <p class=\"text-sm text-[#667085] cursor-help inline-flex items-center gap-2\">\n <verben-svg [width]=\"14\" [height]=\"14\" [icon]=\"'user'\" stroke=\"#667085\"></verben-svg>\n <span class=\"font-medium text-[#344054]\">{{ timeline.Actor.Name }}</span>\n </p>\n </verben-tooltip>\n\n <ng-template #actorTooltipTemplate>\n <div class=\"bg-white border border-[#E4E7EC] rounded-lg p-4 shadow-lg w-[280px]\">\n <div class=\"flex gap-3 items-start\">\n <div\n class=\"w-[40px] h-[40px] rounded-full bg-gradient-to-r from-[#D9AEAE] via-[#E3C79F] to-[#FFE681] flex-shrink-0\">\n </div>\n <div class=\"flex-1 min-w-0\">\n <p class=\"font-bold text-sm text-[#101828] mb-1\">\n {{ timeline.Actor.Name }}\n </p>\n <p class=\"text-xs text-[#667085] break-words flex items-start gap-1\">\n <verben-svg [width]=\"12\" [height]=\"12\" [icon]=\"'mail'\" stroke=\"#667085\"></verben-svg>\n <span>{{ timeline.Actor.Identifier }}</span>\n </p>\n <p *ngIf=\"getTagsFromActor(timeline.Actor)\" class=\"text-xs text-[#667085] mt-2\">\n <span class=\"font-medium\">Tags:</span> {{ getTagsFromActor(timeline.Actor) }}\n </p>\n </div>\n </div>\n </div>\n </ng-template>\n </div>\n\n <!-- Action Type (if different from ActionName) -->\n <p *ngIf=\"timeline.ActionName\" class=\"text-sm text-[#667085] mb-2\">\n <span class=\"font-medium\">Operation:</span> {{ timeline.ActionType }}\n </p>\n\n <!-- Stage information for transfer actions -->\n @if (showFromAndTo(timeline.ActionType)) {\n <div class=\"bg-[#F9FAFB] rounded-md p-3 mt-2 space-y-1.5\">\n <p class=\"text-sm flex items-center gap-2\">\n <span class=\"text-[#667085] font-medium\">From:</span>\n <span class=\"text-[#6172F3] font-mono text-xs\">{{ timeline.FromStage }}</span>\n </p>\n <p class=\"text-sm flex items-center gap-2\">\n <span class=\"text-[#667085] font-medium\">To:</span>\n <span class=\"text-[#6172F3] font-mono text-xs\">{{ timeline.ToStage }}</span>\n </p>\n </div>\n }\n\n <!-- View comments button -->\n <button *ngIf=\"timeline.Description\"\n class=\"flex gap-2 items-center w-fit text-[#667085] text-sm border px-3 py-2 rounded-lg bg-[#FCFCFD] mt-3 border-[#E4E7EC] hover:bg-[#F9FAFB] hover:border-[#D0D5DD] transition-colors\">\n <verben-svg [width]=\"15\" [height]=\"15\" [icon]=\"'chat'\"></verben-svg>\n View comments\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-span-5\">\n <div class=\"h-[50px] bg-[#fff]\"></div>\n <div *ngIf=\"active >= 0\" class=\"w-[480px] pl-16 pt-10\">\n <h1 class=\"font-bold text-lg py-2\">Comments</h1>\n <p class=\"text-xs text-[#667085] text-right py-2\">\n {{ history[active].CreatedAt | date }}\n </p>\n <div class=\"bg-[#fff] text-[#101828] leading-relaxed p-8 shadow-md rounded-md\">\n {{ history[active].Description }}\n\n <div *ngIf=\"history[active]?.Files?.length\" class=\"mt-4 border-t pt-4\">\n <h5 class=\"font-bold text-sm mb-2\">Attachments</h5>\n <div class=\"flex flex-col gap-2\">\n <div *ngFor=\"let file of history[active]?.Files\"\n class=\"file-container p-2 flex items-center justify-between gap-3 border rounded-md bg-gray-50\">\n <div class=\"text-sm overflow-x-auto font-semibold\">\n {{ getFileName(file) }}\n </div>\n <span (click)=\"openFile(file)\" class=\"cursor-pointer\">\n <verben-svg [icon]=\"'download-icon'\" [width]=\"20\" [height]=\"20\"></verben-svg>\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n</div>\n","import { NgModule } from '@angular/core';\nimport { TooltipModule } from 'verben-ng-ui';\nimport { FileUploadModule } from 'verben-workflow-ui/src/lib/components/file-upload';\nimport { SharedModule } from 'verben-workflow-ui/src/lib/shared';\nimport { TaskHistoryComponent } from './task-history.component';\n@NgModule({\n declarations: [TaskHistoryComponent],\n imports: [SharedModule, FileUploadModule, TooltipModule],\n exports: [TaskHistoryComponent],\n})\nexport class TaskHistoryModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.TaskHistoryService","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verben-workflow-ui-src-lib-components-task-history.mjs","sources":["../../../projects/verben-workflow-ui/src/lib/components/task-history/task-history.service.ts","../../../projects/verben-workflow-ui/src/lib/components/task-history/task-history.component.ts","../../../projects/verben-workflow-ui/src/lib/components/task-history/task-history.component.html","../../../projects/verben-workflow-ui/src/lib/components/task-history/task-history.module.ts","../../../projects/verben-workflow-ui/src/lib/components/task-history/verben-workflow-ui-src-lib-components-task-history.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ActionHistory } from 'verben-workflow-ui/src/lib/models';\nimport { EnvironmentService, HttpWebRequestService } from 'verben-workflow-ui/src/lib/services';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TaskHistoryService {\n constructor(\n private httpService: HttpWebRequestService,\n private envSvc: EnvironmentService\n ) { }\n\n getTaskHistory(taskCode: string): Promise<any> {\n const url = `GetTaskHistory/${taskCode}`;\n return this.httpService.get(url) as Promise<ActionHistory[]>;\n }\n\n saveActionHistory(actionHistory: ActionHistory[]): Promise<any> {\n const url = `SaveActionHistories`;\n return this.httpService.post(url, actionHistory);\n }\n\n uploadFiles(files: any[]): Promise<any> {\n const url = `SaveFiles`;\n return this.httpService.post(\n url,\n files,\n this.envSvc.environment.FILE_BASE_URL\n );\n }\n}\n","import { Location } from '@angular/common';\nimport { Component, input, OnInit } from '@angular/core';\nimport { ActionHistory, ActionType, Actor, File as FileData, ObjectState, OperationType } from 'verben-workflow-ui/src/lib/models';\nimport { EnvironmentService, UtilService } from 'verben-workflow-ui/src/lib/services';\nimport { TaskHistoryService } from './task-history.service';\n\n@Component({\n selector: 'lib-task-history',\n templateUrl: './task-history.component.html',\n styleUrl: './task-history.component.css',\n})\nexport class TaskHistoryComponent implements OnInit {\n taskCode = input.required<string>();\n operationType = OperationType;\n active: number = 0;\n showCommentBox: boolean = false;\n newComment: string = '';\n selectedFiles: FileData[] = [];\n // ActionType = ActionType;\n\n constructor(\n private _location: Location,\n private service: TaskHistoryService,\n private envSvc: EnvironmentService,\n private utilService: UtilService\n ) { }\n // singleHistory: TimelineEvent[] = [\n // {\n // Date: '4:05 PM',\n // Operation: OperationType.Comment,\n // Details: {},\n // Actions: [\n // { Label: 'View Comments', Type: 'button', Action: 'viewComments' },\n // ],\n // },\n // {\n // Date: 'Yesterday',\n // Operation: OperationType.Comment,\n // Details: {},\n // Actions: [\n // { Label: 'View Comments', Type: 'button', Action: 'viewComments' },\n // ],\n // },\n // {\n // Date: 'Mar 2',\n // Operation: OperationType.Forms,\n // Details: {\n // FilledBy: 'Anonymous',\n // },\n // Actions: [{ Label: 'View Form', Type: 'button', Action: 'viewForm' }],\n // },\n // {\n // Date: 'Nov 4',\n // Operation: OperationType.Assignment,\n // Details: {\n // From: 'John Doe',\n // To: 'Jane Doe',\n // },\n // Actions: [],\n // },\n // {\n // Date: 'Nov 6',\n // Operation: OperationType.Comment,\n // Details: {},\n // Actions: [\n // { Label: 'View Comments', Type: 'button', Action: 'viewComments' },\n // ],\n // },\n // ];\n\n history: ActionHistory[] = [];\n\n ngOnInit(): void {\n this.service.getTaskHistory(this.taskCode()).then((res) => {\n this.history = res;\n console.log(this.history);\n });\n }\n\n goBack() {\n this._location.back();\n }\n\n setActive(i: number) {\n this.active = i;\n }\n\n getTagsFromActor(actor: Actor) {\n return actor.Tags.map((tag) => tag.Name).join(', ');\n }\n\n addComment() {\n this.showCommentBox = !this.showCommentBox;\n }\n\n async saveComment() {\n console.log(this.newComment);\n if (!this.newComment.trim() && this.selectedFiles.length === 0) {\n return;\n }\n\n let uploadedFiles: string[] = [];\n if (this.selectedFiles.length > 0) {\n try {\n this.utilService.sendBI(true);\n const res = await this.service.uploadFiles(this.selectedFiles);\n if (res) {\n uploadedFiles = res;\n }\n } catch (error) {\n console.error('File upload failed', error);\n this.utilService.sendBI(false);\n return;\n } finally {\n this.utilService.sendBI(false);\n }\n }\n\n const actionHistory = {\n TaskCode: this.taskCode() ?? '',\n Description: this.newComment,\n ActionType: ActionType.Comment,\n DataState: ObjectState.New,\n Files: uploadedFiles,\n // Actor: {\n // Id: this.selectedDetail.ActorId,\n // Name: this.selectedDetail.ActorName,\n // Tags: this.selectedDetail.Tags,\n // },\n Workflow: '',\n FromStage: '',\n ToStage: '',\n Code: '',\n TenantId: '',\n } as ActionHistory;\n\n this.service.saveActionHistory([actionHistory]).then(() => {\n this.newComment = '';\n this.selectedFiles = [];\n this.showCommentBox = false;\n this.service.getTaskHistory(this.taskCode()).then((res) => {\n this.history = res;\n });\n });\n }\n\n onFileSelect(data: any): void {\n const files: any = data;\n\n if (!files || files.length === 0) return;\n\n const fileArray: FileData[] = [];\n const readers: Promise<void>[] = [];\n\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n const reader = new FileReader();\n\n const promise = new Promise<void>((resolve, reject) => {\n reader.onload = () => {\n const base64 = reader.result as string;\n fileArray.push({\n Extension: file.name.split('.').pop(),\n Name: this.generateRandomCode(),\n Data: base64,\n DataState: ObjectState.New,\n });\n resolve();\n };\n\n reader.onerror = (error) => reject(error);\n reader.readAsDataURL(file);\n });\n\n readers.push(promise);\n }\n\n Promise.all(readers).then(() => {\n console.log('Files ready to upload:', fileArray);\n this.selectedFiles = fileArray;\n });\n }\n\n private generateRandomCode(length: number = 10): string {\n const chars =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let result = '';\n for (let i = 0; i < length; i++) {\n result += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return result;\n }\n\n getFileExtension(fileUrl: string): string {\n const parts = fileUrl.split('.');\n return parts[parts.length - 1].toLowerCase();\n }\n\n setPreview(val: string): string {\n if (!val) return '';\n const first = val.split(',')[0].trim();\n\n if (first.startsWith('http') || first.startsWith('data:')) {\n return first;\n }\n return `${this.envSvc.environment.FILE_URL}/${first}`;\n }\n\n showFromAndTo(actionType: ActionType): boolean {\n switch (actionType) {\n case ActionType.PassOn:\n case ActionType.PassBack:\n case ActionType.SkipForward:\n case ActionType.SkipBackward:\n return true;\n case ActionType.Comment:\n case ActionType.FormFilling:\n case ActionType.StatusChange:\n return false;\n }\n }\n\n getFileName(fileUrl: string): string {\n if (!fileUrl) return '';\n return fileUrl.split('/').pop() || '';\n }\n\n openFile(fileUrl: string) {\n if (!fileUrl) {\n return;\n }\n this.utilService.openFullRouteInNewWindow(\n `${this.envSvc.environment.FILE_BASE_URL}${fileUrl}`\n );\n }\n}\n","<div class=\"bg-[#F9FAFB]\">\n <header class=\"mx-8 rounded-lg shadow-lg flex justify-between items-center px-6 py-2 bg-[#D4A00773]\">\n <h4 class=\"font-semibold\">{{ taskCode() }}</h4>\n <div class=\"flex gap-4 items-center\">\n <verbena-button (click)=\"addComment()\" text=\"+ Add Comment\" styleType=\"ylw-outline\"\n class=\"ml-auto\"></verbena-button>\n <verben-svg (click)=\"goBack()\" class=\"cursor-pointer\" [width]=\"17\" [height]=\"17\" [icon]=\"'go-back'\"></verben-svg>\n </div>\n </header>\n <section class=\"grid grid-cols-12\">\n <div class=\"bg-[#fff] col-span-7 pl-16 pt-20 relative\">\n <div *ngIf=\"showCommentBox\" class=\"mb-6 mr-10\">\n <h4 class=\"font-bold text-lg mb-2\">Add Comment</h4>\n <!-- <verbena-textarea [(ngModel)]=\"newComment\" label=\"Comment\" class=\"w-full\"></verbena-textarea> -->\n <textarea [(ngModel)]=\"newComment\" label=\"Comment\" class=\"w-full border rounded-md p-2\"></textarea>\n <div class=\"mt-4\">\n <file-upload (selectedFilesChange)=\"onFileSelect($event)\" [multiple]=\"true\" label=\"Attach Files\">\n </file-upload>\n <div *ngIf=\"selectedFiles.length > 0\" class=\"flex flex-wrap gap-3 mt-3\">\n <div *ngFor=\"let file of selectedFiles\">\n <ng-container [ngSwitch]=\"file.Extension\">\n <img *ngSwitchCase=\"'jpg'\" [src]=\"file.Data\"\n class=\"w-[100px] h-[100px] object-cover rounded-md border\" />\n <img *ngSwitchCase=\"'png'\" [src]=\"file.Data\"\n class=\"w-[100px] h-[100px] object-cover rounded-md border\" />\n <video *ngSwitchCase=\"'mp4'\" [src]=\"file.Data\" class=\"w-[150px] rounded-md shadow\" controls></video>\n <audio *ngSwitchCase=\"'mp3'\" [src]=\"file.Data\" controls class=\"w-[150px]\"></audio>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"flex justify-end gap-2 mt-2\">\n <verbena-button (click)=\"addComment()\" text=\"Cancel\" styleType=\"ylw-outline\"></verbena-button>\n <verbena-button (click)=\"saveComment()\" text=\"Save\" bgColor=\"#FFE681\" textColor=\"#404040\" borderRadius=\"10px\"\n pd=\"10px 20px\" width=\"114px\" height=\"39px\"></verbena-button>\n </div>\n </div>\n <span class=\"absolute block h-[90%] h-ninety border border-secondary-200 left-[150px]\"></span>\n <div *ngFor=\"let timeline of history; let i = index\">\n <div>\n <div class=\"flex mb-7\">\n <h5 class=\"w-[100px] cursor-pointer\" (click)=\"setActive(i)\">\n {{ timeline?.CreatedAt | date }}\n </h5>\n <div class=\"ml-24 cursor-pointer min-w-[250px] p-6 rounded-md border-l-2\" [ngClass]=\"{\n 'bg-[#FEFAF1] border-[#FFE681]': active === i,\n 'bg-transparent border-transparent hover:bg-[#F9FAFB]': active !== i\n }\" (click)=\"setActive(i)\">\n <!-- ActionName as primary heading, fallback to ActionType -->\n <h4 class=\"font-bold text-xl text-[#101828] mb-2\">\n {{ timeline.ActionName || timeline.ActionType }}\n </h4>\n\n <!-- Actor information with tooltip -->\n <div class=\"mb-3\">\n <verben-tooltip [top]=\"'0px'\" [left]=\"'0px'\" [textColor]=\"'#000'\" [backgroundColor]=\"'#FFF'\"\n [tooltipContent]=\"actorTooltipTemplate\">\n <p class=\"text-sm text-[#667085] cursor-help inline-flex items-center gap-2\">\n <verben-svg [width]=\"14\" [height]=\"14\" [icon]=\"'user'\" stroke=\"#667085\"></verben-svg>\n <span class=\"font-medium text-[#344054]\">{{ timeline.Actor.Name }}</span>\n </p>\n </verben-tooltip>\n\n <ng-template #actorTooltipTemplate>\n <div class=\"bg-white border border-[#E4E7EC] rounded-lg p-4 shadow-lg w-[280px]\">\n <div class=\"flex gap-3 items-start\">\n <div\n class=\"w-[40px] h-[40px] rounded-full bg-gradient-to-r from-[#D9AEAE] via-[#E3C79F] to-[#FFE681] flex-shrink-0\">\n </div>\n <div class=\"flex-1 min-w-0\">\n <p class=\"font-bold text-sm text-[#101828] mb-1\">\n {{ timeline.Actor.Name }}\n </p>\n <p class=\"text-xs text-[#667085] break-words flex items-start gap-1\">\n <verben-svg [width]=\"12\" [height]=\"12\" [icon]=\"'mail'\" stroke=\"#667085\"></verben-svg>\n <span>{{ timeline.Actor.Identifier }}</span>\n </p>\n <p *ngIf=\"getTagsFromActor(timeline.Actor)\" class=\"text-xs text-[#667085] mt-2\">\n <span class=\"font-medium\">Tags:</span> {{ getTagsFromActor(timeline.Actor) }}\n </p>\n </div>\n </div>\n </div>\n </ng-template>\n </div>\n\n <!-- Action Type (if different from ActionName) -->\n <p *ngIf=\"timeline.ActionName\" class=\"text-sm text-[#667085] mb-2\">\n <span class=\"font-medium\">Operation:</span> {{ timeline.ActionType }}\n </p>\n\n <!-- Stage information for transfer actions -->\n @if (showFromAndTo(timeline.ActionType)) {\n <div class=\"bg-[#F9FAFB] rounded-md p-3 mt-2 space-y-1.5\">\n <p class=\"text-sm flex items-center gap-2\">\n <span class=\"text-[#667085] font-medium\">From:</span>\n <span class=\"text-[#6172F3] font-mono text-xs\">{{ timeline.FromStage }}</span>\n </p>\n <p class=\"text-sm flex items-center gap-2\">\n <span class=\"text-[#667085] font-medium\">To:</span>\n <span class=\"text-[#6172F3] font-mono text-xs\">{{ timeline.ToStage }}</span>\n </p>\n </div>\n }\n\n <!-- View comments button -->\n <button *ngIf=\"timeline.Description\"\n class=\"flex gap-2 items-center w-fit text-[#667085] text-sm border px-3 py-2 rounded-lg bg-[#FCFCFD] mt-3 border-[#E4E7EC] hover:bg-[#F9FAFB] hover:border-[#D0D5DD] transition-colors\">\n <verben-svg [width]=\"15\" [height]=\"15\" [icon]=\"'chat'\"></verben-svg>\n View comments\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-span-5\">\n <div class=\"h-[50px] bg-[#fff]\"></div>\n <div *ngIf=\"active >= 0\" class=\"w-[480px] pl-16 pt-10\">\n <h1 class=\"font-bold text-lg py-2\">Comments</h1>\n <p class=\"text-xs text-[#667085] text-right py-2\">\n {{ history[active].CreatedAt | date }}\n </p>\n <div class=\"bg-[#fff] text-[#101828] leading-relaxed p-8 shadow-md rounded-md\">\n {{ history[active].Description }}\n\n <div *ngIf=\"history[active]?.Files?.length\" class=\"mt-4 border-t pt-4\">\n <h5 class=\"font-bold text-sm mb-2\">Attachments</h5>\n <div class=\"flex flex-col gap-2\">\n <div *ngFor=\"let file of history[active]?.Files\"\n class=\"file-container p-2 flex items-center justify-between gap-3 border rounded-md bg-gray-50\">\n <div class=\"text-sm overflow-x-auto font-semibold\">\n {{ getFileName(file) }}\n </div>\n <span (click)=\"openFile(file)\" class=\"cursor-pointer\">\n <verben-svg [icon]=\"'download-icon'\" [width]=\"20\" [height]=\"20\"></verben-svg>\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n</div>\n","import { NgModule } from '@angular/core';\nimport { TooltipModule } from 'verben-ng-ui';\nimport { FileUploadModule } from 'verben-workflow-ui/src/lib/components/file-upload';\nimport { SharedModule } from 'verben-workflow-ui/src/lib/shared';\nimport { TaskHistoryComponent } from './task-history.component';\n@NgModule({\n declarations: [TaskHistoryComponent],\n imports: [SharedModule, FileUploadModule, TooltipModule],\n exports: [TaskHistoryComponent],\n})\nexport class TaskHistoryModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.TaskHistoryService","i3"],"mappings":"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"}
|