@bizdoc/core 1.8.16 → 1.8.20
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/assets/bizdoc-schema.json +1 -1
- package/assets/themes/brown.min.css +1 -1
- package/assets/themes/dark.min.css +1 -1
- package/assets/themes/default.min.css +1 -1
- package/assets/themes/green.min.css +1 -1
- package/assets/themes/indigo.min.css +1 -1
- package/bundles/bizdoc-core.umd.js +787 -613
- package/bundles/bizdoc-core.umd.js.map +1 -1
- package/esm2015/lib/admin/document-trace/document-trace.component.js +2 -3
- package/esm2015/lib/admin/form/workflow/workflow.component.js +35 -26
- package/esm2015/lib/app.component.js +2 -9
- package/esm2015/lib/browse/browse-items.component.js +13 -8
- package/esm2015/lib/browse/expanded-item/expanded-item.component.js +2 -2
- package/esm2015/lib/chat/chat-info.js +4 -2
- package/esm2015/lib/compose/trace/flow.component.js +23 -14
- package/esm2015/lib/compose/trace/trace.base.js +4 -7
- package/esm2015/lib/compose/trace/trace.component.js +178 -130
- package/esm2015/lib/compose/trace/trace.pane.component.js +5 -1
- package/esm2015/lib/core/layout/layout.component.js +25 -11
- package/esm2015/lib/core/models.js +3 -1
- package/esm2015/lib/core/slots/pane-ref.js +10 -7
- package/esm2015/lib/core/slots/router.service.js +1 -1
- package/esm2015/lib/core/slots/slots.component.js +29 -25
- package/esm2015/lib/core/tagging/edit-input.component.js +3 -3
- package/esm2015/lib/core/tagging/tagging.pipe.js +2 -2
- package/esm2015/lib/core/translate.service.js +13 -7
- package/esm2015/lib/cube/explore/explore-items.component.js +2 -2
- package/esm2015/lib/cube/pivot/pivot.component.js +7 -2
- package/esm2015/lib/dashboard/recents/recents.widget.js +20 -11
- package/esm2015/lib/home/home-base.component.js +6 -1
- package/esm2015/lib/modules/chart.module.js +35 -0
- package/esm2015/lib/{circular-gauge.module.js → modules/circular-gauge.module.js} +1 -1
- package/esm2015/lib/modules/diagram.module.js +34 -0
- package/esm2015/lib/modules/grid.module.js +23 -0
- package/esm2015/lib/modules/pivot.module.js +23 -0
- package/esm2015/lib/{schedule.module.js → modules/schedule.module.js} +1 -1
- package/esm2015/lib/modules/spreadsheet.module.js +28 -0
- package/esm2015/lib/options/options.component.js +6 -6
- package/esm2015/lib/shared.module.js +8 -12
- package/esm2015/lib/system.module.js +3 -3
- package/fesm2015/bizdoc-core.js +513 -421
- package/fesm2015/bizdoc-core.js.map +1 -1
- package/lib/admin/form/workflow/workflow.component.d.ts +2 -2
- package/lib/browse/browse-items.component.d.ts +1 -1
- package/lib/chat/chat-info.d.ts +1 -0
- package/lib/compose/trace/trace.component.d.ts +0 -9
- package/lib/core/models.d.ts +3 -1
- package/lib/core/slots/pane-ref.d.ts +5 -3
- package/lib/core/slots/router.service.d.ts +1 -0
- package/lib/core/slots/slots.component.d.ts +3 -1
- package/lib/core/tagging/edit-input.component.d.ts +1 -1
- package/lib/core/tagging/tagging.pipe.d.ts +1 -1
- package/lib/dashboard/recents/recents.widget.d.ts +1 -0
- package/lib/{chart.module.d.ts → modules/chart.module.d.ts} +0 -0
- package/lib/{circular-gauge.module.d.ts → modules/circular-gauge.module.d.ts} +0 -0
- package/lib/{diagram.module.d.ts → modules/diagram.module.d.ts} +0 -0
- package/lib/{grid.module.d.ts → modules/grid.module.d.ts} +0 -0
- package/lib/{pivot.module.d.ts → modules/pivot.module.d.ts} +0 -0
- package/lib/{schedule.module.d.ts → modules/schedule.module.d.ts} +0 -0
- package/lib/{spreadsheet.module.d.ts → modules/spreadsheet.module.d.ts} +0 -0
- package/lib/options/options.component.d.ts +1 -2
- package/lib/shared.module.d.ts +12 -13
- package/lib/system.module.d.ts +2 -2
- package/package.json +1 -3
- package/esm2015/lib/chart.module.js +0 -35
- package/esm2015/lib/diagram.module.js +0 -34
- package/esm2015/lib/grid.module.js +0 -23
- package/esm2015/lib/linear-gauge.module.js +0 -17
- package/esm2015/lib/pivot.module.js +0 -24
- package/esm2015/lib/spreadsheet.module.js +0 -28
- package/lib/linear-gauge.module.d.ts +0 -7
@@ -263,7 +263,7 @@ export class ExpandedItemComponent {
|
|
263
263
|
}
|
264
264
|
}
|
265
265
|
ExpandedItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: ExpandedItemComponent, deps: [{ token: i1.PromptService }, { token: i2.ChatInfo }, { token: i3.AccountService }, { token: i4.Directionality }, { token: i5.TranslateService }, { token: i6.MailboxService }, { token: i7.MatDialog }, { token: i8.SessionService }, { token: i9.HubService }], target: i0.ɵɵFactoryTarget.Component });
|
266
|
-
ExpandedItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: ExpandedItemComponent, selector: "bizdoc-expanded-item", inputs: { item: "item" }, outputs: { sent: "sent" }, ngImport: i0, template: "<div class=\"summary\" *ngIf=\"item.summary\" [innerHTML]=\"item.summary\">\r\n</div>\r\n<div>\r\n <bizdoc-attachments [model]=\"item\"></bizdoc-attachments>\r\n <bizdoc-events [model]=\"item\"></bizdoc-events>\r\n</div>\r\n<div class=\"row\">\r\n <span class=\"note\" [innerHTML]=\"note | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span class=\"divider\"></span>\r\n <ng-container *ngFor=\"let a of actions\">\r\n <button mat-icon-button (click)=\"send(a.name)\" [bizdocTooltip]=\"a.title\" *ngIf=\"a.icon\" class=\"tool\">\r\n <mat-icon>{{a.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"mat-small\" fxLayout=\"row\">\r\n <span>{{item.stateId | state }}</span>\r\n \r\n <span class=\"time\" bizdocTooltip=\"
|
266
|
+
ExpandedItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: ExpandedItemComponent, selector: "bizdoc-expanded-item", inputs: { item: "item" }, outputs: { sent: "sent" }, ngImport: i0, template: "<div class=\"summary\" *ngIf=\"item.summary\" [innerHTML]=\"item.summary\">\r\n</div>\r\n<div>\r\n <bizdoc-attachments [model]=\"item\"></bizdoc-attachments>\r\n <bizdoc-events [model]=\"item\"></bizdoc-events>\r\n</div>\r\n<div class=\"row\">\r\n <span class=\"note\" [innerHTML]=\"note | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span class=\"divider\"></span>\r\n <ng-container *ngFor=\"let a of actions\">\r\n <button mat-icon-button (click)=\"send(a.name)\" [bizdocTooltip]=\"a.title\" *ngIf=\"a.icon\" class=\"tool\">\r\n <mat-icon>{{a.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"mat-small\" fxLayout=\"row\">\r\n <span>{{item.stateId | state }}</span>\r\n \r\n <span class=\"time\" [bizdocTooltip]=\"item.received | amCalendar\">{{item.received | amTimeAgo}}</span>\r\n \r\n <span [innerHTML]=\"sender | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>\r\n <span [innerHTML]=\"awaiting | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>\r\n </div>\r\n <span class=\"divider\"></span>\r\n <div fxLayoutAlign=\"center center\">\r\n <span class=\"mat-small\" *ngIf=\"typing\">{{'SomeoneTyping'|translate}}</span>\r\n <div *ngIf=\"item.comments.length\" class=\"mat-small\">\r\n <span *ngIf=\"!newComments; else newcomments\">{{item.comments.length > 1 ? ('CommentsCount' | translate : item.comments.length) : 'OneComment' | translate }}</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"item.tags\">\r\n <span *ngFor=\"let tag of item.tags\" class=\"mat-chip mat-standard-chip small-chip\">{{tag}}</span>\r\n </div>\r\n</div>\r\n<ng-template #newcomments>\r\n <span [innerHTML]=\"'NewCommentsCount' | translate : item.comments.length : newComments | sanitizeHtml\"></span>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden;padding-right:24px;padding-left:24px;text-align:start}.row{align-items:center;min-height:27px;flex-direction:row;box-sizing:border-box;display:flex}.note{font-weight:200}.time{text-transform:uppercase}.summary{max-width:-moz-fit-content;max-width:fit-content}\n"], components: [{ type: i10.AttachmentsComponent, selector: "bizdoc-attachments", inputs: ["model", "viewedIndicator", "includeDeleted"] }, { type: i11.DocumentEventsComponent, selector: "bizdoc-events", inputs: ["model"] }, { type: i12.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i16.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i16.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }], pipes: { "sanitizeHtml": i17.SanitizeHtmlPipe, "state": i18.StatePipe, "amCalendar": i19.CalendarPipe, "amTimeAgo": i19.TimeAgoPipe, "translate": i20.TranslatePipe } });
|
267
267
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: ExpandedItemComponent, decorators: [{
|
268
268
|
type: Component,
|
269
269
|
args: [{
|
@@ -276,4 +276,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImpo
|
|
276
276
|
}], sent: [{
|
277
277
|
type: Output
|
278
278
|
}] } });
|
279
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kZWQtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2Jyb3dzZS9leHBhbmRlZC1pdGVtL2V4cGFuZGVkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9icm93c2UvZXhwYW5kZWQtaXRlbS9leHBhbmRlZC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUcxRixPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLG9DQUFvQyxDQUFDO0FBTXBGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUkzQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFakMsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLGdCQUFnQixHQUFHLElBQUksQ0FBQztBQU9wRCxNQUFNLE9BQU8scUJBQXFCO0lBYWhDLFlBQW9CLEdBQWtCLEVBQzVCLEtBQWUsRUFDZixTQUF5QixFQUN6QixJQUFvQixFQUNwQixVQUE0QixFQUM1QixRQUF3QixFQUN4QixPQUFrQixFQUNsQixRQUF3QixFQUN4QixVQUFzQjtRQVJaLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDNUIsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQUNmLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGFBQVEsR0FBUixRQUFR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UUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7O21IQTVQVSxxQkFBcUI7dUdBQXJCLHFCQUFxQixpSEN4QmxDLHkwREFzQ0E7NEZEZGEscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2lCQUM5QzsrVEFFVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ2EsSUFBSTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWNpcGllbnRNb2RlbCwgSGVhZGVyTW9kZWwsIEFjdGlvbiwgVXNlckluZm8sIEdlbmRlciB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQWN0aW9uRGlhbG9nLCBBY3Rpb25EaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vY29tcG9zZS9hY3Rpb24vYWN0aW9uLmRpYWxvZyc7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9hY2NvdW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgQ2hhdEluZm8gfSBmcm9tICcuLi8uLi9jaGF0L2NoYXQtaW5mbyc7XHJcbmNvbnN0IG1vbWVudCA9IHJlcXVpcmUoJ21vbWVudCcpO1xyXG5cclxuY29uc3QgUkVGUkVTSF9USU1FID0gMzAwMDAsIFRZUElOR19ISU5UX1RJTUUgPSAxNTAwO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtZXhwYW5kZWQtaXRlbScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cGFuZGVkLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2V4cGFuZGVkLWl0ZW0uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXhwYW5kZWRJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGl0ZW06IFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY2lwaWVudE1vZGVsPGFueT4+KCk7XHJcbiAgYWN0aW9ucz86IEFjdGlvbltdO1xyXG4gIG5ld0NvbW1lbnRzPzogbnVtYmVyO1xyXG4gIHR5cGluZz86IGJvb2xlYW47XHJcbiAgbm90ZTogc3RyaW5nO1xyXG4gIHNlbmRlcj86IHN0cmluZztcclxuICBhd2FpdGluZz86IHN0cmluZztcclxuICBtb2RlOiAnd29ya2luZycgfCAnZG9uZScgfCAnZmFpbGVkJyB8IG51bGw7XHJcbiAgcHJpdmF0ZSBfdHlwaW5nVGFzazogTm9kZUpTLlRpbWVvdXQ7XHJcbiAgcHJpdmF0ZSBfcmVmcmVzaFRhc2s6IE5vZGVKUy5UaW1lb3V0O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2hhdDogQ2hhdEluZm8sXHJcbiAgICBwcml2YXRlIF9hY2NvdW50czogQWNjb3VudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaXI6IERpcmVjdGlvbmFsaXR5LFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbWFpbGJveDogTWFpbGJveFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbWVzc2FnaW5nOiBIdWJTZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLmNvbW1lbnQkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICAgIGlmIChlLmlkID09PSB0aGlzLml0ZW0uaWQgJiYgKGUubW9kZWwuYnlJZCB8fCBlLm1vZGVsLnVzZXJJZCkgIT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICB0aGlzLl9jb21tZW50cygpO1xyXG4gICAgICAgICAgdGhpcy5fYWNjb3VudHMuZ2V0KGUubW9kZWwudXNlcklkKS5zdWJzY3JpYmUodSA9PlxyXG4gICAgICAgICAgICB0aGlzLl9zYi50b2FzdCgnQ29tbWVudGVkJywgdS5nZW5kZXIsIHUubmFtZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB0aGlzLl9tZXNzYWdpbmcudXBkYXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICBpZiAoZS5tb2RlbC5pZCA9PT0gdGhpcy5pdGVtLmlkKSB7XHJcbiAgICAgICAgdGhpcy5fcmVmcmVzaCgpO1xyXG4gICAgICAgIChlLnVzZXJJZCAhPT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpICYmIHRoaXMuX2FjY291bnRzLmdldChlLnVzZXJJZCkuc3Vic2NyaWJlKHUgPT5cclxuICAgICAgICAgIHRoaXMuX3NiLnRvYXN0KCdNYWlsVmVyc2lvblVwZGF0ZScsIHRoaXMuaXRlbS5udW1iZXIsIHUubmFtZSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21haWxib3guY2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICBpZiAoZS5pZCA9PT0gdGhpcy5pdGVtLmlkKVxyXG4gICAgICAgIHRoaXMuX3JlZnJlc2goKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLmNvbW1lbnRUeXBpbmckLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBmaWx0ZXIoZSA9PiBlLmlkID09PSB0aGlzLml0ZW0uZG9jdW1lbnRJZCkpLnN1YnNjcmliZShjID0+IHtcclxuICAgICAgdGhpcy50eXBpbmcgPSB0cnVlO1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fdHlwaW5nVGFzayk7XHJcbiAgICAgIHRoaXMuX3R5cGluZ1Rhc2sgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMudHlwaW5nID0gZmFsc2UsIFRZUElOR19ISU5UX1RJTUUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9yZWZyZXNoKCk7XHJcbiAgICB0aGlzLl9yZWZyZXNoVGFzayA9IHNldEludGVydmFsKCgpID0+IHRoaXMuX3JlZnJlc2goKSwgUkVGUkVTSF9USU1FKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBhc3luYyBfbm90ZSgpIHtcclxuICAgIGNvbnN0IHsgb3duZXJJZCwgaXNzdWVkLCBzdWJzdGl0dXRpbmdJZCwgcmVjZWl2ZWQsIHJlcGxpZWQsIGxvZywgaWQsIG5vdGUsIGJ5SWQsIGFjdGlvbiB9ID0gdGhpcy5pdGVtO1xyXG4gICAgaWYgKHN1YnN0aXR1dGluZ0lkKSB7XHJcbiAgICAgIHRoaXMuX2FjY291bnRzLmdldChzdWJzdGl0dXRpbmdJZCkuc3Vic2NyaWJlKHUgPT4ge1xyXG4gICAgICAgIGlmIChyZXBsaWVkKSB7XHJcbiAgICAgICAgICBjb25zdCB0aW1lID0gdGhpcy5fZnJvbU5vdyhyZXBsaWVkKSxcclxuICAgICAgICAgICAgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gYWN0aW9uKSxcclxuICAgICAgICAgICAgYWRqZWN0aXZlID0gYWN0aW9uID8gKGFjdGlvbi5hZGplY3RpdmUgfHwgYWN0aW9uLnRpdGxlKS50b0xvd2VyQ2FzZSgpIDogYWN0aW9uO1xyXG4gICAgICAgICAgdGhpcy5ub3RlID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdZb3VTdWJzdGl0dXRlQWN0aW9uVGFrZW4nLCB1LmdlbmRlciwgYWRqZWN0aXZlLCB0aGlzLl9mb3JtYXRVc2VyRWxlbWVudCh1KSwgdGltZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgZXNjYWxhdGlvbnMgPSBpc3N1ZWQgJiZcclxuICAgICAgICAgICAgbG9nLmZpbHRlcihsID0+IGwudGltZSA+IGlzc3VlZCAmJlxyXG4gICAgICAgICAgICAgIGwudHlwZSA9PT0gJ0VzY2FsYXRpb24nXHJcbiAgICAgICAgICAgICAgJiYgbC5yZWNpcGllbnRJZCA9PT0gaWQpO1xyXG4gICAgICAgICAgaWYgKGVzY2FsYXRpb25zICYmIGVzY2FsYXRpb25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBjb25zdCBkdXJhdGlvbiA9IG1vbWVudChlc2NhbGF0aW9uc1swXS50aW1lKS5kaWZmKHJlY2VpdmVkLCAncycpO1xyXG4gICAgICAgICAgICB0aGlzLm5vdGUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ0VzY2FsYXRlZEZyb20nLCB1LmdlbmRlciwgdGhpcy5fZm9ybWF0VXNlckVsZW1lbnQodSksIHRoaXMuX2R1cmF0aW9uKGR1cmF0aW9uKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgdGltZSA9IHRoaXMuX2Zyb21Ob3cocmVjZWl2ZWQpO1xyXG4gICAgICAgICAgICB0aGlzLm5vdGUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ05vdGUnLCB1LmdlbmRlcixcclxuICAgICAgICAgICAgICB0aGlzLl9mb3JtYXRVc2VyRWxlbWVudCh1KSxcclxuICAgICAgICAgICAgICB0aW1lLFxyXG4gICAgICAgICAgICAgIG5vdGUgfHwgJycpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXBsaWVkKSB7XHJcbiAgICAgIGNvbnN0IHRpbWUgPSB0aGlzLl9mcm9tTm93KHJlcGxpZWQpO1xyXG4gICAgICBpZiAoYnlJZCkge1xyXG4gICAgICAgIGlmIChieUlkID09PSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYnlJZClcclxuICAgICAgICAgIHRoaXMubm90ZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0FjdGlvblRha2VuQnlZb3UnLCB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgJ3lvdScpLFxyXG4gICAgICAgICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUubmFtZSwgdGltZSk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5fYWNjb3VudHMuZ2V0KGJ5SWQpLnN1YnNjcmliZSh1ID0+XHJcbiAgICAgICAgICAgIHRoaXMubm90ZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdVRha2VuQWN0aW9uQnknLCB0aGlzLl9mb3JtYXRVc2VyRWxlbWVudCh1KSxcclxuICAgICAgICAgICAgICB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgdS5nZW5kZXIpLCB0aW1lKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5fc2Vzc2lvbi5wcm9maWxlLmJ5SWQpXHJcbiAgICAgICAgdGhpcy5ub3RlID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdBY3Rpb25UYWtlbicsIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5nZW5kZXIsIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5uYW1lLFxyXG4gICAgICAgICAgdGhpcy5fYWN0aW9uTmFtZShhY3Rpb24sIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5nZW5kZXIpLCB0aW1lKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMubm90ZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdVRha2VuQWN0aW9uJywgdGhpcy5fYWN0aW9uTmFtZShhY3Rpb24sICd5b3UnKSwgdGltZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChub3RlKVxyXG4gICAgICB0aGlzLm5vdGUgPSBub3RlO1xyXG4gICAgZWxzZSBpZiAob3duZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCAmJiBpc3N1ZWQpIHtcclxuICAgICAgY29uc3QgdGltZSA9IHRoaXMuX2Zyb21Ob3coaXNzdWVkKTtcclxuICAgICAgaWYgKGJ5SWQpIHtcclxuICAgICAgICBpZiAoYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmJ5SWQpXHJcbiAgICAgICAgICB0aGlzLm5vdGUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTdWJtaXR0ZWROb3RlQnlZb3UnLCB0aGlzLl9zZXNzaW9uLnByb2ZpbGUubmFtZSwgdGltZSk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5fYWNjb3VudHMuZ2V0KGJ5SWQpLnN1YnNjcmliZSh1ID0+XHJcbiAgICAgICAgICAgIHRoaXMubm90ZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3VibWl0dGVkTm90ZUJ5JywgdS5nZW5kZXIsIHRoaXMuX2Zvcm1hdFVzZXJFbGVtZW50KHUpLCB0aW1lKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUlkKVxyXG4gICAgICAgICAgdGhpcy5ub3RlID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJtaXR0ZWROb3RlJywgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmdlbmRlciwgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm5hbWUsIHRpbWUpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMubm90ZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdVN1Ym1pdHRlZE5vdGUnLCB0aW1lKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9hY3Rpb25OYW1lKG5hbWU6IHN0cmluZywgZ2VuZGVyOiBHZW5kZXIgfCAneW91Jykge1xyXG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbmFtZSk7XHJcbiAgICBpZiAoIWFjdGlvbikgcmV0dXJuIG5hbWU7XHJcbiAgICBpZiAoZ2VuZGVyID09PSAneW91Jykge1xyXG4gICAgICBjb25zdCBnZW5kZXIgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYnlHZW5kZXIgfHwgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmdlbmRlcjtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICAoZ2VuZGVyID09PSAnTWFsZScgPyAoYWN0aW9uLnlvdU1hbGUgfHwgYWN0aW9uLnlvdSkgOlxyXG4gICAgICAgICAgZ2VuZGVyID09PSAnRmVtYWxlJyA/IChhY3Rpb24ueW91RmVtYWxlIHx8IGFjdGlvbi55b3UpIDpcclxuICAgICAgICAgICAgYWN0aW9uLnlvdSkgfHwgYWN0aW9uLnBhc3QgfHxcclxuICAgICAgICBhY3Rpb24udGl0bGUpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKChnZW5kZXIgPT09ICdNYWxlJyA/IChhY3Rpb24ucGFzdE1hbGUgfHwgYWN0aW9uLnBhc3QpIDpcclxuICAgICAgZ2VuZGVyID09PSAnRmVtYWxlJyA/IChhY3Rpb24ucGFzdEZlbWFsZSB8fCBhY3Rpb24ucGFzdCkgOlxyXG4gICAgICAgIGFjdGlvbi5wYXN0KSB8fFxyXG4gICAgICBhY3Rpb24udGl0bGUpLnRvTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2Zyb21Ob3coZGF0ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIG1vbWVudChkYXRlKS5mcm9tTm93KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kdXJhdGlvbih0aW1lOiBudW1iZXIpIHtcclxuICAgIHJldHVybiBtb21lbnQuZHVyYXRpb24odGltZSwgJ3MnKS5odW1hbml6ZSgpO1xyXG4gIH1cclxuICAvKiogKi9cclxuICBwcml2YXRlIGFzeW5jIF9yZWZyZXNoKCkge1xyXG4gICAgY29uc3QgeyBhY3Rpb25zIH0gPSB0aGlzLml0ZW07XHJcbiAgICB0aGlzLmFjdGlvbnMgPSBhY3Rpb25zICYmIGFjdGlvbnMubGVuZ3RoID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmlsdGVyKGEgPT4gYWN0aW9ucy5pbmRleE9mKGEubmFtZSkgPiAtMSkgOiBudWxsO1xyXG4gICAgY29uc3QgeyBzZW5kZXJJZCB9ID0gdGhpcy5pdGVtO1xyXG4gICAgLy8gc2VuZGVyXHJcbiAgICBpZiAoc2VuZGVySWQgJiYgKHNlbmRlcklkICE9PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkpIHtcclxuICAgICAgY29uc3Qgd2hvID0gYXdhaXQgdGhpcy5fYWNjb3VudHMuZ2V0KHNlbmRlcklkKS50b1Byb21pc2UoKTtcclxuICAgICAgdGhpcy5zZW5kZXIgPSB0aGlzLl9mb3JtYXRVc2VyRWxlbWVudCh3aG8pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fY29tbWVudHMoKTtcclxuICAgIHRoaXMuX25vdGUoKTtcclxuICAgIHRoaXMuX2F3YWl0aW5nKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NvbW1lbnRzKCkge1xyXG4gICAgY29uc3QgeyB2aWV3ZWQsIGNvbW1lbnRzIH0gPSB0aGlzLml0ZW07XHJcbiAgICB0aGlzLm5ld0NvbW1lbnRzID0gdmlld2VkID9cclxuICAgICAgY29tbWVudHMuZmlsdGVyKGMgPT4gYy50aW1lID4gdmlld2VkICYmIChjLmJ5SWQgfHwgYy51c2VySWQpICE9PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkubGVuZ3RoIHx8IG51bGwgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfYXdhaXRpbmcoKSB7XHJcbiAgICAvL2F3YWl0aW5nXHJcbiAgICBsZXQgcmVjaXBpZW50cyA9IHRoaXMuaXRlbS5yZWNpcGllbnRzLmZpbHRlcihyID0+IHIucGVuZGluZyAmJiAhci5lc3RpbWF0ZSkuXHJcbiAgICAgIHNvcnQoKHIwLCByMSkgPT4gcjAucmVjZWl2ZWQgPiByMS5yZWNlaXZlZCA/IDEgOiAtMSkuXHJcbiAgICAgIG1hcChyID0+IHIudXNlcklkKTtcclxuICAgIHJlY2lwaWVudHMgPSByZWNpcGllbnRzLmZpbHRlcigociwgaSkgPT4gcmVjaXBpZW50cy5pbmRleE9mKHIpID09PSBpKTsgLyogdW5pcXVlICovXHJcbiAgICBpZiAocmVjaXBpZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmIChyZWNpcGllbnRzLmluZGV4T2YodGhpcy5fc2Vzc2lvbi51c2VySWQpIDwgMCB8fCByZWNpcGllbnRzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBjb25zdCB1c2VycyA9IGF3YWl0IHRoaXMuX2FjY291bnRzLmdldEFsbChyZWNpcGllbnRzLmZpbHRlcihyID0+IHIgIT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgY29uc3QgbmFtZXMgPSB1c2Vycy5tYXAocCA9PiB0aGlzLl9mb3JtYXRVc2VyRWxlbWVudChwKSk7XHJcbiAgICAgICAgcmVjaXBpZW50cy5pbmRleE9mKHRoaXMuX3Nlc3Npb24udXNlcklkKSA+IC0xICYmXHJcbiAgICAgICAgICBuYW1lcy5wdXNoKHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdXJzZWxmJykpO1xyXG4gICAgICAgIHRoaXMuYXdhaXRpbmcgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdBd2FpdGluZycsIHRoaXMuX3RyYW5zbGF0ZS5qb2luKG5hbWVzKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAgICogQ2hhdFxyXG4gICAgICogQHBhcmFtIGVcclxuICAgICAqL1xyXG4gIGNoYXQoZTogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdXNlcklkID0gKGUuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZ2V0QXR0cmlidXRlKCdkYXRhLWluZm8nKTtcclxuICAgIHVzZXJJZCAmJlxyXG4gICAgICB0aGlzLl9jaGF0Lm9wZW4odXNlcklkKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZm9ybWF0VXNlckVsZW1lbnQocGVyc29uOiBVc2VySW5mbykge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NoYXQuZm9ybWF0KHBlcnNvbik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBhY3Rpb25cclxuICAgKi9cclxuICBzZW5kKGFjdGlvbjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7IGlkLCBudW1iZXIsIHZlcnNpb24sIGZvcm1JZCB9ID0gdGhpcy5pdGVtO1xyXG4gICAgY29uc3QgZGF0YTogQWN0aW9uRGlhbG9nRGF0YSA9IHtcclxuICAgICAgYWN0aW9uLFxyXG4gICAgICBpdGVtOiB0aGlzLml0ZW1cclxuICAgIH07XHJcbiAgICB0aGlzLl9kaWFsb2cub3BlbihBY3Rpb25EaWFsb2csIHtcclxuICAgICAgZGF0YSxcclxuICAgICAgZGlyZWN0aW9uOiB0aGlzLl9kaXIudmFsdWVcclxuICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGFyZ3MgPT4ge1xyXG4gICAgICBpZiAoYXJncykge1xyXG4gICAgICAgIHRoaXMubW9kZSA9ICd3b3JraW5nJztcclxuICAgICAgICB0aGlzLl9tYWlsYm94LnNlbmQoaWQsIHZlcnNpb24sIGZvcm1JZCwgbnVsbCwgYWN0aW9uLCBhcmdzKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY2FjdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5hY3Rpb25zLmZpbmQoYSA9PiBhLm5hbWUgPT09IGFjdGlvbiksXHJcbiAgICAgICAgICAgIGFkamVjdGl2ZSA9IGNhY3Rpb24uYWRqZWN0aXZlIHx8IGNhY3Rpb24udGl0bGU7XHJcbiAgICAgICAgICB0aGlzLl9zYi50b2FzdCgnU2VudCcsIG51bWJlciwgYWRqZWN0aXZlLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgdGhpcy5zZW50LmVtaXQodGhpcy5pdGVtKTtcclxuICAgICAgICAgIHRoaXMubW9kZSA9ICdkb25lJztcclxuICAgICAgICB9LCBlID0+IHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZVJlc3BvbnNlKGUsIHRoaXMuaXRlbSwgJ1NlbmRFcnInKTtcclxuICAgICAgICAgIHRoaXMubW9kZSA9ICdmYWlsZWQnO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHJlc3BvbnNlXHJcbiAgICogQHBhcmFtIGl0ZW1cclxuICAgKiBAcGFyYW0gbWVzc2FnZSByZXNvdXJjZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2hhbmRsZVJlc3BvbnNlKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSwgaXRlbTogSGVhZGVyTW9kZWwsIG1lc3NhZ2U6IHN0cmluZykge1xyXG4gICAgaWYgKHJlc3BvbnNlLmNvbnN0cnVjdG9yLm5hbWUgPT09ICdQb3NpdGlvbkVycm9yJylcclxuICAgICAgc3dpdGNoIChyZXNwb25zZS5jb2RlKSB7XHJcbiAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ1VzZXJEZW5pZWRHZW9FcnInKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcignR2VvRXJyJyk7XHJcbiAgICAgIH1cclxuICAgIGVsc2Ugc3dpdGNoIChyZXNwb25zZS5zdGF0dXMpIHtcclxuICAgICAgY2FzZSA0MDk6XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ1ZlcnNpb25FcnInLCBpdGVtLm51bWJlcik7XHJcbiAgICAgICAgICBjb25zdCBvYmogPSByZXNwb25zZS5lcnJvciAvKiBzZXJpYWxpemVkIG1vZGVsICovIGFzIFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgICAgICAgICBPYmplY3QuYXNzaWduKGl0ZW0sIG9iaik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIGNhc2UgNDA2OlxyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yU3RyaW5nKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLl9zYi5lcnJvcihtZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuX3JlZnJlc2hUYXNrKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5fdHlwaW5nVGFzayAmJiBjbGVhclRpbWVvdXQodGhpcy5fdHlwaW5nVGFzayk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzdW1tYXJ5XCIgKm5nSWY9XCJpdGVtLnN1bW1hcnlcIiBbaW5uZXJIVE1MXT1cIml0ZW0uc3VtbWFyeVwiPlxyXG48L2Rpdj5cclxuPGRpdj5cclxuICA8Yml6ZG9jLWF0dGFjaG1lbnRzIFttb2RlbF09XCJpdGVtXCI+PC9iaXpkb2MtYXR0YWNobWVudHM+XHJcbiAgPGJpemRvYy1ldmVudHMgW21vZGVsXT1cIml0ZW1cIj48L2JpemRvYy1ldmVudHM+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgPHNwYW4gY2xhc3M9XCJub3RlXCIgW2lubmVySFRNTF09XCJub3RlIHwgc2FuaXRpemVIdG1sXCIgKGNsaWNrKT1cImNoYXQoJGV2ZW50KVwiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYSBvZiBhY3Rpb25zXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic2VuZChhLm5hbWUpXCIgW2JpemRvY1Rvb2x0aXBdPVwiYS50aXRsZVwiICpuZ0lmPVwiYS5pY29uXCIgY2xhc3M9XCJ0b29sXCI+XHJcbiAgICAgIDxtYXQtaWNvbj57e2EuaWNvbn19PC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJtYXQtc21hbGxcIiBmeExheW91dD1cInJvd1wiPlxyXG4gICAgPHNwYW4+e3tpdGVtLnN0YXRlSWQgfCBzdGF0ZSB9fTwvc3Bhbj5cclxuICAgICZuYnNwO1xyXG4gICAgPHNwYW4gY2xhc3M9XCJ0aW1lXCIgYml6ZG9jVG9vbHRpcD1cInt7aXRlbS5yZWNlaXZlZCB8IGFtQ2FsZW5kYXJ9fVwiPnt7aXRlbS5yZWNlaXZlZCB8IGFtVGltZUFnb319PC9zcGFuPlxyXG4gICAgJm5ic3A7XHJcbiAgICA8c3BhbiBbaW5uZXJIVE1MXT1cInNlbmRlciB8IHNhbml0aXplSHRtbFwiIChjbGljayk9XCJjaGF0KCRldmVudClcIiBjbGFzcz1cIndob1wiPjwvc3Bhbj5cclxuICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiYXdhaXRpbmcgfCBzYW5pdGl6ZUh0bWxcIiAoY2xpY2spPVwiY2hhdCgkZXZlbnQpXCIgY2xhc3M9XCJ3aG9cIj48L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxkaXYgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwibWF0LXNtYWxsXCIgKm5nSWY9XCJ0eXBpbmdcIj57eydTb21lb25lVHlwaW5nJ3x0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgIDxkaXYgKm5nSWY9XCJpdGVtLmNvbW1lbnRzLmxlbmd0aFwiIGNsYXNzPVwibWF0LXNtYWxsXCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiIW5ld0NvbW1lbnRzOyBlbHNlIG5ld2NvbW1lbnRzXCI+e3tpdGVtLmNvbW1lbnRzLmxlbmd0aCA+IDEgPyAoJ0NvbW1lbnRzQ291bnQnIHwgdHJhbnNsYXRlIDogaXRlbS5jb21tZW50cy5sZW5ndGgpIDogJ09uZUNvbW1lbnQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cIml0ZW0udGFnc1wiPlxyXG4gICAgPHNwYW4gKm5nRm9yPVwibGV0IHRhZyBvZiBpdGVtLnRhZ3NcIiBjbGFzcz1cIm1hdC1jaGlwIG1hdC1zdGFuZGFyZC1jaGlwIHNtYWxsLWNoaXBcIj57e3RhZ319PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNuZXdjb21tZW50cz5cclxuICA8c3BhbiBbaW5uZXJIVE1MXT1cIidOZXdDb21tZW50c0NvdW50JyB8IHRyYW5zbGF0ZSA6IGl0ZW0uY29tbWVudHMubGVuZ3RoIDogbmV3Q29tbWVudHMgfCBzYW5pdGl6ZUh0bWxcIj48L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kZWQtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2Jyb3dzZS9leHBhbmRlZC1pdGVtL2V4cGFuZGVkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9icm93c2UvZXhwYW5kZWQtaXRlbS9leHBhbmRlZC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUcxRixPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLG9DQUFvQyxDQUFDO0FBTXBGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUkzQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFakMsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLGdCQUFnQixHQUFHLElBQUksQ0FBQztBQU9wRCxNQUFNLE9BQU8scUJBQXFCO0lBYWhDLFlBQW9CLEdBQWtCLEVBQzVCLEtBQWUsRUFDZixTQUF5QixFQUN6QixJQUFvQixFQUNwQixVQUE0QixFQUM1QixRQUF3QixFQUN4QixPQUFrQixFQUNsQixRQUF3QixFQUN4QixVQUFzQjtRQVJaLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDNUIsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQUNmLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQW5CYixTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFVakQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFVaEQsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyRCxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDWixJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUN0RixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ2xEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuRSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO2dCQUMvQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDaEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDbEU7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pFLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0SCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDN0UsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDYSxLQUFLOztZQUNqQixNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0RyxJQUFJLGNBQWMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUMvQyxJQUFJLE9BQU8sRUFBRTt3QkFDWCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUNqQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEVBQ25FLFNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQzt3QkFDakYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7cUJBQzVIO3lCQUNJO3dCQUNILE1BQU0sV0FBVyxHQUFHLE1BQU07NEJBQ3hCLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLE1BQU07Z0NBQzdCLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWTttQ0FDcEIsQ0FBQyxDQUFDLFdBQVcsS0FBSyxFQUFFLENBQUMsQ0FBQzt3QkFDN0IsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRTs0QkFDckMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDOzRCQUNqRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7eUJBQzFIOzZCQUNJOzRCQUNILE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7NEJBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFDbEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxFQUMxQixJQUFJLEVBQ0osSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO3lCQUNmO3FCQUNGO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQ0ksSUFBSSxPQUFPLEVBQUU7Z0JBQ2hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3BDLElBQUksSUFBSSxFQUFFO29CQUNSLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUk7d0JBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQ2pGLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzs7d0JBRXBDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNyQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFDNUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ2xEO3FCQUNJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSTtvQkFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFDN0csSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7O29CQUVoRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQzVGO2lCQUNJLElBQUksSUFBSTtnQkFDWCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztpQkFDZCxJQUFJLE9BQU8sS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFFO2dCQUMzRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLElBQUksRUFBRTtvQkFDUixJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJO3dCQUNyQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzs7d0JBRXhGLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNyQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQzdHO3FCQUNJO29CQUNILElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSTt3QkFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzs7d0JBRXpILElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQzdEO2FBQ0Y7UUFDSCxDQUFDO0tBQUE7SUFDTyxXQUFXLENBQUMsSUFBWSxFQUFFLE1BQXNCO1FBQ3RELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDekIsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDOUUsT0FBTyxDQUNMLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNuRCxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3RELE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSTtnQkFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzdELE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDeEQsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNkLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBQ08sUUFBUSxDQUFDLElBQVU7UUFDekIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxJQUFZO1FBQzVCLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUNELE1BQU07SUFDUSxRQUFROztZQUNwQixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFILE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQy9CLFNBQVM7WUFDVCxJQUFJLFFBQVEsSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNuRCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMzRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM1QztZQUNELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQztLQUFBO0lBQ08sU0FBUztRQUNmLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQ3pCLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pILENBQUM7SUFFYSxTQUFTOztZQUNyQixVQUFVO1lBQ1YsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0JBQ3pFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JCLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVk7WUFDbkYsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDekIsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUN6RSxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUMxRyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3pELFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQzNDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDOUU7YUFDRjtRQUNILENBQUM7S0FBQTtJQUVEOzs7U0FHSztJQUNMLElBQUksQ0FBQyxDQUFhO1FBQ2hCLE1BQU0sTUFBTSxHQUFJLENBQUMsQ0FBQyxVQUEwQixDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2RSxNQUFNO1lBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNPLGtCQUFrQixDQUFDLE1BQWdCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNEOzs7T0FHRztJQUNILElBQUksQ0FBQyxNQUFjO1FBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2xELE1BQU0sSUFBSSxHQUFxQjtZQUM3QixNQUFNO1lBQ04sSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDOUIsSUFBSTtZQUNKLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7U0FDM0IsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQyxJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUN6RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsRUFDeEUsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQztvQkFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztnQkFDckIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO29CQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQzlDLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO2dCQUN2QixDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSyxlQUFlLENBQUMsUUFBaUMsRUFBRSxJQUFpQixFQUFFLE9BQWU7UUFDM0YsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxlQUFlO1lBQy9DLFFBQVEsUUFBUSxDQUFDLElBQUksRUFBRTtnQkFDckIsS0FBSyxDQUFDO29CQUNKLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7b0JBQ25DLE1BQU07Z0JBQ1I7b0JBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDNUI7O1lBQ0UsUUFBUSxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUM1QixLQUFLLEdBQUc7b0JBQ047d0JBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDMUMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxzQkFBNkMsQ0FBQzt3QkFDekUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQ3pCLE1BQU07cUJBQ1A7Z0JBQ0gsS0FBSyxHQUFHO29CQUNOLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDckMsTUFBTTtnQkFDUjtvQkFDRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMzQjtJQUNILENBQUM7SUFDRCxXQUFXO1FBQ1QsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7O21IQTVQVSxxQkFBcUI7dUdBQXJCLHFCQUFxQixpSEN4QmxDLHUwREFzQ0E7NEZEZGEscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2lCQUM5QzsrVEFFVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ2EsSUFBSTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWNpcGllbnRNb2RlbCwgSGVhZGVyTW9kZWwsIEFjdGlvbiwgVXNlckluZm8sIEdlbmRlciB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQWN0aW9uRGlhbG9nLCBBY3Rpb25EaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vY29tcG9zZS9hY3Rpb24vYWN0aW9uLmRpYWxvZyc7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9hY2NvdW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgQ2hhdEluZm8gfSBmcm9tICcuLi8uLi9jaGF0L2NoYXQtaW5mbyc7XHJcbmNvbnN0IG1vbWVudCA9IHJlcXVpcmUoJ21vbWVudCcpO1xyXG5cclxuY29uc3QgUkVGUkVTSF9USU1FID0gMzAwMDAsIFRZUElOR19ISU5UX1RJTUUgPSAxNTAwO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtZXhwYW5kZWQtaXRlbScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cGFuZGVkLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2V4cGFuZGVkLWl0ZW0uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXhwYW5kZWRJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGl0ZW06IFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY2lwaWVudE1vZGVsPGFueT4+KCk7XHJcbiAgYWN0aW9ucz86IEFjdGlvbltdO1xyXG4gIG5ld0NvbW1lbnRzPzogbnVtYmVyO1xyXG4gIHR5cGluZz86IGJvb2xlYW47XHJcbiAgbm90ZTogc3RyaW5nO1xyXG4gIHNlbmRlcj86IHN0cmluZztcclxuICBhd2FpdGluZz86IHN0cmluZztcclxuICBtb2RlOiAnd29ya2luZycgfCAnZG9uZScgfCAnZmFpbGVkJyB8IG51bGw7XHJcbiAgcHJpdmF0ZSBfdHlwaW5nVGFzazogTm9kZUpTLlRpbWVvdXQ7XHJcbiAgcHJpdmF0ZSBfcmVmcmVzaFRhc2s6IE5vZGVKUy5UaW1lb3V0O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2hhdDogQ2hhdEluZm8sXHJcbiAgICBwcml2YXRlIF9hY2NvdW50czogQWNjb3VudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaXI6IERpcmVjdGlvbmFsaXR5LFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbWFpbGJveDogTWFpbGJveFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbWVzc2FnaW5nOiBIdWJTZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLmNvbW1lbnQkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICAgIGlmIChlLmlkID09PSB0aGlzLml0ZW0uaWQgJiYgKGUubW9kZWwuYnlJZCB8fCBlLm1vZGVsLnVzZXJJZCkgIT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICB0aGlzLl9jb21tZW50cygpO1xyXG4gICAgICAgICAgdGhpcy5fYWNjb3VudHMuZ2V0KGUubW9kZWwudXNlcklkKS5zdWJzY3JpYmUodSA9PlxyXG4gICAgICAgICAgICB0aGlzLl9zYi50b2FzdCgnQ29tbWVudGVkJywgdS5nZW5kZXIsIHUubmFtZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB0aGlzLl9tZXNzYWdpbmcudXBkYXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICBpZiAoZS5tb2RlbC5pZCA9PT0gdGhpcy5pdGVtLmlkKSB7XHJcbiAgICAgICAgdGhpcy5fcmVmcmVzaCgpO1xyXG4gICAgICAgIChlLnVzZXJJZCAhPT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpICYmIHRoaXMuX2FjY291bnRzLmdldChlLnVzZXJJZCkuc3Vic2NyaWJlKHUgPT5cclxuICAgICAgICAgIHRoaXMuX3NiLnRvYXN0KCdNYWlsVmVyc2lvblVwZGF0ZScsIHRoaXMuaXRlbS5udW1iZXIsIHUubmFtZSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21haWxib3guY2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICBpZiAoZS5pZCA9PT0gdGhpcy5pdGVtLmlkKVxyXG4gICAgICAgIHRoaXMuX3JlZnJlc2goKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLmNvbW1lbnRUeXBpbmckLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBmaWx0ZXIoZSA9PiBlLmlkID09PSB0aGlzLml0ZW0uZG9jdW1lbnRJZCkpLnN1YnNjcmliZShjID0+IHtcclxuICAgICAgdGhpcy50eXBpbmcgPSB0cnVlO1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fdHlwaW5nVGFzayk7XHJcbiAgICAgIHRoaXMuX3R5cGluZ1Rhc2sgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMudHlwaW5nID0gZmFsc2UsIFRZUElOR19ISU5UX1RJTUUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9yZWZyZXNoKCk7XHJcbiAgICB0aGlzLl9yZWZyZXNoVGFzayA9IHNldEludGVydmFsKCgpID0+IHRoaXMuX3JlZnJlc2goKSwgUkVGUkVTSF9USU1FKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBhc3luYyBfbm90ZSgpIHtcclxuICAgIGNvbnN0IHsgb3duZXJJZCwgaXNzdWVkLCBzdWJzdGl0dXRpbmdJZCwgcmVjZWl2ZWQsIHJlcGxpZWQsIGxvZywgaWQsIG5vdGUsIGJ5SWQsIGFjdGlvbiB9ID0gdGhpcy5pdGVtO1xyXG4gICAgaWYgKHN1YnN0aXR1dGluZ0lkKSB7XHJcbiAgICAgIHRoaXMuX2FjY291bnRzLmdldChzdWJzdGl0dXRpbmdJZCkuc3Vic2NyaWJlKHUgPT4ge1xyXG4gICAgICAgIGlmIChyZXBsaWVkKSB7XHJcbiAgICAgICAgICBjb25zdCB0aW1lID0gdGhpcy5fZnJvbU5vdyhyZXBsaWVkKSxcclxuICAgICAgICAgICAgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gYWN0aW9uKSxcclxuICAgICAgICAgICAgYWRqZWN0aXZlID0gYWN0aW9uID8gKGFjdGlvbi5hZGplY3RpdmUgfHwgYWN0aW9uLnRpdGxlKS50b0xvd2VyQ2FzZSgpIDogYWN0aW9uO1xyXG4gICAgICAgICAgdGhpcy5ub3RlID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdZb3VTdWJzdGl0dXRlQWN0aW9uVGFrZW4nLCB1LmdlbmRlciwgYWRqZWN0aXZlLCB0aGlzLl9mb3JtYXRVc2VyRWxlbWVudCh1KSwgdGltZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgZXNjYWxhdGlvbnMgPSBpc3N1ZWQgJiZcclxuICAgICAgICAgICAgbG9nLmZpbHRlcihsID0+IGwudGltZSA+IGlzc3VlZCAmJlxyXG4gICAgICAgICAgICAgIGwudHlwZSA9PT0gJ0VzY2FsYXRpb24nXHJcbiAgICAgICAgICAgICAgJiYgbC5yZWNpcGllbnRJZCA9PT0gaWQpO1xyXG4gICAgICAgICAgaWYgKGVzY2FsYXRpb25zICYmIGVzY2FsYXRpb25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBjb25zdCBkdXJhdGlvbiA9IG1vbWVudChlc2NhbGF0aW9uc1swXS50aW1lKS5kaWZmKHJlY2VpdmVkLCAncycpO1xyXG4gICAgICAgICAgICB0aGlzLm5vdGUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ0VzY2FsYXRlZEZyb20nLCB1LmdlbmRlciwgdGhpcy5fZm9ybWF0VXNlckVsZW1lbnQodSksIHRoaXMuX2R1cmF0aW9uKGR1cmF0aW9uKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgdGltZSA9IHRoaXMuX2Zyb21Ob3cocmVjZWl2ZWQpO1xyXG4gICAgICAgICAgICB0aGlzLm5vdGUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ05vdGUnLCB1LmdlbmRlcixcclxuICAgICAgICAgICAgICB0aGlzLl9mb3JtYXRVc2VyRWxlbWVudCh1KSxcclxuICAgICAgICAgICAgICB0aW1lLFxyXG4gICAgICAgICAgICAgIG5vdGUgfHwgJycpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXBsaWVkKSB7XHJcbiAgICAgIGNvbnN0IHRpbWUgPSB0aGlzLl9mcm9tTm93KHJlcGxpZWQpO1xyXG4gICAgICBpZiAoYnlJZCkge1xyXG4gICAgICAgIGlmIChieUlkID09PSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYnlJZClcclxuICAgICAgICAgIHRoaXMubm90ZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0FjdGlvblRha2VuQnlZb3UnLCB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgJ3lvdScpLFxyXG4gICAgICAgICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUubmFtZSwgdGltZSk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5fYWNjb3VudHMuZ2V0KGJ5SWQpLnN1YnNjcmliZSh1ID0+XHJcbiAgICAgICAgICAgIHRoaXMubm90ZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdVRha2VuQWN0aW9uQnknLCB0aGlzLl9mb3JtYXRVc2VyRWxlbWVudCh1KSxcclxuICAgICAgICAgICAgICB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgdS5nZW5kZXIpLCB0aW1lKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5fc2Vzc2lvbi5wcm9maWxlLmJ5SWQpXHJcbiAgICAgICAgdGhpcy5ub3RlID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdBY3Rpb25UYWtlbicsIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5nZW5kZXIsIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5uYW1lLFxyXG4gICAgICAgICAgdGhpcy5fYWN0aW9uTmFtZShhY3Rpb24sIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5nZW5kZXIpLCB0aW1lKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMubm90ZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdVRha2VuQWN0aW9uJywgdGhpcy5fYWN0aW9uTmFtZShhY3Rpb24sICd5b3UnKSwgdGltZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChub3RlKVxyXG4gICAgICB0aGlzLm5vdGUgPSBub3RlO1xyXG4gICAgZWxzZSBpZiAob3duZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCAmJiBpc3N1ZWQpIHtcclxuICAgICAgY29uc3QgdGltZSA9IHRoaXMuX2Zyb21Ob3coaXNzdWVkKTtcclxuICAgICAgaWYgKGJ5SWQpIHtcclxuICAgICAgICBpZiAoYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmJ5SWQpXHJcbiAgICAgICAgICB0aGlzLm5vdGUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTdWJtaXR0ZWROb3RlQnlZb3UnLCB0aGlzLl9zZXNzaW9uLnByb2ZpbGUubmFtZSwgdGltZSk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5fYWNjb3VudHMuZ2V0KGJ5SWQpLnN1YnNjcmliZSh1ID0+XHJcbiAgICAgICAgICAgIHRoaXMubm90ZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3VibWl0dGVkTm90ZUJ5JywgdS5nZW5kZXIsIHRoaXMuX2Zvcm1hdFVzZXJFbGVtZW50KHUpLCB0aW1lKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUlkKVxyXG4gICAgICAgICAgdGhpcy5ub3RlID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJtaXR0ZWROb3RlJywgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmdlbmRlciwgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm5hbWUsIHRpbWUpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMubm90ZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdVN1Ym1pdHRlZE5vdGUnLCB0aW1lKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9hY3Rpb25OYW1lKG5hbWU6IHN0cmluZywgZ2VuZGVyOiBHZW5kZXIgfCAneW91Jykge1xyXG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbmFtZSk7XHJcbiAgICBpZiAoIWFjdGlvbikgcmV0dXJuIG5hbWU7XHJcbiAgICBpZiAoZ2VuZGVyID09PSAneW91Jykge1xyXG4gICAgICBjb25zdCBnZW5kZXIgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYnlHZW5kZXIgfHwgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmdlbmRlcjtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICAoZ2VuZGVyID09PSAnTWFsZScgPyAoYWN0aW9uLnlvdU1hbGUgfHwgYWN0aW9uLnlvdSkgOlxyXG4gICAgICAgICAgZ2VuZGVyID09PSAnRmVtYWxlJyA/IChhY3Rpb24ueW91RmVtYWxlIHx8IGFjdGlvbi55b3UpIDpcclxuICAgICAgICAgICAgYWN0aW9uLnlvdSkgfHwgYWN0aW9uLnBhc3QgfHxcclxuICAgICAgICBhY3Rpb24udGl0bGUpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKChnZW5kZXIgPT09ICdNYWxlJyA/IChhY3Rpb24ucGFzdE1hbGUgfHwgYWN0aW9uLnBhc3QpIDpcclxuICAgICAgZ2VuZGVyID09PSAnRmVtYWxlJyA/IChhY3Rpb24ucGFzdEZlbWFsZSB8fCBhY3Rpb24ucGFzdCkgOlxyXG4gICAgICAgIGFjdGlvbi5wYXN0KSB8fFxyXG4gICAgICBhY3Rpb24udGl0bGUpLnRvTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2Zyb21Ob3coZGF0ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIG1vbWVudChkYXRlKS5mcm9tTm93KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kdXJhdGlvbih0aW1lOiBudW1iZXIpIHtcclxuICAgIHJldHVybiBtb21lbnQuZHVyYXRpb24odGltZSwgJ3MnKS5odW1hbml6ZSgpO1xyXG4gIH1cclxuICAvKiogKi9cclxuICBwcml2YXRlIGFzeW5jIF9yZWZyZXNoKCkge1xyXG4gICAgY29uc3QgeyBhY3Rpb25zIH0gPSB0aGlzLml0ZW07XHJcbiAgICB0aGlzLmFjdGlvbnMgPSBhY3Rpb25zICYmIGFjdGlvbnMubGVuZ3RoID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmlsdGVyKGEgPT4gYWN0aW9ucy5pbmRleE9mKGEubmFtZSkgPiAtMSkgOiBudWxsO1xyXG4gICAgY29uc3QgeyBzZW5kZXJJZCB9ID0gdGhpcy5pdGVtO1xyXG4gICAgLy8gc2VuZGVyXHJcbiAgICBpZiAoc2VuZGVySWQgJiYgKHNlbmRlcklkICE9PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkpIHtcclxuICAgICAgY29uc3Qgd2hvID0gYXdhaXQgdGhpcy5fYWNjb3VudHMuZ2V0KHNlbmRlcklkKS50b1Byb21pc2UoKTtcclxuICAgICAgdGhpcy5zZW5kZXIgPSB0aGlzLl9mb3JtYXRVc2VyRWxlbWVudCh3aG8pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fY29tbWVudHMoKTtcclxuICAgIHRoaXMuX25vdGUoKTtcclxuICAgIHRoaXMuX2F3YWl0aW5nKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NvbW1lbnRzKCkge1xyXG4gICAgY29uc3QgeyB2aWV3ZWQsIGNvbW1lbnRzIH0gPSB0aGlzLml0ZW07XHJcbiAgICB0aGlzLm5ld0NvbW1lbnRzID0gdmlld2VkID9cclxuICAgICAgY29tbWVudHMuZmlsdGVyKGMgPT4gYy50aW1lID4gdmlld2VkICYmIChjLmJ5SWQgfHwgYy51c2VySWQpICE9PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkubGVuZ3RoIHx8IG51bGwgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfYXdhaXRpbmcoKSB7XHJcbiAgICAvL2F3YWl0aW5nXHJcbiAgICBsZXQgcmVjaXBpZW50cyA9IHRoaXMuaXRlbS5yZWNpcGllbnRzLmZpbHRlcihyID0+IHIucGVuZGluZyAmJiAhci5lc3RpbWF0ZSkuXHJcbiAgICAgIHNvcnQoKHIwLCByMSkgPT4gcjAucmVjZWl2ZWQgPiByMS5yZWNlaXZlZCA/IDEgOiAtMSkuXHJcbiAgICAgIG1hcChyID0+IHIudXNlcklkKTtcclxuICAgIHJlY2lwaWVudHMgPSByZWNpcGllbnRzLmZpbHRlcigociwgaSkgPT4gcmVjaXBpZW50cy5pbmRleE9mKHIpID09PSBpKTsgLyogdW5pcXVlICovXHJcbiAgICBpZiAocmVjaXBpZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmIChyZWNpcGllbnRzLmluZGV4T2YodGhpcy5fc2Vzc2lvbi51c2VySWQpIDwgMCB8fCByZWNpcGllbnRzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBjb25zdCB1c2VycyA9IGF3YWl0IHRoaXMuX2FjY291bnRzLmdldEFsbChyZWNpcGllbnRzLmZpbHRlcihyID0+IHIgIT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgY29uc3QgbmFtZXMgPSB1c2Vycy5tYXAocCA9PiB0aGlzLl9mb3JtYXRVc2VyRWxlbWVudChwKSk7XHJcbiAgICAgICAgcmVjaXBpZW50cy5pbmRleE9mKHRoaXMuX3Nlc3Npb24udXNlcklkKSA+IC0xICYmXHJcbiAgICAgICAgICBuYW1lcy5wdXNoKHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdXJzZWxmJykpO1xyXG4gICAgICAgIHRoaXMuYXdhaXRpbmcgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdBd2FpdGluZycsIHRoaXMuX3RyYW5zbGF0ZS5qb2luKG5hbWVzKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAgICogQ2hhdFxyXG4gICAgICogQHBhcmFtIGVcclxuICAgICAqL1xyXG4gIGNoYXQoZTogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdXNlcklkID0gKGUuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZ2V0QXR0cmlidXRlKCdkYXRhLWluZm8nKTtcclxuICAgIHVzZXJJZCAmJlxyXG4gICAgICB0aGlzLl9jaGF0Lm9wZW4odXNlcklkKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZm9ybWF0VXNlckVsZW1lbnQocGVyc29uOiBVc2VySW5mbykge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NoYXQuZm9ybWF0KHBlcnNvbik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBhY3Rpb25cclxuICAgKi9cclxuICBzZW5kKGFjdGlvbjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7IGlkLCBudW1iZXIsIHZlcnNpb24sIGZvcm1JZCB9ID0gdGhpcy5pdGVtO1xyXG4gICAgY29uc3QgZGF0YTogQWN0aW9uRGlhbG9nRGF0YSA9IHtcclxuICAgICAgYWN0aW9uLFxyXG4gICAgICBpdGVtOiB0aGlzLml0ZW1cclxuICAgIH07XHJcbiAgICB0aGlzLl9kaWFsb2cub3BlbihBY3Rpb25EaWFsb2csIHtcclxuICAgICAgZGF0YSxcclxuICAgICAgZGlyZWN0aW9uOiB0aGlzLl9kaXIudmFsdWVcclxuICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGFyZ3MgPT4ge1xyXG4gICAgICBpZiAoYXJncykge1xyXG4gICAgICAgIHRoaXMubW9kZSA9ICd3b3JraW5nJztcclxuICAgICAgICB0aGlzLl9tYWlsYm94LnNlbmQoaWQsIHZlcnNpb24sIGZvcm1JZCwgbnVsbCwgYWN0aW9uLCBhcmdzKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY2FjdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5hY3Rpb25zLmZpbmQoYSA9PiBhLm5hbWUgPT09IGFjdGlvbiksXHJcbiAgICAgICAgICAgIGFkamVjdGl2ZSA9IGNhY3Rpb24uYWRqZWN0aXZlIHx8IGNhY3Rpb24udGl0bGU7XHJcbiAgICAgICAgICB0aGlzLl9zYi50b2FzdCgnU2VudCcsIG51bWJlciwgYWRqZWN0aXZlLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgdGhpcy5zZW50LmVtaXQodGhpcy5pdGVtKTtcclxuICAgICAgICAgIHRoaXMubW9kZSA9ICdkb25lJztcclxuICAgICAgICB9LCBlID0+IHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZVJlc3BvbnNlKGUsIHRoaXMuaXRlbSwgJ1NlbmRFcnInKTtcclxuICAgICAgICAgIHRoaXMubW9kZSA9ICdmYWlsZWQnO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHJlc3BvbnNlXHJcbiAgICogQHBhcmFtIGl0ZW1cclxuICAgKiBAcGFyYW0gbWVzc2FnZSByZXNvdXJjZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2hhbmRsZVJlc3BvbnNlKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSwgaXRlbTogSGVhZGVyTW9kZWwsIG1lc3NhZ2U6IHN0cmluZykge1xyXG4gICAgaWYgKHJlc3BvbnNlLmNvbnN0cnVjdG9yLm5hbWUgPT09ICdQb3NpdGlvbkVycm9yJylcclxuICAgICAgc3dpdGNoIChyZXNwb25zZS5jb2RlKSB7XHJcbiAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ1VzZXJEZW5pZWRHZW9FcnInKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcignR2VvRXJyJyk7XHJcbiAgICAgIH1cclxuICAgIGVsc2Ugc3dpdGNoIChyZXNwb25zZS5zdGF0dXMpIHtcclxuICAgICAgY2FzZSA0MDk6XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ1ZlcnNpb25FcnInLCBpdGVtLm51bWJlcik7XHJcbiAgICAgICAgICBjb25zdCBvYmogPSByZXNwb25zZS5lcnJvciAvKiBzZXJpYWxpemVkIG1vZGVsICovIGFzIFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgICAgICAgICBPYmplY3QuYXNzaWduKGl0ZW0sIG9iaik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIGNhc2UgNDA2OlxyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yU3RyaW5nKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLl9zYi5lcnJvcihtZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuX3JlZnJlc2hUYXNrKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5fdHlwaW5nVGFzayAmJiBjbGVhclRpbWVvdXQodGhpcy5fdHlwaW5nVGFzayk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzdW1tYXJ5XCIgKm5nSWY9XCJpdGVtLnN1bW1hcnlcIiBbaW5uZXJIVE1MXT1cIml0ZW0uc3VtbWFyeVwiPlxyXG48L2Rpdj5cclxuPGRpdj5cclxuICA8Yml6ZG9jLWF0dGFjaG1lbnRzIFttb2RlbF09XCJpdGVtXCI+PC9iaXpkb2MtYXR0YWNobWVudHM+XHJcbiAgPGJpemRvYy1ldmVudHMgW21vZGVsXT1cIml0ZW1cIj48L2JpemRvYy1ldmVudHM+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgPHNwYW4gY2xhc3M9XCJub3RlXCIgW2lubmVySFRNTF09XCJub3RlIHwgc2FuaXRpemVIdG1sXCIgKGNsaWNrKT1cImNoYXQoJGV2ZW50KVwiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYSBvZiBhY3Rpb25zXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic2VuZChhLm5hbWUpXCIgW2JpemRvY1Rvb2x0aXBdPVwiYS50aXRsZVwiICpuZ0lmPVwiYS5pY29uXCIgY2xhc3M9XCJ0b29sXCI+XHJcbiAgICAgIDxtYXQtaWNvbj57e2EuaWNvbn19PC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJtYXQtc21hbGxcIiBmeExheW91dD1cInJvd1wiPlxyXG4gICAgPHNwYW4+e3tpdGVtLnN0YXRlSWQgfCBzdGF0ZSB9fTwvc3Bhbj5cclxuICAgICZuYnNwO1xyXG4gICAgPHNwYW4gY2xhc3M9XCJ0aW1lXCIgW2JpemRvY1Rvb2x0aXBdPVwiaXRlbS5yZWNlaXZlZCB8IGFtQ2FsZW5kYXJcIj57e2l0ZW0ucmVjZWl2ZWQgfCBhbVRpbWVBZ299fTwvc3Bhbj5cclxuICAgICZuYnNwO1xyXG4gICAgPHNwYW4gW2lubmVySFRNTF09XCJzZW5kZXIgfCBzYW5pdGl6ZUh0bWxcIiAoY2xpY2spPVwiY2hhdCgkZXZlbnQpXCIgY2xhc3M9XCJ3aG9cIj48L3NwYW4+XHJcbiAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImF3YWl0aW5nIHwgc2FuaXRpemVIdG1sXCIgKGNsaWNrKT1cImNoYXQoJGV2ZW50KVwiIGNsYXNzPVwid2hvXCI+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cIm1hdC1zbWFsbFwiICpuZ0lmPVwidHlwaW5nXCI+e3snU29tZW9uZVR5cGluZyd8dHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5jb21tZW50cy5sZW5ndGhcIiBjbGFzcz1cIm1hdC1zbWFsbFwiPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cIiFuZXdDb21tZW50czsgZWxzZSBuZXdjb21tZW50c1wiPnt7aXRlbS5jb21tZW50cy5sZW5ndGggPiAxID8gKCdDb21tZW50c0NvdW50JyB8IHRyYW5zbGF0ZSA6IGl0ZW0uY29tbWVudHMubGVuZ3RoKSA6ICdPbmVDb21tZW50JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJpdGVtLnRhZ3NcIj5cclxuICAgIDxzcGFuICpuZ0Zvcj1cImxldCB0YWcgb2YgaXRlbS50YWdzXCIgY2xhc3M9XCJtYXQtY2hpcCBtYXQtc3RhbmRhcmQtY2hpcCBzbWFsbC1jaGlwXCI+e3t0YWd9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSAjbmV3Y29tbWVudHM+XHJcbiAgPHNwYW4gW2lubmVySFRNTF09XCInTmV3Q29tbWVudHNDb3VudCcgfCB0cmFuc2xhdGUgOiBpdGVtLmNvbW1lbnRzLmxlbmd0aCA6IG5ld0NvbW1lbnRzIHwgc2FuaXRpemVIdG1sXCI+PC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
@@ -49,7 +49,9 @@ export class ChatInfo {
|
|
49
49
|
else if (this._isMobile)
|
50
50
|
this._open$.next(contact.id);
|
51
51
|
else if (!options || options.mode === 'room')
|
52
|
-
this._router.navigate(['chatroom', contact.id], {
|
52
|
+
this._router.navigate(['chatroom', contact.id], {
|
53
|
+
// group: options ? options.group : null
|
54
|
+
});
|
53
55
|
else {
|
54
56
|
this._router.navigate(['contacts/c', contact.id]);
|
55
57
|
}
|
@@ -64,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImpo
|
|
64
66
|
type: Inject,
|
65
67
|
args: [BIZDOC_CONFIG]
|
66
68
|
}] }, { type: i1.RouterImpl }, { type: i2.SessionService }]; } });
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jaGF0L2NoYXQtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQThDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQWN2RCxNQUFNLE9BQU8sUUFBUTtJQUluQixZQUN5QixNQUFvQixFQUNuQyxPQUFtQixFQUNuQixRQUF3QjtRQUR4QixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBTDFCLGNBQVMsR0FBRyxRQUFRLEVBQUUsQ0FBQztRQUMvQixXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQU03QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUNEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxNQUFnQjtRQUNyQixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFFLElBQUksQ0FBQyxPQUF3QixDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBdUIsQ0FBQztZQUM3QyxPQUFPLFlBQWEsR0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUM7U0FDekU7YUFDSSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSztZQUM3QixPQUFPLGlCQUFpQixNQUFNLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUMxRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUNEOzs7T0FHRztJQUNILElBQUksQ0FBQyxNQUFjLEVBQUUsT0FFcEI7UUFDQyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN2QixPQUFPLEdBQUc7Z0JBQ1IsRUFBRSxFQUFFLE1BQU07Z0JBQ1YsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQVM7Z0JBQ3pCLEtBQUssRUFBRSxDQUFDO2FBQ1QsQ0FBQztZQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUM7YUFFSSxJQUFJLE9BQU8sQ0FBQyxTQUFTO1lBQ3hCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRWhDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSyxJQUFJLENBQUMsT0FBd0IsQ0FBQyxHQUFHO1lBQ2xELElBQUksQ0FBQyxPQUF3QixDQUFDLEdBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDNUQsSUFBSSxJQUFJLENBQUMsU0FBUztZQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDMUIsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE1BQU07WUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQy9DLHdDQUF3QzthQUN4QyxDQUFDLENBQUM7YUFDQTtZQUNILElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQzs7c0dBekRVLFFBQVEsa0JBS1QsYUFBYTswR0FMWixRQUFRLGNBREssTUFBTTs0RkFDbkIsUUFBUTtrQkFEcEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQU03QixNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCSVpET0NfQ09ORklHLCBCaXpEb2NDb25maWcsIENoYXRTZXR0aW5ncywgQ2hhdExhdW5jaGVyRm4gfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBpc01vYmlsZSwgaXNTdHJpbmcgfSBmcm9tICcuLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IENvbnRhY3QsIFVzZXJJbmZvIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUEFUSF9DSEFSIH0gZnJvbSAnLi4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IFJvdXRlckltcGwgfSBmcm9tICcuLi9jb3JlL3JvdXRlcic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoYXRPcGVuRXZlbnQge1xyXG4gIGNvbnRhY3Q6IENvbnRhY3Q7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICBpbWFnZT86IHN0cmluZztcclxuICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBDaGF0SW5mbyB7XHJcbiAgcHJpdmF0ZSBfY29uZmlnOiBDaGF0U2V0dGluZ3MgfCBib29sZWFuO1xyXG4gIHByaXZhdGUgX2lzTW9iaWxlID0gaXNNb2JpbGUoKTtcclxuICBfb3BlbiQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KEJJWkRPQ19DT05GSUcpIGNvbmZpZzogQml6RG9jQ29uZmlnLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZy5jaGF0aW5nO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBwZXJzb25cclxuICAgKi9cclxuICBmb3JtYXQocGVyc29uOiBVc2VySW5mbyk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5fY29uZmlnICYmIGlzU3RyaW5nKCh0aGlzLl9jb25maWcgYXMgQ2hhdFNldHRpbmdzKS5hcHApKSB7XHJcbiAgICAgIGNvbnN0IHsgYXBwIH0gPSB0aGlzLl9jb25maWcgYXMgQ2hhdFNldHRpbmdzO1xyXG4gICAgICByZXR1cm4gYDxhIGhyZWY9XCIkeyhhcHAgYXMgc3RyaW5nKS5mb3JtYXRBcmdzKHBlcnNvbi5pZCl9XCI+JHtuYW1lfTwvYT5gO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5fY29uZmlnICE9PSBmYWxzZSlcclxuICAgICAgcmV0dXJuIGA8YSBkYXRhLWluZm89XCIke3BlcnNvbi5pZH1cIj4ke3BlcnNvbi5uYW1lfTwvYT5gO1xyXG4gICAgcmV0dXJuIHBlcnNvbi5uYW1lO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSB1c2VySWRcclxuICAgKi9cclxuICBvcGVuKHVzZXJJZDogc3RyaW5nLCBvcHRpb25zPzogeyAvKnRleHQ/OiBzdHJpbmcsIHJlc291cmNlPzoge1trZXk6IHN0cmluZ106IGFueX0qLyBtb2RlPzogJ3Jvb20nIHwgJ2Z1bGwnLFxyXG4gICAgZ3JvdXA/OiBzdHJpbmdcclxuICB9KSB7XHJcbiAgICBsZXQgY29udGFjdCA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jb250YWN0cy5maW5kKGMgPT4gYy5pZCA9PT0gdXNlcklkKTtcclxuICAgIGlmICghY29udGFjdCkge1xyXG4gICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBjb250YWN0ID0ge1xyXG4gICAgICAgIGlkOiB1c2VySWQsXHJcbiAgICAgICAgYWNjZXB0ZWQ6IGZhbHNlLFxyXG4gICAgICAgIHRpbWU6IG5vdy50b0pTT04oKSBhcyBhbnksXHJcbiAgICAgICAgY291bnQ6IDBcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmNvbnRhY3RzLnB1c2goY29udGFjdCk7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAoY29udGFjdC5mb3Jnb3R0ZW4pXHJcbiAgICAgIGNvbnRhY3QuZm9yZ290dGVuID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGlmICh0aGlzLl9jb25maWcgJiYgKHRoaXMuX2NvbmZpZyBhcyBDaGF0U2V0dGluZ3MpLmFwcClcclxuICAgICAgKCh0aGlzLl9jb25maWcgYXMgQ2hhdFNldHRpbmdzKS5hcHAgYXMgQ2hhdExhdW5jaGVyRm4pKHVzZXJJZCk7XHJcbiAgICBlbHNlIGlmICh0aGlzLl9pc01vYmlsZSlcclxuICAgICAgdGhpcy5fb3BlbiQubmV4dChjb250YWN0LmlkKTtcclxuICAgIGVsc2UgaWYgKCFvcHRpb25zIHx8IG9wdGlvbnMubW9kZSA9PT0gJ3Jvb20nKVxyXG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydjaGF0cm9vbScsIGNvbnRhY3QuaWRdLCB7XHJcbiAgICAgICAvLyBncm91cDogb3B0aW9ucyA/IG9wdGlvbnMuZ3JvdXAgOiBudWxsXHJcbiAgICAgIH0pO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2NvbnRhY3RzL2MnLCBjb250YWN0LmlkXSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|