@bnsights/bbsf-controls 1.0.47 → 1.0.48
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/README.md +6 -0
- package/bnsights-bbsf-controls-1.0.48.tgz +0 -0
- package/bnsights-bbsf-controls.d.ts +1 -0
- package/bnsights-bbsf-controls.metadata.json +1 -1
- package/bundles/bnsights-bbsf-controls.umd.js +730 -532
- package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
- package/esm2015/bnsights-bbsf-controls.js +2 -1
- package/esm2015/lib/Shared/Enums/TagInputView.js +7 -0
- package/esm2015/lib/Shared/Models/AutocompleteDTO.js +2 -1
- package/esm2015/lib/Shared/Models/AutocompleteOptions.js +2 -1
- package/esm2015/lib/Shared/Models/TagsInputDTO.js +1 -1
- package/esm2015/lib/Shared/Models/TagsInputOptions.js +9 -5
- package/esm2015/lib/Shared/components/ng-tag-input.js +292 -0
- package/esm2015/lib/Shared/default_intl.js +21 -0
- package/esm2015/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.js +3 -2
- package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +6 -1
- package/esm2015/lib/controls/Paging/Paging.component.js +21 -16
- package/esm2015/lib/controls/TagsInput/TagsInput.component.js +2 -2
- package/esm2015/lib/controls/bbsf-controls.module.js +4 -2
- package/esm2015/public-api.js +3 -1
- package/fesm2015/bnsights-bbsf-controls.js +355 -28
- package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
- package/lib/Shared/Enums/TagInputView.d.ts +5 -0
- package/lib/Shared/Models/AutocompleteDTO.d.ts +1 -0
- package/lib/Shared/Models/AutocompleteOptions.d.ts +1 -0
- package/lib/Shared/Models/TagsInputDTO.d.ts +4 -2
- package/lib/Shared/Models/TagsInputOptions.d.ts +3 -0
- package/lib/Shared/components/ng-tag-input.d.ts +45 -0
- package/lib/Shared/default_intl.d.ts +10 -0
- package/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.d.ts +1 -0
- package/lib/controls/Paging/Paging.component.d.ts +5 -2
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
- package/bnsights-bbsf-controls-1.0.47.tgz +0 -0
|
@@ -33,6 +33,7 @@ export class AutocompleteTextBoxComponent {
|
|
|
33
33
|
this.validationRulesasync = [];
|
|
34
34
|
this.dataList = [];
|
|
35
35
|
this.SelectedValue = "";
|
|
36
|
+
this.avatarImage = "https://upload.wikimedia.org/wikipedia/commons/7/7c/Profile_avatar_placeholder_large.png?20150327203541";
|
|
36
37
|
this.resetError = () => {
|
|
37
38
|
this.controlValidationService.RemoveGlobalError();
|
|
38
39
|
};
|
|
@@ -223,7 +224,7 @@ AutocompleteTextBoxComponent.decorators = [
|
|
|
223
224
|
{ type: Component, args: [{
|
|
224
225
|
// tslint:disable-next-line: component-selector
|
|
225
226
|
selector: 'BBSF-AutocompleteTextBox',
|
|
226
|
-
template: "<div class=\"b-control b-auto-complete-textbox\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n\r\n <!-- <input \r\n[(ngModel)]=\"Search\"\r\n value=\"{{Search}}\" \r\n autocomplete=\"off\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\"\r\n typeaheadOptionField=\"{{Value}}\"\r\n [typeahead]=\"suggestions$\"\r\n [typeaheadAsync]=\"true\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" (typeaheadOnSelect)=\"handleResultSelected($event)\" (blur)=\"onBlur($event.target.value)\" /> -->\r\n <!-- \r\n <input ngxTypeahead autocomplete=\"off\"\r\n value=\"{{Search}}\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" [taUrl]=\"options.ActionURL\"\r\n [taParams]=\"options.Params\" taQueryParam=\"{{QueryParam}}\" taApi=\"{{Api}}\" taListItemLabel=\"{{Value}}\" (taSelected)=\"handleResultSelected($event)\"> -->\r\n\r\n\r\n\r\n <ng-autocomplete *ngIf=\"!options.AllowNewSelection\" [data]=\"dataList\" [initialValue]=\"SelectedValue\"\r\n [searchKeyword]=\"keyword\" placeholder=\"{{options.Placeholder}}\" (selected)='selectEvent($event)'\r\n (inputChanged)='onChangeSearch($event)' historyIdentifier=\"dataList\" [itemTemplate]=\"itemTemplate\"\r\n [notFoundTemplate]=\"notFoundTemplate\" class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\" formControlName=\"{{options.Name}}\" aria-describedby=\"email-error\"\r\n aria-invalid=\"true\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\">\r\n </ng-autocomplete>\r\n\r\n <ng-autocomplete *ngIf=\"options.AllowNewSelection\" [data]=\"dataList\" [initialValue]=\"SelectedValue\"\r\n [searchKeyword]=\"keyword\" placeholder=\"{{options.Placeholder}}\" (selected)='selectEvent($event)'\r\n (inputChanged)='onChangeSearch($event)' historyIdentifier=\"dataList\" [itemTemplate]=\"itemTemplate\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}}\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n formControlName=\"{{options.Name}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\">\r\n </ng-autocomplete>\r\n\r\n\r\n\r\n <ng-template #itemTemplate let-item>\r\n <a [innerHTML]=\"item.value\"></a>\r\n </ng-template>\r\n\r\n <ng-template #notFoundTemplate let-notFound>\r\n <div [innerHTML]=\"notFound\"></div>\r\n </ng-template>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched)\">\r\n {{getErrorValidation(AutocompleteTextBoxControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n\r\n </div>\r\n </div>\r\n</div
|
|
227
|
+
template: "<div class=\"b-control b-auto-complete-textbox\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n\r\n <!-- <input \r\n[(ngModel)]=\"Search\"\r\n value=\"{{Search}}\" \r\n autocomplete=\"off\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\"\r\n typeaheadOptionField=\"{{Value}}\"\r\n [typeahead]=\"suggestions$\"\r\n [typeaheadAsync]=\"true\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" (typeaheadOnSelect)=\"handleResultSelected($event)\" (blur)=\"onBlur($event.target.value)\" /> -->\r\n <!-- \r\n <input ngxTypeahead autocomplete=\"off\"\r\n value=\"{{Search}}\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" [taUrl]=\"options.ActionURL\"\r\n [taParams]=\"options.Params\" taQueryParam=\"{{QueryParam}}\" taApi=\"{{Api}}\" taListItemLabel=\"{{Value}}\" (taSelected)=\"handleResultSelected($event)\"> -->\r\n\r\n\r\n\r\n <ng-autocomplete *ngIf=\"!options.AllowNewSelection\" [data]=\"dataList\" [initialValue]=\"SelectedValue\"\r\n [searchKeyword]=\"keyword\" placeholder=\"{{options.Placeholder}}\" (selected)='selectEvent($event)'\r\n (inputChanged)='onChangeSearch($event)' historyIdentifier=\"dataList\" [itemTemplate]=\"itemTemplate\"\r\n [notFoundTemplate]=\"notFoundTemplate\" class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\" formControlName=\"{{options.Name}}\" aria-describedby=\"email-error\"\r\n aria-invalid=\"true\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\">\r\n </ng-autocomplete>\r\n\r\n <ng-autocomplete *ngIf=\"options.AllowNewSelection\" [data]=\"dataList\" [initialValue]=\"SelectedValue\"\r\n [searchKeyword]=\"keyword\" placeholder=\"{{options.Placeholder}}\" (selected)='selectEvent($event)'\r\n (inputChanged)='onChangeSearch($event)' historyIdentifier=\"dataList\" [itemTemplate]=\"itemTemplate\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}}\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n formControlName=\"{{options.Name}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\">\r\n </ng-autocomplete>\r\n\r\n\r\n\r\n <ng-template #itemTemplate let-item>\r\n <img *ngIf=\"options.ItemWithImage\" style=\"border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;\" src=\"{{(item.image?item.image:avatarImage)}}\" />\r\n <a [innerHTML]=\"item.value\"></a>\r\n </ng-template>\r\n\r\n <ng-template #notFoundTemplate let-notFound>\r\n <div [innerHTML]=\"notFound\"></div>\r\n </ng-template>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched)\">\r\n {{getErrorValidation(AutocompleteTextBoxControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
227
228
|
styles: [""]
|
|
228
229
|
},] }
|
|
229
230
|
];
|
|
@@ -243,4 +244,4 @@ AutocompleteTextBoxComponent.propDecorators = {
|
|
|
243
244
|
options: [{ type: Input }],
|
|
244
245
|
OnChange: [{ type: Output }]
|
|
245
246
|
};
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0b2NvbXBsZXRlVGV4dEJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvY29udHJvbHMvQXV0b2NvbXBsZXRlVGV4dEJveC9BdXRvY29tcGxldGVUZXh0Qm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQVcsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQThCLGdCQUFnQixFQUFFLGtCQUFrQixFQUFpQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFKLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQVksRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFROUUsTUFBTSxPQUFPLDRCQUE0QjtJQUl2Qyw0Q0FBNEM7SUFDNUMsWUFBb0IsSUFBZ0IsRUFBVSxZQUFvQyxFQUFTLHFCQUEyQyxFQUM1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LGNBQWM7OztvQkFtQnBCLEtBQUs7c0JBQ0wsS0FBSzt1QkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBEb0NoZWNrLCBPcHRpb25hbCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgRm9ybUdyb3VwLCBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cERpcmVjdGl2ZSwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEVycm9yTWFzc2FnZVZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvdmFsaWRhdGlvbkVycm9yTWFzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbFV0aWxpdHkgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvQ29udHJvbFV0aWxpdHknO1xyXG5pbXBvcnQgeyBBdXRvY29tcGxldGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9BdXRvY29tcGxldGVPcHRpb25zJztcclxuaW1wb3J0IHsgQXV0b2NvbXBsZXRlRFRPIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9BdXRvY29tcGxldGVEVE8nO1xyXG5pbXBvcnQgeyBub29wLCBPYnNlcnZhYmxlLCBPYnNlcnZlciwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWxpZGF0aW9uU2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlLCBSZXF1ZXN0T3B0aW9uc01vZGVsLCBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IEdsb2JhbFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL0dsb2JhbFNldHRpbmdzLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ0JCU0YtQXV0b2NvbXBsZXRlVGV4dEJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL0F1dG9jb21wbGV0ZVRleHRCb3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL0F1dG9jb21wbGV0ZVRleHRCb3guY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlVGV4dEJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuICBzdGF0aWMgY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgRXJyb3JIYW5kbGVyOiBFcnJvck1hc3NhZ2VWYWxpZGF0aW9uLHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOlJlcXVlc3RIYW5kbGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgY29udHJvbFV0aWxpdHk6IENvbnRyb2xVdGlsaXR5LCBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2xDb250YWluZXI6XHJcbiAgICAgIENvbnRyb2xDb250YWluZXIsIHB1YmxpYyBBdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbEhvc3Q6IEZvcm1Hcm91cERpcmVjdGl2ZSxwcml2YXRlIFV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlOiBDb250cm9sVmFsaWRhdGlvblNlcnZpY2UsIHByaXZhdGUgZ2xvYmFsU2V0dGluZ3M6IEdsb2JhbFNldHRpbmdzKSB7XHJcbiAgICBBdXRvY29tcGxldGVUZXh0Qm94Q29tcG9uZW50LmNvbnRyb2xDb250YWluZXJzdGF0aWMgPSB0aGlzLmNvbnRyb2xDb250YWluZXI7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgb3B0aW9uczogQXV0b2NvbXBsZXRlT3B0aW9ucztcclxuICBAT3V0cHV0KCkgT25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAga2V5d29yZDogc3RyaW5nID0gJ3ZhbHVlJ1xyXG4gIEF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgU2VhcmNoOiBzdHJpbmcgPSAnJ1xyXG4gIEtleTogc3RyaW5nID0gJydcclxuIFxyXG4gIEFwaTogc3RyaW5nID0gJ2h0dHAnO1xyXG4gIFZhbHVlOiBzdHJpbmcgPSAndmFsdWUnXHJcbiAgTmV3U2VsZWN0aW9uVmFsaWRhdGlvbktleTogc3RyaW5nID0gJyc7XHJcbiAgbWFya0FsbEFzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHZhbGlkYXRpb25SdWxlcyA9IFtdO1xyXG4gIHZhbGlkYXRpb25SdWxlc2FzeW5jID0gW107XHJcbiAgZGF0YVNvdXJjZTogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIHN1Z2dlc3Rpb25zJDogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgZGF0YUxpc3Q6YW55W109W107XHJcbiAgU2VsZWN0ZWRWYWx1ZTpzdHJpbmc9XCJcIlxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICB0aGlzLmNvbnRyb2xWYWxpZGF0aW9uU2VydmljZS5pc0NyZWF0ZWRCZWZvciA9IGZhbHNlXHJcbiAgICB0aGlzLmdyb3VwLmFkZENvbnRyb2wodGhpcy5vcHRpb25zLk5hbWUsIG5ldyBGb3JtQ29udHJvbCgnJykpO1xyXG4gICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbCA9IHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5vcHRpb25zLk5hbWVdOyAvLyAgbmV3IEZvcm1Db250cm9sKCcnLHZhbGlkYXRpb25SdWxlcyk7XHJcblxyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuVmlld1R5cGUpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5WaWV3VHlwZSA9IHRoaXMuZ2xvYmFsU2V0dGluZ3MuVmlld1R5cGU7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5MYWJlbEtleSAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5MYWJlbEtleSAhPSBcIlwiKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuTGFiZWxWYWx1ZSA9IHRoaXMuVXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSh0aGlzLm9wdGlvbnMuTGFiZWxLZXkpO1xyXG5cclxuICAgIC8vIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0VmFsdWUodGhpcy5vcHRpb25zLlZhbHVlKTtcclxuXHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IFZhbGlkYXRpb25zID0gdGhpcy5vcHRpb25zLkN1c3RvbVZhbGlkYXRpb25cclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IFZhbGlkYXRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IFZhbGlkYXRpb24gPSBWYWxpZGF0aW9uc1tpbmRleF07XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0aW9uLmZ1bmN0aW9uQm9keSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLnZhbGlkYXRpb25SdWxlcyk7XHJcbiAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyh0aGlzLnZhbGlkYXRpb25SdWxlc2FzeW5jKTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLmRpc2FibGUoKTtcclxuICAgIH1cclxuXHJcbiAgXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLlNlbGVjdGVkVmFsdWUgIT0gdW5kZWZpbmVkICYmIHRoaXMub3B0aW9ucy5TZWxlY3RlZFZhbHVlICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5TZWxlY3RlZFZhbHVlPXRoaXMub3B0aW9ucy5TZWxlY3RlZFZhbHVlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sSG9zdC5uZ1N1Ym1pdC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnZhbHVlID09IHRoaXMuU2VhcmNoJiZ0aGlzLm9wdGlvbnMuQWxsb3dOZXdTZWxlY3Rpb249PWZhbHNlKSB7XHJcbiAgICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRFcnJvcnMoeyBOZXdTZWxlY3Rpb25WYWxpZGF0aW9uS2V5OiB0aGlzLk5ld1NlbGVjdGlvblZhbGlkYXRpb25LZXkgfSk7XHJcbiAgICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5pbnZhbGlkO1xyXG4gICAgfVxyXG4gICAgICB0aGlzLmdyb3VwLm1hcmtBbGxBc1RvdWNoZWQoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSB0cnVlXHJcbiAgICB9KVxyXG5cclxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0ge1xyXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAgJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgICdBdXRob3JpemF0aW9uJzogdGhpcy5vcHRpb25zLlZhbGlkYXRpb25Ub2tlblxyXG4gICAgICB9KSxcclxuICAgIH07XHJcbiAgIFxyXG4gIFxyXG4gICBcclxuICAgIFxyXG4gICAgdGhpcy5zdWdnZXN0aW9ucyQgPSBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IE9ic2VydmVyPHN0cmluZz4pID0+IHtcclxuICAgICAgb2JzZXJ2ZXIubmV4dCh0aGlzLlNlYXJjaCk7XHJcbiAgICB9KS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKHF1ZXJ5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAocXVlcnkpIHtcclxuICAgICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCh0aGlzLm9wdGlvbnMuUXVlcnlQYXJhbSwgIHF1ZXJ5KTtcclxuICAgICAgICAgIGxldCByZXF1ZXN0T3B0aW9uc01vZGVsPSBuZXcgUmVxdWVzdE9wdGlvbnNNb2RlbCgpXHJcbiAgICAgICAgICByZXF1ZXN0T3B0aW9uc01vZGVsLmRpc2FibGVCbG9ja1VJPXRydWU7XHJcbiAgICAgICAgICByZXF1ZXN0T3B0aW9uc01vZGVsLmRpc2FibGVTdWNjZXNzTm90aWZpY2F0aW9uPXRydWU7XHJcbiAgICAgICAgICAvLyB1c2luZyBnaXRodWIgcHVibGljIGFwaSB0byBnZXQgdXNlcnMgYnkgbmFtZVxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmdldCh0aGlzLm9wdGlvbnMuQWN0aW9uVVJMLHBhcmFtcyxudWxsLHJlcXVlc3RPcHRpb25zTW9kZWwpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgbWFwKChkYXRhKSA9PiBkYXRhIGFzIEF0dHJpYnV0ZVtdIHx8IFtdKSxcclxuICAgICAgICAgICAgdGFwKCgpID0+IG5vb3AsIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgLy8gaW4gY2FzZSBvZiBodHRwIGVycm9yXHJcbiAgICAgICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgJ1NvbWV0aGluZyBnb2VzIHdyb25nJztcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gXHJcbiAgICAgICAgcmV0dXJuIG9mKFtdKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5zZXRBdHRyaWJ1dGVGb3JDb250cm9sKHRoaXMub3B0aW9ucylcclxuICB9XHJcbiAgcmVzZXRFcnJvciA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLlJlbW92ZUdsb2JhbEVycm9yKCk7XHJcbiAgfVxyXG5cclxuICBzaG93R2xvYmFsRXJyb3IoKSB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LnNob3dHbG9iYWxFcnJvcigpXHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0RXJyb3JWYWxpZGF0aW9uKEVycm9yTGlzdCkge1xyXG5cclxuICAgIGlmICh0aGlzLm1hcmtBbGxBc1RvdWNoZWQgJiYgdGhpcy5ncm91cC5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuc2hvd0dsb2JhbEVycm9yKClcclxuICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkID0gZmFsc2VcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sVXRpbGl0eS5nZXRFcnJvclZhbGlkYXRpb25NYXNzYWdlKEVycm9yTGlzdCwgdGhpcy5ncm91cCwgdGhpcy5vcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGNvcHlJbnB1dE1lc3NhZ2UoaW5wdXRFbGVtZW50KSB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LkNvcHlJbnB1dE1lc3NhZ2UoaW5wdXRFbGVtZW50KVxyXG4gIH1cclxuXHJcblxyXG4gIHNlbGVjdEV2ZW50KGl0ZW0pIHtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkFsbG93TmV3U2VsZWN0aW9uID09IHRydWUpIHtcclxuICAgICAgaWYgKHR5cGVvZiAoaXRlbSkgPT0gJ29iamVjdCcpIHtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldFZhbHVlKGl0ZW0pO1xyXG4gICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXHJcblxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGxldCBBdXRvY29tcGxldGVNb2RlbCA9IG5ldyBBdXRvY29tcGxldGVEVE8oKTtcclxuICAgICAgICBBdXRvY29tcGxldGVNb2RlbC52YWx1ZSA9IGl0ZW07XHJcbiAgICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRWYWx1ZShBdXRvY29tcGxldGVNb2RlbCk7XHJcbiAgICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgIH0gIFxyXG4gICAgZWxzZSB7XHJcblxyXG4gICAgICBpZiAodGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC52YWx1ZSA9PSBpdGVtLnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRFcnJvcnMoeyBOZXdTZWxlY3Rpb25WYWxpZGF0aW9uS2V5OiB0aGlzLk5ld1NlbGVjdGlvblZhbGlkYXRpb25LZXkgfSk7XHJcbiAgICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5pbnZhbGlkO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0VmFsdWUoaXRlbSk7XHJcbiAgICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcclxuICAgICAgICBsZXQgb3JpZ2luYWxWYWx1ZSA9dGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC52YWx1ZTtcclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLlBhdGNoRnVuY3Rpb24gJiYgdGhpcy5vcHRpb25zLlBhdGNoUGF0aCAmJiB0aGlzLmdyb3VwLmdldCh0aGlzLm9wdGlvbnMuTmFtZSkudmFsaWQpIHtcclxuICAgICAgICAgIHRoaXMuY29udHJvbFV0aWxpdHkucGF0Y2hDb250cm9sVmFsdWUob3JpZ2luYWxWYWx1ZSx0aGlzLm9wdGlvbnMuUGF0Y2hGdW5jdGlvbiAsdGhpcy5vcHRpb25zLlBhdGNoUGF0aClcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5PbkNoYW5nZS5lbWl0KHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudmFsdWUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIG9uQ2hhbmdlU2VhcmNoKHNlYXJjaDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLlNlYXJjaD1zZWFyY2g7XHJcbiAgICB0aGlzLlNlbGVjdGVkVmFsdWU9XCJcIjtcclxuICAgIGF3YWl0IHRoaXMuc3VnZ2VzdGlvbnMkLnN1YnNjcmliZSgocmVzdWx0KT0+e1xyXG4gICAgICBpZiAoKHJlc3VsdD09bnVsbHx8cmVzdWx0PT1bXXx8cmVzdWx0Lmxlbmd0aD09MCkmJnRoaXMub3B0aW9ucy5BbGxvd05ld1NlbGVjdGlvbj09dHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuZGF0YUxpc3QgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGtleTowLFxyXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5TZWFyY2hcclxuICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICB7XHJcbiAgICAgICAgdGhpcy5kYXRhTGlzdD1yZXN1bHRcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIC8vIG9uRm9jdXNlZChlKSB7XHJcbiAgLy8gICAvLyBkbyBzb21ldGhpbmdcclxuICAvLyB9XHJcblxyXG4gXHJcbiAgLy8gb25CbHVyKFZhbHVlKSB7XHJcbiAgLy8gICBpZiAodGhpcy5vcHRpb25zLkFsbG93TmV3U2VsZWN0aW9uID09IHRydWUpIHtcclxuXHJcbiAgLy8gICAgIGlmICh0eXBlb2YgKFZhbHVlKSA9PSAnb2JqZWN0Jykge1xyXG4gIC8vICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0VmFsdWUoVmFsdWUpO1xyXG4gIC8vICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXHJcblxyXG4gIC8vICAgICB9XHJcbiAgLy8gICAgIGVsc2Uge1xyXG4gIC8vICAgICAgIGxldCBBdXRvY29tcGxldGVNb2RlbCA9IG5ldyBBdXRvY29tcGxldGVEVE8oKTtcclxuICAvLyAgICAgICBBdXRvY29tcGxldGVNb2RlbC52YWx1ZSA9IFZhbHVlO1xyXG4gIC8vICAgICAgIGxldCBtb2RlbCA9IG5ldyBUeXBlYWhlYWRNYXRjaChBdXRvY29tcGxldGVNb2RlbCxWYWx1ZSk7XHJcbiAgLy8gICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRWYWx1ZShtb2RlbCk7XHJcbiAgLy8gICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcclxuXHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0gXHJcblxyXG4gIC8vICAgZWxzZSB7XHJcblxyXG4gIC8vICAgICBpZiAodGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC52YWx1ZSA9PSBWYWx1ZSkge1xyXG4gIC8vICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0RXJyb3JzKHsgTmV3U2VsZWN0aW9uVmFsaWRhdGlvbktleTogdGhpcy5OZXdTZWxlY3Rpb25WYWxpZGF0aW9uS2V5IH0pO1xyXG4gIC8vICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gIC8vICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuaW52YWxpZDtcclxuICAvLyAgICAgICByZXR1cm47XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH1cclxuICAvLyAgfVxyXG5cclxuXHJcbiAgLy8gaGFuZGxlUmVzdWx0U2VsZWN0ZWQocmVzdWx0KSB7XHJcbiAgXHJcbiAgLy8gICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldFZhbHVlKHJlc3VsdCk7XHJcbiAgLy8gICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKVxyXG4gIC8vICAgdGhpcy5PbkNoYW5nZS5lbWl0KHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudmFsdWUpXHJcbiAgLy8gICB0aGlzLlNlYXJjaCA9IHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudmFsdWUudmFsdWVcclxuICAgXHJcblxyXG5cclxuICAvLyB9XHJcbiBcclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIFJlbW92ZVJlcXVpcmVkVmFsaWRhdGlvbiA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCB0aGlzLm9wdGlvbnMpXHJcbiAgfVxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgQWRkUmVxdWlyZWRWYWxpZGF0aW9uID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5BZGRSZXF1aXJlZFZhbGlkYXRpb24odGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIHRoaXMub3B0aW9ucylcclxuICB9XHJcblxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgUmVtb3ZlQ3VzdG9tVmFsaWRhdGlvbiA9IChDdXN0b21WYWxpZGF0aW9uKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LlJlbW92ZUN1c3RvbVZhbGlkYXRpb24odGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIEN1c3RvbVZhbGlkYXRpb24pXHJcbiAgfVxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgQWRkQ3VzdG9tVmFsaWRhdGlvbiA9IChDdXN0b21WYWxpZGF0aW9uKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LkFkZEN1c3RvbVZhbGlkYXRpb24odGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIEN1c3RvbVZhbGlkYXRpb24pXHJcbiAgfVxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgSXNWYWxpZCA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuSXNWYWxpZCh0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sKVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4iXX0=
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0b2NvbXBsZXRlVGV4dEJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvY29udHJvbHMvQXV0b2NvbXBsZXRlVGV4dEJveC9BdXRvY29tcGxldGVUZXh0Qm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQVcsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQThCLGdCQUFnQixFQUFFLGtCQUFrQixFQUFpQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFKLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQVksRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFROUUsTUFBTSxPQUFPLDRCQUE0QjtJQUl2Qyw0Q0FBNEM7SUFDNUMsWUFBb0IsSUFBZ0IsRUFBVSxZQUFvQyxFQUFTLHFCQUEyQyxFQUM1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WUFRbkIsY0FBYztZQUFwRix3QkFBd0I7WUFDeEIsY0FBYzs7O29CQW1CcEIsS0FBSztzQkFDTCxLQUFLO3VCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIERvQ2hlY2ssIE9wdGlvbmFsLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzLCBGb3JtR3JvdXAsIEFic3RyYWN0Q29udHJvbCwgQ29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwRGlyZWN0aXZlLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRXJyb3JNYXNzYWdlVmFsaWRhdGlvbiB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy92YWxpZGF0aW9uRXJyb3JNYXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250cm9sVXRpbGl0eSB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy9Db250cm9sVXRpbGl0eSc7XHJcbmltcG9ydCB7IEF1dG9jb21wbGV0ZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL0F1dG9jb21wbGV0ZU9wdGlvbnMnO1xyXG5pbXBvcnQgeyBBdXRvY29tcGxldGVEVE8gfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL0F1dG9jb21wbGV0ZURUTyc7XHJcbmltcG9ydCB7IG5vb3AsIE9ic2VydmFibGUsIE9ic2VydmVyLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsIFJlcXVlc3RPcHRpb25zTW9kZWwsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgR2xvYmFsU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvR2xvYmFsU2V0dGluZ3Muc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGNvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnQkJTRi1BdXRvY29tcGxldGVUZXh0Qm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vQXV0b2NvbXBsZXRlVGV4dEJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vQXV0b2NvbXBsZXRlVGV4dEJveC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVUZXh0Qm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblxyXG4gIHN0YXRpYyBjb250cm9sQ29udGFpbmVyc3RhdGljID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBFcnJvckhhbmRsZXI6IEVycm9yTWFzc2FnZVZhbGlkYXRpb24scHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6UmVxdWVzdEhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb250cm9sVXRpbGl0eTogQ29udHJvbFV0aWxpdHksIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbENvbnRhaW5lcjpcclxuICAgICAgQ29udHJvbENvbnRhaW5lciwgcHVibGljIEF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sSG9zdDogRm9ybUdyb3VwRGlyZWN0aXZlLHByaXZhdGUgVXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb250cm9sVmFsaWRhdGlvblNlcnZpY2U6IENvbnRyb2xWYWxpZGF0aW9uU2VydmljZSwgcHJpdmF0ZSBnbG9iYWxTZXR0aW5nczogR2xvYmFsU2V0dGluZ3MpIHtcclxuICAgIEF1dG9jb21wbGV0ZVRleHRCb3hDb21wb25lbnQuY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IHRoaXMuY29udHJvbENvbnRhaW5lcjtcclxuICB9XHJcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBvcHRpb25zOiBBdXRvY29tcGxldGVPcHRpb25zO1xyXG4gIEBPdXRwdXQoKSBPbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBrZXl3b3JkOiBzdHJpbmcgPSAndmFsdWUnXHJcbiAgQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcclxuICBTZWFyY2g6IHN0cmluZyA9ICcnXHJcbiAgS2V5OiBzdHJpbmcgPSAnJ1xyXG4gXHJcbiAgQXBpOiBzdHJpbmcgPSAnaHR0cCc7XHJcbiAgVmFsdWU6IHN0cmluZyA9ICd2YWx1ZSdcclxuICBOZXdTZWxlY3Rpb25WYWxpZGF0aW9uS2V5OiBzdHJpbmcgPSAnJztcclxuICBtYXJrQWxsQXNUb3VjaGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmFsaWRhdGlvblJ1bGVzID0gW107XHJcbiAgdmFsaWRhdGlvblJ1bGVzYXN5bmMgPSBbXTtcclxuICBkYXRhU291cmNlOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgc3VnZ2VzdGlvbnMkOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBkYXRhTGlzdDphbnlbXT1bXTtcclxuICBTZWxlY3RlZFZhbHVlOnN0cmluZz1cIlwiXHJcbiAgYXZhdGFySW1hZ2U6IHN0cmluZyA9IFwiaHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy83LzdjL1Byb2ZpbGVfYXZhdGFyX3BsYWNlaG9sZGVyX2xhcmdlLnBuZz8yMDE1MDMyNzIwMzU0MVwiXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICAgIHRoaXMuY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLmlzQ3JlYXRlZEJlZm9yID0gZmFsc2VcclxuICAgIHRoaXMuZ3JvdXAuYWRkQ29udHJvbCh0aGlzLm9wdGlvbnMuTmFtZSwgbmV3IEZvcm1Db250cm9sKCcnKSk7XHJcbiAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sID0gdGhpcy5ncm91cC5jb250cm9sc1t0aGlzLm9wdGlvbnMuTmFtZV07IC8vICBuZXcgRm9ybUNvbnRyb2woJycsdmFsaWRhdGlvblJ1bGVzKTtcclxuXHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5WaWV3VHlwZSlcclxuICAgICAgdGhpcy5vcHRpb25zLlZpZXdUeXBlID0gdGhpcy5nbG9iYWxTZXR0aW5ncy5WaWV3VHlwZTtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkxhYmVsS2V5ICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkxhYmVsS2V5ICE9IFwiXCIpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5MYWJlbFZhbHVlID0gdGhpcy5VdGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKHRoaXMub3B0aW9ucy5MYWJlbEtleSk7XHJcblxyXG4gICAgLy8gdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRWYWx1ZSh0aGlzLm9wdGlvbnMuVmFsdWUpO1xyXG5cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkN1c3RvbVZhbGlkYXRpb24ubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgVmFsaWRhdGlvbnMgPSB0aGlzLm9wdGlvbnMuQ3VzdG9tVmFsaWRhdGlvblxyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgVmFsaWRhdGlvbnMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgY29uc3QgVmFsaWRhdGlvbiA9IFZhbGlkYXRpb25zW2luZGV4XTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRpb24uZnVuY3Rpb25Cb2R5KTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMudmFsaWRhdGlvblJ1bGVzKTtcclxuICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMudmFsaWRhdGlvblJ1bGVzYXN5bmMpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICBcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuU2VsZWN0ZWRWYWx1ZSAhPSB1bmRlZmluZWQgJiYgdGhpcy5vcHRpb25zLlNlbGVjdGVkVmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLlNlbGVjdGVkVmFsdWU9dGhpcy5vcHRpb25zLlNlbGVjdGVkVmFsdWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2xIb3N0Lm5nU3VibWl0LnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgaWYgKHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudmFsdWUgPT0gdGhpcy5TZWFyY2gmJnRoaXMub3B0aW9ucy5BbGxvd05ld1NlbGVjdGlvbj09ZmFsc2UpIHtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldEVycm9ycyh7IE5ld1NlbGVjdGlvblZhbGlkYXRpb25LZXk6IHRoaXMuTmV3U2VsZWN0aW9uVmFsaWRhdGlvbktleSB9KTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLmludmFsaWQ7XHJcbiAgICB9XHJcbiAgICAgIHRoaXMuZ3JvdXAubWFya0FsbEFzVG91Y2hlZCgpXHJcbiAgICAgIHRoaXMubWFya0FsbEFzVG91Y2hlZCA9IHRydWVcclxuICAgIH0pXHJcblxyXG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgJ0F1dGhvcml6YXRpb24nOiB0aGlzLm9wdGlvbnMuVmFsaWRhdGlvblRva2VuXHJcbiAgICAgIH0pLFxyXG4gICAgfTtcclxuICAgXHJcbiAgXHJcbiAgIFxyXG4gICAgXHJcbiAgICB0aGlzLnN1Z2dlc3Rpb25zJCA9IG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8c3RyaW5nPikgPT4ge1xyXG4gICAgICBvYnNlcnZlci5uZXh0KHRoaXMuU2VhcmNoKTtcclxuICAgIH0pLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcCgocXVlcnk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmIChxdWVyeSkge1xyXG4gICAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKHRoaXMub3B0aW9ucy5RdWVyeVBhcmFtLCAgcXVlcnkpO1xyXG4gICAgICAgICAgbGV0IHJlcXVlc3RPcHRpb25zTW9kZWw9IG5ldyBSZXF1ZXN0T3B0aW9uc01vZGVsKClcclxuICAgICAgICAgIHJlcXVlc3RPcHRpb25zTW9kZWwuZGlzYWJsZUJsb2NrVUk9dHJ1ZTtcclxuICAgICAgICAgIHJlcXVlc3RPcHRpb25zTW9kZWwuZGlzYWJsZVN1Y2Nlc3NOb3RpZmljYXRpb249dHJ1ZTtcclxuICAgICAgICAgIC8vIHVzaW5nIGdpdGh1YiBwdWJsaWMgYXBpIHRvIGdldCB1c2VycyBieSBuYW1lXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZ2V0KHRoaXMub3B0aW9ucy5BY3Rpb25VUkwscGFyYW1zLG51bGwscmVxdWVzdE9wdGlvbnNNb2RlbClcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKGRhdGEpID0+IGRhdGEgYXMgQXR0cmlidXRlW10gfHwgW10pLFxyXG4gICAgICAgICAgICB0YXAoKCkgPT4gbm9vcCwgZXJyID0+IHtcclxuICAgICAgICAgICAgICAvLyBpbiBjYXNlIG9mIGh0dHAgZXJyb3JcclxuICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVyciAmJiBlcnIubWVzc2FnZSB8fCAnU29tZXRoaW5nIGdvZXMgd3JvbmcnO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiBcclxuICAgICAgICByZXR1cm4gb2YoW10pO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LnNldEF0dHJpYnV0ZUZvckNvbnRyb2wodGhpcy5vcHRpb25zKVxyXG4gIH1cclxuICByZXNldEVycm9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuUmVtb3ZlR2xvYmFsRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIHNob3dHbG9iYWxFcnJvcigpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuc2hvd0dsb2JhbEVycm9yKClcclxuICB9XHJcblxyXG5cclxuICBnZXRFcnJvclZhbGlkYXRpb24oRXJyb3JMaXN0KSB7XHJcblxyXG4gICAgaWYgKHRoaXMubWFya0FsbEFzVG91Y2hlZCAmJiB0aGlzLmdyb3VwLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5zaG93R2xvYmFsRXJyb3IoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSBmYWxzZVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xVdGlsaXR5LmdldEVycm9yVmFsaWRhdGlvbk1hc3NhZ2UoRXJyb3JMaXN0LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgY29weUlucHV0TWVzc2FnZShpbnB1dEVsZW1lbnQpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQ29weUlucHV0TWVzc2FnZShpbnB1dEVsZW1lbnQpXHJcbiAgfVxyXG5cclxuXHJcbiAgc2VsZWN0RXZlbnQoaXRlbSkge1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQWxsb3dOZXdTZWxlY3Rpb24gPT0gdHJ1ZSkge1xyXG4gICAgICBpZiAodHlwZW9mIChpdGVtKSA9PSAnb2JqZWN0Jykge1xyXG4gICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0VmFsdWUoaXRlbSk7XHJcbiAgICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcclxuXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbGV0IEF1dG9jb21wbGV0ZU1vZGVsID0gbmV3IEF1dG9jb21wbGV0ZURUTygpO1xyXG4gICAgICAgIEF1dG9jb21wbGV0ZU1vZGVsLnZhbHVlID0gaXRlbTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldFZhbHVlKEF1dG9jb21wbGV0ZU1vZGVsKTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKVxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfSAgXHJcbiAgICBlbHNlIHtcclxuXHJcbiAgICAgIGlmICh0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnZhbHVlID09IGl0ZW0udmFsdWUpIHtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldEVycm9ycyh7IE5ld1NlbGVjdGlvblZhbGlkYXRpb25LZXk6IHRoaXMuTmV3U2VsZWN0aW9uVmFsaWRhdGlvbktleSB9KTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLmludmFsaWQ7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRWYWx1ZShpdGVtKTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKVxyXG4gICAgICAgIGxldCBvcmlnaW5hbFZhbHVlID10aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnZhbHVlO1xyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuUGF0Y2hGdW5jdGlvbiAmJiB0aGlzLm9wdGlvbnMuUGF0Y2hQYXRoICYmIHRoaXMuZ3JvdXAuZ2V0KHRoaXMub3B0aW9ucy5OYW1lKS52YWxpZCkge1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sVXRpbGl0eS5wYXRjaENvbnRyb2xWYWx1ZShvcmlnaW5hbFZhbHVlLHRoaXMub3B0aW9ucy5QYXRjaEZ1bmN0aW9uICx0aGlzLm9wdGlvbnMuUGF0Y2hQYXRoKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLk9uQ2hhbmdlLmVtaXQodGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC52YWx1ZSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25DaGFuZ2VTZWFyY2goc2VhcmNoOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuU2VhcmNoPXNlYXJjaDtcclxuICAgIHRoaXMuU2VsZWN0ZWRWYWx1ZT1cIlwiO1xyXG4gICAgYXdhaXQgdGhpcy5zdWdnZXN0aW9ucyQuc3Vic2NyaWJlKChyZXN1bHQpPT57XHJcbiAgICAgIGlmICgocmVzdWx0PT1udWxsfHxyZXN1bHQ9PVtdfHxyZXN1bHQubGVuZ3RoPT0wKSYmdGhpcy5vcHRpb25zLkFsbG93TmV3U2VsZWN0aW9uPT10cnVlKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhTGlzdCA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAga2V5OjAsXHJcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLlNlYXJjaFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgIHtcclxuICAgICAgICB0aGlzLmRhdGFMaXN0PXJlc3VsdFxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLy8gb25Gb2N1c2VkKGUpIHtcclxuICAvLyAgIC8vIGRvIHNvbWV0aGluZ1xyXG4gIC8vIH1cclxuXHJcbiBcclxuICAvLyBvbkJsdXIoVmFsdWUpIHtcclxuICAvLyAgIGlmICh0aGlzLm9wdGlvbnMuQWxsb3dOZXdTZWxlY3Rpb24gPT0gdHJ1ZSkge1xyXG5cclxuICAvLyAgICAgaWYgKHR5cGVvZiAoVmFsdWUpID09ICdvYmplY3QnKSB7XHJcbiAgLy8gICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRWYWx1ZShWYWx1ZSk7XHJcbiAgLy8gICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcclxuXHJcbiAgLy8gICAgIH1cclxuICAvLyAgICAgZWxzZSB7XHJcbiAgLy8gICAgICAgbGV0IEF1dG9jb21wbGV0ZU1vZGVsID0gbmV3IEF1dG9jb21wbGV0ZURUTygpO1xyXG4gIC8vICAgICAgIEF1dG9jb21wbGV0ZU1vZGVsLnZhbHVlID0gVmFsdWU7XHJcbiAgLy8gICAgICAgbGV0IG1vZGVsID0gbmV3IFR5cGVhaGVhZE1hdGNoKEF1dG9jb21wbGV0ZU1vZGVsLFZhbHVlKTtcclxuICAvLyAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldFZhbHVlKG1vZGVsKTtcclxuICAvLyAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKVxyXG5cclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSBcclxuXHJcbiAgLy8gICBlbHNlIHtcclxuXHJcbiAgLy8gICAgIGlmICh0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnZhbHVlID09IFZhbHVlKSB7XHJcbiAgLy8gICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRFcnJvcnMoeyBOZXdTZWxlY3Rpb25WYWxpZGF0aW9uS2V5OiB0aGlzLk5ld1NlbGVjdGlvblZhbGlkYXRpb25LZXkgfSk7XHJcbiAgLy8gICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgLy8gICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5pbnZhbGlkO1xyXG4gIC8vICAgICAgIHJldHVybjtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfVxyXG4gIC8vICB9XHJcblxyXG5cclxuICAvLyBoYW5kbGVSZXN1bHRTZWxlY3RlZChyZXN1bHQpIHtcclxuICBcclxuICAvLyAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0VmFsdWUocmVzdWx0KTtcclxuICAvLyAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXHJcbiAgLy8gICB0aGlzLk9uQ2hhbmdlLmVtaXQodGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC52YWx1ZSlcclxuICAvLyAgIHRoaXMuU2VhcmNoID0gdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC52YWx1ZS52YWx1ZVxyXG4gICBcclxuXHJcblxyXG4gIC8vIH1cclxuIFxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgUmVtb3ZlUmVxdWlyZWRWYWxpZGF0aW9uID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5SZW1vdmVSZXF1aXJlZFZhbGlkYXRpb24odGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIHRoaXMub3B0aW9ucylcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBBZGRSZXF1aXJlZFZhbGlkYXRpb24gPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LkFkZFJlcXVpcmVkVmFsaWRhdGlvbih0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuXHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBSZW1vdmVDdXN0b21WYWxpZGF0aW9uID0gKEN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlQ3VzdG9tVmFsaWRhdGlvbih0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBBZGRDdXN0b21WYWxpZGF0aW9uID0gKEN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkQ3VzdG9tVmFsaWRhdGlvbih0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBJc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5Jc1ZhbGlkKHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wpXHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -9,6 +9,8 @@ import { OnPagingFiltersChangeService } from '../../Shared/services/OnPagingFilt
|
|
|
9
9
|
import { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';
|
|
10
10
|
import { DatePipe } from '@angular/common';
|
|
11
11
|
import { DateTimeAdapter } from 'ng-pick-datetime';
|
|
12
|
+
import { OwlDateTimeIntl } from 'ng-pick-datetime';
|
|
13
|
+
import { DefaultIntl } from '../../Shared/default_intl';
|
|
12
14
|
export class DateInputComponent {
|
|
13
15
|
// tslint:disable-next-line: max-line-length
|
|
14
16
|
constructor(datepipe, onChangeService, ErrorHandler, controlUtility, controlContainer, DateInputControlHost, UtilityService, translate, controlValidationService, dateTimeAdapter) {
|
|
@@ -184,6 +186,9 @@ DateInputComponent.decorators = [
|
|
|
184
186
|
{ type: Component, args: [{
|
|
185
187
|
selector: 'BBSF-DateTimePicker',
|
|
186
188
|
template: "<div class=\"b-control b-date-picker\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group\">\r\n <input autocomplete=\"off\" (dateTimeChange)=\"onDateSelect($event)\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}} \"\r\n [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"{{options.Name}}\" [owlDateTime]=\"dt1\" [owlDateTimeTrigger]=\"dt1\"\r\n [class.is-invalid]=\"DatePickerFormControl.invalid && DatePickerFormControl.touched\"\r\n [min]=\"options.StartDate\" [max]=\"options.EndDate\" [hour12Timer]=\"options.Hour12Timer\" [selectMode]=\"getSelectMode(options.SelectMode)\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" #Dateinput>\r\n\r\n <owl-date-time [pickerType]=\"getPickerType(options.PickerType)\"\r\n [startView]=\"getStartView(options.StartView)\" [firstDayOfWeek]=\"options.FirstDayOfWeek\"\r\n [hour12Timer]=\"options.Hour12Timer\" #dt1></owl-date-time>\r\n \r\n <div class=\"input-group-append\">\r\n <span class=\"input-group-text\" [owlDateTimeTrigger]=\"dt1\">\r\n <span class=\"svg-icon\">\r\n <svg id=\"Group_356\" data-name=\"Group 356\" xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"15\" viewBox=\"0 0 48 48\">\r\n <path id=\"Path_6737\" data-name=\"Path 6737\" d=\"M11.583,1a1,1,0,0,0-2,0V5.7h2Z\" style=\"\"></path>\r\n <path id=\"Path_6738\" data-name=\"Path 6738\" d=\"M38.417,1a1,1,0,0,0-2,0V5.7h2Z\"></path>\r\n <path id=\"Path_6739\" data-name=\"Path 6739\" d=\"M0,43.146C0,45.822,1.826,48,4.07,48H43.928C46.174,48,48,45.822,48,43.146V17.121H0Z\" fill=\"#d5d5d5\"></path>\r\n <path id=\"Path_6740\" data-name=\"Path 6740\" d=\"M43.929,5.7H38.417v5.512a1,1,0,1,1-2,0V5.7H11.583v5.512a1,1,0,1,1-2,0V5.7H4.07C1.826,5.7,0,7.877,0,10.555v4.566H48V10.555C48,7.877,46.174,5.7,43.929,5.7Z\" fill=\"#595959\"></path>\r\n </svg>\r\n </span>\r\n </span>\r\n <!--<span class=\"input-group-text\" *ngIf=\"options.EnableCopyToClipboard\"\r\n (click)=\"copyInputMessage(Dateinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>-->\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(DatePickerFormControl.invalid && DatePickerFormControl.touched)\">\r\n {{getErrorValidation(DatePickerFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"control-desc\"*ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n \r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
|
|
189
|
+
providers: [
|
|
190
|
+
{ provide: OwlDateTimeIntl, useClass: DefaultIntl }
|
|
191
|
+
],
|
|
187
192
|
styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}\n"]
|
|
188
193
|
},] }
|
|
189
194
|
];
|
|
@@ -204,4 +209,4 @@ DateInputComponent.propDecorators = {
|
|
|
204
209
|
options: [{ type: Input }],
|
|
205
210
|
OnChange: [{ type: Output }]
|
|
206
211
|
};
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVRpbWVQaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL0RhdGVUaW1lUGlja2VyL0RhdGVUaW1lUGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVyxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBOEIsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFbkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFRbkQsTUFBTSxPQUFPLGtCQUFrQjtJQUU3Qiw0Q0FBNEM7SUFDNUMsWUFBbUIsUUFBa0IsRUFBVSxlQUE2QyxFQUFVLFlBQW9DLEVBQVUsY0FBOEIsRUFBc0IsZ0JBQWtDLEVBQVMsb0JBQXdDLEVBQVUsY0FBOEIs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QUVELG9CQUFvQjtRQUNsQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDO1FBQzNELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQ3RFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztBQXJKUSx5Q0FBc0IsR0FBRyxJQUFJLENBQUM7O1lBTnRDLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQix3MEhBQThDOzthQUUvQzs7O1lBUlEsUUFBUTtZQUhSLDRCQUE0QjtZQUw1QixzQkFBc0I7WUFDdEIsY0FBYztZQUgyRCxnQkFBZ0IsdUJBc0JxRixRQUFRO1lBdEJqSSxrQkFBa0I7WUFTdkIsY0FBYztZQUE5RCxvQkFBb0I7WUFBRSx3QkFBd0I7WUFFOUMsZUFBZTs7O29CQWNyQixLQUFLO3NCQUNMLEtBQUs7dUJBRUwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgRG9DaGVjaywgT3B0aW9uYWwsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzLCBGb3JtR3JvdXAsIEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBDb250cm9sQ29udGFpbmVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyT3B0aW9ucyB9IGZyb20gJy4uLy4uL1NoYXJlZC9Nb2RlbHMvZGF0ZVBpY2tlck9wdGlvbnMnO1xyXG5pbXBvcnQgeyBFcnJvck1hc3NhZ2VWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL3ZhbGlkYXRpb25FcnJvck1hc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnRyb2xVdGlsaXR5IH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL0NvbnRyb2xVdGlsaXR5JztcclxuaW1wb3J0IHsgUGlja2VyVHlwZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9FbnVtcy9QaWNrZXJUeXBlJztcclxuaW1wb3J0IHsgU3RhcnRWaWV3IH0gZnJvbSAnLi4vLi4vU2hhcmVkL0VudW1zL1N0YXJ0Vmlldyc7XHJcbmltcG9ydCB7IFNlbGVjdE1vZGUgfSBmcm9tICcuLi8uLi9TaGFyZWQvRW51bXMvU2VsZWN0TW9kZSc7XHJcbmltcG9ydCB7IE9uUGFnaW5nRmlsdGVyc0NoYW5nZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvT25QYWdpbmdGaWx0ZXJzQ2hhbmdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGZ1bGxjYWxlbmRhci9jb3JlJztcclxuaW1wb3J0IHsgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIENvbnRyb2xWYWxpZGF0aW9uU2VydmljZSwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IERhdGVUaW1lQWRhcHRlciB9IGZyb20gJ25nLXBpY2stZGF0ZXRpbWUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ0JCU0YtRGF0ZVRpbWVQaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9EYXRlVGltZVBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vRGF0ZVRpbWVQaWNrZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBzdGF0aWMgY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0ZXBpcGU6IERhdGVQaXBlLCBwcml2YXRlIG9uQ2hhbmdlU2VydmljZTogT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSwgcHJpdmF0ZSBFcnJvckhhbmRsZXI6IEVycm9yTWFzc2FnZVZhbGlkYXRpb24sIHByaXZhdGUgY29udHJvbFV0aWxpdHk6IENvbnRyb2xVdGlsaXR5LCBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsIHB1YmxpYyBEYXRlSW5wdXRDb250cm9sSG9zdDogRm9ybUdyb3VwRGlyZWN0aXZlLCBwcml2YXRlIFV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGU6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIGNvbnRyb2xWYWxpZGF0aW9uU2VydmljZTogQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLCBwcml2YXRlIGRhdGVUaW1lQWRhcHRlcjogRGF0ZVRpbWVBZGFwdGVyPGFueT4pIHtcclxuICAgIERhdGVJbnB1dENvbXBvbmVudC5jb250cm9sQ29udGFpbmVyc3RhdGljID0gdGhpcy5jb250cm9sQ29udGFpbmVyO1xyXG4gIH1cclxuICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IERhdGVQaWNrZXJPcHRpb25zO1xyXG4gIERhdGVQaWNrZXJGb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG4gIEBPdXRwdXQoKSBPbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBtYXJrQWxsQXNUb3VjaGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmFsaWRhdGlvblJ1bGVzID0gW107XHJcbiAgdmFsaWRhdGlvblJ1bGVzYXN5bmMgPSBbXTtcclxuICBjb21wYXJlZENvbnRyb2w6IEFic3RyYWN0Q29udHJvbCA9IG51bGw7XHJcbiAgZGF0ZUVycm9yOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICAgIC8vIFVwZGF0ZSB0aGUgRGF0ZVRpbWVBZGFwdGVyIExhbmd1YWdlIHdpdGggdGhlIGN1cnJlbnQgdGhyZWFkIGxhbmdhdWdlXHJcbiAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5zZXRMb2NhbGUodGhpcy5VdGlsaXR5U2VydmljZS5nZXRDdXJyZW50TGFuZ3VhZ2UoKSA9PSBcImFyXCIgPyBcImFyXCIgOiBcImVuLVVLXCIpO1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuaXNDcmVhdGVkQmVmb3IgPSBmYWxzZVxyXG4gICAgdGhpcy5ncm91cC5hZGRDb250cm9sKHRoaXMub3B0aW9ucy5OYW1lLCBuZXcgRm9ybUNvbnRyb2woJycpKTtcclxuICAgIHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sID0gdGhpcy5ncm91cC5jb250cm9sc1t0aGlzLm9wdGlvbnMuTmFtZV07IC8vICBuZXcgRm9ybUNvbnRyb2woJycsdmFsaWRhdGlvblJ1bGVzKTtcclxuXHJcbiAgICB0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm9wdGlvbnMuVmFsdWUpO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQ3VzdG9tVmFsaWRhdGlvbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBWYWxpZGF0aW9ucyA9IHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uXHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBWYWxpZGF0aW9ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBWYWxpZGF0aW9uID0gVmFsaWRhdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuTGFiZWxLZXkgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuTGFiZWxLZXkgIT0gXCJcIilcclxuICAgICAgdGhpcy5vcHRpb25zLkxhYmVsVmFsdWUgPSB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUodGhpcy5vcHRpb25zLkxhYmVsS2V5KTtcclxuXHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuU3RhcnRDb250cm9sVG9Db21wYXJlV2l0aCkge1xyXG4gICAgICBpZiAodGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLlN0YXJ0Q29udHJvbFRvQ29tcGFyZVdpdGgpKSB7XHJcbiAgICAgICAgdGhpcy5jb21wYXJlZENvbnRyb2wgPSB0aGlzLmdyb3VwLmdldCh0aGlzLm9wdGlvbnMuU3RhcnRDb250cm9sVG9Db21wYXJlV2l0aClcclxuICAgICAgICB0aGlzLnN1YnNjcmliZURhdGVDaGFuZ2VzKClcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy52YWxpZGF0aW9uUnVsZXMpO1xyXG4gICAgdGhpcy5EYXRlUGlja2VyRm9ybUNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMudmFsaWRhdGlvblJ1bGVzYXN5bmMpO1xyXG4gICAgdGhpcy5EYXRlSW5wdXRDb250cm9sSG9zdC5uZ1N1Ym1pdC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JvdXAubWFya0FsbEFzVG91Y2hlZCgpXHJcbiAgICAgIHRoaXMubWFya0FsbEFzVG91Y2hlZCA9IHRydWVcclxuICAgIH0pXHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5zZXRBdHRyaWJ1dGVGb3JDb250cm9sKHRoaXMub3B0aW9ucylcclxuICB9XHJcblxyXG5cclxuICByZXNldEVycm9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuUmVtb3ZlR2xvYmFsRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIHNob3dHbG9iYWxFcnJvcigpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuc2hvd0dsb2JhbEVycm9yKClcclxuICB9XHJcblxyXG4gIGdldEVycm9yVmFsaWRhdGlvbihFcnJvckxpc3QpIHtcclxuICAgIGlmICh0aGlzLm1hcmtBbGxBc1RvdWNoZWQgJiYgdGhpcy5ncm91cC5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuc2hvd0dsb2JhbEVycm9yKClcclxuICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkID0gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xVdGlsaXR5LmdldEVycm9yVmFsaWRhdGlvbk1hc3NhZ2UoRXJyb3JMaXN0LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgY29weUlucHV0TWVzc2FnZShpbnB1dEVsZW1lbnQpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQ29weUlucHV0TWVzc2FnZShpbnB1dEVsZW1lbnQpXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldFNlbGVjdE1vZGUodHlwZTogbnVtYmVyKSB7XHJcbiAgICBsZXQgVmFsdWUgPSAoU2VsZWN0TW9kZVt0eXBlXSBhcyBzdHJpbmcpXHJcbiAgICByZXR1cm4gVmFsdWUudG9Mb3dlckNhc2UoKVxyXG4gIH1cclxuICBnZXRQaWNrZXJUeXBlKHR5cGU6IG51bWJlcikge1xyXG4gICAgbGV0IFZhbHVlID0gKFBpY2tlclR5cGVbdHlwZV0gYXMgc3RyaW5nKVxyXG4gICAgcmV0dXJuIFZhbHVlLnRvTG93ZXJDYXNlKClcclxuICB9XHJcbiAgZ2V0U3RhcnRWaWV3KHR5cGU6IG51bWJlcikge1xyXG4gICAgaWYgKHR5cGUgPT0gMylcclxuICAgICAgcmV0dXJuIFwibXVsdGkteWVhclwiO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBWYWx1ZSA9IFN0YXJ0Vmlld1t0eXBlXSBhcyBzdHJpbmdcclxuICAgICAgcmV0dXJuIFZhbHVlLnRvTG93ZXJDYXNlKClcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBvbkRhdGVTZWxlY3QoaXRlbSkge1xyXG4gICAgbGV0IERhdGVWYWx1ZTtcclxuICAgIHZhciB0em9mZnNldCA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7IC8vb2Zmc2V0IGluIG1pbGxpc2Vjb25kcyAgXHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5TZWxlY3RNb2RlID09IDIpIHtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGl0ZW0udmFsdWUubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgaXRlbS52YWx1ZVtpbmRleF0gPSBuZXcgRGF0ZShpdGVtLnZhbHVlW2luZGV4XSAtIHR6b2Zmc2V0KS50b0lTT1N0cmluZygpLnNsaWNlKDAsIC0xKTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgRGF0ZVZhbHVlID0gaXRlbS52YWx1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBEYXRlVmFsdWUgPSBuZXcgRGF0ZShpdGVtLnZhbHVlIC0gdHpvZmZzZXQpLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgLTEpO1xyXG5cclxuICAgIH1cclxuICAgIHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLnNldFZhbHVlKERhdGVWYWx1ZSlcclxuICAgIHRoaXMub25DaGFuZ2VTZXJ2aWNlLkNoYW5nZVZhbHVlKHRoaXMub3B0aW9ucy5OYW1lKTtcclxuICAgIGxldCBvcmlnaW5hbFZhbHVlID0gRGF0ZVZhbHVlO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5QYXRjaEZ1bmN0aW9uICYmIHRoaXMub3B0aW9ucy5QYXRjaFBhdGggJiYgdGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbFV0aWxpdHkucGF0Y2hDb250cm9sVmFsdWUob3JpZ2luYWxWYWx1ZSx0aGlzLm9wdGlvbnMuUGF0Y2hGdW5jdGlvbiAsdGhpcy5vcHRpb25zLlBhdGNoUGF0aClcclxuICAgIH1cclxuICAgIHRoaXMuT25DaGFuZ2UuZW1pdChvcmlnaW5hbFZhbHVlKTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgc3Vic2NyaWJlRGF0ZUNoYW5nZXMoKSB7XHJcbiAgICBjb25zdCBzdGFydERhdGVDaGFuZ2VzID0gdGhpcy5jb21wYXJlZENvbnRyb2wudmFsdWVDaGFuZ2VzO1xyXG4gICAgY29uc3QgZW5kRGF0ZUNoYW5nZXMgPSB0aGlzLmdyb3VwLmdldCh0aGlzLm9wdGlvbnMuTmFtZSkudmFsdWVDaGFuZ2VzO1xyXG4gICAgc3RhcnREYXRlQ2hhbmdlcy5zdWJzY3JpYmUoc3RhcnQgPT4ge1xyXG4gICAgICAgIHRoaXMuY29tcGFyZWRDb250cm9sLmFkZFZhbGlkYXRvcnModGhpcy5jaGVja0lmU3RhcnREYXRlQmVGb3JFbmREYXRlKTtcclxuICAgICAgICB0aGlzLmNvbXBhcmVkQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9KTtcclxuICAgIGVuZERhdGVDaGFuZ2VzLnN1YnNjcmliZShlbmQgPT4ge1xyXG4gICAgICAgIHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLmFkZFZhbGlkYXRvcnModGhpcy5jaGVja0lmRW5kRGF0ZUFmdGVyU3RhcnREYXRlKTtcclxuICAgICAgICB0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuICBjaGVja0lmRW5kRGF0ZUFmdGVyU3RhcnREYXRlID0gKCkgPT4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbXBhcmVkQ29udHJvbC52YWx1ZSB8fCAhdGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAoIG5ldyBEYXRlKHRoaXMuY29tcGFyZWRDb250cm9sLnZhbHVlKTwgbmV3IERhdGUodGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMuY29tcGFyZWRDb250cm9sLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29tcGFyZWRDb250cm9sLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgICByZXR1cm4ge0ludmFsaWRFbmREYXRlOnRydWV9O1xyXG4gICAgfVxyXG59O1xyXG5jaGVja0lmU3RhcnREYXRlQmVGb3JFbmREYXRlID0gKCkgPT4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbXBhcmVkQ29udHJvbC52YWx1ZSB8fCAhdGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAoIG5ldyBEYXRlKHRoaXMuY29tcGFyZWRDb250cm9sLnZhbHVlKSA8IG5ldyBEYXRlKHRoaXMuZ3JvdXAuZ2V0KHRoaXMub3B0aW9ucy5OYW1lKS52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmdyb3VwLmdldCh0aGlzLm9wdGlvbnMuTmFtZSkuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgICByZXR1cm4ge0ludmFsaWRTdGFydERhdGU6dHJ1ZX07XHJcbiAgICB9XHJcbn07XHJcblxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgUmVtb3ZlUmVxdWlyZWRWYWxpZGF0aW9uID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5SZW1vdmVSZXF1aXJlZFZhbGlkYXRpb24odGhpcy5EYXRlUGlja2VyRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCB0aGlzLm9wdGlvbnMpXHJcbiAgfVxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgQWRkUmVxdWlyZWRWYWxpZGF0aW9uID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5BZGRSZXF1aXJlZFZhbGlkYXRpb24odGhpcy5EYXRlUGlja2VyRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCB0aGlzLm9wdGlvbnMpXHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIFJlbW92ZUN1c3RvbVZhbGlkYXRpb24gPSAoQ3VzdG9tVmFsaWRhdGlvbikgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5SZW1vdmVDdXN0b21WYWxpZGF0aW9uKHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBBZGRDdXN0b21WYWxpZGF0aW9uID0gKEN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkQ3VzdG9tVmFsaWRhdGlvbih0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIEN1c3RvbVZhbGlkYXRpb24pXHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIElzVmFsaWQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LklzVmFsaWQodGhpcy5EYXRlUGlja2VyRm9ybUNvbnRyb2wpXHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcblxyXG4iXX0=
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVRpbWVQaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL0RhdGVUaW1lUGlja2VyL0RhdGVUaW1lUGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVyxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBOEIsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFbkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVV4RCxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLDRDQUE0QztJ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QkFrQnJCLEtBQUs7c0JBQ0wsS0FBSzt1QkFFTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBEb0NoZWNrLCBPcHRpb25hbCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMsIEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXBEaXJlY3RpdmUsIENvbnRyb2xDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9kYXRlUGlja2VyT3B0aW9ucyc7XHJcbmltcG9ydCB7IEVycm9yTWFzc2FnZVZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvdmFsaWRhdGlvbkVycm9yTWFzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbFV0aWxpdHkgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvQ29udHJvbFV0aWxpdHknO1xyXG5pbXBvcnQgeyBQaWNrZXJUeXBlIH0gZnJvbSAnLi4vLi4vU2hhcmVkL0VudW1zL1BpY2tlclR5cGUnO1xyXG5pbXBvcnQgeyBTdGFydFZpZXcgfSBmcm9tICcuLi8uLi9TaGFyZWQvRW51bXMvU3RhcnRWaWV3JztcclxuaW1wb3J0IHsgU2VsZWN0TW9kZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9FbnVtcy9TZWxlY3RNb2RlJztcclxuaW1wb3J0IHsgT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy9PblBhZ2luZ0ZpbHRlcnNDaGFuZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCQlNGVHJhbnNsYXRlU2VydmljZSwgQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRGF0ZVRpbWVBZGFwdGVyIH0gZnJvbSAnbmctcGljay1kYXRldGltZSc7XHJcbmltcG9ydCB7IE93bERhdGVUaW1lSW50bCB9IGZyb20gJ25nLXBpY2stZGF0ZXRpbWUnO1xyXG5pbXBvcnQgeyBEZWZhdWx0SW50bCB9IGZyb20gJy4uLy4uL1NoYXJlZC9kZWZhdWx0X2ludGwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdCQlNGLURhdGVUaW1lUGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vRGF0ZVRpbWVQaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL0RhdGVUaW1lUGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7IHByb3ZpZGU6IE93bERhdGVUaW1lSW50bCwgdXNlQ2xhc3M6IERlZmF1bHRJbnRsIH1cclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBzdGF0aWMgY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0ZXBpcGU6IERhdGVQaXBlLCBwcml2YXRlIG9uQ2hhbmdlU2VydmljZTogT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSwgcHJpdmF0ZSBFcnJvckhhbmRsZXI6IEVycm9yTWFzc2FnZVZhbGlkYXRpb24sIHByaXZhdGUgY29udHJvbFV0aWxpdHk6IENvbnRyb2xVdGlsaXR5LCBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsIHB1YmxpYyBEYXRlSW5wdXRDb250cm9sSG9zdDogRm9ybUdyb3VwRGlyZWN0aXZlLCBwcml2YXRlIFV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGU6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIGNvbnRyb2xWYWxpZGF0aW9uU2VydmljZTogQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLCBwcml2YXRlIGRhdGVUaW1lQWRhcHRlcjogRGF0ZVRpbWVBZGFwdGVyPGFueT4pIHtcclxuICAgIERhdGVJbnB1dENvbXBvbmVudC5jb250cm9sQ29udGFpbmVyc3RhdGljID0gdGhpcy5jb250cm9sQ29udGFpbmVyO1xyXG4gIH1cclxuICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IERhdGVQaWNrZXJPcHRpb25zO1xyXG4gIERhdGVQaWNrZXJGb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG4gIEBPdXRwdXQoKSBPbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBtYXJrQWxsQXNUb3VjaGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmFsaWRhdGlvblJ1bGVzID0gW107XHJcbiAgdmFsaWRhdGlvblJ1bGVzYXN5bmMgPSBbXTtcclxuICBjb21wYXJlZENvbnRyb2w6IEFic3RyYWN0Q29udHJvbCA9IG51bGw7XHJcbiAgZGF0ZUVycm9yOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICAgIC8vIFVwZGF0ZSB0aGUgRGF0ZVRpbWVBZGFwdGVyIExhbmd1YWdlIHdpdGggdGhlIGN1cnJlbnQgdGhyZWFkIGxhbmdhdWdlXHJcbiAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5zZXRMb2NhbGUodGhpcy5VdGlsaXR5U2VydmljZS5nZXRDdXJyZW50TGFuZ3VhZ2UoKSA9PSBcImFyXCIgPyBcImFyXCIgOiBcImVuLVVLXCIpO1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuaXNDcmVhdGVkQmVmb3IgPSBmYWxzZVxyXG4gICAgdGhpcy5ncm91cC5hZGRDb250cm9sKHRoaXMub3B0aW9ucy5OYW1lLCBuZXcgRm9ybUNvbnRyb2woJycpKTtcclxuICAgIHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sID0gdGhpcy5ncm91cC5jb250cm9sc1t0aGlzLm9wdGlvbnMuTmFtZV07IC8vICBuZXcgRm9ybUNvbnRyb2woJycsdmFsaWRhdGlvblJ1bGVzKTtcclxuXHJcbiAgICB0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm9wdGlvbnMuVmFsdWUpO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQ3VzdG9tVmFsaWRhdGlvbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBWYWxpZGF0aW9ucyA9IHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uXHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBWYWxpZGF0aW9ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBWYWxpZGF0aW9uID0gVmFsaWRhdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuTGFiZWxLZXkgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuTGFiZWxLZXkgIT0gXCJcIilcclxuICAgICAgdGhpcy5vcHRpb25zLkxhYmVsVmFsdWUgPSB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUodGhpcy5vcHRpb25zLkxhYmVsS2V5KTtcclxuXHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuU3RhcnRDb250cm9sVG9Db21wYXJlV2l0aCkge1xyXG4gICAgICBpZiAodGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLlN0YXJ0Q29udHJvbFRvQ29tcGFyZVdpdGgpKSB7XHJcbiAgICAgICAgdGhpcy5jb21wYXJlZENvbnRyb2wgPSB0aGlzLmdyb3VwLmdldCh0aGlzLm9wdGlvbnMuU3RhcnRDb250cm9sVG9Db21wYXJlV2l0aClcclxuICAgICAgICB0aGlzLnN1YnNjcmliZURhdGVDaGFuZ2VzKClcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy52YWxpZGF0aW9uUnVsZXMpO1xyXG4gICAgdGhpcy5EYXRlUGlja2VyRm9ybUNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMudmFsaWRhdGlvblJ1bGVzYXN5bmMpO1xyXG4gICAgdGhpcy5EYXRlSW5wdXRDb250cm9sSG9zdC5uZ1N1Ym1pdC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JvdXAubWFya0FsbEFzVG91Y2hlZCgpXHJcbiAgICAgIHRoaXMubWFya0FsbEFzVG91Y2hlZCA9IHRydWVcclxuICAgIH0pXHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5zZXRBdHRyaWJ1dGVGb3JDb250cm9sKHRoaXMub3B0aW9ucylcclxuICB9XHJcblxyXG5cclxuICByZXNldEVycm9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuUmVtb3ZlR2xvYmFsRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIHNob3dHbG9iYWxFcnJvcigpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuc2hvd0dsb2JhbEVycm9yKClcclxuICB9XHJcblxyXG4gIGdldEVycm9yVmFsaWRhdGlvbihFcnJvckxpc3QpIHtcclxuICAgIGlmICh0aGlzLm1hcmtBbGxBc1RvdWNoZWQgJiYgdGhpcy5ncm91cC5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuc2hvd0dsb2JhbEVycm9yKClcclxuICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkID0gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xVdGlsaXR5LmdldEVycm9yVmFsaWRhdGlvbk1hc3NhZ2UoRXJyb3JMaXN0LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgY29weUlucHV0TWVzc2FnZShpbnB1dEVsZW1lbnQpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQ29weUlucHV0TWVzc2FnZShpbnB1dEVsZW1lbnQpXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldFNlbGVjdE1vZGUodHlwZTogbnVtYmVyKSB7XHJcbiAgICBsZXQgVmFsdWUgPSAoU2VsZWN0TW9kZVt0eXBlXSBhcyBzdHJpbmcpXHJcbiAgICByZXR1cm4gVmFsdWUudG9Mb3dlckNhc2UoKVxyXG4gIH1cclxuICBnZXRQaWNrZXJUeXBlKHR5cGU6IG51bWJlcikge1xyXG4gICAgbGV0IFZhbHVlID0gKFBpY2tlclR5cGVbdHlwZV0gYXMgc3RyaW5nKVxyXG4gICAgcmV0dXJuIFZhbHVlLnRvTG93ZXJDYXNlKClcclxuICB9XHJcbiAgZ2V0U3RhcnRWaWV3KHR5cGU6IG51bWJlcikge1xyXG4gICAgaWYgKHR5cGUgPT0gMylcclxuICAgICAgcmV0dXJuIFwibXVsdGkteWVhclwiO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBWYWx1ZSA9IFN0YXJ0Vmlld1t0eXBlXSBhcyBzdHJpbmdcclxuICAgICAgcmV0dXJuIFZhbHVlLnRvTG93ZXJDYXNlKClcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBvbkRhdGVTZWxlY3QoaXRlbSkge1xyXG4gICAgbGV0IERhdGVWYWx1ZTtcclxuICAgIHZhciB0em9mZnNldCA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7IC8vb2Zmc2V0IGluIG1pbGxpc2Vjb25kcyAgXHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5TZWxlY3RNb2RlID09IDIpIHtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGl0ZW0udmFsdWUubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgaXRlbS52YWx1ZVtpbmRleF0gPSBuZXcgRGF0ZShpdGVtLnZhbHVlW2luZGV4XSAtIHR6b2Zmc2V0KS50b0lTT1N0cmluZygpLnNsaWNlKDAsIC0xKTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgRGF0ZVZhbHVlID0gaXRlbS52YWx1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBEYXRlVmFsdWUgPSBuZXcgRGF0ZShpdGVtLnZhbHVlIC0gdHpvZmZzZXQpLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgLTEpO1xyXG5cclxuICAgIH1cclxuICAgIHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLnNldFZhbHVlKERhdGVWYWx1ZSlcclxuICAgIHRoaXMub25DaGFuZ2VTZXJ2aWNlLkNoYW5nZVZhbHVlKHRoaXMub3B0aW9ucy5OYW1lKTtcclxuICAgIGxldCBvcmlnaW5hbFZhbHVlID0gRGF0ZVZhbHVlO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5QYXRjaEZ1bmN0aW9uICYmIHRoaXMub3B0aW9ucy5QYXRjaFBhdGggJiYgdGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbFV0aWxpdHkucGF0Y2hDb250cm9sVmFsdWUob3JpZ2luYWxWYWx1ZSx0aGlzLm9wdGlvbnMuUGF0Y2hGdW5jdGlvbiAsdGhpcy5vcHRpb25zLlBhdGNoUGF0aClcclxuICAgIH1cclxuICAgIHRoaXMuT25DaGFuZ2UuZW1pdChvcmlnaW5hbFZhbHVlKTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgc3Vic2NyaWJlRGF0ZUNoYW5nZXMoKSB7XHJcbiAgICBjb25zdCBzdGFydERhdGVDaGFuZ2VzID0gdGhpcy5jb21wYXJlZENvbnRyb2wudmFsdWVDaGFuZ2VzO1xyXG4gICAgY29uc3QgZW5kRGF0ZUNoYW5nZXMgPSB0aGlzLmdyb3VwLmdldCh0aGlzLm9wdGlvbnMuTmFtZSkudmFsdWVDaGFuZ2VzO1xyXG4gICAgc3RhcnREYXRlQ2hhbmdlcy5zdWJzY3JpYmUoc3RhcnQgPT4ge1xyXG4gICAgICAgIHRoaXMuY29tcGFyZWRDb250cm9sLmFkZFZhbGlkYXRvcnModGhpcy5jaGVja0lmU3RhcnREYXRlQmVGb3JFbmREYXRlKTtcclxuICAgICAgICB0aGlzLmNvbXBhcmVkQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9KTtcclxuICAgIGVuZERhdGVDaGFuZ2VzLnN1YnNjcmliZShlbmQgPT4ge1xyXG4gICAgICAgIHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLmFkZFZhbGlkYXRvcnModGhpcy5jaGVja0lmRW5kRGF0ZUFmdGVyU3RhcnREYXRlKTtcclxuICAgICAgICB0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuICBjaGVja0lmRW5kRGF0ZUFmdGVyU3RhcnREYXRlID0gKCkgPT4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbXBhcmVkQ29udHJvbC52YWx1ZSB8fCAhdGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAoIG5ldyBEYXRlKHRoaXMuY29tcGFyZWRDb250cm9sLnZhbHVlKTwgbmV3IERhdGUodGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMuY29tcGFyZWRDb250cm9sLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29tcGFyZWRDb250cm9sLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgICByZXR1cm4ge0ludmFsaWRFbmREYXRlOnRydWV9O1xyXG4gICAgfVxyXG59O1xyXG5jaGVja0lmU3RhcnREYXRlQmVGb3JFbmREYXRlID0gKCkgPT4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbXBhcmVkQ29udHJvbC52YWx1ZSB8fCAhdGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAoIG5ldyBEYXRlKHRoaXMuY29tcGFyZWRDb250cm9sLnZhbHVlKSA8IG5ldyBEYXRlKHRoaXMuZ3JvdXAuZ2V0KHRoaXMub3B0aW9ucy5OYW1lKS52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmdyb3VwLmdldCh0aGlzLm9wdGlvbnMuTmFtZSkuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgICByZXR1cm4ge0ludmFsaWRTdGFydERhdGU6dHJ1ZX07XHJcbiAgICB9XHJcbn07XHJcblxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgUmVtb3ZlUmVxdWlyZWRWYWxpZGF0aW9uID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5SZW1vdmVSZXF1aXJlZFZhbGlkYXRpb24odGhpcy5EYXRlUGlja2VyRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCB0aGlzLm9wdGlvbnMpXHJcbiAgfVxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgQWRkUmVxdWlyZWRWYWxpZGF0aW9uID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5BZGRSZXF1aXJlZFZhbGlkYXRpb24odGhpcy5EYXRlUGlja2VyRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCB0aGlzLm9wdGlvbnMpXHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIFJlbW92ZUN1c3RvbVZhbGlkYXRpb24gPSAoQ3VzdG9tVmFsaWRhdGlvbikgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5SZW1vdmVDdXN0b21WYWxpZGF0aW9uKHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBBZGRDdXN0b21WYWxpZGF0aW9uID0gKEN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkQ3VzdG9tVmFsaWRhdGlvbih0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIEN1c3RvbVZhbGlkYXRpb24pXHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIElzVmFsaWQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LklzVmFsaWQodGhpcy5EYXRlUGlja2VyRm9ybUNvbnRyb2wpXHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcblxyXG4iXX0=
|
|
@@ -2,6 +2,7 @@ import { Component, Output, EventEmitter, Input } from '@angular/core';
|
|
|
2
2
|
import { Router } from '@angular/router';
|
|
3
3
|
import { HttpClient } from '@angular/common/http';
|
|
4
4
|
import { PagingDTO } from '../../Shared/Models/PagingDTO';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
5
6
|
import { OnPagingFiltersChangeService } from '../../Shared/services/OnPagingFiltersChange.service';
|
|
6
7
|
import { FilterType } from '../../Shared/Enums/FilterType';
|
|
7
8
|
import { RequestHandlerService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';
|
|
@@ -31,6 +32,7 @@ export class PagingComponent {
|
|
|
31
32
|
this.direction = '';
|
|
32
33
|
this.IsFirstCall = true;
|
|
33
34
|
this.Items = new EventEmitter();
|
|
35
|
+
this.subscriptions = new Subscription();
|
|
34
36
|
this.ReinitializePaging = () => {
|
|
35
37
|
this.IsFirstCall = true;
|
|
36
38
|
this.getItemList(1, true);
|
|
@@ -40,30 +42,33 @@ export class PagingComponent {
|
|
|
40
42
|
this.getItemList(this.CurrentPage);
|
|
41
43
|
};
|
|
42
44
|
}
|
|
45
|
+
ngOnDestroy() {
|
|
46
|
+
this.subscriptions.unsubscribe();
|
|
47
|
+
}
|
|
43
48
|
ngOnInit() {
|
|
44
49
|
if (this.options.IsLoadMoreControl)
|
|
45
50
|
this.Sum = this.options.PageSize;
|
|
46
51
|
if (this.options.DropdownFiltersControlNames != null && this.options.DropdownFiltersControlNames.length > 0) {
|
|
47
52
|
const DropdownFiltersControlNames = this.options.DropdownFiltersControlNames;
|
|
48
|
-
this.onChangeService.GetValue().subscribe((value) => {
|
|
53
|
+
this.subscriptions.add(this.onChangeService.GetValue().subscribe((value) => {
|
|
49
54
|
let result = this.options.DropdownFiltersControlNames.filter((item) => item == value);
|
|
50
55
|
if (result.length > 0) {
|
|
51
56
|
this.IsFirstCall = true;
|
|
52
57
|
this.CurrentPage = 1;
|
|
53
58
|
this.getItemList(this.CurrentPage, true);
|
|
54
59
|
}
|
|
55
|
-
});
|
|
60
|
+
}));
|
|
56
61
|
}
|
|
57
62
|
if (this.options.BootstrapDatePickersFiltersControlNames != null && this.options.BootstrapDatePickersFiltersControlNames.length > 0) {
|
|
58
63
|
const BootstrapDatePickersFiltersControlNames = this.options.BootstrapDatePickersFiltersControlNames;
|
|
59
|
-
this.onChangeService.GetValue().subscribe((value) => {
|
|
64
|
+
this.subscriptions.add(this.onChangeService.GetValue().subscribe((value) => {
|
|
60
65
|
let result = this.options.BootstrapDatePickersFiltersControlNames.filter((item) => item == value);
|
|
61
66
|
if (result.length > 0) {
|
|
62
67
|
this.IsFirstCall = true;
|
|
63
68
|
this.CurrentPage = 1;
|
|
64
69
|
this.getItemList(this.CurrentPage, true);
|
|
65
70
|
}
|
|
66
|
-
});
|
|
71
|
+
}));
|
|
67
72
|
}
|
|
68
73
|
this.IsFirstCall = true;
|
|
69
74
|
this.getItemList(this.CurrentPage, true);
|
|
@@ -251,21 +256,21 @@ export class PagingComponent {
|
|
|
251
256
|
let ControlValue = this.group.controls[FormControlName].value;
|
|
252
257
|
if (ControlValue != undefined && ControlValue != null && ControlValue != "") {
|
|
253
258
|
if (this.options.Filters[index].FilterType == FilterType.DatePicker) {
|
|
254
|
-
if (Array.isArray(ControlValue)) {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
}
|
|
260
|
-
else {
|
|
261
|
-
|
|
262
|
-
}
|
|
259
|
+
//if (Array.isArray(ControlValue)) {
|
|
260
|
+
// for (let element = 0; element < ControlValue.length; element++) {
|
|
261
|
+
// const value = ControlValue[element];
|
|
262
|
+
// filters[this.options.Filters[index].ActionParameterName] = value;
|
|
263
|
+
// }
|
|
264
|
+
//}
|
|
265
|
+
//else {
|
|
266
|
+
filters[this.options.Filters[index].ActionParameterName] = ControlValue;
|
|
267
|
+
//}
|
|
263
268
|
}
|
|
264
269
|
else {
|
|
265
270
|
if (this.options.Filters[index].FilterType == FilterType.AutocompleteTextBox)
|
|
266
|
-
ControlValue =
|
|
271
|
+
ControlValue = ControlValue;
|
|
267
272
|
if (this.options.Filters[index].FilterType == FilterType.TagInput)
|
|
268
|
-
ControlValue =
|
|
273
|
+
ControlValue = ControlValue;
|
|
269
274
|
filters[this.options.Filters[index].ActionParameterName] = ControlValue;
|
|
270
275
|
}
|
|
271
276
|
}
|
|
@@ -305,4 +310,4 @@ PagingComponent.propDecorators = {
|
|
|
305
310
|
options: [{ type: Input }],
|
|
306
311
|
group: [{ type: Input }]
|
|
307
312
|
};
|
|
308
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFnaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9QYWdpbmcvUGFnaW5nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBOEMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFLMUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHakQscURBQXFEO0FBTXJELE1BQU0sT0FBTyxlQUFlO0lBMEIxQixZQUFtQixjQUE4QixFQUFVLElBQWdCLEVBQVUsTUFBYyxFQUFVLGVBQTZDLEVBQVUscUJBQTRDO1FBQTdMLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQThCO1FBQVUsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQXhCaE4sVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFDakIsZ0JBQVcsR0FBUSxJQUFJLENBQUM7UUFDeEIsYUFB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T0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUNuRTthQUNGO1NBQ0Y7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzs7WUEzVEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2QixrMURBQXNDOzthQUV2Qzs7O1lBVG9ELGNBQWM7WUFSMUQsVUFBVTtZQURWLE1BQU07WUFPTiw0QkFBNEI7WUFFNUIscUJBQXFCOzs7b0JBZ0MzQixNQUFNO3NCQUNOLEtBQUs7b0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIFNpbXBsZUNoYW5nZXMsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBQYWdpbmdEVE8gfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL1BhZ2luZ0RUTyc7XHJcbmltcG9ydCB7IFBhZ2luZ09wdGlvbnMgfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL1BhZ2luZ09wdGlvbnMnO1xyXG5pbXBvcnQgeyBSZXF1ZXN0T3B0aW9ucywgUmVzcG9uc2VDb250ZW50VHlwZSwgSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2h0dHAnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy9PblBhZ2luZ0ZpbHRlcnNDaGFuZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9TaGFyZWQvRW51bXMvRmlsdGVyVHlwZSc7XHJcbmltcG9ydCB7IFJlcXVlc3RIYW5kbGVyU2VydmljZSwgUmVxdWVzdE9wdGlvbnNNb2RlbCwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XHJcbmltcG9ydCB7IFBhZ2luZ1BheWxvYWQgfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL1BhZ2luZ1BheWxvYWQnO1xyXG5cclxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25mbGljdGluZy1saWZlY3ljbGVcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdCQlNGLVBhZ2luZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL1BhZ2luZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vUGFnaW5nLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2luZ0NvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGl0ZW1zID0gW107XHJcbiAgcGFnZU9mSXRlbXM6IEFycmF5PGFueT47XHJcbiAgcmVzdWx0OiBUW10gPSBbXTtcclxuICBwYWdlckNvbmZpZzogYW55ID0gbnVsbDtcclxuICB0b3RhbFJvdzogYW55ID0gMDtcclxuICBwYWdlU2l6ZTogYW55ID0gMTBcclxuICBQYWdlczogYW55ID0gMFxyXG4gIHBhZ2VzVGV4dDogc3RyaW5nO1xyXG4gIGl0ZW1zVGV4dDogc3RyaW5nO1xyXG4gIEN1cnJlbnRQYWdlOiBhbnkgPSAxXHJcbiAgU2hvd1BhZ2VTaXplT3B0aW9uID0gdHJ1ZTtcclxuICBTaG93Rmlyc3RBbmRMYXN0ID0gdHJ1ZTtcclxuICBoaWRlUGFnaW5hdGlvbldoZW5QYWdlU2l6ZUVxdWFsT25lID0gdHJ1ZVxyXG4gIFN1bSA9IDA7XHJcbiAgVGhyb3R0bGUgPSAzMDA7XHJcbiAgU2Nyb2xsRGlzdGFuY2UgPSAxO1xyXG4gIFNjcm9sbFVwRGlzdGFuY2UgPSAyO1xyXG4gIGRpcmVjdGlvbiA9ICcnO1xyXG4gIEhlYWRlcnM6IEh0dHBIZWFkZXJzO1xyXG4gIElzRmlyc3RDYWxsOiBib29sZWFuID0gdHJ1ZTtcclxuICBAT3V0cHV0KCkgSXRlbXM6IEV2ZW50RW1pdHRlcjxUW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XHJcbiAgQElucHV0KCkgb3B0aW9uczogUGFnaW5nT3B0aW9ucztcclxuICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgb25DaGFuZ2VTZXJ2aWNlOiBPblBhZ2luZ0ZpbHRlcnNDaGFuZ2VTZXJ2aWNlLCBwcml2YXRlIHJlcXVlc3RIYW5kbGVyU2VydmljZTogUmVxdWVzdEhhbmRsZXJTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNMb2FkTW9yZUNvbnRyb2wpXHJcbiAgICAgIHRoaXMuU3VtID0gdGhpcy5vcHRpb25zLlBhZ2VTaXplO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuRHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkRyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IERyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcyA9IHRoaXMub3B0aW9ucy5Ecm9wZG93bkZpbHRlcnNDb250cm9sTmFtZXM7XHJcbiAgICAgIHRoaXMub25DaGFuZ2VTZXJ2aWNlLkdldFZhbHVlKCkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLm9wdGlvbnMuRHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzLmZpbHRlcigoaXRlbSkgPT4gaXRlbSA9PSB2YWx1ZSlcclxuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuSXNGaXJzdENhbGwgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkJvb3RzdHJhcERhdGVQaWNrZXJzRmlsdGVyc0NvbnRyb2xOYW1lcyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5Cb290c3RyYXBEYXRlUGlja2Vyc0ZpbHRlcnNDb250cm9sTmFtZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBCb290c3RyYXBEYXRlUGlja2Vyc0ZpbHRlcnNDb250cm9sTmFtZXMgPSB0aGlzLm9wdGlvbnMuQm9vdHN0cmFwRGF0ZVBpY2tlcnNGaWx0ZXJzQ29udHJvbE5hbWVzO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlU2VydmljZS5HZXRWYWx1ZSgpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5vcHRpb25zLkJvb3RzdHJhcERhdGVQaWNrZXJzRmlsdGVyc0NvbnRyb2xOYW1lcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gPT0gdmFsdWUpXHJcbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLklzRmlyc3RDYWxsID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICB0aGlzLklzRmlyc3RDYWxsID0gdHJ1ZTtcclxuICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLk9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLk9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZXMgPSB0aGlzLm9wdGlvbnMuT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZXM7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBPbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBPbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lID0gT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZXNbaW5kZXhdO1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKE9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWUpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLkN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgICAgIHRoaXMuSXNGaXJzdENhbGwgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgICAgICB9LCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBPbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IHRoaXMub3B0aW9ucy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcztcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IE9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IE9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWUgPSBPbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lc1tpbmRleF07XHJcbiAgICAgICAgbGV0IGVsZW1lbnQgPSAoPGFueT50aGlzLmdyb3VwLmdldChPbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lKSkubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlwcmVzc1wiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGUua2V5ID09IFwiRW50ZXJcIikge1xyXG4gICAgICAgICAgICB0aGlzLkN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgICAgICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvL0FkZCBjbGljayBldmVudCBvbiBSZXNldCBGaWx0ZXIgYnV0dG9uXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLlJlc2V0RmlsdGVyQnV0dG9uTmFtZSAhPSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKHRoaXMub3B0aW9ucy5SZXNldEZpbHRlckJ1dHRvbk5hbWUpWzBdO1xyXG4gICAgICBpZiAoYnV0dG9uICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGxldCBlbGVtZW50ID0gYnV0dG9uIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyRmlsdGVycygpO1xyXG4gICAgICAgIH0sIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5UeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZXMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWVzID0gdGhpcy5vcHRpb25zLlR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lcztcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IFR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lcy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBUeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZSA9IFR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lc1tpbmRleF07XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWUpLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlwcmVzc1wiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGUua2V5ID09IFwiRW50ZXJcIikge1xyXG4gICAgICAgICAgICB0aGlzLkN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgICAgICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgZmFsc2UpO1xyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG9uRHJvcERvd25DaGFuZ2UocmVzdWx0KSB7XHJcbiAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLklzRmlyc3RDYWxsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlUGFnZShQYWdlKSB7XHJcbiAgICBpZiAoUGFnZSA9PSAwKVxyXG4gICAgICByZXR1cm47XHJcbiAgICBpZiAoUGFnZSA+IDApIHtcclxuICAgICAgaWYgKHRoaXMuSXNGaXJzdENhbGwpIHtcclxuICAgICAgICB0aGlzLklzRmlyc3RDYWxsID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSBQYWdlO1xyXG4gICAgICB0aGlzLmdldEl0ZW1MaXN0KFBhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGFuZ2VQYWdlU2l6ZShlKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMuUGFnZVNpemUgPSBlLnRhcmdldC52YWx1ZTtcclxuICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UsIHRydWUpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgb25TY3JvbGxEb3duKCkge1xyXG4gICAgdGhpcy5TdW0gKz0gdGhpcy5vcHRpb25zLlBhZ2VTaXplXHJcbiAgICB0aGlzLkN1cnJlbnRQYWdlID0gMVxyXG4gICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICB0aGlzLmRpcmVjdGlvbiA9ICdkb3duJztcclxuICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldEl0ZW1MaXN0KHBhZ2UsIElzRmlsdGVyVXBkYXRlZCA9IGZhbHNlKSB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLlN0YXJ0UGFnaW5nQ2FsbGJhY2spXHJcbiAgICAgIHRoaXMub3B0aW9ucy5TdGFydFBhZ2luZ0NhbGxiYWNrLmNhbGwobnVsbCk7XHJcblxyXG4gICAgbGV0IHBhZ2luZ0RUTyA9IG5ldyBQYWdpbmdEVE8oKTtcclxuICAgIGxldCBzaXplID0gTnVtYmVyLnBhcnNlSW50KHRoaXMub3B0aW9ucy5QYWdlU2l6ZS50b1N0cmluZygpKTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNMb2FkTW9yZUNvbnRyb2wpXHJcbiAgICAgIHBhZ2luZ0RUTy5QYWdlQ291bnQgPSB0aGlzLlN1bTtcclxuICAgIGVsc2VcclxuICAgICAgcGFnaW5nRFRPLlBhZ2VDb3VudCA9IHNpemU7XHJcblxyXG4gICAgcGFnaW5nRFRPLkN1cnJlbnRQYWdlTnVtYmVyID0gcGFnZTtcclxuICAgIHBhZ2luZ0RUTy5Ub3RhbENvdW50ID0gdGhpcy50b3RhbFJvdztcclxuICAgIHBhZ2luZ0RUTy5Jc0ZpbHRlclVwZGF0ZWQgPSBJc0ZpbHRlclVwZGF0ZWQ7XHJcbiAgICBsZXQgZmlsdGVycyA9IHt9O1xyXG4gICAgZmlsdGVycyA9IHRoaXMuZ2V0RmlsdGVyc1ZhbHVlKCk7XHJcblxyXG4gICAgLy9TZXQgRmlsdGVycyBvYmplY3QgdGhhdCBzZW50IHRvIGFjdGlvbiBVUkxcclxuICAgIGxldCBmaWx0ZXJzRFRPOiBQYWdpbmdQYXlsb2FkID0ge1xyXG4gICAgICBQYWdpbmdEVE86IHBhZ2luZ0RUTyxcclxuICAgICAgRmlsdGVyczogZmlsdGVyc1xyXG4gICAgfTtcclxuXHJcbiAgICBsZXQgcmVxdWVzdE9wdGlvbnMgPSBuZXcgUmVxdWVzdE9wdGlvbnNNb2RlbCgpO1xyXG4gICAgcmVxdWVzdE9wdGlvbnMuZGlzYWJsZUJsb2NrVUkgPSB0aGlzLm9wdGlvbnMuRGlzYWJsZUJsb2NrVUk7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5wb3N0KHRoaXMub3B0aW9ucy5BY3Rpb25Qb3N0VVJMLCB0aGlzLm9wdGlvbnMuRmlsdGVycyAmJiB0aGlzLm9wdGlvbnMuRmlsdGVycy5sZW5ndGggPiAwID8gZmlsdGVyc0RUTyA6IHBhZ2luZ0RUTywgbnVsbCwgbnVsbCwgcmVxdWVzdE9wdGlvbnMpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlRGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZXN1bHQgPSByZXNwb25zZURhdGEuaXRlbXMgLy90aGlzLmNhc3RJdGVtcyhyZXNwb25zZURhdGEuaXRlbXMpO1xyXG4gICAgICAgIGxldCBjYXN0ZWRSZXN1bHQgPSBwbGFpblRvQ2xhc3ModGhpcy5vcHRpb25zLlR5cGVPZlJlc3BvbnNlLCB0aGlzLnJlc3VsdCwgeyBleGNsdWRlRXh0cmFuZW91c1ZhbHVlczogdHJ1ZSB9KVxyXG4gICAgICAgIHRoaXMuSXRlbXMuZW1pdChjYXN0ZWRSZXN1bHQpO1xyXG4gICAgICAgIHRoaXMudG90YWxSb3cgPSByZXNwb25zZURhdGEudG90YWxDb3VudDtcclxuXHJcbiAgICAgICAgaWYgKElzRmlsdGVyVXBkYXRlZCkge1xyXG4gICAgICAgICAgdGhpcy5pdGVtcyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5QYWdlcyA9IE1hdGguY2VpbCgodGhpcy50b3RhbFJvdyAvIHRoaXMub3B0aW9ucy5QYWdlU2l6ZSkpO1xyXG4gICAgICAgICAgdGhpcy5pdGVtcyA9IEFycmF5KHRoaXMudG90YWxSb3cpO1xyXG5cclxuICAgICAgICAgIHRoaXMuc2V0VGV4dCh0aGlzLlBhZ2VzLCB0aGlzLnRvdGFsUm93KTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDEpXHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvQWRtaW4vYWNjb3VudC9sb2dpblwiXSlcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBSZWluaXRpYWxpemVQYWdpbmcgPSAoKSA9PiB7XHJcbiAgICB0aGlzLklzRmlyc3RDYWxsID0gdHJ1ZTtcclxuICAgIHRoaXMuZ2V0SXRlbUxpc3QoMSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBVcGRhdGVQYWdpbmcgPSAoKSA9PiB7XHJcbiAgICAvL3RoaXMuSXNGaXJzdENhbGw9dHJ1ZTtcclxuICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSk7XHJcbiAgfVxyXG5cclxuICBjYXN0SXRlbXMob2JqZWN0QXJyOiBhbnlbXSk6IFRbXSB7XHJcbiAgICBsZXQgb3JpZ2luYWxBcnJheTogVFtdID0gW11cclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBvYmplY3RBcnIubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBvYmplY3RBcnJbaW5kZXhdO1xyXG4gICAgICBsZXQga2V5LCBrZXlzID0gT2JqZWN0LmtleXMoZWxlbWVudCk7XHJcbiAgICAgIGxldCBuID0ga2V5cy5sZW5ndGg7XHJcbiAgICAgIGxldCBuZXdPYmplY3QgPSB7fVxyXG4gICAgICB3aGlsZSAobi0tKSB7XHJcbiAgICAgICAga2V5ID0ga2V5c1tuXTtcclxuICAgICAgICBsZXQgT2tleSA9IGtleVxyXG4gICAgICAgIG5ld09iamVjdFtrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBPa2V5LnNsaWNlKDEpXSA9IGVsZW1lbnRba2V5XTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgZmluYWxPYmplY3QgPSBuZXdPYmplY3QgYXMgVFxyXG4gICAgICBvcmlnaW5hbEFycmF5LnB1c2goZmluYWxPYmplY3QpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9yaWdpbmFsQXJyYXk7XHJcbiAgfVxyXG5cclxuICBzZXRUZXh0KHBhZ2VzTnVtYmVyOiBudW1iZXIsIGl0ZW1zTnVtYmVyOiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkpIHtcclxuICAgICAgLy9TZXQgcGFnZXMgdGV4dFxyXG4gICAgICBpZiAocGFnZXNOdW1iZXIgPCAzIHx8IHBhZ2VzTnVtYmVyID4gMTApXHJcbiAgICAgICAgdGhpcy5wYWdlc1RleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJQYWdlXCIpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5wYWdlc1RleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJQYWdlc1wiKTtcclxuICAgICAgLy9TZXQgaXRlbXMgdGV4dFxyXG4gICAgICBpZiAoaXRlbXNOdW1iZXIgPCAzIHx8IGl0ZW1zTnVtYmVyID4gMTApXHJcbiAgICAgICAgdGhpcy5pdGVtc1RleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJJdGVtXCIpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5pdGVtc1RleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJJdGVtc1wiKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL1NldCBwYWdlcyB0ZXh0XHJcbiAgICAgIGlmIChwYWdlc051bWJlciA+IDEpXHJcbiAgICAgICAgdGhpcy5wYWdlc1RleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJQYWdlc1wiKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMucGFnZXNUZXh0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUGFnZVwiKTtcclxuICAgICAgLy9TZXQgaXRlbXMgdGV4dFxyXG4gICAgICBpZiAoaXRlbXNOdW1iZXIgPiAxKVxyXG4gICAgICAgIHRoaXMuaXRlbXNUZXh0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSXRlbXNcIik7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLml0ZW1zVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkl0ZW1cIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhckZpbHRlcnMoKSB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkZpbHRlcnMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuRmlsdGVycyAhPSBbXSkge1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5vcHRpb25zLkZpbHRlcnMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5Gb3JtQ29udHJvbE5hbWUgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRm9ybUNvbnRyb2xOYW1lICE9IFwiXCIpIHtcclxuICAgICAgICAgIGNvbnN0IEZvcm1Db250cm9sTmFtZSA9IHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5Gb3JtQ29udHJvbE5hbWU7XHJcbiAgICAgICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzW0Zvcm1Db250cm9sTmFtZV0uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuUmVpbml0aWFsaXplUGFnaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRGaWx0ZXJzVmFsdWUoKSB7XHJcbiAgICBsZXQgZmlsdGVycyA9IHt9O1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5GaWx0ZXJzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkZpbHRlcnMgIT0gW10pIHtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMub3B0aW9ucy5GaWx0ZXJzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRm9ybUNvbnRyb2xOYW1lICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkZvcm1Db250cm9sTmFtZSAhPSBcIlwiKSB7XHJcbiAgICAgICAgICBjb25zdCBGb3JtQ29udHJvbE5hbWUgPSB0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRm9ybUNvbnRyb2xOYW1lO1xyXG4gICAgICAgICAgbGV0IENvbnRyb2xWYWx1ZSA9IHRoaXMuZ3JvdXAuY29udHJvbHNbRm9ybUNvbnRyb2xOYW1lXS52YWx1ZTtcclxuICAgICAgICAgIGlmIChDb250cm9sVmFsdWUgIT0gdW5kZWZpbmVkICYmIENvbnRyb2xWYWx1ZSAhPSBudWxsICYmIENvbnRyb2xWYWx1ZSAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRmlsdGVyVHlwZSA9PSBGaWx0ZXJUeXBlLkRhdGVQaWNrZXIpIHtcclxuICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShDb250cm9sVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBlbGVtZW50ID0gMDsgZWxlbWVudCA8IENvbnRyb2xWYWx1ZS5sZW5ndGg7IGVsZW1lbnQrKykge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IENvbnRyb2xWYWx1ZVtlbGVtZW50XTtcclxuICAgICAgICAgICAgICAgICAgZmlsdGVyc1t0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uQWN0aW9uUGFyYW1ldGVyTmFtZV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJzW3RoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5BY3Rpb25QYXJhbWV0ZXJOYW1lXSA9IENvbnRyb2xWYWx1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5GaWx0ZXJUeXBlID09IEZpbHRlclR5cGUuQXV0b2NvbXBsZXRlVGV4dEJveClcclxuICAgICAgICAgICAgICAgIENvbnRyb2xWYWx1ZSA9IEpTT04uc3RyaW5naWZ5KENvbnRyb2xWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5GaWx0ZXJUeXBlID09IEZpbHRlclR5cGUuVGFnSW5wdXQpXHJcbiAgICAgICAgICAgICAgICBDb250cm9sVmFsdWUgPSBKU09OLnN0cmluZ2lmeShDb250cm9sVmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgICBmaWx0ZXJzW3RoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5BY3Rpb25QYXJhbWV0ZXJOYW1lXSA9IENvbnRyb2xWYWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnNbdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkFjdGlvblBhcmFtZXRlck5hbWVdID0gbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBFbGVtZW50alF1ZXJ5U2VsZWN0b3IgPSB0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0ualF1ZXJ5U2VsZWN0b3I7XHJcbiAgICAgICAgICBsZXQgRWxlbWVudFZhbHVlID0gKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoRWxlbWVudGpRdWVyeVNlbGVjdG9yKSBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcclxuICAgICAgICAgIGlmIChFbGVtZW50VmFsdWUgIT0gdW5kZWZpbmVkICYmIEVsZW1lbnRWYWx1ZSAhPSBudWxsKVxyXG4gICAgICAgICAgICBmaWx0ZXJzW3RoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5BY3Rpb25QYXJhbWV0ZXJOYW1lXSA9IEVsZW1lbnRWYWx1ZTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgZmlsdGVyc1t0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uQWN0aW9uUGFyYW1ldGVyTmFtZV0gPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbHRlcnM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
313
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFnaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9QYWdpbmcvUGFnaW5nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUF3QyxNQUFNLGVBQWUsQ0FBQztBQUNySCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBOEMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHMUQsT0FBTyxFQUF1QixZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHakQscURBQXFEO0FBTXJELE1BQU0sT0FBTyxlQUFlO0lBMkIxQixZQUFtQixjQUE4QixFQUFVLElBQWdCLEVBQVUsTUFBYyxFQUFVLGVBQTZDLEVBQVUscUJBQTRDO1FBQTdMLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQThCO1FBQVUsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQXpCaE4sVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLFdBQU0sR0FBUSxFQUFF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QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQ25FO2FBQ0Y7U0FDRjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7OztZQWhVRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLGsxREFBc0M7O2FBRXZDOzs7WUFUb0QsY0FBYztZQVIxRCxVQUFVO1lBRFYsTUFBTTtZQU9OLDRCQUE0QjtZQUU1QixxQkFBcUI7OztvQkFnQzNCLE1BQU07c0JBQ04sS0FBSztvQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgU2ltcGxlQ2hhbmdlcywgRWxlbWVudFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgUGFnaW5nRFRPIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9QYWdpbmdEVE8nO1xyXG5pbXBvcnQgeyBQYWdpbmdPcHRpb25zIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9QYWdpbmdPcHRpb25zJztcclxuaW1wb3J0IHsgUmVxdWVzdE9wdGlvbnMsIFJlc3BvbnNlQ29udGVudFR5cGUsIEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9odHRwJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy9PblBhZ2luZ0ZpbHRlcnNDaGFuZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9TaGFyZWQvRW51bXMvRmlsdGVyVHlwZSc7XHJcbmltcG9ydCB7IFJlcXVlc3RIYW5kbGVyU2VydmljZSwgUmVxdWVzdE9wdGlvbnNNb2RlbCwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XHJcbmltcG9ydCB7IFBhZ2luZ1BheWxvYWQgfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL1BhZ2luZ1BheWxvYWQnO1xyXG5cclxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25mbGljdGluZy1saWZlY3ljbGVcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdCQlNGLVBhZ2luZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL1BhZ2luZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vUGFnaW5nLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2luZ0NvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgaXRlbXMgPSBbXTtcclxuICBwYWdlT2ZJdGVtczogQXJyYXk8YW55PjtcclxuICByZXN1bHQ6IFRbXSA9IFtdO1xyXG4gIHBhZ2VyQ29uZmlnOiBhbnkgPSBudWxsO1xyXG4gIHRvdGFsUm93OiBhbnkgPSAwO1xyXG4gIHBhZ2VTaXplOiBhbnkgPSAxMFxyXG4gIFBhZ2VzOiBhbnkgPSAwXHJcbiAgcGFnZXNUZXh0OiBzdHJpbmc7XHJcbiAgaXRlbXNUZXh0OiBzdHJpbmc7XHJcbiAgQ3VycmVudFBhZ2U6IGFueSA9IDFcclxuICBTaG93UGFnZVNpemVPcHRpb24gPSB0cnVlO1xyXG4gIFNob3dGaXJzdEFuZExhc3QgPSB0cnVlO1xyXG4gIGhpZGVQYWdpbmF0aW9uV2hlblBhZ2VTaXplRXF1YWxPbmUgPSB0cnVlXHJcbiAgU3VtID0gMDtcclxuICBUaHJvdHRsZSA9IDMwMDtcclxuICBTY3JvbGxEaXN0YW5jZSA9IDE7XHJcbiAgU2Nyb2xsVXBEaXN0YW5jZSA9IDI7XHJcbiAgZGlyZWN0aW9uID0gJyc7XHJcbiAgSGVhZGVyczogSHR0cEhlYWRlcnM7XHJcbiAgSXNGaXJzdENhbGw6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBPdXRwdXQoKSBJdGVtczogRXZlbnRFbWl0dGVyPFRbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4oKTtcclxuICBASW5wdXQoKSBvcHRpb25zOiBQYWdpbmdPcHRpb25zO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIG9uQ2hhbmdlU2VydmljZTogT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSwgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZSkge1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNMb2FkTW9yZUNvbnRyb2wpXHJcbiAgICAgIHRoaXMuU3VtID0gdGhpcy5vcHRpb25zLlBhZ2VTaXplO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuRHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkRyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IERyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcyA9IHRoaXMub3B0aW9ucy5Ecm9wZG93bkZpbHRlcnNDb250cm9sTmFtZXM7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZVNlcnZpY2UuR2V0VmFsdWUoKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5vcHRpb25zLkRyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gPT0gdmFsdWUpXHJcbiAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICAgICAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UsIHRydWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQm9vdHN0cmFwRGF0ZVBpY2tlcnNGaWx0ZXJzQ29udHJvbE5hbWVzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkJvb3RzdHJhcERhdGVQaWNrZXJzRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IEJvb3RzdHJhcERhdGVQaWNrZXJzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IHRoaXMub3B0aW9ucy5Cb290c3RyYXBEYXRlUGlja2Vyc0ZpbHRlcnNDb250cm9sTmFtZXM7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5vbkNoYW5nZVNlcnZpY2UuR2V0VmFsdWUoKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMub3B0aW9ucy5Cb290c3RyYXBEYXRlUGlja2Vyc0ZpbHRlcnNDb250cm9sTmFtZXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtID09IHZhbHVlKVxyXG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLkN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSlcclxuICAgIH1cclxuICAgIHRoaXMuSXNGaXJzdENhbGwgPSB0cnVlO1xyXG4gICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZXMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBPbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lcyA9IHRoaXMub3B0aW9ucy5PbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lcztcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IE9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IE9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWUgPSBPbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lc1tpbmRleF07XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZSkuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICAgICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UsIHRydWUpO1xyXG4gICAgICAgIH0sIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IE9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gdGhpcy5vcHRpb25zLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgY29uc3QgT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZSA9IE9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzW2luZGV4XTtcclxuICAgICAgICBsZXQgZWxlbWVudCA9ICg8YW55PnRoaXMuZ3JvdXAuZ2V0KE9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWUpKS5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleXByZXNzXCIsIChlKSA9PiB7XHJcbiAgICAgICAgICBpZiAoZS5rZXkgPT0gXCJFbnRlclwiKSB7XHJcbiAgICAgICAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICAgICAgICB0aGlzLklzRmlyc3RDYWxsID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vQWRkIGNsaWNrIGV2ZW50IG9uIFJlc2V0IEZpbHRlciBidXR0b25cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuUmVzZXRGaWx0ZXJCdXR0b25OYW1lICE9IG51bGwpIHtcclxuICAgICAgY29uc3QgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUodGhpcy5vcHRpb25zLlJlc2V0RmlsdGVyQnV0dG9uTmFtZSlbMF07XHJcbiAgICAgIGlmIChidXR0b24gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgbGV0IGVsZW1lbnQgPSBidXR0b24gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2xlYXJGaWx0ZXJzKCk7XHJcbiAgICAgICAgfSwgZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLlR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lcyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5UeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBUeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZXMgPSB0aGlzLm9wdGlvbnMuVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWVzO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWVzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IFR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lID0gVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWVzW2luZGV4XTtcclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChUeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZSkuYWRkRXZlbnRMaXN0ZW5lcihcImtleXByZXNzXCIsIChlKSA9PiB7XHJcbiAgICAgICAgICBpZiAoZS5rZXkgPT0gXCJFbnRlclwiKSB7XHJcbiAgICAgICAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICAgICAgICB0aGlzLklzRmlyc3RDYWxsID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBmYWxzZSk7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgb25Ecm9wRG93bkNoYW5nZShyZXN1bHQpIHtcclxuICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgIHRoaXMuSXNGaXJzdENhbGwgPSB0cnVlO1xyXG4gICAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UsIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VQYWdlKFBhZ2UpIHtcclxuICAgIGlmIChQYWdlID09IDApXHJcbiAgICAgIHJldHVybjtcclxuICAgIGlmIChQYWdlID4gMCkge1xyXG4gICAgICBpZiAodGhpcy5Jc0ZpcnN0Q2FsbCkge1xyXG4gICAgICAgIHRoaXMuSXNGaXJzdENhbGwgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IFBhZ2U7XHJcbiAgICAgIHRoaXMuZ2V0SXRlbUxpc3QoUGFnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoYW5nZVBhZ2VTaXplKGUpIHtcclxuICAgIHRoaXMub3B0aW9ucy5QYWdlU2l6ZSA9IGUudGFyZ2V0LnZhbHVlO1xyXG4gICAgdGhpcy5DdXJyZW50UGFnZSA9IDE7XHJcbiAgICB0aGlzLklzRmlyc3RDYWxsID0gdHJ1ZTtcclxuICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICBvblNjcm9sbERvd24oKSB7XHJcbiAgICB0aGlzLlN1bSArPSB0aGlzLm9wdGlvbnMuUGFnZVNpemVcclxuICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxXHJcbiAgICB0aGlzLklzRmlyc3RDYWxsID0gdHJ1ZTtcclxuICAgIHRoaXMuZGlyZWN0aW9uID0gJ2Rvd24nO1xyXG4gICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZ2V0SXRlbUxpc3QocGFnZSwgSXNGaWx0ZXJVcGRhdGVkID0gZmFsc2UpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuU3RhcnRQYWdpbmdDYWxsYmFjaylcclxuICAgICAgdGhpcy5vcHRpb25zLlN0YXJ0UGFnaW5nQ2FsbGJhY2suY2FsbChudWxsKTtcclxuXHJcbiAgICBsZXQgcGFnaW5nRFRPID0gbmV3IFBhZ2luZ0RUTygpO1xyXG4gICAgbGV0IHNpemUgPSBOdW1iZXIucGFyc2VJbnQodGhpcy5vcHRpb25zLlBhZ2VTaXplLnRvU3RyaW5nKCkpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc0xvYWRNb3JlQ29udHJvbClcclxuICAgICAgcGFnaW5nRFRPLlBhZ2VDb3VudCA9IHRoaXMuU3VtO1xyXG4gICAgZWxzZVxyXG4gICAgICBwYWdpbmdEVE8uUGFnZUNvdW50ID0gc2l6ZTtcclxuXHJcbiAgICBwYWdpbmdEVE8uQ3VycmVudFBhZ2VOdW1iZXIgPSBwYWdlO1xyXG4gICAgcGFnaW5nRFRPLlRvdGFsQ291bnQgPSB0aGlzLnRvdGFsUm93O1xyXG4gICAgcGFnaW5nRFRPLklzRmlsdGVyVXBkYXRlZCA9IElzRmlsdGVyVXBkYXRlZDtcclxuICAgIGxldCBmaWx0ZXJzID0ge307XHJcbiAgICBmaWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzVmFsdWUoKTtcclxuXHJcbiAgICAvL1NldCBGaWx0ZXJzIG9iamVjdCB0aGF0IHNlbnQgdG8gYWN0aW9uIFVSTFxyXG4gICAgbGV0IGZpbHRlcnNEVE86IFBhZ2luZ1BheWxvYWQgPSB7XHJcbiAgICAgIFBhZ2luZ0RUTzogcGFnaW5nRFRPLFxyXG4gICAgICBGaWx0ZXJzOiBmaWx0ZXJzXHJcbiAgICB9O1xyXG5cclxuICAgIGxldCByZXF1ZXN0T3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9uc01vZGVsKCk7XHJcbiAgICByZXF1ZXN0T3B0aW9ucy5kaXNhYmxlQmxvY2tVSSA9IHRoaXMub3B0aW9ucy5EaXNhYmxlQmxvY2tVSTtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLnBvc3QodGhpcy5vcHRpb25zLkFjdGlvblBvc3RVUkwsIHRoaXMub3B0aW9ucy5GaWx0ZXJzICYmIHRoaXMub3B0aW9ucy5GaWx0ZXJzLmxlbmd0aCA+IDAgPyBmaWx0ZXJzRFRPIDogcGFnaW5nRFRPLCBudWxsLCBudWxsLCByZXF1ZXN0T3B0aW9ucylcclxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2VEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnJlc3VsdCA9IHJlc3BvbnNlRGF0YS5pdGVtcyAvL3RoaXMuY2FzdEl0ZW1zKHJlc3BvbnNlRGF0YS5pdGVtcyk7XHJcbiAgICAgICAgbGV0IGNhc3RlZFJlc3VsdCA9IHBsYWluVG9DbGFzcyh0aGlzLm9wdGlvbnMuVHlwZU9mUmVzcG9uc2UsIHRoaXMucmVzdWx0LCB7IGV4Y2x1ZGVFeHRyYW5lb3VzVmFsdWVzOiB0cnVlIH0pXHJcbiAgICAgICAgdGhpcy5JdGVtcy5lbWl0KGNhc3RlZFJlc3VsdCk7XHJcbiAgICAgICAgdGhpcy50b3RhbFJvdyA9IHJlc3BvbnNlRGF0YS50b3RhbENvdW50O1xyXG5cclxuICAgICAgICBpZiAoSXNGaWx0ZXJVcGRhdGVkKSB7XHJcbiAgICAgICAgICB0aGlzLml0ZW1zID0gW107XHJcbiAgICAgICAgICB0aGlzLlBhZ2VzID0gTWF0aC5jZWlsKCh0aGlzLnRvdGFsUm93IC8gdGhpcy5vcHRpb25zLlBhZ2VTaXplKSk7XHJcbiAgICAgICAgICB0aGlzLml0ZW1zID0gQXJyYXkodGhpcy50b3RhbFJvdyk7XHJcblxyXG4gICAgICAgICAgdGhpcy5zZXRUZXh0KHRoaXMuUGFnZXMsIHRoaXMudG90YWxSb3cpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH0sIChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMSlcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9BZG1pbi9hY2NvdW50L2xvZ2luXCJdKVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIFJlaW5pdGlhbGl6ZVBhZ2luZyA9ICgpID0+IHtcclxuICAgIHRoaXMuSXNGaXJzdENhbGwgPSB0cnVlO1xyXG4gICAgdGhpcy5nZXRJdGVtTGlzdCgxLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIFVwZGF0ZVBhZ2luZyA9ICgpID0+IHtcclxuICAgIC8vdGhpcy5Jc0ZpcnN0Q2FsbD10cnVlO1xyXG4gICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlKTtcclxuICB9XHJcblxyXG4gIGNhc3RJdGVtcyhvYmplY3RBcnI6IGFueVtdKTogVFtdIHtcclxuICAgIGxldCBvcmlnaW5hbEFycmF5OiBUW10gPSBbXVxyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG9iamVjdEFyci5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IG9iamVjdEFycltpbmRleF07XHJcbiAgICAgIGxldCBrZXksIGtleXMgPSBPYmplY3Qua2V5cyhlbGVtZW50KTtcclxuICAgICAgbGV0IG4gPSBrZXlzLmxlbmd0aDtcclxuICAgICAgbGV0IG5ld09iamVjdCA9IHt9XHJcbiAgICAgIHdoaWxlIChuLS0pIHtcclxuICAgICAgICBrZXkgPSBrZXlzW25dO1xyXG4gICAgICAgIGxldCBPa2V5ID0ga2V5XHJcbiAgICAgICAgbmV3T2JqZWN0W2tleS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIE9rZXkuc2xpY2UoMSldID0gZWxlbWVudFtrZXldO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBmaW5hbE9iamVjdCA9IG5ld09iamVjdCBhcyBUXHJcbiAgICAgIG9yaWdpbmFsQXJyYXkucHVzaChmaW5hbE9iamVjdClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb3JpZ2luYWxBcnJheTtcclxuICB9XHJcblxyXG4gIHNldFRleHQocGFnZXNOdW1iZXI6IG51bWJlciwgaXRlbXNOdW1iZXI6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSkge1xyXG4gICAgICAvL1NldCBwYWdlcyB0ZXh0XHJcbiAgICAgIGlmIChwYWdlc051bWJlciA8IDMgfHwgcGFnZXNOdW1iZXIgPiAxMClcclxuICAgICAgICB0aGlzLnBhZ2VzVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhZ2VcIik7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLnBhZ2VzVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhZ2VzXCIpO1xyXG4gICAgICAvL1NldCBpdGVtcyB0ZXh0XHJcbiAgICAgIGlmIChpdGVtc051bWJlciA8IDMgfHwgaXRlbXNOdW1iZXIgPiAxMClcclxuICAgICAgICB0aGlzLml0ZW1zVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkl0ZW1cIik7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLml0ZW1zVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkl0ZW1zXCIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vU2V0IHBhZ2VzIHRleHRcclxuICAgICAgaWYgKHBhZ2VzTnVtYmVyID4gMSlcclxuICAgICAgICB0aGlzLnBhZ2VzVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhZ2VzXCIpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5wYWdlc1RleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJQYWdlXCIpO1xyXG4gICAgICAvL1NldCBpdGVtcyB0ZXh0XHJcbiAgICAgIGlmIChpdGVtc051bWJlciA+IDEpXHJcbiAgICAgICAgdGhpcy5pdGVtc1RleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJJdGVtc1wiKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuaXRlbXNUZXh0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSXRlbVwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRmlsdGVycygpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsdGVycyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5GaWx0ZXJzICE9IFtdKSB7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm9wdGlvbnMuRmlsdGVycy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkZvcm1Db250cm9sTmFtZSAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5Gb3JtQ29udHJvbE5hbWUgIT0gXCJcIikge1xyXG4gICAgICAgICAgY29uc3QgRm9ybUNvbnRyb2xOYW1lID0gdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkZvcm1Db250cm9sTmFtZTtcclxuICAgICAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbRm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5SZWluaXRpYWxpemVQYWdpbmcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEZpbHRlcnNWYWx1ZSgpIHtcclxuICAgIGxldCBmaWx0ZXJzID0ge307XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkZpbHRlcnMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuRmlsdGVycyAhPSBbXSkge1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5vcHRpb25zLkZpbHRlcnMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5Gb3JtQ29udHJvbE5hbWUgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRm9ybUNvbnRyb2xOYW1lICE9IFwiXCIpIHtcclxuICAgICAgICAgIGNvbnN0IEZvcm1Db250cm9sTmFtZSA9IHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5Gb3JtQ29udHJvbE5hbWU7XHJcbiAgICAgICAgICBsZXQgQ29udHJvbFZhbHVlID0gdGhpcy5ncm91cC5jb250cm9sc1tGb3JtQ29udHJvbE5hbWVdLnZhbHVlO1xyXG4gICAgICAgICAgaWYgKENvbnRyb2xWYWx1ZSAhPSB1bmRlZmluZWQgJiYgQ29udHJvbFZhbHVlICE9IG51bGwgJiYgQ29udHJvbFZhbHVlICE9IFwiXCIpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5GaWx0ZXJUeXBlID09IEZpbHRlclR5cGUuRGF0ZVBpY2tlcikge1xyXG4gICAgICAgICAgICAgIC8vaWYgKEFycmF5LmlzQXJyYXkoQ29udHJvbFZhbHVlKSkge1xyXG4gICAgICAgICAgICAgIC8vICBmb3IgKGxldCBlbGVtZW50ID0gMDsgZWxlbWVudCA8IENvbnRyb2xWYWx1ZS5sZW5ndGg7IGVsZW1lbnQrKykge1xyXG4gICAgICAgICAgICAgIC8vICAgIGNvbnN0IHZhbHVlID0gQ29udHJvbFZhbHVlW2VsZW1lbnRdO1xyXG4gICAgICAgICAgICAgIC8vICAgIGZpbHRlcnNbdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkFjdGlvblBhcmFtZXRlck5hbWVdID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgLy8gIH1cclxuICAgICAgICAgICAgICAvL31cclxuICAgICAgICAgICAgICAvL2Vsc2Uge1xyXG4gICAgICAgICAgICAgIGZpbHRlcnNbdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkFjdGlvblBhcmFtZXRlck5hbWVdID0gQ29udHJvbFZhbHVlO1xyXG4gICAgICAgICAgICAgIC8vfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRmlsdGVyVHlwZSA9PSBGaWx0ZXJUeXBlLkF1dG9jb21wbGV0ZVRleHRCb3gpXHJcbiAgICAgICAgICAgICAgICBDb250cm9sVmFsdWUgPSBDb250cm9sVmFsdWU7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5GaWx0ZXJUeXBlID09IEZpbHRlclR5cGUuVGFnSW5wdXQpXHJcbiAgICAgICAgICAgICAgICBDb250cm9sVmFsdWUgPSBDb250cm9sVmFsdWU7XHJcblxyXG4gICAgICAgICAgICAgIGZpbHRlcnNbdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkFjdGlvblBhcmFtZXRlck5hbWVdID0gQ29udHJvbFZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZmlsdGVyc1t0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uQWN0aW9uUGFyYW1ldGVyTmFtZV0gPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IEVsZW1lbnRqUXVlcnlTZWxlY3RvciA9IHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5qUXVlcnlTZWxlY3RvcjtcclxuICAgICAgICAgIGxldCBFbGVtZW50VmFsdWUgPSAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihFbGVtZW50alF1ZXJ5U2VsZWN0b3IpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xyXG4gICAgICAgICAgaWYgKEVsZW1lbnRWYWx1ZSAhPSB1bmRlZmluZWQgJiYgRWxlbWVudFZhbHVlICE9IG51bGwpXHJcbiAgICAgICAgICAgIGZpbHRlcnNbdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkFjdGlvblBhcmFtZXRlck5hbWVdID0gRWxlbWVudFZhbHVlO1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBmaWx0ZXJzW3RoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5BY3Rpb25QYXJhbWV0ZXJOYW1lXSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmlsdGVycztcclxuICB9XHJcbn1cclxuIl19
|