@cometchat/chat-uikit-angular 4.3.26 → 4.3.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,16 +38,7 @@ export class CometChatMessageInformationComponent {
38
38
  this.errorStateText = localize("SOMETHING_WRONG");
39
39
  this.loadingIconURL = "assets/Spinner.svg";
40
40
  this.receipts = [];
41
- this.receiptStyle = new ReceiptStyle({
42
- waitIconTint: this.themeService.theme.palette.getAccent700(),
43
- sentIconTint: this.themeService.theme.palette.getAccent600(),
44
- deliveredIconTint: this.themeService.theme.palette.getAccent600(),
45
- readIconTint: this.themeService.theme.palette.getPrimary(),
46
- errorIconTint: this.themeService.theme.palette.getError(),
47
- height: "20px",
48
- width: "20px",
49
- background: "transparent"
50
- });
41
+ this.receiptStyle = new ReceiptStyle({});
51
42
  this.isUserType = false;
52
43
  this.deliveredReceipt = Receipts.delivered;
53
44
  this.readReceipt = Receipts.read;
@@ -111,6 +102,15 @@ export class CometChatMessageInformationComponent {
111
102
  setTheme() {
112
103
  this.setMessageInfoStyle();
113
104
  this.setListItemStyle();
105
+ let { sendIconTint, deliveredIconTint, readIconTint } = this.messageInformationStyle;
106
+ this.receiptStyle = new ReceiptStyle({
107
+ sentIconTint: sendIconTint ?? this.themeService.theme.palette.getAccent600(),
108
+ deliveredIconTint: deliveredIconTint ?? this.themeService.theme.palette.getAccent600(),
109
+ readIconTint: readIconTint ?? this.themeService.theme.palette.getPrimary(),
110
+ height: "20px",
111
+ width: "20px",
112
+ background: "transparent"
113
+ });
114
114
  this.listStyle = {
115
115
  titleTextFont: this.messageInformationStyle.titleTextFont,
116
116
  titleTextColor: this.messageInformationStyle.titleTextColor,
@@ -167,7 +167,7 @@ export class CometChatMessageInformationComponent {
167
167
  height: "500px",
168
168
  width: "500px",
169
169
  captionTextColor: this.themeService.theme.palette.getAccent600(),
170
- captionTextFont: fontHelper(this.themeService.theme.typography.caption2)
170
+ captionTextFont: fontHelper(this.themeService.theme.typography.caption3)
171
171
  });
172
172
  this.messageInformationStyle = { ...defaultStyle, ...this.messageInformationStyle };
173
173
  }
@@ -305,4 +305,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
305
305
  }], errorStateView: [{
306
306
  type: Input
307
307
  }] } });
308
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9Db21ldENoYXRNZXNzYWdlSW5mb3JtYXRpb24vY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24vY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9Db21ldENoYXRNZXNzYWdlSW5mb3JtYXRpb24vY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24vY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFpRCxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQUUsc0JBQXNCLEVBQTRCLHVCQUF1QixFQUFnQixRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3SyxPQUFPLEVBQXlCLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRixPQUFPLEVBQWEsdUJBQXVCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVsRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7OztBQUU1RTs7Ozs7Ozs7RUFRRTtBQU9GLE1BQU0sT0FBTyxvQ0FBb0M7SUF1RC9DLFlBQW9CLEdBQXNCLEVBQVUsWUFBbUM7UUFB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O1lBQ3BELFNBQVMsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsY0FBYztTQUN2RCxDQUFBO0lBQ0gsQ0FBQzs7a0lBbFBVLG9DQUFvQztzSEFBcEMsb0NBQW9DLGdzQkMxQmpELG9zT0FtSkE7NEZEekhhLG9DQUFvQztrQkFOaEQsU0FBUzsrQkFDRSwrQkFBK0IsbUJBR3hCLHVCQUF1QixDQUFDLE1BQU07NElBR3RDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMsIENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSwgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMsIERhdGVQYXR0ZXJucywgUmVjZWlwdHMsIFN0YXRlcywgZm9udEhlbHBlciwgbG9jYWxpemUgfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LXJlc291cmNlcyc7XG5pbXBvcnQgeyBEYXRlU3R5bGUsIExhYmVsU3R5bGUsIExpc3RJdGVtU3R5bGUsIFJlY2VpcHRTdHlsZSB9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtZWxlbWVudHMnO1xuaW1wb3J0IHsgTGlzdFN0eWxlLCBNZXNzYWdlSW5mb3JtYXRpb25TdHlsZSwgTWVzc2FnZVJlY2VpcHRVdGlscyB9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtc2hhcmVkJztcblxuaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSAnQGNvbWV0Y2hhdC9jaGF0LXNkay1qYXZhc2NyaXB0JztcbmltcG9ydCB7IENvbWV0Q2hhdEV4Y2VwdGlvbiB9IGZyb20gJy4uLy4uL1NoYXJlZC9VdGlscy9Db21lQ2hhdEV4Y2VwdGlvbic7XG5pbXBvcnQgeyBDb21ldENoYXRUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9Db21ldENoYXRUaGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBDb21ldENoYXRVSUtpdCB9IGZyb20gJy4uLy4uL1NoYXJlZC9Db21ldENoYXRVSWtpdC9Db21ldENoYXRVSUtpdCc7XG5cbi8qKlxuKlxuKiBDb21ldENoYXRNZXNzYWdlSW5mb3JtYXRpb25Db21wb25lbnQgaXMgYSB1c2VkIHRvIHJlbmRlciBsaXN0aXRlbSBjb21wb25lbnQuXG4qXG4qIEB2ZXJzaW9uIDEuMC4wXG4qIEBhdXRob3IgQ29tZXRDaGF0VGVhbVxuKiBAY29weXJpZ2h0IMKpIDIwMjIgQ29tZXRDaGF0IEluYy5cbipcbiovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb21ldGNoYXQtbWVzc2FnZS1pbmZvcm1hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21ldGNoYXQtbWVzc2FnZS1pbmZvcm1hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbWV0Y2hhdC1tZXNzYWdlLWluZm9ybWF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENvbWV0Q2hhdE1lc3NhZ2VJbmZvcm1hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY2xvc2VJY29uVVJMOiBzdHJpbmcgPSBcImFzc2V0cy9jbG9zZTJ4LnN2Z1wiO1xuICBASW5wdXQoKSBtZXNzYWdlITogQ29tZXRDaGF0LkJhc2VNZXNzYWdlO1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gbG9jYWxpemUoXCJNRVNTQUdFX0lORk9STUFUSU9OXCIpO1xuICBASW5wdXQoKSB0ZW1wbGF0ZSE6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZTtcbiAgQElucHV0KCkgYnViYmxlVmlldyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIHN1YnRpdGxlVmlldyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGxpc3RJdGVtVmlldyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIHJlY2VpcHREYXRlUGF0dGVybiE6ICh0aW1lc3RhbXA6IG51bWJlcikgPT4gc3RyaW5nO1xuICBASW5wdXQoKSBvbkVycm9yOiAoKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB2b2lkKSB8IG51bGwgPSAoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICBjb25zb2xlLmxvZyhlcnJvcilcbiAgfVxuICBASW5wdXQoKSBtZXNzYWdlSW5mb3JtYXRpb25TdHlsZTogTWVzc2FnZUluZm9ybWF0aW9uU3R5bGUgPSB7XG4gICAgaGVpZ2h0OiBcIjUwMHB4XCIsXG4gICAgd2lkdGg6IFwiNTAwcHhcIlxuICB9O1xuICBASW5wdXQoKSByZWFkSWNvbjogc3RyaW5nID0gXCJhc3NldHMvbWVzc2FnZS1yZWFkLnN2Z1wiO1xuICBASW5wdXQoKSBkZWxpdmVyZWRJY29uOiBzdHJpbmcgPSBcImFzc2V0cy9tZXNzYWdlLWRlbGl2ZXJlZC5zdmdcIjtcbiAgQElucHV0KCkgb25DbG9zZSE6ICgpID0+IHZvaWQ7XG4gIEBJbnB1dCgpIGxpc3RJdGVtU3R5bGU6IExpc3RJdGVtU3R5bGUgPSB7fTtcbiAgQElucHV0KCkgZW1wdHlTdGF0ZVRleHQ6IHN0cmluZyA9IGxvY2FsaXplKFwiTk9fUkVDSVBJRU5UU1wiKVxuICBASW5wdXQoKSBlcnJvclN0YXRlVGV4dDogc3RyaW5nID0gbG9jYWxpemUoXCJTT01FVEhJTkdfV1JPTkdcIik7XG4gIEBJbnB1dCgpIGVtcHR5U3RhdGVWaWV3ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgbG9hZGluZ0ljb25VUkw6IHN0cmluZyA9IFwiYXNzZXRzL1NwaW5uZXIuc3ZnXCI7XG4gIEBJbnB1dCgpIGxvYWRpbmdTdGF0ZVZpZXchOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBlcnJvclN0YXRlVmlldyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIG9uTWVzc2FnZXNEZWxpdmVyZWQhOiBTdWJzY3JpcHRpb247XG4gIG9uTWVzc2FnZXNSZWFkITogU3Vic2NyaXB0aW9uO1xuICByZWNlaXB0czogQ29tZXRDaGF0Lk1lc3NhZ2VSZWNlaXB0W10gPSBbXTtcbiAgcmVjZWlwdFN0eWxlID0gbmV3IFJlY2VpcHRTdHlsZSh7XG4gICAgd2FpdEljb25UaW50OiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDcwMCgpLFxuICAgIHNlbnRJY29uVGludDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICBkZWxpdmVyZWRJY29uVGludDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICByZWFkSWNvblRpbnQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpLFxuICAgIGVycm9ySWNvblRpbnQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0RXJyb3IoKSxcbiAgICBoZWlnaHQ6IFwiMjBweFwiLFxuICAgIHdpZHRoOiBcIjIwcHhcIixcbiAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCJcbiAgfSlcbiAgaXNVc2VyVHlwZTogYm9vbGVhbiA9IGZhbHNlO1xuICBkZWxpdmVyZWRSZWNlaXB0OiBSZWNlaXB0cyA9IFJlY2VpcHRzLmRlbGl2ZXJlZDtcbiAgcmVhZFJlY2VpcHQ6IFJlY2VpcHRzID0gUmVjZWlwdHMucmVhZDtcbiAgbGlzdFN0eWxlOiBMaXN0U3R5bGUgPSB7fTtcbiAgbWVzc2FnZVRleHQ6IHN0cmluZyA9IGxvY2FsaXplKFwiTUVTU0FHRVwiKTtcbiAgcmVjZWlwdEluZm9UZXh0OiBzdHJpbmcgPSBsb2NhbGl6ZShcIlJFQ0VJUFRfSU5GT1JNQVRJT05cIilcbiAgZW1wdHlMYWJlbFN0eWxlOiBMYWJlbFN0eWxlID0ge1xuICAgIHRleHRGb250OiAnNDAwIDExcHggSW50ZXInLFxuICAgIHRleHRDb2xvcjogXCJibGFja1wiXG4gIH1cbiAgZGF0ZVN0eWxlOiBEYXRlU3R5bGUgPSB7XG5cbiAgfVxuICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyIHwgbnVsbCA9IG51bGw7XG4gIGRpdmlkZXJTdHlsZTogYW55ID0ge31cbiAgc3RhdGVzOiBTdGF0ZXMgPSBTdGF0ZXMubG9hZGluZ1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdGhlbWVTZXJ2aWNlOiBDb21ldENoYXRUaGVtZVNlcnZpY2UpIHsgfVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cbiAgfVxuICBnZXREYXRlUGF0dGVybih0aW1lc3RhbXA6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnJlY2VpcHREYXRlUGF0dGVybikge1xuICAgICAgcmV0dXJuIHRoaXMucmVjZWlwdERhdGVQYXR0ZXJuKHRpbWVzdGFtcClcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFRoZW1lKClcbiAgICBDb21ldENoYXRVSUtpdC5nZXRMb2dnZWRpblVzZXIoKSEudGhlbigodXNlcjogQ29tZXRDaGF0LlVzZXIgfCBudWxsKSA9PiB7XG4gICAgICBpZiAodXNlcikge1xuICAgICAgICB0aGlzLmxvZ2dlZEluVXNlciA9IHVzZXI7XG4gICAgICAgIHRoaXMuZ2V0TWVzc2FnZVJlY2VpcHRzKClcbiAgICAgICAgdGhpcy5hZGRNZXNzYWdlRXZlbnRMaXN0ZW5lcnMoKVxuICAgICAgfVxuICAgIH0pXG5cblxuICB9XG4gIHNldFRoZW1lKCkge1xuICAgIHRoaXMuc2V0TWVzc2FnZUluZm9TdHlsZSgpXG4gICAgdGhpcy5zZXRMaXN0SXRlbVN0eWxlKClcbiAgICB0aGlzLmxpc3RTdHlsZSA9IHtcbiAgICAgIHRpdGxlVGV4dEZvbnQ6IHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUudGl0bGVUZXh0Rm9udCxcbiAgICAgIHRpdGxlVGV4dENvbG9yOiB0aGlzLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLnRpdGxlVGV4dENvbG9yLFxuICAgICAgZW1wdHlTdGF0ZVRleHRGb250OiB0aGlzLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLmVtcHR5U3RhdGVUZXh0Rm9udCxcbiAgICAgIGVtcHR5U3RhdGVUZXh0Q29sb3I6IHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUuZW1wdHlTdGF0ZVRleHRDb2xvcixcbiAgICAgIGVycm9yU3RhdGVUZXh0Rm9udDogdGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS5lcnJvclN0YXRlVGV4dEZvbnQsXG4gICAgICBlcnJvclN0YXRlVGV4dENvbG9yOiB0aGlzLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLmVycm9yU3RhdGVUZXh0Q29sb3IsXG4gICAgICBsb2FkaW5nSWNvblRpbnQ6IHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUubG9hZGluZ0ljb25UaW50LFxuICAgIH1cbiAgICB0aGlzLmRpdmlkZXJTdHlsZSA9IHtcbiAgICAgIGJhY2tncm91bmQ6IHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUuZGl2aWRlclRpbnQsXG4gICAgICBoZWlnaHQ6IFwiMXB4XCIsXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgfVxuICAgIHRoaXMuZGF0ZVN0eWxlID0ge1xuICAgICAgdGV4dEZvbnQ6ICc0MDAgMTFweCBJbnRlcicsXG4gICAgICB0ZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIH1cbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICBzZXRMaXN0SXRlbVN0eWxlKCkge1xuICAgIGxldCBkZWZhdWx0U3R5bGU6IExpc3RJdGVtU3R5bGUgPSBuZXcgTGlzdEl0ZW1TdHlsZSh7XG4gICAgICBoZWlnaHQ6IFwiZml0LWNvbnRlbnRcIixcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgIGJhY2tncm91bmQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QmFja2dyb3VuZCgpLFxuICAgICAgYWN0aXZlQmFja2dyb3VuZDogXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgYm9yZGVyUmFkaXVzOiBcIjBcIixcbiAgICAgIHRpdGxlRm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMiksXG4gICAgICB0aXRsZUNvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudCgpLFxuICAgICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICAgIHNlcGFyYXRvckNvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDIwMCgpLFxuICAgICAgaG92ZXJCYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCJcbiAgICB9KVxuICAgIHRoaXMubGlzdEl0ZW1TdHlsZSA9IHsgLi4uZGVmYXVsdFN0eWxlLCAuLi50aGlzLmxpc3RJdGVtU3R5bGUgfVxuICB9XG4gIHNldE1lc3NhZ2VJbmZvU3R5bGUoKSB7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTogTWVzc2FnZUluZm9ybWF0aW9uU3R5bGUgPSBuZXcgTWVzc2FnZUluZm9ybWF0aW9uU3R5bGUoe1xuICAgICAgYmFja2dyb3VuZDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRCYWNrZ3JvdW5kKCksXG4gICAgICBib3JkZXI6IGAxcHggc29saWQgJHt0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDUwKCl9YCxcbiAgICAgIHRpdGxlVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50aXRsZTEpLFxuICAgICAgdGl0bGVUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50KCksXG4gICAgICBlbXB0eVN0YXRlVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50aXRsZTEpLFxuICAgICAgZW1wdHlTdGF0ZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIGVycm9yU3RhdGVUZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMSksXG4gICAgICBlcnJvclN0YXRlVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgbG9hZGluZ0ljb25UaW50OiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgYm9yZGVyUmFkaXVzOiBcIjhweFwiLFxuICAgICAgc3VidGl0bGVUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBzdWJ0aXRsZVRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkuY2FwdGlvbjIpLFxuICAgICAgZGl2aWRlclRpbnQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MTAwKCksXG4gICAgICBoZWlnaHQ6IFwiNTAwcHhcIixcbiAgICAgIHdpZHRoOiBcIjUwMHB4XCIsXG4gICAgICBjYXB0aW9uVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgY2FwdGlvblRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkuY2FwdGlvbjIpXG4gICAgfSlcbiAgICB0aGlzLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlID0geyAuLi5kZWZhdWx0U3R5bGUsIC4uLnRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUgfVxuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25NZXNzYWdlc0RlbGl2ZXJlZC51bnN1YnNjcmliZSgpXG4gICAgdGhpcy5vbk1lc3NhZ2VzUmVhZC51bnN1YnNjcmliZSgpO1xuICB9XG4gIGFkZE1lc3NhZ2VFdmVudExpc3RlbmVycygpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5vbk1lc3NhZ2VzRGVsaXZlcmVkID0gQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5vbk1lc3NhZ2VzRGVsaXZlcmVkLnN1YnNjcmliZSgobWVzc2FnZVJlY2VpcHQ6IENvbWV0Q2hhdC5NZXNzYWdlUmVjZWlwdCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tZXNzYWdlPy5nZXRJZCgpID09IE51bWJlcihtZXNzYWdlUmVjZWlwdC5nZXRNZXNzYWdlSWQoKSkpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVJlY2VpcHQobWVzc2FnZVJlY2VpcHQpXG4gICAgICAgICAgdGhpcy5tZXNzYWdlPy5zZXREZWxpdmVyZWRBdChtZXNzYWdlUmVjZWlwdC5nZXREZWxpdmVyZWRBdCgpKVxuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgdGhpcy5vbk1lc3NhZ2VzUmVhZCA9IENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMub25NZXNzYWdlc1JlYWQuc3Vic2NyaWJlKChtZXNzYWdlUmVjZWlwdDogQ29tZXRDaGF0Lk1lc3NhZ2VSZWNlaXB0KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2U/LmdldElkKCkgPT0gTnVtYmVyKG1lc3NhZ2VSZWNlaXB0LmdldE1lc3NhZ2VJZCgpKSkge1xuICAgICAgICAgIHRoaXMudXBkYXRlUmVjZWlwdChtZXNzYWdlUmVjZWlwdClcbiAgICAgICAgICB0aGlzLm1lc3NhZ2U/LnNldFJlYWRBdChtZXNzYWdlUmVjZWlwdC5nZXRSZWFkQXQoKSlcbiAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAodGhpcy5vbkVycm9yKSB7XG4gICAgICAgIHRoaXMub25FcnJvcihDb21ldENoYXRFeGNlcHRpb24oZXJyb3IpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZ2V0QXZhdGFyVXJsKCkge1xuICAgIHJldHVybiB0aGlzLmlzVXNlclR5cGUgPyAodGhpcy5tZXNzYWdlLmdldFJlY2VpdmVyKCkgYXMgQ29tZXRDaGF0LlVzZXIpLmdldEF2YXRhcigpIDogXCJcIlxuICB9XG4gIGdldFVzZXJSZWNlaXB0KCkge1xuICAgIHJldHVybiB0aGlzLm1lc3NhZ2UuZ2V0UmVhZEF0KCkgfHwgdGhpcy5tZXNzYWdlLmdldERlbGl2ZXJlZEF0KClcbiAgfVxuICBnZXRNZXNzYWdlUmVjZWlwdCgpIHtcbiAgICBsZXQgcmVjZWlwdCA9IE1lc3NhZ2VSZWNlaXB0VXRpbHMuZ2V0UmVjZWlwdFN0YXR1cyh0aGlzLm1lc3NhZ2UpXG4gICAgcmV0dXJuIHJlY2VpcHRcbiAgfVxuICB1cGRhdGVSZWNlaXB0KHJlY2VpcHQ6IENvbWV0Q2hhdC5NZXNzYWdlUmVjZWlwdCkge1xuICAgIGxldCBtZXNzYWdlS2V5ID0gdGhpcy5yZWNlaXB0cy5maW5kSW5kZXgoXG4gICAgICAobTogQ29tZXRDaGF0Lk1lc3NhZ2VSZWNlaXB0KSA9PiBtLmdldFNlbmRlcigpLmdldFVpZCgpID09PSByZWNlaXB0LmdldFNlbmRlcigpLmdldFVpZCgpXG4gICAgKTtcbiAgICBpZiAobWVzc2FnZUtleSA+IC0xKSB7XG4gICAgICBpZiAocmVjZWlwdC5nZXRSZWNlaXB0VHlwZSgpID09IHJlY2VpcHQuUkVDRUlQVF9UWVBFLlJFQURfUkVDRUlQVCkge1xuICAgICAgICB0aGlzLnJlY2VpcHRzW21lc3NhZ2VLZXldLnNldFJlYWRBdChyZWNlaXB0LmdldFJlYWRBdCgpKVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMucmVjZWlwdHNbbWVzc2FnZUtleV0uc2V0RGVsaXZlcmVkQXQocmVjZWlwdC5nZXREZWxpdmVyZWRBdCgpKVxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG4gIGdldE1lc3NhZ2VSZWNlaXB0cygpIHtcbiAgICBpZiAodGhpcy5tZXNzYWdlLmdldFJlY2VpdmVyVHlwZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VSZWNlaXZlclR5cGUudXNlcikge1xuICAgICAgdGhpcy5pc1VzZXJUeXBlID0gdHJ1ZTtcbiAgICAgIHRoaXMuZW1wdHlTdGF0ZVRleHQgPSBsb2NhbGl6ZShcIk5PX1JFQ0lQSUVOVFwiKVxuICAgICAgdGhpcy5zdGF0ZXMgPSBTdGF0ZXMubG9hZGVkXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmVtcHR5U3RhdGVUZXh0ID0gbG9jYWxpemUoXCJOT19SRUNJUElFTlRTXCIpXG4gICAgICB0aGlzLnN0YXRlcyA9IFN0YXRlcy5sb2FkaW5nXG4gICAgICB0aGlzLmlzVXNlclR5cGUgPSBmYWxzZTtcbiAgICAgIENvbWV0Q2hhdC5nZXRNZXNzYWdlUmVjZWlwdHModGhpcy5tZXNzYWdlLmdldElkKCkpLnRoZW4oKHJlY2VpcHRzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5yZWNlaXB0cyA9IHJlY2VpcHRzLmZpbHRlcigocmVjZWlwdDogQ29tZXRDaGF0Lk1lc3NhZ2VSZWNlaXB0KSA9PiByZWNlaXB0LmdldFNlbmRlcigpLmdldFVpZCgpICE9PSB0aGlzLmxvZ2dlZEluVXNlcj8uZ2V0VWlkKCkpIGFzIENvbWV0Q2hhdC5NZXNzYWdlUmVjZWlwdFtdO1xuICAgICAgICB0aGlzLnN0YXRlcyA9IHRoaXMucmVjZWlwdHMubGVuZ3RoID4gMCA/IFN0YXRlcy5sb2FkZWQgOiBTdGF0ZXMuZW1wdHk7XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0ZXMgPSBTdGF0ZXMuZXJyb3JcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgfVxuICBjbG9zZUNsaWNrZWQoKSB7XG4gICAgaWYgKHRoaXMub25DbG9zZSkge1xuICAgICAgdGhpcy5vbkNsb3NlKClcbiAgICB9XG4gIH1cbiAgY2xvc2VCdXR0b25TdHlsZSA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVpZ2h0OiBcIjI0cHhcIixcbiAgICAgIHdpZHRoOiBcIjI0cHhcIixcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBib3JkZXJSYWRpdXM6IFwiMFwiLFxuICAgICAgYmFja2dyb3VuZDogXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgYnV0dG9uSWNvblRpbnQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpXG4gICAgfVxuICB9XG4gIGdldFN1YnRpdGxlU3R5bGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRleHRGb250OiB0aGlzLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLnN1YnRpdGxlVGV4dEZvbnQsXG4gICAgICB0ZXh0Q29sb3I6IHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUuc3VidGl0bGVUZXh0Q29sb3JcbiAgICB9XG4gIH1cbiAgZ2V0VGl0bGVTdHlsZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dEZvbnQ6IHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUudGl0bGVUZXh0Rm9udCxcbiAgICAgIHRleHRDb2xvcjogdGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS50aXRsZVRleHRDb2xvclxuICAgIH1cbiAgfVxuICB3cmFwcGVyU3R5bGUgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlaWdodDogdGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS5oZWlnaHQsXG4gICAgICB3aWR0aDogdGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS53aWR0aCxcbiAgICAgIGJhY2tncm91bmQ6IHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUuYmFja2dyb3VuZCxcbiAgICAgIGJvcmRlcjogdGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS5ib3JkZXIsXG4gICAgICBib3JkZXJSYWRpdXM6IHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUuYm9yZGVyUmFkaXVzXG4gICAgfVxuICB9XG4gIGdldENhcHRpb25TdHlsZSA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dEZvbnQ6IHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUuY2FwdGlvblRleHRGb250LFxuICAgICAgdGV4dENvbG9yOiB0aGlzLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLmNhcHRpb25UZXh0Q29sb3JcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNjLW1lc3NhZ2UtaW5mb3JtYXRpb25fX3dyYXBwZXJcIiBbbmdTdHlsZV09XCJ3cmFwcGVyU3R5bGUoKVwiPlxuICA8ZGl2IGNsYXNzPVwiY2MtbWVzc2FnZS1pbmZvcm1hdGlvbl9faGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImNjLW1lc3NhZ2UtaW5mb3JtYXRpb25fX3RpdGxlXCI+XG4gICAgICA8Y29tZXRjaGF0LWxhYmVsIFt0ZXh0XT1cInRpdGxlXCJcbiAgICAgICAgW2xhYmVsU3R5bGVdPVwiZ2V0VGl0bGVTdHlsZSgpXCI+PC9jb21ldGNoYXQtbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNjLWNsb3NlLWJ1dHRvblwiPlxuICAgICAgPGNvbWV0Y2hhdC1idXR0b24gW2ljb25VUkxdPVwiY2xvc2VJY29uVVJMXCJcbiAgICAgICAgW2J1dHRvblN0eWxlXT1cImNsb3NlQnV0dG9uU3R5bGUoKVwiIChjYy1idXR0b24tY2xpY2tlZCk9XCJjbG9zZUNsaWNrZWQoKVwiPlxuICAgICAgPC9jb21ldGNoYXQtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNjLW1lc3NhZ2UtaW5mb3JtYXRpb25fX2J1YmJsZVwiPlxuICAgIDxjb21ldGNoYXQtbGFiZWwgY2xhc3M9XCJjYy1tZXNzYWdlLWluZm9ybWF0aW9uX19jYXB0aW9uXCJcbiAgICAgIFtsYWJlbFN0eWxlXT1cImdldENhcHRpb25TdHlsZSgpXCIgW3RleHRdPVwibWVzc2FnZVRleHRcIj48L2NvbWV0Y2hhdC1sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiY2MtbWVzc2FnZS1pbmZvcm1hdGlvbl9fYnViYmxlLXZpZXdcIj5cbiAgICAgIDxjb21ldGNoYXQtZGl2aWRlciBbZGl2aWRlclN0eWxlXT1cImRpdmlkZXJTdHlsZVwiPjwvY29tZXRjaGF0LWRpdmlkZXI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnViYmxlVmlldzsgY29udGV4dDp7ICRpbXBsaWNpdDogbWVzc2FnZSB9XCI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxjb21ldGNoYXQtZGl2aWRlciBbZGl2aWRlclN0eWxlXT1cImRpdmlkZXJTdHlsZVwiPjwvY29tZXRjaGF0LWRpdmlkZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2MtbWVzc2FnZS1pbmZvcm1hdGlvbl9fbGlzdC1pdGVtXCI+XG4gICAgPGNvbWV0Y2hhdC1sYWJlbCBjbGFzcz1cImNjLW1lc3NhZ2UtaW5mb3JtYXRpb25fX2NhcHRpb25cIlxuICAgICAgW2xhYmVsU3R5bGVdPVwiZ2V0Q2FwdGlvblN0eWxlKClcIlxuICAgICAgW3RleHRdPVwicmVjZWlwdEluZm9UZXh0XCI+PC9jb21ldGNoYXQtbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cImNjLW1lc3NhZ2UtaW5mb3JtYXRpb25fX2J1YmJsZS12aWV3XCJcbiAgICAgICpuZ0lmPVwiaXNVc2VyVHlwZTsgZWxzZSBsaXN0Vmlld1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3RJdGVtVmlldzsgZWxzZSB1c2VyTGlzdGl0ZW1cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibGlzdEl0ZW1WaWV3OyBjb250ZXh0OnsgJGltcGxpY2l0OiBtZXNzYWdlIH1cIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdXNlckxpc3RpdGVtPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWdldFVzZXJSZWNlaXB0KCk7IGVsc2UgdXNlclJlY2VpcHRWaWV3XCJcbiAgICAgICAgICBjbGFzcz1cImNjLWVtcHR5LXN0YXRlLXZpZXdcIj5cbiAgICAgICAgICA8Y29tZXRjaGF0LWxhYmVsICpuZ0lmPVwiIWVtcHR5U3RhdGVWaWV3IGVsc2UgY3VzdG9tRW1wdHlWaWV3XCJcbiAgICAgICAgICAgIFt0ZXh0XT1cImVtcHR5U3RhdGVUZXh0XCJcbiAgICAgICAgICAgIFtsYWJlbFN0eWxlXT1cImVtcHR5TGFiZWxTdHlsZVwiPjwvY29tZXRjaGF0LWxhYmVsPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY3VzdG9tRW1wdHlWaWV3PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5U3RhdGVWaWV3XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN1c2VyUmVjZWlwdFZpZXc+XG4gICAgICAgICAgPGNvbWV0Y2hhdC1kaXZpZGVyIFtkaXZpZGVyU3R5bGVdPVwiZGl2aWRlclN0eWxlXCI+PC9jb21ldGNoYXQtZGl2aWRlcj5cbiAgICAgICAgICA8Y29tZXRjaGF0LWxpc3QtaXRlbSBbaGlkZVNlcGFyYXRvcl09XCJ0cnVlXCIgW2lkXT1cIm1lc3NhZ2UuZ2V0SWQoKVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwibWVzc2FnZS5nZXRSZWNlaXZlcigpLmdldE5hbWUoKVwiXG4gICAgICAgICAgICBbbGlzdEl0ZW1TdHlsZV09XCJsaXN0SXRlbVN0eWxlXCIgW2F2YXRhclVSTF09XCJnZXRBdmF0YXJVcmwoKVwiXG4gICAgICAgICAgICBbYXZhdGFyTmFtZV09XCJtZXNzYWdlLmdldFJlY2VpdmVyKCkuZ2V0TmFtZSgpXCI+XG4gICAgICAgICAgICA8ZGl2IHNsb3Q9XCJzdWJ0aXRsZVZpZXdcIiAqbmdJZj1cInN1YnRpdGxlVmlldztlbHNlIHVzZXJTdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VidGl0bGVWaWV3XCI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3VzZXJTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNjLWxpc3QtaXRlbV9fc3VidGl0bGUtdmlldyBcIiBzbG90PVwic3VidGl0bGVWaWV3XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNjLWxpc3QtaXRlbV9fc3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYy1saXN0LWl0ZW1fX2RlbGl2ZXJlZC1yZWNlaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtZXNzYWdlLmdldERlbGl2ZXJlZEF0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNjLWxpc3QtaXRlbV9fcmVjZWlwdFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxjb21ldGNoYXQtcmVjZWlwdCBbcmVjZWlwdF09XCJkZWxpdmVyZWRSZWNlaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZWNlaXB0U3R5bGVdPVwicmVjZWlwdFN0eWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZWxpdmVyZWRJY29uXT1cImRlbGl2ZXJlZEljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRJY29uXT1cInJlYWRJY29uXCI+PC9jb21ldGNoYXQtcmVjZWlwdD5cbiAgICAgICAgICAgICAgICAgICAgICA8Y29tZXRjaGF0LWxhYmVsIFt0ZXh0XT1cIidEZWxpdmVyZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbFN0eWxlXT1cImdldFN1YnRpdGxlU3R5bGUoKVwiPjwvY29tZXRjaGF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGNvbWV0Y2hhdC1kYXRlIFt0aW1lc3RhbXBdPVwibWVzc2FnZS5nZXREZWxpdmVyZWRBdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGF0ZVN0eWxlXT1cImRhdGVTdHlsZVwiPjwvY29tZXRjaGF0LWRhdGU+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYy1saXN0LWl0ZW1fX3JlYWQtcmVjZWlwdFwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibWVzc2FnZS5nZXRSZWFkQXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtbGlzdC1pdGVtX19yZWNlaXB0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGNvbWV0Y2hhdC1yZWNlaXB0IFtyZWNlaXB0XT1cInJlYWRSZWNlaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZWNlaXB0U3R5bGVdPVwicmVjZWlwdFN0eWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZWxpdmVyZWRJY29uXT1cImRlbGl2ZXJlZEljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRJY29uXT1cInJlYWRJY29uXCI+PC9jb21ldGNoYXQtcmVjZWlwdD5cbiAgICAgICAgICAgICAgICAgICAgICA8Y29tZXRjaGF0LWxhYmVsIFt0ZXh0XT1cIidSZWFkJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxTdHlsZV09XCJnZXRTdWJ0aXRsZVN0eWxlKClcIj48L2NvbWV0Y2hhdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxjb21ldGNoYXQtZGF0ZSBbdGltZXN0YW1wXT1cIm1lc3NhZ2UuZ2V0UmVhZEF0KClcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkYXRlU3R5bGVdPVwiZGF0ZVN0eWxlXCI+PC9jb21ldGNoYXQtZGF0ZT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9jb21ldGNoYXQtbGlzdC1pdGVtPlxuICAgICAgICAgIDxjb21ldGNoYXQtZGl2aWRlciBbZGl2aWRlclN0eWxlXT1cImRpdmlkZXJTdHlsZVwiPjwvY29tZXRjaGF0LWRpdmlkZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPCEtLSBsaXN0IGl0ZW0gdmlldyAtLT5cbjxuZy10ZW1wbGF0ZSAjbGlzdFZpZXc+XG4gIDxjb21ldGNoYXQtbGlzdCBbbGlzdF09XCJyZWNlaXB0c1wiXG4gICAgW2xpc3RJdGVtVmlld109XCJsaXN0SXRlbVZpZXcgPyBsaXN0SXRlbVZpZXcgOiBsaXN0SXRlbVwiIFtoaWRlU2VhcmNoXT1cInRydWVcIlxuICAgIFtzdGF0ZV09XCJzdGF0ZXNcIiBbZW1wdHlTdGF0ZVRleHRdPVwiZW1wdHlTdGF0ZVRleHRcIlxuICAgIFtlcnJvclN0YXRlVGV4dF09XCJlcnJvclN0YXRlVGV4dFwiIFtsb2FkaW5nSWNvblVSTF09XCJsb2FkaW5nSWNvblVSTFwiXG4gICAgW2xvYWRpbmdTdGF0ZVZpZXddPVwibG9hZGluZ1N0YXRlVmlld1wiIFtlcnJvclN0YXRlVmlld109XCJlcnJvclN0YXRlVmlld1wiXG4gICAgW2VtcHR5U3RhdGVWaWV3XT1cImVtcHR5U3RhdGVWaWV3XCIgW3RpdGxlXT1cIicnXCI+PC9jb21ldGNoYXQtbGlzdD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2xpc3RJdGVtIGxldC1tZXNzYWdlUmVjZWlwdD5cbiAgPGNvbWV0Y2hhdC1kaXZpZGVyIFtkaXZpZGVyU3R5bGVdPVwiZGl2aWRlclN0eWxlXCI+PC9jb21ldGNoYXQtZGl2aWRlcj5cbiAgPGNvbWV0Y2hhdC1saXN0LWl0ZW0gW2hpZGVTZXBhcmF0b3JdPVwidHJ1ZVwiXG4gICAgW3RpdGxlXT1cIm1lc3NhZ2VSZWNlaXB0LmdldFNlbmRlcigpLmdldE5hbWUoKVwiXG4gICAgW2xpc3RJdGVtU3R5bGVdPVwibGlzdEl0ZW1TdHlsZVwiXG4gICAgW2F2YXRhclVSTF09XCJtZXNzYWdlUmVjZWlwdC5nZXRTZW5kZXIoKT8uZ2V0QXZhdGFyKClcIlxuICAgIFthdmF0YXJOYW1lXT1cIm1lc3NhZ2VSZWNlaXB0LmdldFNlbmRlcigpLmdldE5hbWUoKVwiPlxuICAgIDxkaXYgc2xvdD1cInN1YnRpdGxlVmlld1wiICpuZ0lmPVwic3VidGl0bGVWaWV3O2Vsc2UgdXNlclN1YnRpdGxlXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VidGl0bGVWaWV3XCI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI3VzZXJTdWJ0aXRsZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYy1saXN0LWl0ZW1fX3N1YnRpdGxlLXZpZXcgXCIgc2xvdD1cInN1YnRpdGxlVmlld1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtbGlzdC1pdGVtX19zdWJ0aXRsZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYy1saXN0LWl0ZW1fX2RlbGl2ZXJlZC1yZWNlaXB0XCJcbiAgICAgICAgICAgICpuZ0lmPVwibWVzc2FnZVJlY2VpcHQuZ2V0RGVsaXZlcmVkQXQoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNjLWxpc3QtaXRlbV9fcmVjZWlwdFwiPlxuICAgICAgICAgICAgICA8Y29tZXRjaGF0LXJlY2VpcHQgW3JlY2VpcHRdPVwiZGVsaXZlcmVkUmVjZWlwdFwiXG4gICAgICAgICAgICAgICAgW3JlY2VpcHRTdHlsZV09XCJyZWNlaXB0U3R5bGVcIiBbZGVsaXZlcmVkSWNvbl09XCJkZWxpdmVyZWRJY29uXCJcbiAgICAgICAgICAgICAgICBbcmVhZEljb25dPVwicmVhZEljb25cIj48L2NvbWV0Y2hhdC1yZWNlaXB0PlxuICAgICAgICAgICAgICA8Y29tZXRjaGF0LWxhYmVsIFt0ZXh0XT1cIidEZWxpdmVyZWQnXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxTdHlsZV09XCJnZXRTdWJ0aXRsZVN0eWxlKClcIj48L2NvbWV0Y2hhdC1sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGNvbWV0Y2hhdC1kYXRlIFt0aW1lc3RhbXBdPVwibWVzc2FnZVJlY2VpcHQuZ2V0RGVsaXZlcmVkQXQoKVwiXG4gICAgICAgICAgICAgIFtkYXRlU3R5bGVdPVwiZGF0ZVN0eWxlXCI+PC9jb21ldGNoYXQtZGF0ZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtbGlzdC1pdGVtX19yZWFkLXJlY2VpcHRcIlxuICAgICAgICAgICAgKm5nSWY9XCJtZXNzYWdlUmVjZWlwdC5nZXRSZWFkQXQoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNjLWxpc3QtaXRlbV9fcmVjZWlwdFwiPlxuICAgICAgICAgICAgICA8Y29tZXRjaGF0LXJlY2VpcHQgW3JlY2VpcHRdPVwicmVhZFJlY2VpcHRcIlxuICAgICAgICAgICAgICAgIFtyZWNlaXB0U3R5bGVdPVwicmVjZWlwdFN0eWxlXCIgW2RlbGl2ZXJlZEljb25dPVwiZGVsaXZlcmVkSWNvblwiXG4gICAgICAgICAgICAgICAgW3JlYWRJY29uXT1cInJlYWRJY29uXCI+PC9jb21ldGNoYXQtcmVjZWlwdD5cbiAgICAgICAgICAgICAgPGNvbWV0Y2hhdC1sYWJlbCBbdGV4dF09XCInUmVhZCdcIlxuICAgICAgICAgICAgICAgIFtsYWJlbFN0eWxlXT1cImdldFN1YnRpdGxlU3R5bGUoKVwiPjwvY29tZXRjaGF0LWxhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8Y29tZXRjaGF0LWRhdGUgW3RpbWVzdGFtcF09XCJtZXNzYWdlUmVjZWlwdC5nZXRSZWFkQXQoKVwiXG4gICAgICAgICAgICAgIFtkYXRlU3R5bGVdPVwiZGF0ZVN0eWxlXCI+PC9jb21ldGNoYXQtZGF0ZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2NvbWV0Y2hhdC1saXN0LWl0ZW0+XG4gIDxjb21ldGNoYXQtZGl2aWRlciBbZGl2aWRlclN0eWxlXT1cImRpdmlkZXJTdHlsZVwiPjwvY29tZXRjaGF0LWRpdmlkZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
308
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9Db21ldENoYXRNZXNzYWdlSW5mb3JtYXRpb24vY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24vY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9Db21ldENoYXRNZXNzYWdlSW5mb3JtYXRpb24vY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24vY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFpRCxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQUUsc0JBQXNCLEVBQTRCLHVCQUF1QixFQUFnQixRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3SyxPQUFPLEVBQXlCLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRixPQUFPLEVBQWEsdUJBQXVCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVsRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7OztBQUU1RTs7Ozs7Ozs7RUFRRTtBQU9GLE1BQU0sT0FBTyxvQ0FBb0M7SUE4Qy9DLFlBQW9CLEdBQXNCLEVBQVUsWUFBbUM7UUFBbkUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUE3QzlFLGlCQUFZLEdBQVcsb0JBQW9CLENBQUM7UUFFNUMsVUFBSyxHQUFXLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBTWhELFlBQU8sR0FBMkQsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7WUFDakgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNwQixDQUFDLENBQUE7UUFDUSw0QkFBdUIsR0FBNEI7WUFDMUQsTUFBTSxFQUFFLE9BQU87WUFDZixLQUFLLEVBQUUsT0FBTztTQUNmLENBQUM7UUFDTyxhQUFRLEdBQVcseUJBQXlCLENBQUM7UUFDN0Msa0JBQWEsR0FBVyw4QkFBOEIsQ0FBQztRQUV2RCxrQkFBYSxHQUFrQixFQUFFLENBQUM7UUFDbEMsbUJBQWMsR0FBVyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDbEQsbUJBQWMsR0FBVyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVyRCxtQkFBYyxHQUFXLG9CQUFvQixDQUFDO1FBS3ZELGFBQVEsR0FBK0IsRUFBRSxDQUFDO1FBQzFDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDbkMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixxQkFBZ0IsR0FBYSxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ2hELGdCQUFXLEdBQWEsUUFBUSxDQUFDLElBQUksQ0FBQztRQUN0QyxjQUFTLEdBQWMsRUFBRSxDQUFDO1FBQzFCLGdCQUFXLEdBQVcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLG9CQUFlLEdBQVcsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFDekQsb0JBQWUsR0FBZTtZQUM1QixRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRSxPQUFPO1NBQ25CLENBQUE7UUFDRCxjQUFTLEdBQWMsRUFFdEIsQ0FBQTtRQUNELGlCQUFZLEdBQTBCLElBQUksQ0FBQztRQUMzQyxpQkFBWSxHQUFRLEVBQUUsQ0FBQTtRQUN0QixXQUFNLEdBQVcsTUFBTSxDQUFDLE9BQU8sQ0FBQTtRQWdML0IscUJBQWdCLEdBQUcsR0FBRyxFQUFFO1lBQ3RCLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsWUFBWSxFQUFFLEdBQUc7Z0JBQ2pCLFVBQVUsRUFBRSxhQUFhO2dCQUN6QixjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTthQUM3RCxDQUFBO1FBQ0gsQ0FBQyxDQUFBO1FBYUQsaUJBQVksR0FBRyxHQUFHLEVBQUU7WUFDbEIsT0FBTztnQkFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU07Z0JBQzNDLEtBQUssRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSztnQkFDekMsVUFBVSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVO2dCQUNuRCxNQUFNLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU07Z0JBQzNDLFlBQVksRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWTthQUN4RCxDQUFBO1FBQ0gsQ0FBQyxDQUFBO1FBQ0Qsb0JBQWUsR0FBRyxHQUFHLEVBQUU7WUFDckIsT0FBTztnQkFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWU7Z0JBQ3RELFNBQVMsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCO2FBQ3pELENBQUE7UUFDSCxDQUFDLENBQUE7SUFuTjBGLENBQUM7SUFDNUYsV0FBVyxDQUFDLE9BQXNCO0lBRWxDLENBQUM7SUFDRCxjQUFjLENBQUMsU0FBaUI7UUFDOUIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUE7U0FDMUM7YUFDSTtZQUNILE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDZixjQUFjLENBQUMsZUFBZSxFQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBMkIsRUFBRSxFQUFFO1lBQ3JFLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUN6QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtnQkFDekIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUE7YUFDaEM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUdKLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7UUFDdkIsSUFBSSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUM7UUFDckYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBQztZQUNuQyxZQUFZLEVBQUUsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDNUUsaUJBQWlCLEVBQUUsaUJBQWlCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUN0RixZQUFZLEVBQUUsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDMUUsTUFBTSxFQUFFLE1BQU07WUFDZCxLQUFLLEVBQUUsTUFBTTtZQUNiLFVBQVUsRUFBRSxhQUFhO1NBQzFCLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDZixhQUFhLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWE7WUFDekQsY0FBYyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjO1lBQzNELGtCQUFrQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0I7WUFDbkUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLG1CQUFtQjtZQUNyRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCO1lBQ25FLG1CQUFtQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUI7WUFDckUsZUFBZSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlO1NBQzlELENBQUE7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHO1lBQ2xCLFVBQVUsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVztZQUNwRCxNQUFNLEVBQUUsS0FBSztZQUNiLEtBQUssRUFBRSxNQUFNO1NBQ2QsQ0FBQTtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDZixRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3pELFVBQVUsRUFBRSxhQUFhO1lBQ3pCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSyxFQUFFLE1BQU07U0FDZCxDQUFBO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBQ0QsZ0JBQWdCO1FBQ2QsSUFBSSxZQUFZLEdBQWtCLElBQUksYUFBYSxDQUFDO1lBQ2xELE1BQU0sRUFBRSxhQUFhO1lBQ3JCLEtBQUssRUFBRSxNQUFNO1lBQ2IsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDM0QsZ0JBQWdCLEVBQUUsYUFBYTtZQUMvQixZQUFZLEVBQUUsR0FBRztZQUNqQixTQUFTLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDaEUsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDdkQsTUFBTSxFQUFFLE1BQU07WUFDZCxjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUM5RCxlQUFlLEVBQUUsYUFBYTtTQUMvQixDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDakUsQ0FBQztJQUNELG1CQUFtQjtRQUNqQixJQUFJLFlBQVksR0FBNEIsSUFBSSx1QkFBdUIsQ0FBQztZQUN0RSxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUMzRCxNQUFNLEVBQUUsYUFBYSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDcEUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQ3BFLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQzNELGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQ3pFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDbkUsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDekUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUNuRSxlQUFlLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUMvRCxZQUFZLEVBQUUsS0FBSztZQUNuQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ2pFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3pFLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQzNELE1BQU0sRUFBRSxPQUFPO1lBQ2YsS0FBSyxFQUFFLE9BQU87WUFDZCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ2hFLGVBQWUsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUN6RSxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO0lBQ3JGLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUNELHdCQUF3QjtRQUN0QixJQUFJO1lBQ0YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQXdDLEVBQUUsRUFBRTtnQkFDM0gsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRTtvQkFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQTtvQkFDbEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUE7b0JBQzdELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7aUJBQ3pCO1lBQ0gsQ0FBQyxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsY0FBYyxHQUFHLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUF3QyxFQUFFLEVBQUU7Z0JBQ2pILElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQUU7b0JBQ2xFLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUE7b0JBQ2xDLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO29CQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO2lCQUN6QjtZQUNILENBQUMsQ0FBQyxDQUFBO1NBQ0g7UUFBQyxPQUFPLEtBQVUsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN6QztTQUNGO0lBQ0gsQ0FBQztJQUNELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFxQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDMUYsQ0FBQztJQUNELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQTtJQUNsRSxDQUFDO0lBQ0QsaUJBQWlCO1FBQ2YsSUFBSSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2hFLE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFDRCxhQUFhLENBQUMsT0FBaUM7UUFDN0MsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQ3RDLENBQUMsQ0FBMkIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FDekYsQ0FBQztRQUNGLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ25CLElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFO2dCQUNqRSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTthQUN6RDtpQkFDSTtnQkFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQTthQUNuRTtTQUVGO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0Qsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsSUFBSSx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUU7WUFDdEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUE7WUFDOUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFBO1lBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7U0FDekI7YUFDSTtZQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1lBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQTtZQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixTQUFTLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUN4RSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFpQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBK0IsQ0FBQztnQkFDbkssSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDO2lCQUNDLEtBQUssQ0FBQyxDQUFDLEdBQWlDLEVBQUUsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFBO1lBQzVCLENBQUMsQ0FBQyxDQUFBO1NBQ0w7SUFFSCxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7U0FDZjtJQUNILENBQUM7SUFXRCxnQkFBZ0I7UUFDZCxPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0I7WUFDdkQsU0FBUyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUI7U0FDMUQsQ0FBQTtJQUNILENBQUM7SUFDRCxhQUFhO1FBQ1gsT0FBTztZQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsYUFBYTtZQUNwRCxTQUFTLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGNBQWM7U0FDdkQsQ0FBQTtJQUNILENBQUM7O2tJQWxQVSxvQ0FBb0M7c0hBQXBDLG9DQUFvQyxnc0JDMUJqRCxvc09BbUpBOzRGRHpIYSxvQ0FBb0M7a0JBTmhELFNBQVM7K0JBQ0UsK0JBQStCLG1CQUd4Qix1QkFBdUIsQ0FBQyxNQUFNOzRJQUd0QyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUdHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21ldENoYXRNZXNzYWdlRXZlbnRzLCBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUsIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLCBEYXRlUGF0dGVybnMsIFJlY2VpcHRzLCBTdGF0ZXMsIGZvbnRIZWxwZXIsIGxvY2FsaXplIH0gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgRGF0ZVN0eWxlLCBMYWJlbFN0eWxlLCBMaXN0SXRlbVN0eWxlLCBSZWNlaXB0U3R5bGUgfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LWVsZW1lbnRzJztcbmltcG9ydCB7IExpc3RTdHlsZSwgTWVzc2FnZUluZm9ybWF0aW9uU3R5bGUsIE1lc3NhZ2VSZWNlaXB0VXRpbHMgfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZCc7XG5cbmltcG9ydCB7IENvbWV0Q2hhdCB9IGZyb20gJ0Bjb21ldGNoYXQvY2hhdC1zZGstamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBDb21ldENoYXRFeGNlcHRpb24gfSBmcm9tICcuLi8uLi9TaGFyZWQvVXRpbHMvQ29tZUNoYXRFeGNlcHRpb24nO1xuaW1wb3J0IHsgQ29tZXRDaGF0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vQ29tZXRDaGF0VGhlbWUuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgQ29tZXRDaGF0VUlLaXQgfSBmcm9tICcuLi8uLi9TaGFyZWQvQ29tZXRDaGF0VUlraXQvQ29tZXRDaGF0VUlLaXQnO1xuXG4vKipcbipcbiogQ29tZXRDaGF0TWVzc2FnZUluZm9ybWF0aW9uQ29tcG9uZW50IGlzIGEgdXNlZCB0byByZW5kZXIgbGlzdGl0ZW0gY29tcG9uZW50LlxuKlxuKiBAdmVyc2lvbiAxLjAuMFxuKiBAYXV0aG9yIENvbWV0Q2hhdFRlYW1cbiogQGNvcHlyaWdodCDCqSAyMDIyIENvbWV0Q2hhdCBJbmMuXG4qXG4qL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb21ldGNoYXQtbWVzc2FnZS1pbmZvcm1hdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDb21ldENoYXRNZXNzYWdlSW5mb3JtYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNsb3NlSWNvblVSTDogc3RyaW5nID0gXCJhc3NldHMvY2xvc2UyeC5zdmdcIjtcbiAgQElucHV0KCkgbWVzc2FnZSE6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZTtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9IGxvY2FsaXplKFwiTUVTU0FHRV9JTkZPUk1BVElPTlwiKTtcbiAgQElucHV0KCkgdGVtcGxhdGUhOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGU7XG4gIEBJbnB1dCgpIGJ1YmJsZVZpZXchOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBzdWJ0aXRsZVZpZXchOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBsaXN0SXRlbVZpZXchOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSByZWNlaXB0RGF0ZVBhdHRlcm4hOiAodGltZXN0YW1wOiBudW1iZXIpID0+IHN0cmluZztcbiAgQElucHV0KCkgb25FcnJvcjogKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4gdm9pZCkgfCBudWxsID0gKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gIH1cbiAgQElucHV0KCkgbWVzc2FnZUluZm9ybWF0aW9uU3R5bGU6IE1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlID0ge1xuICAgIGhlaWdodDogXCI1MDBweFwiLFxuICAgIHdpZHRoOiBcIjUwMHB4XCJcbiAgfTtcbiAgQElucHV0KCkgcmVhZEljb246IHN0cmluZyA9IFwiYXNzZXRzL21lc3NhZ2UtcmVhZC5zdmdcIjtcbiAgQElucHV0KCkgZGVsaXZlcmVkSWNvbjogc3RyaW5nID0gXCJhc3NldHMvbWVzc2FnZS1kZWxpdmVyZWQuc3ZnXCI7XG4gIEBJbnB1dCgpIG9uQ2xvc2UhOiAoKSA9PiB2b2lkO1xuICBASW5wdXQoKSBsaXN0SXRlbVN0eWxlOiBMaXN0SXRlbVN0eWxlID0ge307XG4gIEBJbnB1dCgpIGVtcHR5U3RhdGVUZXh0OiBzdHJpbmcgPSBsb2NhbGl6ZShcIk5PX1JFQ0lQSUVOVFNcIilcbiAgQElucHV0KCkgZXJyb3JTdGF0ZVRleHQ6IHN0cmluZyA9IGxvY2FsaXplKFwiU09NRVRISU5HX1dST05HXCIpO1xuICBASW5wdXQoKSBlbXB0eVN0YXRlVmlldyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGxvYWRpbmdJY29uVVJMOiBzdHJpbmcgPSBcImFzc2V0cy9TcGlubmVyLnN2Z1wiO1xuICBASW5wdXQoKSBsb2FkaW5nU3RhdGVWaWV3ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgZXJyb3JTdGF0ZVZpZXchOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBvbk1lc3NhZ2VzRGVsaXZlcmVkITogU3Vic2NyaXB0aW9uO1xuICBvbk1lc3NhZ2VzUmVhZCE6IFN1YnNjcmlwdGlvbjtcbiAgcmVjZWlwdHM6IENvbWV0Q2hhdC5NZXNzYWdlUmVjZWlwdFtdID0gW107XG4gIHJlY2VpcHRTdHlsZSA9IG5ldyBSZWNlaXB0U3R5bGUoe30pXG4gIGlzVXNlclR5cGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGVsaXZlcmVkUmVjZWlwdDogUmVjZWlwdHMgPSBSZWNlaXB0cy5kZWxpdmVyZWQ7XG4gIHJlYWRSZWNlaXB0OiBSZWNlaXB0cyA9IFJlY2VpcHRzLnJlYWQ7XG4gIGxpc3RTdHlsZTogTGlzdFN0eWxlID0ge307XG4gIG1lc3NhZ2VUZXh0OiBzdHJpbmcgPSBsb2NhbGl6ZShcIk1FU1NBR0VcIik7XG4gIHJlY2VpcHRJbmZvVGV4dDogc3RyaW5nID0gbG9jYWxpemUoXCJSRUNFSVBUX0lORk9STUFUSU9OXCIpXG4gIGVtcHR5TGFiZWxTdHlsZTogTGFiZWxTdHlsZSA9IHtcbiAgICB0ZXh0Rm9udDogJzQwMCAxMXB4IEludGVyJyxcbiAgICB0ZXh0Q29sb3I6IFwiYmxhY2tcIlxuICB9XG4gIGRhdGVTdHlsZTogRGF0ZVN0eWxlID0ge1xuXG4gIH1cbiAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlciB8IG51bGwgPSBudWxsO1xuICBkaXZpZGVyU3R5bGU6IGFueSA9IHt9XG4gIHN0YXRlczogU3RhdGVzID0gU3RhdGVzLmxvYWRpbmdcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHRoZW1lU2VydmljZTogQ29tZXRDaGF0VGhlbWVTZXJ2aWNlKSB7IH1cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXG4gIH1cbiAgZ2V0RGF0ZVBhdHRlcm4odGltZXN0YW1wOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5yZWNlaXB0RGF0ZVBhdHRlcm4pIHtcbiAgICAgIHJldHVybiB0aGlzLnJlY2VpcHREYXRlUGF0dGVybih0aW1lc3RhbXApXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRUaGVtZSgpXG4gICAgQ29tZXRDaGF0VUlLaXQuZ2V0TG9nZ2VkaW5Vc2VyKCkhLnRoZW4oKHVzZXI6IENvbWV0Q2hhdC5Vc2VyIHwgbnVsbCkgPT4ge1xuICAgICAgaWYgKHVzZXIpIHtcbiAgICAgICAgdGhpcy5sb2dnZWRJblVzZXIgPSB1c2VyO1xuICAgICAgICB0aGlzLmdldE1lc3NhZ2VSZWNlaXB0cygpXG4gICAgICAgIHRoaXMuYWRkTWVzc2FnZUV2ZW50TGlzdGVuZXJzKClcbiAgICAgIH1cbiAgICB9KVxuXG5cbiAgfVxuICBzZXRUaGVtZSgpIHtcbiAgICB0aGlzLnNldE1lc3NhZ2VJbmZvU3R5bGUoKVxuICAgIHRoaXMuc2V0TGlzdEl0ZW1TdHlsZSgpXG4gICAgbGV0IHsgc2VuZEljb25UaW50LCBkZWxpdmVyZWRJY29uVGludCwgcmVhZEljb25UaW50IH0gPSB0aGlzLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlO1xuICAgIHRoaXMucmVjZWlwdFN0eWxlID0gbmV3IFJlY2VpcHRTdHlsZSh7XG4gICAgICBzZW50SWNvblRpbnQ6IHNlbmRJY29uVGludCA/PyB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgZGVsaXZlcmVkSWNvblRpbnQ6IGRlbGl2ZXJlZEljb25UaW50ID8/IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICByZWFkSWNvblRpbnQ6IHJlYWRJY29uVGludCA/PyB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKSxcbiAgICAgIGhlaWdodDogXCIyMHB4XCIsXG4gICAgICB3aWR0aDogXCIyMHB4XCIsXG4gICAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCJcbiAgICB9KVxuICAgIHRoaXMubGlzdFN0eWxlID0ge1xuICAgICAgdGl0bGVUZXh0Rm9udDogdGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS50aXRsZVRleHRGb250LFxuICAgICAgdGl0bGVUZXh0Q29sb3I6IHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUudGl0bGVUZXh0Q29sb3IsXG4gICAgICBlbXB0eVN0YXRlVGV4dEZvbnQ6IHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUuZW1wdHlTdGF0ZVRleHRGb250LFxuICAgICAgZW1wdHlTdGF0ZVRleHRDb2xvcjogdGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS5lbXB0eVN0YXRlVGV4dENvbG9yLFxuICAgICAgZXJyb3JTdGF0ZVRleHRGb250OiB0aGlzLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLmVycm9yU3RhdGVUZXh0Rm9udCxcbiAgICAgIGVycm9yU3RhdGVUZXh0Q29sb3I6IHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUuZXJyb3JTdGF0ZVRleHRDb2xvcixcbiAgICAgIGxvYWRpbmdJY29uVGludDogdGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS5sb2FkaW5nSWNvblRpbnQsXG4gICAgfVxuICAgIHRoaXMuZGl2aWRlclN0eWxlID0ge1xuICAgICAgYmFja2dyb3VuZDogdGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS5kaXZpZGVyVGludCxcbiAgICAgIGhlaWdodDogXCIxcHhcIixcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICB9XG4gICAgdGhpcy5kYXRlU3R5bGUgPSB7XG4gICAgICB0ZXh0Rm9udDogJzQwMCAxMXB4IEludGVyJyxcbiAgICAgIHRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIGJhY2tncm91bmQ6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgfVxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIHNldExpc3RJdGVtU3R5bGUoKSB7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTogTGlzdEl0ZW1TdHlsZSA9IG5ldyBMaXN0SXRlbVN0eWxlKHtcbiAgICAgIGhlaWdodDogXCJmaXQtY29udGVudFwiLFxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgYmFja2dyb3VuZDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRCYWNrZ3JvdW5kKCksXG4gICAgICBhY3RpdmVCYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICBib3JkZXJSYWRpdXM6IFwiMFwiLFxuICAgICAgdGl0bGVGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGl0bGUyKSxcbiAgICAgIHRpdGxlQ29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50KCksXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgc2VwYXJhdG9yQ29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MjAwKCksXG4gICAgICBob3ZlckJhY2tncm91bmQ6IFwidHJhbnNwYXJlbnRcIlxuICAgIH0pXG4gICAgdGhpcy5saXN0SXRlbVN0eWxlID0geyAuLi5kZWZhdWx0U3R5bGUsIC4uLnRoaXMubGlzdEl0ZW1TdHlsZSB9XG4gIH1cbiAgc2V0TWVzc2FnZUluZm9TdHlsZSgpIHtcbiAgICBsZXQgZGVmYXVsdFN0eWxlOiBNZXNzYWdlSW5mb3JtYXRpb25TdHlsZSA9IG5ldyBNZXNzYWdlSW5mb3JtYXRpb25TdHlsZSh7XG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NTAoKX1gLFxuICAgICAgdGl0bGVUZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMSksXG4gICAgICB0aXRsZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQoKSxcbiAgICAgIGVtcHR5U3RhdGVUZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMSksXG4gICAgICBlbXB0eVN0YXRlVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgZXJyb3JTdGF0ZVRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGl0bGUxKSxcbiAgICAgIGVycm9yU3RhdGVUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBsb2FkaW5nSWNvblRpbnQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICBzdWJ0aXRsZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIHN1YnRpdGxlVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5jYXB0aW9uMiksXG4gICAgICBkaXZpZGVyVGludDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQxMDAoKSxcbiAgICAgIGhlaWdodDogXCI1MDBweFwiLFxuICAgICAgd2lkdGg6IFwiNTAwcHhcIixcbiAgICAgIGNhcHRpb25UZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBjYXB0aW9uVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5jYXB0aW9uMylcbiAgICB9KVxuICAgIHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUgPSB7IC4uLmRlZmF1bHRTdHlsZSwgLi4udGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZSB9XG4gIH1cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5vbk1lc3NhZ2VzRGVsaXZlcmVkLnVuc3Vic2NyaWJlKClcbiAgICB0aGlzLm9uTWVzc2FnZXNSZWFkLnVuc3Vic2NyaWJlKCk7XG4gIH1cbiAgYWRkTWVzc2FnZUV2ZW50TGlzdGVuZXJzKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLm9uTWVzc2FnZXNEZWxpdmVyZWQgPSBDb21ldENoYXRNZXNzYWdlRXZlbnRzLm9uTWVzc2FnZXNEZWxpdmVyZWQuc3Vic2NyaWJlKChtZXNzYWdlUmVjZWlwdDogQ29tZXRDaGF0Lk1lc3NhZ2VSZWNlaXB0KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2U/LmdldElkKCkgPT0gTnVtYmVyKG1lc3NhZ2VSZWNlaXB0LmdldE1lc3NhZ2VJZCgpKSkge1xuICAgICAgICAgIHRoaXMudXBkYXRlUmVjZWlwdChtZXNzYWdlUmVjZWlwdClcbiAgICAgICAgICB0aGlzLm1lc3NhZ2U/LnNldERlbGl2ZXJlZEF0KG1lc3NhZ2VSZWNlaXB0LmdldERlbGl2ZXJlZEF0KCkpXG4gICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICB0aGlzLm9uTWVzc2FnZXNSZWFkID0gQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5vbk1lc3NhZ2VzUmVhZC5zdWJzY3JpYmUoKG1lc3NhZ2VSZWNlaXB0OiBDb21ldENoYXQuTWVzc2FnZVJlY2VpcHQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubWVzc2FnZT8uZ2V0SWQoKSA9PSBOdW1iZXIobWVzc2FnZVJlY2VpcHQuZ2V0TWVzc2FnZUlkKCkpKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVSZWNlaXB0KG1lc3NhZ2VSZWNlaXB0KVxuICAgICAgICAgIHRoaXMubWVzc2FnZT8uc2V0UmVhZEF0KG1lc3NhZ2VSZWNlaXB0LmdldFJlYWRBdCgpKVxuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmICh0aGlzLm9uRXJyb3IpIHtcbiAgICAgICAgdGhpcy5vbkVycm9yKENvbWV0Q2hhdEV4Y2VwdGlvbihlcnJvcikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBnZXRBdmF0YXJVcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNVc2VyVHlwZSA/ICh0aGlzLm1lc3NhZ2UuZ2V0UmVjZWl2ZXIoKSBhcyBDb21ldENoYXQuVXNlcikuZ2V0QXZhdGFyKCkgOiBcIlwiXG4gIH1cbiAgZ2V0VXNlclJlY2VpcHQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZS5nZXRSZWFkQXQoKSB8fCB0aGlzLm1lc3NhZ2UuZ2V0RGVsaXZlcmVkQXQoKVxuICB9XG4gIGdldE1lc3NhZ2VSZWNlaXB0KCkge1xuICAgIGxldCByZWNlaXB0ID0gTWVzc2FnZVJlY2VpcHRVdGlscy5nZXRSZWNlaXB0U3RhdHVzKHRoaXMubWVzc2FnZSlcbiAgICByZXR1cm4gcmVjZWlwdFxuICB9XG4gIHVwZGF0ZVJlY2VpcHQocmVjZWlwdDogQ29tZXRDaGF0Lk1lc3NhZ2VSZWNlaXB0KSB7XG4gICAgbGV0IG1lc3NhZ2VLZXkgPSB0aGlzLnJlY2VpcHRzLmZpbmRJbmRleChcbiAgICAgIChtOiBDb21ldENoYXQuTWVzc2FnZVJlY2VpcHQpID0+IG0uZ2V0U2VuZGVyKCkuZ2V0VWlkKCkgPT09IHJlY2VpcHQuZ2V0U2VuZGVyKCkuZ2V0VWlkKClcbiAgICApO1xuICAgIGlmIChtZXNzYWdlS2V5ID4gLTEpIHtcbiAgICAgIGlmIChyZWNlaXB0LmdldFJlY2VpcHRUeXBlKCkgPT0gcmVjZWlwdC5SRUNFSVBUX1RZUEUuUkVBRF9SRUNFSVBUKSB7XG4gICAgICAgIHRoaXMucmVjZWlwdHNbbWVzc2FnZUtleV0uc2V0UmVhZEF0KHJlY2VpcHQuZ2V0UmVhZEF0KCkpXG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5yZWNlaXB0c1ttZXNzYWdlS2V5XS5zZXREZWxpdmVyZWRBdChyZWNlaXB0LmdldERlbGl2ZXJlZEF0KCkpXG4gICAgICB9XG5cbiAgICB9XG5cbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbiAgZ2V0TWVzc2FnZVJlY2VpcHRzKCkge1xuICAgIGlmICh0aGlzLm1lc3NhZ2UuZ2V0UmVjZWl2ZXJUeXBlKCkgPT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS51c2VyKSB7XG4gICAgICB0aGlzLmlzVXNlclR5cGUgPSB0cnVlO1xuICAgICAgdGhpcy5lbXB0eVN0YXRlVGV4dCA9IGxvY2FsaXplKFwiTk9fUkVDSVBJRU5UXCIpXG4gICAgICB0aGlzLnN0YXRlcyA9IFN0YXRlcy5sb2FkZWRcbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuZW1wdHlTdGF0ZVRleHQgPSBsb2NhbGl6ZShcIk5PX1JFQ0lQSUVOVFNcIilcbiAgICAgIHRoaXMuc3RhdGVzID0gU3RhdGVzLmxvYWRpbmdcbiAgICAgIHRoaXMuaXNVc2VyVHlwZSA9IGZhbHNlO1xuICAgICAgQ29tZXRDaGF0LmdldE1lc3NhZ2VSZWNlaXB0cyh0aGlzLm1lc3NhZ2UuZ2V0SWQoKSkudGhlbigocmVjZWlwdHM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJlY2VpcHRzID0gcmVjZWlwdHMuZmlsdGVyKChyZWNlaXB0OiBDb21ldENoYXQuTWVzc2FnZVJlY2VpcHQpID0+IHJlY2VpcHQuZ2V0U2VuZGVyKCkuZ2V0VWlkKCkgIT09IHRoaXMubG9nZ2VkSW5Vc2VyPy5nZXRVaWQoKSkgYXMgQ29tZXRDaGF0Lk1lc3NhZ2VSZWNlaXB0W107XG4gICAgICAgIHRoaXMuc3RhdGVzID0gdGhpcy5yZWNlaXB0cy5sZW5ndGggPiAwID8gU3RhdGVzLmxvYWRlZCA6IFN0YXRlcy5lbXB0eTtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnI6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXRlcyA9IFN0YXRlcy5lcnJvclxuICAgICAgICB9KVxuICAgIH1cblxuICB9XG4gIGNsb3NlQ2xpY2tlZCgpIHtcbiAgICBpZiAodGhpcy5vbkNsb3NlKSB7XG4gICAgICB0aGlzLm9uQ2xvc2UoKVxuICAgIH1cbiAgfVxuICBjbG9zZUJ1dHRvblN0eWxlID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBoZWlnaHQ6IFwiMjRweFwiLFxuICAgICAgd2lkdGg6IFwiMjRweFwiLFxuICAgICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICAgIGJvcmRlclJhZGl1czogXCIwXCIsXG4gICAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICBidXR0b25JY29uVGludDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRQcmltYXJ5KClcbiAgICB9XG4gIH1cbiAgZ2V0U3VidGl0bGVTdHlsZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dEZvbnQ6IHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUuc3VidGl0bGVUZXh0Rm9udCxcbiAgICAgIHRleHRDb2xvcjogdGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS5zdWJ0aXRsZVRleHRDb2xvclxuICAgIH1cbiAgfVxuICBnZXRUaXRsZVN0eWxlKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0ZXh0Rm9udDogdGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS50aXRsZVRleHRGb250LFxuICAgICAgdGV4dENvbG9yOiB0aGlzLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLnRpdGxlVGV4dENvbG9yXG4gICAgfVxuICB9XG4gIHdyYXBwZXJTdHlsZSA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVpZ2h0OiB0aGlzLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLmhlaWdodCxcbiAgICAgIHdpZHRoOiB0aGlzLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLndpZHRoLFxuICAgICAgYmFja2dyb3VuZDogdGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS5iYWNrZ3JvdW5kLFxuICAgICAgYm9yZGVyOiB0aGlzLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLmJvcmRlcixcbiAgICAgIGJvcmRlclJhZGl1czogdGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS5ib3JkZXJSYWRpdXNcbiAgICB9XG4gIH1cbiAgZ2V0Q2FwdGlvblN0eWxlID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0ZXh0Rm9udDogdGhpcy5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS5jYXB0aW9uVGV4dEZvbnQsXG4gICAgICB0ZXh0Q29sb3I6IHRoaXMubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUuY2FwdGlvblRleHRDb2xvclxuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiY2MtbWVzc2FnZS1pbmZvcm1hdGlvbl9fd3JhcHBlclwiIFtuZ1N0eWxlXT1cIndyYXBwZXJTdHlsZSgpXCI+XG4gIDxkaXYgY2xhc3M9XCJjYy1tZXNzYWdlLWluZm9ybWF0aW9uX19oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2MtbWVzc2FnZS1pbmZvcm1hdGlvbl9fdGl0bGVcIj5cbiAgICAgIDxjb21ldGNoYXQtbGFiZWwgW3RleHRdPVwidGl0bGVcIlxuICAgICAgICBbbGFiZWxTdHlsZV09XCJnZXRUaXRsZVN0eWxlKClcIj48L2NvbWV0Y2hhdC1sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2MtY2xvc2UtYnV0dG9uXCI+XG4gICAgICA8Y29tZXRjaGF0LWJ1dHRvbiBbaWNvblVSTF09XCJjbG9zZUljb25VUkxcIlxuICAgICAgICBbYnV0dG9uU3R5bGVdPVwiY2xvc2VCdXR0b25TdHlsZSgpXCIgKGNjLWJ1dHRvbi1jbGlja2VkKT1cImNsb3NlQ2xpY2tlZCgpXCI+XG4gICAgICA8L2NvbWV0Y2hhdC1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2MtbWVzc2FnZS1pbmZvcm1hdGlvbl9fYnViYmxlXCI+XG4gICAgPGNvbWV0Y2hhdC1sYWJlbCBjbGFzcz1cImNjLW1lc3NhZ2UtaW5mb3JtYXRpb25fX2NhcHRpb25cIlxuICAgICAgW2xhYmVsU3R5bGVdPVwiZ2V0Q2FwdGlvblN0eWxlKClcIiBbdGV4dF09XCJtZXNzYWdlVGV4dFwiPjwvY29tZXRjaGF0LWxhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJjYy1tZXNzYWdlLWluZm9ybWF0aW9uX19idWJibGUtdmlld1wiPlxuICAgICAgPGNvbWV0Y2hhdC1kaXZpZGVyIFtkaXZpZGVyU3R5bGVdPVwiZGl2aWRlclN0eWxlXCI+PC9jb21ldGNoYXQtZGl2aWRlcj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidWJibGVWaWV3OyBjb250ZXh0OnsgJGltcGxpY2l0OiBtZXNzYWdlIH1cIj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGNvbWV0Y2hhdC1kaXZpZGVyIFtkaXZpZGVyU3R5bGVdPVwiZGl2aWRlclN0eWxlXCI+PC9jb21ldGNoYXQtZGl2aWRlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjYy1tZXNzYWdlLWluZm9ybWF0aW9uX19saXN0LWl0ZW1cIj5cbiAgICA8Y29tZXRjaGF0LWxhYmVsIGNsYXNzPVwiY2MtbWVzc2FnZS1pbmZvcm1hdGlvbl9fY2FwdGlvblwiXG4gICAgICBbbGFiZWxTdHlsZV09XCJnZXRDYXB0aW9uU3R5bGUoKVwiXG4gICAgICBbdGV4dF09XCJyZWNlaXB0SW5mb1RleHRcIj48L2NvbWV0Y2hhdC1sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiY2MtbWVzc2FnZS1pbmZvcm1hdGlvbl9fYnViYmxlLXZpZXdcIlxuICAgICAgKm5nSWY9XCJpc1VzZXJUeXBlOyBlbHNlIGxpc3RWaWV3XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdEl0ZW1WaWV3OyBlbHNlIHVzZXJMaXN0aXRlbVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsaXN0SXRlbVZpZXc7IGNvbnRleHQ6eyAkaW1wbGljaXQ6IG1lc3NhZ2UgfVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICN1c2VyTGlzdGl0ZW0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZ2V0VXNlclJlY2VpcHQoKTsgZWxzZSB1c2VyUmVjZWlwdFZpZXdcIlxuICAgICAgICAgIGNsYXNzPVwiY2MtZW1wdHktc3RhdGUtdmlld1wiPlxuICAgICAgICAgIDxjb21ldGNoYXQtbGFiZWwgKm5nSWY9XCIhZW1wdHlTdGF0ZVZpZXcgZWxzZSBjdXN0b21FbXB0eVZpZXdcIlxuICAgICAgICAgICAgW3RleHRdPVwiZW1wdHlTdGF0ZVRleHRcIlxuICAgICAgICAgICAgW2xhYmVsU3R5bGVdPVwiZW1wdHlMYWJlbFN0eWxlXCI+PC9jb21ldGNoYXQtbGFiZWw+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNjdXN0b21FbXB0eVZpZXc+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlTdGF0ZVZpZXdcIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI3VzZXJSZWNlaXB0Vmlldz5cbiAgICAgICAgICA8Y29tZXRjaGF0LWRpdmlkZXIgW2RpdmlkZXJTdHlsZV09XCJkaXZpZGVyU3R5bGVcIj48L2NvbWV0Y2hhdC1kaXZpZGVyPlxuICAgICAgICAgIDxjb21ldGNoYXQtbGlzdC1pdGVtIFtoaWRlU2VwYXJhdG9yXT1cInRydWVcIiBbaWRdPVwibWVzc2FnZS5nZXRJZCgpXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJtZXNzYWdlLmdldFJlY2VpdmVyKCkuZ2V0TmFtZSgpXCJcbiAgICAgICAgICAgIFtsaXN0SXRlbVN0eWxlXT1cImxpc3RJdGVtU3R5bGVcIiBbYXZhdGFyVVJMXT1cImdldEF2YXRhclVybCgpXCJcbiAgICAgICAgICAgIFthdmF0YXJOYW1lXT1cIm1lc3NhZ2UuZ2V0UmVjZWl2ZXIoKS5nZXROYW1lKClcIj5cbiAgICAgICAgICAgIDxkaXYgc2xvdD1cInN1YnRpdGxlVmlld1wiICpuZ0lmPVwic3VidGl0bGVWaWV3O2Vsc2UgdXNlclN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdWJ0aXRsZVZpZXdcIj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdXNlclN1YnRpdGxlPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtbGlzdC1pdGVtX19zdWJ0aXRsZS12aWV3IFwiIHNsb3Q9XCJzdWJ0aXRsZVZpZXdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtbGlzdC1pdGVtX19zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNjLWxpc3QtaXRlbV9fZGVsaXZlcmVkLXJlY2VpcHRcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm1lc3NhZ2UuZ2V0RGVsaXZlcmVkQXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtbGlzdC1pdGVtX19yZWNlaXB0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGNvbWV0Y2hhdC1yZWNlaXB0IFtyZWNlaXB0XT1cImRlbGl2ZXJlZFJlY2VpcHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlY2VpcHRTdHlsZV09XCJyZWNlaXB0U3R5bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RlbGl2ZXJlZEljb25dPVwiZGVsaXZlcmVkSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVhZEljb25dPVwicmVhZEljb25cIj48L2NvbWV0Y2hhdC1yZWNlaXB0PlxuICAgICAgICAgICAgICAgICAgICAgIDxjb21ldGNoYXQtbGFiZWwgW3RleHRdPVwiJ0RlbGl2ZXJlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsU3R5bGVdPVwiZ2V0U3VidGl0bGVTdHlsZSgpXCI+PC9jb21ldGNoYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8Y29tZXRjaGF0LWRhdGUgW3RpbWVzdGFtcF09XCJtZXNzYWdlLmdldERlbGl2ZXJlZEF0KClcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkYXRlU3R5bGVdPVwiZGF0ZVN0eWxlXCI+PC9jb21ldGNoYXQtZGF0ZT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNjLWxpc3QtaXRlbV9fcmVhZC1yZWNlaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtZXNzYWdlLmdldFJlYWRBdCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYy1saXN0LWl0ZW1fX3JlY2VpcHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8Y29tZXRjaGF0LXJlY2VpcHQgW3JlY2VpcHRdPVwicmVhZFJlY2VpcHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlY2VpcHRTdHlsZV09XCJyZWNlaXB0U3R5bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RlbGl2ZXJlZEljb25dPVwiZGVsaXZlcmVkSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVhZEljb25dPVwicmVhZEljb25cIj48L2NvbWV0Y2hhdC1yZWNlaXB0PlxuICAgICAgICAgICAgICAgICAgICAgIDxjb21ldGNoYXQtbGFiZWwgW3RleHRdPVwiJ1JlYWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbFN0eWxlXT1cImdldFN1YnRpdGxlU3R5bGUoKVwiPjwvY29tZXRjaGF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGNvbWV0Y2hhdC1kYXRlIFt0aW1lc3RhbXBdPVwibWVzc2FnZS5nZXRSZWFkQXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2RhdGVTdHlsZV09XCJkYXRlU3R5bGVcIj48L2NvbWV0Y2hhdC1kYXRlPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2NvbWV0Y2hhdC1saXN0LWl0ZW0+XG4gICAgICAgICAgPGNvbWV0Y2hhdC1kaXZpZGVyIFtkaXZpZGVyU3R5bGVdPVwiZGl2aWRlclN0eWxlXCI+PC9jb21ldGNoYXQtZGl2aWRlcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48IS0tIGxpc3QgaXRlbSB2aWV3IC0tPlxuPG5nLXRlbXBsYXRlICNsaXN0Vmlldz5cbiAgPGNvbWV0Y2hhdC1saXN0IFtsaXN0XT1cInJlY2VpcHRzXCJcbiAgICBbbGlzdEl0ZW1WaWV3XT1cImxpc3RJdGVtVmlldyA/IGxpc3RJdGVtVmlldyA6IGxpc3RJdGVtXCIgW2hpZGVTZWFyY2hdPVwidHJ1ZVwiXG4gICAgW3N0YXRlXT1cInN0YXRlc1wiIFtlbXB0eVN0YXRlVGV4dF09XCJlbXB0eVN0YXRlVGV4dFwiXG4gICAgW2Vycm9yU3RhdGVUZXh0XT1cImVycm9yU3RhdGVUZXh0XCIgW2xvYWRpbmdJY29uVVJMXT1cImxvYWRpbmdJY29uVVJMXCJcbiAgICBbbG9hZGluZ1N0YXRlVmlld109XCJsb2FkaW5nU3RhdGVWaWV3XCIgW2Vycm9yU3RhdGVWaWV3XT1cImVycm9yU3RhdGVWaWV3XCJcbiAgICBbZW1wdHlTdGF0ZVZpZXddPVwiZW1wdHlTdGF0ZVZpZXdcIiBbdGl0bGVdPVwiJydcIj48L2NvbWV0Y2hhdC1saXN0PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbGlzdEl0ZW0gbGV0LW1lc3NhZ2VSZWNlaXB0PlxuICA8Y29tZXRjaGF0LWRpdmlkZXIgW2RpdmlkZXJTdHlsZV09XCJkaXZpZGVyU3R5bGVcIj48L2NvbWV0Y2hhdC1kaXZpZGVyPlxuICA8Y29tZXRjaGF0LWxpc3QtaXRlbSBbaGlkZVNlcGFyYXRvcl09XCJ0cnVlXCJcbiAgICBbdGl0bGVdPVwibWVzc2FnZVJlY2VpcHQuZ2V0U2VuZGVyKCkuZ2V0TmFtZSgpXCJcbiAgICBbbGlzdEl0ZW1TdHlsZV09XCJsaXN0SXRlbVN0eWxlXCJcbiAgICBbYXZhdGFyVVJMXT1cIm1lc3NhZ2VSZWNlaXB0LmdldFNlbmRlcigpPy5nZXRBdmF0YXIoKVwiXG4gICAgW2F2YXRhck5hbWVdPVwibWVzc2FnZVJlY2VpcHQuZ2V0U2VuZGVyKCkuZ2V0TmFtZSgpXCI+XG4gICAgPGRpdiBzbG90PVwic3VidGl0bGVWaWV3XCIgKm5nSWY9XCJzdWJ0aXRsZVZpZXc7ZWxzZSB1c2VyU3VidGl0bGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdWJ0aXRsZVZpZXdcIj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjdXNlclN1YnRpdGxlPlxuICAgICAgPGRpdiBjbGFzcz1cImNjLWxpc3QtaXRlbV9fc3VidGl0bGUtdmlldyBcIiBzbG90PVwic3VidGl0bGVWaWV3XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYy1saXN0LWl0ZW1fX3N1YnRpdGxlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNjLWxpc3QtaXRlbV9fZGVsaXZlcmVkLXJlY2VpcHRcIlxuICAgICAgICAgICAgKm5nSWY9XCJtZXNzYWdlUmVjZWlwdC5nZXREZWxpdmVyZWRBdCgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtbGlzdC1pdGVtX19yZWNlaXB0XCI+XG4gICAgICAgICAgICAgIDxjb21ldGNoYXQtcmVjZWlwdCBbcmVjZWlwdF09XCJkZWxpdmVyZWRSZWNlaXB0XCJcbiAgICAgICAgICAgICAgICBbcmVjZWlwdFN0eWxlXT1cInJlY2VpcHRTdHlsZVwiIFtkZWxpdmVyZWRJY29uXT1cImRlbGl2ZXJlZEljb25cIlxuICAgICAgICAgICAgICAgIFtyZWFkSWNvbl09XCJyZWFkSWNvblwiPjwvY29tZXRjaGF0LXJlY2VpcHQ+XG4gICAgICAgICAgICAgIDxjb21ldGNoYXQtbGFiZWwgW3RleHRdPVwiJ0RlbGl2ZXJlZCdcIlxuICAgICAgICAgICAgICAgIFtsYWJlbFN0eWxlXT1cImdldFN1YnRpdGxlU3R5bGUoKVwiPjwvY29tZXRjaGF0LWxhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8Y29tZXRjaGF0LWRhdGUgW3RpbWVzdGFtcF09XCJtZXNzYWdlUmVjZWlwdC5nZXREZWxpdmVyZWRBdCgpXCJcbiAgICAgICAgICAgICAgW2RhdGVTdHlsZV09XCJkYXRlU3R5bGVcIj48L2NvbWV0Y2hhdC1kYXRlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYy1saXN0LWl0ZW1fX3JlYWQtcmVjZWlwdFwiXG4gICAgICAgICAgICAqbmdJZj1cIm1lc3NhZ2VSZWNlaXB0LmdldFJlYWRBdCgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtbGlzdC1pdGVtX19yZWNlaXB0XCI+XG4gICAgICAgICAgICAgIDxjb21ldGNoYXQtcmVjZWlwdCBbcmVjZWlwdF09XCJyZWFkUmVjZWlwdFwiXG4gICAgICAgICAgICAgICAgW3JlY2VpcHRTdHlsZV09XCJyZWNlaXB0U3R5bGVcIiBbZGVsaXZlcmVkSWNvbl09XCJkZWxpdmVyZWRJY29uXCJcbiAgICAgICAgICAgICAgICBbcmVhZEljb25dPVwicmVhZEljb25cIj48L2NvbWV0Y2hhdC1yZWNlaXB0PlxuICAgICAgICAgICAgICA8Y29tZXRjaGF0LWxhYmVsIFt0ZXh0XT1cIidSZWFkJ1wiXG4gICAgICAgICAgICAgICAgW2xhYmVsU3R5bGVdPVwiZ2V0U3VidGl0bGVTdHlsZSgpXCI+PC9jb21ldGNoYXQtbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxjb21ldGNoYXQtZGF0ZSBbdGltZXN0YW1wXT1cIm1lc3NhZ2VSZWNlaXB0LmdldFJlYWRBdCgpXCJcbiAgICAgICAgICAgICAgW2RhdGVTdHlsZV09XCJkYXRlU3R5bGVcIj48L2NvbWV0Y2hhdC1kYXRlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvY29tZXRjaGF0LWxpc3QtaXRlbT5cbiAgPGNvbWV0Y2hhdC1kaXZpZGVyIFtkaXZpZGVyU3R5bGVdPVwiZGl2aWRlclN0eWxlXCI+PC9jb21ldGNoYXQtZGl2aWRlcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=