@bnsights/bbsf-controls 1.0.27 → 1.0.28

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.
@@ -48,22 +48,22 @@ export class ErrorMassageValidation {
48
48
  result = this.utilityService.getResourceValue("NumberValidationKey");
49
49
  break;
50
50
  case "maxlength":
51
- result = this.utilityService.getResourceValue("MaxLenghtValidationKey") + error.value.requiredLength;
51
+ result = this.utilityService.getResourceValue("MaxLenghtValidationKey") + " " + error.value.requiredLength;
52
52
  break;
53
53
  case "minlength":
54
- result = this.utilityService.getResourceValue("MinLenghtValidationKey") + error.value.requiredLength;
54
+ result = this.utilityService.getResourceValue("MinLenghtValidationKey") + " " + error.value.requiredLength;
55
55
  break;
56
56
  case "min":
57
- result = this.utilityService.getResourceValue("MinValueValidationKey") + error.value.min;
57
+ result = this.utilityService.getResourceValue("MinValueValidationKey") + " " + error.value.min;
58
58
  break;
59
59
  case "max":
60
- result = this.utilityService.getResourceValue("MaxValueValidationKey") + error.value.max;
60
+ result = this.utilityService.getResourceValue("MaxValueValidationKey") + " " + error.value.max;
61
61
  break;
62
62
  case "validatePhoneNumber":
63
63
  result = this.utilityService.getResourceValue("PhoneNumberValidationKey");
64
64
  break;
65
65
  case "mask":
66
- result = this.utilityService.getResourceValue("MaskValidationKey") + error.value.requiredMask;
66
+ result = this.utilityService.getResourceValue("MaskValidationKey") + " " + error.value.requiredMask;
67
67
  break;
68
68
  case "PasswordComplexityHasNumber":
69
69
  result = this.utilityService.getResourceValue("PasswordComplexityHasNumber");
@@ -84,25 +84,25 @@ export class ErrorMassageValidation {
84
84
  result = this.utilityService.getResourceValue("PasswordComplexityHasSpecialLetter");
85
85
  break;
86
86
  case "MaxWordCountValidationKey":
87
- result = this.utilityService.getResourceValue("MaxWordCountValidationKey") + error.value;
87
+ result = this.utilityService.getResourceValue("MaxWordCountValidationKey") + " " + error.value;
88
88
  break;
89
89
  case "NewSelectionValidationKey":
90
90
  result = this.utilityService.getResourceValue("NewSelectionValidationKey");
91
91
  break;
92
92
  case "MaxFileCountValidationKey":
93
- result = this.utilityService.getResourceValue("MaxFileCountValidationKey") + error.value;
93
+ result = this.utilityService.getResourceValue("MaxFileCountValidationKey") + " " + error.value;
94
94
  break;
95
95
  case "MinFileCountValidationKey":
96
- result = this.utilityService.getResourceValue("MinFileCountValidationKey") + error.value;
96
+ result = this.utilityService.getResourceValue("MinFileCountValidationKey") + " " + error.value;
97
97
  break;
98
98
  case "MaxSizeForAllFilesInMB":
99
- result = this.utilityService.getResourceValue("MaxSizeForAllFilesInMB") + error.value;
99
+ result = this.utilityService.getResourceValue("MaxSizeForAllFilesInMB") + " " + error.value;
100
100
  break;
101
101
  case "FileMaxSizeInMB":
102
- result = this.utilityService.getResourceValue("FileMaxSizeInMB") + error.value;
102
+ result = this.utilityService.getResourceValue("FileMaxSizeInMB") + " " + error.value;
103
103
  break;
104
104
  case "ToolTipTypeError":
105
- result = this.utilityService.getResourceValue("ToolTipTypeError") + error.value;
105
+ result = this.utilityService.getResourceValue("ToolTipTypeError") + " " + error.value;
106
106
  break;
107
107
  default:
108
108
  break;
@@ -119,4 +119,4 @@ ErrorMassageValidation.ctorParameters = () => [
119
119
  { type: ControlContainer, decorators: [{ type: Optional }] },
120
120
  { type: UtilityService }
121
121
  ];
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbkVycm9yTWFzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL1NoYXJlZC9zZXJ2aWNlcy92YWxpZGF0aW9uRXJyb3JNYXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLElBQUksRUFBcUMsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLGdCQUFnQixDQUFDO0FBQzFFLE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl6RCxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLHdDQUF3QztJQUN4QyxZQUFvQixJQUFVLEVBQXNCLGdCQUFrQyxFQUFTLGNBQTZCO1FBQXhHLFNBQUksR0FBSixJQUFJLENBQU07UUFBc0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFTLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBSTVILFFBQUcsR0FBRyxzQkFBc0IsQ0FBQztRQUYzQixzQkFBc0IsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUE7SUFDdkUsQ0FBQztJQUVELHdDQUF3QztJQUl4QyxNQUFNLENBQUMsU0FBUyxDQUFDLGVBQXVCO1FBQ3JDLENBQUM7UUFDRixJQUFJLElBQUksR0FBRyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFvQixDQUFDO1FBQzlFLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFnQixDQUFDO1FBQ3ZELHNCQUFzQjtRQUN0QixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekMsT0FBTyxDQUFDLGFB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U0FDVDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O0FBcEhNLDZDQUFzQixHQUFHLElBQUksQ0FBQzs7WUFKdEMsVUFBVTs7O1lBTEYsSUFBSTtZQUVKLGdCQUFnQix1QkFVVSxRQUFRO1lBVG5DLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwLCBSZXNwb25zZSwgSGVhZGVycywgUmVxdWVzdE9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9odHRwJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1V0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuXHJcbmV4cG9ydCBjbGFzcyBFcnJvck1hc3NhZ2VWYWxpZGF0aW9uIHtcclxuXHJcbiAgc3RhdGljIGNvbnRyb2xDb250YWluZXJzdGF0aWMgPSBudWxsO1xyXG5cclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGRlcHJlY2F0aW9uXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwLCBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIscHJpdmF0ZSB1dGlsaXR5U2VydmljZTpVdGlsaXR5U2VydmljZSkge1xyXG5cclxuICAgIEVycm9yTWFzc2FnZVZhbGlkYXRpb24uY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IHRoaXMuY29udHJvbENvbnRhaW5lclxyXG4gIH1cclxuICB1cmwgPSAnQ2hlY2tFbWFpbFZhbGlkYXRpb24nO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGVwcmVjYXRpb25cclxuXHJcblxyXG5cclxuICBzdGF0aWMgc2hvd2Vycm9yKEZvcm1Db250cm9sTmFtZTogc3RyaW5nKSB7XHJcbiAgICAgO1xyXG4gICAgbGV0IGZvcm0gPSBFcnJvck1hc3NhZ2VWYWxpZGF0aW9uLmNvbnRyb2xDb250YWluZXJzdGF0aWMuY29udHJvbCBhcyBGb3JtR3JvdXA7XHJcbiAgICBsZXQgY29udHJvbCA9IGZvcm0uZ2V0KEZvcm1Db250cm9sTmFtZSkgYXMgRm9ybUNvbnRyb2w7XHJcbiAgICAvL2NvbnNvbGUubG9nKGNvbnRyb2wpXHJcbiAgICBjb250cm9sLnNldEVycm9ycyh7ICdtaW5sZW5ndGgnOiB0cnVlIH0pO1xyXG4gICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKClcclxuICB9XHJcblxyXG4gIC8vICBpc0VtYWlsUmVnaXN0ZXJkKEVtYWlsOiBzdHJpbmcpIFxyXG4gIC8vICB7XHJcbiAgLy8gICAgbGV0IHJlc291cmNlOm9iamVjdD17XHJcbiAgLy8gICAgICBlbWFpbDpFbWFpbFxyXG4gIC8vICAgIH07XHJcbiAgLy8gICAgbGV0IGJvZHkgPSBKU09OLnN0cmluZ2lmeShyZXNvdXJjZSk7XHJcbiAgLy8gICAgbGV0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSk7XHJcbiAgLy8gICAgbGV0IG9wdGlvbnMgPSBuZXcgUmVxdWVzdE9wdGlvbnMoeyBoZWFkZXJzOiBoZWFkZXJzIH0pO1xyXG4gIC8vICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChlbnZpcm9ubWVudC5iYXNlVXJsK3RoaXMudXJsLGJvZHksb3B0aW9ucylcclxuICAvLyAgICAucGlwZShtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UuanNvbigpKSlcclxuICAvLyAgfVxyXG5cclxuICBnZXRFcnJvck1hc3NhZ2VWYWxpZGF0aW9uKGVycm9yOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgIDtcclxuICAgIGxldCByZXN1bHQ6IHN0cmluZyA9IFwiXCJcclxuICAgIHN3aXRjaCAoZXJyb3Iua2V5KSB7XHJcbiAgICAgIGNhc2UgXCJyZXF1aXJlZFwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJlcXVpcmVkVmFsaWRhdGlvbktleVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImVtYWlsXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRW1haWxWYWxpZGF0aW9uS2V5XCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJFbWFpbFZhbGlkYXRpb25LZXlcIjpcclxuICAgICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVtYWlsVmFsaWRhdGlvbktleVwiKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwicGF0dGVyblwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk51bWJlclZhbGlkYXRpb25LZXlcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJtYXhsZW5ndGhcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNYXhMZW5naHRWYWxpZGF0aW9uS2V5XCIpICsgZXJyb3IudmFsdWUucmVxdWlyZWRMZW5ndGg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJtaW5sZW5ndGhcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNaW5MZW5naHRWYWxpZGF0aW9uS2V5XCIpICsgZXJyb3IudmFsdWUucmVxdWlyZWRMZW5ndGg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJtaW5cIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNaW5WYWx1ZVZhbGlkYXRpb25LZXlcIikgKyBlcnJvci52YWx1ZS5taW47XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJtYXhcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNYXhWYWx1ZVZhbGlkYXRpb25LZXlcIikgKyBlcnJvci52YWx1ZS5tYXg7XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwidmFsaWRhdGVQaG9uZU51bWJlclwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBob25lTnVtYmVyVmFsaWRhdGlvbktleVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIm1hc2tcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNYXNrVmFsaWRhdGlvbktleVwiKSArIGVycm9yLnZhbHVlLnJlcXVpcmVkTWFzaztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlBhc3N3b3JkQ29tcGxleGl0eUhhc051bWJlclwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhc3N3b3JkQ29tcGxleGl0eUhhc051bWJlclwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiQXJhYmljTGV0dGVyT25seVwiOlxyXG4gICAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQXJhYmljTGV0dGVyT25seVwiKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBcIkVuZ2xpc2hMZXR0ZXJPbmx5XCI6XHJcbiAgICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFbmdsaXNoTGV0dGVyT25seVwiKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiUGFzc3dvcmRDb21wbGV4aXR5SGFzQ2FwaXRhbExldHRlclwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhc3N3b3JkQ29tcGxleGl0eUhhc0NhcGl0YWxMZXR0ZXJcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJQYXNzd29yZENvbXBsZXhpdHlIYXNTbWFsbExldHRlclwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhc3N3b3JkQ29tcGxleGl0eUhhc1NtYWxsTGV0dGVyXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiUGFzc3dvcmRDb21wbGV4aXR5SGFzU3BlY2lhbExldHRlclwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhc3N3b3JkQ29tcGxleGl0eUhhc1NwZWNpYWxMZXR0ZXJcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIk1heFdvcmRDb3VudFZhbGlkYXRpb25LZXlcIjpcclxuICAgICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1heFdvcmRDb3VudFZhbGlkYXRpb25LZXlcIikrZXJyb3IudmFsdWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgIGNhc2UgXCJOZXdTZWxlY3Rpb25WYWxpZGF0aW9uS2V5XCI6XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5ld1NlbGVjdGlvblZhbGlkYXRpb25LZXlcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgXCJNYXhGaWxlQ291bnRWYWxpZGF0aW9uS2V5XCI6XHJcbiAgICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNYXhGaWxlQ291bnRWYWxpZGF0aW9uS2V5XCIpK2Vycm9yLnZhbHVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFwiTWluRmlsZUNvdW50VmFsaWRhdGlvbktleVwiOlxyXG4gICAgICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNaW5GaWxlQ291bnRWYWxpZGF0aW9uS2V5XCIpK2Vycm9yLnZhbHVlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcIk1heFNpemVGb3JBbGxGaWxlc0luTUJcIjpcclxuICAgICAgICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNYXhTaXplRm9yQWxsRmlsZXNJbk1CXCIpK2Vycm9yLnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICBjYXNlIFwiRmlsZU1heFNpemVJbk1CXCI6XHJcbiAgICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRmlsZU1heFNpemVJbk1CXCIpK2Vycm9yLnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICBjYXNlIFwiVG9vbFRpcFR5cGVFcnJvclwiOlxyXG4gICAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlRvb2xUaXBUeXBlRXJyb3JcIikrZXJyb3IudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59Il19
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbkVycm9yTWFzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL1NoYXJlZC9zZXJ2aWNlcy92YWxpZGF0aW9uRXJyb3JNYXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLElBQUksRUFBcUMsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLGdCQUFnQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUkxRCxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLHdDQUF3QztJQUN4QyxZQUFvQixJQUFVLEVBQXNCLGdCQUFrQyxFQUFVLGNBQThCO1FBQTFHLFNBQUksR0FBSixJQUFJLENBQU07UUFBc0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUk5SCxRQUFHLEdBQUcsc0JBQXNCLENBQUM7UUFGM0Isc0JBQXNCLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFBO0lBQ3ZFLENBQUM7SUFFRCx3Q0FBd0M7SUFJeEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUF1QjtRQUN0QyxDQUFDO1FBQ0QsSUFBSSxJQUFJLEdBQUcsc0JBQXNCLENBQUMsc0JBQXNCLENBQUMsT0FBb0IsQ0FBQztRQUM5RSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBZ0IsQ0FBQztRQUN2RCxzQkFBc0I7UUFDdEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxh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QUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDdEYsTUFBTTtZQUNSO2dCQUNFLE1BQU07U0FDVDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O0FBOUdNLDZDQUFzQixHQUFHLElBQUksQ0FBQzs7WUFKdEMsVUFBVTs7O1lBTEYsSUFBSTtZQUVKLGdCQUFnQix1QkFVVSxRQUFRO1lBVGxDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwLCBSZXNwb25zZSwgSGVhZGVycywgUmVxdWVzdE9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9odHRwJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcblxyXG5leHBvcnQgY2xhc3MgRXJyb3JNYXNzYWdlVmFsaWRhdGlvbiB7XHJcblxyXG4gIHN0YXRpYyBjb250cm9sQ29udGFpbmVyc3RhdGljID0gbnVsbDtcclxuXHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkZXByZWNhdGlvblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cCwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLCBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSkge1xyXG5cclxuICAgIEVycm9yTWFzc2FnZVZhbGlkYXRpb24uY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IHRoaXMuY29udHJvbENvbnRhaW5lclxyXG4gIH1cclxuICB1cmwgPSAnQ2hlY2tFbWFpbFZhbGlkYXRpb24nO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGVwcmVjYXRpb25cclxuXHJcblxyXG5cclxuICBzdGF0aWMgc2hvd2Vycm9yKEZvcm1Db250cm9sTmFtZTogc3RyaW5nKSB7XHJcbiAgICA7XHJcbiAgICBsZXQgZm9ybSA9IEVycm9yTWFzc2FnZVZhbGlkYXRpb24uY29udHJvbENvbnRhaW5lcnN0YXRpYy5jb250cm9sIGFzIEZvcm1Hcm91cDtcclxuICAgIGxldCBjb250cm9sID0gZm9ybS5nZXQoRm9ybUNvbnRyb2xOYW1lKSBhcyBGb3JtQ29udHJvbDtcclxuICAgIC8vY29uc29sZS5sb2coY29udHJvbClcclxuICAgIGNvbnRyb2wuc2V0RXJyb3JzKHsgJ21pbmxlbmd0aCc6IHRydWUgfSk7XHJcbiAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKVxyXG4gIH1cclxuXHJcbiAgLy8gIGlzRW1haWxSZWdpc3RlcmQoRW1haWw6IHN0cmluZykgXHJcbiAgLy8gIHtcclxuICAvLyAgICBsZXQgcmVzb3VyY2U6b2JqZWN0PXtcclxuICAvLyAgICAgIGVtYWlsOkVtYWlsXHJcbiAgLy8gICAgfTtcclxuICAvLyAgICBsZXQgYm9keSA9IEpTT04uc3RyaW5naWZ5KHJlc291cmNlKTtcclxuICAvLyAgICBsZXQgaGVhZGVycyA9IG5ldyBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KTtcclxuICAvLyAgICBsZXQgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IGhlYWRlcnMgfSk7XHJcbiAgLy8gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGVudmlyb25tZW50LmJhc2VVcmwrdGhpcy51cmwsYm9keSxvcHRpb25zKVxyXG4gIC8vICAgIC5waXBlKG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5qc29uKCkpKVxyXG4gIC8vICB9XHJcblxyXG4gIGdldEVycm9yTWFzc2FnZVZhbGlkYXRpb24oZXJyb3I6IGFueSk6IHN0cmluZyB7XHJcbiAgICA7XHJcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSBcIlwiXHJcbiAgICBzd2l0Y2ggKGVycm9yLmtleSkge1xyXG4gICAgICBjYXNlIFwicmVxdWlyZWRcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJSZXF1aXJlZFZhbGlkYXRpb25LZXlcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJlbWFpbFwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVtYWlsVmFsaWRhdGlvbktleVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIkVtYWlsVmFsaWRhdGlvbktleVwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVtYWlsVmFsaWRhdGlvbktleVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcInBhdHRlcm5cIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOdW1iZXJWYWxpZGF0aW9uS2V5XCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwibWF4bGVuZ3RoXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWF4TGVuZ2h0VmFsaWRhdGlvbktleVwiKSArIFwiIFwiICsgZXJyb3IudmFsdWUucmVxdWlyZWRMZW5ndGg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJtaW5sZW5ndGhcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNaW5MZW5naHRWYWxpZGF0aW9uS2V5XCIpICsgXCIgXCIgKyBlcnJvci52YWx1ZS5yZXF1aXJlZExlbmd0aDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIm1pblwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1pblZhbHVlVmFsaWRhdGlvbktleVwiKSArIFwiIFwiICsgZXJyb3IudmFsdWUubWluO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwibWF4XCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWF4VmFsdWVWYWxpZGF0aW9uS2V5XCIpICsgXCIgXCIgKyBlcnJvci52YWx1ZS5tYXg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJ2YWxpZGF0ZVBob25lTnVtYmVyXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUGhvbmVOdW1iZXJWYWxpZGF0aW9uS2V5XCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwibWFza1wiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1hc2tWYWxpZGF0aW9uS2V5XCIpICsgXCIgXCIgKyBlcnJvci52YWx1ZS5yZXF1aXJlZE1hc2s7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJQYXNzd29yZENvbXBsZXhpdHlIYXNOdW1iZXJcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJQYXNzd29yZENvbXBsZXhpdHlIYXNOdW1iZXJcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJBcmFiaWNMZXR0ZXJPbmx5XCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQXJhYmljTGV0dGVyT25seVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIkVuZ2xpc2hMZXR0ZXJPbmx5XCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRW5nbGlzaExldHRlck9ubHlcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJQYXNzd29yZENvbXBsZXhpdHlIYXNDYXBpdGFsTGV0dGVyXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUGFzc3dvcmRDb21wbGV4aXR5SGFzQ2FwaXRhbExldHRlclwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlBhc3N3b3JkQ29tcGxleGl0eUhhc1NtYWxsTGV0dGVyXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUGFzc3dvcmRDb21wbGV4aXR5SGFzU21hbGxMZXR0ZXJcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJQYXNzd29yZENvbXBsZXhpdHlIYXNTcGVjaWFsTGV0dGVyXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUGFzc3dvcmRDb21wbGV4aXR5SGFzU3BlY2lhbExldHRlclwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIk1heFdvcmRDb3VudFZhbGlkYXRpb25LZXlcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNYXhXb3JkQ291bnRWYWxpZGF0aW9uS2V5XCIpICsgXCIgXCIgKyBlcnJvci52YWx1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIk5ld1NlbGVjdGlvblZhbGlkYXRpb25LZXlcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOZXdTZWxlY3Rpb25WYWxpZGF0aW9uS2V5XCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiTWF4RmlsZUNvdW50VmFsaWRhdGlvbktleVwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1heEZpbGVDb3VudFZhbGlkYXRpb25LZXlcIikgKyBcIiBcIiArIGVycm9yLnZhbHVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiTWluRmlsZUNvdW50VmFsaWRhdGlvbktleVwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1pbkZpbGVDb3VudFZhbGlkYXRpb25LZXlcIikgKyBcIiBcIiArIGVycm9yLnZhbHVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiTWF4U2l6ZUZvckFsbEZpbGVzSW5NQlwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1heFNpemVGb3JBbGxGaWxlc0luTUJcIikgKyBcIiBcIiArIGVycm9yLnZhbHVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiRmlsZU1heFNpemVJbk1CXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRmlsZU1heFNpemVJbk1CXCIpICsgXCIgXCIgKyBlcnJvci52YWx1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlRvb2xUaXBUeXBlRXJyb3JcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJUb29sVGlwVHlwZUVycm9yXCIpICsgXCIgXCIgKyBlcnJvci52YWx1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -50,7 +50,7 @@ export class ConfirmationModalComponent {
50
50
  showCancelButton: true,
51
51
  confirmButtonColor: this.btnColor,
52
52
  cancelButtonColor: '#f5f8fa',
53
- cancelButtonText: this.utilityService.getResourceValue("Cancel"),
53
+ cancelButtonText: this.utilityService.getResourceValue("CancelLabel"),
54
54
  confirmButtonText: this.options.SubmitButtonText,
55
55
  showCloseButton: true,
56
56
  }).then((result) => {
@@ -136,4 +136,4 @@ ConfirmationModalComponent.propDecorators = {
136
136
  options: [{ type: Input }],
137
137
  confirmationModal: [{ type: ViewChild, args: ['confirmationModal', { static: false },] }]
138
138
  };
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlybWF0aW9uTW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL0NvbmZpcm1hdGlvbk1vZGFsL0NvbmZpcm1hdGlvbk1vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUV6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV2RSxPQUFPLElBQXdCLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU16QyxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLFlBQW1CLGNBQThCLEVBQVUsWUFBc0IsRUFBVSxNQUFjO1FBQXRGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVR6RyxnQkFBVyxHQUEwQixxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFDbEUsaUJBQVksR0FBMEIscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQ3BFLGlCQUFZLEdBQTBCLHFCQUFxQixDQUFDLE9BQU8sQ0FBQztJQU95QyxDQUFDO0lBRTlHLFFBQVE7SUFDUixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLFNBQVM7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ2xDLCtCQUErQjtRQUMvQixJ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QyxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QjtnQkFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1NBQzNDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzs7WUFuSUYsU0FBUyxTQUFDO2dCQUNULFlBQStDO2dCQUMvQyxRQUFRLEVBQUUsd0JBQXdCO2FBQ25DOzs7WUFYUSxjQUFjO1lBRGQsUUFBUTtZQU9SLE1BQU07OztzQkFPWixLQUFLO2dDQUlMLFNBQVMsU0FBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJ1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN0eWxlQ29uZmlybWF0aW9uTW9kZSB9IGZyb20gJy4uLy4uLy4uL3B1YmxpYy1hcGknO1xyXG5pbXBvcnQgeyBQYWdpbmdBY3Rpb25Nb2RlIH0gZnJvbSAnLi4vLi4vU2hhcmVkL0VudW1zL1BhZ2luZ0FjdGlvbk1vZGUnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMgfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL0NvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucyc7XHJcbmltcG9ydCBTd2FsLCB7IFN3ZWV0QWxlcnRJY29uIH0gZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICdDb25maXJtYXRpb25Nb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc2VsZWN0b3I6ICdCQlNGLUNvbmZpcm1hdGlvbk1vZGFsJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBvcHRpb25zOiBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnM7XHJcbiAgc3R5bGVEYW5nZXI6IFN0eWxlQ29uZmlybWF0aW9uTW9kZSA9IFN0eWxlQ29uZmlybWF0aW9uTW9kZS5EYW5nZXI7XHJcbiAgc3R5bGVXYXJuaW5nOiBTdHlsZUNvbmZpcm1hdGlvbk1vZGUgPSBTdHlsZUNvbmZpcm1hdGlvbk1vZGUuV2FybmluZztcclxuICBzdHlsZVN1Y2Nlc3M6IFN0eWxlQ29uZmlybWF0aW9uTW9kZSA9IFN0eWxlQ29uZmlybWF0aW9uTW9kZS5TdWNjZXNzO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm1hdGlvbk1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNvbmZpcm1hdGlvbk1vZGFsOiBFbGVtZW50UmVmO1xyXG4gIGljb246IFN3ZWV0QWxlcnRJY29uO1xyXG4gIGJ0bkNvbG9yOiBhbnk7XHJcbiAgaWNvbkh0bWw6IHN0cmluZztcclxuXHJcbiAgXHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICAvL01ldGhvZCB1c2VkIHRvIHNob3cgY29uZmlybWF0aW9uIG1vZGFsXHJcbiAgc2hvd01vZGFsKCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKVxyXG4gICAgLy9jaGVjayBmb3Igb3B0aW9ucyB0ZXh0IHZhbHVlc1xyXG4gICAgdGhpcy5zZXRUZXh0VmFsdWVzKCk7XHJcbiAgICAvL3N3ZWV0YWxlcnQgc3R5bGVzLy9cclxuICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLlN0eWxlQ29uZmlybWF0aW9uTW9kZSkge1xyXG4gICAgICBjYXNlIHRoaXMuc3R5bGVTdWNjZXNzOiB7XHJcbiAgICAgICAgdGhpcy5pY29uID0gJ3N1Y2Nlc3MnXHJcbiAgICAgICAgdGhpcy5idG5Db2xvciA9ICcjNTBjZDg5J1xyXG4gICAgICAgIHRoaXMuaWNvbkh0bWw9JzxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIj48L2k+J1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgdGhpcy5zdHlsZVdhcm5pbmc6IHtcclxuICAgICAgICB0aGlzLmljb24gPSAnd2FybmluZydcclxuICAgICAgICB0aGlzLmJ0bkNvbG9yID0gJyNmZmM3MDAnXHJcbiAgICAgICAgdGhpcy5pY29uSHRtbD0nPGkgY2xhc3M9XCJmYSBmYS13YXJuaW5nXCI+PC9pPidcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIH1cclxuICAgICAgY2FzZSB0aGlzLnN0eWxlRGFuZ2VyOiB7XHJcbiAgICAgICAgdGhpcy5pY29uID0gJ2Vycm9yJ1xyXG4gICAgICAgIHRoaXMuYnRuQ29sb3IgPSAnI2YxNDE2YydcclxuICAgICAgICB0aGlzLmljb25IdG1sPSc8aSBjbGFzcz1cImZhIGZhLWNsb3NlXCI+PC9pPidcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICB0aXRsZTp0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUodGhpcy5vcHRpb25zLkNvbmZpcm1hdGlvbkhlYWRlciksXHJcbiAgICAgICAgICB0ZXh0OiB0aGlzLm9wdGlvbnMuQ29uZmlybWF0aW9uQm9keSxcclxuICAgICAgICAgIGljb246IHRoaXMuaWNvbixcclxuICAgICAgICAgIGljb25Db2xvcjp0aGlzLmJ0bkNvbG9yLFxyXG4gICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25Db2xvcjogdGhpcy5idG5Db2xvcixcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvbkNvbG9yOiAnI2Y1ZjhmYScsXHJcbiAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OnRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbFwiKSxcclxuXHJcbiAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDp0aGlzLm9wdGlvbnMuU3VibWl0QnV0dG9uVGV4dCxcclxuICAgICAgICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJtaXQoKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKClcclxuICB9XHJcbiAgcHJpdmF0ZSBzZXRUZXh0VmFsdWVzKCkge1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuQ29uZmlybWF0aW9uSGVhZGVyKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuQ29uZmlybWF0aW9uSGVhZGVyID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlQ29uZmlybWF0aW9uXCIpO1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuQ29uZmlybWF0aW9uQm9keSlcclxuICAgICAgdGhpcy5vcHRpb25zLkNvbmZpcm1hdGlvbkJvZHkgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVfUXVlc3Rpb25cIik7XHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5TdWJtaXRCdXR0b25UZXh0KVxyXG4gICAgICB0aGlzLm9wdGlvbnMuU3VibWl0QnV0dG9uVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZVwiKTtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLlN1Y2Nlc3NOb3RpZmljYXRpb25NZXNzYWdlKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuU3VjY2Vzc05vdGlmaWNhdGlvbk1lc3NhZ2UgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVkU3VjY2Vzc2Z1bGx5XCIpO1xyXG4gIH1cclxuICAvL01vZGFsIGNvbmZpcm1hdGlvbiBzdWJtaXQgZnVuY3Rpb25cclxuICBzdWJtaXQoKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIm9wdGlvbnMgaW4gc3VibWl0IGZ1bmN0aW9uXCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5vcHRpb25zKTtcclxuICAgIGxldCBzdWJtaXRNb2RlbCA9IHRoaXMub3B0aW9ucy5TZXJ2aWNlU3VibWl0TW9kZWw7XHJcblxyXG4gICAgbGV0IHN1Ym1pdHRlZFNlcnZpY2UgPSB0aGlzLm9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uLmFwcGx5KG51bGwsIHN1Ym1pdE1vZGVsKSBhcyBPYnNlcnZhYmxlPGFueT5cclxuICAgIHN1Ym1pdHRlZFNlcnZpY2Uuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZGlzbWlzc0FsbCgpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5EaXNhYmxlU3VjY2Vzc05vdGlmaWNhdGlvbikge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuU3VjY2Vzc05vdGlmaWNhdGlvbk1lc3NhZ2UpXHJcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5TdWNjZXNzTm90aWZpY2F0aW9uTWVzc2FnZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZWRTdWNjZXNzZnVsbHlcIik7XHJcbiAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKHRoaXMub3B0aW9ucy5TdWNjZXNzTm90aWZpY2F0aW9uTWVzc2FnZSlcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5PblN1Y2Nlc3NIYW5kbGVyKVxyXG4gICAgICAgICAgdGhpcy5vcHRpb25zLk9uU3VjY2Vzc0hhbmRsZXIocmVzdWx0KVxyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlKSB7XHJcbiAgICAgICAgICBsZXQgcGFnaW5nID0gdGhpcy5vcHRpb25zLlBhZ2luZ1JlZmVyZW5jZTtcclxuICAgICAgICAgIHRoaXMub3B0aW9ucy5QYWdpbmdBY3Rpb25Nb2RlID09IFBhZ2luZ0FjdGlvbk1vZGUuUmVpbml0aWFsaXplID8gcGFnaW5nLlJlaW5pdGlhbGl6ZVBhZ2luZygpIDogcGFnaW5nLlVwZGF0ZVBhZ2luZygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuT25FcnJvckhhbmRsZXIpXHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuT25FcnJvckhhbmRsZXIoZXJyb3IpXHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgbGV0IGVycm9yTWVzc2FnZSA9ICcnO1xyXG4gICAgaWYgKGVyci5lcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHtcclxuICAgICAgZXJyb3JNZXNzYWdlID0gYEFuIGVycm9yIG9jY3VycmVkOiAke2Vyci5lcnJvci5tZXNzYWdlfWA7XHJcbiAgICAgIGlmICghdGhpcy5vcHRpb25zLkRpc2FibGVFcnJvck5vdGlmaWNhdGlvbilcclxuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeUVycm9yTWVzc2FnZSgpXHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAoZXJyLnN0YXR1cyA9PSA0MDEpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL0FkbWluL2FjY291bnQvbG9naW5cIl0pXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChlcnIuc3RhdHVzID09IDUxMCkge1xyXG4gICAgICBlcnJvck1lc3NhZ2UgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldEN1cnJlbnRMYW5ndWFnZSgpPT1cImVuXCI/IFwiQ2FuIG5vdCBkZWxldGUgdGhpcyBpdGVtIGFzIGl0IGlzIHJlbGF0ZWQgdG8gb3RoZXJzXCI6XCLZhNinINmK2YXZg9mGINit2LDZgSDZh9iw2Kcg2KfZhNi52YbYtdixINmE2KPZhtmHINmF2LHYqtio2Lcg2KjYudmG2KfYtdixINij2K7YsdmJXCI7XHJcbiAgICAgIGlmICghdGhpcy5vcHRpb25zLkRpc2FibGVFcnJvck5vdGlmaWNhdGlvbilcclxuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeUVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgZXJyb3JNZXNzYWdlID0gYFNlcnZlciByZXR1cm5lZCBjb2RlOiAke2Vyci5zdGF0dXN9LCBlcnJvciBtZXNzYWdlIGlzOiAke2Vyci5tZXNzYWdlfWA7XHJcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yTWVzc2FnZSk7XHJcbiAgICAgIGlmICghdGhpcy5vcHRpb25zLkRpc2FibGVFcnJvck5vdGlmaWNhdGlvbilcclxuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeUVycm9yTWVzc2FnZSgpXHJcbiAgICB9XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlybWF0aW9uTW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL0NvbmZpcm1hdGlvbk1vZGFsL0NvbmZpcm1hdGlvbk1vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUV6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV2RSxPQUFPLElBQXdCLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU16QyxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLFlBQW1CLGNBQThCLEVBQVUsWUFBc0IsRUFBVSxNQUFjO1FBQXRGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVR6RyxnQkFBVyxHQUEwQixxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFDbEUsaUJBQVksR0FBMEIscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQ3BFLGlCQUFZLEdBQTBCLHFCQUFxQixDQUFDLE9BQU8sQ0FBQztJQU95QyxDQUFDO0lBRTlHLFFBQVE7SUFDUixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLFNBQVM7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ2xDLCtCQUErQjtRQUMvQixJ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QyxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QjtnQkFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1NBQzNDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzs7WUFuSUYsU0FBUyxTQUFDO2dCQUNULFlBQStDO2dCQUMvQyxRQUFRLEVBQUUsd0JBQXdCO2FBQ25DOzs7WUFYUSxjQUFjO1lBRGQsUUFBUTtZQU9SLE1BQU07OztzQkFPWixLQUFLO2dDQUlMLFNBQVMsU0FBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJ1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN0eWxlQ29uZmlybWF0aW9uTW9kZSB9IGZyb20gJy4uLy4uLy4uL3B1YmxpYy1hcGknO1xyXG5pbXBvcnQgeyBQYWdpbmdBY3Rpb25Nb2RlIH0gZnJvbSAnLi4vLi4vU2hhcmVkL0VudW1zL1BhZ2luZ0FjdGlvbk1vZGUnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMgfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL0NvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucyc7XHJcbmltcG9ydCBTd2FsLCB7IFN3ZWV0QWxlcnRJY29uIH0gZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICdDb25maXJtYXRpb25Nb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc2VsZWN0b3I6ICdCQlNGLUNvbmZpcm1hdGlvbk1vZGFsJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBvcHRpb25zOiBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnM7XHJcbiAgc3R5bGVEYW5nZXI6IFN0eWxlQ29uZmlybWF0aW9uTW9kZSA9IFN0eWxlQ29uZmlybWF0aW9uTW9kZS5EYW5nZXI7XHJcbiAgc3R5bGVXYXJuaW5nOiBTdHlsZUNvbmZpcm1hdGlvbk1vZGUgPSBTdHlsZUNvbmZpcm1hdGlvbk1vZGUuV2FybmluZztcclxuICBzdHlsZVN1Y2Nlc3M6IFN0eWxlQ29uZmlybWF0aW9uTW9kZSA9IFN0eWxlQ29uZmlybWF0aW9uTW9kZS5TdWNjZXNzO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm1hdGlvbk1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNvbmZpcm1hdGlvbk1vZGFsOiBFbGVtZW50UmVmO1xyXG4gIGljb246IFN3ZWV0QWxlcnRJY29uO1xyXG4gIGJ0bkNvbG9yOiBhbnk7XHJcbiAgaWNvbkh0bWw6IHN0cmluZztcclxuXHJcbiAgXHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICAvL01ldGhvZCB1c2VkIHRvIHNob3cgY29uZmlybWF0aW9uIG1vZGFsXHJcbiAgc2hvd01vZGFsKCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKVxyXG4gICAgLy9jaGVjayBmb3Igb3B0aW9ucyB0ZXh0IHZhbHVlc1xyXG4gICAgdGhpcy5zZXRUZXh0VmFsdWVzKCk7XHJcbiAgICAvL3N3ZWV0YWxlcnQgc3R5bGVzLy9cclxuICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLlN0eWxlQ29uZmlybWF0aW9uTW9kZSkge1xyXG4gICAgICBjYXNlIHRoaXMuc3R5bGVTdWNjZXNzOiB7XHJcbiAgICAgICAgdGhpcy5pY29uID0gJ3N1Y2Nlc3MnXHJcbiAgICAgICAgdGhpcy5idG5Db2xvciA9ICcjNTBjZDg5J1xyXG4gICAgICAgIHRoaXMuaWNvbkh0bWw9JzxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIj48L2k+J1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgdGhpcy5zdHlsZVdhcm5pbmc6IHtcclxuICAgICAgICB0aGlzLmljb24gPSAnd2FybmluZydcclxuICAgICAgICB0aGlzLmJ0bkNvbG9yID0gJyNmZmM3MDAnXHJcbiAgICAgICAgdGhpcy5pY29uSHRtbD0nPGkgY2xhc3M9XCJmYSBmYS13YXJuaW5nXCI+PC9pPidcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIH1cclxuICAgICAgY2FzZSB0aGlzLnN0eWxlRGFuZ2VyOiB7XHJcbiAgICAgICAgdGhpcy5pY29uID0gJ2Vycm9yJ1xyXG4gICAgICAgIHRoaXMuYnRuQ29sb3IgPSAnI2YxNDE2YydcclxuICAgICAgICB0aGlzLmljb25IdG1sPSc8aSBjbGFzcz1cImZhIGZhLWNsb3NlXCI+PC9pPidcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICB0aXRsZTp0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUodGhpcy5vcHRpb25zLkNvbmZpcm1hdGlvbkhlYWRlciksXHJcbiAgICAgICAgICB0ZXh0OiB0aGlzLm9wdGlvbnMuQ29uZmlybWF0aW9uQm9keSxcclxuICAgICAgICAgIGljb246IHRoaXMuaWNvbixcclxuICAgICAgICAgIGljb25Db2xvcjp0aGlzLmJ0bkNvbG9yLFxyXG4gICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25Db2xvcjogdGhpcy5idG5Db2xvcixcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvbkNvbG9yOiAnI2Y1ZjhmYScsXHJcbiAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OnRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpLFxyXG5cclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OnRoaXMub3B0aW9ucy5TdWJtaXRCdXR0b25UZXh0LFxyXG4gICAgICAgICAgc2hvd0Nsb3NlQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICB0aGlzLnN1Ym1pdCgpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKVxyXG4gIH1cclxuICBwcml2YXRlIHNldFRleHRWYWx1ZXMoKSB7XHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5Db25maXJtYXRpb25IZWFkZXIpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5Db25maXJtYXRpb25IZWFkZXIgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVDb25maXJtYXRpb25cIik7XHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5Db25maXJtYXRpb25Cb2R5KVxyXG4gICAgICB0aGlzLm9wdGlvbnMuQ29uZmlybWF0aW9uQm9keSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZV9RdWVzdGlvblwiKTtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLlN1Ym1pdEJ1dHRvblRleHQpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5TdWJtaXRCdXR0b25UZXh0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlXCIpO1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuU3VjY2Vzc05vdGlmaWNhdGlvbk1lc3NhZ2UpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5TdWNjZXNzTm90aWZpY2F0aW9uTWVzc2FnZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZWRTdWNjZXNzZnVsbHlcIik7XHJcbiAgfVxyXG4gIC8vTW9kYWwgY29uZmlybWF0aW9uIHN1Ym1pdCBmdW5jdGlvblxyXG4gIHN1Ym1pdCgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwib3B0aW9ucyBpbiBzdWJtaXQgZnVuY3Rpb25cIik7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLm9wdGlvbnMpO1xyXG4gICAgbGV0IHN1Ym1pdE1vZGVsID0gdGhpcy5vcHRpb25zLlNlcnZpY2VTdWJtaXRNb2RlbDtcclxuXHJcbiAgICBsZXQgc3VibWl0dGVkU2VydmljZSA9IHRoaXMub3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24uYXBwbHkobnVsbCwgc3VibWl0TW9kZWwpIGFzIE9ic2VydmFibGU8YW55PlxyXG4gICAgc3VibWl0dGVkU2VydmljZS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLkRpc2FibGVTdWNjZXNzTm90aWZpY2F0aW9uKSB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5TdWNjZXNzTm90aWZpY2F0aW9uTWVzc2FnZSlcclxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLlN1Y2Nlc3NOb3RpZmljYXRpb25NZXNzYWdlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlZFN1Y2Nlc3NmdWxseVwiKTtcclxuICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5vcHRpb25zLlN1Y2Nlc3NOb3RpZmljYXRpb25NZXNzYWdlKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLk9uU3VjY2Vzc0hhbmRsZXIpXHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuT25TdWNjZXNzSGFuZGxlcihyZXN1bHQpXHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UpIHtcclxuICAgICAgICAgIGxldCBwYWdpbmcgPSB0aGlzLm9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlO1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25zLlBhZ2luZ0FjdGlvbk1vZGUgPT0gUGFnaW5nQWN0aW9uTW9kZS5SZWluaXRpYWxpemUgPyBwYWdpbmcuUmVpbml0aWFsaXplUGFnaW5nKCkgOiBwYWdpbmcuVXBkYXRlUGFnaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5PbkVycm9ySGFuZGxlcilcclxuICAgICAgICAgIHRoaXMub3B0aW9ucy5PbkVycm9ySGFuZGxlcihlcnJvcilcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICBsZXQgZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICBpZiAoZXJyLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xyXG4gICAgICBlcnJvck1lc3NhZ2UgPSBgQW4gZXJyb3Igb2NjdXJyZWQ6ICR7ZXJyLmVycm9yLm1lc3NhZ2V9YDtcclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuRGlzYWJsZUVycm9yTm90aWZpY2F0aW9uKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKClcclxuICAgIH1cclxuXHJcbiAgICBlbHNlIGlmIChlcnIuc3RhdHVzID09IDQwMSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvQWRtaW4vYWNjb3VudC9sb2dpblwiXSlcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGVyci5zdGF0dXMgPT0gNTEwKSB7XHJcbiAgICAgIGVycm9yTWVzc2FnZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0Q3VycmVudExhbmd1YWdlKCk9PVwiZW5cIj8gXCJDYW4gbm90IGRlbGV0ZSB0aGlzIGl0ZW0gYXMgaXQgaXMgcmVsYXRlZCB0byBvdGhlcnNcIjpcItmE2Kcg2YrZhdmD2YYg2K3YsNmBINmH2LDYpyDYp9mE2LnZhti12LEg2YTYo9mG2Ycg2YXYsdiq2KjYtyDYqNi52YbYp9i12LEg2KPYrtix2YlcIjtcclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuRGlzYWJsZUVycm9yTm90aWZpY2F0aW9uKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSlcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBlcnJvck1lc3NhZ2UgPSBgU2VydmVyIHJldHVybmVkIGNvZGU6ICR7ZXJyLnN0YXR1c30sIGVycm9yIG1lc3NhZ2UgaXM6ICR7ZXJyLm1lc3NhZ2V9YDtcclxuICAgICAgY29uc29sZS5sb2coZXJyb3JNZXNzYWdlKTtcclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuRGlzYWJsZUVycm9yTm90aWZpY2F0aW9uKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKClcclxuICAgIH1cclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
@@ -8,9 +8,10 @@ import { SelectMode } from '../../Shared/Enums/SelectMode';
8
8
  import { OnPagingFiltersChangeService } from '../../Shared/services/OnPagingFiltersChange.service';
9
9
  import { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';
10
10
  import { DatePipe } from '@angular/common';
11
+ import { DateTimeAdapter } from 'ng-pick-datetime';
11
12
  export class DateInputComponent {
12
13
  // tslint:disable-next-line: max-line-length
13
- constructor(datepipe, onChangeService, ErrorHandler, controlUtility, controlContainer, DateInputControlHost, UtilityService, translate, controlValidationService) {
14
+ constructor(datepipe, onChangeService, ErrorHandler, controlUtility, controlContainer, DateInputControlHost, UtilityService, translate, controlValidationService, dateTimeAdapter) {
14
15
  this.datepipe = datepipe;
15
16
  this.onChangeService = onChangeService;
16
17
  this.ErrorHandler = ErrorHandler;
@@ -20,6 +21,7 @@ export class DateInputComponent {
20
21
  this.UtilityService = UtilityService;
21
22
  this.translate = translate;
22
23
  this.controlValidationService = controlValidationService;
24
+ this.dateTimeAdapter = dateTimeAdapter;
23
25
  this.OnChange = new EventEmitter();
24
26
  this.markAllAsTouched = false;
25
27
  this.validationRules = [];
@@ -50,6 +52,8 @@ export class DateInputComponent {
50
52
  DateInputComponent.controlContainerstatic = this.controlContainer;
51
53
  }
52
54
  ngOnInit() {
55
+ // Update the DateTimeAdapter Language with the current thread langauge
56
+ this.dateTimeAdapter.setLocale(this.UtilityService.getCurrentLanguage() == "ar" ? "ar" : "en-UK");
53
57
  this.controlValidationService.isCreatedBefor = false;
54
58
  this.group.addControl(this.options.Name, new FormControl(''));
55
59
  this.DatePickerFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
@@ -142,11 +146,12 @@ DateInputComponent.ctorParameters = () => [
142
146
  { type: FormGroupDirective },
143
147
  { type: UtilityService },
144
148
  { type: BBSFTranslateService },
145
- { type: ControlValidationService }
149
+ { type: ControlValidationService },
150
+ { type: DateTimeAdapter }
146
151
  ];
147
152
  DateInputComponent.propDecorators = {
148
153
  group: [{ type: Input }],
149
154
  options: [{ type: Input }],
150
155
  OnChange: [{ type: Output }]
151
156
  };
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVRpbWVQaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL0RhdGVUaW1lUGlja2VyL0RhdGVUaW1lUGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVyxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBOEIsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFbkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU8zQyxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLDRDQUE0QztJQUM1QyxZQUFtQixRQUFrQixFQUFTLGVBQTZDLEVBQVUsWUFBb0MsRUFBVSxjQUE4QixFQUFzQixnQkFBa0MsRUFBUyxvQkFBd0MsRUFBUyxjQUE2QixFQUFTLFNBQStCLEVBQVMsd0JBQWlEO1FBQS9ZLGFBQVEsR0FBUixRQUFR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QTlELG9CQUFvQjtZQUFFLHdCQUF3Qjs7O29CQWNwRCxLQUFLO3NCQUNMLEtBQUs7dUJBRUwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgRG9DaGVjaywgT3B0aW9uYWwsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzLCBGb3JtR3JvdXAsIEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBDb250cm9sQ29udGFpbmVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyT3B0aW9ucyB9IGZyb20gJy4uLy4uL1NoYXJlZC9Nb2RlbHMvZGF0ZVBpY2tlck9wdGlvbnMnO1xyXG5pbXBvcnQgeyBFcnJvck1hc3NhZ2VWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL3ZhbGlkYXRpb25FcnJvck1hc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnRyb2xVdGlsaXR5IH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL0NvbnRyb2xVdGlsaXR5JztcclxuaW1wb3J0IHsgUGlja2VyVHlwZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9FbnVtcy9QaWNrZXJUeXBlJztcclxuaW1wb3J0IHsgU3RhcnRWaWV3IH0gZnJvbSAnLi4vLi4vU2hhcmVkL0VudW1zL1N0YXJ0Vmlldyc7XHJcbmltcG9ydCB7IFNlbGVjdE1vZGUgfSBmcm9tICcuLi8uLi9TaGFyZWQvRW51bXMvU2VsZWN0TW9kZSc7XHJcbmltcG9ydCB7IE9uUGFnaW5nRmlsdGVyc0NoYW5nZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvT25QYWdpbmdGaWx0ZXJzQ2hhbmdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGZ1bGxjYWxlbmRhci9jb3JlJztcclxuaW1wb3J0IHsgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIENvbnRyb2xWYWxpZGF0aW9uU2VydmljZSwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ0JCU0YtRGF0ZVRpbWVQaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9EYXRlVGltZVBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vRGF0ZVRpbWVQaWNrZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBzdGF0aWMgY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0ZXBpcGU6IERhdGVQaXBlLHByaXZhdGUgb25DaGFuZ2VTZXJ2aWNlOiBPblBhZ2luZ0ZpbHRlcnNDaGFuZ2VTZXJ2aWNlLCBwcml2YXRlIEVycm9ySGFuZGxlcjogRXJyb3JNYXNzYWdlVmFsaWRhdGlvbiwgcHJpdmF0ZSBjb250cm9sVXRpbGl0eTogQ29udHJvbFV0aWxpdHksIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lciwgcHVibGljIERhdGVJbnB1dENvbnRyb2xIb3N0OiBGb3JtR3JvdXBEaXJlY3RpdmUscHJpdmF0ZSBVdGlsaXR5U2VydmljZTpVdGlsaXR5U2VydmljZSxwcml2YXRlIHRyYW5zbGF0ZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UscHJpdmF0ZSBjb250cm9sVmFsaWRhdGlvblNlcnZpY2U6Q29udHJvbFZhbGlkYXRpb25TZXJ2aWNlKSB7XHJcbiAgICBEYXRlSW5wdXRDb21wb25lbnQuY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IHRoaXMuY29udHJvbENvbnRhaW5lcjtcclxuICB9XHJcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBvcHRpb25zOiBEYXRlUGlja2VyT3B0aW9ucztcclxuICBEYXRlUGlja2VyRm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcclxuICBAT3V0cHV0KCkgT25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgbWFya0FsbEFzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHZhbGlkYXRpb25SdWxlcyA9IFtdO1xyXG4gIHZhbGlkYXRpb25SdWxlc2FzeW5jID0gW107XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuaXNDcmVhdGVkQmVmb3IgPSBmYWxzZVxyXG4gICAgdGhpcy5ncm91cC5hZGRDb250cm9sKHRoaXMub3B0aW9ucy5OYW1lLCBuZXcgRm9ybUNvbnRyb2woJycpKTtcclxuICAgIHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sID0gdGhpcy5ncm91cC5jb250cm9sc1t0aGlzLm9wdGlvbnMuTmFtZV07IC8vICBuZXcgRm9ybUNvbnRyb2woJycsdmFsaWRhdGlvblJ1bGVzKTtcclxuXHJcbiAgICB0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm9wdGlvbnMuVmFsdWUpO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQ3VzdG9tVmFsaWRhdGlvbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBWYWxpZGF0aW9ucyA9IHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uXHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBWYWxpZGF0aW9ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBWYWxpZGF0aW9uID0gVmFsaWRhdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuTGFiZWxLZXkgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuTGFiZWxLZXkgIT0gXCJcIilcclxuICAgICAgdGhpcy5vcHRpb25zLkxhYmVsVmFsdWUgPSB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUodGhpcy5vcHRpb25zLkxhYmVsS2V5KTtcclxuXHJcbiAgICB0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMudmFsaWRhdGlvblJ1bGVzKTtcclxuICAgIHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyh0aGlzLnZhbGlkYXRpb25SdWxlc2FzeW5jKTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLkRhdGVJbnB1dENvbnRyb2xIb3N0Lm5nU3VibWl0LnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgdGhpcy5ncm91cC5tYXJrQWxsQXNUb3VjaGVkKClcclxuICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkID0gdHJ1ZVxyXG4gICAgfSlcclxuXHJcblxyXG5cclxuICB9XHJcblxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LnNldEF0dHJpYnV0ZUZvckNvbnRyb2wodGhpcy5vcHRpb25zKVxyXG4gIH1cclxuXHJcblxyXG4gIHJlc2V0RXJyb3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xWYWxpZGF0aW9uU2VydmljZS5SZW1vdmVHbG9iYWxFcnJvcigpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0dsb2JhbEVycm9yKCkge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5zaG93R2xvYmFsRXJyb3IoKVxyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JWYWxpZGF0aW9uKEVycm9yTGlzdCkge1xyXG4gICAgaWYgKHRoaXMubWFya0FsbEFzVG91Y2hlZCAmJiB0aGlzLmdyb3VwLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5zaG93R2xvYmFsRXJyb3IoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbFV0aWxpdHkuZ2V0RXJyb3JWYWxpZGF0aW9uTWFzc2FnZShFcnJvckxpc3QsIHRoaXMuZ3JvdXAsIHRoaXMub3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICBjb3B5SW5wdXRNZXNzYWdlKGlucHV0RWxlbWVudCkge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5Db3B5SW5wdXRNZXNzYWdlKGlucHV0RWxlbWVudClcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZ2V0U2VsZWN0TW9kZSh0eXBlOiBudW1iZXIpIHtcclxuICAgIGxldCBWYWx1ZSA9IChTZWxlY3RNb2RlW3R5cGVdIGFzIHN0cmluZylcclxuICAgIHJldHVybiBWYWx1ZS50b0xvd2VyQ2FzZSgpXHJcbiAgfVxyXG4gIGdldFBpY2tlclR5cGUodHlwZTogbnVtYmVyKSB7XHJcbiAgICBsZXQgVmFsdWUgPSAoUGlja2VyVHlwZVt0eXBlXSBhcyBzdHJpbmcpXHJcbiAgICByZXR1cm4gVmFsdWUudG9Mb3dlckNhc2UoKVxyXG4gIH1cclxuICBnZXRTdGFydFZpZXcodHlwZTogbnVtYmVyKSB7XHJcbiAgICBpZiAodHlwZSA9PSAzKVxyXG4gICAgICByZXR1cm4gXCJtdWx0aS15ZWFyXCI7XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IFZhbHVlID0gU3RhcnRWaWV3W3R5cGVdIGFzIHN0cmluZ1xyXG4gICAgICByZXR1cm4gVmFsdWUudG9Mb3dlckNhc2UoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIG9uRGF0ZVNlbGVjdChpdGVtKSB7XHJcbiAgICBsZXQgRGF0ZVZhbHVlO1xyXG4gICAgdmFyIHR6b2Zmc2V0ID0gKG5ldyBEYXRlKCkpLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMDsgLy9vZmZzZXQgaW4gbWlsbGlzZWNvbmRzICBcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLlNlbGVjdE1vZGUgPT0gMikge1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgaXRlbS52YWx1ZS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBpdGVtLnZhbHVlW2luZGV4XSA9IG5ldyBEYXRlKGl0ZW0udmFsdWVbaW5kZXhdLSB0em9mZnNldCkudG9JU09TdHJpbmcoKS5zbGljZSgwLCAtMSk7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIERhdGVWYWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgRGF0ZVZhbHVlID0gbmV3IERhdGUoaXRlbS52YWx1ZS0gdHpvZmZzZXQpLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgLTEpO1xyXG5cclxuICAgIH1cclxuICAgIHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLnNldFZhbHVlKERhdGVWYWx1ZSlcclxuICAgIHRoaXMub25DaGFuZ2VTZXJ2aWNlLkNoYW5nZVZhbHVlKHRoaXMub3B0aW9ucy5OYW1lKTtcclxuICAgIHRoaXMuT25DaGFuZ2UuZW1pdChEYXRlVmFsdWUpO1xyXG5cclxuXHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIFJlbW92ZVJlcXVpcmVkVmFsaWRhdGlvbiA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIEFkZFJlcXVpcmVkVmFsaWRhdGlvbiA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuXHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBSZW1vdmVDdXN0b21WYWxpZGF0aW9uID0gKEN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlQ3VzdG9tVmFsaWRhdGlvbih0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIEN1c3RvbVZhbGlkYXRpb24pXHJcbiAgfVxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgQWRkQ3VzdG9tVmFsaWRhdGlvbiA9IChDdXN0b21WYWxpZGF0aW9uKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LkFkZEN1c3RvbVZhbGlkYXRpb24odGhpcy5EYXRlUGlja2VyRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCBDdXN0b21WYWxpZGF0aW9uKVxyXG4gIH1cclxuXHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBJc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5Jc1ZhbGlkKHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sKVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5cclxuIl19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVRpbWVQaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL0RhdGVUaW1lUGlja2VyL0RhdGVUaW1lUGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVyxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBOEIsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFbkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFPbkQsTUFBTSxPQUFPLGtCQUFrQjtJQUU3Qiw0Q0FBNEM7SUFDNUMsWUFBbUIsUUFBa0IsRUFBUyxlQUE2QyxFQUFVLFlBQW9DLEVBQVUsY0FBOEIsRUFBc0IsZ0JBQWtDLEVBQVMsb0JBQXdDLEVBQVMsY0FBNkIs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QUFDLFNBQVMsQ0FBQyxDQUFDO0lBR2hDLENBQUM7O0FBMUhNLHlDQUFzQixHQUFHLElBQUksQ0FBQzs7WUFOdEMsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLGt5SEFBOEM7O2FBRS9DOzs7WUFQUSxRQUFRO1lBSFIsNEJBQTRCO1lBTDVCLHNCQUFzQjtZQUN0QixjQUFjO1lBSDJELGdCQUFnQix1QkFxQm9GLFFBQVE7WUFyQmhJLGtCQUFrQjtZQVN2QixjQUFjO1lBQTlELG9CQUFvQjtZQUFFLHdCQUF3QjtZQUU5QyxlQUFlOzs7b0JBYXJCLEtBQUs7c0JBQ0wsS0FBSzt1QkFFTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBEb0NoZWNrLCBPcHRpb25hbCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMsIEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXBEaXJlY3RpdmUsIENvbnRyb2xDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9kYXRlUGlja2VyT3B0aW9ucyc7XHJcbmltcG9ydCB7IEVycm9yTWFzc2FnZVZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvdmFsaWRhdGlvbkVycm9yTWFzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbFV0aWxpdHkgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvQ29udHJvbFV0aWxpdHknO1xyXG5pbXBvcnQgeyBQaWNrZXJUeXBlIH0gZnJvbSAnLi4vLi4vU2hhcmVkL0VudW1zL1BpY2tlclR5cGUnO1xyXG5pbXBvcnQgeyBTdGFydFZpZXcgfSBmcm9tICcuLi8uLi9TaGFyZWQvRW51bXMvU3RhcnRWaWV3JztcclxuaW1wb3J0IHsgU2VsZWN0TW9kZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9FbnVtcy9TZWxlY3RNb2RlJztcclxuaW1wb3J0IHsgT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy9PblBhZ2luZ0ZpbHRlcnNDaGFuZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCQlNGVHJhbnNsYXRlU2VydmljZSwgQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRGF0ZVRpbWVBZGFwdGVyIH0gZnJvbSAnbmctcGljay1kYXRldGltZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ0JCU0YtRGF0ZVRpbWVQaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9EYXRlVGltZVBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vRGF0ZVRpbWVQaWNrZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBzdGF0aWMgY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0ZXBpcGU6IERhdGVQaXBlLHByaXZhdGUgb25DaGFuZ2VTZXJ2aWNlOiBPblBhZ2luZ0ZpbHRlcnNDaGFuZ2VTZXJ2aWNlLCBwcml2YXRlIEVycm9ySGFuZGxlcjogRXJyb3JNYXNzYWdlVmFsaWRhdGlvbiwgcHJpdmF0ZSBjb250cm9sVXRpbGl0eTogQ29udHJvbFV0aWxpdHksIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lciwgcHVibGljIERhdGVJbnB1dENvbnRyb2xIb3N0OiBGb3JtR3JvdXBEaXJlY3RpdmUscHJpdmF0ZSBVdGlsaXR5U2VydmljZTpVdGlsaXR5U2VydmljZSxwcml2YXRlIHRyYW5zbGF0ZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UscHJpdmF0ZSBjb250cm9sVmFsaWRhdGlvblNlcnZpY2U6Q29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLHByaXZhdGUgZGF0ZVRpbWVBZGFwdGVyOiBEYXRlVGltZUFkYXB0ZXI8YW55Pikge1xyXG4gICAgRGF0ZUlucHV0Q29tcG9uZW50LmNvbnRyb2xDb250YWluZXJzdGF0aWMgPSB0aGlzLmNvbnRyb2xDb250YWluZXI7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgb3B0aW9uczogRGF0ZVBpY2tlck9wdGlvbnM7XHJcbiAgRGF0ZVBpY2tlckZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgQE91dHB1dCgpIE9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIG1hcmtBbGxBc1RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB2YWxpZGF0aW9uUnVsZXMgPSBbXTtcclxuICB2YWxpZGF0aW9uUnVsZXNhc3luYyA9IFtdO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICAvLyBVcGRhdGUgdGhlIERhdGVUaW1lQWRhcHRlciBMYW5ndWFnZSB3aXRoIHRoZSBjdXJyZW50IHRocmVhZCBsYW5nYXVnZVxyXG4gICAgdGhpcy5kYXRlVGltZUFkYXB0ZXIuc2V0TG9jYWxlKHRoaXMuVXRpbGl0eVNlcnZpY2UuZ2V0Q3VycmVudExhbmd1YWdlKCkgPT0gXCJhclwiID8gXCJhclwiIDogXCJlbi1VS1wiKTtcclxuICAgIHRoaXMuY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLmlzQ3JlYXRlZEJlZm9yID0gZmFsc2VcclxuICAgIHRoaXMuZ3JvdXAuYWRkQ29udHJvbCh0aGlzLm9wdGlvbnMuTmFtZSwgbmV3IEZvcm1Db250cm9sKCcnKSk7XHJcbiAgICB0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbCA9IHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5vcHRpb25zLk5hbWVdOyAvLyAgbmV3IEZvcm1Db250cm9sKCcnLHZhbGlkYXRpb25SdWxlcyk7XHJcblxyXG4gICAgdGhpcy5EYXRlUGlja2VyRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5vcHRpb25zLlZhbHVlKTtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkN1c3RvbVZhbGlkYXRpb24ubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgVmFsaWRhdGlvbnMgPSB0aGlzLm9wdGlvbnMuQ3VzdG9tVmFsaWRhdGlvblxyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgVmFsaWRhdGlvbnMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgY29uc3QgVmFsaWRhdGlvbiA9IFZhbGlkYXRpb25zW2luZGV4XTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRpb24uZnVuY3Rpb25Cb2R5KTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc1JlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkxhYmVsS2V5ICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkxhYmVsS2V5ICE9IFwiXCIpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5MYWJlbFZhbHVlID0gdGhpcy5VdGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKHRoaXMub3B0aW9ucy5MYWJlbEtleSk7XHJcblxyXG4gICAgdGhpcy5EYXRlUGlja2VyRm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLnZhbGlkYXRpb25SdWxlcyk7XHJcbiAgICB0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnModGhpcy52YWxpZGF0aW9uUnVsZXNhc3luYyk7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLklzRGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5EYXRlUGlja2VyRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5EYXRlSW5wdXRDb250cm9sSG9zdC5uZ1N1Ym1pdC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JvdXAubWFya0FsbEFzVG91Y2hlZCgpXHJcbiAgICAgIHRoaXMubWFya0FsbEFzVG91Y2hlZCA9IHRydWVcclxuICAgIH0pXHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5zZXRBdHRyaWJ1dGVGb3JDb250cm9sKHRoaXMub3B0aW9ucylcclxuICB9XHJcblxyXG5cclxuICByZXNldEVycm9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuUmVtb3ZlR2xvYmFsRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIHNob3dHbG9iYWxFcnJvcigpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuc2hvd0dsb2JhbEVycm9yKClcclxuICB9XHJcblxyXG4gIGdldEVycm9yVmFsaWRhdGlvbihFcnJvckxpc3QpIHtcclxuICAgIGlmICh0aGlzLm1hcmtBbGxBc1RvdWNoZWQgJiYgdGhpcy5ncm91cC5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuc2hvd0dsb2JhbEVycm9yKClcclxuICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkID0gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xVdGlsaXR5LmdldEVycm9yVmFsaWRhdGlvbk1hc3NhZ2UoRXJyb3JMaXN0LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgY29weUlucHV0TWVzc2FnZShpbnB1dEVsZW1lbnQpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQ29weUlucHV0TWVzc2FnZShpbnB1dEVsZW1lbnQpXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldFNlbGVjdE1vZGUodHlwZTogbnVtYmVyKSB7XHJcbiAgICBsZXQgVmFsdWUgPSAoU2VsZWN0TW9kZVt0eXBlXSBhcyBzdHJpbmcpXHJcbiAgICByZXR1cm4gVmFsdWUudG9Mb3dlckNhc2UoKVxyXG4gIH1cclxuICBnZXRQaWNrZXJUeXBlKHR5cGU6IG51bWJlcikge1xyXG4gICAgbGV0IFZhbHVlID0gKFBpY2tlclR5cGVbdHlwZV0gYXMgc3RyaW5nKVxyXG4gICAgcmV0dXJuIFZhbHVlLnRvTG93ZXJDYXNlKClcclxuICB9XHJcbiAgZ2V0U3RhcnRWaWV3KHR5cGU6IG51bWJlcikge1xyXG4gICAgaWYgKHR5cGUgPT0gMylcclxuICAgICAgcmV0dXJuIFwibXVsdGkteWVhclwiO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBWYWx1ZSA9IFN0YXJ0Vmlld1t0eXBlXSBhcyBzdHJpbmdcclxuICAgICAgcmV0dXJuIFZhbHVlLnRvTG93ZXJDYXNlKClcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBvbkRhdGVTZWxlY3QoaXRlbSkge1xyXG4gICAgbGV0IERhdGVWYWx1ZTtcclxuICAgIHZhciB0em9mZnNldCA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7IC8vb2Zmc2V0IGluIG1pbGxpc2Vjb25kcyAgXHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5TZWxlY3RNb2RlID09IDIpIHtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGl0ZW0udmFsdWUubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgaXRlbS52YWx1ZVtpbmRleF0gPSBuZXcgRGF0ZShpdGVtLnZhbHVlW2luZGV4XS0gdHpvZmZzZXQpLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgLTEpO1xyXG5cclxuICAgICAgfVxyXG4gICAgICBEYXRlVmFsdWUgPSBpdGVtLnZhbHVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIERhdGVWYWx1ZSA9IG5ldyBEYXRlKGl0ZW0udmFsdWUtIHR6b2Zmc2V0KS50b0lTT1N0cmluZygpLnNsaWNlKDAsIC0xKTtcclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbC5zZXRWYWx1ZShEYXRlVmFsdWUpXHJcbiAgICB0aGlzLm9uQ2hhbmdlU2VydmljZS5DaGFuZ2VWYWx1ZSh0aGlzLm9wdGlvbnMuTmFtZSk7XHJcbiAgICB0aGlzLk9uQ2hhbmdlLmVtaXQoRGF0ZVZhbHVlKTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBSZW1vdmVSZXF1aXJlZFZhbGlkYXRpb24gPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LlJlbW92ZVJlcXVpcmVkVmFsaWRhdGlvbih0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIHRoaXMub3B0aW9ucylcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBBZGRSZXF1aXJlZFZhbGlkYXRpb24gPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LkFkZFJlcXVpcmVkVmFsaWRhdGlvbih0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIHRoaXMub3B0aW9ucylcclxuICB9XHJcblxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgUmVtb3ZlQ3VzdG9tVmFsaWRhdGlvbiA9IChDdXN0b21WYWxpZGF0aW9uKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LlJlbW92ZUN1c3RvbVZhbGlkYXRpb24odGhpcy5EYXRlUGlja2VyRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCBDdXN0b21WYWxpZGF0aW9uKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIEFkZEN1c3RvbVZhbGlkYXRpb24gPSAoQ3VzdG9tVmFsaWRhdGlvbikgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5BZGRDdXN0b21WYWxpZGF0aW9uKHRoaXMuRGF0ZVBpY2tlckZvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICB9XHJcblxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgSXNWYWxpZCA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuSXNWYWxpZCh0aGlzLkRhdGVQaWNrZXJGb3JtQ29udHJvbClcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuXHJcbiJdfQ==
@@ -108,10 +108,10 @@ export class ImageUploaderComponent {
108
108
  const TypeToolTipe = element.split('/')[1];
109
109
  this.ToolTipTypeArray.push(TypeToolTipe);
110
110
  }
111
- this.ValidationMessage = this.ValidationMessage + ` Allowed extenstions (${this.ToolTipTypeArray}) `;
111
+ this.ValidationMessage = this.ValidationMessage + this.UtilityService.getResourceValue("AllowedTypes") + ` (${this.ToolTipTypeArray}) `;
112
112
  }
113
113
  if (this.options.FileMaxSizeInMB > 0) {
114
- this.ValidationMessage = this.ValidationMessage + ` <br />Max File Size ${this.options.FileMaxSizeInMB} MB`;
114
+ this.ValidationMessage = this.ValidationMessage + ` <br /> ${this.UtilityService.getResourceValue("FileMaxSizeInMB")} ${this.options.FileMaxSizeInMB}`;
115
115
  }
116
116
  if (this.options.FileUploadAcceptsTypes != null && this.options.FileUploadAcceptsTypes.length > 0) {
117
117
  }
@@ -288,7 +288,7 @@ ImageUploaderComponent.controlContainerstatic = null;
288
288
  ImageUploaderComponent.decorators = [
289
289
  { type: Component, args: [{
290
290
  selector: 'BBSF-ImageUpload',
291
- template: "<div class=\"b-control b-image-upload\">\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'\" [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n\r\n <ejs-tooltip id=\"tooltip\" content='{{ValidationMessage}}' tipPointerPosition='Middle'>\r\n <i class=\"fa fa-info-circle\" data-plugin=\"tooltip\" data-html=\"true\">\r\n </i>\r\n </ejs-tooltip>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n\r\n <div *ngIf=\"options.AllowDropZone\" style=\"max-width:200px !important; max-height: 200px !important;\" class=\"d-inline-flex h-auto w-auto overflow-hidden m-0 {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\" aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\" [maxFileSize]=\"options.FileMaxSizeInMB\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n <ngx-dropzone-label class=\"h-100 m-0\" style=\"max-width: 200px !important;\">\r\n <div class=\"h-100\">\r\n <img [src]=\"ImageSource\" class=\"h-100 w-100\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n\r\n\r\n <ngx-dropzone-image-preview style=\"max-width:200px !important; max-height: 200px !important;\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\" class=\"b-img-preview w-100 h-100 m-0\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n\r\n <div class=\"ImageUploadClassSelector\" *ngIf=\"!options.AllowDropZone\" >\r\n <ngx-dropzone-label class=\"h-100 m-0\" *ngIf=\"files.length==0\" >\r\n <div style=\"max-width:200px !important; max-height: 200px !important;\" class=\"h-100 file-fake-input\" #element (click)=\"showImageUploader(element)\">\r\n <img [src]=\"ImageSource\" class=\"h-100 w-100\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n\r\n <div style=\"border: none !important; max-width:200px !important; max-height: 200px !important;\" class=\" fileSelector customImageUploadPlacment d-inline-flex h-auto w-auto overflow-hidden m-0 {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\" aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\" [maxFileSize]=\"options.FileMaxSizeInMB\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n \r\n\r\n\r\n <ngx-dropzone-image-preview style=\"max-width:200px !important; max-height: 200px !important;\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\" class=\"b-img-preview w-100 h-100 m-0\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n </div>\r\n\r\n\r\n <div id=\"mdlSample\" class=\"modal fade\" role=\"dialog\" style=\"z-index: 11 !important ;\"\r\n [ngStyle]=\"{'display': mdlSampleIsOpen ? 'block' : 'none', 'opacity': 1}\">\r\n <div class=\"modal-dialog modal-lg\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n Crop Image\r\n </h4>\r\n </div>\r\n <div class=\"modal-body py-5\">\r\n <div *ngIf=\"imageUrl\">\r\n <angular-cropper #angularCropper [cropperOptions]=\"config\" [imageUrl]=\"imageUrl\">\r\n </angular-cropper>\r\n <img [src]=\"imgwUrl\" />\r\n </div>\r\n <div style=\"text-align:center;\">\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"zoomImage(0.1)\" class=\"btn btn-default\" data-method=\"zoom\" data-option=\"0.1\" title=\"Zoom In\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.zoom(0.1)\">\r\n <span class=\"fa fa-search-plus\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"zoomImage(-0.1)\" class=\"btn btn-default\" data-method=\"zoom\" data-option=\"-0.1\" title=\"Zoom Out\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.zoom(-0.1)\">\r\n <span class=\"fa fa-search-minus\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"moveImage(-10,0)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"-10\" data-second-option=\"0\" title=\"Move Left\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(-10, 0)\" aria-describedby=\"tooltip631939\">\r\n <span class=\"fa fa-arrow-left\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(10,0)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"10\" data-second-option=\"0\" title=\"Move Right\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(10, 0)\">\r\n <span class=\"fa fa-arrow-right\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,-10)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"0\" data-second-option=\"-10\" title=\"Move Up\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(0, -10)\">\r\n <span class=\"fa fa-arrow-up\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,10)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"0\" data-second-option=\"10\" title=\"Move Down\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(0, 10)\">\r\n <span class=\"fa fa-arrow-down\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"rotateImage(-45)\" class=\"btn btn-default\" data-method=\"rotate\" data-option=\"-45\" title=\"Rotate Left\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.rotate(-45)\" aria-describedby=\"tooltip236044\">\r\n <span class=\"fa fa-undo-alt\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"rotateImage(45)\" class=\"btn btn-default\" data-method=\"rotate\" data-option=\"45\" title=\"Rotate Right\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.rotate(45)\">\r\n <span class=\"fa fa-redo-alt\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\" align=\"right\">\r\n <button type=\"button\" id=\"btnClose\" class=\"btn btn-default\" (click)=\"openModal(false)\">\r\n <i class=\"fa fa-times fa-fw\"></i> Cancel\r\n </button>\r\n <button type=\"button\" (click)=\"cropImage()\" id=\"btnOK\" class=\"btn btn-success\">\r\n <i class=\"fa fa-check fa-fw\"></i>\r\n Crop\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ImageUploadFormControl.invalid && ImageUploadFormControl.touched)\">\r\n {{getErrorValidation(ImageUploadFormControl.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) \">{{resetError()}}</div>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
291
+ template: "<div class=\"b-control b-image-upload\">\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'\" [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\" aria-required=\"true\">* </span>\r\n\r\n <ejs-tooltip id=\"tooltip\" content='{{ValidationMessage}}' tipPointerPosition='Middle'>\r\n <i class=\"fa fa-info-circle\" data-plugin=\"tooltip\" data-html=\"true\">\r\n </i>\r\n </ejs-tooltip>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n\r\n <div *ngIf=\"options.AllowDropZone\" style=\"max-width:200px !important; max-height: 200px !important;\" class=\"d-inline-flex h-auto w-auto overflow-hidden m-0 {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\" aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\" [maxFileSize]=\"options.FileMaxSizeInMB\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n <ngx-dropzone-label class=\"h-100 m-0\" style=\"max-width: 200px !important;\">\r\n <div class=\"h-100\">\r\n <img [src]=\"ImageSource\" class=\"h-100 w-100\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n\r\n\r\n <ngx-dropzone-image-preview style=\"max-width:200px !important; max-height: 200px !important;\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\" class=\"b-img-preview w-100 h-100 m-0\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n\r\n <div class=\"ImageUploadClassSelector\" *ngIf=\"!options.AllowDropZone\">\r\n <ngx-dropzone-label class=\"h-100 m-0\" *ngIf=\"files.length==0\">\r\n <div style=\"max-width:200px !important; max-height: 200px !important;\" class=\"h-100 file-fake-input\" #element (click)=\"showImageUploader(element)\">\r\n <img [src]=\"ImageSource\" class=\"h-100 w-100\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n\r\n <div style=\"border: none !important; max-width:200px !important; max-height: 200px !important;\" class=\" fileSelector customImageUploadPlacment d-inline-flex h-auto w-auto overflow-hidden m-0 {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\" aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\" [maxFileSize]=\"options.FileMaxSizeInMB\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n\r\n\r\n\r\n <ngx-dropzone-image-preview style=\"max-width:200px !important; max-height: 200px !important;\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\" class=\"b-img-preview w-100 h-100 m-0\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n </div>\r\n\r\n\r\n <div id=\"mdlSample\" class=\"modal fade\" role=\"dialog\" style=\"z-index: 11 !important ;\"\r\n [ngStyle]=\"{'display': mdlSampleIsOpen ? 'block' : 'none', 'opacity': 1}\">\r\n <div class=\"modal-dialog modal-lg\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n {{UtilityService.getResourceValue(\"CropImage\")}}\r\n </h4>\r\n <button type=\"button\" class=\"btn-close\" aria-hidden=\"true\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"openModal(false)\"></button>\r\n </div>\r\n <div class=\"modal-body py-5\">\r\n <div *ngIf=\"imageUrl\">\r\n <angular-cropper #angularCropper [cropperOptions]=\"config\" [imageUrl]=\"imageUrl\">\r\n </angular-cropper>\r\n <img [src]=\"imgwUrl\" />\r\n </div>\r\n <div style=\"text-align:center;\">\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"zoomImage(0.1)\" class=\"btn btn-default\" data-method=\"zoom\" data-option=\"0.1\" title=\"Zoom In\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.zoom(0.1)\">\r\n <span class=\"fa fa-search-plus\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"zoomImage(-0.1)\" class=\"btn btn-default\" data-method=\"zoom\" data-option=\"-0.1\" title=\"Zoom Out\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.zoom(-0.1)\">\r\n <span class=\"fa fa-search-minus\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"moveImage(-10,0)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"-10\" data-second-option=\"0\" title=\"Move Left\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(-10, 0)\" aria-describedby=\"tooltip631939\">\r\n <span class=\"fa fa-arrow-left\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(10,0)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"10\" data-second-option=\"0\" title=\"Move Right\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(10, 0)\">\r\n <span class=\"fa fa-arrow-right\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,-10)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"0\" data-second-option=\"-10\" title=\"Move Up\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(0, -10)\">\r\n <span class=\"fa fa-arrow-up\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,10)\" class=\"btn btn-default\" data-method=\"move\" data-option=\"0\" data-second-option=\"10\" title=\"Move Down\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.move(0, 10)\">\r\n <span class=\"fa fa-arrow-down\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"rotateImage(-45)\" class=\"btn btn-default\" data-method=\"rotate\" data-option=\"-45\" title=\"Rotate Left\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.rotate(-45)\" aria-describedby=\"tooltip236044\">\r\n <span class=\"fa fa-undo-alt\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"rotateImage(45)\" class=\"btn btn-default\" data-method=\"rotate\" data-option=\"45\" title=\"Rotate Right\">\r\n <span class=\"docs-tooltip\" data-toggle=\"tooltip\" title=\"\" data-original-title=\"cropper.rotate(45)\">\r\n <span class=\"fa fa-redo-alt\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\" align=\"right\">\r\n <button type=\"button\" id=\"btnClose\" class=\"btn btn-default\" (click)=\"openModal(false)\">\r\n <i class=\"fa fa-times fa-fw\"></i> {{UtilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" (click)=\"cropImage()\" id=\"btnOK\" class=\"btn btn-success\">\r\n <i class=\"fa fa-check fa-fw\"></i>\r\n {{UtilityService.getResourceValue(\"Crop\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-danger Required-text\" *ngIf=\"(ImageUploadFormControl.invalid && ImageUploadFormControl.touched)\">\r\n {{getErrorValidation(ImageUploadFormControl.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 <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
292
292
  styles: [".e-tip-content{background-color:#afafaf;color:#fff;padding-left:10px;padding-right:10px;padding-top:2px}.my-drop-zone{border:dotted 3px lightgray}.nv-file-over{border:dotted 3px red}.another-file-over-class{border:dotted 3px green}html,body{height:100%}.modal{display:none;position:fixed;z-index:1;padding-top:100px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:#0006}.modal-content{position:relative;background-color:#fefefe;margin:auto;padding:0;border:1px solid #888;width:80%;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;-webkit-animation-name:animatetop;-webkit-animation-duration:.4s;animation-name:animatetop;animation-duration:.4s}@keyframes animatetop{0%{top:-300px;opacity:0}to{top:0;opacity:1}}.close{color:#fff;float:right;font-size:28px;font-weight:bold}.ImageUploadClassSelector img{cursor:pointer}.d-inline-flex.h-auto.m-0.overflow-hidden.w-auto.ng-untouched.ng-pristine.ng-valid{border-radius:40px;border-color:#c7c7c7}\n"]
293
293
  },] }
294
294
  ];
@@ -308,4 +308,4 @@ ImageUploaderComponent.propDecorators = {
308
308
  OnChange: [{ type: Output }],
309
309
  angularCropper: [{ type: ViewChild, args: ['angularCropper', { static: false },] }]
310
310
  };
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1hZ2VVcGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL0ltYWdlVXBsb2FkL0ltYWdlVXBsb2FkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUE4QixnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSS9ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFROUUsTUFBTSxPQUFPLHNCQUFzQjtJQWdDakMsWUFBb0IsSUFBWSxFQUFVLGNBQThCLEVBQXNCLGdCQUFrQyxFQUN2SCx3QkFBNEMsRUFBVSxjQUE4QixFQUNuRix3QkFBa0QsRUFBVSxjQUE4QjtRQUZoRixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQXNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDdkgsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFvQjtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNuRiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBN0JwRyxVQUFLLEdBQVcs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TSxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUNELFNBQVMsQ0FBQyxPQUFlLEVBQUUsT0FBZTtRQUN4QyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3BELENBQUM7SUFDRCxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUdELFNBQVMsQ0FBQyxJQUFhO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7O0FBM1RNLDZDQUFzQixHQUFHLElBQUksQ0FBQzs7WUFQdEMsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLHNwU0FBMkM7O2FBRTVDOzs7WUFmbUUsTUFBTTtZQUVqRSxjQUFjO1lBRHVDLGdCQUFnQix1QkErQ0QsUUFBUTtZQS9DTCxrQkFBa0I7WUFNL0QsY0FBYztZQUF4Qyx3QkFBd0I7WUFDeEIsY0FBYzs7O3dCQVlwQixTQUFTLFNBQUMsV0FBVyxFQUFDLEVBQUMsTUFBTSxFQUFDLEtBQUssRUFBQztvQkFJcEMsS0FBSztzQkFDTCxLQUFLO3VCQUNMLE1BQU07NkJBV04sU0FBUyxTQUFDLGdCQUFnQixFQUFFLEVBQUMsTUFBTSxFQUFDLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3B0aW9uYWwsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgTmdab25lLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgRm9ybUdyb3VwLCBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29udHJvbFV0aWxpdHkgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvQ29udHJvbFV0aWxpdHknO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkZXIsIEZpbGVMaWtlT2JqZWN0IH0gZnJvbSAnbmcyLWZpbGUtdXBsb2FkJztcclxuaW1wb3J0IHsgRmlsZURUTyB9IGZyb20gJy4uLy4uL1NoYXJlZC9Nb2RlbHMvRmlsZURUTyc7XHJcbmltcG9ydCB7IEltYWdlVXBsb2FkT3B0aW9ucyB9IGZyb20gJy4uLy4uL1NoYXJlZC9Nb2RlbHMvSW1hZ2VVcGxvYWRPcHRpb25zJztcclxuaW1wb3J0IHsgQ3JvcHBlckNvbXBvbmVudCB9IGZyb20gJ2FuZ3VsYXItY3JvcHBlcmpzJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IEdsb2JhbFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL0dsb2JhbFNldHRpbmdzLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnQkJTRi1JbWFnZVVwbG9hZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL0ltYWdlVXBsb2FkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9JbWFnZVVwbG9hZC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWFnZVVwbG9hZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgc3RhdGljIGNvbnRyb2xDb250YWluZXJzdGF0aWMgPSBudWxsO1xyXG5cclxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnLHtzdGF0aWM6ZmFsc2V9KSBmaWxlSW5wdXQ6IEVsZW1lbnRSZWY7XHJcbiAgZmlsZXM6IEZpbGVbXSA9IFtdO1xyXG4gIEltYWdlU291cmNlOiBzdHJpbmcgPSBcIi4vc3JjL2Fzc2V0cy9pbWFnZXMvdXBsb2FkaW1nLnBuZ1wiXHJcbiAgaXNTdWJtaXR0ZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBvcHRpb25zOiBJbWFnZVVwbG9hZE9wdGlvbnM7XHJcbiAgQE91dHB1dCgpIE9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBJbWFnZVVwbG9hZEZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgVmFsaWRhdGlvbk1lc3NhZ2UgPSBcIlwiXHJcbiAgdXBsb2FkZXI6IEZpbGVVcGxvYWRlcjtcclxuICBoYXNBbm90aGVyRHJvcFpvbmVPdmVyOiBib29sZWFuO1xyXG4gIEFjY2VwdGVkVHlwZTogc3RyaW5nID0gXCJcIjtcclxuICBBY2NlcHRlZFR5cGVBcnJheTogc3RyaW5nW10gPSBbXTtcclxuICBUb29sVGlwVHlwZUFycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG4gIEZpbGVMaWtlT2JqZWN0OiBGaWxlTGlrZU9iamVjdDtcclxuICBjb250cm9sOiBGb3JtQ29udHJvbDtcclxuICBAVmlld0NoaWxkKCdhbmd1bGFyQ3JvcHBlcicsIHtzdGF0aWM6ZmFsc2V9KSBwdWJsaWMgYW5ndWxhckNyb3BwZXI6IENyb3BwZXJDb21wb25lbnQ7XHJcbiAgaW1nVXJsID0gbnVsbDtcclxuICBjb25maWcgPSBudWxsO1xyXG4gIGltYWdlVXJsID0gXCJcIlxyXG4gIGltZ3dVcmwgPSBcIlwiXHJcbiAgRXZlbnRGaWxlOiBhbnk7XHJcbiAgbWRsU2FtcGxlSXNPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbWFya0FsbEFzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHZhbGlkYXRpb25SdWxlcyA9IFtdO1xyXG4gIHZhbGlkYXRpb25SdWxlc2FzeW5jID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogTmdab25lLCBwcml2YXRlIGNvbnRyb2xVdGlsaXR5OiBDb250cm9sVXRpbGl0eSwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICAgcHVibGljIEltYWdlVXBsYW9kZXJDb250cm9sSG9zdDogRm9ybUdyb3VwRGlyZWN0aXZlLCBwcml2YXRlIFV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlOiBDb250cm9sVmFsaWRhdGlvblNlcnZpY2UsIHByaXZhdGUgZ2xvYmFsU2V0dGluZ3M6IEdsb2JhbFNldHRpbmdzKSB7XHJcbiAgICBJbWFnZVVwbG9hZGVyQ29tcG9uZW50LmNvbnRyb2xDb250YWluZXJzdGF0aWMgPSB0aGlzLmNvbnRyb2xDb250YWluZXI7XHJcbiAgICB0aGlzLnVwbG9hZGVyID0gbmV3IEZpbGVVcGxvYWRlcih7XHJcbiAgICAgIGRpc2FibGVNdWx0aXBhcnQ6IGZhbHNlLCAvLyAnRGlzYWJsZU11bHRpcGFydCcgbXVzdCBiZSAndHJ1ZScgZm9yIGZvcm1hdERhdGFGdW5jdGlvbiB0byBiZSBjYWxsZWQuXHJcbiAgICB9KTtcclxuICAgIHRoaXMuaGFzQW5vdGhlckRyb3Bab25lT3ZlciA9IGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuaXNDcmVhdGVkQmVmb3IgPSBmYWxzZVxyXG5cclxuICAgIGlmICghdGhpcy5vcHRpb25zLlZpZXdUeXBlKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuVmlld1R5cGUgPSB0aGlzLmdsb2JhbFNldHRpbmdzLlZpZXdUeXBlO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuRGVmYXVsdEltYWdlU3JjICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkRlZmF1bHRJbWFnZVNyYyAhPSBcIlwiKVxyXG4gICAgICB0aGlzLkltYWdlU291cmNlID0gdGhpcy5vcHRpb25zLkRlZmF1bHRJbWFnZVNyY1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQWxsb3dJbWFnZUNyb3BwZXIpIHtcclxuICAgICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgICAgYXNwZWN0UmF0aW86IHRoaXMub3B0aW9ucy5JbWFnZUNyb3BwZXJXaWR0aCAvIHRoaXMub3B0aW9ucy5JbWFnZUNyb3BwZXJIZWlnaHQsXHJcbiAgICAgICAgZHJhZ01vZGU6ICdtb3ZlJyxcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cnVlLFxyXG4gICAgICAgIG1vdmFibGU6IHRydWUsXHJcbiAgICAgICAgcm90YXRhYmxlOiB0cnVlLFxyXG4gICAgICAgIHNjYWxhYmxlOiB0cnVlLFxyXG4gICAgICAgIHpvb21hYmxlOiB0cnVlLFxyXG4gICAgICAgIHZpZXdNb2RlOiAxLFxyXG4gICAgICAgIGNoZWNrSW1hZ2VPcmlnaW46IHRydWUsXHJcbiAgICAgICAgbW9kYWw6IHRydWUsXHJcbiAgICAgICAgY2hlY2tDcm9zc09yaWdpbjogZmFsc2UsXHJcbiAgICAgICAgd2lkdGg6IHRoaXMub3B0aW9ucy5JbWFnZUNyb3BwZXJXaWR0aCxcclxuICAgICAgICBoZWlnaHQ6IHRoaXMub3B0aW9ucy5JbWFnZUNyb3BwZXJIZWlnaHQsXHJcbiAgICAgICAgY3JvcEJveFJlc2l6YWJsZTogZmFsc2UsXHJcbiAgICAgICAgYXV0b0Nyb3A6IHRydWVcclxuXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5GaWxlVXBsb2FkQWNjZXB0c1R5cGVzICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5vcHRpb25zLkZpbGVVcGxvYWRBY2NlcHRzVHlwZXNcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuVmFsdWUgIT0gbnVsbCkge1xyXG5cclxuICAgICBcclxuICAgICAgbGV0IGltZ1VSTCA9IHRoaXMub3B0aW9ucy5WYWx1ZVtcImZpbGVVUkxcIl07XHJcbiAgICAgIGlmIChpbWdVUkwgIT0gXCJcIiAmJiBpbWdVUkwgIT0gdW5kZWZpbmVkICYmIGltZ1VSTCAhPSBudWxsKVxyXG4gICAgICAgIHRoaXMuSW1hZ2VTb3VyY2UgPSBpbWdVUkw7XHJcblxyXG4gICAgICBsZXQgZWxlbWVudCA9IHRoaXMub3B0aW9ucy5WYWx1ZTtcclxuICAgICAgdGhpcy5GaWxlTGlrZU9iamVjdCA9IG5ldyBGaWxlTGlrZU9iamVjdCh7XHJcbiAgICAgICAgbmFtZTogZWxlbWVudC5GaWxlTmFtZSxcclxuICAgICAgICBzaXplOiBlbGVtZW50LkZpbGVTaXplSW5NQiAqIDEwMDAgKiAxMDAwLFxyXG4gICAgICAgIHR5cGU6IGVsZW1lbnQuRmlsZVR5cGUsXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMudXBsb2FkZXIuYWRkVG9RdWV1ZShbdGhpcy5GaWxlTGlrZU9iamVjdCBhcyBhbnldKVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkZpbGVVcGxvYWRBY2NlcHRzVHlwZXMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuRmlsZVVwbG9hZEFjY2VwdHNUeXBlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm9wdGlvbnMuRmlsZVVwbG9hZEFjY2VwdHNUeXBlcy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBUeXBlID0gdGhpcy5vcHRpb25zLkZpbGVVcGxvYWRBY2NlcHRzVHlwZXNbaW5kZXhdO1xyXG4gICAgICAgIHRoaXMuQWNjZXB0ZWRUeXBlID0gdGhpcy5BY2NlcHRlZFR5cGUgKyBUeXBlXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5BY2NlcHRlZFR5cGVBcnJheSA9IHRoaXMuQWNjZXB0ZWRUeXBlLnNwbGl0KFwiLFwiKVxyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5BY2NlcHRlZFR5cGVBcnJheS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5BY2NlcHRlZFR5cGVBcnJheVtpbmRleF07XHJcbiAgICAgICAgY29uc3QgVHlwZVRvb2xUaXBlID0gZWxlbWVudC5zcGxpdCgnLycpWzFdO1xyXG4gICAgICAgIHRoaXMuVG9vbFRpcFR5cGVBcnJheS5wdXNoKFR5cGVUb29sVGlwZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5WYWxpZGF0aW9uTWVzc2FnZSA9IHRoaXMuVmFsaWRhdGlvbk1lc3NhZ2UgKyBgIEFsbG93ZWQgZXh0ZW5zdGlvbnMgKCR7dGhpcy5Ub29sVGlwVHlwZUFycmF5fSkgYFxyXG5cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsZU1heFNpemVJbk1CID4gMCkge1xyXG4gICAgICB0aGlzLlZhbGlkYXRpb25NZXNzYWdlID0gdGhpcy5WYWxpZGF0aW9uTWVzc2FnZSArIGAgPGJyIC8+TWF4IEZpbGUgU2l6ZSAke3RoaXMub3B0aW9ucy5GaWxlTWF4U2l6ZUluTUJ9IE1CYFxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5GaWxlVXBsb2FkQWNjZXB0c1R5cGVzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkZpbGVVcGxvYWRBY2NlcHRzVHlwZXMubGVuZ3RoID4gMCkge1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncm91cC5hZGRDb250cm9sKHRoaXMub3B0aW9ucy5OYW1lLCBuZXcgRm9ybUNvbnRyb2woJycpKTtcclxuICAgIHRoaXMuSW1hZ2VVcGxvYWRGb3JtQ29udHJvbCA9IHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5vcHRpb25zLk5hbWVdOyAvLyAgbmV3IEZvcm1Db250cm9sKCcnLHZhbGlkYXRpb25SdWxlcyk7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5WYWx1ZSAhPSBudWxsKVxyXG4gICAgICB0aGlzLmdyb3VwLmdldCh0aGlzLm9wdGlvbnMuTmFtZSkuc2V0VmFsdWUodGhpcy5vcHRpb25zLlZhbHVlKTtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkxhYmVsS2V5ICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkxhYmVsS2V5ICE9IFwiXCIpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5MYWJlbFZhbHVlID0gdGhpcy5VdGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKHRoaXMub3B0aW9ucy5MYWJlbEtleSk7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IFZhbGlkYXRpb25zID0gdGhpcy5vcHRpb25zLkN1c3RvbVZhbGlkYXRpb25cclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IFZhbGlkYXRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IFZhbGlkYXRpb24gPSBWYWxpZGF0aW9uc1tpbmRleF07XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0aW9uLmZ1bmN0aW9uQm9keSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc1JlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5JbWFnZVVwbG9hZEZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy52YWxpZGF0aW9uUnVsZXMpO1xyXG4gICAgdGhpcy5JbWFnZVVwbG9hZEZvcm1Db250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyh0aGlzLnZhbGlkYXRpb25SdWxlc2FzeW5jKTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLkltYWdlVXBsb2FkRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5JbWFnZVVwbGFvZGVyQ29udHJvbEhvc3QubmdTdWJtaXQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICB0aGlzLmdyb3VwLm1hcmtBbGxBc1RvdWNoZWQoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSB0cnVlXHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQXR0cmlidXRlTGlzdCAhPSBudWxsKSB7XHJcbiAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5vcHRpb25zLk5hbWUpO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5vcHRpb25zLkF0dHJpYnV0ZUxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5vcHRpb25zLkF0dHJpYnV0ZUxpc3RbaW5kZXhdLktleSwgdGhpcy5vcHRpb25zLkF0dHJpYnV0ZUxpc3RbaW5kZXhdLnZhbHVlKTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIHNob3dJbWFnZVVwbG9hZGVyKGVsZW1lbnQ6SFRNTEVsZW1lbnQpXHJcbiAge1xyXG4gICAgbGV0IGlucHV0ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpIGFzIEhUTUxFbGVtZW50IDtcclxuICAgIGlucHV0LmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICByZXNldEVycm9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuUmVtb3ZlR2xvYmFsRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIHNob3dHbG9iYWxFcnJvcigpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuc2hvd0dsb2JhbEVycm9yKClcclxuICB9XHJcblxyXG4gIGdldEVycm9yVmFsaWRhdGlvbihFcnJvckxpc3QpIHtcclxuICAgIGlmICh0aGlzLm1hcmtBbGxBc1RvdWNoZWQgJiYgdGhpcy5ncm91cC5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuc2hvd0dsb2JhbEVycm9yKClcclxuICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkID0gZmFsc2VcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sVXRpbGl0eS5nZXRFcnJvclZhbGlkYXRpb25NYXNzYWdlKEVycm9yTGlzdCwgdGhpcy5ncm91cCwgdGhpcy5vcHRpb25zKTtcclxuICB9XHJcblxyXG5cclxuICBvbkZpbGVDaGFuZ2UoZXZlbnQpIHtcclxuICAgIGlmIChldmVudC5yZWplY3RlZEZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgZmlsZSA9IGV2ZW50LnJlamVjdGVkRmlsZXNbMF07XHJcbiAgICAgIGNvbnN0IG1heEZpbGVTaXplID0gdGhpcy5vcHRpb25zLkZpbGVNYXhTaXplSW5NQiAqIDEwMDAgKiAxMDAwO1xyXG4gICAgICBjb25zdCBmaWxlVHlwZSA9IGZpbGUudHlwZTtcclxuICAgICAgaWYgKGZpbGUuc2l6ZSA+IG1heEZpbGVTaXplKSB7XHJcbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLkltYWdlVXBsb2FkRm9ybUNvbnRyb2w7XHJcbiAgICAgICAgZm9ybUNvbnRyb2wuc2V0RXJyb3JzKHsgRmlsZU1heFNpemVJbk1COiB0aGlzLm9wdGlvbnMuRmlsZU1heFNpemVJbk1CICsgJ00nIH0pO1xyXG4gICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLnVwbG9hZGVyLnF1ZXVlID0gW107XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsZVVwbG9hZEFjY2VwdHNUeXBlcyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5GaWxlVXBsb2FkQWNjZXB0c1R5cGVzLmxlbmd0aCA+IDAgJiYgISh0aGlzLkFjY2VwdGVkVHlwZUFycmF5LmluY2x1ZGVzKGZpbGVUeXBlLnRvVXBwZXJDYXNlKCkpIHx8IHRoaXMuQWNjZXB0ZWRUeXBlQXJyYXkuaW5jbHVkZXMoZmlsZVR5cGUudG9Mb3dlckNhc2UoKSkpKSB7XHJcbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLkltYWdlVXBsb2FkRm9ybUNvbnRyb2w7XHJcbiAgICAgICAgZm9ybUNvbnRyb2wuc2V0RXJyb3JzKHsgVG9vbFRpcFR5cGVFcnJvcjogdGhpcy5Ub29sVGlwVHlwZUFycmF5IH0pO1xyXG4gICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLnVwbG9hZGVyLnF1ZXVlID0gW107XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgRmlsZXNBcnJheSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGV2ZW50LmFkZGVkRmlsZXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBldmVudC5hZGRlZEZpbGVzWzBdO1xyXG4gICAgICB0aGlzLkV2ZW50RmlsZSA9IGZpbGVcclxuICAgICAgY29uc3QgbWF4RmlsZVNpemUgPSB0aGlzLm9wdGlvbnMuRmlsZU1heFNpemVJbk1CICogMTAwMCAqIDEwMDA7XHJcbiAgICAgIGlmIChmaWxlKSB7XHJcbiAgICAgICAgY29uc3QgbWF4RmlsZVNpemUgPSB0aGlzLm9wdGlvbnMuRmlsZU1heFNpemVJbk1CICogMTAwMCAqIDEwMDA7XHJcbiAgICAgICAgY29uc3QgZmlsZVR5cGUgPSBmaWxlLnR5cGU7XHJcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IG1heEZpbGVTaXplKSB7XHJcbiAgICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuSW1hZ2VVcGxvYWRGb3JtQ29udHJvbDtcclxuICAgICAgICAgIGZvcm1Db250cm9sLnNldEVycm9ycyh7IEZpbGVNYXhTaXplSW5NQjogdGhpcy5vcHRpb25zLkZpbGVNYXhTaXplSW5NQiArICdNJyB9KTtcclxuICAgICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICAgIHRoaXMudXBsb2FkZXIucXVldWUgPSBbXTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgbGV0IEZpbGVPYmplY3QgPSBmaWxlO1xyXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKEZpbGVPYmplY3QpO1xyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLkFsbG93SW1hZ2VDcm9wcGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VVcmwgPSByZWFkZXIucmVzdWx0LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIHRoaXMub3Blbk1vZGFsKHRydWUpXHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBGaWxlT2JqZWN0OkZpbGVEVE89e1xyXG4gICAgICAgICAgICAgIEZpbGVOYW1lOiBmaWxlLm5hbWUsXHJcbiAgICAgICAgICAgICAgRmlsZVR5cGUgOiBmaWxlLnR5cGUsXHJcbiAgICAgICAgICAgICAgRmlsZUJhc2U2NCA6IHJlYWRlci5yZXN1bHQudG9TdHJpbmcoKS5zcGxpdCgnLCcpWzFdLFxyXG4gICAgICAgICAgICAgIEZpbGVTaXplSW5NQjogKChmaWxlLnNpemUgLyAxMDAwKSAvIDEwMDApLFxyXG4gICAgICAgICAgICAgIE5hbWVXaXRoRXh0ZW5zaW9uOiBmaWxlLm5hbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgIFxyXG4gICAgICAgICAgICBGaWxlc0FycmF5LnB1c2goRmlsZU9iamVjdCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXAuZ2V0KHRoaXMub3B0aW9ucy5OYW1lKS5zZXRWYWx1ZShGaWxlT2JqZWN0KTtcclxuICAgICAgICAgICAgdGhpcy5maWxlcyA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVzLnB1c2goLi4uZXZlbnQuYWRkZWRGaWxlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLk9uQ2hhbmdlLmVtaXQodGhpcy5JbWFnZVVwbG9hZEZvcm1Db250cm9sLnZhbHVlKVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZUZyb21Db250cm9sVmFsdWUoZXZlbnQpIHtcclxuICAgIGxldCBJdGVtTGlzdCA9IHRoaXMuZ3JvdXAuZ2V0KHRoaXMub3B0aW9ucy5OYW1lKS52YWx1ZTtcclxuICAgIHRoaXMuZmlsZXMgPSBbXTtcclxuICAgIEl0ZW1MaXN0ID0gbnVsbFxyXG4gICAgaWYgKCh0aGlzLmZpbGVzLmxlbmd0aCA9PSAwKSAmJiB0aGlzLm9wdGlvbnMuSXNSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLkltYWdlVXBsb2FkRm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICB0aGlzLkltYWdlVXBsb2FkRm9ybUNvbnRyb2wuc2V0RXJyb3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpXHJcbiAgICAgIHRoaXMuSW1hZ2VVcGxvYWRGb3JtQ29udHJvbC5pbnZhbGlkXHJcbiAgICB9XHJcbiAgICB0aGlzLmdyb3VwLmdldCh0aGlzLm9wdGlvbnMuTmFtZSkuc2V0VmFsdWUoSXRlbUxpc3QpO1xyXG4gICAgdGhpcy5PbkNoYW5nZS5lbWl0KHRoaXMuZ3JvdXAuZ2V0KHRoaXMub3B0aW9ucy5OYW1lKS52YWx1ZSlcclxuXHJcbiAgfVxyXG5cclxuICBjcm9wSW1hZ2UoKSB7XHJcbiAgICBsZXQgSW1hZ2VDcm9wcGVyT2JqZWN0ID0gdGhpcy5hbmd1bGFyQ3JvcHBlci5jcm9wcGVyLmdldENyb3BwZWRDYW52YXMoXHJcbiAgICAgIHtcclxuICAgICAgICB3aWR0aDogdGhpcy5vcHRpb25zLkltYWdlQ3JvcHBlcldpZHRoLFxyXG4gICAgICAgIGhlaWdodDogdGhpcy5vcHRpb25zLkltYWdlQ3JvcHBlckhlaWdodCxcclxuICAgICAgICBpbWFnZVNtb290aGluZ0VuYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIGltYWdlU21vb3RoaW5nUXVhbGl0eTogJ2hpZ2gnLFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgSW1hZ2VDcm9wcGVyT2JqZWN0LnRvQmxvYigoYmxvYikgPT4ge1xyXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmdldEJsb2JGaWxlKGJsb2IpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldEJsb2JGaWxlKGJsb2IpIHtcclxuICAgIGxldCBGaWxlc0FycmF5ID0gW107XHJcbiAgICBsZXQgQmxvYkZpbGU7XHJcbiAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgIEJsb2JGaWxlID0gYmxvYjtcclxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKEJsb2JGaWxlKTtcclxuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIGxldCBGaWxlT2JqZWN0IDpGaWxlRFRPPXtcclxuICAgICAgICBGaWxlTmFtZSA6IHRoaXMuRXZlbnRGaWxlLm5hbWUsXHJcbiAgICAgICAgRmlsZVR5cGUgOiB0aGlzLkV2ZW50RmlsZS50eXBlLFxyXG4gICAgICAgIEZpbGVCYXNlNjQgOiByZWFkZXIucmVzdWx0LnRvU3RyaW5nKCkuc3BsaXQoJywnKVsxXSxcclxuICAgICAgICBGaWxlU2l6ZUluTUI6ICgoQmxvYkZpbGUuc2l6ZSAvIDEwMDApIC8gMTAwMCksXHJcbiAgICAgICAgTmFtZVdpdGhFeHRlbnNpb246IHRoaXMuRXZlbnRGaWxlLm5hbWVcclxuICAgICAgfTtcclxuICAgICAgQmxvYkZpbGUubmFtZSA9IHRoaXMuRXZlbnRGaWxlLm5hbWVcclxuICAgICAgXHJcbiAgICAgIEZpbGVzQXJyYXkucHVzaChGaWxlT2JqZWN0KTtcclxuICAgICAgdGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnNldFZhbHVlKEZpbGVPYmplY3QpO1xyXG4gICAgICB0aGlzLmZpbGVzID0gW107XHJcbiAgICAgIHRoaXMuZmlsZXMucHVzaChCbG9iRmlsZSk7XHJcbiAgICAgIHRoaXMub3Blbk1vZGFsKGZhbHNlKTtcclxuXHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHJvdGF0ZUltYWdlKGRlZ3JlZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmFuZ3VsYXJDcm9wcGVyLmNyb3BwZXIucm90YXRlKGRlZ3JlZSlcclxuICB9XHJcbiAgbW92ZUltYWdlKG9mZnNldFg6IG51bWJlciwgb2Zmc2V0WTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmFuZ3VsYXJDcm9wcGVyLmNyb3BwZXIubW92ZShvZmZzZXRYLCBvZmZzZXRZKVxyXG4gIH1cclxuICB6b29tSW1hZ2UocmF0aW86IG51bWJlcikge1xyXG4gICAgdGhpcy5hbmd1bGFyQ3JvcHBlci5jcm9wcGVyLnpvb20ocmF0aW8pXHJcbiAgfVxyXG5cclxuXHJcbiAgb3Blbk1vZGFsKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMubWRsU2FtcGxlSXNPcGVuID0gb3BlbjtcclxuICB9XHJcblxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcblxyXG4gIFJlbW92ZVJlcXVpcmVkVmFsaWRhdGlvbiA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuSW1hZ2VVcGxvYWRGb3JtQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIHRoaXMub3B0aW9ucylcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuXHJcbiAgQWRkUmVxdWlyZWRWYWxpZGF0aW9uID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5BZGRSZXF1aXJlZFZhbGlkYXRpb24odGhpcy5JbWFnZVVwbG9hZEZvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuXHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBSZW1vdmVDdXN0b21WYWxpZGF0aW9uID0gKEN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlQ3VzdG9tVmFsaWRhdGlvbih0aGlzLkltYWdlVXBsb2FkRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCBDdXN0b21WYWxpZGF0aW9uKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIEFkZEN1c3RvbVZhbGlkYXRpb24gPSAoQ3VzdG9tVmFsaWRhdGlvbikgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5BZGRDdXN0b21WYWxpZGF0aW9uKHRoaXMuSW1hZ2VVcGxvYWRGb3JtQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIEN1c3RvbVZhbGlkYXRpb24pXHJcbiAgfVxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgSXNWYWxpZCA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuSXNWYWxpZCh0aGlzLkltYWdlVXBsb2FkRm9ybUNvbnRyb2wpXHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbiJdfQ==
311
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1hZ2VVcGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL0ltYWdlVXBsb2FkL0ltYWdlVXBsb2FkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUE4QixnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSS9ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFROUUsTUFBTSxPQUFPLHNCQUFzQjtJQWdDakMsWUFBb0IsSUFBWSxFQUFVLGNBQThCLEVBQXNCLGdCQUFrQyxFQUN2SCx3QkFBNEMsRUFBUyxjQUE4QixFQUNsRix3QkFBa0QsRUFBVSxjQUE4QjtRQUZoRixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQXNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDdkgsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFvQjtRQUFTLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNsRiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBN0JwRyxVQUFLLEdBQVcs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eEIsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUdELFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBQ0QsU0FBUyxDQUFDLE9BQWUsRUFBRSxPQUFlO1FBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDcEQsQ0FBQztJQUNELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN6QyxDQUFDO0lBR0QsU0FBUyxDQUFDLElBQWE7UUFDckIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQzs7QUExVE0sNkNBQXNCLEdBQUcsSUFBSSxDQUFDOztZQVB0QyxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsaTdTQUEyQzs7YUFFNUM7OztZQWZtRSxNQUFNO1lBRWpFLGNBQWM7WUFEdUMsZ0JBQWdCLHVCQStDRCxRQUFRO1lBL0NMLGtCQUFrQjtZQU0vRCxjQUFjO1lBQXhDLHdCQUF3QjtZQUN4QixjQUFjOzs7d0JBWXBCLFNBQVMsU0FBQyxXQUFXLEVBQUMsRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDO29CQUlwQyxLQUFLO3NCQUNMLEtBQUs7dUJBQ0wsTUFBTTs2QkFXTixTQUFTLFNBQUMsZ0JBQWdCLEVBQUUsRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPcHRpb25hbCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBOZ1pvbmUsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzLCBGb3JtR3JvdXAsIEFic3RyYWN0Q29udHJvbCwgQ29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb250cm9sVXRpbGl0eSB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy9Db250cm9sVXRpbGl0eSc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRlciwgRmlsZUxpa2VPYmplY3QgfSBmcm9tICduZzItZmlsZS11cGxvYWQnO1xyXG5pbXBvcnQgeyBGaWxlRFRPIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9GaWxlRFRPJztcclxuaW1wb3J0IHsgSW1hZ2VVcGxvYWRPcHRpb25zIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9JbWFnZVVwbG9hZE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBDcm9wcGVyQ29tcG9uZW50IH0gZnJvbSAnYW5ndWxhci1jcm9wcGVyanMnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsaWRhdGlvblNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgR2xvYmFsU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvR2xvYmFsU2V0dGluZ3Muc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdCQlNGLUltYWdlVXBsb2FkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vSW1hZ2VVcGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL0ltYWdlVXBsb2FkLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEltYWdlVXBsb2FkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBzdGF0aWMgY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IG51bGw7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcse3N0YXRpYzpmYWxzZX0pIGZpbGVJbnB1dDogRWxlbWVudFJlZjtcclxuICBmaWxlczogRmlsZVtdID0gW107XHJcbiAgSW1hZ2VTb3VyY2U6IHN0cmluZyA9IFwiLi9zcmMvYXNzZXRzL2ltYWdlcy91cGxvYWRpbWcucG5nXCJcclxuICBpc1N1Ym1pdHRlZDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IEltYWdlVXBsb2FkT3B0aW9ucztcclxuICBAT3V0cHV0KCkgT25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEltYWdlVXBsb2FkRm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcclxuICBWYWxpZGF0aW9uTWVzc2FnZSA9IFwiXCJcclxuICB1cGxvYWRlcjogRmlsZVVwbG9hZGVyO1xyXG4gIGhhc0Fub3RoZXJEcm9wWm9uZU92ZXI6IGJvb2xlYW47XHJcbiAgQWNjZXB0ZWRUeXBlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEFjY2VwdGVkVHlwZUFycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG4gIFRvb2xUaXBUeXBlQXJyYXk6IHN0cmluZ1tdID0gW107XHJcbiAgRmlsZUxpa2VPYmplY3Q6IEZpbGVMaWtlT2JqZWN0O1xyXG4gIGNvbnRyb2w6IEZvcm1Db250cm9sO1xyXG4gIEBWaWV3Q2hpbGQoJ2FuZ3VsYXJDcm9wcGVyJywge3N0YXRpYzpmYWxzZX0pIHB1YmxpYyBhbmd1bGFyQ3JvcHBlcjogQ3JvcHBlckNvbXBvbmVudDtcclxuICBpbWdVcmwgPSBudWxsO1xyXG4gIGNvbmZpZyA9IG51bGw7XHJcbiAgaW1hZ2VVcmwgPSBcIlwiXHJcbiAgaW1nd1VybCA9IFwiXCJcclxuICBFdmVudEZpbGU6IGFueTtcclxuICBtZGxTYW1wbGVJc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBtYXJrQWxsQXNUb3VjaGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmFsaWRhdGlvblJ1bGVzID0gW107XHJcbiAgdmFsaWRhdGlvblJ1bGVzYXN5bmMgPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBOZ1pvbmUsIHByaXZhdGUgY29udHJvbFV0aWxpdHk6IENvbnRyb2xVdGlsaXR5LCBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXHJcbiAgICBwdWJsaWMgSW1hZ2VVcGxhb2RlckNvbnRyb2xIb3N0OiBGb3JtR3JvdXBEaXJlY3RpdmUsIHB1YmxpYyBVdGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbnRyb2xWYWxpZGF0aW9uU2VydmljZTogQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLCBwcml2YXRlIGdsb2JhbFNldHRpbmdzOiBHbG9iYWxTZXR0aW5ncykge1xyXG4gICAgSW1hZ2VVcGxvYWRlckNvbXBvbmVudC5jb250cm9sQ29udGFpbmVyc3RhdGljID0gdGhpcy5jb250cm9sQ29udGFpbmVyO1xyXG4gICAgdGhpcy51cGxvYWRlciA9IG5ldyBGaWxlVXBsb2FkZXIoe1xyXG4gICAgICBkaXNhYmxlTXVsdGlwYXJ0OiBmYWxzZSwgLy8gJ0Rpc2FibGVNdWx0aXBhcnQnIG11c3QgYmUgJ3RydWUnIGZvciBmb3JtYXREYXRhRnVuY3Rpb24gdG8gYmUgY2FsbGVkLlxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmhhc0Fub3RoZXJEcm9wWm9uZU92ZXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuaXNDcmVhdGVkQmVmb3IgPSBmYWxzZVxyXG5cclxuICAgIGlmICghdGhpcy5vcHRpb25zLlZpZXdUeXBlKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuVmlld1R5cGUgPSB0aGlzLmdsb2JhbFNldHRpbmdzLlZpZXdUeXBlO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuRGVmYXVsdEltYWdlU3JjICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkRlZmF1bHRJbWFnZVNyYyAhPSBcIlwiKVxyXG4gICAgICB0aGlzLkltYWdlU291cmNlID0gdGhpcy5vcHRpb25zLkRlZmF1bHRJbWFnZVNyY1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQWxsb3dJbWFnZUNyb3BwZXIpIHtcclxuICAgICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgICAgYXNwZWN0UmF0aW86IHRoaXMub3B0aW9ucy5JbWFnZUNyb3BwZXJXaWR0aCAvIHRoaXMub3B0aW9ucy5JbWFnZUNyb3BwZXJIZWlnaHQsXHJcbiAgICAgICAgZHJhZ01vZGU6ICdtb3ZlJyxcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cnVlLFxyXG4gICAgICAgIG1vdmFibGU6IHRydWUsXHJcbiAgICAgICAgcm90YXRhYmxlOiB0cnVlLFxyXG4gICAgICAgIHNjYWxhYmxlOiB0cnVlLFxyXG4gICAgICAgIHpvb21hYmxlOiB0cnVlLFxyXG4gICAgICAgIHZpZXdNb2RlOiAxLFxyXG4gICAgICAgIGNoZWNrSW1hZ2VPcmlnaW46IHRydWUsXHJcbiAgICAgICAgbW9kYWw6IHRydWUsXHJcbiAgICAgICAgY2hlY2tDcm9zc09yaWdpbjogZmFsc2UsXHJcbiAgICAgICAgd2lkdGg6IHRoaXMub3B0aW9ucy5JbWFnZUNyb3BwZXJXaWR0aCxcclxuICAgICAgICBoZWlnaHQ6IHRoaXMub3B0aW9ucy5JbWFnZUNyb3BwZXJIZWlnaHQsXHJcbiAgICAgICAgY3JvcEJveFJlc2l6YWJsZTogZmFsc2UsXHJcbiAgICAgICAgYXV0b0Nyb3A6IHRydWVcclxuXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5GaWxlVXBsb2FkQWNjZXB0c1R5cGVzICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5vcHRpb25zLkZpbGVVcGxvYWRBY2NlcHRzVHlwZXNcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuVmFsdWUgIT0gbnVsbCkge1xyXG5cclxuICAgICBcclxuICAgICAgbGV0IGltZ1VSTCA9IHRoaXMub3B0aW9ucy5WYWx1ZVtcImZpbGVVUkxcIl07XHJcbiAgICAgIGlmIChpbWdVUkwgIT0gXCJcIiAmJiBpbWdVUkwgIT0gdW5kZWZpbmVkICYmIGltZ1VSTCAhPSBudWxsKVxyXG4gICAgICAgIHRoaXMuSW1hZ2VTb3VyY2UgPSBpbWdVUkw7XHJcblxyXG4gICAgICBsZXQgZWxlbWVudCA9IHRoaXMub3B0aW9ucy5WYWx1ZTtcclxuICAgICAgdGhpcy5GaWxlTGlrZU9iamVjdCA9IG5ldyBGaWxlTGlrZU9iamVjdCh7XHJcbiAgICAgICAgbmFtZTogZWxlbWVudC5GaWxlTmFtZSxcclxuICAgICAgICBzaXplOiBlbGVtZW50LkZpbGVTaXplSW5NQiAqIDEwMDAgKiAxMDAwLFxyXG4gICAgICAgIHR5cGU6IGVsZW1lbnQuRmlsZVR5cGUsXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMudXBsb2FkZXIuYWRkVG9RdWV1ZShbdGhpcy5GaWxlTGlrZU9iamVjdCBhcyBhbnldKVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkZpbGVVcGxvYWRBY2NlcHRzVHlwZXMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuRmlsZVVwbG9hZEFjY2VwdHNUeXBlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm9wdGlvbnMuRmlsZVVwbG9hZEFjY2VwdHNUeXBlcy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBUeXBlID0gdGhpcy5vcHRpb25zLkZpbGVVcGxvYWRBY2NlcHRzVHlwZXNbaW5kZXhdO1xyXG4gICAgICAgIHRoaXMuQWNjZXB0ZWRUeXBlID0gdGhpcy5BY2NlcHRlZFR5cGUgKyBUeXBlXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5BY2NlcHRlZFR5cGVBcnJheSA9IHRoaXMuQWNjZXB0ZWRUeXBlLnNwbGl0KFwiLFwiKVxyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5BY2NlcHRlZFR5cGVBcnJheS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5BY2NlcHRlZFR5cGVBcnJheVtpbmRleF07XHJcbiAgICAgICAgY29uc3QgVHlwZVRvb2xUaXBlID0gZWxlbWVudC5zcGxpdCgnLycpWzFdO1xyXG4gICAgICAgIHRoaXMuVG9vbFRpcFR5cGVBcnJheS5wdXNoKFR5cGVUb29sVGlwZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5WYWxpZGF0aW9uTWVzc2FnZSA9IHRoaXMuVmFsaWRhdGlvbk1lc3NhZ2UgKyB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBbGxvd2VkVHlwZXNcIikgKyBgICgke3RoaXMuVG9vbFRpcFR5cGVBcnJheX0pIGBcclxuXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkZpbGVNYXhTaXplSW5NQiA+IDApIHtcclxuICAgICAgdGhpcy5WYWxpZGF0aW9uTWVzc2FnZSA9IHRoaXMuVmFsaWRhdGlvbk1lc3NhZ2UgKyBgIDxiciAvPiAke3RoaXMuVXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkZpbGVNYXhTaXplSW5NQlwiKX0gJHt0aGlzLm9wdGlvbnMuRmlsZU1heFNpemVJbk1CfWBcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsZVVwbG9hZEFjY2VwdHNUeXBlcyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5GaWxlVXBsb2FkQWNjZXB0c1R5cGVzLmxlbmd0aCA+IDApIHtcclxuICAgIH1cclxuICAgIHRoaXMuZ3JvdXAuYWRkQ29udHJvbCh0aGlzLm9wdGlvbnMuTmFtZSwgbmV3IEZvcm1Db250cm9sKCcnKSk7XHJcbiAgICB0aGlzLkltYWdlVXBsb2FkRm9ybUNvbnRyb2wgPSB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMub3B0aW9ucy5OYW1lXTsgLy8gIG5ldyBGb3JtQ29udHJvbCgnJyx2YWxpZGF0aW9uUnVsZXMpO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuVmFsdWUgIT0gbnVsbClcclxuICAgICAgdGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnNldFZhbHVlKHRoaXMub3B0aW9ucy5WYWx1ZSk7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5MYWJlbEtleSAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5MYWJlbEtleSAhPSBcIlwiKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuTGFiZWxWYWx1ZSA9IHRoaXMuVXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSh0aGlzLm9wdGlvbnMuTGFiZWxLZXkpO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQ3VzdG9tVmFsaWRhdGlvbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBWYWxpZGF0aW9ucyA9IHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uXHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBWYWxpZGF0aW9ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBWYWxpZGF0aW9uID0gVmFsaWRhdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuSW1hZ2VVcGxvYWRGb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMudmFsaWRhdGlvblJ1bGVzKTtcclxuICAgIHRoaXMuSW1hZ2VVcGxvYWRGb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnModGhpcy52YWxpZGF0aW9uUnVsZXNhc3luYyk7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLklzRGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5JbWFnZVVwbG9hZEZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuSW1hZ2VVcGxhb2RlckNvbnRyb2xIb3N0Lm5nU3VibWl0LnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgdGhpcy5ncm91cC5tYXJrQWxsQXNUb3VjaGVkKClcclxuICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkID0gdHJ1ZVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkF0dHJpYnV0ZUxpc3QgIT0gbnVsbCkge1xyXG4gICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMub3B0aW9ucy5OYW1lKTtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMub3B0aW9ucy5BdHRyaWJ1dGVMaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMub3B0aW9ucy5BdHRyaWJ1dGVMaXN0W2luZGV4XS5LZXksIHRoaXMub3B0aW9ucy5BdHRyaWJ1dGVMaXN0W2luZGV4XS52YWx1ZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBzaG93SW1hZ2VVcGxvYWRlcihlbGVtZW50OkhUTUxFbGVtZW50KVxyXG4gIHtcclxuICAgIGxldCBpbnB1dCA9IGVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKSBhcyBIVE1MRWxlbWVudCA7XHJcbiAgICBpbnB1dC5jbGljaygpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRFcnJvciA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLlJlbW92ZUdsb2JhbEVycm9yKCk7XHJcbiAgfVxyXG5cclxuICBzaG93R2xvYmFsRXJyb3IoKSB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LnNob3dHbG9iYWxFcnJvcigpXHJcbiAgfVxyXG5cclxuICBnZXRFcnJvclZhbGlkYXRpb24oRXJyb3JMaXN0KSB7XHJcbiAgICBpZiAodGhpcy5tYXJrQWxsQXNUb3VjaGVkICYmIHRoaXMuZ3JvdXAuaW52YWxpZCkge1xyXG4gICAgICB0aGlzLnNob3dHbG9iYWxFcnJvcigpXHJcbiAgICAgIHRoaXMubWFya0FsbEFzVG91Y2hlZCA9IGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbFV0aWxpdHkuZ2V0RXJyb3JWYWxpZGF0aW9uTWFzc2FnZShFcnJvckxpc3QsIHRoaXMuZ3JvdXAsIHRoaXMub3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgb25GaWxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQucmVqZWN0ZWRGaWxlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBldmVudC5yZWplY3RlZEZpbGVzWzBdO1xyXG4gICAgICBjb25zdCBtYXhGaWxlU2l6ZSA9IHRoaXMub3B0aW9ucy5GaWxlTWF4U2l6ZUluTUIgKiAxMDAwICogMTAwMDtcclxuICAgICAgY29uc3QgZmlsZVR5cGUgPSBmaWxlLnR5cGU7XHJcbiAgICAgIGlmIChmaWxlLnNpemUgPiBtYXhGaWxlU2l6ZSkge1xyXG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5JbWFnZVVwbG9hZEZvcm1Db250cm9sO1xyXG4gICAgICAgIGZvcm1Db250cm9sLnNldEVycm9ycyh7IEZpbGVNYXhTaXplSW5NQjogdGhpcy5vcHRpb25zLkZpbGVNYXhTaXplSW5NQiArICdNJyB9KTtcclxuICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy51cGxvYWRlci5xdWV1ZSA9IFtdO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5vcHRpb25zLkZpbGVVcGxvYWRBY2NlcHRzVHlwZXMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuRmlsZVVwbG9hZEFjY2VwdHNUeXBlcy5sZW5ndGggPiAwICYmICEodGhpcy5BY2NlcHRlZFR5cGVBcnJheS5pbmNsdWRlcyhmaWxlVHlwZS50b1VwcGVyQ2FzZSgpKSB8fCB0aGlzLkFjY2VwdGVkVHlwZUFycmF5LmluY2x1ZGVzKGZpbGVUeXBlLnRvTG93ZXJDYXNlKCkpKSkge1xyXG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5JbWFnZVVwbG9hZEZvcm1Db250cm9sO1xyXG4gICAgICAgIGZvcm1Db250cm9sLnNldEVycm9ycyh7IFRvb2xUaXBUeXBlRXJyb3I6IHRoaXMuVG9vbFRpcFR5cGVBcnJheSB9KTtcclxuICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy51cGxvYWRlci5xdWV1ZSA9IFtdO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IEZpbGVzQXJyYXkgPSBbXTtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBldmVudC5hZGRlZEZpbGVzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICBjb25zdCBmaWxlID0gZXZlbnQuYWRkZWRGaWxlc1swXTtcclxuICAgICAgdGhpcy5FdmVudEZpbGUgPSBmaWxlXHJcbiAgICAgIGNvbnN0IG1heEZpbGVTaXplID0gdGhpcy5vcHRpb25zLkZpbGVNYXhTaXplSW5NQiAqIDEwMDAgKiAxMDAwO1xyXG4gICAgICBpZiAoZmlsZSkge1xyXG4gICAgICAgIGNvbnN0IG1heEZpbGVTaXplID0gdGhpcy5vcHRpb25zLkZpbGVNYXhTaXplSW5NQiAqIDEwMDAgKiAxMDAwO1xyXG4gICAgICAgIGNvbnN0IGZpbGVUeXBlID0gZmlsZS50eXBlO1xyXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBtYXhGaWxlU2l6ZSkge1xyXG4gICAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLkltYWdlVXBsb2FkRm9ybUNvbnRyb2w7XHJcbiAgICAgICAgICBmb3JtQ29udHJvbC5zZXRFcnJvcnMoeyBGaWxlTWF4U2l6ZUluTUI6IHRoaXMub3B0aW9ucy5GaWxlTWF4U2l6ZUluTUIgKyAnTScgfSk7XHJcbiAgICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZGVyLnF1ZXVlID0gW107XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgIGxldCBGaWxlT2JqZWN0ID0gZmlsZTtcclxuICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChGaWxlT2JqZWN0KTtcclxuICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5BbGxvd0ltYWdlQ3JvcHBlcikge1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlVXJsID0gcmVhZGVyLnJlc3VsdC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB0aGlzLm9wZW5Nb2RhbCh0cnVlKVxyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgRmlsZU9iamVjdDpGaWxlRFRPPXtcclxuICAgICAgICAgICAgICBGaWxlTmFtZTogZmlsZS5uYW1lLFxyXG4gICAgICAgICAgICAgIEZpbGVUeXBlIDogZmlsZS50eXBlLFxyXG4gICAgICAgICAgICAgIEZpbGVCYXNlNjQgOiByZWFkZXIucmVzdWx0LnRvU3RyaW5nKCkuc3BsaXQoJywnKVsxXSxcclxuICAgICAgICAgICAgICBGaWxlU2l6ZUluTUI6ICgoZmlsZS5zaXplIC8gMTAwMCkgLyAxMDAwKSxcclxuICAgICAgICAgICAgICBOYW1lV2l0aEV4dGVuc2lvbjogZmlsZS5uYW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgRmlsZXNBcnJheS5wdXNoKEZpbGVPYmplY3QpO1xyXG4gICAgICAgICAgICB0aGlzLmdyb3VwLmdldCh0aGlzLm9wdGlvbnMuTmFtZSkuc2V0VmFsdWUoRmlsZU9iamVjdCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZXMgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5maWxlcy5wdXNoKC4uLmV2ZW50LmFkZGVkRmlsZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5PbkNoYW5nZS5lbWl0KHRoaXMuSW1hZ2VVcGxvYWRGb3JtQ29udHJvbC52YWx1ZSlcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVGcm9tQ29udHJvbFZhbHVlKGV2ZW50KSB7XHJcbiAgICBsZXQgSXRlbUxpc3QgPSB0aGlzLmdyb3VwLmdldCh0aGlzLm9wdGlvbnMuTmFtZSkudmFsdWU7XHJcbiAgICB0aGlzLmZpbGVzID0gW107XHJcbiAgICBJdGVtTGlzdCA9IG51bGxcclxuICAgIGlmICgodGhpcy5maWxlcy5sZW5ndGggPT0gMCkgJiYgdGhpcy5vcHRpb25zLklzUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy5JbWFnZVVwbG9hZEZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgdGhpcy5JbWFnZVVwbG9hZEZvcm1Db250cm9sLnNldEVycm9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gICAgICB0aGlzLkltYWdlVXBsb2FkRm9ybUNvbnRyb2wuaW52YWxpZFxyXG4gICAgfVxyXG4gICAgdGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnNldFZhbHVlKEl0ZW1MaXN0KTtcclxuICAgIHRoaXMuT25DaGFuZ2UuZW1pdCh0aGlzLmdyb3VwLmdldCh0aGlzLm9wdGlvbnMuTmFtZSkudmFsdWUpXHJcblxyXG4gIH1cclxuXHJcbiAgY3JvcEltYWdlKCkge1xyXG4gICAgbGV0IEltYWdlQ3JvcHBlck9iamVjdCA9IHRoaXMuYW5ndWxhckNyb3BwZXIuY3JvcHBlci5nZXRDcm9wcGVkQ2FudmFzKFxyXG4gICAgICB7XHJcbiAgICAgICAgd2lkdGg6IHRoaXMub3B0aW9ucy5JbWFnZUNyb3BwZXJXaWR0aCxcclxuICAgICAgICBoZWlnaHQ6IHRoaXMub3B0aW9ucy5JbWFnZUNyb3BwZXJIZWlnaHQsXHJcbiAgICAgICAgaW1hZ2VTbW9vdGhpbmdFbmFibGVkOiBmYWxzZSxcclxuICAgICAgICBpbWFnZVNtb290aGluZ1F1YWxpdHk6ICdoaWdoJyxcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIEltYWdlQ3JvcHBlck9iamVjdC50b0Jsb2IoKGJsb2IpID0+IHtcclxuICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5nZXRCbG9iRmlsZShibG9iKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRCbG9iRmlsZShibG9iKSB7XHJcbiAgICBsZXQgRmlsZXNBcnJheSA9IFtdO1xyXG4gICAgbGV0IEJsb2JGaWxlO1xyXG4gICAgbGV0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICBCbG9iRmlsZSA9IGJsb2I7XHJcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChCbG9iRmlsZSk7XHJcbiAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICBsZXQgRmlsZU9iamVjdCA6RmlsZURUTz17XHJcbiAgICAgICAgRmlsZU5hbWUgOiB0aGlzLkV2ZW50RmlsZS5uYW1lLFxyXG4gICAgICAgIEZpbGVUeXBlIDogdGhpcy5FdmVudEZpbGUudHlwZSxcclxuICAgICAgICBGaWxlQmFzZTY0IDogcmVhZGVyLnJlc3VsdC50b1N0cmluZygpLnNwbGl0KCcsJylbMV0sXHJcbiAgICAgICAgRmlsZVNpemVJbk1COiAoKEJsb2JGaWxlLnNpemUgLyAxMDAwKSAvIDEwMDApLFxyXG4gICAgICAgIE5hbWVXaXRoRXh0ZW5zaW9uOiB0aGlzLkV2ZW50RmlsZS5uYW1lXHJcbiAgICAgIH07XHJcbiAgICAgIEJsb2JGaWxlLm5hbWUgPSB0aGlzLkV2ZW50RmlsZS5uYW1lXHJcbiAgICAgIFxyXG4gICAgICBGaWxlc0FycmF5LnB1c2goRmlsZU9iamVjdCk7XHJcbiAgICAgIHRoaXMuZ3JvdXAuZ2V0KHRoaXMub3B0aW9ucy5OYW1lKS5zZXRWYWx1ZShGaWxlT2JqZWN0KTtcclxuICAgICAgdGhpcy5maWxlcyA9IFtdO1xyXG4gICAgICB0aGlzLmZpbGVzLnB1c2goQmxvYkZpbGUpO1xyXG4gICAgICB0aGlzLm9wZW5Nb2RhbChmYWxzZSk7XHJcblxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICByb3RhdGVJbWFnZShkZWdyZWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5hbmd1bGFyQ3JvcHBlci5jcm9wcGVyLnJvdGF0ZShkZWdyZWUpXHJcbiAgfVxyXG4gIG1vdmVJbWFnZShvZmZzZXRYOiBudW1iZXIsIG9mZnNldFk6IG51bWJlcikge1xyXG4gICAgdGhpcy5hbmd1bGFyQ3JvcHBlci5jcm9wcGVyLm1vdmUob2Zmc2V0WCwgb2Zmc2V0WSlcclxuICB9XHJcbiAgem9vbUltYWdlKHJhdGlvOiBudW1iZXIpIHtcclxuICAgIHRoaXMuYW5ndWxhckNyb3BwZXIuY3JvcHBlci56b29tKHJhdGlvKVxyXG4gIH1cclxuXHJcblxyXG4gIG9wZW5Nb2RhbChvcGVuOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLm1kbFNhbXBsZUlzT3BlbiA9IG9wZW47XHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG5cclxuICBSZW1vdmVSZXF1aXJlZFZhbGlkYXRpb24gPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LlJlbW92ZVJlcXVpcmVkVmFsaWRhdGlvbih0aGlzLkltYWdlVXBsb2FkRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCB0aGlzLm9wdGlvbnMpXHJcbiAgfVxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcblxyXG4gIEFkZFJlcXVpcmVkVmFsaWRhdGlvbiA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuSW1hZ2VVcGxvYWRGb3JtQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIHRoaXMub3B0aW9ucylcclxuICB9XHJcblxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgUmVtb3ZlQ3VzdG9tVmFsaWRhdGlvbiA9IChDdXN0b21WYWxpZGF0aW9uKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LlJlbW92ZUN1c3RvbVZhbGlkYXRpb24odGhpcy5JbWFnZVVwbG9hZEZvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBBZGRDdXN0b21WYWxpZGF0aW9uID0gKEN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkQ3VzdG9tVmFsaWRhdGlvbih0aGlzLkltYWdlVXBsb2FkRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCBDdXN0b21WYWxpZGF0aW9uKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIElzVmFsaWQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LklzVmFsaWQodGhpcy5JbWFnZVVwbG9hZEZvcm1Db250cm9sKVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4iXX0=