kwikid-forms 0.3.5 → 0.3.7

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.
@@ -70,7 +70,7 @@ export class OtherHTMLConfigEditor {
70
70
  </fieldset>
71
71
  </div>
72
72
  </form>
73
- `, isInline: true, styles: [""], components: [{ type: i1.KwikUITextareaComponent, selector: "kwikui-textarea", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "size", "expandable", "properties"], outputs: ["getKeyValue"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
73
+ `, isInline: true, styles: [""], components: [{ type: i1.KwikUITextareaComponent, selector: "kwikui-textarea", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "size", "placeholder", "properties", "validators"], outputs: ["getKeyValue"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
74
74
  __decorate([
75
75
  logMethod
76
76
  ], OtherHTMLConfigEditor.prototype, "ngOnInit", null);
@@ -23,15 +23,27 @@ export class Elements {
23
23
  this.basic = [
24
24
  Object.assign(Object.assign({ elementTitle: "Text", elementType: "text", isElement: true, elementCategory: "basic" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign(Object.assign({}, this.commonProperties), { case: "default" }) }),
25
25
  Object.assign(Object.assign({ elementTitle: "Number", elementType: "number", isElement: true, elementCategory: "basic" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign({}, this.commonProperties) }),
26
- Object.assign(Object.assign({ elementTitle: "Radio", elementType: "radio", isElement: true, elementCategory: "basic" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign(Object.assign({}, this.commonProperties), { orientation: "vertical" }), options: ["2", "3"] }),
26
+ Object.assign(Object.assign({ elementTitle: "Radio", elementType: "radio", isElement: true, elementCategory: "basic" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign(Object.assign({}, this.commonProperties), { orientation: "vertical" }), options: [
27
+ {
28
+ label: "",
29
+ disabled: false,
30
+ description: ""
31
+ }
32
+ ] }),
33
+ Object.assign(Object.assign({ elementTitle: "Dropdown with Search", elementType: "dropdown-with-search", isElement: true, elementCategory: "basic" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign(Object.assign({}, this.commonProperties), { orientation: "vertical" }), options: [
34
+ {
35
+ title: "",
36
+ value: ""
37
+ }
38
+ ] }),
27
39
  Object.assign(Object.assign({ elementTitle: "Checkbox", elementType: "checkbox", isElement: true, elementCategory: "basic" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign({}, this.commonProperties) }),
28
40
  Object.assign(Object.assign({ elementTitle: "Date", elementType: "date", isElement: true, elementCategory: "basic" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign({}, this.commonProperties) }),
29
- Object.assign(Object.assign({ elementTitle: "OTP", elementType: "otp", isElement: true, elementCategory: "basic" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign(Object.assign({}, this.commonProperties), { mask: "****" }) }),
30
- Object.assign(Object.assign({ elementTitle: "Phone", elementType: "phone", isElement: true, elementCategory: "basic" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign(Object.assign({}, this.commonProperties), { mask: "####-######" }) })
41
+ Object.assign(Object.assign({ elementTitle: "OTP", elementType: "otp", isElement: true, elementCategory: "basic" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign(Object.assign({}, this.commonProperties), { mask: "####" }) }),
42
+ Object.assign(Object.assign({ elementTitle: "Phone", elementType: "phone", isElement: true, elementCategory: "basic" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign(Object.assign({}, this.commonProperties), { countryCode: "+91", removeCountryCodeFromValue: true, phoneMaskAfterCountryCode: "##########" }) })
31
43
  ];
32
44
  this.documents = [
33
45
  Object.assign(Object.assign({ elementTitle: "Aadhaar Number", elementType: "aadhaar-number", isElement: true, elementCategory: "document" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign(Object.assign({}, this.commonProperties), { mask: "####-####-####" }) }),
34
- Object.assign(Object.assign({ elementTitle: "PAN Number", elementType: "pan-number", isElement: true, elementCategory: "document" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign(Object.assign({}, this.commonProperties), { case: "upper" }) })
46
+ Object.assign(Object.assign({ elementTitle: "PAN Number", elementType: "text", isElement: true, elementCategory: "document" }, this.commonCore), { validators: Object.assign({ pattern: { key: "IS_PAN_NUMBER" } }, this.commonValidators), properties: Object.assign(Object.assign({}, this.commonProperties), { case: "upper" }) })
35
47
  ];
36
48
  this.others = [
37
49
  {
@@ -40,7 +52,7 @@ export class Elements {
40
52
  isElement: true,
41
53
  elementCategory: "other",
42
54
  key: "",
43
- html: "",
55
+ html: ""
44
56
  },
45
57
  {
46
58
  elementTitle: "Title",
@@ -58,7 +70,7 @@ export class Elements {
58
70
  Object.assign(Object.assign({ elementTitle: "PAN with NSDL", elementType: "pan_with_nsdl", isElement: true, elementCategory: "template" }, this.commonCore), { validators: Object.assign({}, this.commonValidators), properties: Object.assign({}, this.commonProperties) })
59
71
  ];
60
72
  this.elementMapping = {
61
- basic: ["text", "number", "radio", "checkbox", "date", "otp", "phone"],
73
+ basic: ["text", "number", "radio", "dropdown-with-search", "checkbox", "date", "otp", "phone"],
62
74
  documents: ["aadhaar-number", "pan-number"],
63
75
  others: ["html", "title"],
64
76
  templates: [],
@@ -66,4 +78,4 @@ export class Elements {
66
78
  };
67
79
  }
68
80
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL3NoYXJlZC9lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQUFyQjtRQUNFLHFCQUFnQixHQUFHO1lBQ2pCLEdBQUcsRUFBRSxJQUFJO1lBQ1QsU0FBUyxFQUFFLElBQUk7WUFDZixHQUFHLEVBQUUsSUFBSTtZQUNULFNBQVMsRUFBRSxJQUFJO1lBQ2YsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YscUJBQWdCLEdBQUc7WUFDakIsV0FBVyxFQUFFLEVBQUU7WUFDZixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDO1FBQ0YsZUFBVSxHQUFHO1lBQ1gsR0FBRyxFQUFFLEVBQUU7WUFDUCxLQUFLLEVBQUUsRUFBRTtZQUNULFFBQVEsRUFBRSxLQUFLO1lBQ2YsUUFBUSxFQUFFLEVBQUU7WUFDWixPQUFPLEVBQUU7Z0JBQ1AsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLENBQUM7UUFDRixVQUFLLEdBQWU7MENBRWhCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLFdBQVcsRUFBRSxNQUFNLEVBQ25CLFNBQVMsRUFBRSxJQUFJLEVBQ2YsZUFBZSxFQUFFLE9BQU8sSUFDckIsSUFBSSxDQUFDLFVBQVUsS0FDbEIsVUFBVSxvQkFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBRTFCLFVBQVUsa0NBQ0wsSUFBSSxDQUFDLGdCQUFnQixLQUN4QixJQUFJLEVBQUUsU0FBUzswQ0FJakIsWUFBWSxFQUFFLFFBQVEsRUFDdEIsV0FBVyxFQUFFLFFBQVEsRUFDckIsU0FBUyxFQUFFLElBQUksRUFDZixlQUFlLEVBQUUsT0FBTyxJQUNyQixJQUFJLENBQUMsVUFBVSxLQUNsQixVQUFVLG9CQUNMLElBQUksQ0FBQyxnQkFBZ0IsR0FFMUIsVUFBVSxvQkFDTCxJQUFJ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LGVBQWUsRUFBRSxjQUFjLElBQzVCLElBQUksQ0FBQyxVQUFVLEtBQ2xCLFVBQVUsb0JBQ0wsSUFBSSxDQUFDLGdCQUFnQixHQUUxQixVQUFVLG9CQUNMLElBQUksQ0FBQyxnQkFBZ0I7U0FHN0IsQ0FBQztRQUNGLGNBQVMsR0FBZTswQ0FFcEIsWUFBWSxFQUFFLGVBQWUsRUFDN0IsV0FBVyxFQUFFLGVBQWUsRUFDNUIsU0FBUyxFQUFFLElBQUksRUFDZixlQUFlLEVBQUUsVUFBVSxJQUN4QixJQUFJLENBQUMsVUFBVSxLQUNsQixVQUFVLG9CQUNMLElBQUksQ0FBQyxnQkFBZ0IsR0FFMUIsVUFBVSxvQkFDTCxJQUFJLENBQUMsZ0JBQWdCO1NBRzdCLENBQUM7UUFDRixtQkFBYyxHQUFHO1lBQ2YsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO1lBQ3RFLFNBQVMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQztZQUMzQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUMsT0FBTyxDQUFDO1lBQ3hCLFNBQVMsRUFBRSxFQUFFO1lBQ2IsWUFBWSxFQUFFLEVBQUU7U0FDakIsQ0FBQztJQUNKLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFbGVtZW50cyB7XG4gIGNvbW1vblZhbGlkYXRvcnMgPSB7XG4gICAgbWF4OiBudWxsLFxuICAgIG1heExlbmd0aDogbnVsbCxcbiAgICBtaW46IG51bGwsXG4gICAgbWluTGVuZ3RoOiBudWxsLFxuICAgIHJlcXVpcmVkOiB0cnVlXG4gIH07XG4gIGNvbW1vblByb3BlcnRpZXMgPSB7XG4gICAgcGxhY2Vob2xkZXI6IFwiXCIsXG4gICAgcmVhZE9ubHk6IGZhbHNlXG4gIH07XG4gIGNvbW1vbkNvcmUgPSB7XG4gICAga2V5OiBcIlwiLFxuICAgIGxhYmVsOiBcIlwiLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBtZXNzYWdlczogW10sXG4gICAgZGVmYXVsdDoge1xuICAgICAgdmFsdWU6IHRydWVcbiAgICB9XG4gIH07XG4gIGJhc2ljOiBBcnJheTxhbnk+ID0gW1xuICAgIHtcbiAgICAgIGVsZW1lbnRUaXRsZTogXCJUZXh0XCIsXG4gICAgICBlbGVtZW50VHlwZTogXCJ0ZXh0XCIsXG4gICAgICBpc0VsZW1lbnQ6IHRydWUsXG4gICAgICBlbGVtZW50Q2F0ZWdvcnk6IFwiYmFzaWNcIixcbiAgICAgIC4uLnRoaXMuY29tbW9uQ29yZSxcbiAgICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgICAgLi4udGhpcy5jb21tb25WYWxpZGF0b3JzXG4gICAgICB9LFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblByb3BlcnRpZXMsXG4gICAgICAgIGNhc2U6IFwiZGVmYXVsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBlbGVtZW50VGl0bGU6IFwiTnVtYmVyXCIsXG4gICAgICBlbGVtZW50VHlwZTogXCJudW1iZXJcIixcbiAgICAgIGlzRWxlbWVudDogdHJ1ZSxcbiAgICAgIGVsZW1lbnRDYXRlZ29yeTogXCJiYXNpY1wiLFxuICAgICAgLi4udGhpcy5jb21tb25Db3JlLFxuICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblZhbGlkYXRvcnNcbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uUHJvcGVydGllc1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZWxlbWVudFRpdGxlOiBcIlJhZGlvXCIsXG4gICAgICBlbGVtZW50VHlwZTogXCJyYWRpb1wiLFxuICAgICAgaXNFbGVtZW50OiB0cnVlLFxuICAgICAgZWxlbWVudENhdGVnb3J5OiBcImJhc2ljXCIsXG4gICAgICAuLi50aGlzLmNvbW1vbkNvcmUsXG4gICAgICB2YWxpZGF0b3JzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uVmFsaWRhdG9yc1xuICAgICAgfSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgLi4udGhpcy5jb21tb25Qcm9wZXJ0aWVzLFxuICAgICAgICBvcmllbnRhdGlvbjogXCJ2ZXJ0aWNhbFwiXG4gICAgICB9LFxuICAgICAgb3B0aW9uczogW1wiMlwiLCBcIjNcIl1cbiAgICB9LFxuICAgIHtcbiAgICAgIGVsZW1lbnRUaXRsZTogXCJDaGVja2JveFwiLFxuICAgICAgZWxlbWVudFR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgIGlzRWxlbWVudDogdHJ1ZSxcbiAgICAgIGVsZW1lbnRDYXRlZ29yeTogXCJiYXNpY1wiLFxuICAgICAgLi4udGhpcy5jb21tb25Db3JlLFxuICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblZhbGlkYXRvcnNcbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uUHJvcGVydGllc1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZWxlbWVudFRpdGxlOiBcIkRhdGVcIixcbiAgICAgIGVsZW1lbnRUeXBlOiBcImRhdGVcIixcbiAgICAgIGlzRWxlbWVudDogdHJ1ZSxcbiAgICAgIGVsZW1lbnRDYXRlZ29yeTogXCJiYXNpY1wiLFxuICAgICAgLi4udGhpcy5jb21tb25Db3JlLFxuICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblZhbGlkYXRvcnNcbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uUHJvcGVydGllc1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZWxlbWVudFRpdGxlOiBcIk9UUFwiLFxuICAgICAgZWxlbWVudFR5cGU6IFwib3RwXCIsXG4gICAgICBpc0VsZW1lbnQ6IHRydWUsXG4gICAgICBlbGVtZW50Q2F0ZWdvcnk6IFwiYmFzaWNcIixcbiAgICAgIC4uLnRoaXMuY29tbW9uQ29yZSxcbiAgICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgICAgLi4udGhpcy5jb21tb25WYWxpZGF0b3JzXG4gICAgICB9LFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblByb3BlcnRpZXMsXG4gICAgICAgIG1hc2s6IFwiKioqKlwiXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBlbGVtZW50VGl0bGU6IFwiUGhvbmVcIixcbiAgICAgIGVsZW1lbnRUeXBlOiBcInBob25lXCIsXG4gICAgICBpc0VsZW1lbnQ6IHRydWUsXG4gICAgICBlbGVtZW50Q2F0ZWdvcnk6IFwiYmFzaWNcIixcbiAgICAgIC4uLnRoaXMuY29tbW9uQ29yZSxcbiAgICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgICAgLi4udGhpcy5jb21tb25WYWxpZGF0b3JzXG4gICAgICB9LFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblByb3BlcnRpZXMsXG4gICAgICAgIG1hc2s6IFwiIyMjIy0jIyMjIyNcIlxuICAgICAgfVxuICAgIH1cbiAgXTtcbiAgZG9jdW1lbnRzOiBBcnJheTxhbnk+ID0gW1xuICAgIHtcbiAgICAgIGVsZW1lbnRUaXRsZTogXCJBYWRoYWFyIE51bWJlclwiLFxuICAgICAgZWxlbWVudFR5cGU6IFwiYWFkaGFhci1udW1iZXJcIixcbiAgICAgIGlzRWxlbWVudDogdHJ1ZSxcbiAgICAgIGVsZW1lbnRDYXRlZ29yeTogXCJkb2N1bWVudFwiLFxuICAgICAgLi4udGhpcy5jb21tb25Db3JlLFxuICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblZhbGlkYXRvcnNcbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uUHJvcGVydGllcyxcbiAgICAgICAgbWFzazogXCIjIyMjLSMjIyMtIyMjI1wiXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBlbGVtZW50VGl0bGU6IFwiUEFOIE51bWJlclwiLFxuICAgICAgZWxlbWVudFR5cGU6IFwicGFuLW51bWJlclwiLFxuICAgICAgaXNFbGVtZW50OiB0cnVlLFxuICAgICAgZWxlbWVudENhdGVnb3J5OiBcImRvY3VtZW50XCIsXG4gICAgICAuLi50aGlzLmNvbW1vbkNvcmUsXG4gICAgICB2YWxpZGF0b3JzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uVmFsaWRhdG9yc1xuICAgICAgfSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgLi4udGhpcy5jb21tb25Qcm9wZXJ0aWVzLFxuICAgICAgICBjYXNlOiBcInVwcGVyXCJcbiAgICAgIH1cbiAgICB9XG4gIF07XG4gIG90aGVyczogQXJyYXk8YW55PiA9IFtcbiAgICB7XG4gICAgICBlbGVtZW50VGl0bGU6IFwiSFRNTFwiLFxuICAgICAgZWxlbWVudFR5cGU6IFwiaHRtbFwiLFxuICAgICAgaXNFbGVtZW50OiB0cnVlLFxuICAgICAgZWxlbWVudENhdGVnb3J5OiBcIm90aGVyXCIsXG4gICAgICBrZXk6IFwiXCIsXG4gICAgICBodG1sOiBcIlwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZWxlbWVudFRpdGxlOiBcIlRpdGxlXCIsXG4gICAgICBlbGVtZW50VHlwZTogXCJ0aXRsZVwiLFxuICAgICAgaXNFbGVtZW50OiB0cnVlLFxuICAgICAgZWxlbWVudENhdGVnb3J5OiBcIm90aGVyXCIsXG4gICAgICBrZXk6IFwiXCIsXG4gICAgICBsYWJlbDogXCJcIlxuICAgIH1cbiAgXTtcbiAgZGVtb2dyYXBoaWNzOiBBcnJheTxhbnk+ID0gW1xuICAgIHtcbiAgICAgIGVsZW1lbnRUaXRsZTogXCJHZW5kZXJcIixcbiAgICAgIGVsZW1lbnRUeXBlOiBcImdlbmRlclwiLFxuICAgICAgaXNFbGVtZW50OiB0cnVlLFxuICAgICAgZWxlbWVudENhdGVnb3J5OiBcImRlbW9ncmFwaGljc1wiLFxuICAgICAgLi4udGhpcy5jb21tb25Db3JlLFxuICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblZhbGlkYXRvcnNcbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uUHJvcGVydGllc1xuICAgICAgfVxuICAgIH1cbiAgXTtcbiAgdGVtcGxhdGVzOiBBcnJheTxhbnk+ID0gW1xuICAgIHtcbiAgICAgIGVsZW1lbnRUaXRsZTogXCJQQU4gd2l0aCBOU0RMXCIsXG4gICAgICBlbGVtZW50VHlwZTogXCJwYW5fd2l0aF9uc2RsXCIsXG4gICAgICBpc0VsZW1lbnQ6IHRydWUsXG4gICAgICBlbGVtZW50Q2F0ZWdvcnk6IFwidGVtcGxhdGVcIixcbiAgICAgIC4uLnRoaXMuY29tbW9uQ29yZSxcbiAgICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgICAgLi4udGhpcy5jb21tb25WYWxpZGF0b3JzXG4gICAgICB9LFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblByb3BlcnRpZXNcbiAgICAgIH1cbiAgICB9XG4gIF07XG4gIGVsZW1lbnRNYXBwaW5nID0ge1xuICAgIGJhc2ljOiBbXCJ0ZXh0XCIsIFwibnVtYmVyXCIsIFwicmFkaW9cIiwgXCJjaGVja2JveFwiLCBcImRhdGVcIiwgXCJvdHBcIiwgXCJwaG9uZVwiXSxcbiAgICBkb2N1bWVudHM6IFtcImFhZGhhYXItbnVtYmVyXCIsIFwicGFuLW51bWJlclwiXSxcbiAgICBvdGhlcnM6IFtcImh0bWxcIixcInRpdGxlXCJdLFxuICAgIHRlbXBsYXRlczogW10sXG4gICAgZGVtb2dyYXBoaWNzOiBbXVxuICB9O1xufVxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL3NoYXJlZC9lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQUFyQjtRQUNFLHFCQUFnQixHQUFHO1lBQ2pCLEdBQUcsRUFBRSxJQUFJO1lBQ1QsU0FBUyxFQUFFLElBQUk7WUFDZixHQUFHLEVBQUUsSUFBSTtZQUNULFNBQVMsRUFBRSxJQUFJO1lBQ2YsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YscUJBQWdCLEdBQUc7WUFDakIsV0FBVyxFQUFFLEVBQUU7WUFDZixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDO1FBQ0YsZUFBVSxHQUFHO1lBQ1gsR0FBRyxFQUFFLEVBQUU7WUFDUCxLQUFLLEVBQUUsRUFBRTtZQUNULFFBQVEsRUFBRSxLQUFLO1lBQ2YsUUFBUSxFQUFFLEVBQUU7WUFDWixPQUFPLEVBQUU7Z0JBQ1AsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLENBQUM7UUFDRixVQUFLLEdBQWU7MENBRWhCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLFdBQVcsRUFBRSxNQUFNLEVBQ25CLFNBQVMsRUFBRSxJQUFJLEVBQ2YsZUFBZSxFQUFFLE9BQU8sSUFDckIsSUFBSSxDQUFDLFVBQVUsS0FDbEIsVUFBVSxvQkFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBRTFCLFVBQVUsa0NBQ0wsSUFBSSxDQUFDLGdCQUFnQixLQUN4QixJQUFJLEVBQUUsU0FBUzswQ0FJakIsWUFBWSxFQUFFLFFBQVEsRUFDdEIsV0FBVyxFQUFFLFFBQVEsRUFDckIsU0FBUyxFQUFFLElBQUksRUFDZixlQUFlLEVBQUUsT0FBTyxJQUNyQixJQUFJLENBQUMsVUFBVSxLQUNsQixVQUFVLG9CQUNMLElBQUksQ0FBQyxnQkFBZ0IsR0FFMUIsVUFBVSxvQkFDTCxJQUFJ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QU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUM7WUFDekIsU0FBUyxFQUFFLEVBQUU7WUFDYixZQUFZLEVBQUUsRUFBRTtTQUNqQixDQUFDO0lBQ0osQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEVsZW1lbnRzIHtcbiAgY29tbW9uVmFsaWRhdG9ycyA9IHtcbiAgICBtYXg6IG51bGwsXG4gICAgbWF4TGVuZ3RoOiBudWxsLFxuICAgIG1pbjogbnVsbCxcbiAgICBtaW5MZW5ndGg6IG51bGwsXG4gICAgcmVxdWlyZWQ6IHRydWVcbiAgfTtcbiAgY29tbW9uUHJvcGVydGllcyA9IHtcbiAgICBwbGFjZWhvbGRlcjogXCJcIixcbiAgICByZWFkT25seTogZmFsc2VcbiAgfTtcbiAgY29tbW9uQ29yZSA9IHtcbiAgICBrZXk6IFwiXCIsXG4gICAgbGFiZWw6IFwiXCIsXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIG1lc3NhZ2VzOiBbXSxcbiAgICBkZWZhdWx0OiB7XG4gICAgICB2YWx1ZTogdHJ1ZVxuICAgIH1cbiAgfTtcbiAgYmFzaWM6IEFycmF5PGFueT4gPSBbXG4gICAge1xuICAgICAgZWxlbWVudFRpdGxlOiBcIlRleHRcIixcbiAgICAgIGVsZW1lbnRUeXBlOiBcInRleHRcIixcbiAgICAgIGlzRWxlbWVudDogdHJ1ZSxcbiAgICAgIGVsZW1lbnRDYXRlZ29yeTogXCJiYXNpY1wiLFxuICAgICAgLi4udGhpcy5jb21tb25Db3JlLFxuICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblZhbGlkYXRvcnNcbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uUHJvcGVydGllcyxcbiAgICAgICAgY2FzZTogXCJkZWZhdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGVsZW1lbnRUaXRsZTogXCJOdW1iZXJcIixcbiAgICAgIGVsZW1lbnRUeXBlOiBcIm51bWJlclwiLFxuICAgICAgaXNFbGVtZW50OiB0cnVlLFxuICAgICAgZWxlbWVudENhdGVnb3J5OiBcImJhc2ljXCIsXG4gICAgICAuLi50aGlzLmNvbW1vbkNvcmUsXG4gICAgICB2YWxpZGF0b3JzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uVmFsaWRhdG9yc1xuICAgICAgfSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgLi4udGhpcy5jb21tb25Qcm9wZXJ0aWVzXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBlbGVtZW50VGl0bGU6IFwiUmFkaW9cIixcbiAgICAgIGVsZW1lbnRUeXBlOiBcInJhZGlvXCIsXG4gICAgICBpc0VsZW1lbnQ6IHRydWUsXG4gICAgICBlbGVtZW50Q2F0ZWdvcnk6IFwiYmFzaWNcIixcbiAgICAgIC4uLnRoaXMuY29tbW9uQ29yZSxcbiAgICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgICAgLi4udGhpcy5jb21tb25WYWxpZGF0b3JzXG4gICAgICB9LFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblByb3BlcnRpZXMsXG4gICAgICAgIG9yaWVudGF0aW9uOiBcInZlcnRpY2FsXCJcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogXCJcIixcbiAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgICAgZGVzY3JpcHRpb246IFwiXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAge1xuICAgICAgZWxlbWVudFRpdGxlOiBcIkRyb3Bkb3duIHdpdGggU2VhcmNoXCIsXG4gICAgICBlbGVtZW50VHlwZTogXCJkcm9wZG93bi13aXRoLXNlYXJjaFwiLFxuICAgICAgaXNFbGVtZW50OiB0cnVlLFxuICAgICAgZWxlbWVudENhdGVnb3J5OiBcImJhc2ljXCIsXG4gICAgICAuLi50aGlzLmNvbW1vbkNvcmUsXG4gICAgICB2YWxpZGF0b3JzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uVmFsaWRhdG9yc1xuICAgICAgfSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgLi4udGhpcy5jb21tb25Qcm9wZXJ0aWVzLFxuICAgICAgICBvcmllbnRhdGlvbjogXCJ2ZXJ0aWNhbFwiXG4gICAgICB9LFxuICAgICAgb3B0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6IFwiXCIsXG4gICAgICAgICAgdmFsdWU6IFwiXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAge1xuICAgICAgZWxlbWVudFRpdGxlOiBcIkNoZWNrYm94XCIsXG4gICAgICBlbGVtZW50VHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgaXNFbGVtZW50OiB0cnVlLFxuICAgICAgZWxlbWVudENhdGVnb3J5OiBcImJhc2ljXCIsXG4gICAgICAuLi50aGlzLmNvbW1vbkNvcmUsXG4gICAgICB2YWxpZGF0b3JzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uVmFsaWRhdG9yc1xuICAgICAgfSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgLi4udGhpcy5jb21tb25Qcm9wZXJ0aWVzXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBlbGVtZW50VGl0bGU6IFwiRGF0ZVwiLFxuICAgICAgZWxlbWVudFR5cGU6IFwiZGF0ZVwiLFxuICAgICAgaXNFbGVtZW50OiB0cnVlLFxuICAgICAgZWxlbWVudENhdGVnb3J5OiBcImJhc2ljXCIsXG4gICAgICAuLi50aGlzLmNvbW1vbkNvcmUsXG4gICAgICB2YWxpZGF0b3JzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uVmFsaWRhdG9yc1xuICAgICAgfSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgLi4udGhpcy5jb21tb25Qcm9wZXJ0aWVzXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBlbGVtZW50VGl0bGU6IFwiT1RQXCIsXG4gICAgICBlbGVtZW50VHlwZTogXCJvdHBcIixcbiAgICAgIGlzRWxlbWVudDogdHJ1ZSxcbiAgICAgIGVsZW1lbnRDYXRlZ29yeTogXCJiYXNpY1wiLFxuICAgICAgLi4udGhpcy5jb21tb25Db3JlLFxuICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblZhbGlkYXRvcnNcbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uUHJvcGVydGllcyxcbiAgICAgICAgbWFzazogXCIjIyMjXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGVsZW1lbnRUaXRsZTogXCJQaG9uZVwiLFxuICAgICAgZWxlbWVudFR5cGU6IFwicGhvbmVcIixcbiAgICAgIGlzRWxlbWVudDogdHJ1ZSxcbiAgICAgIGVsZW1lbnRDYXRlZ29yeTogXCJiYXNpY1wiLFxuICAgICAgLi4udGhpcy5jb21tb25Db3JlLFxuICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblZhbGlkYXRvcnNcbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uUHJvcGVydGllcyxcbiAgICAgICAgY291bnRyeUNvZGU6IFwiKzkxXCIsXG4gICAgICAgIHJlbW92ZUNvdW50cnlDb2RlRnJvbVZhbHVlOiB0cnVlLFxuICAgICAgICBwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlOiBcIiMjIyMjIyMjIyNcIlxuICAgICAgfVxuICAgIH1cbiAgXTtcbiAgZG9jdW1lbnRzOiBBcnJheTxhbnk+ID0gW1xuICAgIHtcbiAgICAgIGVsZW1lbnRUaXRsZTogXCJBYWRoYWFyIE51bWJlclwiLFxuICAgICAgZWxlbWVudFR5cGU6IFwiYWFkaGFhci1udW1iZXJcIixcbiAgICAgIGlzRWxlbWVudDogdHJ1ZSxcbiAgICAgIGVsZW1lbnRDYXRlZ29yeTogXCJkb2N1bWVudFwiLFxuICAgICAgLi4udGhpcy5jb21tb25Db3JlLFxuICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblZhbGlkYXRvcnNcbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uUHJvcGVydGllcyxcbiAgICAgICAgbWFzazogXCIjIyMjLSMjIyMtIyMjI1wiXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBlbGVtZW50VGl0bGU6IFwiUEFOIE51bWJlclwiLFxuICAgICAgZWxlbWVudFR5cGU6IFwidGV4dFwiLFxuICAgICAgaXNFbGVtZW50OiB0cnVlLFxuICAgICAgZWxlbWVudENhdGVnb3J5OiBcImRvY3VtZW50XCIsXG4gICAgICAuLi50aGlzLmNvbW1vbkNvcmUsXG4gICAgICB2YWxpZGF0b3JzOiB7XG4gICAgICAgIHBhdHRlcm46IHsga2V5OiBcIklTX1BBTl9OVU1CRVJcIiB9LFxuICAgICAgICAuLi50aGlzLmNvbW1vblZhbGlkYXRvcnNcbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uUHJvcGVydGllcyxcbiAgICAgICAgY2FzZTogXCJ1cHBlclwiXG4gICAgICB9XG4gICAgfVxuICBdO1xuICBvdGhlcnM6IEFycmF5PGFueT4gPSBbXG4gICAge1xuICAgICAgZWxlbWVudFRpdGxlOiBcIkhUTUxcIixcbiAgICAgIGVsZW1lbnRUeXBlOiBcImh0bWxcIixcbiAgICAgIGlzRWxlbWVudDogdHJ1ZSxcbiAgICAgIGVsZW1lbnRDYXRlZ29yeTogXCJvdGhlclwiLFxuICAgICAga2V5OiBcIlwiLFxuICAgICAgaHRtbDogXCJcIlxuICAgIH0sXG4gICAge1xuICAgICAgZWxlbWVudFRpdGxlOiBcIlRpdGxlXCIsXG4gICAgICBlbGVtZW50VHlwZTogXCJ0aXRsZVwiLFxuICAgICAgaXNFbGVtZW50OiB0cnVlLFxuICAgICAgZWxlbWVudENhdGVnb3J5OiBcIm90aGVyXCIsXG4gICAgICBrZXk6IFwiXCIsXG4gICAgICBsYWJlbDogXCJcIlxuICAgIH1cbiAgXTtcbiAgZGVtb2dyYXBoaWNzOiBBcnJheTxhbnk+ID0gW1xuICAgIHtcbiAgICAgIGVsZW1lbnRUaXRsZTogXCJHZW5kZXJcIixcbiAgICAgIGVsZW1lbnRUeXBlOiBcImdlbmRlclwiLFxuICAgICAgaXNFbGVtZW50OiB0cnVlLFxuICAgICAgZWxlbWVudENhdGVnb3J5OiBcImRlbW9ncmFwaGljc1wiLFxuICAgICAgLi4udGhpcy5jb21tb25Db3JlLFxuICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblZhbGlkYXRvcnNcbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLnRoaXMuY29tbW9uUHJvcGVydGllc1xuICAgICAgfVxuICAgIH1cbiAgXTtcbiAgdGVtcGxhdGVzOiBBcnJheTxhbnk+ID0gW1xuICAgIHtcbiAgICAgIGVsZW1lbnRUaXRsZTogXCJQQU4gd2l0aCBOU0RMXCIsXG4gICAgICBlbGVtZW50VHlwZTogXCJwYW5fd2l0aF9uc2RsXCIsXG4gICAgICBpc0VsZW1lbnQ6IHRydWUsXG4gICAgICBlbGVtZW50Q2F0ZWdvcnk6IFwidGVtcGxhdGVcIixcbiAgICAgIC4uLnRoaXMuY29tbW9uQ29yZSxcbiAgICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgICAgLi4udGhpcy5jb21tb25WYWxpZGF0b3JzXG4gICAgICB9LFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAuLi50aGlzLmNvbW1vblByb3BlcnRpZXNcbiAgICAgIH1cbiAgICB9XG4gIF07XG4gIGVsZW1lbnRNYXBwaW5nID0ge1xuICAgIGJhc2ljOiBbXCJ0ZXh0XCIsIFwibnVtYmVyXCIsIFwicmFkaW9cIiwgXCJkcm9wZG93bi13aXRoLXNlYXJjaFwiLCBcImNoZWNrYm94XCIsIFwiZGF0ZVwiLCBcIm90cFwiLCBcInBob25lXCJdLFxuICAgIGRvY3VtZW50czogW1wiYWFkaGFhci1udW1iZXJcIiwgXCJwYW4tbnVtYmVyXCJdLFxuICAgIG90aGVyczogW1wiaHRtbFwiLCBcInRpdGxlXCJdLFxuICAgIHRlbXBsYXRlczogW10sXG4gICAgZGVtb2dyYXBoaWNzOiBbXVxuICB9O1xufVxuIl19
@@ -99,6 +99,7 @@ export class Converter {
99
99
  convertFormConfig(formConfig) {
100
100
  const updateOnFieldType = (field) => {
101
101
  const formatFieldTypeHtml = (field) => {
102
+ field = this.setFieldKeyValue(field, "hidden", false);
102
103
  field = this.setFieldKeyValue(field, "isFormElement", false);
103
104
  return field;
104
105
  };
@@ -108,11 +109,18 @@ export class Converter {
108
109
  return field;
109
110
  };
110
111
  const formatFieldTypeText = (field) => {
112
+ field = this.setFieldKeyValue(field, "hidden", false);
111
113
  field = this.setFieldKeyValue(field, "isFormElement", true);
112
114
  field.properties = this.setMissingFieldKeyValue(field.properties, "case", "default");
113
115
  return field;
114
116
  };
117
+ const formatFieldTypeTextarea = (field) => {
118
+ field = this.setFieldKeyValue(field, "hidden", false);
119
+ field = this.setFieldKeyValue(field, "isFormElement", true);
120
+ return field;
121
+ };
115
122
  const formatFieldTypeCheckbox = (field) => {
123
+ field = this.setFieldKeyValue(field, "hidden", false);
116
124
  field = this.setFieldKeyValue(field, "isFormElement", true);
117
125
  return field;
118
126
  };
@@ -188,6 +196,7 @@ export class Converter {
188
196
  return field;
189
197
  };
190
198
  const formatFieldTypePhone = (field) => {
199
+ field = this.setFieldKeyValue(field, "hidden", false);
191
200
  field = this.setFieldKeyValue(field, "isFormElement", true);
192
201
  return field;
193
202
  };
@@ -227,6 +236,7 @@ export class Converter {
227
236
  return field;
228
237
  };
229
238
  const formatFieldTypeSearchText = (field) => {
239
+ field = this.setFieldKeyValue(field, "hidden", false);
230
240
  field = this.setFieldKeyValue(field, "isFormElement", true);
231
241
  if (checkObjectKeyExists(field, "type")) {
232
242
  if (field.type === "search-text") {
@@ -236,6 +246,7 @@ export class Converter {
236
246
  return field;
237
247
  };
238
248
  const formatFieldTypeDropdownWithSearch = (field) => {
249
+ field = this.setFieldKeyValue(field, "hidden", false);
239
250
  field = this.setFieldKeyValue(field, "isFormElement", true);
240
251
  return field;
241
252
  };
@@ -306,6 +317,9 @@ export class Converter {
306
317
  case EFieldType.TEXT:
307
318
  field = formatFieldTypeText(field);
308
319
  break;
320
+ case EFieldType.TEXTAREA:
321
+ field = formatFieldTypeTextarea(field);
322
+ break;
309
323
  case EFieldType.CHECKBOX:
310
324
  field = formatFieldTypeCheckbox(field);
311
325
  break;
@@ -723,4 +737,4 @@ __decorate([
723
737
  __decorate([
724
738
  logMethod
725
739
  ], Converter.prototype, "convertFormConfig", null);
726
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWNvbnZlcnRlci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9jb25maWctY29udmVydGVyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULGtCQUFrQixFQUNsQixvQkFBb0IsRUFDckIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakYsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFckcsTUFBTSxPQUFPLFNBQVM7SUFBdEI7UUFDRSxrQkFBYSxHQUFHLENBQUMsVUFBZSxFQUFTLEVBQUU7WUFDekMsSUFBSSxNQUFhLENBQUM7WUFFbEIsSUFBSSxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLEVBQUU7Z0JBQ2pELE1BQU0sR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQzthQUN0QztpQkFBTTtnQkFDTCxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQzthQUM1QjtZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQztRQUVGLDRCQUF1QixHQUFHLENBQUMsS0FBVSxFQUFFLEdBQVcsRUFBRSxLQUFVLEVBQU8sRUFBRTtZQUNyRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ3BCO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUM7UUFFRixxQkFBZ0IsR0FBRyxDQUFDLEtB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QUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQzNDO2FBQ0Y7WUFFRCxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFFRixJQUFJLE1BQU0sR0FBVSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5ELElBQUksV0FBVyxHQUFRLEVBQUUsQ0FBQztRQUUxQixLQUFLLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRTtZQUN4QixLQUFLLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFakMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUvQixXQUFXLEdBQUcscUJBQXFCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXhELEtBQUssR0FBRyw2QkFBNkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU3QyxLQUFLLEdBQUcsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFMUMsS0FBSyxHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXRDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztRQUVELFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFekQsVUFBVSxHQUFHLGFBQWEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFL0MsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGO0FBOTVCQztJQURDLFNBQVM7OERBV1Q7QUFHRDtJQURDLFNBQVM7MkRBd0VUO0FBR0Q7SUFEQyxTQUFTO2tEQXUwQlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUdWlEYXkgfSBmcm9tIFwiQHRhaWdhLXVpL2Nka1wiO1xuaW1wb3J0IHtcbiAgY2hlY2tPYmplY3RLZXlFeGlzdHMsXG4gIGlzRW1wdHlWYWx1ZSxcbiAgaXNOb3RFbXB0eVZhbHVlLFxuICBsb2dNZXRob2QsXG4gIHNldE1pc3NpbmdLZXlWYWx1ZSxcbiAgc2V0VmFsdWVUb09iamVjdFBhdGhcbn0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBFRmllbGRUeXBlIH0gZnJvbSBcIi4vZm9ybS12aWV3L2RlZmluaXRpb25zL2Zvcm0tdmlldy5maWVsZHMuZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9Ld2lrVUlGb3JtYXQgfSBmcm9tIFwiLi9mb3JtLXZpZXcvaGVscGVycy9mb3JtLXZpZXcuZmllbGRzLmhlbHBlclwiO1xuXG5leHBvcnQgY2xhc3MgQ29udmVydGVyIHtcbiAgZ2V0Rm9ybUZpZWxkcyA9IChmb3JtQ29uZmlnOiBhbnkpOiBhbnlbXSA9PiB7XG4gICAgbGV0IGZpZWxkczogYW55W107XG5cbiAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybUNvbmZpZywgXCJtdWx0aUZvcm1cIikpIHtcbiAgICAgIGZpZWxkcyA9IGZvcm1Db25maWcubXVsdGlGb3JtLmZpZWxkcztcbiAgICB9IGVsc2Uge1xuICAgICAgZmllbGRzID0gZm9ybUNvbmZpZy5maWVsZHM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpZWxkcztcbiAgfTtcblxuICBzZXRNaXNzaW5nRmllbGRLZXlWYWx1ZSA9IChmaWVsZDogYW55LCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IGFueSA9PiB7XG4gICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwga2V5KSkge1xuICAgICAgZmllbGRba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gZmllbGQ7XG4gIH07XG5cbiAgc2V0RmllbGRLZXlWYWx1ZSA9IChmaWVsZDogYW55LCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IGFueSA9PiB7XG4gICAgZmllbGRba2V5XSA9IHZhbHVlO1xuXG4gICAgcmV0dXJuIGZpZWxkO1xuICB9O1xuXG4gIHJlbW92ZUZpZWxkS2V5ID0gKGZpZWxkOiBhbnksIGtleTogc3RyaW5nKTogYW55ID0+IHtcbiAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIGtleSkpIHtcbiAgICAgIGRlbGV0ZSBmaWVsZFtrZXldO1xuICAgIH1cblxuICAgIHJldHVybiBmaWVsZDtcbiAgfTtcblxuICBAbG9nTWV0aG9kXG4gIHVwZGF0ZUZvcm1Db25maWdNaXNjZWxsYW5lb3VzKGZvcm1Db25maWc6IGFueSwgYXJnczogYW55KTogYW55IHtcbiAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoYXJncywgXCJmb3Jtc0xpc3RMZW5ndGhcIikpIHtcbiAgICAgIGZvcm1Db25maWcgPSBzZXRWYWx1ZVRvT2JqZWN0UGF0aChcbiAgICAgICAgZm9ybUNvbmZpZyxcbiAgICAgICAgXCJmb3Jtc0xpc3RMZW5ndGhcIixcbiAgICAgICAgYXJncy5mb3Jtc0xpc3RMZW5ndGhcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1Db25maWc7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIHVwZGF0ZUZvcm1Db25maWdQcm9wZXJ0aWVzKGZvcm1Db25maWc6IGFueSk6IGFueSB7XG4gICAgY29uc3QgZm9ybVZpZXdQcm9wZXJ0aWVzID0ge1xuICAgICAgaGVhZGVyOiB7XG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICBsYWJlbDogZm9ybUNvbmZpZy50aXRsZVxuICAgICAgICB9LFxuICAgICAgICBzdGVwczoge1xuICAgICAgICAgIGhpZGRlbjogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGZvb3Rlcjoge1xuICAgICAgICB2aWV3Rm9ybXNCdXR0b246IHtcbiAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiBcIlZpZXcgRm9ybXNcIlxuICAgICAgICB9LFxuICAgICAgICBzYXZlQnV0dG9uOiB7XG4gICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICBsYWJlbDogXCJTYXZlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybUNvbmZpZywgXCJwcm9wZXJ0aWVzXCIpKSB7XG4gICAgICBjb25zdCBoZWFkZXJUaXRsZUhpZGRlbiA9XG4gICAgICAgIGZvcm1Db25maWcucHJvcGVydGllcy5oZWFkZXI/LnRpdGxlPy5oaWRkZW4gPz9cbiAgICAgICAgZm9ybVZpZXdQcm9wZXJ0aWVzLmhlYWRlci50aXRsZS5oaWRkZW47XG4gICAgICBjb25zdCBoZWFkZXJUaXRsZUxhYmVsID1cbiAgICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzLmhlYWRlcj8udGl0bGU/LmxhYmVsID8/IGZvcm1Db25maWcudGl0bGU7XG4gICAgICBjb25zdCBoZWFkZXJTdGVwc0hpZGRlbiA9XG4gICAgICAgIGZvcm1Db25maWcucHJvcGVydGllcy5oZWFkZXI/LnN0ZXBzPy5oaWRkZW4gPz9cbiAgICAgICAgZm9ybVZpZXdQcm9wZXJ0aWVzLmhlYWRlci5zdGVwcy5oaWRkZW47XG4gICAgICBjb25zdCB2aWV3Rm9ybXNCdXR0b25IaWRkZW4gPVxuICAgICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXMuZm9vdGVyPy52aWV3Rm9ybXNCdXR0b24/LmhpZGRlbiA/P1xuICAgICAgICBmb3JtVmlld1Byb3BlcnRpZXMuZm9vdGVyLnZpZXdGb3Jtc0J1dHRvbi5oaWRkZW47XG4gICAgICBjb25zdCB2aWV3Rm9ybXNCdXR0b25MYWJlbCA9XG4gICAgICAgIGZvcm1Db25maWcucHJvcGVydGllcy5mb290ZXI/LnZpZXdGb3Jtc0J1dHRvbj8ubGFiZWwgPz9cbiAgICAgICAgZm9ybVZpZXdQcm9wZXJ0aWVzLmZvb3Rlci52aWV3Rm9ybXNCdXR0b24ubGFiZWw7XG4gICAgICBjb25zdCBzYXZlQnV0dG9uSGlkZGVuID1cbiAgICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzLmZvb3Rlcj8uc2F2ZUJ1dHRvbj8uaGlkZGVuID8/XG4gICAgICAgIGZvcm1WaWV3UHJvcGVydGllcy5mb290ZXIuc2F2ZUJ1dHRvbi5oaWRkZW47XG4gICAgICBjb25zdCBzYXZlQnV0dG9uTGFiZWwgPVxuICAgICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXMuZm9vdGVyPy5zYXZlQnV0dG9uPy5sYWJlbCA/P1xuICAgICAgICBmb3JtVmlld1Byb3BlcnRpZXMuZm9vdGVyLnNhdmVCdXR0b24ubGFiZWw7XG5cbiAgICAgIGZvcm1Db25maWcucHJvcGVydGllcyA9IHtcbiAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICAgIGhpZGRlbjogaGVhZGVyVGl0bGVIaWRkZW4sXG4gICAgICAgICAgICBsYWJlbDogaGVhZGVyVGl0bGVMYWJlbFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RlcHM6IHtcbiAgICAgICAgICAgIGhpZGRlbjogaGVhZGVyU3RlcHNIaWRkZW5cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGZvb3Rlcjoge1xuICAgICAgICAgIHZpZXdGb3Jtc0J1dHRvbjoge1xuICAgICAgICAgICAgaGlkZGVuOiB2aWV3Rm9ybXNCdXR0b25IaWRkZW4sXG4gICAgICAgICAgICBsYWJlbDogdmlld0Zvcm1zQnV0dG9uTGFiZWxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNhdmVCdXR0b246IHtcbiAgICAgICAgICAgIGhpZGRlbjogc2F2ZUJ1dHRvbkhpZGRlbixcbiAgICAgICAgICAgIGxhYmVsOiBzYXZlQnV0dG9uTGFiZWxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1Db25maWcucHJvcGVydGllcyA9IGZvcm1WaWV3UHJvcGVydGllcztcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgY29udmVydEZvcm1Db25maWcoZm9ybUNvbmZpZzogYW55KTogYW55IHtcbiAgICBjb25zdCB1cGRhdGVPbkZpZWxkVHlwZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUh0bWwgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImlzRm9ybUVsZW1lbnRcIiwgZmFsc2UpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVUaXRsZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaGlkZGVuXCIsIGZhbHNlKTtcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaXNGb3JtRWxlbWVudFwiLCBmYWxzZSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVRleHQgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImlzRm9ybUVsZW1lbnRcIiwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgXCJjYXNlXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCJcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUNoZWNrYm94ID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJpc0Zvcm1FbGVtZW50XCIsIHRydWUpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlTnVtYmVyID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJpc0Zvcm1FbGVtZW50XCIsIHRydWUpO1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwia2V5XCIpKSB7XG4gICAgICAgICAgaWYgKGZpZWxkLmtleSA9PT0gXCJhYWRoYWFyX251bWJlclwiKSB7XG4gICAgICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwiYWFkaGFhcl9udW1iZXJcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmaWVsZC5rZXkgPT09IFwiY29udGFjdF9udW1iZXJcIikge1xuICAgICAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidHlwZVwiLCBcInBob25lXCIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSBcInBob25lXCIgfHwgZmllbGQudHlwZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgIFwiY291bnRyeUNvZGVcIixcbiAgICAgICAgICAgICAgXCIrOTFcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICBcInBob25lTWFza0FmdGVyQ291bnRyeUNvZGVcIixcbiAgICAgICAgICAgICAgXCIjIyMjLSMjIyMjI1wiXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgIFwicmVtb3ZlQ291bnRyeUNvZGVGcm9tVmFsdWVcIixcbiAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICBcImRlY2ltYWxcIixcbiAgICAgICAgICAgICAgXCJuZXZlclwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgIFwicHJlZml4XCIsXG4gICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgXCJwb3N0Zml4XCIsXG4gICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgXCJtaW5cIixcbiAgICAgICAgICAgICAgLUluZmluaXR5XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgIFwibWF4XCIsXG4gICAgICAgICAgICAgIEluZmluaXR5XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgIFwicHJlY2lzaW9uXCIsXG4gICAgICAgICAgICAgIDJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaGlkZGVuXCIsIGZhbHNlKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlUHJldmlld0ltYWdlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJpc0Zvcm1FbGVtZW50XCIsIHRydWUpO1xuXG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZCwgXCJwcm9wZXJ0aWVzXCIsIHt9KTtcbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICBcImFsdFRleHRcIixcbiAgICAgICAgICBcIlwiXG4gICAgICAgICk7XG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgXCJodG1sXCIsXG4gICAgICAgICAge31cbiAgICAgICAgKTtcbiAgICAgICAgZmllbGQucHJvcGVydGllcy5odG1sID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLmh0bWwsXG4gICAgICAgICAgXCJiZWZvcmVcIixcbiAgICAgICAgICBcIlwiXG4gICAgICAgICk7XG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMuaHRtbCA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcy5odG1sLFxuICAgICAgICAgIFwiYWZ0ZXJcIixcbiAgICAgICAgICBcIlwiXG4gICAgICAgICk7XG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgXCJpbWFnZVR5cGVcIixcbiAgICAgICAgICBcInVybFwiXG4gICAgICAgICk7XG5cbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICBcImxvYWRpbmdUeXBlXCIsXG4gICAgICAgICAgXCJhdXRvXCJcbiAgICAgICAgKTtcblxuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgIFwic3R5bGVzXCIsXG4gICAgICAgICAgXCJcIlxuICAgICAgICApO1xuXG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgXCJjbGFzc1wiLFxuICAgICAgICAgIFwiXCJcbiAgICAgICAgKTtcblxuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJoaWRkZW5cIiwgZmFsc2UpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVEYXRlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJpc0Zvcm1FbGVtZW50XCIsIHRydWUpO1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibWluXCIpKSB7XG4gICAgICAgICAgY29uc3QgdHVpRGF5ID0gY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9Ld2lrVUlGb3JtYXQoZmllbGRbXCJtaW5cIl0pO1xuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgXCJtaW5cIixcbiAgICAgICAgICAgIHR1aURheVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgXCJtaW5cIixcbiAgICAgICAgICAgIG5ldyBUdWlEYXkoMCwgMCwgMSlcbiAgICAgICAgICApOyAvLyBZZWFyIC0gMDAwMCwgTW9udGggLSAwICgwIEluZGV4aW5nKSwgRGF5IC0gMVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1heFwiKSkge1xuICAgICAgICAgIGNvbnN0IHR1aURheSA9IGNvbnZlcnRGb3JtRmllbGRUeXBlRGF0ZVRvS3dpa1VJRm9ybWF0KGZpZWxkW1wibWF4XCJdKTtcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKFxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICAgIFwibWF4XCIsXG4gICAgICAgICAgICB0dWlEYXlcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICAgIFwibWF4XCIsXG4gICAgICAgICAgICBuZXcgVHVpRGF5KFxuICAgICAgICAgICAgICBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksIC8vIFllYXIgLSA5OTk5XG4gICAgICAgICAgICAgIG5ldyBEYXRlKCkuZ2V0TW9udGgoKSwgLy8gTW9udGggLSAxMSAoMCBJbmRleGluZylcbiAgICAgICAgICAgICAgbmV3IERhdGUoKS5nZXREYXRlKCkgLy8gRGF5IC0gMzFcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICBcIm1pbkNhbGN1bGF0ZWRGcm9tVG9kYXlcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICB5ZWFyOiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgICBtb250aDogbmV3IERhdGUoKS5nZXRNb250aCgpLFxuICAgICAgICAgICAgZGF5OiBuZXcgRGF0ZSgpLmdldERhdGUoKVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgIFwibWF4Q2FsY3VsYXRlZEZyb21Ub2RheVwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHllYXI6IDAsXG4gICAgICAgICAgICBtb250aDogMCxcbiAgICAgICAgICAgIGRheTogMFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgIFwicGxhY2Vob2xkZXJcIixcbiAgICAgICAgICBcIlwiXG4gICAgICAgICk7XG5cbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaGlkZGVuXCIsIGZhbHNlKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlUGhvbmUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImlzRm9ybUVsZW1lbnRcIiwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVSYWRpbyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaXNGb3JtRWxlbWVudFwiLCB0cnVlKTtcbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICBcInNpemVcIixcbiAgICAgICAgICBcIm1cIlxuICAgICAgICApO1xuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgIFwib3JpZW50YXRpb25cIixcbiAgICAgICAgICBcInZlcnRpY2FsXCJcbiAgICAgICAgKTtcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaGlkZGVuXCIsIGZhbHNlKTtcblxuICAgICAgICBmaWVsZC5vcHRpb25zID0gZmllbGQub3B0aW9ucy5tYXAoKHg6IGFueSk6IGFueSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiB4ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogeCwgZGlzYWJsZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogXCJcIiB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKHgsIFwibGFiZWxcIikgJiZcbiAgICAgICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoeCwgXCJkaXNhYmxlZFwiKSAmJlxuICAgICAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImRlc2NyaXB0aW9uXCIpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKHgsIFwiZGlzYWJsZWRcIikpIHtcbiAgICAgICAgICAgICAgeCA9IHsgLi4ueCwgZGlzYWJsZWQ6IGZhbHNlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKHgsIFwiZGVzY3JpcHRpb25cIikpIHtcbiAgICAgICAgICAgICAgeCA9IHsgLi4ueCwgZGVzY3JpcHRpb246IGZhbHNlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVTbGlkZXIgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImlzRm9ybUVsZW1lbnRcIiwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgXCJtaW5cIixcbiAgICAgICAgICAwXG4gICAgICAgICk7XG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgXCJtYXhcIixcbiAgICAgICAgICAxMDBcbiAgICAgICAgKTtcbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICBcInN0ZXBzXCIsXG4gICAgICAgICAgMFxuICAgICAgICApO1xuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgIFwicXVhbnR1bVwiLFxuICAgICAgICAgIDFcbiAgICAgICAgKTtcbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICBcInNpemVcIixcbiAgICAgICAgICBcImxcIlxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVTZWFyY2hUZXh0ID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJpc0Zvcm1FbGVtZW50XCIsIHRydWUpO1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwidHlwZVwiKSkge1xuICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSBcInNlYXJjaC10ZXh0XCIpIHtcbiAgICAgICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKFxuICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgXCJ0eXBlXCIsXG4gICAgICAgICAgICAgIFwiZHJvcGRvd24td2l0aC1zZWFyY2hcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlRHJvcGRvd25XaXRoU2VhcmNoID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJpc0Zvcm1FbGVtZW50XCIsIHRydWUpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlQXBpQ2FsbCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaXNGb3JtRWxlbWVudFwiLCB0cnVlKTtcbiAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC5wcm9wZXJ0aWVzLCBcInNoYXBlXCIpKSB7XG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgICBcInNoYXBlXCIsXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInNob3dMb2FkZXJcIikpIHtcbiAgICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJzaG93TG9hZGVyXCIsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnByb3BlcnRpZXMsIFwic2l6ZVwiKSkge1xuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgXCJzaXplXCIsXG4gICAgICAgICAgICBcIm1cIlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJhcGlcIikpIHtcbiAgICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJhcGlcIiwge30pO1xuXG4gICAgICAgICAgZmllbGQuYXBpID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZC5hcGksIFwidXJsXCIsIFwiXCIpO1xuICAgICAgICAgIGZpZWxkLmFwaSA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQuYXBpLCBcInJlcXVlc3RcIiwgXCJcIik7XG4gICAgICAgICAgZmllbGQuYXBpID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZC5hcGksIFwicmVzcG9uc2VcIiwgXCJcIik7XG4gICAgICAgICAgZmllbGQuYXBpID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZC5hcGksIFwic3RhdHVzXCIsIFwiXCIpO1xuXG4gICAgICAgICAgZmllbGQuYXBpLnN0YXR1cyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICBmaWVsZC5hcGkuc3RhdHVzLFxuICAgICAgICAgICAgXCJ2YWx1ZVwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCJcbiAgICAgICAgICApO1xuICAgICAgICAgIGZpZWxkLmFwaS5zdGF0dXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgICAgZmllbGQuYXBpLnN0YXR1cyxcbiAgICAgICAgICAgIFwibGFiZWxzXCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6IFwiQ2FsbCBBUElcIixcbiAgICAgICAgICAgICAgbG9hZGluZzogXCJDYWxsIEFQSVwiLFxuICAgICAgICAgICAgICBzdWNjZXNzOiBcIkFQSSBTdWNjZXNzXCIsXG4gICAgICAgICAgICAgIGZhaWxlZDogXCJBUEkgRmFpbGVkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQuYXBpLCBcInJlcXVlc3RcIikgJiZcbiAgICAgICAgICAhY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQuYXBpLCBcImVudHJ5cG9pbnRcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gU2V0IGVudHJ5cG9pbnQgYXMgRmlyc3QgZW5kcG9pbnQuXG4gICAgICAgICAgY29uc3QgZW50cnlwb2ludCA9IHtcbiAgICAgICAgICAgIHRyaWdnZXJzOiBbXCJPTl9BUElfQ0FMTFwiXSxcbiAgICAgICAgICAgIHJ1bGVzOiBbXSxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiBcIjFcIixcbiAgICAgICAgICAgICAgICBrZXk6IFwiQVBJX0NBTExcIixcbiAgICAgICAgICAgICAgICBjb25kaXRpb246IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBmaWVsZEtleTogZmllbGQua2V5LFxuICAgICAgICAgICAgICAgICAgYXBpS2V5OiBmaWVsZC5hcGkuZW5kcG9pbnRzWzBdLmFwaUtleVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH07XG4gICAgICAgICAgZmllbGQgPSBzZXRNaXNzaW5nS2V5VmFsdWUoZmllbGQuYXBpLCBcImVudHJ5cG9pbnRcIiwgZW50cnlwb2ludCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZU90cCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaXNGb3JtRWxlbWVudFwiLCB0cnVlKTtcbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICBcIm1hc2tcIixcbiAgICAgICAgICBuZXcgQXJyYXkoZmllbGQucHJvcGVydGllcy5vdHBMZW5ndGgpLmZpbGwoXCIjXCIpLmpvaW4oXCIgXCIpXG4gICAgICAgICk7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImhpZGRlblwiLCBmYWxzZSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUFhZGhhYXJOdW1iZXIgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImlzRm9ybUVsZW1lbnRcIiwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG5cbiAgICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuSFRNTDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUh0bWwoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuVElUTEU6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVUaXRsZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5URVhUOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlVGV4dChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5DSEVDS0JPWDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUNoZWNrYm94KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLk5VTUJFUjpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZU51bWJlcihmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5QUkVWSUVXX0lNQUdFOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlUHJldmlld0ltYWdlKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkRBVEU6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVEYXRlKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlBIT05FOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlUGhvbmUoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuUkFESU86XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVSYWRpbyhmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5TTElERVI6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVTbGlkZXIoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwic2VhcmNoLXRleHRcIjpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVNlYXJjaFRleHQoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuRFJPUERPV05fV0lUSF9TRUFSQ0g6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVEcm9wZG93bldpdGhTZWFyY2goZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQVBJX0NBTEw6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVBcGlDYWxsKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLk9UUDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZU90cChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5BQURIQUFSX05VTUJFUjpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUFhZGhhYXJOdW1iZXIoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldENvbm5lY3RlZEVsZW1lbnRUeXBlVmFsdWVPYmplY3QgPSAoa2V5OiBhbnkpOiBhbnkgPT4ge1xuICAgICAgY29uc3Qgb2JqZWN0ID0ge1xuICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgY29uZGl0aW9uczogeyBmb3JtdWxhOiBcIlwiLCBydWxlczogW10gfSxcbiAgICAgICAgYWN0aW9uczogeyBzdWNjZXNzOiBbXSwgZmFpbHVyZTogW10gfVxuICAgICAgfTtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIGNvbnN0IGZvcm1hdEZpZWxkS2V5cyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGZpZWxkID0gc2V0TWlzc2luZ0tleVZhbHVlKGZpZWxkLCBcImRpc2FibGVkXCIsIGZhbHNlKTtcblxuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImNvbm5lY3RlZFRvXCIpKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZmllbGRbXCJjb25uZWN0ZWRUb1wiXSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGZpZWxkW1wiY29ubmVjdGVkRWxlbWVudHNcIl0gPSBbXG4gICAgICAgICAgICBnZXRDb25uZWN0ZWRFbGVtZW50VHlwZVZhbHVlT2JqZWN0KGZpZWxkW1wiY29ubmVjdGVkVG9cIl0pXG4gICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWVsZFtcImNvbm5lY3RlZFRvXCJdID0gZmllbGRbXCJjb25uZWN0ZWRUb1wiXS5tYXAoKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29ubmVjdGVkRWxlbWVudFR5cGVWYWx1ZU9iamVjdChrZXkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGZpZWxkW1wiY29ubmVjdGVkRWxlbWVudHNcIl0gPSBmaWVsZFtcImNvbm5lY3RlZFRvXCJdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnJlbW92ZUZpZWxkS2V5KGZpZWxkLCBcImNvbm5lY3RlZFRvXCIpO1xuXG4gICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiY29ubmVjdGVkVG9QYXJlbnRcIikpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmaWVsZFtcImNvbm5lY3RlZFRvUGFyZW50XCJdID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgZmllbGRbXCJjb25uZWN0ZWRQYXJlbnRGaWVsZHNcIl0gPSBbXG4gICAgICAgICAgICBnZXRDb25uZWN0ZWRFbGVtZW50VHlwZVZhbHVlT2JqZWN0KGZpZWxkW1wiY29ubmVjdGVkVG9QYXJlbnRcIl0pXG4gICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWVsZFtcImNvbm5lY3RlZFBhcmVudEZpZWxkc1wiXSA9IGdldENvbm5lY3RlZEVsZW1lbnRUeXBlVmFsdWVPYmplY3QoXG4gICAgICAgICAgICBmaWVsZFtcImNvbm5lY3RlZFRvUGFyZW50XCJdXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5yZW1vdmVGaWVsZEtleShmaWVsZCwgXCJjb25uZWN0ZWRUb1BhcmVudFwiKTtcblxuICAgICAgdGhpcy5yZW1vdmVGaWVsZEtleShmaWVsZCwgXCJzaWRlRWZmZWN0XCIpO1xuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkVmFsaWRhdG9yQ29uZmlnID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmlzRm9ybUVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIilcbiAgICAgICAgICA/IGZpZWxkLnZhbGlkYXRvcnNcbiAgICAgICAgICA6IHt9O1xuXG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ2YWxpZGF0b3JzXCIsIHt9KTtcblxuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ2YWxpZGF0b3JzXCIsIHtcbiAgICAgICAgICAuLi5maWVsZFtcInZhbGlkYXRvcnNcIl0sXG4gICAgICAgICAgbWluOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcIm1pblwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5taW4pXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWluKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibWluXCIpXG4gICAgICAgICAgICA/IE51bWJlcihmaWVsZC5taW4pXG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgbWF4OiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcIm1heFwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5tYXgpXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWF4KVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibWF4XCIpXG4gICAgICAgICAgICA/IE51bWJlcihmaWVsZC5tYXgpXG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgcmVxdWlyZWQ6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbGlkYXRvcnMsIFwicmVxdWlyZWRcIilcbiAgICAgICAgICAgID8gQm9vbGVhbih2YWxpZGF0b3JzLnJlcXVpcmVkKVxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJyZXF1aXJlZFwiKVxuICAgICAgICAgICAgPyBCb29sZWFuKGZpZWxkLnJlcXVpcmVkKVxuICAgICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICBtaW5MZW5ndGg6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbGlkYXRvcnMsIFwibWluTGVuZ3RoXCIpXG4gICAgICAgICAgICA/IGlzTm90RW1wdHlWYWx1ZSh2YWxpZGF0b3JzLm1pbkxlbmd0aClcbiAgICAgICAgICAgICAgPyBOdW1iZXIodmFsaWRhdG9ycy5taW5MZW5ndGgpXG4gICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJtaW5MZW5ndGhcIilcbiAgICAgICAgICAgID8gTnVtYmVyKGZpZWxkLm1pbkxlbmd0aClcbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICBtYXhMZW5ndGg6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbGlkYXRvcnMsIFwibWF4TGVuZ3RoXCIpXG4gICAgICAgICAgICA/IGlzTm90RW1wdHlWYWx1ZSh2YWxpZGF0b3JzLm1heExlbmd0aClcbiAgICAgICAgICAgICAgPyBOdW1iZXIodmFsaWRhdG9ycy5tYXhMZW5ndGgpXG4gICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJsZW5ndGhcIilcbiAgICAgICAgICAgID8gTnVtYmVyKGZpZWxkLmxlbmd0aClcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibWF4TGVuZ3RoXCIpXG4gICAgICAgICAgICA/IE51bWJlcihmaWVsZC5tYXhMZW5ndGgpXG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgcGF0dGVybjogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJwYXR0ZXJuXCIpXG4gICAgICAgICAgICA/IGlzTm90RW1wdHlWYWx1ZSh2YWxpZGF0b3JzLnBhdHRlcm4pXG4gICAgICAgICAgICAgID8gdmFsaWRhdG9ycy5wYXR0ZXJuXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInBhdHRlcm5cIilcbiAgICAgICAgICAgID8geyBrZXk6IFwiQ1VTVE9NXCIsIHBhdHRlcm46IFN0cmluZyhmaWVsZC5wYXR0ZXJuKSB9XG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInJlZ2V4XCIpXG4gICAgICAgICAgICA/IHsga2V5OiBcIkNVU1RPTVwiLCBwYXR0ZXJuOiBTdHJpbmcoZmllbGQucmVnZXgpIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRlbGV0ZSBmaWVsZC5taW47XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5tYXg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5yZXF1aXJlZDtcbiAgICAgICAgZGVsZXRlIGZpZWxkLm1pbkxlbmd0aDtcbiAgICAgICAgZGVsZXRlIGZpZWxkLmxlbmd0aDtcbiAgICAgICAgZGVsZXRlIGZpZWxkLm1heExlbmd0aDtcbiAgICAgICAgZGVsZXRlIGZpZWxkLnBhdHRlcm47XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5yZWdleDtcblxuICAgICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIEVGaWVsZFR5cGUuVEVYVDpcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRUZpZWxkVHlwZS5DSEVDS0JPWDpcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heDtcbiAgICAgICAgICBjYXNlIEVGaWVsZFR5cGUuUFJFVklFV19JTUFHRTpcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heDtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbkxlbmd0aDtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heExlbmd0aDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ubWluKSkge1xuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnM/Lm1heCkpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzPy5taW5MZW5ndGgpKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ubWF4TGVuZ3RoKSkge1xuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heExlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnM/LnBhdHRlcm4pKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpZWxkLmZvY3VzID0gZmFsc2U7XG4gICAgICAgIGZpZWxkLmludmFsaWQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZERlZmF1bHRWYWx1ZUNvbmZpZyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGlmIChmaWVsZC5pc0Zvcm1FbGVtZW50KSB7XG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJkZWZhdWx0VmFsdWVcIikpIHtcbiAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiZGVmYXVsdFwiKSkge1xuICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiZGVmYXVsdFZhbFwiKSkge1xuICAgICAgICAgICAgLy8gQ3VycmVudGx5IGJlbG93IGxpbmUgaXMgY29tbWVudGVkIGJlY2F1c2UgaXQgY2F1c2VkIGlzc3VlcyBpbiBzZXR0aW5nIERlZmF1bHQgVmFsdWUuXG4gICAgICAgICAgICAvLyBmaWVsZFtcImRlZmF1bHRWYWx1ZVwiXSA9IGZpZWxkW1wiZGVmYXVsdFZhbFwiXTtcbiAgICAgICAgICAgIC8vIGRlbGV0ZSBmaWVsZFtcImRlZmF1bHRWYWxcIl07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gVE9ETzogQ29uZGl0aW9uIGZvciBhbGxfZm9ybXNfZGF0YSBpcyBub3QgY29uc2lkZXJlZCB5ZXQuXG4gICAgICAgICAgaWYgKGZpZWxkLmF1dG9Qb3B1bGF0ZUZyb21TdW1tYXJ5RGF0YSkge1xuICAgICAgICAgICAgZmllbGRbXCJkZWZhdWx0VmFsdWVcIl0gPSB7XG4gICAgICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcbiAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgICAgICAgIHNvdXJjZXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBzb3VyY2U6IFwic3VtbWFyeV9kYXRhXCIsXG4gICAgICAgICAgICAgICAgICBzdW1tYXJ5X2RhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogYCQuJHtmaWVsZC5rZXl9YCxcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiaXNfbm90X2VtcHR5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzX25vdF9lbXB0eToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzZXRfZGVmYXVsdF92YWx1ZV9mb3VuZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRfZGVmYXVsdF92YWx1ZV9mb3VuZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiZW5hYmxlX2ZpZWxkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxIE9SIE5PVCgxKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVfZmllbGQ6IHsgdmFsdWU6IHRydWUgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImF1dG9maWxsXCIpKSB7XG4gICAgICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQuYXV0b2ZpbGwsIFwidHlwZVwiKSkge1xuICAgICAgICAgICAgICBpZiAoZmllbGQuYXV0b2ZpbGwudHlwZSA9PT0gXCJzdG9yYWdlXCIpIHtcbiAgICAgICAgICAgICAgICBmaWVsZFtcImRlZmF1bHRWYWx1ZVwiXSA9IHtcbiAgICAgICAgICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgc291cmNlczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgc291cmNlOiBcImJyb3dzZXJfc3RvcmFnZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfc3RvcmFnZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogYCQuJHtmaWVsZC5rZXl9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJpc19ub3RfZW1wdHlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX25vdF9lbXB0eToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2V0X2RlZmF1bHRfdmFsdWVfZm91bmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRfZGVmYXVsdF92YWx1ZV9mb3VuZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJlbmFibGVfZmllbGRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxIE9SIE5PVCgxKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlX2ZpZWxkOiB7IHZhbHVlOiB0cnVlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkLmF1dG9maWxsLnR5cGUgPT09IFwiY29uZmlnXCIpIHtcbiAgICAgICAgICAgICAgICBmaWVsZFtcImRlZmF1bHRWYWx1ZVwiXSA9IHtcbiAgICAgICAgICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgc291cmNlczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgc291cmNlOiBcImZpZWxkX2NvbmZpZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgIGZpZWxkX2NvbmZpZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogYCQuJHtmaWVsZC5rZXl9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJpc19ub3RfZW1wdHlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX25vdF9lbXB0eToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2V0X2RlZmF1bHRfdmFsdWVfZm91bmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRfZGVmYXVsdF92YWx1ZV9mb3VuZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJlbmFibGVfZmllbGRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxIE9SIE5PVCgxKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlX2ZpZWxkOiB7IHZhbHVlOiB0cnVlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpZWxkW1wiZGVmYXVsdFZhbHVlXCJdID0ge1xuICAgICAgICAgICAgICBpc19mb3VuZDogZmFsc2UsXG4gICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICBzb3VyY2VzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgc291cmNlOiBcImZvcm1fZGF0YVwiLFxuICAgICAgICAgICAgICAgICAgZm9ybV9kYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IGAkLiR7ZmllbGQua2V5fWAsXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICBydWxlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImlzX25vdF9lbXB0eVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpc19ub3RfZW1wdHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2V0X2RlZmF1bHRfdmFsdWVfZm91bmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0X2RlZmF1bHRfdmFsdWVfZm91bmQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImVuYWJsZV9maWVsZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiMSBPUiBOT1QoMSlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlX2ZpZWxkOiB7IHZhbHVlOiB0cnVlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZGVsZXRlIGZpZWxkW1wiZGVmYXVsdFZhbFwiXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZE1lc3NhZ2VzID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmlzRm9ybUVsZW1lbnQpIHtcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKGZpZWxkLCBcIm1lc3NhZ2VzXCIsIFtdKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZFJlc2V0QnV0dG9uID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmlzRm9ybUVsZW1lbnQpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImFjdGlvblwiKSAmJlxuICAgICAgICAgIGZpZWxkLmFjdGlvbiA9PT0gXCJyZXNldFwiICYmXG4gICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiZmllbGRzXCIpXG4gICAgICAgICkge1xuICAgICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInJlc2V0XCIsIHtcbiAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCBzZXRGb3JtRmllbGRzID0gKGZvcm1Db25maWc6IGFueSwgZmllbGRzOiBhbnlbXSk6IGFueSA9PiB7XG4gICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybUNvbmZpZywgXCJtdWx0aUZvcm1cIikpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5tdWx0aUZvcm1bXCJmaWVsZHNcIl0gPSBmaWVsZHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtQ29uZmlnW1wiZmllbGRzXCJdID0gZmllbGRzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgICB9O1xuXG4gICAgY29uc3Qgc2V0Rm9ybUZpZWxkR3JvdXBzID0gKGZvcm1Db25maWc6IGFueSwgZ3JvdXBzOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgZm9ybUNvbmZpZ1tcImZpZWxkR3JvdXBzXCJdID0gZ3JvdXBzO1xuXG4gICAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRm9ybUZpZWxkR3JvdXBzID0gKGZpZWxkR3JvdXBzOiBhbnksIGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImdyb3VwS2V5XCIpKSB7XG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZEdyb3VwcywgZmllbGQuZ3JvdXBLZXkpKSB7XG4gICAgICAgICAgZmllbGRHcm91cHNbZmllbGQuZ3JvdXBLZXldLnB1c2goZmllbGQua2V5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWVsZEdyb3Vwc1tmaWVsZC5ncm91cEtleV0gPSBbZmllbGQua2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGRHcm91cHM7XG4gICAgfTtcblxuICAgIGxldCBmaWVsZHM6IGFueVtdID0gdGhpcy5nZXRGb3JtRmllbGRzKGZvcm1Db25maWcpO1xuXG4gICAgbGV0IGZpZWxkR3JvdXBzOiBhbnkgPSB7fTtcblxuICAgIGZvciAobGV0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgZmllbGQgPSB1cGRhdGVPbkZpZWxkVHlwZShmaWVsZCk7XG5cbiAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRLZXlzKGZpZWxkKTtcblxuICAgICAgZmllbGRHcm91cHMgPSB1cGRhdGVGb3JtRmllbGRHcm91cHMoZmllbGRHcm91cHMsIGZpZWxkKTtcblxuICAgICAgZmllbGQgPSB1cGRhdGVGaWVsZERlZmF1bHRWYWx1ZUNvbmZpZyhmaWVsZCk7XG5cbiAgICAgIGZpZWxkID0gdXBkYXRlRmllbGRWYWxpZGF0b3JDb25maWcoZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkUmVzZXRCdXR0b24oZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkTWVzc2FnZXMoZmllbGQpO1xuICAgIH1cblxuICAgIGZvcm1Db25maWcgPSBzZXRGb3JtRmllbGRHcm91cHMoZm9ybUNvbmZpZywgZmllbGRHcm91cHMpO1xuXG4gICAgZm9ybUNvbmZpZyA9IHNldEZvcm1GaWVsZHMoZm9ybUNvbmZpZywgZmllbGRzKTtcblxuICAgIHJldHVybiBmb3JtQ29uZmlnO1xuICB9XG59XG4iXX0=
740
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWNvbnZlcnRlci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9jb25maWctY29udmVydGVyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULGtCQUFrQixFQUNsQixvQkFBb0IsRUFDckIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakYsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFckcsTUFBTSxPQUFPLFNBQVM7SUFBdEI7UUFDRSxrQkFBYSxHQUFHLENBQUMsVUFBZSxFQUFTLEVBQUU7WUFDekMsSUFBSSxNQUFhLENBQUM7WUFFbEIsSUFBSSxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLEVBQUU7Z0JBQ2pELE1BQU0sR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQzthQUN0QztpQkFBTTtnQkFDTCxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQzthQUM1QjtZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQztRQUVGLDRCQUF1QixHQUFHLENBQUMsS0FBVSxFQUFFLEdBQVcsRUFBRSxLQUFVLEVBQU8sRUFBRTtZQUNyRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ3BCO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUM7UUFFRixxQkFBZ0IsR0FBRyxDQUFDLEtB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V0FBVyxHQUFRLEVBQUUsQ0FBQztRQUUxQixLQUFLLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRTtZQUN4QixLQUFLLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFakMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUvQixXQUFXLEdBQUcscUJBQXFCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXhELEtBQUssR0FBRyw2QkFBNkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU3QyxLQUFLLEdBQUcsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFMUMsS0FBSyxHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXRDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztRQUVELFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFekQsVUFBVSxHQUFHLGFBQWEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFL0MsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGO0FBNTZCQztJQURDLFNBQVM7OERBV1Q7QUFHRDtJQURDLFNBQVM7MkRBd0VUO0FBR0Q7SUFEQyxTQUFTO2tEQXExQlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUdWlEYXkgfSBmcm9tIFwiQHRhaWdhLXVpL2Nka1wiO1xuaW1wb3J0IHtcbiAgY2hlY2tPYmplY3RLZXlFeGlzdHMsXG4gIGlzRW1wdHlWYWx1ZSxcbiAgaXNOb3RFbXB0eVZhbHVlLFxuICBsb2dNZXRob2QsXG4gIHNldE1pc3NpbmdLZXlWYWx1ZSxcbiAgc2V0VmFsdWVUb09iamVjdFBhdGhcbn0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBFRmllbGRUeXBlIH0gZnJvbSBcIi4vZm9ybS12aWV3L2RlZmluaXRpb25zL2Zvcm0tdmlldy5maWVsZHMuZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9Ld2lrVUlGb3JtYXQgfSBmcm9tIFwiLi9mb3JtLXZpZXcvaGVscGVycy9mb3JtLXZpZXcuZmllbGRzLmhlbHBlclwiO1xuXG5leHBvcnQgY2xhc3MgQ29udmVydGVyIHtcbiAgZ2V0Rm9ybUZpZWxkcyA9IChmb3JtQ29uZmlnOiBhbnkpOiBhbnlbXSA9PiB7XG4gICAgbGV0IGZpZWxkczogYW55W107XG5cbiAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybUNvbmZpZywgXCJtdWx0aUZvcm1cIikpIHtcbiAgICAgIGZpZWxkcyA9IGZvcm1Db25maWcubXVsdGlGb3JtLmZpZWxkcztcbiAgICB9IGVsc2Uge1xuICAgICAgZmllbGRzID0gZm9ybUNvbmZpZy5maWVsZHM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpZWxkcztcbiAgfTtcblxuICBzZXRNaXNzaW5nRmllbGRLZXlWYWx1ZSA9IChmaWVsZDogYW55LCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IGFueSA9PiB7XG4gICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwga2V5KSkge1xuICAgICAgZmllbGRba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gZmllbGQ7XG4gIH07XG5cbiAgc2V0RmllbGRLZXlWYWx1ZSA9IChmaWVsZDogYW55LCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IGFueSA9PiB7XG4gICAgZmllbGRba2V5XSA9IHZhbHVlO1xuXG4gICAgcmV0dXJuIGZpZWxkO1xuICB9O1xuXG4gIHJlbW92ZUZpZWxkS2V5ID0gKGZpZWxkOiBhbnksIGtleTogc3RyaW5nKTogYW55ID0+IHtcbiAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIGtleSkpIHtcbiAgICAgIGRlbGV0ZSBmaWVsZFtrZXldO1xuICAgIH1cblxuICAgIHJldHVybiBmaWVsZDtcbiAgfTtcblxuICBAbG9nTWV0aG9kXG4gIHVwZGF0ZUZvcm1Db25maWdNaXNjZWxsYW5lb3VzKGZvcm1Db25maWc6IGFueSwgYXJnczogYW55KTogYW55IHtcbiAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoYXJncywgXCJmb3Jtc0xpc3RMZW5ndGhcIikpIHtcbiAgICAgIGZvcm1Db25maWcgPSBzZXRWYWx1ZVRvT2JqZWN0UGF0aChcbiAgICAgICAgZm9ybUNvbmZpZyxcbiAgICAgICAgXCJmb3Jtc0xpc3RMZW5ndGhcIixcbiAgICAgICAgYXJncy5mb3Jtc0xpc3RMZW5ndGhcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1Db25maWc7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIHVwZGF0ZUZvcm1Db25maWdQcm9wZXJ0aWVzKGZvcm1Db25maWc6IGFueSk6IGFueSB7XG4gICAgY29uc3QgZm9ybVZpZXdQcm9wZXJ0aWVzID0ge1xuICAgICAgaGVhZGVyOiB7XG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICBsYWJlbDogZm9ybUNvbmZpZy50aXRsZVxuICAgICAgICB9LFxuICAgICAgICBzdGVwczoge1xuICAgICAgICAgIGhpZGRlbjogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGZvb3Rlcjoge1xuICAgICAgICB2aWV3Rm9ybXNCdXR0b246IHtcbiAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiBcIlZpZXcgRm9ybXNcIlxuICAgICAgICB9LFxuICAgICAgICBzYXZlQnV0dG9uOiB7XG4gICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICBsYWJlbDogXCJTYXZlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybUNvbmZpZywgXCJwcm9wZXJ0aWVzXCIpKSB7XG4gICAgICBjb25zdCBoZWFkZXJUaXRsZUhpZGRlbiA9XG4gICAgICAgIGZvcm1Db25maWcucHJvcGVydGllcy5oZWFkZXI/LnRpdGxlPy5oaWRkZW4gPz9cbiAgICAgICAgZm9ybVZpZXdQcm9wZXJ0aWVzLmhlYWRlci50aXRsZS5oaWRkZW47XG4gICAgICBjb25zdCBoZWFkZXJUaXRsZUxhYmVsID1cbiAgICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzLmhlYWRlcj8udGl0bGU/LmxhYmVsID8/IGZvcm1Db25maWcudGl0bGU7XG4gICAgICBjb25zdCBoZWFkZXJTdGVwc0hpZGRlbiA9XG4gICAgICAgIGZvcm1Db25maWcucHJvcGVydGllcy5oZWFkZXI/LnN0ZXBzPy5oaWRkZW4gPz9cbiAgICAgICAgZm9ybVZpZXdQcm9wZXJ0aWVzLmhlYWRlci5zdGVwcy5oaWRkZW47XG4gICAgICBjb25zdCB2aWV3Rm9ybXNCdXR0b25IaWRkZW4gPVxuICAgICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXMuZm9vdGVyPy52aWV3Rm9ybXNCdXR0b24/LmhpZGRlbiA/P1xuICAgICAgICBmb3JtVmlld1Byb3BlcnRpZXMuZm9vdGVyLnZpZXdGb3Jtc0J1dHRvbi5oaWRkZW47XG4gICAgICBjb25zdCB2aWV3Rm9ybXNCdXR0b25MYWJlbCA9XG4gICAgICAgIGZvcm1Db25maWcucHJvcGVydGllcy5mb290ZXI/LnZpZXdGb3Jtc0J1dHRvbj8ubGFiZWwgPz9cbiAgICAgICAgZm9ybVZpZXdQcm9wZXJ0aWVzLmZvb3Rlci52aWV3Rm9ybXNCdXR0b24ubGFiZWw7XG4gICAgICBjb25zdCBzYXZlQnV0dG9uSGlkZGVuID1cbiAgICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzLmZvb3Rlcj8uc2F2ZUJ1dHRvbj8uaGlkZGVuID8/XG4gICAgICAgIGZvcm1WaWV3UHJvcGVydGllcy5mb290ZXIuc2F2ZUJ1dHRvbi5oaWRkZW47XG4gICAgICBjb25zdCBzYXZlQnV0dG9uTGFiZWwgPVxuICAgICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXMuZm9vdGVyPy5zYXZlQnV0dG9uPy5sYWJlbCA/P1xuICAgICAgICBmb3JtVmlld1Byb3BlcnRpZXMuZm9vdGVyLnNhdmVCdXR0b24ubGFiZWw7XG5cbiAgICAgIGZvcm1Db25maWcucHJvcGVydGllcyA9IHtcbiAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICAgIGhpZGRlbjogaGVhZGVyVGl0bGVIaWRkZW4sXG4gICAgICAgICAgICBsYWJlbDogaGVhZGVyVGl0bGVMYWJlbFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RlcHM6IHtcbiAgICAgICAgICAgIGhpZGRlbjogaGVhZGVyU3RlcHNIaWRkZW5cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGZvb3Rlcjoge1xuICAgICAgICAgIHZpZXdGb3Jtc0J1dHRvbjoge1xuICAgICAgICAgICAgaGlkZGVuOiB2aWV3Rm9ybXNCdXR0b25IaWRkZW4sXG4gICAgICAgICAgICBsYWJlbDogdmlld0Zvcm1zQnV0dG9uTGFiZWxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNhdmVCdXR0b246IHtcbiAgICAgICAgICAgIGhpZGRlbjogc2F2ZUJ1dHRvbkhpZGRlbixcbiAgICAgICAgICAgIGxhYmVsOiBzYXZlQnV0dG9uTGFiZWxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1Db25maWcucHJvcGVydGllcyA9IGZvcm1WaWV3UHJvcGVydGllcztcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgY29udmVydEZvcm1Db25maWcoZm9ybUNvbmZpZzogYW55KTogYW55IHtcbiAgICBjb25zdCB1cGRhdGVPbkZpZWxkVHlwZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUh0bWwgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImhpZGRlblwiLCBmYWxzZSk7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImlzRm9ybUVsZW1lbnRcIiwgZmFsc2UpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVUaXRsZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaGlkZGVuXCIsIGZhbHNlKTtcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaXNGb3JtRWxlbWVudFwiLCBmYWxzZSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVRleHQgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImhpZGRlblwiLCBmYWxzZSk7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImlzRm9ybUVsZW1lbnRcIiwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgXCJjYXNlXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCJcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVRleHRhcmVhID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJoaWRkZW5cIiwgZmFsc2UpO1xuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJpc0Zvcm1FbGVtZW50XCIsIHRydWUpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlQ2hlY2tib3ggPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImhpZGRlblwiLCBmYWxzZSk7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImlzRm9ybUVsZW1lbnRcIiwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVOdW1iZXIgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImlzRm9ybUVsZW1lbnRcIiwgdHJ1ZSk7XG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJrZXlcIikpIHtcbiAgICAgICAgICBpZiAoZmllbGQua2V5ID09PSBcImFhZGhhYXJfbnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJhYWRoYWFyX251bWJlclwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGZpZWxkLmtleSA9PT0gXCJjb250YWN0X251bWJlclwiKSB7XG4gICAgICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwicGhvbmVcIik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IFwicGhvbmVcIiB8fCBmaWVsZC50eXBlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgXCJjb3VudHJ5Q29kZVwiLFxuICAgICAgICAgICAgICBcIis5MVwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgIFwicGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZVwiLFxuICAgICAgICAgICAgICBcIiMjIyMtIyMjIyMjXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgXCJyZW1vdmVDb3VudHJ5Q29kZUZyb21WYWx1ZVwiLFxuICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgIFwiZGVjaW1hbFwiLFxuICAgICAgICAgICAgICBcIm5ldmVyXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgXCJwcmVmaXhcIixcbiAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICBcInBvc3RmaXhcIixcbiAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICBcIm1pblwiLFxuICAgICAgICAgICAgICAtSW5maW5pdHlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgXCJtYXhcIixcbiAgICAgICAgICAgICAgSW5maW5pdHlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgXCJwcmVjaXNpb25cIixcbiAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJoaWRkZW5cIiwgZmFsc2UpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVQcmV2aWV3SW1hZ2UgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImlzRm9ybUVsZW1lbnRcIiwgdHJ1ZSk7XG5cbiAgICAgICAgZmllbGQgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKGZpZWxkLCBcInByb3BlcnRpZXNcIiwge30pO1xuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgIFwiYWx0VGV4dFwiLFxuICAgICAgICAgIFwiXCJcbiAgICAgICAgKTtcbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICBcImh0bWxcIixcbiAgICAgICAgICB7fVxuICAgICAgICApO1xuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLmh0bWwgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMuaHRtbCxcbiAgICAgICAgICBcImJlZm9yZVwiLFxuICAgICAgICAgIFwiXCJcbiAgICAgICAgKTtcbiAgICAgICAgZmllbGQucHJvcGVydGllcy5odG1sID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLmh0bWwsXG4gICAgICAgICAgXCJhZnRlclwiLFxuICAgICAgICAgIFwiXCJcbiAgICAgICAgKTtcbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICBcImltYWdlVHlwZVwiLFxuICAgICAgICAgIFwidXJsXCJcbiAgICAgICAgKTtcblxuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgIFwibG9hZGluZ1R5cGVcIixcbiAgICAgICAgICBcImF1dG9cIlxuICAgICAgICApO1xuXG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgXCJzdHlsZXNcIixcbiAgICAgICAgICBcIlwiXG4gICAgICAgICk7XG5cbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICBcImNsYXNzXCIsXG4gICAgICAgICAgXCJcIlxuICAgICAgICApO1xuXG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImhpZGRlblwiLCBmYWxzZSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZURhdGUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImlzRm9ybUVsZW1lbnRcIiwgdHJ1ZSk7XG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJtaW5cIikpIHtcbiAgICAgICAgICBjb25zdCB0dWlEYXkgPSBjb252ZXJ0Rm9ybUZpZWxkVHlwZURhdGVUb0t3aWtVSUZvcm1hdChmaWVsZFtcIm1pblwiXSk7XG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgICBcIm1pblwiLFxuICAgICAgICAgICAgdHVpRGF5XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgICBcIm1pblwiLFxuICAgICAgICAgICAgbmV3IFR1aURheSgwLCAwLCAxKVxuICAgICAgICAgICk7IC8vIFllYXIgLSAwMDAwLCBNb250aCAtIDAgKDAgSW5kZXhpbmcpLCBEYXkgLSAxXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibWF4XCIpKSB7XG4gICAgICAgICAgY29uc3QgdHVpRGF5ID0gY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9Ld2lrVUlGb3JtYXQoZmllbGRbXCJtYXhcIl0pO1xuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgXCJtYXhcIixcbiAgICAgICAgICAgIHR1aURheVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgXCJtYXhcIixcbiAgICAgICAgICAgIG5ldyBUdWlEYXkoXG4gICAgICAgICAgICAgIG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSwgLy8gWWVhciAtIDk5OTlcbiAgICAgICAgICAgICAgbmV3IERhdGUoKS5nZXRNb250aCgpLCAvLyBNb250aCAtIDExICgwIEluZGV4aW5nKVxuICAgICAgICAgICAgICBuZXcgRGF0ZSgpLmdldERhdGUoKSAvLyBEYXkgLSAzMVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgIFwibWluQ2FsY3VsYXRlZEZyb21Ub2RheVwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHllYXI6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgICAgIG1vbnRoOiBuZXcgRGF0ZSgpLmdldE1vbnRoKCksXG4gICAgICAgICAgICBkYXk6IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgXCJtYXhDYWxjdWxhdGVkRnJvbVRvZGF5XCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgeWVhcjogMCxcbiAgICAgICAgICAgIG1vbnRoOiAwLFxuICAgICAgICAgICAgZGF5OiAwXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgXCJwbGFjZWhvbGRlclwiLFxuICAgICAgICAgIFwiXCJcbiAgICAgICAgKTtcblxuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJoaWRkZW5cIiwgZmFsc2UpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVQaG9uZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaGlkZGVuXCIsIGZhbHNlKTtcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaXNGb3JtRWxlbWVudFwiLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVJhZGlvID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJpc0Zvcm1FbGVtZW50XCIsIHRydWUpO1xuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgIFwic2l6ZVwiLFxuICAgICAgICAgIFwibVwiXG4gICAgICAgICk7XG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgXCJvcmllbnRhdGlvblwiLFxuICAgICAgICAgIFwidmVydGljYWxcIlxuICAgICAgICApO1xuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJoaWRkZW5cIiwgZmFsc2UpO1xuXG4gICAgICAgIGZpZWxkLm9wdGlvbnMgPSBmaWVsZC5vcHRpb25zLm1hcCgoeDogYW55KTogYW55ID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHggPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIHggPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiB4LCBkaXNhYmxlZDogZmFsc2UsIGRlc2NyaXB0aW9uOiBcIlwiIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoeCwgXCJsYWJlbFwiKSAmJlxuICAgICAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImRpc2FibGVkXCIpICYmXG4gICAgICAgICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKHgsIFwiZGVzY3JpcHRpb25cIilcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghY2hlY2tPYmplY3RLZXlFeGlzdHMoeCwgXCJkaXNhYmxlZFwiKSkge1xuICAgICAgICAgICAgICB4ID0geyAuLi54LCBkaXNhYmxlZDogZmFsc2UgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghY2hlY2tPYmplY3RLZXlFeGlzdHMoeCwgXCJkZXNjcmlwdGlvblwiKSkge1xuICAgICAgICAgICAgICB4ID0geyAuLi54LCBkZXNjcmlwdGlvbjogZmFsc2UgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVNsaWRlciA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaXNGb3JtRWxlbWVudFwiLCB0cnVlKTtcbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICBcIm1pblwiLFxuICAgICAgICAgIDBcbiAgICAgICAgKTtcbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICBcIm1heFwiLFxuICAgICAgICAgIDEwMFxuICAgICAgICApO1xuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgIFwic3RlcHNcIixcbiAgICAgICAgICAwXG4gICAgICAgICk7XG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgXCJxdWFudHVtXCIsXG4gICAgICAgICAgMVxuICAgICAgICApO1xuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgIFwic2l6ZVwiLFxuICAgICAgICAgIFwibFwiXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVNlYXJjaFRleHQgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImhpZGRlblwiLCBmYWxzZSk7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImlzRm9ybUVsZW1lbnRcIiwgdHJ1ZSk7XG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ0eXBlXCIpKSB7XG4gICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IFwic2VhcmNoLXRleHRcIikge1xuICAgICAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICBcInR5cGVcIixcbiAgICAgICAgICAgICAgXCJkcm9wZG93bi13aXRoLXNlYXJjaFwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVEcm9wZG93bldpdGhTZWFyY2ggPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImhpZGRlblwiLCBmYWxzZSk7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImlzRm9ybUVsZW1lbnRcIiwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVBcGlDYWxsID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJpc0Zvcm1FbGVtZW50XCIsIHRydWUpO1xuICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnByb3BlcnRpZXMsIFwic2hhcGVcIikpIHtcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKFxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICAgIFwic2hhcGVcIixcbiAgICAgICAgICAgIG51bGxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwic2hvd0xvYWRlclwiKSkge1xuICAgICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInNob3dMb2FkZXJcIiwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQucHJvcGVydGllcywgXCJzaXplXCIpKSB7XG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgICBcInNpemVcIixcbiAgICAgICAgICAgIFwibVwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImFwaVwiKSkge1xuICAgICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImFwaVwiLCB7fSk7XG5cbiAgICAgICAgICBmaWVsZC5hcGkgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKGZpZWxkLmFwaSwgXCJ1cmxcIiwgXCJcIik7XG4gICAgICAgICAgZmllbGQuYXBpID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZC5hcGksIFwicmVxdWVzdFwiLCBcIlwiKTtcbiAgICAgICAgICBmaWVsZC5hcGkgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKGZpZWxkLmFwaSwgXCJyZXNwb25zZVwiLCBcIlwiKTtcbiAgICAgICAgICBmaWVsZC5hcGkgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKGZpZWxkLmFwaSwgXCJzdGF0dXNcIiwgXCJcIik7XG5cbiAgICAgICAgICBmaWVsZC5hcGkuc3RhdHVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICAgIGZpZWxkLmFwaS5zdGF0dXMsXG4gICAgICAgICAgICBcInZhbHVlXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIlxuICAgICAgICAgICk7XG4gICAgICAgICAgZmllbGQuYXBpLnN0YXR1cyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXG4gICAgICAgICAgICBmaWVsZC5hcGkuc3RhdHVzLFxuICAgICAgICAgICAgXCJsYWJlbHNcIixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGVmYXVsdDogXCJDYWxsIEFQSVwiLFxuICAgICAgICAgICAgICBsb2FkaW5nOiBcIkNhbGwgQVBJXCIsXG4gICAgICAgICAgICAgIHN1Y2Nlc3M6IFwiQVBJIFN1Y2Nlc3NcIixcbiAgICAgICAgICAgICAgZmFpbGVkOiBcIkFQSSBGYWlsZWRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC5hcGksIFwicmVxdWVzdFwiKSAmJlxuICAgICAgICAgICFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC5hcGksIFwiZW50cnlwb2ludFwiKVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBTZXQgZW50cnlwb2ludCBhcyBGaXJzdCBlbmRwb2ludC5cbiAgICAgICAgICBjb25zdCBlbnRyeXBvaW50ID0ge1xuICAgICAgICAgICAgdHJpZ2dlcnM6IFtcIk9OX0FQSV9DQUxMXCJdLFxuICAgICAgICAgICAgcnVsZXM6IFtdLFxuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IFwiMVwiLFxuICAgICAgICAgICAgICAgIGtleTogXCJBUElfQ0FMTFwiLFxuICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCJ0cnVlXCIsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkS2V5OiBmaWVsZC5rZXksXG4gICAgICAgICAgICAgICAgICBhcGlLZXk6IGZpZWxkLmFwaS5lbmRwb2ludHNbMF0uYXBpS2V5XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfTtcbiAgICAgICAgICBmaWVsZCA9IHNldE1pc3NpbmdLZXlWYWx1ZShmaWVsZC5hcGksIFwiZW50cnlwb2ludFwiLCBlbnRyeXBvaW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlT3RwID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJpc0Zvcm1FbGVtZW50XCIsIHRydWUpO1xuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxuICAgICAgICAgIFwibWFza1wiLFxuICAgICAgICAgIG5ldyBBcnJheShmaWVsZC5wcm9wZXJ0aWVzLm90cExlbmd0aCkuZmlsbChcIiNcIikuam9pbihcIiBcIilcbiAgICAgICAgKTtcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaGlkZGVuXCIsIGZhbHNlKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlQWFkaGFhck51bWJlciA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaXNGb3JtRWxlbWVudFwiLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcblxuICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5IVE1MOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlSHRtbChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5USVRMRTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVRpdGxlKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRFWFQ6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVUZXh0KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRFWFRBUkVBOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlVGV4dGFyZWEoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQ0hFQ0tCT1g6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVDaGVja2JveChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5OVU1CRVI6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVOdW1iZXIoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuUFJFVklFV19JTUFHRTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVByZXZpZXdJbWFnZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5EQVRFOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlRGF0ZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5QSE9ORTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVBob25lKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlJBRElPOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlUmFkaW8oZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuU0xJREVSOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU2xpZGVyKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInNlYXJjaC10ZXh0XCI6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVTZWFyY2hUZXh0KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkRST1BET1dOX1dJVEhfU0VBUkNIOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlRHJvcGRvd25XaXRoU2VhcmNoKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkFQSV9DQUxMOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlQXBpQ2FsbChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5PVFA6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVPdHAoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQUFESEFBUl9OVU1CRVI6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVBYWRoYWFyTnVtYmVyKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCBnZXRDb25uZWN0ZWRFbGVtZW50VHlwZVZhbHVlT2JqZWN0ID0gKGtleTogYW55KTogYW55ID0+IHtcbiAgICAgIGNvbnN0IG9iamVjdCA9IHtcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIGNvbmRpdGlvbnM6IHsgZm9ybXVsYTogXCJcIiwgcnVsZXM6IFtdIH0sXG4gICAgICAgIGFjdGlvbnM6IHsgc3VjY2VzczogW10sIGZhaWx1cmU6IFtdIH1cbiAgICAgIH07XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICBjb25zdCBmb3JtYXRGaWVsZEtleXMgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICBmaWVsZCA9IHNldE1pc3NpbmdLZXlWYWx1ZShmaWVsZCwgXCJkaXNhYmxlZFwiLCBmYWxzZSk7XG5cbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJjb25uZWN0ZWRUb1wiKSkge1xuICAgICAgICBpZiAodHlwZW9mIGZpZWxkW1wiY29ubmVjdGVkVG9cIl0gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICBmaWVsZFtcImNvbm5lY3RlZEVsZW1lbnRzXCJdID0gW1xuICAgICAgICAgICAgZ2V0Q29ubmVjdGVkRWxlbWVudFR5cGVWYWx1ZU9iamVjdChmaWVsZFtcImNvbm5lY3RlZFRvXCJdKVxuICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmllbGRbXCJjb25uZWN0ZWRUb1wiXSA9IGZpZWxkW1wiY29ubmVjdGVkVG9cIl0ubWFwKChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGdldENvbm5lY3RlZEVsZW1lbnRUeXBlVmFsdWVPYmplY3Qoa2V5KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBmaWVsZFtcImNvbm5lY3RlZEVsZW1lbnRzXCJdID0gZmllbGRbXCJjb25uZWN0ZWRUb1wiXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5yZW1vdmVGaWVsZEtleShmaWVsZCwgXCJjb25uZWN0ZWRUb1wiKTtcblxuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImNvbm5lY3RlZFRvUGFyZW50XCIpKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZmllbGRbXCJjb25uZWN0ZWRUb1BhcmVudFwiXSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGZpZWxkW1wiY29ubmVjdGVkUGFyZW50RmllbGRzXCJdID0gW1xuICAgICAgICAgICAgZ2V0Q29ubmVjdGVkRWxlbWVudFR5cGVWYWx1ZU9iamVjdChmaWVsZFtcImNvbm5lY3RlZFRvUGFyZW50XCJdKVxuICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmllbGRbXCJjb25uZWN0ZWRQYXJlbnRGaWVsZHNcIl0gPSBnZXRDb25uZWN0ZWRFbGVtZW50VHlwZVZhbHVlT2JqZWN0KFxuICAgICAgICAgICAgZmllbGRbXCJjb25uZWN0ZWRUb1BhcmVudFwiXVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMucmVtb3ZlRmllbGRLZXkoZmllbGQsIFwiY29ubmVjdGVkVG9QYXJlbnRcIik7XG5cbiAgICAgIHRoaXMucmVtb3ZlRmllbGRLZXkoZmllbGQsIFwic2lkZUVmZmVjdFwiKTtcblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZFZhbGlkYXRvckNvbmZpZyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGlmIChmaWVsZC5pc0Zvcm1FbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpXG4gICAgICAgICAgPyBmaWVsZC52YWxpZGF0b3JzXG4gICAgICAgICAgOiB7fTtcblxuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQsIFwidmFsaWRhdG9yc1wiLCB7fSk7XG5cbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidmFsaWRhdG9yc1wiLCB7XG4gICAgICAgICAgLi4uZmllbGRbXCJ2YWxpZGF0b3JzXCJdLFxuICAgICAgICAgIG1pbjogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJtaW5cIilcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eVZhbHVlKHZhbGlkYXRvcnMubWluKVxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1pbilcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1pblwiKVxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWluKVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIG1heDogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJtYXhcIilcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eVZhbHVlKHZhbGlkYXRvcnMubWF4KVxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1heClcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1heFwiKVxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWF4KVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIHJlcXVpcmVkOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcInJlcXVpcmVkXCIpXG4gICAgICAgICAgICA/IEJvb2xlYW4odmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwicmVxdWlyZWRcIilcbiAgICAgICAgICAgID8gQm9vbGVhbihmaWVsZC5yZXF1aXJlZClcbiAgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgICAgbWluTGVuZ3RoOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcIm1pbkxlbmd0aFwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5taW5MZW5ndGgpXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWluTGVuZ3RoKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibWluTGVuZ3RoXCIpXG4gICAgICAgICAgICA/IE51bWJlcihmaWVsZC5taW5MZW5ndGgpXG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgbWF4TGVuZ3RoOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcIm1heExlbmd0aFwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5tYXhMZW5ndGgpXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWF4TGVuZ3RoKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibGVuZ3RoXCIpXG4gICAgICAgICAgICA/IE51bWJlcihmaWVsZC5sZW5ndGgpXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1heExlbmd0aFwiKVxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWF4TGVuZ3RoKVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIHBhdHRlcm46IGNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbGlkYXRvcnMsIFwicGF0dGVyblwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5wYXR0ZXJuKVxuICAgICAgICAgICAgICA/IHZhbGlkYXRvcnMucGF0dGVyblxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJwYXR0ZXJuXCIpXG4gICAgICAgICAgICA/IHsga2V5OiBcIkNVU1RPTVwiLCBwYXR0ZXJuOiBTdHJpbmcoZmllbGQucGF0dGVybikgfVxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJyZWdleFwiKVxuICAgICAgICAgICAgPyB7IGtleTogXCJDVVNUT01cIiwgcGF0dGVybjogU3RyaW5nKGZpZWxkLnJlZ2V4KSB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcblxuICAgICAgICBkZWxldGUgZmllbGQubWluO1xuICAgICAgICBkZWxldGUgZmllbGQubWF4O1xuICAgICAgICBkZWxldGUgZmllbGQucmVxdWlyZWQ7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5taW5MZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5sZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5tYXhMZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5wYXR0ZXJuO1xuICAgICAgICBkZWxldGUgZmllbGQucmVnZXg7XG5cbiAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRFWFQ6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQ0hFQ0tCT1g6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLlBSRVZJRVdfSU1BR0U6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGg7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnM/Lm1pbikpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzPy5tYXgpKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ubWluTGVuZ3RoKSkge1xuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbkxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnM/Lm1heExlbmd0aCkpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzPy5wYXR0ZXJuKSkge1xuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLnBhdHRlcm47XG4gICAgICAgIH1cblxuICAgICAgICBmaWVsZC5mb2N1cyA9IGZhbHNlO1xuICAgICAgICBmaWVsZC5pbnZhbGlkID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGREZWZhdWx0VmFsdWVDb25maWcgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICBpZiAoZmllbGQuaXNGb3JtRWxlbWVudCkge1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiZGVmYXVsdFZhbHVlXCIpKSB7XG4gICAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgICB9IGVsc2UgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImRlZmF1bHRcIikpIHtcbiAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImRlZmF1bHRWYWxcIikpIHtcbiAgICAgICAgICAgIC8vIEN1cnJlbnRseSBiZWxvdyBsaW5lIGlzIGNvbW1lbnRlZCBiZWNhdXNlIGl0IGNhdXNlZCBpc3N1ZXMgaW4gc2V0dGluZyBEZWZhdWx0IFZhbHVlLlxuICAgICAgICAgICAgLy8gZmllbGRbXCJkZWZhdWx0VmFsdWVcIl0gPSBmaWVsZFtcImRlZmF1bHRWYWxcIl07XG4gICAgICAgICAgICAvLyBkZWxldGUgZmllbGRbXCJkZWZhdWx0VmFsXCJdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFRPRE86IENvbmRpdGlvbiBmb3IgYWxsX2Zvcm1zX2RhdGEgaXMgbm90IGNvbnNpZGVyZWQgeWV0LlxuICAgICAgICAgIGlmIChmaWVsZC5hdXRvUG9wdWxhdGVGcm9tU3VtbWFyeURhdGEpIHtcbiAgICAgICAgICAgIGZpZWxkW1wiZGVmYXVsdFZhbHVlXCJdID0ge1xuICAgICAgICAgICAgICBpc19mb3VuZDogZmFsc2UsXG4gICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICBzb3VyY2VzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgc291cmNlOiBcInN1bW1hcnlfZGF0YVwiLFxuICAgICAgICAgICAgICAgICAgc3VtbWFyeV9kYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IGAkLiR7ZmllbGQua2V5fWAsXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICBydWxlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImlzX25vdF9lbXB0eVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpc19ub3RfZW1wdHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2V0X2RlZmF1bHRfdmFsdWVfZm91bmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0X2RlZmF1bHRfdmFsdWVfZm91bmQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImVuYWJsZV9maWVsZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiMSBPUiBOT1QoMSlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlX2ZpZWxkOiB7IHZhbHVlOiB0cnVlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJhdXRvZmlsbFwiKSkge1xuICAgICAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLmF1dG9maWxsLCBcInR5cGVcIikpIHtcbiAgICAgICAgICAgICAgaWYgKGZpZWxkLmF1dG9maWxsLnR5cGUgPT09IFwic3RvcmFnZVwiKSB7XG4gICAgICAgICAgICAgICAgZmllbGRbXCJkZWZhdWx0VmFsdWVcIl0gPSB7XG4gICAgICAgICAgICAgICAgICBpc19mb3VuZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICAgICAgICAgIHNvdXJjZXM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogXCJicm93c2VyX3N0b3JhZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX3N0b3JhZ2U6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IGAkLiR7ZmllbGQua2V5fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiaXNfbm90X2VtcHR5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19ub3RfZW1wdHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInNldF9kZWZhdWx0X3ZhbHVlX2ZvdW5kXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0X2RlZmF1bHRfdmFsdWVfZm91bmQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiZW5hYmxlX2ZpZWxkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiMSBPUiBOT1QoMSlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZV9maWVsZDogeyB2YWx1ZTogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZC5hdXRvZmlsbC50eXBlID09PSBcImNvbmZpZ1wiKSB7XG4gICAgICAgICAgICAgICAgZmllbGRbXCJkZWZhdWx0VmFsdWVcIl0gPSB7XG4gICAgICAgICAgICAgICAgICBpc19mb3VuZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICAgICAgICAgIHNvdXJjZXM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogXCJmaWVsZF9jb25maWdcIixcbiAgICAgICAgICAgICAgICAgICAgICBmaWVsZF9jb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IGAkLiR7ZmllbGQua2V5fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiaXNfbm90X2VtcHR5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19ub3RfZW1wdHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInNldF9kZWZhdWx0X3ZhbHVlX2ZvdW5kXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0X2RlZmF1bHRfdmFsdWVfZm91bmQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiZW5hYmxlX2ZpZWxkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiMSBPUiBOT1QoMSlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZV9maWVsZDogeyB2YWx1ZTogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWVsZFtcImRlZmF1bHRWYWx1ZVwiXSA9IHtcbiAgICAgICAgICAgICAgaXNfZm91bmQ6IGZhbHNlLFxuICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICAgICAgc291cmNlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHNvdXJjZTogXCJmb3JtX2RhdGFcIixcbiAgICAgICAgICAgICAgICAgIGZvcm1fZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBwYXRoOiBgJC4ke2ZpZWxkLmtleX1gLFxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgcnVsZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJpc19ub3RfZW1wdHlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfbm90X2VtcHR5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInNldF9kZWZhdWx0X3ZhbHVlX2ZvdW5kXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldF9kZWZhdWx0X3ZhbHVlX2ZvdW5kOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJlbmFibGVfZmllbGRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcIjEgT1IgTk9UKDEpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZV9maWVsZDogeyB2YWx1ZTogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZSBmaWVsZFtcImRlZmF1bHRWYWxcIl07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRNZXNzYWdlcyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGlmIChmaWVsZC5pc0Zvcm1FbGVtZW50KSB7XG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZCwgXCJtZXNzYWdlc1wiLCBbXSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRSZXNldEJ1dHRvbiA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGlmIChmaWVsZC5pc0Zvcm1FbGVtZW50KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJhY3Rpb25cIikgJiZcbiAgICAgICAgICBmaWVsZC5hY3Rpb24gPT09IFwicmVzZXRcIiAmJlxuICAgICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImZpZWxkc1wiKVxuICAgICAgICApIHtcbiAgICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJyZXNldFwiLCB7XG4gICAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkc1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2V0Rm9ybUZpZWxkcyA9IChmb3JtQ29uZmlnOiBhbnksIGZpZWxkczogYW55W10pOiBhbnkgPT4ge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm1Db25maWcsIFwibXVsdGlGb3JtXCIpKSB7XG4gICAgICAgIGZvcm1Db25maWcubXVsdGlGb3JtW1wiZmllbGRzXCJdID0gZmllbGRzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybUNvbmZpZ1tcImZpZWxkc1wiXSA9IGZpZWxkcztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcm1Db25maWc7XG4gICAgfTtcblxuICAgIGNvbnN0IHNldEZvcm1GaWVsZEdyb3VwcyA9IChmb3JtQ29uZmlnOiBhbnksIGdyb3VwczogYW55KTogYW55ID0+IHtcbiAgICAgIGZvcm1Db25maWdbXCJmaWVsZEdyb3Vwc1wiXSA9IGdyb3VwcztcblxuICAgICAgcmV0dXJuIGZvcm1Db25maWc7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUZvcm1GaWVsZEdyb3VwcyA9IChmaWVsZEdyb3VwczogYW55LCBmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJncm91cEtleVwiKSkge1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGRHcm91cHMsIGZpZWxkLmdyb3VwS2V5KSkge1xuICAgICAgICAgIGZpZWxkR3JvdXBzW2ZpZWxkLmdyb3VwS2V5XS5wdXNoKGZpZWxkLmtleSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmllbGRHcm91cHNbZmllbGQuZ3JvdXBLZXldID0gW2ZpZWxkLmtleV07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkR3JvdXBzO1xuICAgIH07XG5cbiAgICBsZXQgZmllbGRzOiBhbnlbXSA9IHRoaXMuZ2V0Rm9ybUZpZWxkcyhmb3JtQ29uZmlnKTtcblxuICAgIGxldCBmaWVsZEdyb3VwczogYW55ID0ge307XG5cbiAgICBmb3IgKGxldCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgIGZpZWxkID0gdXBkYXRlT25GaWVsZFR5cGUoZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkS2V5cyhmaWVsZCk7XG5cbiAgICAgIGZpZWxkR3JvdXBzID0gdXBkYXRlRm9ybUZpZWxkR3JvdXBzKGZpZWxkR3JvdXBzLCBmaWVsZCk7XG5cbiAgICAgIGZpZWxkID0gdXBkYXRlRmllbGREZWZhdWx0VmFsdWVDb25maWcoZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkVmFsaWRhdG9yQ29uZmlnKGZpZWxkKTtcblxuICAgICAgZmllbGQgPSB1cGRhdGVGaWVsZFJlc2V0QnV0dG9uKGZpZWxkKTtcblxuICAgICAgZmllbGQgPSB1cGRhdGVGaWVsZE1lc3NhZ2VzKGZpZWxkKTtcbiAgICB9XG5cbiAgICBmb3JtQ29uZmlnID0gc2V0Rm9ybUZpZWxkR3JvdXBzKGZvcm1Db25maWcsIGZpZWxkR3JvdXBzKTtcblxuICAgIGZvcm1Db25maWcgPSBzZXRGb3JtRmllbGRzKGZvcm1Db25maWcsIGZpZWxkcyk7XG5cbiAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgfVxufVxuIl19
@@ -3,6 +3,7 @@ export var EFieldType;
3
3
  EFieldType["HTML"] = "html";
4
4
  EFieldType["TITLE"] = "title";
5
5
  EFieldType["TEXT"] = "text";
6
+ EFieldType["TEXTAREA"] = "textarea";
6
7
  EFieldType["CHECKBOX"] = "checkbox";
7
8
  EFieldType["NUMBER"] = "number";
8
9
  EFieldType["DATE"] = "date";
@@ -15,4 +16,4 @@ export var EFieldType;
15
16
  EFieldType["AADHAAR_NUMBER"] = "aadhaar-number";
16
17
  EFieldType["SLIDER"] = "slider";
17
18
  })(EFieldType || (EFieldType = {}));
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZpZWxkcy5kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2RlZmluaXRpb25zL2Zvcm0tdmlldy5maWVsZHMuZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLENBQU4sSUFBWSxVQWVYO0FBZkQsV0FBWSxVQUFVO0lBQ3BCLDJCQUFhLENBQUE7SUFDYiw2QkFBZSxDQUFBO0lBQ2YsMkJBQWEsQ0FBQTtJQUNiLG1DQUFxQixDQUFBO0lBQ3JCLCtCQUFpQixDQUFBO0lBQ2pCLDJCQUFhLENBQUE7SUFDYiw2Q0FBK0IsQ0FBQTtJQUMvQiw2QkFBZSxDQUFBO0lBQ2YsNkJBQWUsQ0FBQTtJQUNmLDJEQUE2QyxDQUFBO0lBQzdDLG1DQUFxQixDQUFBO0lBQ3JCLHlCQUFXLENBQUE7SUFDWCwrQ0FBaUMsQ0FBQTtJQUNqQywrQkFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBZlcsVUFBVSxLQUFWLFVBQVUsUUFlckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUQWN0aW9uLCBUUnVsZSwgVFNvdXJjZSwgVFZhbGlkYXRpb24gfSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcbmltcG9ydCB7IFRBcGkgfSBmcm9tIFwiLi9mb3JtLXZpZXcuYXBpcy5kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBUTWVzc2FnZSB9IGZyb20gXCIuL2Zvcm0tdmlldy5jb21tb25zLmRlZmluaXRpb25cIjtcbmltcG9ydCB7IFRWYWxpZGF0b3IgfSBmcm9tIFwiLi9mb3JtLXZpZXcuZm9ybS12YWxpZGF0aW9ucy5kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBUVHJpZ2dlciB9IGZyb20gXCIuL2Zvcm0tdmlldy50cmlnZ2Vycy5kZWZpbml0aW9uXCI7XG5cbmV4cG9ydCBlbnVtIEVGaWVsZFR5cGUge1xuICBIVE1MID0gXCJodG1sXCIsXG4gIFRJVExFID0gXCJ0aXRsZVwiLFxuICBURVhUID0gXCJ0ZXh0XCIsXG4gIENIRUNLQk9YID0gXCJjaGVja2JveFwiLFxuICBOVU1CRVIgPSBcIm51bWJlclwiLFxuICBEQVRFID0gXCJkYXRlXCIsXG4gIFBSRVZJRVdfSU1BR0UgPSBcInByZXZpZXctaW1hZ2VcIixcbiAgUEhPTkUgPSBcInBob25lXCIsXG4gIFJBRElPID0gXCJyYWRpb1wiLFxuICBEUk9QRE9XTl9XSVRIX1NFQVJDSCA9IFwiZHJvcGRvd24td2l0aC1zZWFyY2hcIixcbiAgQVBJX0NBTEwgPSBcImFwaS1jYWxsXCIsXG4gIE9UUCA9IFwib3RwXCIsXG4gIEFBREhBQVJfTlVNQkVSID0gXCJhYWRoYWFyLW51bWJlclwiLFxuICBTTElERVIgPSBcInNsaWRlclwiXG59XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFR5cGUgPVxuICB8IEVGaWVsZFR5cGUuSFRNTFxuICB8IEVGaWVsZFR5cGUuVElUTEVcbiAgfCBFRmllbGRUeXBlLlRFWFRcbiAgfCBFRmllbGRUeXBlLkNIRUNLQk9YXG4gIHwgRUZpZWxkVHlwZS5OVU1CRVJcbiAgfCBFRmllbGRUeXBlLkRBVEVcbiAgfCBFRmllbGRUeXBlLlBSRVZJRVdfSU1BR0VcbiAgfCBFRmllbGRUeXBlLlBIT05FXG4gIHwgRUZpZWxkVHlwZS5SQURJT1xuICB8IEVGaWVsZFR5cGUuRFJPUERPV05fV0lUSF9TRUFSQ0hcbiAgfCBFRmllbGRUeXBlLkFQSV9DQUxMXG4gIHwgRUZpZWxkVHlwZS5PVFBcbiAgfCBFRmllbGRUeXBlLkFBREhBQVJfTlVNQkVSXG4gIHwgRUZpZWxkVHlwZS5TTElERVI7XG5cbmV4cG9ydCB0eXBlIFRGaWVsZERyb3Bkb3duV2l0aFNlYXJjaE9wdGlvbiA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFJhZGlvT3B0aW9uID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZERlZmF1bHRWYWx1ZSA9IHtcbiAgaXNfZm91bmQ6IGJvb2xlYW47XG4gIHZhbHVlOiBhbnk7XG4gIHNvdXJjZXM6IEFycmF5PFRTb3VyY2U+O1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkRGVmYXVsdERyb3Bkb3duT3B0aW9ucyA9IHtcbiAgdHJpZ2dlcnM6IFRUcmlnZ2VyW107XG4gIHJ1bGVzOiBUUnVsZVtdO1xuICBhY3Rpb25zOiBUQWN0aW9uW107XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGREZWZhdWx0ID0ge1xuICB2YWx1ZTogVEZpZWxkRGVmYXVsdFZhbHVlO1xuICBvcHRpb25zOiBURmllbGREZWZhdWx0RHJvcGRvd25PcHRpb25zO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkUHJvcGVydGllcyA9IHtcbiAgLy8gZGVmaW5lIHRoZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIGNvbW1vbiB0byBhbGwgZmllbGRzXG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRUZXh0UHJvcGVydGllcyA9IFRGaWVsZFByb3BlcnRpZXMgJiB7XG4gIGNhc2U6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcmVhZE9ubHk6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZENoZWNrYm94UHJvcGVydGllcyA9IFRGaWVsZFByb3BlcnRpZXMgJiB7XG4gIGNvbnRlbnRBbGlnbjogc3RyaW5nO1xuICBzaXplOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGROdW1iZXJQcm9wZXJ0aWVzID0gVEZpZWxkUHJvcGVydGllcyAmIHtcbiAgbWluOiBudW1iZXI7XG4gIG1heDogbnVtYmVyO1xuICBwcmVmaXg6IG51bWJlcjtcbiAgcG9zdGZpeDogbnVtYmVyO1xuICBwcmVjaXNpb246IG51bWJlcjtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgZGVjaW1hbDogc3RyaW5nO1xuICByZWFkT25seTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZERhdGVQcm9wZXJ0aWVzID0gVEZpZWxkUHJvcGVydGllcyAmIHtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgbWluOiB7XG4gICAgeWVhcjogbnVtYmVyO1xuICAgIG1vbnRoOiBudW1iZXI7XG4gICAgZGF5OiBudW1iZXI7XG4gIH07XG4gIG1heDoge1xuICAgIHllYXI6IG51bWJlcjtcbiAgICBtb250aDogbnVtYmVyO1xuICAgIGRheTogbnVtYmVyO1xuICB9O1xuICByZWFkT25seTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFBob25lUHJvcGVydGllcyA9IFRGaWVsZFByb3BlcnRpZXMgJiB7XG4gIGNvdW50cnlDb2RlOiBzdHJpbmc7XG4gIHBob25lTWFza0FmdGVyQ291bnRyeUNvZGU6IHN0cmluZztcbiAgcmVtb3ZlQ291bnRyeUNvZGVGcm9tVmFsdWU6IGJvb2xlYW47XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkUHJldmlld0ltYWdlUHJvcGVydGllcyA9IFRGaWVsZFByb3BlcnRpZXMgJiB7XG4gIGFsdFRleHQ6IHN0cmluZztcbiAgaHRtbDoge1xuICAgIGJlZm9yZTogc3RyaW5nO1xuICAgIGFmdGVyOiBzdHJpbmc7XG4gIH07XG4gIGltYWdlVHlwZTogc3RyaW5nO1xuICBsb2FkaW5nVHlwZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkU2xpZGVyUHJvcGVydGllcyA9IFRGaWVsZFByb3BlcnRpZXMgJiB7XG4gIG1pbjogbnVtYmVyO1xuICBtYXg6IG51bWJlcjtcbiAgc3RlcDogbnVtYmVyO1xuICBxdWFudHVtOiBudW1iZXI7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkUmFkaW9Qcm9wZXJ0aWVzID0gVEZpZWxkUHJvcGVydGllcyAmIHtcbiAgc2l6ZTogc3RyaW5nO1xuICBvcmllbnRhdGlvbjogc3RyaW5nO1xuICByZWFkT25seTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkRHJvcGRvd25XaXRoU2VhcmNoUHJvcGVydGllcyA9IFRGaWVsZFByb3BlcnRpZXMgJiB7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkQXBpQ2FsbFByb3BlcnRpZXMgPSBURmllbGRQcm9wZXJ0aWVzICYge307XG5cbmV4cG9ydCB0eXBlIFRGaWVsZE90cFByb3BlcnRpZXMgPSBURmllbGRQcm9wZXJ0aWVzICYge1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBtYXNrOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRBYWRoYWFyTnVtYmVyUHJvcGVydGllcyA9IFRGaWVsZFByb3BlcnRpZXMgJiB7XG4gIG1hc2s6IHN0cmluZztcbiAgcmVhZE9ubHk6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZCA9IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdHlwZTogVEZpZWxkVHlwZTtcbiAga2V5OiBzdHJpbmc7XG4gIGRpc2FibGVkOiBib29sZWFuO1xuICBtZXNzYWdlczogQXJyYXk8VE1lc3NhZ2U+O1xuICBkZWZhdWx0OiBURmllbGREZWZhdWx0O1xuICB2YWxpZGF0b3JzOiBUVmFsaWRhdG9yO1xuICB2YWxpZGF0aW9uOiBUVmFsaWRhdGlvbjtcbiAgcHJvcGVydGllczogVEZpZWxkUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFRpdGxlID0ge1xuICB0eXBlOiBURmllbGRUeXBlO1xuICBsYWJlbDogc3RyaW5nO1xuICBrZXk6IHN0cmluZztcbiAgcmVzZXQ/OiB7XG4gICAgZmllbGRzOiBBcnJheTx7XG4gICAgICBmaWVsZEtleTogc3RyaW5nO1xuICAgICAgYWN0aW9uczogQXJyYXk8VEFjdGlvbj47XG4gICAgfT47XG4gIH07XG4gIHByb3BlcnRpZXM/OiB7XG4gICAgYnlwYXNzUmVzZXRDb25maXJtYXRpb24/OiBib29sZWFuO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkVGV4dCA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkVGV4dFByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRDaGVja2JveCA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkQ2hlY2tib3hQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkTnVtYmVyID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGROdW1iZXJQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkRGF0ZSA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkRGF0ZVByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRQaG9uZSA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkUGhvbmVQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkUmFkaW8gPSBURmllbGQgJiB7XG4gIG9wdGlvbnM6IEFycmF5PFRGaWVsZFJhZGlvT3B0aW9uPjtcbiAgcHJvcGVydGllczogVEZpZWxkUmFkaW9Qcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkRHJvcGRvd25XaXRoU2VhcmNoID0gVEZpZWxkICYge1xuICBvcHRpb25zOiBBcnJheTxURmllbGREcm9wZG93bldpdGhTZWFyY2hPcHRpb24+O1xuICBwcm9wZXJ0aWVzOiBURmllbGREcm9wZG93bldpdGhTZWFyY2hQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkQXBpQ2FsbCA9IFRGaWVsZCAmIHtcbiAgYXBpOiBUQXBpO1xuICBwcm9wZXJ0aWVzOiBURmllbGRBcGlDYWxsUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZE90cCA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkT3RwUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZEFhZGhhYXJOdW1iZXIgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZEFhZGhhYXJOdW1iZXJQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkUHJldmlld0ltYWdlID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGRQcmV2aWV3SW1hZ2VQcm9wZXJ0aWVzO1xufTtcbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZpZWxkcy5kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2RlZmluaXRpb25zL2Zvcm0tdmlldy5maWVsZHMuZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLENBQU4sSUFBWSxVQWdCWDtBQWhCRCxXQUFZLFVBQVU7SUFDcEIsMkJBQWEsQ0FBQTtJQUNiLDZCQUFlLENBQUE7SUFDZiwyQkFBYSxDQUFBO0lBQ2IsbUNBQXFCLENBQUE7SUFDckIsbUNBQXFCLENBQUE7SUFDckIsK0JBQWlCLENBQUE7SUFDakIsMkJBQWEsQ0FBQTtJQUNiLDZDQUErQixDQUFBO0lBQy9CLDZCQUFlLENBQUE7SUFDZiw2QkFBZSxDQUFBO0lBQ2YsMkRBQTZDLENBQUE7SUFDN0MsbUNBQXFCLENBQUE7SUFDckIseUJBQVcsQ0FBQTtJQUNYLCtDQUFpQyxDQUFBO0lBQ2pDLCtCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFoQlcsVUFBVSxLQUFWLFVBQVUsUUFnQnJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVEFjdGlvbiwgVFJ1bGUsIFRTb3VyY2UsIFRWYWxpZGF0aW9uIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBUQXBpIH0gZnJvbSBcIi4vZm9ybS12aWV3LmFwaXMuZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgVE1lc3NhZ2UgfSBmcm9tIFwiLi9mb3JtLXZpZXcuY29tbW9ucy5kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBUVmFsaWRhdG9yIH0gZnJvbSBcIi4vZm9ybS12aWV3LmZvcm0tdmFsaWRhdGlvbnMuZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgVFRyaWdnZXIgfSBmcm9tIFwiLi9mb3JtLXZpZXcudHJpZ2dlcnMuZGVmaW5pdGlvblwiO1xuXG5leHBvcnQgZW51bSBFRmllbGRUeXBlIHtcbiAgSFRNTCA9IFwiaHRtbFwiLFxuICBUSVRMRSA9IFwidGl0bGVcIixcbiAgVEVYVCA9IFwidGV4dFwiLFxuICBURVhUQVJFQSA9IFwidGV4dGFyZWFcIixcbiAgQ0hFQ0tCT1ggPSBcImNoZWNrYm94XCIsXG4gIE5VTUJFUiA9IFwibnVtYmVyXCIsXG4gIERBVEUgPSBcImRhdGVcIixcbiAgUFJFVklFV19JTUFHRSA9IFwicHJldmlldy1pbWFnZVwiLFxuICBQSE9ORSA9IFwicGhvbmVcIixcbiAgUkFESU8gPSBcInJhZGlvXCIsXG4gIERST1BET1dOX1dJVEhfU0VBUkNIID0gXCJkcm9wZG93bi13aXRoLXNlYXJjaFwiLFxuICBBUElfQ0FMTCA9IFwiYXBpLWNhbGxcIixcbiAgT1RQID0gXCJvdHBcIixcbiAgQUFESEFBUl9OVU1CRVIgPSBcImFhZGhhYXItbnVtYmVyXCIsXG4gIFNMSURFUiA9IFwic2xpZGVyXCJcbn1cblxuZXhwb3J0IHR5cGUgVEZpZWxkVHlwZSA9XG4gIHwgRUZpZWxkVHlwZS5IVE1MXG4gIHwgRUZpZWxkVHlwZS5USVRMRVxuICB8IEVGaWVsZFR5cGUuVEVYVFxuICB8IEVGaWVsZFR5cGUuVEVYVEFSRUFcbiAgfCBFRmllbGRUeXBlLkNIRUNLQk9YXG4gIHwgRUZpZWxkVHlwZS5OVU1CRVJcbiAgfCBFRmllbGRUeXBlLkRBVEVcbiAgfCBFRmllbGRUeXBlLlBSRVZJRVdfSU1BR0VcbiAgfCBFRmllbGRUeXBlLlBIT05FXG4gIHwgRUZpZWxkVHlwZS5SQURJT1xuICB8IEVGaWVsZFR5cGUuRFJPUERPV05fV0lUSF9TRUFSQ0hcbiAgfCBFRmllbGRUeXBlLkFQSV9DQUxMXG4gIHwgRUZpZWxkVHlwZS5PVFBcbiAgfCBFRmllbGRUeXBlLkFBREhBQVJfTlVNQkVSXG4gIHwgRUZpZWxkVHlwZS5TTElERVI7XG5cbmV4cG9ydCB0eXBlIFRGaWVsZERyb3Bkb3duV2l0aFNlYXJjaE9wdGlvbiA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFJhZGlvT3B0aW9uID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZERlZmF1bHRWYWx1ZSA9IHtcbiAgaXNfZm91bmQ6IGJvb2xlYW47XG4gIHZhbHVlOiBhbnk7XG4gIHNvdXJjZXM6IEFycmF5PFRTb3VyY2U+O1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkRGVmYXVsdERyb3Bkb3duT3B0aW9ucyA9IHtcbiAgdHJpZ2dlcnM6IFRUcmlnZ2VyW107XG4gIHJ1bGVzOiBUUnVsZVtdO1xuICBhY3Rpb25zOiBUQWN0aW9uW107XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGREZWZhdWx0ID0ge1xuICB2YWx1ZTogVEZpZWxkRGVmYXVsdFZhbHVlO1xuICBvcHRpb25zOiBURmllbGREZWZhdWx0RHJvcGRvd25PcHRpb25zO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkUHJvcGVydGllcyA9IHtcbiAgLy8gZGVmaW5lIHRoZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIGNvbW1vbiB0byBhbGwgZmllbGRzXG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRUZXh0UHJvcGVydGllcyA9IFRGaWVsZFByb3BlcnRpZXMgJiB7XG4gIGNhc2U6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcmVhZE9ubHk6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFRleHRhcmVhUHJvcGVydGllcyA9IFRGaWVsZFByb3BlcnRpZXMgJiB7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRDaGVja2JveFByb3BlcnRpZXMgPSBURmllbGRQcm9wZXJ0aWVzICYge1xuICBjb250ZW50QWxpZ246IHN0cmluZztcbiAgc2l6ZTogc3RyaW5nO1xuICByZWFkT25seTogc3RyaW5nO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkTnVtYmVyUHJvcGVydGllcyA9IFRGaWVsZFByb3BlcnRpZXMgJiB7XG4gIG1pbjogbnVtYmVyO1xuICBtYXg6IG51bWJlcjtcbiAgcHJlZml4OiBudW1iZXI7XG4gIHBvc3RmaXg6IG51bWJlcjtcbiAgcHJlY2lzaW9uOiBudW1iZXI7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIGRlY2ltYWw6IHN0cmluZztcbiAgcmVhZE9ubHk6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGREYXRlUHJvcGVydGllcyA9IFRGaWVsZFByb3BlcnRpZXMgJiB7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIG1pbjoge1xuICAgIHllYXI6IG51bWJlcjtcbiAgICBtb250aDogbnVtYmVyO1xuICAgIGRheTogbnVtYmVyO1xuICB9O1xuICBtYXg6IHtcbiAgICB5ZWFyOiBudW1iZXI7XG4gICAgbW9udGg6IG51bWJlcjtcbiAgICBkYXk6IG51bWJlcjtcbiAgfTtcbiAgcmVhZE9ubHk6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRQaG9uZVByb3BlcnRpZXMgPSBURmllbGRQcm9wZXJ0aWVzICYge1xuICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICBwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlOiBzdHJpbmc7XG4gIHJlbW92ZUNvdW50cnlDb2RlRnJvbVZhbHVlOiBib29sZWFuO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICByZWFkT25seTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFByZXZpZXdJbWFnZVByb3BlcnRpZXMgPSBURmllbGRQcm9wZXJ0aWVzICYge1xuICBhbHRUZXh0OiBzdHJpbmc7XG4gIGh0bWw6IHtcbiAgICBiZWZvcmU6IHN0cmluZztcbiAgICBhZnRlcjogc3RyaW5nO1xuICB9O1xuICBpbWFnZVR5cGU6IHN0cmluZztcbiAgbG9hZGluZ1R5cGU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFNsaWRlclByb3BlcnRpZXMgPSBURmllbGRQcm9wZXJ0aWVzICYge1xuICBtaW46IG51bWJlcjtcbiAgbWF4OiBudW1iZXI7XG4gIHN0ZXA6IG51bWJlcjtcbiAgcXVhbnR1bTogbnVtYmVyO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICByZWFkT25seTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFJhZGlvUHJvcGVydGllcyA9IFRGaWVsZFByb3BlcnRpZXMgJiB7XG4gIHNpemU6IHN0cmluZztcbiAgb3JpZW50YXRpb246IHN0cmluZztcbiAgcmVhZE9ubHk6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZERyb3Bkb3duV2l0aFNlYXJjaFByb3BlcnRpZXMgPSBURmllbGRQcm9wZXJ0aWVzICYge1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICByZWFkT25seTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZEFwaUNhbGxQcm9wZXJ0aWVzID0gVEZpZWxkUHJvcGVydGllcyAmIHt9O1xuXG5leHBvcnQgdHlwZSBURmllbGRPdHBQcm9wZXJ0aWVzID0gVEZpZWxkUHJvcGVydGllcyAmIHtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgbWFzazogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkQWFkaGFhck51bWJlclByb3BlcnRpZXMgPSBURmllbGRQcm9wZXJ0aWVzICYge1xuICBtYXNrOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGQgPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHR5cGU6IFRGaWVsZFR5cGU7XG4gIGtleTogc3RyaW5nO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgbWVzc2FnZXM6IEFycmF5PFRNZXNzYWdlPjtcbiAgZGVmYXVsdDogVEZpZWxkRGVmYXVsdDtcbiAgdmFsaWRhdG9yczogVFZhbGlkYXRvcjtcbiAgdmFsaWRhdGlvbjogVFZhbGlkYXRpb247XG4gIHByb3BlcnRpZXM6IFRGaWVsZFByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRUaXRsZSA9IHtcbiAgdHlwZTogVEZpZWxkVHlwZTtcbiAgbGFiZWw6IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG4gIHJlc2V0Pzoge1xuICAgIGZpZWxkczogQXJyYXk8e1xuICAgICAgZmllbGRLZXk6IHN0cmluZztcbiAgICAgIGFjdGlvbnM6IEFycmF5PFRBY3Rpb24+O1xuICAgIH0+O1xuICB9O1xuICBwcm9wZXJ0aWVzPzoge1xuICAgIGJ5cGFzc1Jlc2V0Q29uZmlybWF0aW9uPzogYm9vbGVhbjtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFRleHQgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZFRleHRQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkVGV4dEFyZWEgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZFRleHRhcmVhUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZENoZWNrYm94ID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGRDaGVja2JveFByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGROdW1iZXIgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZE51bWJlclByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGREYXRlID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGREYXRlUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFBob25lID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGRQaG9uZVByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRSYWRpbyA9IFRGaWVsZCAmIHtcbiAgb3B0aW9uczogQXJyYXk8VEZpZWxkUmFkaW9PcHRpb24+O1xuICBwcm9wZXJ0aWVzOiBURmllbGRSYWRpb1Byb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGREcm9wZG93bldpdGhTZWFyY2ggPSBURmllbGQgJiB7XG4gIG9wdGlvbnM6IEFycmF5PFRGaWVsZERyb3Bkb3duV2l0aFNlYXJjaE9wdGlvbj47XG4gIHByb3BlcnRpZXM6IFRGaWVsZERyb3Bkb3duV2l0aFNlYXJjaFByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRBcGlDYWxsID0gVEZpZWxkICYge1xuICBhcGk6IFRBcGk7XG4gIHByb3BlcnRpZXM6IFRGaWVsZEFwaUNhbGxQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkT3RwID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGRPdHBQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkQWFkaGFhck51bWJlciA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkQWFkaGFhck51bWJlclByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRQcmV2aWV3SW1hZ2UgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZFByZXZpZXdJbWFnZVByb3BlcnRpZXM7XG59O1xuIl19