@lowcodeunit/applications-flow-common 1.39.86-merge → 1.39.87-enterprise-switch-fix

Sign up to get free protection for your applications and to get access to all the features.
@@ -163,7 +163,7 @@ export class DevopsSourceControlFormComponent {
163
163
  }
164
164
  RefreshOrganizations() {
165
165
  // this.Loading = true;
166
- console.log('refresh');
166
+ // console.log('refresh');
167
167
  this.listOrganizations();
168
168
  this.OrganizationFormControl?.reset();
169
169
  this.RepositoryFormControl?.reset();
@@ -408,4 +408,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
408
408
  type: ViewChild,
409
409
  args: ['branches']
410
410
  }] } });
411
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0vZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0vZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0gsV0FBVyxFQUVYLFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBSXhCLE9BQU8sRUFBcUMsSUFBSSxFQUFVLE1BQU0sYUFBYSxDQUFDO0FBWTlFLE9BQU8sRUFJSCxxQkFBcUIsR0FDeEIsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPN0MsTUFBTSxPQUFPLGdDQUFnQztJQWlIekMsZ0JBQWdCO0lBQ2hCLFlBQ2MsV0FBb0MsRUFDcEMsTUFBa0IsRUFDbEIsV0FBd0I7UUFGeEIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFOdEIsdUJBQWtCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFVLENBQUM7UUFRekQsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxZQUFZ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LENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUMvQyxJQUFJLFdBQVcsQ0FDWCxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFDMUMsVUFBVSxDQUFDLFFBQVEsQ0FDdEIsQ0FDSixDQUFDO1NBQ0w7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFVBQVUsQ0FDeEMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUM5QyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQzdELENBQUM7U0FDTDtJQUNMLENBQUM7OzZIQWhvQlEsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0MsZ2ZDOUM3Qyw4a2NBNlhBOzJGRC9VYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0ksZ0NBQWdDO2lLQVFuQywwQkFBMEI7c0JBRGhDLEtBQUs7dUJBQUMsK0JBQStCO2dCQUkvQixXQUFXO3NCQURqQixLQUFLO3VCQUFDLGFBQWE7Z0JBSWIsaUJBQWlCO3NCQUR2QixLQUFLO3VCQUFDLG9CQUFvQjtnQkFJcEIsT0FBTztzQkFEYixLQUFLO3VCQUFDLFNBQVM7Z0JBSVQsZUFBZTtzQkFEckIsTUFBTTt1QkFBQyxtQkFBbUI7Z0JBSXBCLGFBQWE7c0JBRG5CLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENPTU1BLCBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtQnVpbGRlcixcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtR3JvdXAsXG4gICAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBCYXNlTW9kZWxlZFJlc3BvbnNlLCBCYXNlUmVzcG9uc2UsIEd1aWQsIFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRWFDQXJ0aWZhY3QsXG4gICAgRWFDRGV2T3BzQWN0aW9uLFxuICAgIEVhQ0Vudmlyb25tZW50QXNDb2RlLFxuICAgIEVhQ1NvdXJjZUNvbnRyb2wsXG59IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcGxpY2F0aW9ucy1mbG93LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgICBFYUNTZXJ2aWNlLFxuICAgIFNhdmVFbnZpcm9ubWVudEFzQ29kZUV2ZW50UmVxdWVzdCxcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWFjLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgICBHaXRIdWJCcmFuY2gsXG4gICAgR2l0SHViT3JnYW5pemF0aW9uLFxuICAgIEdpdEh1YlJlcG9zaXRvcnksXG4gICAgUHJvamVjdEhvc3RpbmdEZXRhaWxzLFxufSBmcm9tICcuLi8uLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGN1LWRldm9wcy1zb3VyY2UtY29udHJvbC1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Rldm9wcy1zb3VyY2UtY29udHJvbC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERldm9wc1NvdXJjZUNvbnRyb2xGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAgIC8vICBGaWVsZHNcblxuICAgIEBJbnB1dCgnZWRpdGluZy1zb3VyY2UtY29udHJvbC1sb29rdXAnKVxuICAgIHB1YmxpYyBFZGl0aW5nU291cmNlQ29udHJvbExvb2t1cDogc3RyaW5nO1xuXG4gICAgQElucHV0KCdlbnZpcm9ubWVudCcpXG4gICAgcHVibGljIEVudmlyb25tZW50OiBFYUNFbnZpcm9ubWVudEFzQ29kZTtcblxuICAgIEBJbnB1dCgnZW52aXJvbm1lbnQtbG9va3VwJylcbiAgICBwdWJsaWMgRW52aXJvbm1lbnRMb29rdXA6IHN0cmluZztcblxuICAgIEBJbnB1dCgnbG9hZGluZycpXG4gICAgcHVibGljIExvYWRpbmc6IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KCdzYXZlLXN0YXR1cy1ldmVudCcpXG4gICAgcHVibGljIFNhdmVTdGF0dXNFdmVudDogRXZlbnRFbWl0dGVyPFN0YXR1cz47XG5cbiAgICBAVmlld0NoaWxkKCdicmFuY2hlcycpXG4gICAgcHVibGljIEJyYW5jaGVzSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICAvL09wdGlvbmFsIGlucHV0IG5vdCBiZWluZyB1c2VkIHNldHRpbmcgdG9cbiAgICAvLyBASW5wdXQoJ2J1aWxkLXBhdGgnKVxuICAgIHB1YmxpYyBCdWlsZFBhdGg6IHN0cmluZztcblxuICAgIC8vT3B0aW9uYWwgbm90IGJlaW5nIHVzZWRcbiAgICAvLyBASW5wdXQoJ2J1aWxkLXBhdGgtZGlzYWJsZWQnKVxuICAgIHB1YmxpYyBCdWlsZFBhdGhEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIC8vIHRoaXMgaW5wdXQgaXMgbm90IGJlaW5nIHVzZWQgYW55d2hlcmVcbiAgICAvLyBASW5wdXQoJ3NvdXJjZS1jb250cm9sLXJvb3QnKVxuICAgIHB1YmxpYyBTb3VyY2VDb250cm9sUm9vdDogc3RyaW5nO1xuXG4gICAgLy9ub3QgYmVpbmcgdXNlZCBzZXQgdG8gdHJ1ZSBieSBkZWZhdWx0XG4gICAgLy8gQElucHV0KCd1c2UtYnJhbmNoZXMnKVxuICAgIHB1YmxpYyBVc2VCcmFuY2hlczogYm9vbGVhbjtcblxuICAgIC8vbm90IGJlaW5nIHVzZWQgc2V0IHRvIGZhbHNlIGJ5IGRlZmF1bHRcbiAgICAvLyBASW5wdXQoJ3VzZS1idWlsZC1wYXRoJylcbiAgICBwdWJsaWMgVXNlQnVpbGRQYXRoOiBib29sZWFuO1xuXG4gICAgLy8gIFByb3BlcnRpZXNcblxuICAgIHB1YmxpYyBnZXQgQnJhbmNoZXNGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwPy5nZXQoXG4gICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xSb290ICsgJ2JyYW5jaGVzJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgQnVpbGRQYXRoRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cD8uZ2V0KFxuICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sUm9vdCArICdidWlsZFBhdGgnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBEZXZPcHNBY3Rpb25Mb29rdXBGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwPy5nZXQoJ2Rldk9wc0FjdGlvbkxvb2t1cCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgTWFpbkJyYW5jaEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXA/LmdldChcbiAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbFJvb3QgKyAnbWFpbkJyYW5jaCdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IE9yZ2FuaXphdGlvbkZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXA/LmdldChcbiAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbFJvb3QgKyAnb3JnYW5pemF0aW9uJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgUmVwb3NpdG9yeUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXA/LmdldChcbiAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbFJvb3QgKyAncmVwb3NpdG9yeSdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQXJ0aWZhY3Q6IEVhQ0FydGlmYWN0O1xuXG4gICAgcHVibGljIEFydGlmYWN0TG9va3VwOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgQXJ0aWZhY3RMb29rdXBzOiBBcnJheTxzdHJpbmc+O1xuXG4gICAgcHVibGljIEJyYW5jaE9wdGlvbnM6IEdpdEh1YkJyYW5jaFtdO1xuXG4gICAgcHVibGljIEJ1aWxkUGF0aE9wdGlvbnM6IHN0cmluZ1tdO1xuXG4gICAgcHVibGljIENyZWF0aW5nUmVwb3NpdG9yeTogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBEZXZPcHNBY3Rpb246IEVhQ0Rldk9wc0FjdGlvbjtcblxuICAgIHB1YmxpYyBEZXZPcHNBY3Rpb25zOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0Rldk9wc0FjdGlvbiB9O1xuXG4gICAgcHVibGljIERldk9wc0FjdGlvbkxvb2t1cDogc3RyaW5nO1xuXG4gICAgcHVibGljIERldk9wc0FjdGlvbkxvb2t1cHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBwdWJsaWMgRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgcHVibGljIEVkaXRpbmdTb3VyY2VDb250cm9sOiBFYUNTb3VyY2VDb250cm9sO1xuXG4gICAgcHVibGljIEhvc3RpbmdEZXRhaWxzOiBQcm9qZWN0SG9zdGluZ0RldGFpbHM7XG5cbiAgICBwdWJsaWMgT3JnYW5pemF0aW9uT3B0aW9uczogR2l0SHViT3JnYW5pemF0aW9uW107XG5cbiAgICBwdWJsaWMgUmVwb3NpdG9yeU9wdGlvbnM6IEdpdEh1YlJlcG9zaXRvcnlbXTtcblxuICAgIHB1YmxpYyBTZWxlY3RlZEJyYW5jaGVzOiBzdHJpbmdbXTtcblxuICAgIHB1YmxpYyBTa2VsZXRvbkVmZmVjdDogc3RyaW5nO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IFNlcGFyYXRvcktleXNDb2RlcyA9IFtFTlRFUiwgQ09NTUFdIGFzIGNvbnN0O1xuXG4gICAgLy8gIENvbnN0cnVjdG9yc1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgYXBwc0Zsb3dTdmM6IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyXG4gICAgKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiY3RvclwiKVxuICAgICAgICB0aGlzLlNhdmVTdGF0dXNFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgICAgICB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sID0ge307XG5cbiAgICAgICAgdGhpcy5CdWlsZFBhdGggPSBudWxsO1xuXG4gICAgICAgIHRoaXMuSG9zdGluZ0RldGFpbHMgPSBuZXcgUHJvamVjdEhvc3RpbmdEZXRhaWxzKCk7XG5cbiAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzID0gW107XG5cbiAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sUm9vdCA9ICcnO1xuXG4gICAgICAgIHRoaXMuU2tlbGV0b25FZmZlY3QgPSAnd2F2ZSc7XG5cbiAgICAgICAgdGhpcy5Vc2VCcmFuY2hlcyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5Vc2VCdWlsZFBhdGggPSBmYWxzZTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJlbmQgY3RvclwiKVxuICAgIH1cblxuICAgIC8vICBMaWZlIEN5Y2xlXG4gICAgLy8gcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHt9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveUZvcm1Db250cm9scygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJvbiBpbml0XCIpXG4gICAgICAgIGlmICh0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sTG9va3VwID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLkNyZWF0ZU5ld1NvdXJjZUNvbnRyb2woKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe30pO1xuXG4gICAgICAgICAgICB0aGlzLnNldHVwRm9ybUNvbnRyb2xzKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLlJlZnJlc2hPcmdhbml6YXRpb25zKCk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiZW5kIGluaXRcIilcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwib24gY2hhbmdlc1wiKVxuICAgICAgICBpZiAodGhpcy5FbnZpcm9ubWVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuRW52aXJvbm1lbnQ/LkFydGlmYWN0cyAmJiB0aGlzLkFydGlmYWN0TG9va3VwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5BcnRpZmFjdCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuRW52aXJvbm1lbnQ/LkFydGlmYWN0c1t0aGlzLkFydGlmYWN0TG9va3VwXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuRW52aXJvbm1lbnQ/LkRldk9wc0FjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLkRldk9wc0FjdGlvbnMgPSB0aGlzLkVudmlyb25tZW50LkRldk9wc0FjdGlvbnM7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5EZXZPcHNBY3Rpb25Mb29rdXApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5EZXZPcHNBY3Rpb24gPVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5FbnZpcm9ubWVudD8uRGV2T3BzQWN0aW9uc1tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cFxuICAgICAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLkRldk9wc0FjdGlvbj8uQXJ0aWZhY3RMb29rdXBzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5BcnRpZmFjdExvb2t1cHMgPSB0aGlzLkRldk9wc0FjdGlvbj8uQXJ0aWZhY3RMb29rdXBzO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5BcnRpZmFjdExvb2t1cCA9IHRoaXMuRGV2T3BzQWN0aW9uPy5BcnRpZmFjdExvb2t1cHNbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuRGV2T3BzQWN0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXBzID0gT2JqZWN0LmtleXModGhpcy5EZXZPcHNBY3Rpb25zIHx8IHt9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdkZXZvcHNBY3Rpb24gbG9va3VwczogJywgdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXBzKTtcblxuICAgICAgICBpZiAodGhpcy5FbnZpcm9ubWVudD8uU291cmNlcyAmJiB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sTG9va3VwKSB7XG4gICAgICAgICAgICB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sID1cbiAgICAgICAgICAgICAgICB0aGlzLkVudmlyb25tZW50Py5Tb3VyY2VzW3RoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2xMb29rdXBdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXBGb3JtQ29udHJvbD8udmFsdWUpIHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgLy8gICAgICdEZXZPcHNBY3Rpb25Mb29rdXBGb3JtQ29udHJvbDogJyxcbiAgICAgICAgICAgIC8vICAgICB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sPy52YWx1ZVxuICAgICAgICAgICAgLy8gKTtcbiAgICAgICAgICAgIHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwID0gdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXBGb3JtQ29udHJvbD8udmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISF0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sPy5EZXZPcHNBY3Rpb25UcmlnZ2VyTG9va3Vwcykge1xuICAgICAgICAgICAgdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXAgPVxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2w/LkRldk9wc0FjdGlvblRyaWdnZXJMb29rdXBzWzBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXAgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdkZXZvcHMgYWN0aW9uIGxvb2t1cCA9ICcsIHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2Zvcm0gdmFsdWUnLCB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sLnZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyAgQVBJIE1ldGhvZHNcbiAgICBwdWJsaWMgQWRkQnJhbmNoT3B0aW9uKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFkZEJyYW5jaE9wdGlvbihldmVudC52YWx1ZSk7XG5cbiAgICAgICAgZXZlbnQuaW5wdXQudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgQnJhbmNoT3B0aW9uU2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZGRCcmFuY2hPcHRpb24oZXZlbnQub3B0aW9uLnZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQnJhbmNoZXNDaGFuZ2VkKGJyYW5jaGVzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRQcm9qZWN0SG9zdGluZ0RldGFpbHMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQnVpbGRQYXRoQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gICAgICAgIC8vZG8gc29tZXRoaW5nPz9cbiAgICB9XG5cbiAgICBwdWJsaWMgQ3JlYXRlTmV3U291cmNlQ29udHJvbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5TZXRFZGl0aW5nU291cmNlQ29udHJvbChHdWlkLkNyZWF0ZVJhdygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQ3JlYXRlUmVwb3NpdG9yeSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5DcmVhdGluZ1JlcG9zaXRvcnkgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIENhbmNlbENyZWF0ZVJlcG9zaXRvcnkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuQ3JlYXRpbmdSZXBvc2l0b3J5ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIExvZygpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2Zvcm0gdmFsdWUnLCB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sLnZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgRGV2T3BzQWN0aW9uTG9va3VwQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwID0gZXZlbnQudmFsdWU7XG4gICAgICAgIHRoaXMuY29uZmlndXJlRGV2T3BzQWN0aW9uKCk7XG4gICAgfVxuXG4gICAgcHVibGljIE1haW5CcmFuY2hDaGFuZ2VkKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbWl0QnJhbmNoZXNDaGFuZ2VkKCk7XG4gICAgfVxuXG4gICAgcHVibGljIE9yZ2FuaXphdGlvbkNoYW5nZWQoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBvcmcgPSB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sO1xuXG4gICAgICAgIHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sLnJlc2V0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuVXNlQnJhbmNoZXMpIHtcbiAgICAgICAgICAgIHRoaXMuQnJhbmNoZXNGb3JtQ29udHJvbC5yZXNldCgpO1xuXG4gICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGlzdFJlcG9zaXRvcmllcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBSZWZyZXNoT3JnYW5pemF0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgLy8gdGhpcy5Mb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc29sZS5sb2coJ3JlZnJlc2gnKTtcbiAgICAgICAgdGhpcy5saXN0T3JnYW5pemF0aW9ucygpO1xuXG4gICAgICAgIHRoaXMuT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnJlc2V0KCk7XG5cbiAgICAgICAgdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnJlc2V0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuVXNlQnJhbmNoZXMpIHtcbiAgICAgICAgICAgIHRoaXMuQnJhbmNoZXNGb3JtQ29udHJvbD8ucmVzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBSZW1vdmVCcmFuY2hPcHRpb24ob3B0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLlNlbGVjdGVkQnJhbmNoZXMuaW5kZXhPZihvcHRpb24pO1xuXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW1pdEJyYW5jaGVzQ2hhbmdlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBSZXBvc2l0b3J5Q2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcG8gPSB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbDtcblxuICAgICAgICBpZiAodGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgICAgICAgdGhpcy5CcmFuY2hlc0Zvcm1Db250cm9sLnJlc2V0KCk7XG5cbiAgICAgICAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyA9IFtdO1xuXG4gICAgICAgICAgICB0aGlzLmxpc3RCcmFuY2hlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLlVzZUJyYW5jaGVzKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RCdWlsZFBhdGhzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgU2F2ZVJlcG9zaXRvcnkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgY29uc3Qgb3JnID0gdGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICBjb25zdCByZXBvTmFtZSA9IHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgICAgICAgIC5DcmVhdGVSZXBvc2l0b3J5KG9yZywgcmVwb05hbWUpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQmFzZVJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdFJlcG9zaXRvcmllcyhyZXBvTmFtZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5DcmVhdGluZ1JlcG9zaXRvcnkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyAgVE9ETzogIE5lZWQgdG8gc3VyZmFjZSBhbiBlcnJvciB0byB0aGUgdXNlci4uLlxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBTZXRFZGl0aW5nU291cmNlQ29udHJvbChzY0xvb2t1cDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2xMb29rdXAgPSBzY0xvb2t1cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgU3VibWl0U291cmNlQ29udHJvbCgpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXG4gICAgICAgIC8vICAgICAnc291cmNlIGNvbnRyb2wgc3VibWl0dGVkOiAnLFxuICAgICAgICAvLyAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLnZhbHVlXG4gICAgICAgIC8vICk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwic2F2aW5nIHNvdXJjZTogXCIsIHRoaXMuRW52aXJvbm1lbnRMb29rdXApXG4gICAgICAgIHRoaXMuU2F2ZVNvdXJjZUNvbnRyb2woKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgU2F2ZVNvdXJjZUNvbnRyb2woKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNhdmVFbnZSZXE6IFNhdmVFbnZpcm9ubWVudEFzQ29kZUV2ZW50UmVxdWVzdCA9IHtcbiAgICAgICAgICAgIEVudmlyb25tZW50OiB7XG4gICAgICAgICAgICAgICAgLy8uLi50aGlzLkVudmlyb25tZW50LFxuICAgICAgICAgICAgICAgIFNvdXJjZXM6IHRoaXMuRW52aXJvbm1lbnQuU291cmNlcyB8fCB7fSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBFbnZpcm9ubWVudExvb2t1cDogdGhpcy5FbnZpcm9ubWVudExvb2t1cCxcbiAgICAgICAgICAgIC8vRW50ZXJwcmlzZURhdGFUb2tlbnM6IHt9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBzb3VyY2U6IEVhQ1NvdXJjZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAuLi50aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sLFxuICAgICAgICAgICAgQnJhbmNoZXM6IHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyxcbiAgICAgICAgICAgIE1haW5CcmFuY2g6IHRoaXMuTWFpbkJyYW5jaEZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHNvdXJjZSA9IHtcbiAgICAgICAgICAgIC4uLnNvdXJjZSxcbiAgICAgICAgICAgIFR5cGU6ICdHaXRIdWInLFxuICAgICAgICAgICAgTmFtZTogYEAke3RoaXMuT3JnYW5pemF0aW9uRm9ybUNvbnRyb2wudmFsdWV9LyR7dGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2wudmFsdWV9YCxcbiAgICAgICAgICAgIERldk9wc0FjdGlvblRyaWdnZXJMb29rdXBzOiBbdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXBdLFxuICAgICAgICAgICAgT3JnYW5pemF0aW9uOiB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgUmVwb3NpdG9yeTogdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2NMb29rdXAgPSBgZ2l0aHViOi8vJHtzb3VyY2UuT3JnYW5pemF0aW9ufS8ke3NvdXJjZS5SZXBvc2l0b3J5fWA7XG5cbiAgICAgICAgc2F2ZUVudlJlcS5FbnZpcm9ubWVudC5Tb3VyY2VzW3NjTG9va3VwXSA9IHNvdXJjZTtcblxuICAgICAgICAvLyBjb25zb2xlLmxvZygnc2F2ZSBTQzogJywgc2F2ZUVudlJlcSk7XG5cbiAgICAgICAgbGV0IHJlc3AgPSB0aGlzLmVhY1N2Yy5TYXZlRW52aXJvbm1lbnRBc0NvZGUoc2F2ZUVudlJlcSk7XG5cbiAgICAgICAgcmVzcC50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuU2F2ZVN0YXR1c0V2ZW50LmVtaXQocmVzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gIEhlbHBlcnNcblxuICAgIHByb3RlY3RlZCBhZGRCcmFuY2hPcHRpb24odmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB2YWx1ZSA9ICh2YWx1ZSB8fCAnJykudHJpbSgpO1xuXG4gICAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLlNlbGVjdGVkQnJhbmNoZXMuaW5kZXhPZih2YWx1ZSkgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLkJyYW5jaGVzSW5wdXQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG5cbiAgICAgICAgdGhpcy5lbWl0QnJhbmNoZXNDaGFuZ2VkKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbmZpZ3VyZURldk9wc0FjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sLnNldFZhbHVlKFxuICAgICAgICAgICAgICAgIHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwXG4gICAgICAgICAgICApO1xuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzdHJveUZvcm1Db250cm9scygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woXG4gICAgICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ21haW5CcmFuY2gnXS5qb2luKCcnKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cD8ucmVtb3ZlQ29udHJvbChcbiAgICAgICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnYnJhbmNoZXMnXS5qb2luKCcnKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cD8ucmVtb3ZlQ29udHJvbChcbiAgICAgICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnYnVpbGRQYXRoJ10uam9pbignJylcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSBbXTtcblxuICAgICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXA/LnJlbW92ZUNvbnRyb2woXG4gICAgICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ29yZ2FuaXphdGlvbiddLmpvaW4oJycpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwPy5yZW1vdmVDb250cm9sKFxuICAgICAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdyZXBvc2l0b3J5J10uam9pbignJylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZW1pdEJyYW5jaGVzQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzPy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAoIXRoaXMuTWFpbkJyYW5jaEZvcm1Db250cm9sLnZhbHVlIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzLmluZGV4T2YoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuTWFpbkJyYW5jaEZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgKSA8IDApXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5NYWluQnJhbmNoRm9ybUNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChicmFuY2gpID0+IGJyYW5jaCA9PT0gJ21haW4nIHx8IGJyYW5jaCA9PT0gJ21hc3RlcidcbiAgICAgICAgICAgICAgICApIHx8IHRoaXMuU2VsZWN0ZWRCcmFuY2hlc1swXVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLlNlbGVjdGVkQnJhbmNoZXM/Lmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICB0aGlzLk1haW5CcmFuY2hGb3JtQ29udHJvbC5yZXNldCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5CcmFuY2hlc0Zvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuU2VsZWN0ZWRCcmFuY2hlcy5qb2luKCcsJykpO1xuXG4gICAgICAgIHRoaXMuQnJhbmNoZXNDaGFuZ2VkKHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyB8fCBbXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxpc3RCcmFuY2hlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuVXNlQnJhbmNoZXMpIHtcbiAgICAgICAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgICAgICAgICAgICAuTGlzdEJyYW5jaGVzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxHaXRIdWJCcmFuY2hbXT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5CcmFuY2hPcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2w/LkJyYW5jaGVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2wuQnJhbmNoZXM7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5CcmFuY2hPcHRpb25zPy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQnJhbmNoZXNGb3JtQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkJyYW5jaE9wdGlvbnNbMF0uTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzID0gW3RoaXMuQnJhbmNoT3B0aW9uc1swXS5OYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdEJyYW5jaGVzQ2hhbmdlZCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdEJ1aWxkUGF0aHMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBsaXN0QnVpbGRQYXRocygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuVXNlQnVpbGRQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgICAgICAgICAgICAgLkxpc3RCdWlsZFBhdGhzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxzdHJpbmdbXT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5CdWlsZFBhdGhPcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuQnVpbGRQYXRoT3B0aW9ucz8ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkJ1aWxkUGF0aEZvcm1Db250cm9sLnNldFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQnVpbGRQYXRoT3B0aW9uc1swXVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxpc3RPcmdhbml6YXRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgICAgICAgIC5MaXN0T3JnYW5pemF0aW9ucygpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxHaXRIdWJPcmdhbml6YXRpb25bXT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Pcmdhbml6YXRpb25PcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgJ09yZ2FuaXphdGlvbiBPcHRpb25zOiAnLFxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgdGhpcy5Pcmdhbml6YXRpb25PcHRpb25zXG4gICAgICAgICAgICAgICAgICAgIC8vICk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2w/Lk9yZ2FuaXphdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbC5Pcmdhbml6YXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0UmVwb3NpdG9yaWVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sPy5SZXBvc2l0b3J5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbGlzdFJlcG9zaXRvcmllcyhhY3RpdmVSZXBvOiBzdHJpbmcgPSBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5hcHBzRmxvd1N2Y1xuICAgICAgICAgICAgLkxpc3RSZXBvc2l0b3JpZXModGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbC52YWx1ZSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPEdpdEh1YlJlcG9zaXRvcnlbXT4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLlJlcG9zaXRvcnlPcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIGlmIChhY3RpdmVSZXBvKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2wuc2V0VmFsdWUoYWN0aXZlUmVwbyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdEJyYW5jaGVzKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdEJ1aWxkUGF0aHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLlJlcG9zaXRvcnlPcHRpb25zPy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkNyZWF0aW5nUmVwb3NpdG9yeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRQcm9qZWN0SG9zdGluZ0RldGFpbHMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLlNlbGVjdGVkQnJhbmNoZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuSG9zdGluZ0RldGFpbHMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuTG9hZFByb2plY3RIb3N0aW5nRGV0YWlscygpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8UHJvamVjdEhvc3RpbmdEZXRhaWxzPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkhvc3RpbmdEZXRhaWxzID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWd1cmVEZXZPcHNBY3Rpb24oKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkhvc3RpbmdEZXRhaWxzLkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwRm9ybUNvbnRyb2xzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3lGb3JtQ29udHJvbHMoKTtcblxuICAgICAgICAvLyBjb25zb2xlLmxvZygnU291cmNlIENvbnRyb2w6ICcsIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2wpO1xuXG4gICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2Rldk9wc0FjdGlvbkxvb2t1cCcsXG4gICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2wodGhpcy5EZXZPcHNBY3Rpb25Mb29rdXAgfHwgJycsIFtdKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdvcmdhbml6YXRpb24nXS5qb2luKCcnKSxcbiAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sLk9yZ2FuaXphdGlvbiA/PyAnJyxcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ3JlcG9zaXRvcnknXS5qb2luKCcnKSxcbiAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sLlJlcG9zaXRvcnkgPz8gJycsXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0aGlzLlVzZUJyYW5jaGVzKSB7XG4gICAgICAgICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ2JyYW5jaGVzJ10uam9pbignJyksXG4gICAgICAgICAgICAgICAgbmV3IEZvcm1Db250cm9sKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sPy5CcmFuY2hlcyA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyA9IHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2w/LkJyYW5jaGVzO1xuXG4gICAgICAgICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ21haW5CcmFuY2gnXS5qb2luKCcnKSxcbiAgICAgICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2wuTWFpbkJyYW5jaCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5Vc2VCdWlsZFBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnYnVpbGRQYXRoJ10uam9pbignJyksXG4gICAgICAgICAgICAgICAgbmV3IEZvcm1Db250cm9sKHRoaXMuQnVpbGRQYXRoID8/ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmb3JtXG4gICAgY2xhc3M9XCJmb3JtLWNhcmRcIlxuICAgIFtmb3JtR3JvdXBdPVwiRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cFwiXG4gICAgKG5nU3VibWl0KT1cIlN1Ym1pdFNvdXJjZUNvbnRyb2woKVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkxvYWRpbmdcIj5cbiAgICAgICAgPGxjdS1sb2FkZXIgW2xvYWRpbmddPVwiTG9hZGluZ1wiPjwvbGN1LWxvYWRlcj5cblxuICAgICAgICA8IS0tIDxza2VsZXRvbi1ibG9jayBcbiAgICAgICAgICBjbGFzcz1cInMtYmxvY2tcIlxuICAgICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiBcbiAgICAgICAgPjwvc2tlbGV0b24tYmxvY2s+XG5cbiAgICAgICAgPHNrZWxldG9uLWJsb2NrIFxuICAgICAgICAgIGNsYXNzPVwicy1ibG9ja1wiXG4gICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiIFxuICAgICAgICA+PC9za2VsZXRvbi1ibG9jaz5cblxuICAgICAgICA8c2tlbGV0b24tYmxvY2sgXG4gICAgICAgICAgY2xhc3M9XCJzLWJsb2NrXCJcbiAgICAgICAgICBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgIFxuICAgICAgICA+PC9za2VsZXRvbi1ibG9jaz5cblxuICAgICAgICA8c2tlbGV0b24tYmxvY2sgXG4gICAgICAgICAgY2xhc3M9XCJzLWJsb2NrXCJcbiAgICAgICAgICBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgIFxuICAgICAgICA+PC9za2VsZXRvbi1ibG9jaz4gLS0+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIUxvYWRpbmdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGV2T3BzQWN0aW9uTG9va3VwXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJEZXZPcHMgQWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIkhvc3RpbmdEZXRhaWxzPy5Mb2FkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJEZXZPcHNBY3Rpb25Mb29rdXBDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJcIj4tLSBDcmVhdGUgTmV3IC0tPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkZXZPcHNBY3Rpb25Mb29rdXAgb2YgRGV2T3BzQWN0aW9uTG9va3Vwc1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRldk9wc0FjdGlvbkxvb2t1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2T3BzQWN0aW9uc1tkZXZPcHNBY3Rpb25Mb29rdXBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGV2T3BzQWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJkZXZPcHNBY3Rpb24uTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGV2T3BzQWN0aW9uLk5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCIgKm5nSWY9XCJPcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsaWQgfHwgIUxvYWRpbmdcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGggd2l0aC1oaW50IG1hcmdpbi1ib3R0b21cIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiT3JnYW5pemF0aW9uT3B0aW9ucz8ubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwib3JnLWljb25cIiBtYXRQcmVmaXg+Y29ycG9yYXRlX2ZhcmU8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJTb3VyY2VDb250cm9sUm9vdCArICdvcmdhbml6YXRpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJPcmdhbml6YXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIk9yZ2FuaXphdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJMb2FkaW5nIHx8IEhvc3RpbmdEZXRhaWxzPy5Mb2FkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9yZ09wdCBvZiBPcmdhbml6YXRpb25PcHRpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwib3JnT3B0Lk5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcmdPcHQuTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJSZWZyZXNoT3JnYW5pemF0aW9ucygpXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIlJlZnJlc2ggT3JnYW5pemF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi8ub2F1dGgvR2l0SHViT0F1dGg/b2F1dGgtZm9yY2UtZWRpdD10cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiUmUtYXV0aG9yaXplIE9yZ2FuaXphdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXVuY2hcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2E+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgICAgIElmIHlvdSBkb24ndCBoYXZlIGFuIG9yZ2FuaXphdGlvbiBvciB3b3VsZCBsaWtlIHRvIGNyZWF0ZSBhXG4gICAgICAgICAgICAgICAgICAgIG5ldyBvbmUsXG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL2FjY291bnQvb3JnYW5pemF0aW9ucy9uZXdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcmltYXJ5LWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgaGVyZVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9tYXQtaGludD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY2FyZFwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIFJlcG9zaXRvcnlGb3JtQ29udHJvbD8udmFsaWQgfHxcbiAgICAgICAgICAgICAgICAoT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkICYmICFMb2FkaW5nKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJvcmctaWNvblwiIG1hdFByZWZpeD5kZXNjcmlwdGlvbjwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIlNvdXJjZUNvbnRyb2xSb290ICsgJ3JlcG9zaXRvcnknXCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnUmVwb3NpdG9yeSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdSZXBvc2l0b3J5IChzZWxlY3Qgb3JnYW5pemF0aW9uIGZpcnN0KSdcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgIU9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGluZyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgSG9zdGluZ0RldGFpbHM/LkxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJSZXBvc2l0b3J5Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhQ3JlYXRpbmdSZXBvc2l0b3J5XCJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJlcG9PcHQgb2YgUmVwb3NpdG9yeU9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJyZXBvT3B0Lk5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyByZXBvT3B0Lk5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuXG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiUmVwb3NpdG9yeSAoY3JlYXRlcyBuZXcgaWYgZG9lcyBub3QgZXhpc3QpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJTb3VyY2VDb250cm9sUm9vdCArICdyZXBvc2l0b3J5J1wiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiQ3JlYXRpbmdSZXBvc2l0b3J5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Z4SGlkZV09XCJMb2FkaW5nIHx8IEhvc3RpbmdEZXRhaWxzPy5Mb2FkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiQ3JlYXRlUmVwb3NpdG9yeSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Z4SGlkZV09XCJMb2FkaW5nIHx8IEhvc3RpbmdEZXRhaWxzPy5Mb2FkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICFDcmVhdGluZ1JlcG9zaXRvcnkgJiYgT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBhZGRfY2lyY2xlXG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlNhdmVSZXBvc2l0b3J5KClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIkNyZWF0aW5nUmVwb3NpdG9yeSAmJiBSZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnZhbGlkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXggY29sb3I9XCJwcmltYXJ5XCI+IHNhdmUgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIkNhbmNlbENyZWF0ZVJlcG9zaXRvcnkoKVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiQ3JlYXRpbmdSZXBvc2l0b3J5XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXg+IGNhbmNlbCA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjYXJkXCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgKEJyYW5jaGVzRm9ybUNvbnRyb2w/LnZhbGlkIHx8XG4gICAgICAgICAgICAgICAgICAgIChPcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsaWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlcG9zaXRvcnlGb3JtQ29udHJvbD8udmFsaWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFMb2FkaW5nKSkgJiZcbiAgICAgICAgICAgICAgICAhQ3JlYXRpbmdSZXBvc2l0b3J5ICYmXG4gICAgICAgICAgICAgICAgVXNlQnJhbmNoZXNcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwib3JnLWljb25cIiBtYXRQcmVmaXg+YWNjb3VudF90cmVlPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+U2VsZWN0ZWQgQnJhbmNoZXM8L21hdC1sYWJlbD5cblxuICAgICAgICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlXG4gICAgICAgICAgICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJCcmFuY2hPcHRpb25TZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgI2JyYW5jaE9wdGlvbnM9XCJtYXRBdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnJhbmNoT3B0IG9mIEJyYW5jaE9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJicmFuY2hPcHQuTmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGJyYW5jaE9wdC5OYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cblxuICAgICAgICAgICAgICAgIDxtYXQtY2hpcC1saXN0ICNzZWxlY3RlZEJyYW5jaGVzPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNoaXBcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJSZW1vdmVCcmFuY2hPcHRpb24oc2VsQnJhbmNoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc2VsQnJhbmNoIG9mIFNlbGVjdGVkQnJhbmNoZXNcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBzZWxCcmFuY2ggfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlPmNhbmNlbDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNoaXA+XG5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJOZXcgQnJhbmNoLi4uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiU291cmNlQ29udHJvbFJvb3QgKyAnYnJhbmNoZXMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICNicmFuY2hlc1xuICAgICAgICAgICAgICAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJicmFuY2hPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwic2VsZWN0ZWRCcmFuY2hlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwiU2VwYXJhdG9yS2V5c0NvZGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRBZGRPbkJsdXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiQWRkQnJhbmNoT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIkxvYWRpbmcgfHwgSG9zdGluZ0RldGFpbHM/LkxvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L21hdC1jaGlwLWxpc3Q+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGRcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoIHdpdGgtaGludFwiXG4gICAgICAgICAgICAgICAgW2Z4U2hvd109XCJTZWxlY3RlZEJyYW5jaGVzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJvcmctaWNvblwiIG1hdFByZWZpeD5hY2NvdW50X3RyZWU8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJTb3VyY2VDb250cm9sUm9vdCArICdtYWluQnJhbmNoJ1wiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTWFpbiBCcmFuY2hcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiTG9hZGluZyB8fCBIb3N0aW5nRGV0YWlscz8uTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiTWFpbkJyYW5jaENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBicmFuY2ggb2YgU2VsZWN0ZWRCcmFuY2hlc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImJyYW5jaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGJyYW5jaCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJSZWZyZXNoT3JnYW5pemF0aW9ucygpXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvLm9hdXRoL0dpdEh1Yk9BdXRoP29hdXRoLWZvcmNlLWVkaXQ9dHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIlJlLWF1dGhvcml6ZSBPcmdhbml6YXRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgbGF1bmNoXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9hPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1oaW50PlxuICAgICAgICAgICAgICAgICAgICBJZiB5b3UgZG9uJ3QgaGF2ZSBhbiBvcmdhbml6YXRpb24gb3Igd291bGQgbGlrZSB0byBjcmVhdGUgYVxuICAgICAgICAgICAgICAgICAgICBuZXcgb25lLFxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vZ2l0aHViLmNvbS9hY2NvdW50L29yZ2FuaXphdGlvbnMvbmV3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByaW1hcnktbGlua1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0IGhlcmVcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNhcmRcIlxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAoQnVpbGRQYXRoRm9ybUNvbnRyb2w/LnZhbGlkIHx8XG4gICAgICAgICAgICAgICAgICAgIChPcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsaWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlcG9zaXRvcnlGb3JtQ29udHJvbD8udmFsaWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFMb2FkaW5nKSkgJiZcbiAgICAgICAgICAgICAgICAhQ3JlYXRpbmdSZXBvc2l0b3J5ICYmXG4gICAgICAgICAgICAgICAgVXNlQnVpbGRQYXRoXG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aCB3aXRoLWhpbnRcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJvcmctaWNvblwiIG1hdFByZWZpeD5idWlsZDwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIlNvdXJjZUNvbnRyb2xSb290ICsgJ2J1aWxkUGF0aCdcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkJ1aWxkIFBhdGhcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiTG9hZGluZyB8fCBCdWlsZFBhdGhEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiQnVpbGRQYXRoQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ1aWxkUGF0aCBvZiBCdWlsZFBhdGhPcHRpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiYnVpbGRQYXRoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYnVpbGRQYXRoIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cblxuICAgICAgICAgICAgICAgIDxtYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgVGhlIGJ1aWxkIHBhdGggaWRlbnRpZmllcyB3aGljaCBidWlsZCBhY3Rpb24gdG8gdXNlIGZvciB5b3VyXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24uXG4gICAgICAgICAgICAgICAgPC9tYXQtaGludD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJMb2FkaW5nXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ByZWFkXCI+XG4gICAgICAgICAgICAgICAgPGxjdS1sb2FkZXIgc3R5bGU9XCJtYXJnaW46IGF1dG9cIiBbbG9hZGluZ109XCJ0cnVlXCI+PC9sY3UtbG9hZGVyPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmdpbi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoNFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGluZyBvcmdhbml6YXRpb25zXG4gICAgICAgICAgICAgICAgICAgIDwvaDQ+XG5cbiAgICAgICAgICAgICAgICAgICAgPGg0XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC10aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFSZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnZhbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBMb2FkaW5nIHJlcG9zaXRvcmllc1xuICAgICAgICAgICAgICAgICAgICA8L2g0PlxuXG4gICAgICAgICAgICAgICAgICAgIDxoNFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnZhbGlkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIUJyYW5jaGVzRm9ybUNvbnRyb2w/LnZhbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBMb2FkaW5nIGJyYW5jaGVzXG4gICAgICAgICAgICAgICAgICAgIDwvaDQ+XG5cbiAgICAgICAgICAgICAgICAgICAgPGg0XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC10aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChSZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnZhbGlkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyYW5jaGVzRm9ybUNvbnRyb2w/LnZhbGlkKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFCdWlsZFBhdGhGb3JtQ29udHJvbD8udmFsaWRcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIExvYWRpbmcgYnVpbGQgcGF0aHNcbiAgICAgICAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZm9ybT5cbiJdfQ==
411
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0vZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0vZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0gsV0FBVyxFQUVYLFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBSXhCLE9BQU8sRUFBcUMsSUFBSSxFQUFVLE1BQU0sYUFBYSxDQUFDO0FBWTlFLE9BQU8sRUFJSCxxQkFBcUIsR0FDeEIsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPN0MsTUFBTSxPQUFPLGdDQUFnQztJQWlIekMsZ0JBQWdCO0lBQ2hCLFlBQ2MsV0FBb0MsRUFDcEMsTUFBa0IsRUFDbEIsV0FBd0I7UUFGeEIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFOdEIsdUJBQWtCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFVLENBQUM7UUFRekQsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxZQUFZ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Qy9DLElBQUksV0FBVyxDQUNYLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLElBQUksRUFBRSxFQUMxQyxVQUFVLENBQUMsUUFBUSxDQUN0QixDQUNKLENBQUM7U0FDTDtRQUVELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsNEJBQTRCLENBQUMsVUFBVSxDQUN4QyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQzlDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FDN0QsQ0FBQztTQUNMO0lBQ0wsQ0FBQzs7NkhBaG9CUSxnQ0FBZ0M7aUhBQWhDLGdDQUFnQyxnZkM5QzdDLDhrY0E2WEE7MkZEL1VhLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDSSxnQ0FBZ0M7aUtBUW5DLDBCQUEwQjtzQkFEaEMsS0FBSzt1QkFBQywrQkFBK0I7Z0JBSS9CLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsYUFBYTtnQkFJYixpQkFBaUI7c0JBRHZCLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUlwQixPQUFPO3NCQURiLEtBQUs7dUJBQUMsU0FBUztnQkFJVCxlQUFlO3NCQURyQixNQUFNO3VCQUFDLG1CQUFtQjtnQkFJcEIsYUFBYTtzQkFEbkIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIEZvcm1CdWlsZGVyLFxuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Hcm91cCxcbiAgICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdENoaXBJbnB1dEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IEJhc2VNb2RlbGVkUmVzcG9uc2UsIEJhc2VSZXNwb25zZSwgR3VpZCwgU3RhdHVzIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBFYUNBcnRpZmFjdCxcbiAgICBFYUNEZXZPcHNBY3Rpb24sXG4gICAgRWFDRW52aXJvbm1lbnRBc0NvZGUsXG4gICAgRWFDU291cmNlQ29udHJvbCxcbn0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwbGljYXRpb25zLWZsb3cuc2VydmljZSc7XG5pbXBvcnQge1xuICAgIEVhQ1NlcnZpY2UsXG4gICAgU2F2ZUVudmlyb25tZW50QXNDb2RlRXZlbnRSZXF1ZXN0LFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQge1xuICAgIEdpdEh1YkJyYW5jaCxcbiAgICBHaXRIdWJPcmdhbml6YXRpb24sXG4gICAgR2l0SHViUmVwb3NpdG9yeSxcbiAgICBQcm9qZWN0SG9zdGluZ0RldGFpbHMsXG59IGZyb20gJy4uLy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3UtZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZXZvcHMtc291cmNlLWNvbnRyb2wtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRGV2b3BzU291cmNlQ29udHJvbEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gICAgLy8gIEZpZWxkc1xuXG4gICAgQElucHV0KCdlZGl0aW5nLXNvdXJjZS1jb250cm9sLWxvb2t1cCcpXG4gICAgcHVibGljIEVkaXRpbmdTb3VyY2VDb250cm9sTG9va3VwOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoJ2Vudmlyb25tZW50JylcbiAgICBwdWJsaWMgRW52aXJvbm1lbnQ6IEVhQ0Vudmlyb25tZW50QXNDb2RlO1xuXG4gICAgQElucHV0KCdlbnZpcm9ubWVudC1sb29rdXAnKVxuICAgIHB1YmxpYyBFbnZpcm9ubWVudExvb2t1cDogc3RyaW5nO1xuXG4gICAgQElucHV0KCdsb2FkaW5nJylcbiAgICBwdWJsaWMgTG9hZGluZzogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoJ3NhdmUtc3RhdHVzLWV2ZW50JylcbiAgICBwdWJsaWMgU2F2ZVN0YXR1c0V2ZW50OiBFdmVudEVtaXR0ZXI8U3RhdHVzPjtcblxuICAgIEBWaWV3Q2hpbGQoJ2JyYW5jaGVzJylcbiAgICBwdWJsaWMgQnJhbmNoZXNJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIC8vT3B0aW9uYWwgaW5wdXQgbm90IGJlaW5nIHVzZWQgc2V0dGluZyB0b1xuICAgIC8vIEBJbnB1dCgnYnVpbGQtcGF0aCcpXG4gICAgcHVibGljIEJ1aWxkUGF0aDogc3RyaW5nO1xuXG4gICAgLy9PcHRpb25hbCBub3QgYmVpbmcgdXNlZFxuICAgIC8vIEBJbnB1dCgnYnVpbGQtcGF0aC1kaXNhYmxlZCcpXG4gICAgcHVibGljIEJ1aWxkUGF0aERpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLy8gdGhpcyBpbnB1dCBpcyBub3QgYmVpbmcgdXNlZCBhbnl3aGVyZVxuICAgIC8vIEBJbnB1dCgnc291cmNlLWNvbnRyb2wtcm9vdCcpXG4gICAgcHVibGljIFNvdXJjZUNvbnRyb2xSb290OiBzdHJpbmc7XG5cbiAgICAvL25vdCBiZWluZyB1c2VkIHNldCB0byB0cnVlIGJ5IGRlZmF1bHRcbiAgICAvLyBASW5wdXQoJ3VzZS1icmFuY2hlcycpXG4gICAgcHVibGljIFVzZUJyYW5jaGVzOiBib29sZWFuO1xuXG4gICAgLy9ub3QgYmVpbmcgdXNlZCBzZXQgdG8gZmFsc2UgYnkgZGVmYXVsdFxuICAgIC8vIEBJbnB1dCgndXNlLWJ1aWxkLXBhdGgnKVxuICAgIHB1YmxpYyBVc2VCdWlsZFBhdGg6IGJvb2xlYW47XG5cbiAgICAvLyAgUHJvcGVydGllc1xuXG4gICAgcHVibGljIGdldCBCcmFuY2hlc0Zvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXA/LmdldChcbiAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbFJvb3QgKyAnYnJhbmNoZXMnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBCdWlsZFBhdGhGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwPy5nZXQoXG4gICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xSb290ICsgJ2J1aWxkUGF0aCdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IERldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXA/LmdldCgnZGV2T3BzQWN0aW9uTG9va3VwJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBNYWluQnJhbmNoRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cD8uZ2V0KFxuICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sUm9vdCArICdtYWluQnJhbmNoJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgT3JnYW5pemF0aW9uRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cD8uZ2V0KFxuICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sUm9vdCArICdvcmdhbml6YXRpb24nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBSZXBvc2l0b3J5Rm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cD8uZ2V0KFxuICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sUm9vdCArICdyZXBvc2l0b3J5J1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBBcnRpZmFjdDogRWFDQXJ0aWZhY3Q7XG5cbiAgICBwdWJsaWMgQXJ0aWZhY3RMb29rdXA6IHN0cmluZztcblxuICAgIHB1YmxpYyBBcnRpZmFjdExvb2t1cHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBwdWJsaWMgQnJhbmNoT3B0aW9uczogR2l0SHViQnJhbmNoW107XG5cbiAgICBwdWJsaWMgQnVpbGRQYXRoT3B0aW9uczogc3RyaW5nW107XG5cbiAgICBwdWJsaWMgQ3JlYXRpbmdSZXBvc2l0b3J5OiBib29sZWFuO1xuXG4gICAgcHVibGljIERldk9wc0FjdGlvbjogRWFDRGV2T3BzQWN0aW9uO1xuXG4gICAgcHVibGljIERldk9wc0FjdGlvbnM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDRGV2T3BzQWN0aW9uIH07XG5cbiAgICBwdWJsaWMgRGV2T3BzQWN0aW9uTG9va3VwOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgRGV2T3BzQWN0aW9uTG9va3VwczogQXJyYXk8c3RyaW5nPjtcblxuICAgIHB1YmxpYyBEZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICBwdWJsaWMgRWRpdGluZ1NvdXJjZUNvbnRyb2w6IEVhQ1NvdXJjZUNvbnRyb2w7XG5cbiAgICBwdWJsaWMgSG9zdGluZ0RldGFpbHM6IFByb2plY3RIb3N0aW5nRGV0YWlscztcblxuICAgIHB1YmxpYyBPcmdhbml6YXRpb25PcHRpb25zOiBHaXRIdWJPcmdhbml6YXRpb25bXTtcblxuICAgIHB1YmxpYyBSZXBvc2l0b3J5T3B0aW9uczogR2l0SHViUmVwb3NpdG9yeVtdO1xuXG4gICAgcHVibGljIFNlbGVjdGVkQnJhbmNoZXM6IHN0cmluZ1tdO1xuXG4gICAgcHVibGljIFNrZWxldG9uRWZmZWN0OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgU2VwYXJhdG9yS2V5c0NvZGVzID0gW0VOVEVSLCBDT01NQV0gYXMgY29uc3Q7XG5cbiAgICAvLyAgQ29uc3RydWN0b3JzXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBhcHBzRmxvd1N2YzogQXBwbGljYXRpb25zRmxvd1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBlYWNTdmM6IEVhQ1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcbiAgICApIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJjdG9yXCIpXG4gICAgICAgIHRoaXMuU2F2ZVN0YXR1c0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgICAgIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2wgPSB7fTtcblxuICAgICAgICB0aGlzLkJ1aWxkUGF0aCA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscyA9IG5ldyBQcm9qZWN0SG9zdGluZ0RldGFpbHMoKTtcblxuICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSBbXTtcblxuICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xSb290ID0gJyc7XG5cbiAgICAgICAgdGhpcy5Ta2VsZXRvbkVmZmVjdCA9ICd3YXZlJztcblxuICAgICAgICB0aGlzLlVzZUJyYW5jaGVzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLlVzZUJ1aWxkUGF0aCA9IGZhbHNlO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImVuZCBjdG9yXCIpXG4gICAgfVxuXG4gICAgLy8gIExpZmUgQ3ljbGVcbiAgICAvLyBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95Rm9ybUNvbnRyb2xzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIm9uIGluaXRcIilcbiAgICAgICAgaWYgKHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2xMb29rdXAgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuQ3JlYXRlTmV3U291cmNlQ29udHJvbCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2wgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7fSk7XG5cbiAgICAgICAgICAgIHRoaXMuc2V0dXBGb3JtQ29udHJvbHMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuUmVmcmVzaE9yZ2FuaXphdGlvbnMoKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJlbmQgaW5pdFwiKVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJvbiBjaGFuZ2VzXCIpXG4gICAgICAgIGlmICh0aGlzLkVudmlyb25tZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5FbnZpcm9ubWVudD8uQXJ0aWZhY3RzICYmIHRoaXMuQXJ0aWZhY3RMb29rdXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLkFydGlmYWN0ID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5FbnZpcm9ubWVudD8uQXJ0aWZhY3RzW3RoaXMuQXJ0aWZhY3RMb29rdXBdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5FbnZpcm9ubWVudD8uRGV2T3BzQWN0aW9ucykge1xuICAgICAgICAgICAgICAgIHRoaXMuRGV2T3BzQWN0aW9ucyA9IHRoaXMuRW52aXJvbm1lbnQuRGV2T3BzQWN0aW9ucztcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLkRldk9wc0FjdGlvbkxvb2t1cCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkRldk9wc0FjdGlvbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkVudmlyb25tZW50Py5EZXZPcHNBY3Rpb25zW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwXG4gICAgICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuRGV2T3BzQWN0aW9uPy5BcnRpZmFjdExvb2t1cHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLkFydGlmYWN0TG9va3VwcyA9IHRoaXMuRGV2T3BzQWN0aW9uPy5BcnRpZmFjdExvb2t1cHM7XG5cbiAgICAgICAgICAgICAgICB0aGlzLkFydGlmYWN0TG9va3VwID0gdGhpcy5EZXZPcHNBY3Rpb24/LkFydGlmYWN0TG9va3Vwc1swXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5EZXZPcHNBY3Rpb25zKSB7XG4gICAgICAgICAgICB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cHMgPSBPYmplY3Qua2V5cyh0aGlzLkRldk9wc0FjdGlvbnMgfHwge30pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2Rldm9wc0FjdGlvbiBsb29rdXBzOiAnLCB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cHMpO1xuXG4gICAgICAgIGlmICh0aGlzLkVudmlyb25tZW50Py5Tb3VyY2VzICYmIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2xMb29rdXApIHtcbiAgICAgICAgICAgIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2wgPVxuICAgICAgICAgICAgICAgIHRoaXMuRW52aXJvbm1lbnQ/LlNvdXJjZXNbdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbExvb2t1cF07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISF0aGlzLkRldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sPy52YWx1ZSkge1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXG4gICAgICAgICAgICAvLyAgICAgJ0Rldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sOiAnLFxuICAgICAgICAgICAgLy8gICAgIHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwRm9ybUNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICAvLyApO1xuICAgICAgICAgICAgdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXAgPSB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sPy52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghIXRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2w/LkRldk9wc0FjdGlvblRyaWdnZXJMb29rdXBzKSB7XG4gICAgICAgICAgICB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cCA9XG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbD8uRGV2T3BzQWN0aW9uVHJpZ2dlckxvb2t1cHNbMF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2Rldm9wcyBhY3Rpb24gbG9va3VwID0gJywgdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXApO1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnZm9ybSB2YWx1ZScsIHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwRm9ybUNvbnRyb2wudmFsdWUpO1xuICAgIH1cblxuICAgIC8vICBBUEkgTWV0aG9kc1xuICAgIHB1YmxpYyBBZGRCcmFuY2hPcHRpb24oZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWRkQnJhbmNoT3B0aW9uKGV2ZW50LnZhbHVlKTtcblxuICAgICAgICBldmVudC5pbnB1dC52YWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBCcmFuY2hPcHRpb25TZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFkZEJyYW5jaE9wdGlvbihldmVudC5vcHRpb24udmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBCcmFuY2hlc0NoYW5nZWQoYnJhbmNoZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZFByb2plY3RIb3N0aW5nRGV0YWlscygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBCdWlsZFBhdGhDaGFuZ2VkKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgLy9kbyBzb21ldGhpbmc/P1xuICAgIH1cblxuICAgIHB1YmxpYyBDcmVhdGVOZXdTb3VyY2VDb250cm9sKCk6IHZvaWQge1xuICAgICAgICB0aGlzLlNldEVkaXRpbmdTb3VyY2VDb250cm9sKEd1aWQuQ3JlYXRlUmF3KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBDcmVhdGVSZXBvc2l0b3J5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLkNyZWF0aW5nUmVwb3NpdG9yeSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2wucmVzZXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQ2FuY2VsQ3JlYXRlUmVwb3NpdG9yeSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5DcmVhdGluZ1JlcG9zaXRvcnkgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgTG9nKCkge1xuICAgICAgICBjb25zb2xlLmxvZygnZm9ybSB2YWx1ZScsIHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwRm9ybUNvbnRyb2wudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBEZXZPcHNBY3Rpb25Mb29rdXBDaGFuZ2VkKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXAgPSBldmVudC52YWx1ZTtcbiAgICAgICAgdGhpcy5jb25maWd1cmVEZXZPcHNBY3Rpb24oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgTWFpbkJyYW5jaENoYW5nZWQoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmVtaXRCcmFuY2hlc0NoYW5nZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgT3JnYW5pemF0aW9uQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9yZyA9IHRoaXMuT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w7XG5cbiAgICAgICAgdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2wucmVzZXQoKTtcblxuICAgICAgICBpZiAodGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgICAgICAgdGhpcy5CcmFuY2hlc0Zvcm1Db250cm9sLnJlc2V0KCk7XG5cbiAgICAgICAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5saXN0UmVwb3NpdG9yaWVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIFJlZnJlc2hPcmdhbml6YXRpb25zKCk6IHZvaWQge1xuICAgICAgICAvLyB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAvLyBjb25zb2xlLmxvZygncmVmcmVzaCcpO1xuICAgICAgICB0aGlzLmxpc3RPcmdhbml6YXRpb25zKCk7XG5cbiAgICAgICAgdGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbD8ucmVzZXQoKTtcblxuICAgICAgICB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbD8ucmVzZXQoKTtcblxuICAgICAgICBpZiAodGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgICAgICAgdGhpcy5CcmFuY2hlc0Zvcm1Db250cm9sPy5yZXNldCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIFJlbW92ZUJyYW5jaE9wdGlvbihvcHRpb246IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuU2VsZWN0ZWRCcmFuY2hlcy5pbmRleE9mKG9wdGlvbik7XG5cbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lbWl0QnJhbmNoZXNDaGFuZ2VkKCk7XG4gICAgfVxuXG4gICAgcHVibGljIFJlcG9zaXRvcnlDaGFuZ2VkKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVwbyA9IHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sO1xuXG4gICAgICAgIGlmICh0aGlzLlVzZUJyYW5jaGVzKSB7XG4gICAgICAgICAgICB0aGlzLkJyYW5jaGVzRm9ybUNvbnRyb2wucmVzZXQoKTtcblxuICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzID0gW107XG5cbiAgICAgICAgICAgIHRoaXMubGlzdEJyYW5jaGVzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuVXNlQnJhbmNoZXMpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdEJ1aWxkUGF0aHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBTYXZlUmVwb3NpdG9yeSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBvcmcgPSB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHJlcG9OYW1lID0gdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgdGhpcy5hcHBzRmxvd1N2Y1xuICAgICAgICAgICAgLkNyZWF0ZVJlcG9zaXRvcnkob3JnLCByZXBvTmFtZSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCYXNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0UmVwb3NpdG9yaWVzKHJlcG9OYW1lKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLkNyZWF0aW5nUmVwb3NpdG9yeSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vICBUT0RPOiAgTmVlZCB0byBzdXJmYWNlIGFuIGVycm9yIHRvIHRoZSB1c2VyLi4uXG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIFNldEVkaXRpbmdTb3VyY2VDb250cm9sKHNjTG9va3VwOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbExvb2t1cCA9IHNjTG9va3VwO1xuICAgIH1cblxuICAgIHB1YmxpYyBTdWJtaXRTb3VyY2VDb250cm9sKCkge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcbiAgICAgICAgLy8gICAgICdzb3VyY2UgY29udHJvbCBzdWJtaXR0ZWQ6ICcsXG4gICAgICAgIC8vICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAudmFsdWVcbiAgICAgICAgLy8gKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJzYXZpbmcgc291cmNlOiBcIiwgdGhpcy5FbnZpcm9ubWVudExvb2t1cClcbiAgICAgICAgdGhpcy5TYXZlU291cmNlQ29udHJvbCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBTYXZlU291cmNlQ29udHJvbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2F2ZUVudlJlcTogU2F2ZUVudmlyb25tZW50QXNDb2RlRXZlbnRSZXF1ZXN0ID0ge1xuICAgICAgICAgICAgRW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICAgICAgICAvLy4uLnRoaXMuRW52aXJvbm1lbnQsXG4gICAgICAgICAgICAgICAgU291cmNlczogdGhpcy5FbnZpcm9ubWVudC5Tb3VyY2VzIHx8IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEVudmlyb25tZW50TG9va3VwOiB0aGlzLkVudmlyb25tZW50TG9va3VwLFxuICAgICAgICAgICAgLy9FbnRlcnByaXNlRGF0YVRva2Vuczoge30sXG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IHNvdXJjZTogRWFDU291cmNlQ29udHJvbCA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2wsXG4gICAgICAgICAgICBCcmFuY2hlczogdGhpcy5TZWxlY3RlZEJyYW5jaGVzLFxuICAgICAgICAgICAgTWFpbkJyYW5jaDogdGhpcy5NYWluQnJhbmNoRm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgc291cmNlID0ge1xuICAgICAgICAgICAgLi4uc291cmNlLFxuICAgICAgICAgICAgVHlwZTogJ0dpdEh1YicsXG4gICAgICAgICAgICBOYW1lOiBgQCR7dGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbC52YWx1ZX0vJHt0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC52YWx1ZX1gLFxuICAgICAgICAgICAgRGV2T3BzQWN0aW9uVHJpZ2dlckxvb2t1cHM6IFt0aGlzLkRldk9wc0FjdGlvbkxvb2t1cF0sXG4gICAgICAgICAgICBPcmdhbml6YXRpb246IHRoaXMuT3JnYW5pemF0aW9uRm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICBSZXBvc2l0b3J5OiB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzY0xvb2t1cCA9IGBnaXRodWI6Ly8ke3NvdXJjZS5Pcmdhbml6YXRpb259LyR7c291cmNlLlJlcG9zaXRvcnl9YDtcblxuICAgICAgICBzYXZlRW52UmVxLkVudmlyb25tZW50LlNvdXJjZXNbc2NMb29rdXBdID0gc291cmNlO1xuXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdzYXZlIFNDOiAnLCBzYXZlRW52UmVxKTtcblxuICAgICAgICBsZXQgcmVzcCA9IHRoaXMuZWFjU3ZjLlNhdmVFbnZpcm9ubWVudEFzQ29kZShzYXZlRW52UmVxKTtcblxuICAgICAgICByZXNwLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5TYXZlU3RhdHVzRXZlbnQuZW1pdChyZXMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAgSGVscGVyc1xuXG4gICAgcHJvdGVjdGVkIGFkZEJyYW5jaE9wdGlvbih2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHZhbHVlID0gKHZhbHVlIHx8ICcnKS50cmltKCk7XG5cbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcy5pbmRleE9mKHZhbHVlKSA8IDApIHtcbiAgICAgICAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcy5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuQnJhbmNoZXNJbnB1dC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcblxuICAgICAgICB0aGlzLmVtaXRCcmFuY2hlc0NoYW5nZWQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uZmlndXJlRGV2T3BzQWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwRm9ybUNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICAgICAgdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBkZXN0cm95Rm9ybUNvbnRyb2xzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAucmVtb3ZlQ29udHJvbChcbiAgICAgICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnbWFpbkJyYW5jaCddLmpvaW4oJycpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwPy5yZW1vdmVDb250cm9sKFxuICAgICAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdicmFuY2hlcyddLmpvaW4oJycpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwPy5yZW1vdmVDb250cm9sKFxuICAgICAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdidWlsZFBhdGgnXS5qb2luKCcnKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyA9IFtdO1xuXG4gICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cD8ucmVtb3ZlQ29udHJvbChcbiAgICAgICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnb3JnYW5pemF0aW9uJ10uam9pbignJylcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXA/LnJlbW92ZUNvbnRyb2woXG4gICAgICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ3JlcG9zaXRvcnknXS5qb2luKCcnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBlbWl0QnJhbmNoZXNDaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXM/Lmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICghdGhpcy5NYWluQnJhbmNoRm9ybUNvbnRyb2wudmFsdWUgfHxcbiAgICAgICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMuaW5kZXhPZihcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5NYWluQnJhbmNoRm9ybUNvbnRyb2wudmFsdWVcbiAgICAgICAgICAgICAgICApIDwgMClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLk1haW5CcmFuY2hGb3JtQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgKGJyYW5jaCkgPT4gYnJhbmNoID09PSAnbWFpbicgfHwgYnJhbmNoID09PSAnbWFzdGVyJ1xuICAgICAgICAgICAgICAgICkgfHwgdGhpcy5TZWxlY3RlZEJyYW5jaGVzWzBdXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuU2VsZWN0ZWRCcmFuY2hlcz8ubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgICAgIHRoaXMuTWFpbkJyYW5jaEZvcm1Db250cm9sLnJlc2V0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLkJyYW5jaGVzRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5TZWxlY3RlZEJyYW5jaGVzLmpvaW4oJywnKSk7XG5cbiAgICAgICAgdGhpcy5CcmFuY2hlc0NoYW5nZWQodGhpcy5TZWxlY3RlZEJyYW5jaGVzIHx8IFtdKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbGlzdEJyYW5jaGVzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5hcHBzRmxvd1N2Y1xuICAgICAgICAgICAgICAgIC5MaXN0QnJhbmNoZXMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuT3JnYW5pemF0aW9uRm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPEdpdEh1YkJyYW5jaFtdPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkJyYW5jaE9wdGlvbnMgPSByZXNwb25zZS5Nb2RlbDtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5FZGl0aW5nU291cmNlQ29udHJvbD8uQnJhbmNoZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbC5CcmFuY2hlcztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLkJyYW5jaE9wdGlvbnM/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5CcmFuY2hlc0Zvcm1Db250cm9sLnNldFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQnJhbmNoT3B0aW9uc1swXS5OYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSBbdGhpcy5CcmFuY2hPcHRpb25zWzBdLk5hbWVdO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0QnJhbmNoZXNDaGFuZ2VkKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0QnVpbGRQYXRocygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxpc3RCdWlsZFBhdGhzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5Vc2VCdWlsZFBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgICAgICAgICAgICAuTGlzdEJ1aWxkUGF0aHMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuT3JnYW5pemF0aW9uRm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPHN0cmluZ1tdPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkJ1aWxkUGF0aE9wdGlvbnMgPSByZXNwb25zZS5Nb2RlbDtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5CdWlsZFBhdGhPcHRpb25zPy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQnVpbGRQYXRoRm9ybUNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5CdWlsZFBhdGhPcHRpb25zWzBdXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbGlzdE9yZ2FuaXphdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5hcHBzRmxvd1N2Y1xuICAgICAgICAgICAgLkxpc3RPcmdhbml6YXRpb25zKClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPEdpdEh1Yk9yZ2FuaXphdGlvbltdPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbk9wdGlvbnMgPSByZXNwb25zZS5Nb2RlbDtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAnT3JnYW5pemF0aW9uIE9wdGlvbnM6ICcsXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICB0aGlzLk9yZ2FuaXphdGlvbk9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgLy8gKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5FZGl0aW5nU291cmNlQ29udHJvbD8uT3JnYW5pemF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnNldFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sLk9yZ2FuaXphdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3RSZXBvc2l0b3JpZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2w/LlJlcG9zaXRvcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsaXN0UmVwb3NpdG9yaWVzKGFjdGl2ZVJlcG86IHN0cmluZyA9IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgICAgICAgICAuTGlzdFJlcG9zaXRvcmllcyh0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8R2l0SHViUmVwb3NpdG9yeVtdPikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuUmVwb3NpdG9yeU9wdGlvbnMgPSByZXNwb25zZS5Nb2RlbDtcblxuICAgICAgICAgICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZVJlcG8pIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC5zZXRWYWx1ZShhY3RpdmVSZXBvKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0QnJhbmNoZXMoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLlVzZUJyYW5jaGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0QnVpbGRQYXRocygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuUmVwb3NpdG9yeU9wdGlvbnM/Lmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQ3JlYXRpbmdSZXBvc2l0b3J5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZFByb2plY3RIb3N0aW5nRGV0YWlscygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuU2VsZWN0ZWRCcmFuY2hlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscy5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5hcHBzRmxvd1N2Yy5Mb2FkUHJvamVjdEhvc3RpbmdEZXRhaWxzKCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxQcm9qZWN0SG9zdGluZ0RldGFpbHM+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuSG9zdGluZ0RldGFpbHMgPSByZXNwb25zZS5Nb2RlbDtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLkhvc3RpbmdEZXRhaWxzLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ3VyZURldk9wc0FjdGlvbigpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuSG9zdGluZ0RldGFpbHMuTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBGb3JtQ29udHJvbHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveUZvcm1Db250cm9scygpO1xuXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdTb3VyY2UgQ29udHJvbDogJywgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbCk7XG5cbiAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnZGV2T3BzQWN0aW9uTG9va3VwJyxcbiAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbCh0aGlzLkRldk9wc0FjdGlvbkxvb2t1cCB8fCAnJywgW10pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ29yZ2FuaXphdGlvbiddLmpvaW4oJycpLFxuICAgICAgICAgICAgbmV3IEZvcm1Db250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2wuT3JnYW5pemF0aW9uID8/ICcnLFxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAncmVwb3NpdG9yeSddLmpvaW4oJycpLFxuICAgICAgICAgICAgbmV3IEZvcm1Db250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2wuUmVwb3NpdG9yeSA/PyAnJyxcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMuVXNlQnJhbmNoZXMpIHtcbiAgICAgICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnYnJhbmNoZXMnXS5qb2luKCcnKSxcbiAgICAgICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2w/LkJyYW5jaGVzID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzID0gdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbD8uQnJhbmNoZXM7XG5cbiAgICAgICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnbWFpbkJyYW5jaCddLmpvaW4oJycpLFxuICAgICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbC5NYWluQnJhbmNoID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLlVzZUJ1aWxkUGF0aCkge1xuICAgICAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdidWlsZFBhdGgnXS5qb2luKCcnKSxcbiAgICAgICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2wodGhpcy5CdWlsZFBhdGggPz8gJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGZvcm1cbiAgICBjbGFzcz1cImZvcm0tY2FyZFwiXG4gICAgW2Zvcm1Hcm91cF09XCJEZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwXCJcbiAgICAobmdTdWJtaXQpPVwiU3VibWl0U291cmNlQ29udHJvbCgpXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiTG9hZGluZ1wiPlxuICAgICAgICA8bGN1LWxvYWRlciBbbG9hZGluZ109XCJMb2FkaW5nXCI+PC9sY3UtbG9hZGVyPlxuXG4gICAgICAgIDwhLS0gPHNrZWxldG9uLWJsb2NrIFxuICAgICAgICAgIGNsYXNzPVwicy1ibG9ja1wiXG4gICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiIFxuICAgICAgICA+PC9za2VsZXRvbi1ibG9jaz5cblxuICAgICAgICA8c2tlbGV0b24tYmxvY2sgXG4gICAgICAgICAgY2xhc3M9XCJzLWJsb2NrXCJcbiAgICAgICAgICBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgXG4gICAgICAgID48L3NrZWxldG9uLWJsb2NrPlxuXG4gICAgICAgIDxza2VsZXRvbi1ibG9jayBcbiAgICAgICAgICBjbGFzcz1cInMtYmxvY2tcIlxuICAgICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiAgXG4gICAgICAgID48L3NrZWxldG9uLWJsb2NrPlxuXG4gICAgICAgIDxza2VsZXRvbi1ibG9jayBcbiAgICAgICAgICBjbGFzcz1cInMtYmxvY2tcIlxuICAgICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiAgXG4gICAgICAgID48L3NrZWxldG9uLWJsb2NrPiAtLT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhTG9hZGluZ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXZPcHNBY3Rpb25Mb29rdXBcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkRldk9wcyBBY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiSG9zdGluZ0RldGFpbHM/LkxvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIkRldk9wc0FjdGlvbkxvb2t1cENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlwiPi0tIENyZWF0ZSBOZXcgLS08L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRldk9wc0FjdGlvbkxvb2t1cCBvZiBEZXZPcHNBY3Rpb25Mb29rdXBzXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGV2T3BzQWN0aW9uTG9va3VwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZPcHNBY3Rpb25zW2Rldk9wc0FjdGlvbkxvb2t1cF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZXZPcHNBY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImRldk9wc0FjdGlvbi5OYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkZXZPcHNBY3Rpb24uTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIiAqbmdJZj1cIk9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZCB8fCAhTG9hZGluZ1wiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtZnVsbC13aWR0aCB3aXRoLWhpbnQgbWFyZ2luLWJvdHRvbVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJPcmdhbml6YXRpb25PcHRpb25zPy5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJvcmctaWNvblwiIG1hdFByZWZpeD5jb3Jwb3JhdGVfZmFyZTwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIlNvdXJjZUNvbnRyb2xSb290ICsgJ29yZ2FuaXphdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk9yZ2FuaXphdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiT3JnYW5pemF0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIkxvYWRpbmcgfHwgSG9zdGluZ0RldGFpbHM/LkxvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3JnT3B0IG9mIE9yZ2FuaXphdGlvbk9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJvcmdPcHQuTmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9yZ09wdC5OYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cblxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlJlZnJlc2hPcmdhbml6YXRpb25zKClcIlxuICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiUmVmcmVzaCBPcmdhbml6YXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoXG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICBocmVmPVwiLy5vYXV0aC9HaXRIdWJPQXV0aD9vYXV0aC1mb3JjZS1lZGl0PXRydWVcIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJSZS1hdXRob3JpemUgT3JnYW5pemF0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxhdW5jaFxuICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYT5cblxuICAgICAgICAgICAgICAgIDxtYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgSWYgeW91IGRvbid0IGhhdmUgYW4gb3JnYW5pemF0aW9uIG9yIHdvdWxkIGxpa2UgdG8gY3JlYXRlIGFcbiAgICAgICAgICAgICAgICAgICAgbmV3IG9uZSxcbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vYWNjb3VudC9vcmdhbml6YXRpb25zL25ld1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByaW1hcnktbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydCBoZXJlXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L21hdC1oaW50PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjYXJkXCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgUmVwb3NpdG9yeUZvcm1Db250cm9sPy52YWxpZCB8fFxuICAgICAgICAgICAgICAgIChPcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsaWQgJiYgIUxvYWRpbmcpXG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm9yZy1pY29uXCIgbWF0UHJlZml4PmRlc2NyaXB0aW9uPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiU291cmNlQ29udHJvbFJvb3QgKyAncmVwb3NpdG9yeSdcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBPcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdSZXBvc2l0b3J5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ1JlcG9zaXRvcnkgKHNlbGVjdCBvcmdhbml6YXRpb24gZmlyc3QpJ1xuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAhT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBMb2FkaW5nIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBIb3N0aW5nRGV0YWlscz8uTG9hZGluZ1xuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIlJlcG9zaXRvcnlDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFDcmVhdGluZ1JlcG9zaXRvcnlcIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcmVwb09wdCBvZiBSZXBvc2l0b3J5T3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInJlcG9PcHQuTmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJlcG9PcHQuTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJSZXBvc2l0b3J5IChjcmVhdGVzIG5ldyBpZiBkb2VzIG5vdCBleGlzdClcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIlNvdXJjZUNvbnRyb2xSb290ICsgJ3JlcG9zaXRvcnknXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJDcmVhdGluZ1JlcG9zaXRvcnlcIlxuICAgICAgICAgICAgICAgICAgICBbZnhIaWRlXT1cIkxvYWRpbmcgfHwgSG9zdGluZ0RldGFpbHM/LkxvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJDcmVhdGVSZXBvc2l0b3J5KClcIlxuICAgICAgICAgICAgICAgICAgICBbZnhIaWRlXT1cIkxvYWRpbmcgfHwgSG9zdGluZ0RldGFpbHM/LkxvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgIUNyZWF0aW5nUmVwb3NpdG9yeSAmJiBPcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsaWRcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIGFkZF9jaXJjbGVcbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiU2F2ZVJlcG9zaXRvcnkoKVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiQ3JlYXRpbmdSZXBvc2l0b3J5ICYmIFJlcG9zaXRvcnlGb3JtQ29udHJvbD8udmFsaWRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdFN1ZmZpeCBjb2xvcj1cInByaW1hcnlcIj4gc2F2ZSA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiQ2FuY2VsQ3JlYXRlUmVwb3NpdG9yeSgpXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJDcmVhdGluZ1JlcG9zaXRvcnlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdFN1ZmZpeD4gY2FuY2VsIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNhcmRcIlxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAoQnJhbmNoZXNGb3JtQ29udHJvbD8udmFsaWQgfHxcbiAgICAgICAgICAgICAgICAgICAgKE9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVwb3NpdG9yeUZvcm1Db250cm9sPy52YWxpZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIUxvYWRpbmcpKSAmJlxuICAgICAgICAgICAgICAgICFDcmVhdGluZ1JlcG9zaXRvcnkgJiZcbiAgICAgICAgICAgICAgICBVc2VCcmFuY2hlc1xuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJvcmctaWNvblwiIG1hdFByZWZpeD5hY2NvdW50X3RyZWU8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5TZWxlY3RlZCBCcmFuY2hlczwvbWF0LWxhYmVsPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIkJyYW5jaE9wdGlvblNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAjYnJhbmNoT3B0aW9ucz1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBicmFuY2hPcHQgb2YgQnJhbmNoT3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImJyYW5jaE9wdC5OYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYnJhbmNoT3B0Lk5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1jaGlwLWxpc3QgI3NlbGVjdGVkQnJhbmNoZXM+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2hpcFxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmVkKT1cIlJlbW92ZUJyYW5jaE9wdGlvbihzZWxCcmFuY2gpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzZWxCcmFuY2ggb2YgU2VsZWN0ZWRCcmFuY2hlc1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNlbEJyYW5jaCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hpcD5cblxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk5ldyBCcmFuY2guLi5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJTb3VyY2VDb250cm9sUm9vdCArICdicmFuY2hlcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgI2JyYW5jaGVzXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImJyYW5jaE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJzZWxlY3RlZEJyYW5jaGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJTZXBhcmF0b3JLZXlzQ29kZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChtYXRDaGlwSW5wdXRUb2tlbkVuZCk9XCJBZGRCcmFuY2hPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiTG9hZGluZyB8fCBIb3N0aW5nRGV0YWlscz8uTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbWF0LWNoaXAtbGlzdD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGggd2l0aC1oaW50XCJcbiAgICAgICAgICAgICAgICBbZnhTaG93XT1cIlNlbGVjdGVkQnJhbmNoZXM/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm9yZy1pY29uXCIgbWF0UHJlZml4PmFjY291bnRfdHJlZTwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIlNvdXJjZUNvbnRyb2xSb290ICsgJ21haW5CcmFuY2gnXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJNYWluIEJyYW5jaFwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJMb2FkaW5nIHx8IEhvc3RpbmdEZXRhaWxzPy5Mb2FkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJNYWluQnJhbmNoQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJyYW5jaCBvZiBTZWxlY3RlZEJyYW5jaGVzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiYnJhbmNoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYnJhbmNoIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cblxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlJlZnJlc2hPcmdhbml6YXRpb25zKClcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoXG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi8ub2F1dGgvR2l0SHViT0F1dGg/b2F1dGgtZm9yY2UtZWRpdD10cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiUmUtYXV0aG9yaXplIE9yZ2FuaXphdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXVuY2hcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2E+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgICAgIElmIHlvdSBkb24ndCBoYXZlIGFuIG9yZ2FuaXphdGlvbiBvciB3b3VsZCBsaWtlIHRvIGNyZWF0ZSBhXG4gICAgICAgICAgICAgICAgICAgIG5ldyBvbmUsXG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL2FjY291bnQvb3JnYW5pemF0aW9ucy9uZXdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJpbWFyeS1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgaGVyZVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9tYXQtaGludD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY2FyZFwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIChCdWlsZFBhdGhGb3JtQ29udHJvbD8udmFsaWQgfHxcbiAgICAgICAgICAgICAgICAgICAgKE9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVwb3NpdG9yeUZvcm1Db250cm9sPy52YWxpZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIUxvYWRpbmcpKSAmJlxuICAgICAgICAgICAgICAgICFDcmVhdGluZ1JlcG9zaXRvcnkgJiZcbiAgICAgICAgICAgICAgICBVc2VCdWlsZFBhdGhcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoIHdpdGgtaGludFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm9yZy1pY29uXCIgbWF0UHJlZml4PmJ1aWxkPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiU291cmNlQ29udHJvbFJvb3QgKyAnYnVpbGRQYXRoJ1wiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQnVpbGQgUGF0aFwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJMb2FkaW5nIHx8IEJ1aWxkUGF0aERpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJCdWlsZFBhdGhDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnVpbGRQYXRoIG9mIEJ1aWxkUGF0aE9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJidWlsZFBhdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBidWlsZFBhdGggfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuXG4gICAgICAgICAgICAgICAgPG1hdC1oaW50PlxuICAgICAgICAgICAgICAgICAgICBUaGUgYnVpbGQgcGF0aCBpZGVudGlmaWVzIHdoaWNoIGJ1aWxkIGFjdGlvbiB0byB1c2UgZm9yIHlvdXJcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbi5cbiAgICAgICAgICAgICAgICA8L21hdC1oaW50PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIkxvYWRpbmdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcHJlYWRcIj5cbiAgICAgICAgICAgICAgICA8bGN1LWxvYWRlciBzdHlsZT1cIm1hcmdpbjogYXV0b1wiIFtsb2FkaW5nXT1cInRydWVcIj48L2xjdS1sb2FkZXI+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFyZ2luLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGg0XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC10aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFPcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBMb2FkaW5nIG9yZ2FuaXphdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgPC9oND5cblxuICAgICAgICAgICAgICAgICAgICA8aDRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIVJlcG9zaXRvcnlGb3JtQ29udHJvbD8udmFsaWRcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIExvYWRpbmcgcmVwb3NpdG9yaWVzXG4gICAgICAgICAgICAgICAgICAgIDwvaDQ+XG5cbiAgICAgICAgICAgICAgICAgICAgPGg0XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC10aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcG9zaXRvcnlGb3JtQ29udHJvbD8udmFsaWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhQnJhbmNoZXNGb3JtQ29udHJvbD8udmFsaWRcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIExvYWRpbmcgYnJhbmNoZXNcbiAgICAgICAgICAgICAgICAgICAgPC9oND5cblxuICAgICAgICAgICAgICAgICAgICA8aDRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFJlcG9zaXRvcnlGb3JtQ29udHJvbD8udmFsaWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJhbmNoZXNGb3JtQ29udHJvbD8udmFsaWQpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIUJ1aWxkUGF0aEZvcm1Db250cm9sPy52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGluZyBidWlsZCBwYXRoc1xuICAgICAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9mb3JtPlxuIl19
@@ -92,7 +92,7 @@ export class DFSModifiersDialogComponent {
92
92
  }
93
93
  }
94
94
  SaveDFSModifier() {
95
- console.log('level at save: ', this.data.level);
95
+ // console.log('level at save: ', this.data.level);
96
96
  let status;
97
97
  switch (this.data.level) {
98
98
  case 'enterprise': {
@@ -150,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
150
150
  type: ViewChild,
151
151
  args: [DFSModifiersFormComponent]
152
152
  }] } });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZzLW1vZGlmaWVycy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZGlhbG9ncy9kZnMtbW9kaWZpZXJzLWRpYWxvZy9kZnMtbW9kaWZpZXJzLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL2Rmcy1tb2RpZmllcnMtZGlhbG9nL2Rmcy1tb2RpZmllcnMtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaEYsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUt6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFpQjNHLE1BQU0sT0FBTywyQkFBMkI7SUE0QnBDLFlBQ2MsTUFBa0IsRUFDckIsUUFBcUIsRUFDckIsU0FBb0QsRUFDM0IsSUFBNEIsRUFDbEQsUUFBcUI7UUFKckIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBQzNCLFNBQUksR0FBSixJQUFJLENBQXdCO1FBQ2xELGFBQVEsR0FBUixRQUFRLENBQWE7UUFFL0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFoQ0QsSUFBVyxvQkFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsaUJBQWlCLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQVcsMEJBQTBCO1FBQ2pDLE9BQU8sSUFBSSxD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QUFZLEVBQUUsQ0FBQzthQUN2QjtTQUNKO0lBQ0wsQ0FBQztJQUVTLFlBQVk7UUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FDOUIsb0JBQW9CLEVBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUMvQixDQUFDO0lBQ04sQ0FBQzs7d0hBeEtRLDJCQUEyQixtR0FnQ3hCLGVBQWU7NEdBaENsQiwyQkFBMkIseUhBQ3pCLHlCQUF5QixnREMxQnhDLGdtRUEwRUE7MkZEakRhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDSSwwQkFBMEI7OzBCQW9DL0IsTUFBTTsyQkFBQyxlQUFlO3NFQTlCcEIsdUJBQXVCO3NCQUQ3QixTQUFTO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgREZTTW9kaWZpZXJzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2Rmcy1tb2RpZmllcnMtZm9ybS9kZnMtbW9kaWZpZXJzLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgREZTTW9kaWZpZXJzRGlhbG9nRGF0YSB7XG4gICAgYXBwbGljYXRpb25Mb29rdXA/OiBzdHJpbmc7XG4gICAgbW9kaWZpZXJMb29rdXA/OiBzdHJpbmc7XG4gICAgbW9kaWZpZXJOYW1lPzogc3RyaW5nO1xuICAgIGxldmVsOiBzdHJpbmc7XG4gICAgcHJvamVjdExvb2t1cD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3UtZGZzLW1vZGlmaWVycy1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZnMtbW9kaWZpZXJzLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGZzLW1vZGlmaWVycy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgREZTTW9kaWZpZXJzRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoREZTTW9kaWZpZXJzRm9ybUNvbXBvbmVudClcbiAgICBwdWJsaWMgREZTTW9kaWZlcnNGb3JtQ29udHJvbHM6IERGU01vZGlmaWVyc0Zvcm1Db21wb25lbnQ7XG5cbiAgICBwdWJsaWMgZ2V0IERGU01vZGlmZXJzRm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRGU01vZGlmZXJzRm9ybUNvbnRyb2xzPy5Nb2RpZmllckZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFNlbGVjdGVkTW9kaWZpZXJzRm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRGU01vZGlmZXJzRm9ybUNvbnRyb2xzPy5Nb2RpZmllclNlbGVjdEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgQXBwbGljYXRpb25zOiBBcnJheTxFYUNBcHBsaWNhdGlvbkFzQ29kZT47XG5cbiAgICBwdWJsaWMgRXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgSXNQcmVjb25maWd1cmVkOiBib29sZWFuO1xuXG4gICAgcHVibGljIE1vZGlmaWVyRGlhbG9nRm9ybTogRm9ybUdyb3VwO1xuXG4gICAgcHVibGljIFNhdmVEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBTdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlO1xuXG4gICAgcHVibGljIFN0YXRlU3ViOiBTdWJzY3JpcHRpb247XG5cbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGVhY1N2YzogRWFDU2VydmljZSxcbiAgICAgICAgcHVibGljIGZvcm1ibGRyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERGU01vZGlmaWVyc0RpYWxvZ0NvbXBvbmVudD4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogREZTTW9kaWZpZXJzRGlhbG9nRGF0YSxcbiAgICAgICAgcHJvdGVjdGVkIHNuYWNrQmFyOiBNYXRTbmFja0JhclxuICAgICkge1xuICAgICAgICB0aGlzLk1vZGlmaWVyRGlhbG9nRm9ybSA9IHRoaXMuZm9ybWJsZHIuZ3JvdXAoe30pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2RmcyBkYXRhOiAnLCB0aGlzLmRhdGEpO1xuICAgICAgICB0aGlzLlN0YXRlU3ViID0gdGhpcy5lYWNTdmMuU3RhdGUuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5TdGF0ZSA9IHN0YXRlO1xuICAgICAgICAgICAgaWYgKHRoaXMuU3RhdGU/LkVhQz8uUHJvamVjdHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLlByb2plY3RMb29rdXBzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuU3RhdGU/LkVhQz8uUHJvamVjdHMgfHwge31cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5kZXRlcm1pbmVMZXZlbCgpO1xuXG4gICAgICAgIHRoaXMuSXNQcmVjb25maWd1cmVkID0gdGhpcy5DaGVja1ByZWNvbmZpZ3VyZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuU3RhdGVTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQ2xvc2VEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIERlbGV0ZU1vZGlmaWVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVhY1N2Yy5EZWxldGVNb2RpZmllcihcbiAgICAgICAgICAgIHRoaXMuZGF0YS5tb2RpZmllckxvb2t1cCxcbiAgICAgICAgICAgIHRoaXMuZGF0YS5tb2RpZmllck5hbWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgSGFuZGxlU2F2ZUZvcm1FdmVudChldmVudDogU3RhdHVzKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdldmVudDogJywgZXZlbnQpO1xuICAgICAgICBpZiAoZXZlbnQuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdERlMgTW9kaWZpZXIgU2F2ZWQgU3VjY2Vzc2Z1bGx5JywgJ0Rpc21pc3MnLCB7XG4gICAgICAgICAgICAgICAgZHVyYXRpb246IDUwMDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuQ2xvc2VEaWFsb2coKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuRXJyb3JNZXNzYWdlID0gZXZlbnQuTWVzc2FnZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBJc0Rpc2FibGVkKCkge1xuICAgICAgICB0aGlzLlNhdmVEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLkRGU01vZGlmZXJzRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICB0aGlzLlNhdmVEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXRoaXMuREZTTW9kaWZlcnNGb3JtR3JvdXA/LnZhbGlkIHx8XG4gICAgICAgICAgICAgICAgIXRoaXMuREZTTW9kaWZlcnNGb3JtR3JvdXA/LmRpcnR5IHx8XG4gICAgICAgICAgICAgICAgIXRoaXMuTW9kaWZpZXJEaWFsb2dGb3JtPy52YWxpZDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLlNlbGVjdGVkTW9kaWZpZXJzRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICB0aGlzLlNhdmVEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXRoaXMuU2VsZWN0ZWRNb2RpZmllcnNGb3JtR3JvdXA/LnZhbGlkIHx8XG4gICAgICAgICAgICAgICAgIXRoaXMuU2VsZWN0ZWRNb2RpZmllcnNGb3JtR3JvdXA/LmRpcnR5O1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdTYXZlIGRpc2FibGVkOiAnLCB0aGlzLlNhdmVEaXNhYmxlZCk7XG4gICAgICAgIHJldHVybiB0aGlzLlNhdmVEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgQ2hlY2tQcmVjb25maWd1cmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5kYXRhLm1vZGlmaWVyTG9va3VwKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhLm1vZGlmaWVyTG9va3VwID09PSAnaHRtbC1iYXNlJyB8fFxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5tb2RpZmllckxvb2t1cCA9PT0gJ2xjdS1yZWcnXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIFNhdmVERlNNb2RpZmllcigpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2xldmVsIGF0IHNhdmU6ICcsIHRoaXMuZGF0YS5sZXZlbCk7XG5cbiAgICAgICAgbGV0IHN0YXR1czogU3RhdHVzO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5kYXRhLmxldmVsKSB7XG4gICAgICAgICAgICBjYXNlICdlbnRlcnByaXNlJzoge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLk1vZGlmaWVyRGlhbG9nRm9ybS5jb250cm9scy5hcHBseVRvQWxsUHJvamVjdHMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy9zYXZlIG1vZGlmaWVyIGFkZCBpdCB0byB0aGUgTW9kaWZpZXJMb29rdXBzIG9mIGFsbCBwcm9qZWN0c1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ERlNNb2RpZmVyc0Zvcm1Db250cm9scy5TYXZlTW9kaWZpZXJGb3JBbGxQcm9qZWN0cyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2plY3RMb29rdXBzXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vc2F2ZSBtb2RpZmllclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSB0aGlzLkRGU01vZGlmZXJzRm9ybUNvbnRyb2xzLlNhdmVNb2RpZmllcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3Byb2plY3QnOiB7XG4gICAgICAgICAgICAgICAgc3RhdHVzID0gdGhpcy5ERlNNb2RpZmVyc0Zvcm1Db250cm9scy5TYXZlTW9kaWZpZXIoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5wcm9qZWN0TG9va3VwXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSAnYXBwbGljYXRpb24nOiB7XG4gICAgICAgICAgICAgICAgc3RhdHVzID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ERlNNb2RpZmVyc0Zvcm1Db250cm9scy5TYXZlTW9kaWZpZXJGb3JBcHBsaWNhdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5hcHBsaWNhdGlvbkxvb2t1cFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXM/LkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignREZTIE1vZGlmaWVyIFNhdmVkIFN1Y2Nlc3NmdWxseScsICdEaXNtaXNzJywge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0RGUyBNb2RpZmllciBGYWlsZWQgdG8gU2F2ZScsICdEaXNtaXNzJywge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdGhpcy5ERlNNb2RpZmVyc0Zvcm1Db250cm9scy5TYXZlTW9kaWZpZXIoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGV0ZXJtaW5lTGV2ZWwoKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdMRVZFTDogJywgdGhpcy5kYXRhLmxldmVsKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmRhdGEubGV2ZWwudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgY2FzZSAnZW50ZXJwcmlzZSc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwRW50Rm9ybSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwRW50Rm9ybSgpIHtcbiAgICAgICAgdGhpcy5Nb2RpZmllckRpYWxvZ0Zvcm0uYWRkQ29udHJvbChcbiAgICAgICAgICAgICdhcHBseVRvQWxsUHJvamVjdHMnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYmxkci5jb250cm9sKGZhbHNlKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCI+XG4gICAgPGgyIG1hdC1kaWFsb2ctdGl0bGU+REZTIE1vZGlmaWVyczwvaDI+XG5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiQ2xvc2VEaWFsb2coKVwiPlxuICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxsY3UtZGZzLW1vZGlmaWVyLWZvcm1cbiAgICAgICAgW2FwcGxpY2F0aW9uc109XCJ0aGlzLlN0YXRlPy5FYUM/LkFwcGxpY2F0aW9uc1wiXG4gICAgICAgIFthcHBsaWNhdGlvbi1sb29rdXBdPVwiZGF0YS5hcHBsaWNhdGlvbkxvb2t1cFwiXG4gICAgICAgIFtwcm9qZWN0LWxvb2t1cF09XCJkYXRhLnByb2plY3RMb29rdXBcIlxuICAgICAgICBbcHJvamVjdHNdPVwidGhpcy5TdGF0ZT8uRWFDPy5Qcm9qZWN0c1wiXG4gICAgICAgIFtlZGl0aW5nLW1vZGlmaWVyLWxvb2t1cF09XCJkYXRhLm1vZGlmaWVyTG9va3VwXCJcbiAgICAgICAgW2xldmVsXT1cImRhdGEubGV2ZWxcIlxuICAgICAgICBbbW9kaWZpZXJzXT1cIlN0YXRlPy5FYUM/Lk1vZGlmaWVyc1wiXG4gICAgPlxuICAgIDwvbGN1LWRmcy1tb2RpZmllci1mb3JtPlxuXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJNb2RpZmllckRpYWxvZ0Zvcm1cIj5cbiAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmxldmVsID09PSAnZW50ZXJwcmlzZScgJiYgZGF0YS5tb2RpZmllckxvb2t1cFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhcHBseVRvQWxsUHJvamVjdHNcIlxuICAgICAgICAgICAgPkFwcGx5IHRvIGFsbCBQcm9qZWN0czwvbWF0LWNoZWNrYm94XG4gICAgICAgID5cbiAgICA8L2Zvcm0+XG5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiRXJyb3JNZXNzYWdlXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgICAge3sgRXJyb3JNZXNzYWdlIH19XG4gICAgPC9tYXQtZXJyb3I+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9uc1xuICAgIGNsYXNzPVwiYWN0aW9ucy1jb250YWluZXJcIlxuICAgIGRpdlxuICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIlxuPlxuICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiFJc1ByZWNvbmZpZ3VyZWRcIlxuICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiRGVsZXRlTW9kaWZpZXIoKVwiXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiRGVsZXRlIHt7IGRhdGEubW9kaWZpZXJMb29rdXAgfX1cIlxuICAgICAgICA+XG4gICAgICAgICAgICBEZWxldGVcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgZnhGbGV4PVwiNTIlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJDbG9zZURpYWxvZygpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCIhU3RhdGU/LkxvYWRpbmdcIlxuICAgICAgICAgICAgZnhGbGV4PVwiMzAlXCJcbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiU2F2ZURGU01vZGlmaWVyKClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIklzRGlzYWJsZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIFNhdmVcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZzLW1vZGlmaWVycy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZGlhbG9ncy9kZnMtbW9kaWZpZXJzLWRpYWxvZy9kZnMtbW9kaWZpZXJzLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL2Rmcy1tb2RpZmllcnMtZGlhbG9nL2Rmcy1tb2RpZmllcnMtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaEYsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUt6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFpQjNHLE1BQU0sT0FBTywyQkFBMkI7SUE0QnBDLFlBQ2MsTUFBa0IsRUFDckIsUUFBcUIsRUFDckIsU0FBb0QsRUFDM0IsSUFBNEIsRUFDbEQsUUFBcUI7UUFKckIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBQzNCLFNBQUksR0FBSixJQUFJLENBQXdCO1FBQ2xELGFBQVEsR0FBUixRQUFRLENBQWE7UUFFL0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFoQ0QsSUFBVyxvQkFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsaUJBQWlCLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQVcsMEJBQTBCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDO0lBQ2pFLENBQUM7SUE0Qk0sUUFBUTtRQUNYLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFO2dCQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQzdCLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQ2xDLENBQUM7YUFDTDtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUN6QixDQUFDO0lBQ04sQ0FBQztJQUVNLG1CQUFtQixDQUFDLEtBQWE7UUFDcEMsaUNBQWlDO1FBQ2pDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUNBQWlDLEVBQUUsU0FBUyxFQUFFO2dCQUM3RCxRQUFRLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEI7YUFBTTtZQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztTQUNyQztJQUNMLENBQUM7SUFFTSxVQUFVO1FBQ2IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFlBQVk7Z0JBQ2IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsS0FBSztvQkFDakMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsS0FBSztvQkFDakMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDO1NBQ3ZDO2FBQU0sSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFlBQVk7Z0JBQ2IsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsS0FBSztvQkFDdkMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDO1NBQy9DO1FBQ0QscURBQXFEO1FBQ3JELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDMUIsSUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxXQUFXO2dCQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQ3hDO2dCQUNFLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7aUJBQU07Z0JBQ0gsT0FBTyxLQUFLLENBQUM7YUFDaEI7U0FDSjthQUFNO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBRU0sZUFBZTtRQUNsQixtREFBbUQ7UUFFbkQsSUFBSSxNQUFjLENBQUM7UUFFbkIsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNyQixLQUFLLFlBQVksQ0FBQyxDQUFDO2dCQUNmLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7b0JBQzNELDZEQUE2RDtvQkFDN0QsTUFBTTt3QkFDRixJQUFJLENBQUMsdUJBQXVCLENBQUMsMEJBQTBCLENBQ25ELElBQUksQ0FBQyxjQUFjLENBQ3RCLENBQUM7aUJBQ1Q7cUJBQU07b0JBQ0gsZUFBZTtvQkFDZixNQUFNLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxDQUFDO2lCQUN4RDthQUNKO1lBQ0QsS0FBSyxTQUFTLENBQUMsQ0FBQztnQkFDWixNQUFNLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQzFCLENBQUM7YUFDTDtZQUVELEtBQUssYUFBYSxDQUFDLENBQUM7Z0JBQ2hCLE1BQU07b0JBQ0YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLDBCQUEwQixDQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUM5QixDQUFDO2FBQ1Q7U0FDSjtRQUNELElBQUksTUFBTSxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUNBQWlDLEVBQUUsU0FBUyxFQUFFO2dCQUM3RCxRQUFRLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsU0FBUyxFQUFFO2dCQUN6RCxRQUFRLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUM7U0FDTjtRQUNELCtDQUErQztJQUNuRCxDQUFDO0lBRVMsY0FBYztRQUNwQiwyQ0FBMkM7UUFDM0MsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNuQyxLQUFLLFlBQVksQ0FBQyxDQUFDO2dCQUNmLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUN2QjtTQUNKO0lBQ0wsQ0FBQztJQUVTLFlBQVk7UUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FDOUIsb0JBQW9CLEVBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUMvQixDQUFDO0lBQ04sQ0FBQzs7d0hBeEtRLDJCQUEyQixtR0FnQ3hCLGVBQWU7NEdBaENsQiwyQkFBMkIseUhBQ3pCLHlCQUF5QixnREMxQnhDLGdtRUEwRUE7MkZEakRhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDSSwwQkFBMEI7OzBCQW9DL0IsTUFBTTsyQkFBQyxlQUFlO3NFQTlCcEIsdUJBQXVCO3NCQUQ3QixTQUFTO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgREZTTW9kaWZpZXJzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2Rmcy1tb2RpZmllcnMtZm9ybS9kZnMtbW9kaWZpZXJzLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgREZTTW9kaWZpZXJzRGlhbG9nRGF0YSB7XG4gICAgYXBwbGljYXRpb25Mb29rdXA/OiBzdHJpbmc7XG4gICAgbW9kaWZpZXJMb29rdXA/OiBzdHJpbmc7XG4gICAgbW9kaWZpZXJOYW1lPzogc3RyaW5nO1xuICAgIGxldmVsOiBzdHJpbmc7XG4gICAgcHJvamVjdExvb2t1cD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3UtZGZzLW1vZGlmaWVycy1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZnMtbW9kaWZpZXJzLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGZzLW1vZGlmaWVycy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgREZTTW9kaWZpZXJzRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoREZTTW9kaWZpZXJzRm9ybUNvbXBvbmVudClcbiAgICBwdWJsaWMgREZTTW9kaWZlcnNGb3JtQ29udHJvbHM6IERGU01vZGlmaWVyc0Zvcm1Db21wb25lbnQ7XG5cbiAgICBwdWJsaWMgZ2V0IERGU01vZGlmZXJzRm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRGU01vZGlmZXJzRm9ybUNvbnRyb2xzPy5Nb2RpZmllckZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFNlbGVjdGVkTW9kaWZpZXJzRm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRGU01vZGlmZXJzRm9ybUNvbnRyb2xzPy5Nb2RpZmllclNlbGVjdEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgQXBwbGljYXRpb25zOiBBcnJheTxFYUNBcHBsaWNhdGlvbkFzQ29kZT47XG5cbiAgICBwdWJsaWMgRXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgSXNQcmVjb25maWd1cmVkOiBib29sZWFuO1xuXG4gICAgcHVibGljIE1vZGlmaWVyRGlhbG9nRm9ybTogRm9ybUdyb3VwO1xuXG4gICAgcHVibGljIFNhdmVEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBTdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlO1xuXG4gICAgcHVibGljIFN0YXRlU3ViOiBTdWJzY3JpcHRpb247XG5cbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGVhY1N2YzogRWFDU2VydmljZSxcbiAgICAgICAgcHVibGljIGZvcm1ibGRyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERGU01vZGlmaWVyc0RpYWxvZ0NvbXBvbmVudD4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogREZTTW9kaWZpZXJzRGlhbG9nRGF0YSxcbiAgICAgICAgcHJvdGVjdGVkIHNuYWNrQmFyOiBNYXRTbmFja0JhclxuICAgICkge1xuICAgICAgICB0aGlzLk1vZGlmaWVyRGlhbG9nRm9ybSA9IHRoaXMuZm9ybWJsZHIuZ3JvdXAoe30pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2RmcyBkYXRhOiAnLCB0aGlzLmRhdGEpO1xuICAgICAgICB0aGlzLlN0YXRlU3ViID0gdGhpcy5lYWNTdmMuU3RhdGUuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5TdGF0ZSA9IHN0YXRlO1xuICAgICAgICAgICAgaWYgKHRoaXMuU3RhdGU/LkVhQz8uUHJvamVjdHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLlByb2plY3RMb29rdXBzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuU3RhdGU/LkVhQz8uUHJvamVjdHMgfHwge31cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5kZXRlcm1pbmVMZXZlbCgpO1xuXG4gICAgICAgIHRoaXMuSXNQcmVjb25maWd1cmVkID0gdGhpcy5DaGVja1ByZWNvbmZpZ3VyZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuU3RhdGVTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQ2xvc2VEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIERlbGV0ZU1vZGlmaWVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVhY1N2Yy5EZWxldGVNb2RpZmllcihcbiAgICAgICAgICAgIHRoaXMuZGF0YS5tb2RpZmllckxvb2t1cCxcbiAgICAgICAgICAgIHRoaXMuZGF0YS5tb2RpZmllck5hbWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgSGFuZGxlU2F2ZUZvcm1FdmVudChldmVudDogU3RhdHVzKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdldmVudDogJywgZXZlbnQpO1xuICAgICAgICBpZiAoZXZlbnQuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdERlMgTW9kaWZpZXIgU2F2ZWQgU3VjY2Vzc2Z1bGx5JywgJ0Rpc21pc3MnLCB7XG4gICAgICAgICAgICAgICAgZHVyYXRpb246IDUwMDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuQ2xvc2VEaWFsb2coKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuRXJyb3JNZXNzYWdlID0gZXZlbnQuTWVzc2FnZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBJc0Rpc2FibGVkKCkge1xuICAgICAgICB0aGlzLlNhdmVEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLkRGU01vZGlmZXJzRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICB0aGlzLlNhdmVEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXRoaXMuREZTTW9kaWZlcnNGb3JtR3JvdXA/LnZhbGlkIHx8XG4gICAgICAgICAgICAgICAgIXRoaXMuREZTTW9kaWZlcnNGb3JtR3JvdXA/LmRpcnR5IHx8XG4gICAgICAgICAgICAgICAgIXRoaXMuTW9kaWZpZXJEaWFsb2dGb3JtPy52YWxpZDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLlNlbGVjdGVkTW9kaWZpZXJzRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICB0aGlzLlNhdmVEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXRoaXMuU2VsZWN0ZWRNb2RpZmllcnNGb3JtR3JvdXA/LnZhbGlkIHx8XG4gICAgICAgICAgICAgICAgIXRoaXMuU2VsZWN0ZWRNb2RpZmllcnNGb3JtR3JvdXA/LmRpcnR5O1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdTYXZlIGRpc2FibGVkOiAnLCB0aGlzLlNhdmVEaXNhYmxlZCk7XG4gICAgICAgIHJldHVybiB0aGlzLlNhdmVEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgQ2hlY2tQcmVjb25maWd1cmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5kYXRhLm1vZGlmaWVyTG9va3VwKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhLm1vZGlmaWVyTG9va3VwID09PSAnaHRtbC1iYXNlJyB8fFxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5tb2RpZmllckxvb2t1cCA9PT0gJ2xjdS1yZWcnXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIFNhdmVERlNNb2RpZmllcigpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2xldmVsIGF0IHNhdmU6ICcsIHRoaXMuZGF0YS5sZXZlbCk7XG5cbiAgICAgICAgbGV0IHN0YXR1czogU3RhdHVzO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5kYXRhLmxldmVsKSB7XG4gICAgICAgICAgICBjYXNlICdlbnRlcnByaXNlJzoge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLk1vZGlmaWVyRGlhbG9nRm9ybS5jb250cm9scy5hcHBseVRvQWxsUHJvamVjdHMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy9zYXZlIG1vZGlmaWVyIGFkZCBpdCB0byB0aGUgTW9kaWZpZXJMb29rdXBzIG9mIGFsbCBwcm9qZWN0c1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ERlNNb2RpZmVyc0Zvcm1Db250cm9scy5TYXZlTW9kaWZpZXJGb3JBbGxQcm9qZWN0cyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2plY3RMb29rdXBzXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vc2F2ZSBtb2RpZmllclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSB0aGlzLkRGU01vZGlmZXJzRm9ybUNvbnRyb2xzLlNhdmVNb2RpZmllcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3Byb2plY3QnOiB7XG4gICAgICAgICAgICAgICAgc3RhdHVzID0gdGhpcy5ERlNNb2RpZmVyc0Zvcm1Db250cm9scy5TYXZlTW9kaWZpZXIoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5wcm9qZWN0TG9va3VwXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSAnYXBwbGljYXRpb24nOiB7XG4gICAgICAgICAgICAgICAgc3RhdHVzID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ERlNNb2RpZmVyc0Zvcm1Db250cm9scy5TYXZlTW9kaWZpZXJGb3JBcHBsaWNhdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5hcHBsaWNhdGlvbkxvb2t1cFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXM/LkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignREZTIE1vZGlmaWVyIFNhdmVkIFN1Y2Nlc3NmdWxseScsICdEaXNtaXNzJywge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0RGUyBNb2RpZmllciBGYWlsZWQgdG8gU2F2ZScsICdEaXNtaXNzJywge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdGhpcy5ERlNNb2RpZmVyc0Zvcm1Db250cm9scy5TYXZlTW9kaWZpZXIoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGV0ZXJtaW5lTGV2ZWwoKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdMRVZFTDogJywgdGhpcy5kYXRhLmxldmVsKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmRhdGEubGV2ZWwudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgY2FzZSAnZW50ZXJwcmlzZSc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwRW50Rm9ybSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwRW50Rm9ybSgpIHtcbiAgICAgICAgdGhpcy5Nb2RpZmllckRpYWxvZ0Zvcm0uYWRkQ29udHJvbChcbiAgICAgICAgICAgICdhcHBseVRvQWxsUHJvamVjdHMnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYmxkci5jb250cm9sKGZhbHNlKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCI+XG4gICAgPGgyIG1hdC1kaWFsb2ctdGl0bGU+REZTIE1vZGlmaWVyczwvaDI+XG5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiQ2xvc2VEaWFsb2coKVwiPlxuICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxsY3UtZGZzLW1vZGlmaWVyLWZvcm1cbiAgICAgICAgW2FwcGxpY2F0aW9uc109XCJ0aGlzLlN0YXRlPy5FYUM/LkFwcGxpY2F0aW9uc1wiXG4gICAgICAgIFthcHBsaWNhdGlvbi1sb29rdXBdPVwiZGF0YS5hcHBsaWNhdGlvbkxvb2t1cFwiXG4gICAgICAgIFtwcm9qZWN0LWxvb2t1cF09XCJkYXRhLnByb2plY3RMb29rdXBcIlxuICAgICAgICBbcHJvamVjdHNdPVwidGhpcy5TdGF0ZT8uRWFDPy5Qcm9qZWN0c1wiXG4gICAgICAgIFtlZGl0aW5nLW1vZGlmaWVyLWxvb2t1cF09XCJkYXRhLm1vZGlmaWVyTG9va3VwXCJcbiAgICAgICAgW2xldmVsXT1cImRhdGEubGV2ZWxcIlxuICAgICAgICBbbW9kaWZpZXJzXT1cIlN0YXRlPy5FYUM/Lk1vZGlmaWVyc1wiXG4gICAgPlxuICAgIDwvbGN1LWRmcy1tb2RpZmllci1mb3JtPlxuXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJNb2RpZmllckRpYWxvZ0Zvcm1cIj5cbiAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmxldmVsID09PSAnZW50ZXJwcmlzZScgJiYgZGF0YS5tb2RpZmllckxvb2t1cFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhcHBseVRvQWxsUHJvamVjdHNcIlxuICAgICAgICAgICAgPkFwcGx5IHRvIGFsbCBQcm9qZWN0czwvbWF0LWNoZWNrYm94XG4gICAgICAgID5cbiAgICA8L2Zvcm0+XG5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiRXJyb3JNZXNzYWdlXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgICAge3sgRXJyb3JNZXNzYWdlIH19XG4gICAgPC9tYXQtZXJyb3I+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9uc1xuICAgIGNsYXNzPVwiYWN0aW9ucy1jb250YWluZXJcIlxuICAgIGRpdlxuICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIlxuPlxuICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiFJc1ByZWNvbmZpZ3VyZWRcIlxuICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiRGVsZXRlTW9kaWZpZXIoKVwiXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiRGVsZXRlIHt7IGRhdGEubW9kaWZpZXJMb29rdXAgfX1cIlxuICAgICAgICA+XG4gICAgICAgICAgICBEZWxldGVcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgZnhGbGV4PVwiNTIlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJDbG9zZURpYWxvZygpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCIhU3RhdGU/LkxvYWRpbmdcIlxuICAgICAgICAgICAgZnhGbGV4PVwiMzAlXCJcbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiU2F2ZURGU01vZGlmaWVyKClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIklzRGlzYWJsZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIFNhdmVcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
@@ -100,7 +100,7 @@ export class FeedHeaderComponent {
100
100
  window.location.href = path;
101
101
  }
102
102
  Submit() {
103
- console.log('submitting: ', this.value);
103
+ // console.log('submitting: ', this.value);
104
104
  switch (this.selectedBtn) {
105
105
  case 'pr-btn':
106
106
  //Pull request
@@ -154,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
154
154
  type: Input,
155
155
  args: ['loading-feed']
156
156
  }] } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvZmVlZC1oZWFkZXIvZmVlZC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvZmVlZC1oZWFkZXIvZmVlZC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDMUcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sdUVBQXVFLENBQUM7Ozs7Ozs7Ozs7QUFTdEgsTUFBTSxPQUFPLG1CQUFtQjtJQWtENUIsWUFBc0IsTUFBa0IsRUFBWSxNQUFpQjtRQUEvQyxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqRSxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztRQUM3QiwrQkFBK0I7SUFDbkMsQ0FBQztJQUVNLFFBQVEsS0FBVSxDQUFDO0lBRW5CLFdBQVc7UUFDZCxnRUFBZ0U7SUFDcEUsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsaURBQWlEO1FBQ2pELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLDBCQUEwQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELGdDQUFnQztJQUNoQyw4QkFBOEI7SUFDOUIsZ0RBQWdEO0lBQ2hELGlDQUFpQztJQUNqQyx5QkFBeUI7SUFDekIsbURBQW1EO0lBQ25ELGlDQUFpQztJQUVqQyxJQUFJO0lBRUosc0JBQXNC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YixDQUFDO0lBQ04sQ0FBQztJQUVTLGlCQUFpQjtRQUNULENBQ1YsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQzNDLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxDQUFDOztnSEExTFEsbUJBQW1CO29HQUFuQixtQkFBbUIsNGRDWmhDLG8zSkE0SEE7MkZEaEhhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDSSxpQkFBaUI7eUhBTXBCLHVCQUF1QjtzQkFEN0IsS0FBSzt1QkFBQywyQkFBMkI7Z0JBSTNCLElBQUk7c0JBRFYsS0FBSzt1QkFBQyxNQUFNO2dCQUlOLFNBQVM7c0JBRGYsS0FBSzt1QkFBQyxZQUFZO2dCQUlaLG1CQUFtQjtzQkFEekIsS0FBSzt1QkFBQyx1QkFBdUI7Z0JBSXZCLGVBQWU7c0JBRHJCLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUluQixpQkFBaUI7c0JBRHZCLEtBQUs7dUJBQUMscUJBQXFCO2dCQUlyQixXQUFXO3NCQURqQixLQUFLO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBGZWVkSGVhZGVyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZGlhbG9ncy9mZWVkLWhlYWRlci1kaWFsb2cvZmVlZC1oZWFkZXItZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZXdBcHBsaWNhdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3MvbmV3LWFwcGxpY2F0aW9uLWRpYWxvZy9uZXctYXBwbGljYXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGZWVkSXRlbUFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xuaW1wb3J0IHsgRWFDU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3UtZmVlZC1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mZWVkLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmVlZC1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmVlZEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCdhY3RpdmUtZW52aXJvbm1lbnQtbG9va3VwJylcbiAgICBwdWJsaWMgQWN0aXZlRW52aXJvbm1lbnRMb29rdXA6IHN0cmluZztcblxuICAgIEBJbnB1dCgnZmVlZCcpXG4gICAgcHVibGljIEZlZWQ6IGFueTtcblxuICAgIEBJbnB1dCgnZmVlZC1jaGVjaycpXG4gICAgcHVibGljIEZlZWRDaGVjazogYW55O1xuXG4gICAgQElucHV0KCdzb3VyY2UtY29udHJvbC1sb29rdXAnKVxuICAgIHB1YmxpYyBTb3VyY2VDb250cm9sTG9va3VwOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoJ2hhcy1naC1jb25uZWN0aW9uJylcbiAgICBwdWJsaWMgSGFzR0hDb25uZWN0aW9uOiBib29sZWFuO1xuXG4gICAgQElucHV0KCdmZWVkLWhlYWRlci1hY3Rpb25zJylcbiAgICBwdWJsaWMgRmVlZEhlYWRlckFjdGlvbnM6IEFycmF5PEZlZWRJdGVtQWN0aW9uPjtcblxuICAgIEBJbnB1dCgnbG9hZGluZy1mZWVkJylcbiAgICBwdWJsaWMgTG9hZGluZ0ZlZWQ6IGJvb2xlYW47XG5cbiAgICAvLyBwdWJsaWMgZ2V0IEFjdGl2ZUVudmlyb25tZW50TG9va3VwKCk6IHN0cmluZyB7XG4gICAgLy8gICAgIC8vICBUT0RPOiAgRXZlbnR1YWxseSBzdXBwb3J0IG11bHRpcGxlIGVudmlyb25tZW50c1xuICAgIC8vICAgICBjb25zdCBlbnZMb29rdXBzID0gT2JqZWN0LmtleXModGhpcy5TdGF0ZT8uRWFDPy5FbnZpcm9ubWVudHMgfHwge30pO1xuXG4gICAgLy8gICAgIHJldHVybiBlbnZMb29rdXBzWzBdO1xuICAgIC8vIH1cblxuICAgIC8vIHB1YmxpYyBnZXQgRmVlZEhlYWRlckFjdGlvbnMoKTogQXJyYXk8RmVlZEl0ZW1BY3Rpb24+IHtcbiAgICAvLyAgICAgLy8gY29uc29sZS5sb2coJ0ZlZWRBY3Rpb25zOiAnLCB0aGlzLlN0YXRlPy5GZWVkQWN0aW9ucylcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuU3RhdGU/LkZlZWRBY3Rpb25zO1xuICAgIC8vIH1cblxuICAgIC8vIHB1YmxpYyBnZXQgSGFzR0hDb25uZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIC8vICAgICByZXR1cm4gdGhpcy5TdGF0ZT8uR2l0SHViPy5IYXNDb25uZWN0aW9uO1xuICAgIC8vIH1cblxuICAgIC8vIHB1YmxpYyBnZXQgU3RhdGUoKTogQXBwbGljYXRpb25zRmxvd1N0YXRlIHtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuZWFjU3ZjLlN0YXRlO1xuICAgIC8vIH1cblxuICAgIHB1YmxpYyBNb2RhbEhlYWRlcjogc3RyaW5nO1xuXG4gICAgcHVibGljIFNrZWxldG9uRWZmZWN0OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgc2VsZWN0ZWRCdG46IHN0cmluZztcblxuICAgIHB1YmxpYyB2YWx1ZTogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVhY1N2YzogRWFDU2VydmljZSwgcHJvdGVjdGVkIGRpYWxvZzogTWF0RGlhbG9nKSB7XG4gICAgICAgIHRoaXMuU2tlbGV0b25FZmZlY3QgPSAnd2F2ZSc7XG4gICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRCdG4gPSBcInByLWJ0blwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdmZWVkIGhlYWRlciBhY3Rpb25zOiAnLCB0aGlzLkZlZWRIZWFkZXJBY3Rpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmFkZFNlbGVjdEJ0bigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBDcmVhdGVBbm5vdW5jZW1lbnQoKSB7XG4gICAgICAgIC8vIHRoaXMuTW9kYWxIZWFkZXIgPSBcIkNyZWF0ZSBUZWFtIEFubm91bmNlbWVudFwiO1xuICAgICAgICB0aGlzLk9wZW5GSERpYWxvZygnQW5ub3VuY2VtZW50JywgJ0NyZWF0ZSBUZWFtIEFubm91bmNlbWVudCcpO1xuICAgIH1cblxuICAgIC8vIHB1YmxpYyBDcmVhdGVGZWF0dXJlQnJhbmNoKCl7XG4gICAgLy8gICB0aGlzLnJlbW92ZVNlbGVjdGVkQnRuKCk7XG4gICAgLy8gICB0aGlzLk1vZGFsSGVhZGVyID0gXCJDcmVhdGUgRmVhdHVyZSBCcmFuY2hcIjtcbiAgICAvLyAgIHRoaXMuc2VsZWN0ZWRCdG4gPSBcImZiLWJ0blwiO1xuICAgIC8vICAgdGhpcy5hZGRTZWxlY3RCdG4oKTtcbiAgICAvLyAgIGNvbnNvbGUubG9nKFwiY3JlYXRlIGZlYXR1cmUgYnJhbmNoIHNlbGVjdGVkXCIpO1xuICAgIC8vICAgdGhpcy5PcGVuRkhEaWFsb2coJ2JyYW5jaCcpO1xuXG4gICAgLy8gfVxuXG4gICAgLy8gcHVibGljIE9wZW5Jc3N1ZSgpe1xuICAgIC8vICAgdGhpcy5yZW1vdmVTZWxlY3RlZEJ0bigpO1xuICAgIC8vICAgdGhpcy5Nb2RhbEhlYWRlciA9IFwiT3BlbiBJc3N1ZVwiO1xuICAgIC8vICAgdGhpcy5zZWxlY3RlZEJ0biA9IFwib2ktYnRuXCI7XG4gICAgLy8gICB0aGlzLmFkZFNlbGVjdEJ0bigpO1xuICAgIC8vICAgY29uc29sZS5sb2coXCJvcGVuIGlzc3VlIHNlbGVjdGVkXCIpO1xuICAgIC8vICAgdGhpcy5PcGVuRkhEaWFsb2coJ2lzc3VlJyk7XG5cbiAgICAvLyB9XG5cbiAgICAvLyBwdWJsaWMgQ3JlYXRlUHVsbFJlcXVlc3QoKXtcbiAgICAvLyAgIHRoaXMucmVtb3ZlU2VsZWN0ZWRCdG4oKTtcbiAgICAvLyAgIHRoaXMuTW9kYWxIZWFkZXIgPSBcIkNyZWF0ZSBQdWxsIFJlcXVlc3RcIjtcbiAgICAvLyAgIHRoaXMuc2VsZWN0ZWRCdG4gPSBcInByLWJ0blwiO1xuICAgIC8vICAgdGhpcy5hZGRTZWxlY3RCdG4oKTtcbiAgICAvLyAgIGNvbnNvbGUubG9nKFwiY3JlYXRlIHB1bGwgcmVxdWVzdCBzZWxlY3RlZFwiKTtcbiAgICAvLyAgIHRoaXMuT3BlbkZIRGlhbG9nKCdwdWxsLXJlcXVlc3QnKTtcblxuICAgIC8vIH1cblxuICAgIHB1YmxpYyBDcmVhdGVOZXdBcHAoKSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTmV3QXBwbGljYXRpb25EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgIHdpZHRoOiAnNjAwcHgnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGVudmlyb25tZW50TG9va3VwOiB0aGlzLkFjdGl2ZUVudmlyb25tZW50TG9va3VwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ1RoZSBkaWFsb2cgd2FzIGNsb3NlZCcpO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJyZXN1bHQ6XCIsIHJlc3VsdClcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIEhhbmRsZUFjdGlvbihhY3Rpb246IEZlZWRJdGVtQWN0aW9uKSB7XG4gICAgICAgIGlmIChhY3Rpb24uQWN0aW9uVHlwZSA9PSAnTGluaycpIHtcbiAgICAgICAgICAgIGlmIChhY3Rpb24uQWN0aW9uLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKGFjdGlvbi5BY3Rpb24sICdfYmxhbmsnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBhY3Rpb24uQWN0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbi5BY3Rpb25UeXBlID09ICdNb2RhbCcpIHtcbiAgICAgICAgICAgIHRoaXMuT3BlbkZIRGlhbG9nKGFjdGlvbi5BY3Rpb24sIGFjdGlvbi5UZXh0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBPcGVuRkhEaWFsb2cobW9kYWxUeXBlOiBzdHJpbmcsIG1vZGFsSGVhZGVyOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihGZWVkSGVhZGVyRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICB3aWR0aDogJzYwMHB4JyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZTogbW9kYWxIZWFkZXIsXG4gICAgICAgICAgICAgICAgdHlwZTogbW9kYWxUeXBlLFxuICAgICAgICAgICAgICAgIHNvdXJjZUNvbnRyb2xMb29rdXA6IHRoaXMuU291cmNlQ29udHJvbExvb2t1cFxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuU291cmNlQ29udHJvbExvb2t1cFxuICAgICAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnVGhlIGRpYWxvZyB3YXMgY2xvc2VkJyk7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcInJlc3VsdDpcIiwgcmVzdWx0KVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgUmVsb2FkRmVlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lYWNTdmMuUmVsb2FkRmVlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBSb3V0ZVRvUGF0aChwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBwYXRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBTdWJtaXQoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdzdWJtaXR0aW5nOiAnLCB0aGlzLnZhbHVlKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLnNlbGVjdGVkQnRuKSB7XG4gICAgICAgICAgICBjYXNlICdwci1idG4nOlxuICAgICAgICAgICAgICAgIC8vUHVsbCByZXF1ZXN0XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ2NyZWF0aW5nIHB1bGwgcmVxdWVzdDogJywgdGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvaS1idG4nOlxuICAgICAgICAgICAgICAgIC8vT3BlbiBJc3N1ZVxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdPcGVuIGlzc3VlOiAnLCB0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2ZiLWJ0bic6XG4gICAgICAgICAgICAgICAgLy9GZWF0dXJlIEJyYW5jaFxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdjcmVhdGluZyBmZWF0dXJlIGJyYW5jaDogJywgdGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdobW0nKTtcblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9IRUxQRVJTXG5cbiAgICBwcm90ZWN0ZWQgYWRkU2VsZWN0QnRuKCkge1xuICAgICAgICAoPEhUTUxFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuc2VsZWN0ZWRCdG4pKT8uY2xhc3NMaXN0LmFkZChcbiAgICAgICAgICAgICdzZWxlY3RlZCdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVtb3ZlU2VsZWN0ZWRCdG4oKSB7XG4gICAgICAgICg8SFRNTEVsZW1lbnQ+KFxuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5zZWxlY3RlZEJ0bilcbiAgICAgICAgKSk/LmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJyk7XG4gICAgfVxufVxuIiwiPGRpdj5cbiAgICA8bWF0LWNhcmQgY2xhc3M9XCJzb2NpYWwtY2FyZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIUxvYWRpbmdGZWVkICYmIEZlZWRcIj5cbiAgICAgICAgICAgIDwhLS0gQ09NTUVOVEVEIE9VVCBBTk5PVU5DRU1FTlQgQlVUVE9OIC0tPlxuICAgICAgICAgICAgPCEtLSA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJnaC1jYXJkLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gZnhGbGV4PVwiMTUlXCIgY2xhc3M9XCJnaC1pY29uXCIgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgIGNhbXBhaWduXG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjg1JVwiIGNsYXNzPVwiZ2gtY2FyZC1tYWluLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWFpbi1idG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIkNyZWF0ZUFubm91bmNlbWVudCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZSBUZWFtIEFubm91bmNlbWVudFxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZWVkLWhlYWRlci1hY3Rpb25zXCJcbiAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBGZWVkSGVhZGVyQWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRmVlZEhlYWRlckFjdGlvbnM/Lmxlbmd0aCA+IDJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJhY3Rpb24uQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJIYW5kbGVBY3Rpb24oYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24tYnRuLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeExheW91dC5ndC1tZD1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0Lmx0LW1kPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiYWN0aW9uLkljb25cIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uLkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tdGV4dFwiPnt7IGFjdGlvbi5UZXh0IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJGZWVkSGVhZGVyQWN0aW9ucz8ubGVuZ3RoIDw9IDJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJhY3Rpb24uQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJIYW5kbGVBY3Rpb24oYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24tYnRuLWxnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXQuZ3QtbWQ9XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeExheW91dC5sdC1tZD1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImFjdGlvbi5JY29uXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhY3Rpb24uVGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBTS0VMRVRPTiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkxvYWRpbmdGZWVkIHx8ICFGZWVkXCI+XG4gICAgICAgICAgICA8IS0tIENPTU1FTlRFRCBPVVQgU0tFTEVUT04gIEZPUiBBTk5PVU5DRU1FTlQgQlROIC0tPlxuICAgICAgICAgICAgPCEtLSA8ZGl2XG4gICAgICAgICAgICAgICAgaWQ9XCJnaC1jYXJkLXNrZWxldG9uXCJcbiAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxza2VsZXRvbi1hdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnaC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dJY29uXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiXG4gICAgICAgICAgICAgICAgPjwvc2tlbGV0b24tYXZhdGFyPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBmeEZsZXg9XCI4NSVcIiBjbGFzcz1cImdoLWNhcmQtbWFpbi1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxza2VsZXRvbi1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNjBweFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc2tlbGV0b24tYmxvY2s+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuXG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiPlB1bGwgUmVxdWVzdDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+T3BlbiBJc3N1ZTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgIEZlYXR1cmUgQnJhbmNoXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtY2FyZD5cbiAgICA8IS0tIDxtYXQtY2FyZFxuICAgICAgICBjbGFzcz1cInNvY2lhbC1jYXJkIHJlbG9hZFwiXG4gICAgICAgICpuZ0lmPVwiRmVlZENoZWNrXCJcbiAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXG4gICAgPlxuICAgICAgICA8ZGl2PlRoZXJlIGFyZSBuZXcgaXRlbXMgaW4geW91ciBmZWVkLjwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlJlbG9hZEZlZWQoKVwiPlJlbG9hZCBGZWVkPC9idXR0b24+XG4gICAgPC9tYXQtY2FyZD4gLS0+XG48L2Rpdj5cbiJdfQ==
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvZmVlZC1oZWFkZXIvZmVlZC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvZmVlZC1oZWFkZXIvZmVlZC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDMUcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sdUVBQXVFLENBQUM7Ozs7Ozs7Ozs7QUFTdEgsTUFBTSxPQUFPLG1CQUFtQjtJQWtENUIsWUFBc0IsTUFBa0IsRUFBWSxNQUFpQjtRQUEvQyxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqRSxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztRQUM3QiwrQkFBK0I7SUFDbkMsQ0FBQztJQUVNLFFBQVEsS0FBVSxDQUFDO0lBRW5CLFdBQVc7UUFDZCxnRUFBZ0U7SUFDcEUsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsaURBQWlEO1FBQ2pELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLDBCQUEwQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELGdDQUFnQztJQUNoQyw4QkFBOEI7SUFDOUIsZ0RBQWdEO0lBQ2hELGlDQUFpQztJQUNqQyx5QkFBeUI7SUFDekIsbURBQW1EO0lBQ25ELGlDQUFpQztJQUVqQyxJQUFJO0lBRUosc0JBQXNC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LGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQzNDLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxDQUFDOztnSEExTFEsbUJBQW1CO29HQUFuQixtQkFBbUIsNGRDWmhDLG8zSkE0SEE7MkZEaEhhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDSSxpQkFBaUI7eUhBTXBCLHVCQUF1QjtzQkFEN0IsS0FBSzt1QkFBQywyQkFBMkI7Z0JBSTNCLElBQUk7c0JBRFYsS0FBSzt1QkFBQyxNQUFNO2dCQUlOLFNBQVM7c0JBRGYsS0FBSzt1QkFBQyxZQUFZO2dCQUlaLG1CQUFtQjtzQkFEekIsS0FBSzt1QkFBQyx1QkFBdUI7Z0JBSXZCLGVBQWU7c0JBRHJCLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUluQixpQkFBaUI7c0JBRHZCLEtBQUs7dUJBQUMscUJBQXFCO2dCQUlyQixXQUFXO3NCQURqQixLQUFLO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBGZWVkSGVhZGVyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZGlhbG9ncy9mZWVkLWhlYWRlci1kaWFsb2cvZmVlZC1oZWFkZXItZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZXdBcHBsaWNhdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3MvbmV3LWFwcGxpY2F0aW9uLWRpYWxvZy9uZXctYXBwbGljYXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGZWVkSXRlbUFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xuaW1wb3J0IHsgRWFDU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3UtZmVlZC1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mZWVkLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmVlZC1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmVlZEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCdhY3RpdmUtZW52aXJvbm1lbnQtbG9va3VwJylcbiAgICBwdWJsaWMgQWN0aXZlRW52aXJvbm1lbnRMb29rdXA6IHN0cmluZztcblxuICAgIEBJbnB1dCgnZmVlZCcpXG4gICAgcHVibGljIEZlZWQ6IGFueTtcblxuICAgIEBJbnB1dCgnZmVlZC1jaGVjaycpXG4gICAgcHVibGljIEZlZWRDaGVjazogYW55O1xuXG4gICAgQElucHV0KCdzb3VyY2UtY29udHJvbC1sb29rdXAnKVxuICAgIHB1YmxpYyBTb3VyY2VDb250cm9sTG9va3VwOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoJ2hhcy1naC1jb25uZWN0aW9uJylcbiAgICBwdWJsaWMgSGFzR0hDb25uZWN0aW9uOiBib29sZWFuO1xuXG4gICAgQElucHV0KCdmZWVkLWhlYWRlci1hY3Rpb25zJylcbiAgICBwdWJsaWMgRmVlZEhlYWRlckFjdGlvbnM6IEFycmF5PEZlZWRJdGVtQWN0aW9uPjtcblxuICAgIEBJbnB1dCgnbG9hZGluZy1mZWVkJylcbiAgICBwdWJsaWMgTG9hZGluZ0ZlZWQ6IGJvb2xlYW47XG5cbiAgICAvLyBwdWJsaWMgZ2V0IEFjdGl2ZUVudmlyb25tZW50TG9va3VwKCk6IHN0cmluZyB7XG4gICAgLy8gICAgIC8vICBUT0RPOiAgRXZlbnR1YWxseSBzdXBwb3J0IG11bHRpcGxlIGVudmlyb25tZW50c1xuICAgIC8vICAgICBjb25zdCBlbnZMb29rdXBzID0gT2JqZWN0LmtleXModGhpcy5TdGF0ZT8uRWFDPy5FbnZpcm9ubWVudHMgfHwge30pO1xuXG4gICAgLy8gICAgIHJldHVybiBlbnZMb29rdXBzWzBdO1xuICAgIC8vIH1cblxuICAgIC8vIHB1YmxpYyBnZXQgRmVlZEhlYWRlckFjdGlvbnMoKTogQXJyYXk8RmVlZEl0ZW1BY3Rpb24+IHtcbiAgICAvLyAgICAgLy8gY29uc29sZS5sb2coJ0ZlZWRBY3Rpb25zOiAnLCB0aGlzLlN0YXRlPy5GZWVkQWN0aW9ucylcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuU3RhdGU/LkZlZWRBY3Rpb25zO1xuICAgIC8vIH1cblxuICAgIC8vIHB1YmxpYyBnZXQgSGFzR0hDb25uZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIC8vICAgICByZXR1cm4gdGhpcy5TdGF0ZT8uR2l0SHViPy5IYXNDb25uZWN0aW9uO1xuICAgIC8vIH1cblxuICAgIC8vIHB1YmxpYyBnZXQgU3RhdGUoKTogQXBwbGljYXRpb25zRmxvd1N0YXRlIHtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuZWFjU3ZjLlN0YXRlO1xuICAgIC8vIH1cblxuICAgIHB1YmxpYyBNb2RhbEhlYWRlcjogc3RyaW5nO1xuXG4gICAgcHVibGljIFNrZWxldG9uRWZmZWN0OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgc2VsZWN0ZWRCdG46IHN0cmluZztcblxuICAgIHB1YmxpYyB2YWx1ZTogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVhY1N2YzogRWFDU2VydmljZSwgcHJvdGVjdGVkIGRpYWxvZzogTWF0RGlhbG9nKSB7XG4gICAgICAgIHRoaXMuU2tlbGV0b25FZmZlY3QgPSAnd2F2ZSc7XG4gICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRCdG4gPSBcInByLWJ0blwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdmZWVkIGhlYWRlciBhY3Rpb25zOiAnLCB0aGlzLkZlZWRIZWFkZXJBY3Rpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmFkZFNlbGVjdEJ0bigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBDcmVhdGVBbm5vdW5jZW1lbnQoKSB7XG4gICAgICAgIC8vIHRoaXMuTW9kYWxIZWFkZXIgPSBcIkNyZWF0ZSBUZWFtIEFubm91bmNlbWVudFwiO1xuICAgICAgICB0aGlzLk9wZW5GSERpYWxvZygnQW5ub3VuY2VtZW50JywgJ0NyZWF0ZSBUZWFtIEFubm91bmNlbWVudCcpO1xuICAgIH1cblxuICAgIC8vIHB1YmxpYyBDcmVhdGVGZWF0dXJlQnJhbmNoKCl7XG4gICAgLy8gICB0aGlzLnJlbW92ZVNlbGVjdGVkQnRuKCk7XG4gICAgLy8gICB0aGlzLk1vZGFsSGVhZGVyID0gXCJDcmVhdGUgRmVhdHVyZSBCcmFuY2hcIjtcbiAgICAvLyAgIHRoaXMuc2VsZWN0ZWRCdG4gPSBcImZiLWJ0blwiO1xuICAgIC8vICAgdGhpcy5hZGRTZWxlY3RCdG4oKTtcbiAgICAvLyAgIGNvbnNvbGUubG9nKFwiY3JlYXRlIGZlYXR1cmUgYnJhbmNoIHNlbGVjdGVkXCIpO1xuICAgIC8vICAgdGhpcy5PcGVuRkhEaWFsb2coJ2JyYW5jaCcpO1xuXG4gICAgLy8gfVxuXG4gICAgLy8gcHVibGljIE9wZW5Jc3N1ZSgpe1xuICAgIC8vICAgdGhpcy5yZW1vdmVTZWxlY3RlZEJ0bigpO1xuICAgIC8vICAgdGhpcy5Nb2RhbEhlYWRlciA9IFwiT3BlbiBJc3N1ZVwiO1xuICAgIC8vICAgdGhpcy5zZWxlY3RlZEJ0biA9IFwib2ktYnRuXCI7XG4gICAgLy8gICB0aGlzLmFkZFNlbGVjdEJ0bigpO1xuICAgIC8vICAgY29uc29sZS5sb2coXCJvcGVuIGlzc3VlIHNlbGVjdGVkXCIpO1xuICAgIC8vICAgdGhpcy5PcGVuRkhEaWFsb2coJ2lzc3VlJyk7XG5cbiAgICAvLyB9XG5cbiAgICAvLyBwdWJsaWMgQ3JlYXRlUHVsbFJlcXVlc3QoKXtcbiAgICAvLyAgIHRoaXMucmVtb3ZlU2VsZWN0ZWRCdG4oKTtcbiAgICAvLyAgIHRoaXMuTW9kYWxIZWFkZXIgPSBcIkNyZWF0ZSBQdWxsIFJlcXVlc3RcIjtcbiAgICAvLyAgIHRoaXMuc2VsZWN0ZWRCdG4gPSBcInByLWJ0blwiO1xuICAgIC8vICAgdGhpcy5hZGRTZWxlY3RCdG4oKTtcbiAgICAvLyAgIGNvbnNvbGUubG9nKFwiY3JlYXRlIHB1bGwgcmVxdWVzdCBzZWxlY3RlZFwiKTtcbiAgICAvLyAgIHRoaXMuT3BlbkZIRGlhbG9nKCdwdWxsLXJlcXVlc3QnKTtcblxuICAgIC8vIH1cblxuICAgIHB1YmxpYyBDcmVhdGVOZXdBcHAoKSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTmV3QXBwbGljYXRpb25EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgIHdpZHRoOiAnNjAwcHgnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGVudmlyb25tZW50TG9va3VwOiB0aGlzLkFjdGl2ZUVudmlyb25tZW50TG9va3VwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ1RoZSBkaWFsb2cgd2FzIGNsb3NlZCcpO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJyZXN1bHQ6XCIsIHJlc3VsdClcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIEhhbmRsZUFjdGlvbihhY3Rpb246IEZlZWRJdGVtQWN0aW9uKSB7XG4gICAgICAgIGlmIChhY3Rpb24uQWN0aW9uVHlwZSA9PSAnTGluaycpIHtcbiAgICAgICAgICAgIGlmIChhY3Rpb24uQWN0aW9uLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKGFjdGlvbi5BY3Rpb24sICdfYmxhbmsnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBhY3Rpb24uQWN0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbi5BY3Rpb25UeXBlID09ICdNb2RhbCcpIHtcbiAgICAgICAgICAgIHRoaXMuT3BlbkZIRGlhbG9nKGFjdGlvbi5BY3Rpb24sIGFjdGlvbi5UZXh0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBPcGVuRkhEaWFsb2cobW9kYWxUeXBlOiBzdHJpbmcsIG1vZGFsSGVhZGVyOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihGZWVkSGVhZGVyRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICB3aWR0aDogJzYwMHB4JyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZTogbW9kYWxIZWFkZXIsXG4gICAgICAgICAgICAgICAgdHlwZTogbW9kYWxUeXBlLFxuICAgICAgICAgICAgICAgIHNvdXJjZUNvbnRyb2xMb29rdXA6IHRoaXMuU291cmNlQ29udHJvbExvb2t1cFxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuU291cmNlQ29udHJvbExvb2t1cFxuICAgICAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnVGhlIGRpYWxvZyB3YXMgY2xvc2VkJyk7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcInJlc3VsdDpcIiwgcmVzdWx0KVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgUmVsb2FkRmVlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lYWNTdmMuUmVsb2FkRmVlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBSb3V0ZVRvUGF0aChwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBwYXRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBTdWJtaXQoKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdzdWJtaXR0aW5nOiAnLCB0aGlzLnZhbHVlKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLnNlbGVjdGVkQnRuKSB7XG4gICAgICAgICAgICBjYXNlICdwci1idG4nOlxuICAgICAgICAgICAgICAgIC8vUHVsbCByZXF1ZXN0XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ2NyZWF0aW5nIHB1bGwgcmVxdWVzdDogJywgdGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvaS1idG4nOlxuICAgICAgICAgICAgICAgIC8vT3BlbiBJc3N1ZVxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdPcGVuIGlzc3VlOiAnLCB0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2ZiLWJ0bic6XG4gICAgICAgICAgICAgICAgLy9GZWF0dXJlIEJyYW5jaFxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdjcmVhdGluZyBmZWF0dXJlIGJyYW5jaDogJywgdGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdobW0nKTtcblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9IRUxQRVJTXG5cbiAgICBwcm90ZWN0ZWQgYWRkU2VsZWN0QnRuKCkge1xuICAgICAgICAoPEhUTUxFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuc2VsZWN0ZWRCdG4pKT8uY2xhc3NMaXN0LmFkZChcbiAgICAgICAgICAgICdzZWxlY3RlZCdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVtb3ZlU2VsZWN0ZWRCdG4oKSB7XG4gICAgICAgICg8SFRNTEVsZW1lbnQ+KFxuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5zZWxlY3RlZEJ0bilcbiAgICAgICAgKSk/LmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJyk7XG4gICAgfVxufVxuIiwiPGRpdj5cbiAgICA8bWF0LWNhcmQgY2xhc3M9XCJzb2NpYWwtY2FyZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIUxvYWRpbmdGZWVkICYmIEZlZWRcIj5cbiAgICAgICAgICAgIDwhLS0gQ09NTUVOVEVEIE9VVCBBTk5PVU5DRU1FTlQgQlVUVE9OIC0tPlxuICAgICAgICAgICAgPCEtLSA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJnaC1jYXJkLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gZnhGbGV4PVwiMTUlXCIgY2xhc3M9XCJnaC1pY29uXCIgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgIGNhbXBhaWduXG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjg1JVwiIGNsYXNzPVwiZ2gtY2FyZC1tYWluLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWFpbi1idG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIkNyZWF0ZUFubm91bmNlbWVudCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZSBUZWFtIEFubm91bmNlbWVudFxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZWVkLWhlYWRlci1hY3Rpb25zXCJcbiAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBGZWVkSGVhZGVyQWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRmVlZEhlYWRlckFjdGlvbnM/Lmxlbmd0aCA+IDJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJhY3Rpb24uQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJIYW5kbGVBY3Rpb24oYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24tYnRuLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeExheW91dC5ndC1tZD1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0Lmx0LW1kPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiYWN0aW9uLkljb25cIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uLkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tdGV4dFwiPnt7IGFjdGlvbi5UZXh0IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJGZWVkSGVhZGVyQWN0aW9ucz8ubGVuZ3RoIDw9IDJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJhY3Rpb24uQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJIYW5kbGVBY3Rpb24oYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24tYnRuLWxnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXQuZ3QtbWQ9XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeExheW91dC5sdC1tZD1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImFjdGlvbi5JY29uXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhY3Rpb24uVGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBTS0VMRVRPTiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkxvYWRpbmdGZWVkIHx8ICFGZWVkXCI+XG4gICAgICAgICAgICA8IS0tIENPTU1FTlRFRCBPVVQgU0tFTEVUT04gIEZPUiBBTk5PVU5DRU1FTlQgQlROIC0tPlxuICAgICAgICAgICAgPCEtLSA8ZGl2XG4gICAgICAgICAgICAgICAgaWQ9XCJnaC1jYXJkLXNrZWxldG9uXCJcbiAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxza2VsZXRvbi1hdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnaC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dJY29uXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiXG4gICAgICAgICAgICAgICAgPjwvc2tlbGV0b24tYXZhdGFyPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBmeEZsZXg9XCI4NSVcIiBjbGFzcz1cImdoLWNhcmQtbWFpbi1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxza2VsZXRvbi1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNjBweFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc2tlbGV0b24tYmxvY2s+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuXG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiPlB1bGwgUmVxdWVzdDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+T3BlbiBJc3N1ZTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgIEZlYXR1cmUgQnJhbmNoXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtY2FyZD5cbiAgICA8IS0tIDxtYXQtY2FyZFxuICAgICAgICBjbGFzcz1cInNvY2lhbC1jYXJkIHJlbG9hZFwiXG4gICAgICAgICpuZ0lmPVwiRmVlZENoZWNrXCJcbiAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXG4gICAgPlxuICAgICAgICA8ZGl2PlRoZXJlIGFyZSBuZXcgaXRlbXMgaW4geW91ciBmZWVkLjwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlJlbG9hZEZlZWQoKVwiPlJlbG9hZCBGZWVkPC9idXR0b24+XG4gICAgPC9tYXQtY2FyZD4gLS0+XG48L2Rpdj5cbiJdfQ==