@bnsights/bbsf-admin-portal 1.0.35 → 1.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/README.md +4 -0
  2. package/bnsights-bbsf-admin-portal-1.0.36.tgz +0 -0
  3. package/bundles/bnsights-bbsf-admin-portal.umd.js +214 -103
  4. package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
  5. package/esm2015/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.js +1 -7
  6. package/esm2015/lib/Pages/_layout/components/toolbar/toolbar.component.js +3 -1
  7. package/esm2015/lib/Pages/_layout/components/topbar/topbar.component.js +10 -2
  8. package/esm2015/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.js +2 -2
  9. package/esm2015/lib/Pages/license/license/license.component.js +40 -31
  10. package/esm2015/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.js +20 -3
  11. package/esm2015/lib/Pages/localizations/localizations.component.js +4 -4
  12. package/esm2015/lib/Pages/lookups/lookup-group/lookup-group.component.js +2 -1
  13. package/esm2015/lib/Pages/lookups/lookup-item/lookup-item.component.js +8 -2
  14. package/esm2015/lib/Pages/providers/provider/provider.component.js +23 -7
  15. package/esm2015/lib/Pages/publicHolidays/public-holiday/public-holiday.component.js +2 -2
  16. package/esm2015/lib/Pages/shared/Services/ConfigurationsService.service.js +5 -2
  17. package/esm2015/lib/Pages/shared/Services/userService.service.js +4 -1
  18. package/esm2015/lib/Pages/shared/models/UserModels/IdentityModel.js +3 -0
  19. package/fesm2015/bnsights-bbsf-admin-portal.js +212 -104
  20. package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
  21. package/lib/Pages/_layout/components/toolbar/toolbar.component.d.ts +1 -0
  22. package/lib/Pages/_layout/components/topbar/topbar.component.d.ts +4 -1
  23. package/lib/Pages/license/license/license.component.d.ts +3 -0
  24. package/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.d.ts +3 -1
  25. package/lib/Pages/providers/provider/provider.component.d.ts +3 -1
  26. package/lib/Pages/shared/Services/userService.service.d.ts +1 -0
  27. package/lib/Pages/shared/models/UserModels/IdentityModel.d.ts +9 -0
  28. package/package.json +3 -3
  29. package/bnsights-bbsf-admin-portal-1.0.35.tgz +0 -0
@@ -147,7 +147,6 @@ export class ActiveDirectoryAddComponent {
147
147
  this.addTypeOptions.DataSource = this.adTypesList;
148
148
  this.addTypeOptions.SingleSelection = true;
149
149
  this.addTypeOptions.AllowSearchFilter = true;
150
- this.addTypeOptions.Placeholder = "";
151
150
  this.addTypeOptions.IsRequired = true;
152
151
  this.addName = new TextBoxOptions();
153
152
  this.addName.Name = "addName";
@@ -162,7 +161,6 @@ export class ActiveDirectoryAddComponent {
162
161
  this.addPermissionSet.DataSource = this.permissionSetList;
163
162
  this.addPermissionSet.SingleSelection = true;
164
163
  this.addPermissionSet.AllowSearchFilter = true;
165
- this.addPermissionSet.Placeholder = "PermissionSet";
166
164
  this.addPermissionSet.IsRequired = true;
167
165
  this.addLanguage = new DropdownOptions();
168
166
  this.addLanguage.Name = "addLanguage";
@@ -170,7 +168,6 @@ export class ActiveDirectoryAddComponent {
170
168
  this.addLanguage.DataSource = this.languagesList;
171
169
  this.addLanguage.SingleSelection = true;
172
170
  this.addLanguage.AllowSearchFilter = true;
173
- this.addLanguage.Placeholder = "";
174
171
  this.addLanguage.IsRequired = true;
175
172
  this.addWelcomeMsgTemp = new DropdownOptions();
176
173
  this.addWelcomeMsgTemp.Name = "addWelcomeMsgTemp";
@@ -178,14 +175,12 @@ export class ActiveDirectoryAddComponent {
178
175
  this.addWelcomeMsgTemp.DataSource = this.welcomeMsgTempList;
179
176
  this.addWelcomeMsgTemp.SingleSelection = true;
180
177
  this.addWelcomeMsgTemp.AllowSearchFilter = true;
181
- this.addWelcomeMsgTemp.Placeholder = "WelcomeMsgTemplate";
182
178
  this.addFileProvider = new DropdownOptions();
183
179
  this.addFileProvider.Name = "addFileProvider";
184
180
  this.addFileProvider.LabelKey = "FileProvider";
185
181
  this.addFileProvider.DataSource = this.fileProviders;
186
182
  this.addFileProvider.SingleSelection = true;
187
183
  this.addFileProvider.AllowSearchFilter = true;
188
- this.addFileProvider.Placeholder = "WelcomeMsgTemplate";
189
184
  this.addMarkInactive = new ToggleSlideOptions();
190
185
  this.addMarkInactive.Name = "addMarkInactive";
191
186
  this.addMarkInactive.LabelKey = "MarkAsInactive";
@@ -327,7 +322,6 @@ export class ActiveDirectoryAddComponent {
327
322
  this.addWindowsTypeOptions.DataSource = this.adWindowsTypes;
328
323
  this.addWindowsTypeOptions.SingleSelection = true;
329
324
  this.addWindowsTypeOptions.AllowSearchFilter = true;
330
- this.addWindowsTypeOptions.Placeholder = "";
331
325
  this.addWindowsTypeOptions.IsRequired = true;
332
326
  this.addDomain = new TextBoxOptions();
333
327
  this.addDomain.Name = "addDomain";
@@ -537,4 +531,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
537
531
  type: ViewChild,
538
532
  args: ['clientSecretControl', { static: false }]
539
533
  }] } });
540
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS1hZGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9BY3RpdmVEaXJlY3Rvcmllcy9hY3RpdmUtZGlyZWN0b3J5LWFkZC9hY3RpdmUtZGlyZWN0b3J5LWFkZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL0FjdGl2ZURpcmVjdG9yaWVzL2FjdGl2ZS1kaXJlY3RvcnktYWRkL2FjdGl2ZS1kaXJlY3RvcnktYWRkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXRKLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1DQUFtQyxFQUFFLE1BQU0s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Q0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBQ0QsWUFBWTtJQUNaLFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7eUhBL2tCVSwyQkFBMkI7NkdBQTNCLDJCQUEyQiwyckJDdEN4QyxnbmFBaVFBOzRGRDNOYSwyQkFBMkI7a0JBSnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsV0FBVyxFQUFFLHVDQUF1QztpQkFDckQ7b1FBZ0NnRCxhQUFhO3NCQUEzRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBVUksZUFBZTtzQkFBL0QsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ08sb0JBQW9CO3NCQUF6RSxTQUFTO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFrQkgsZUFBZTtzQkFBL0QsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0UsZUFBZTtzQkFBL0QsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ00sbUJBQW1CO3NCQUF2RSxTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRvZ2dsZVNsaWRlT3B0aW9ucywgQ29udHJvbExheW91dCwgRHJvcGRvd25PcHRpb25zLCBJbnB1dFR5cGUsIFRleHRCb3hPcHRpb25zLCBDaGVja0JveE9wdGlvbnMsIEZvcm1PcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0FjdGl2ZURpcmVjdG9yeVNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeUFkZEVkaXRNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvQURNb2RlbHMvQWN0aXZlRGlyZWN0b3J5QWRkRWRpdE1vZGVsJztcclxuaW1wb3J0IHsgQURNYXBwaW5nTW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0FETW9kZWxzL0FETWFwcGluZ01vZGVsJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBCQlNGVHJhbnNsYXRlU2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21ldHJvbmljL2NvcmUvc2VydmljZXMvcGFnZS1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGbGF0VHJlZUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XHJcbmltcG9ydCB7IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSwgTWF0VHJlZUZsYXR0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveCwgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IERyb3Bkb3duTGlzdENvbXBvbmVudCB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzL2xpYi9jb250cm9scy9Ecm9wZG93bkxpc3QvRHJvcGRvd25MaXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRib3hDb21wb25lbnQgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scy9saWIvY29udHJvbHMvVGV4dEJveC9UZXh0Qm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeVR5cGUsIEFjdGl2ZURpcmVjdG9yeVdpbmRvd0Nvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbnN0YW50cyc7XHJcblxyXG5pbnRlcmZhY2UgQUROb2RlIHtcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgY2hpbGRyZW4/OiBBRE5vZGVbXTtcclxuICBkYXRhOiBzdHJpbmc7XHJcbiAgc2VsZWN0YWJsZTogYm9vbGVhbjtcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgc3RhdGU6IGFueTtcclxuICBJbmRleDogbnVtYmVyO1xyXG59XHJcblxyXG4vKiogRmxhdCBub2RlIHdpdGggZXhwYW5kYWJsZSBhbmQgbGV2ZWwgaW5mb3JtYXRpb24gKi9cclxuaW50ZXJmYWNlIEZsYXROb2RlIHtcclxuICBleHBhbmRhYmxlOiBib29sZWFuO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBsZXZlbDogbnVtYmVyO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hY3RpdmUtZGlyZWN0b3J5LWFkZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2ZS1kaXJlY3RvcnktYWRkLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aXZlRGlyZWN0b3J5QWRkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8vd2l6YXJkXHJcbiAgZm9ybXNDb3VudCA9IDI7XHJcbiAgY3VycmVudFN0ZXAkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMSk7XHJcbiAgLy93aXphcmRcclxuICAvL1JlcXVpcmVkIExpc3RzXHJcbiAgcGVybWlzc2lvblNldExpc3Q6IGFueVtdID0gW107XHJcbiAgbGFuZ3VhZ2VzTGlzdDogYW55W10gPSBbXTtcclxuICB3ZWxjb21lTXNnVGVtcExpc3Q6IGFueVtdID0gW107XHJcbiAgYWRUeXBlc0xpc3Q6IGFueVtdID0gW107XHJcbiAgZmlsZVByb3ZpZGVyczogYW55W10gPSBbXTtcclxuICBtYXBwaW5nUHJvcGVydGllc0xpc3Q6IGFueVtdID0gW107XHJcbiAgbWFwcGluZ1R5cGVzTGlzdDogYW55W10gPSBbXTtcclxuICAvL1dpbmRvd3NcclxuICBhZFdpbmRvd3NUeXBlczogYW55W10gPSBbXTs7XHJcblxyXG4gIC8vQWRkIE1vZGVsIENvbnRyb2xzXHJcbiAgYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGFkZEFjdGl2ZURpcmVjdG9yeUZvcm1PcHRpb25zOiBGb3JtT3B0aW9ucztcclxuICBhZGRUeXBlT3B0aW9uczogRHJvcGRvd25PcHRpb25zO1xyXG4gIGFkZE5hbWU6IFRleHRCb3hPcHRpb25zO1xyXG4gIGFkZFBlcm1pc3Npb25TZXQ6IERyb3Bkb3duT3B0aW9ucztcclxuICBhZGRMYW5ndWFnZTogRHJvcGRvd25PcHRpb25zO1xyXG4gIGFkZFdlbGNvbWVNc2dUZW1wOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgYWRkRmlsZVByb3ZpZGVyOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgYWRkTWFya0luYWN0aXZlOiBUb2dnbGVTbGlkZU9wdGlvbnM7XHJcbiAgYWRkRGFpbHlKb2I6IFRvZ2dsZVNsaWRlT3B0aW9ucztcclxuICBhZGRNYXBwaW5nc09wdGlvbnM6IGFueVtdID0gW107XHJcbiAgYWRkTWFwcGluZ3NDb3VudDogbnVtYmVyID0gMDtcclxuICBzZWxlY3RlZFR5cGU6IHN0cmluZztcclxuICBpc0FkZEZvcm1Mb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdhZFR5cGVDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFkVHlwZUNvbnRyb2w6IERyb3Bkb3duTGlzdENvbXBvbmVudDtcclxuXHJcbiAgLy8vLy8vLy8vU3RhcnQgV2luZG93cyBjb250cm9scy8vLy8vXHJcbiAgYWRkRG9tYWluOiBUZXh0Qm94T3B0aW9ucztcclxuICBhZGRTYW1BY2NvdW50OiBUZXh0Qm94T3B0aW9ucztcclxuICBhZGRQYXNzd29yZDogVGV4dEJveE9wdGlvbnM7XHJcbiAgYWRkV2luZG93c1R5cGVPcHRpb25zOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgYWRkU2hvd0J1aWx0SW5Hcm91cHM6IFRvZ2dsZVNsaWRlT3B0aW9ucztcclxuICBhZGRTaG93QnVpbHRJbkdyb3Vwc1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93V2luZG93c0NvbnRyb2xzOiBib29sZWFuO1xyXG4gIEBWaWV3Q2hpbGQoJ2FkRG9tYWluQ29udHJvbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBhZERvbWFpbkNvbnRyb2w6IFRleHRib3hDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnYWRXaW5kb3dzVHlwZUNvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgYWRXaW5kb3dzVHlwZUNvbnRyb2w6IERyb3Bkb3duTGlzdENvbXBvbmVudDtcclxuICAvL1RyZWVcclxuICB2YWxpZGF0aW9uRXJyb3I6IHN0cmluZztcclxuICBlcnJvcklzRm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB0cmVlTm9kZURhdGE6IGFueTtcclxuICB0cmVlQ29udHJvbDogYW55O1xyXG4gIHRyZWVGbGF0dGVuZXI6IGFueTtcclxuICBkYXRhU291cmNlOiBhbnk7XHJcbiAgaGFzQ2hpbGQ6IGFueTtcclxuICB0cmVlRGF0YUxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkID0gLTE7XHJcbiAgaWRlbnRpZmllcjogc3RyaW5nID0gXCJcIjtcclxuICBpZGVudGlmaWVyTmFtZTogc3RyaW5nID0gXCJcIjtcclxuICAgIC8vLy8vLy8vL0VuZCBXaW5kb3dzIGNvbnRyb2xzLy8vLy9cclxuICAvL0F6dXJlXHJcbiAgYWRkVGVuYW50SUQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIGFkZENsaWVudElEOiBUZXh0Qm94T3B0aW9ucztcclxuICBhZGRDbGllbnRTZWNyZXQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIEBWaWV3Q2hpbGQoJ3RlbmFudElEQ29udHJvbCcsIHsgc3RhdGljOiBmYWxzZSB9KSB0ZW5hbnRJRENvbnRyb2w6IFRleHRib3hDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnY2xpZW50SURDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNsaWVudElEQ29udHJvbDogVGV4dGJveENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdjbGllbnRTZWNyZXRDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNsaWVudFNlY3JldENvbnRyb2w6IFRleHRib3hDb21wb25lbnQ7XHJcblxyXG4gIHNob3dBenVyZUNvbnRyb2xzOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZ2VJbmZvU2VydmljZTogUGFnZUluZm9TZXJ2aWNlLCBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgQWN0aXZlRGlyZWN0b3J5U2VydmljZTogQWN0aXZlRGlyZWN0b3J5U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZEFjdGl2ZURpcmVjdG9yeVwiKTtcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnMgPSBbXHJcbiAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvbWVcIiksIHBhdGg6ICcvQWRtaW4vSG9tZScsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBRENvbm5lY3Rpb25cIiksIHBhdGg6ICcvQWRtaW4vQURDb25uZWN0aW9uJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH1cclxuXHJcbiAgICBdO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcbiAgICB0aGlzLmJic2ZUcmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuICAvL0luaXQgcGFnZVxyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgdGhpcy5BY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmxvYWRkcm9wZG93bnMoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgcmV1bHRPYmogPSByZXN1bHQgYXMgYW55XHJcbiAgICAgIHRoaXMucGVybWlzc2lvblNldExpc3QgPSByZXVsdE9iai5wZXJtaXNzaW9uU2V0cztcclxuICAgICAgdGhpcy5hZFR5cGVzTGlzdCA9IHJldWx0T2JqLmFkVHlwZXM7XHJcbiAgICAgIHRoaXMuYWRXaW5kb3dzVHlwZXMgPSByZXVsdE9iai5hZFdpbmRvd3NUeXBlcztcclxuICAgICAgdGhpcy5sYW5ndWFnZXNMaXN0ID0gcmV1bHRPYmoubGFuZ3VhZ2VzO1xyXG4gICAgICB0aGlzLndlbGNvbWVNc2dUZW1wTGlzdCA9IHJldWx0T2JqLnRlbXBsYXRlcztcclxuICAgICAgdGhpcy5maWxlUHJvdmlkZXJzID0gcmV1bHRPYmouZmlsZVByb3ZpZGVycztcclxuXHJcbiAgICAgIHRoaXMubWFwcGluZ1Byb3BlcnRpZXNMaXN0ID0gcmV1bHRPYmoubWFwcGluZ1Byb3BlcnRpZXM7XHJcbiAgICAgIHRoaXMubWFwcGluZ1R5cGVzTGlzdCA9IHJldWx0T2JqLm1hcHBpbmdUeXBlcztcclxuXHJcbiAgICAgIHRoaXMuYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtXHJcbiAgICAgIHRoaXMuYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkQURNb2RlbDtcclxuICAgICAgdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEFkZEFERnVuY3Rpb247XHJcbiAgICAgIHRoaXMuYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMuYWRkQURPblN1Y2Nlc3M7XHJcblxyXG4gICAgICB0aGlzLmFkZFR5cGVPcHRpb25zID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmFkZFR5cGVPcHRpb25zLk5hbWUgPSBcImFkZFR5cGVPcHRpb25zXCJcclxuICAgICAgdGhpcy5hZGRUeXBlT3B0aW9ucy5MYWJlbEtleSA9IFwiVHlwZVwiXHJcbiAgICAgIHRoaXMuYWRkVHlwZU9wdGlvbnMuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWxcclxuICAgICAgdGhpcy5hZGRUeXBlT3B0aW9ucy5EYXRhU291cmNlID0gdGhpcy5hZFR5cGVzTGlzdFxyXG4gICAgICB0aGlzLmFkZFR5cGVPcHRpb25zLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkVHlwZU9wdGlvbnMuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmFkZFR5cGVPcHRpb25zLlBsYWNlaG9sZGVyID0gXCJcIjtcclxuICAgICAgdGhpcy5hZGRUeXBlT3B0aW9ucy5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuYWRkTmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmFkZE5hbWUuTmFtZSA9IFwiYWRkTmFtZVwiO1xyXG4gICAgICB0aGlzLmFkZE5hbWUuTGFiZWxLZXkgPSBcIk5hbWVcIjtcclxuICAgICAgdGhpcy5hZGROYW1lLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5hZGROYW1lLlZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5hZGROYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmFkZE5hbWUuTWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgICAgdGhpcy5hZGRQZXJtaXNzaW9uU2V0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmFkZFBlcm1pc3Npb25TZXQuTmFtZSA9IFwiYWRkUGVybWlzc2lvblNldFwiXHJcbiAgICAgIHRoaXMuYWRkUGVybWlzc2lvblNldC5MYWJlbEtleSA9IFwiUGVybWlzc2lvblNldFwiXHJcbiAgICAgIHRoaXMuYWRkUGVybWlzc2lvblNldC5EYXRhU291cmNlID0gdGhpcy5wZXJtaXNzaW9uU2V0TGlzdFxyXG4gICAgICB0aGlzLmFkZFBlcm1pc3Npb25TZXQuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRQZXJtaXNzaW9uU2V0LkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRQZXJtaXNzaW9uU2V0LlBsYWNlaG9sZGVyID0gXCJQZXJtaXNzaW9uU2V0XCI7XHJcbiAgICAgIHRoaXMuYWRkUGVybWlzc2lvblNldC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuYWRkTGFuZ3VhZ2UgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuYWRkTGFuZ3VhZ2UuTmFtZSA9IFwiYWRkTGFuZ3VhZ2VcIlxyXG4gICAgICB0aGlzLmFkZExhbmd1YWdlLkxhYmVsS2V5ID0gXCJMYW5ndWFnZVwiXHJcbiAgICAgIHRoaXMuYWRkTGFuZ3VhZ2UuRGF0YVNvdXJjZSA9IHRoaXMubGFuZ3VhZ2VzTGlzdFxyXG4gICAgICB0aGlzLmFkZExhbmd1YWdlLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkTGFuZ3VhZ2UuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmFkZExhbmd1YWdlLlBsYWNlaG9sZGVyID0gXCJcIjtcclxuICAgICAgdGhpcy5hZGRMYW5ndWFnZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuYWRkV2VsY29tZU1zZ1RlbXAgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuYWRkV2VsY29tZU1zZ1RlbXAuTmFtZSA9IFwiYWRkV2VsY29tZU1zZ1RlbXBcIlxyXG4gICAgICB0aGlzLmFkZFdlbGNvbWVNc2dUZW1wLkxhYmVsS2V5ID0gXCJXZWxjb21lTXNnVGVtcGxhdGVcIlxyXG4gICAgICB0aGlzLmFkZFdlbGNvbWVNc2dUZW1wLkRhdGFTb3VyY2UgPSB0aGlzLndlbGNvbWVNc2dUZW1wTGlzdFxyXG4gICAgICB0aGlzLmFkZFdlbGNvbWVNc2dUZW1wLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkV2VsY29tZU1zZ1RlbXAuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmFkZFdlbGNvbWVNc2dUZW1wLlBsYWNlaG9sZGVyID0gXCJXZWxjb21lTXNnVGVtcGxhdGVcIjtcclxuXHJcbiAgICAgIHRoaXMuYWRkRmlsZVByb3ZpZGVyID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmFkZEZpbGVQcm92aWRlci5OYW1lID0gXCJhZGRGaWxlUHJvdmlkZXJcIlxyXG4gICAgICB0aGlzLmFkZEZpbGVQcm92aWRlci5MYWJlbEtleSA9IFwiRmlsZVByb3ZpZGVyXCJcclxuICAgICAgdGhpcy5hZGRGaWxlUHJvdmlkZXIuRGF0YVNvdXJjZSA9IHRoaXMuZmlsZVByb3ZpZGVyc1xyXG4gICAgICB0aGlzLmFkZEZpbGVQcm92aWRlci5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICB0aGlzLmFkZEZpbGVQcm92aWRlci5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkRmlsZVByb3ZpZGVyLlBsYWNlaG9sZGVyID0gXCJXZWxjb21lTXNnVGVtcGxhdGVcIjtcclxuXHJcbiAgICAgIHRoaXMuYWRkTWFya0luYWN0aXZlID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmFkZE1hcmtJbmFjdGl2ZS5OYW1lID0gXCJhZGRNYXJrSW5hY3RpdmVcIlxyXG4gICAgICB0aGlzLmFkZE1hcmtJbmFjdGl2ZS5MYWJlbEtleSA9IFwiTWFya0FzSW5hY3RpdmVcIlxyXG4gICAgICB0aGlzLmFkZE1hcmtJbmFjdGl2ZS5WYWx1ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmFkZE1hcmtJbmFjdGl2ZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuXHJcbiAgICAgIHRoaXMuYWRkRGFpbHlKb2IgPSBuZXcgVG9nZ2xlU2xpZGVPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuYWRkRGFpbHlKb2IuTmFtZSA9IFwiYWRkRGFpbHlKb2JcIlxyXG4gICAgICB0aGlzLmFkZERhaWx5Sm9iLkxhYmVsS2V5ID0gXCJBZGRUb0RhaWx5Sm9iXCJcclxuICAgICAgdGhpcy5hZGREYWlseUpvYi5WYWx1ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmFkZERhaWx5Sm9iLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG5cclxuICAgICAgLy9zZXQgQUQgbWFwcGluZ1xyXG4gICAgICBsZXQgZGF0YTogYW55ID0gdGhpcy5nZXRBRE1hcHBpbmdPcHRpb25zKHJldWx0T2JqLmFkTWFwcGluZ3MpO1xyXG4gICAgICB0aGlzLmFkZE1hcHBpbmdzT3B0aW9ucyA9IGRhdGFbMF07XHJcbiAgICAgIHRoaXMuYWRkTWFwcGluZ3NDb3VudCA9IGRhdGFbMV07XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzQWRkRm9ybUxvYWRlZCA9IHRydWU7XHJcbiAgICAgIH0sIDUwKTtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vQWRkIEFjdGl2ZSBkaXJlY3RvcnkgZnVuY3Rpb25zXHJcbiAgZ2V0QWRkQURNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IHJlc3VsdE1vZGVsID0gdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtLnZhbHVlO1xyXG4gICAgLy9jb25zb2xlLmxvZyhSZXN1bHRNb2RlbCk7XHJcbiAgICBsZXQgQWRkTW9kZWw6IEFjdGl2ZURpcmVjdG9yeUFkZEVkaXRNb2RlbCA9IG5ldyBBY3RpdmVEaXJlY3RvcnlBZGRFZGl0TW9kZWwoKTtcclxuICAgIEFkZE1vZGVsLkNvbm5lY3Rpb25OYW1lID0gcmVzdWx0TW9kZWwuYWRkTmFtZTtcclxuICAgIEFkZE1vZGVsLkFEVHlwZUl0ZW1JRF9HVUlEID0gcmVzdWx0TW9kZWwuYWRkVHlwZU9wdGlvbnNcclxuICAgIEFkZE1vZGVsLlBlcm1pc3Npb25TZXRJRCA9IHJlc3VsdE1vZGVsLmFkZFBlcm1pc3Npb25TZXQgIT0gbnVsbCA/IE51bWJlcihyZXN1bHRNb2RlbC5hZGRQZXJtaXNzaW9uU2V0KSA6IG51bGxcclxuICAgIEFkZE1vZGVsLkxhbmdLZXkgPSByZXN1bHRNb2RlbC5hZGRMYW5ndWFnZTtcclxuICAgIEFkZE1vZGVsLldlbGNvbWVUZW1wbGF0ZUlEID0gcmVzdWx0TW9kZWwuYWRkV2VsY29tZU1zZ1RlbXAgIT0gbnVsbCA/IE51bWJlcihyZXN1bHRNb2RlbC5hZGRXZWxjb21lTXNnVGVtcCkgOiBudWxsXHJcbiAgICBBZGRNb2RlbC5JbWFnZXNGaWxlUHJvdmlkZXJOYW1lID0gcmVzdWx0TW9kZWwuYWRkRmlsZVByb3ZpZGVyXHJcbiAgICBBZGRNb2RlbC5NYXJrQXNJbmFjdGl2ZSA9IHJlc3VsdE1vZGVsLmFkZE1hcmtJbmFjdGl2ZVxyXG4gICAgQWRkTW9kZWwuQWRkVG9EYWlseUpvYiA9IHJlc3VsdE1vZGVsLmFkZERhaWx5Sm9iXHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUeXBlID09IEFjdGl2ZURpcmVjdG9yeVR5cGUuV2luZG93cykge1xyXG4gICAgICBBZGRNb2RlbC5JZGVudGlmaWVyID0gdGhpcy5pZGVudGlmaWVyO1xyXG4gICAgICBBZGRNb2RlbC5Eb21haW4gPSByZXN1bHRNb2RlbC5hZGREb21haW47XHJcbiAgICAgIEFkZE1vZGVsLlNhbUFjY291bnQgPSByZXN1bHRNb2RlbC5hZGRTYW1BY2NvdW50O1xyXG4gICAgICBBZGRNb2RlbC5QYXNzd29yZCA9IHJlc3VsdE1vZGVsLmFkZFBhc3N3b3JkO1xyXG4gICAgICBBZGRNb2RlbC5TaG93QnVpbHRJbkdyb3VwcyA9IHJlc3VsdE1vZGVsLmFkZFNob3dCdWlsdEluR3JvdXBzO1xyXG4gICAgICBBZGRNb2RlbC5BRFdpbmRvd3NUeXBlSXRlbUlEX0dVSUQgPSByZXN1bHRNb2RlbC5hZGRXaW5kb3dzVHlwZU9wdGlvbnNcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBBZGRNb2RlbC5UZW5hbnRJRCA9IHJlc3VsdE1vZGVsLmFkZFRlbmFudElEO1xyXG4gICAgICBBZGRNb2RlbC5DbGllbnRJRCA9IHJlc3VsdE1vZGVsLmFkZENsaWVudElEO1xyXG4gICAgICBBZGRNb2RlbC5DbGllbnRTZWNyZXQgPSByZXN1bHRNb2RlbC5hZGRDbGllbnRTZWNyZXQ7XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuYWRkTWFwcGluZ3NDb3VudDsgaisrKSB7XHJcbiAgICAgIGxldCBhZGRNQXBwaW5nVHlwZSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nVHlwZVwiICsgal07XHJcbiAgICAgIGlmIChhZGRNQXBwaW5nVHlwZSA9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIGxldCBlZGl0TUFwcGluZ1Byb3BlcnR5ID0gcmVzdWx0TW9kZWxbXCJBRE1hcHBpbmdQcm9wZXJ0eVwiICsgal07XHJcbiAgICAgIGxldCBlZGl0TUFwcGluZ1Byb3BlcnR5TmFtZSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nUHJvcGVydHlOYW1lXCIgKyBqXTtcclxuXHJcbiAgICAgIGxldCBhZE1BcHBpbmdPYmo6IEFETWFwcGluZ01vZGVsID0gbmV3IEFETWFwcGluZ01vZGVsKCk7XHJcbiAgICAgIGFkTUFwcGluZ09iai5BRE1hcHBpbmdUeXBlSXRlbUlEID0gTnVtYmVyKGFkZE1BcHBpbmdUeXBlKTtcclxuICAgICAgYWRNQXBwaW5nT2JqLkJCU0ZQcm9wZXJ0eU5hbWUgPSBlZGl0TUFwcGluZ1Byb3BlcnR5O1xyXG4gICAgICBhZE1BcHBpbmdPYmouQURQcm9wZXJ0eU5hbWUgPSBlZGl0TUFwcGluZ1Byb3BlcnR5TmFtZTtcclxuICAgICAgbGV0IGFkTUFwcGluZ0luY2x1ZGVJblVwZGF0ZSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nSW5jbHVkZVVwZGF0ZVwiICsgal07XHJcbiAgICAgIGxldCBhZE1BcHBpbmdIaWRkZW5JbmNsdWRlSW5VcGRhdGUgPSByZXN1bHRNb2RlbFtcIkFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGVcIiArIGpdO1xyXG4gICAgICBhZE1BcHBpbmdPYmouSW5jbHVkZUluVXBkYXRlID0gYWRNQXBwaW5nSW5jbHVkZUluVXBkYXRlID09IHVuZGVmaW5lZCA/IGFkTUFwcGluZ0hpZGRlbkluY2x1ZGVJblVwZGF0ZSA6IGFkTUFwcGluZ0luY2x1ZGVJblVwZGF0ZTtcclxuXHJcbiAgICAgIEFkZE1vZGVsLkFETWFwcGluZ3MucHVzaChhZE1BcHBpbmdPYmopO1xyXG4gICAgfVxyXG4gICAgcGFyYW1BcnJheS5wdXNoKEFkZE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH1cclxuICBnZXRBZGRBREZ1bmN0aW9uID0gKGFkZE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLkFjdGl2ZURpcmVjdG9yeVNlcnZpY2UuYWRkQWN0aXZlRGlyZWN0b3J5KGFkZE1vZGVsKVxyXG4gIH1cclxuICBhZGRBRE9uU3VjY2VzcyA9IChyZXN1bHQpID0+IHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL0FkbWluL0FEQ29ubmVjdGlvbiddKTtcclxuICB9XHJcblxyXG4gIC8vTWFwcGluZyBmdW5jdGlvbnNcclxuICBnZXRBRE1hcHBpbmdPcHRpb25zKEFETWFwcGluZ3M6IGFueVtdKSB7XHJcbiAgICBsZXQgQURNYXBwaW5nT3B0aW9uczogYW55W10gPSBbXTtcclxuICAgIGxldCBBRE1hcHBpbmdDb3VudDogbnVtYmVyID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQURNYXBwaW5ncy5sZW5ndGg7IGkrKykge1xyXG5cclxuICAgICAgbGV0IG9iamVjdE1hcHBpbmdPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgbGV0IEFETWFwcGluZ1R5cGUgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIGxldCBzZWxlY3RlZFR5cGUgPSB0aGlzLm1hcHBpbmdUeXBlc0xpc3QuZmlsdGVyKChpdGVtKSA9PiB7IHJldHVybiBpdGVtLmtleSA9PSBBRE1hcHBpbmdzW2ldLmFkTWFwcGluZ1R5cGVJdGVtSUQ7IH0pLm1hcCgoaXRlbSkgPT4gaXRlbS5rZXkpWzBdO1xyXG4gICAgICBBRE1hcHBpbmdUeXBlLk5hbWUgPSBcIkFETWFwcGluZ1R5cGVcIiArIGk7XHJcbiAgICAgIEFETWFwcGluZ1R5cGUuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgQURNYXBwaW5nVHlwZS5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICBBRE1hcHBpbmdUeXBlLlNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZFR5cGU7XHJcbiAgICAgIEFETWFwcGluZ1R5cGUuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWw7XHJcbiAgICAgIEFETWFwcGluZ1R5cGUuRGF0YVNvdXJjZSA9IHRoaXMubWFwcGluZ1R5cGVzTGlzdDtcclxuICAgICAgQURNYXBwaW5nVHlwZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIGxldCBBRE1hcHBpbmdQcm9wZXJ0eSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgbGV0IHNlbGVjdGVkUHJvcGVydHkgPSB0aGlzLm1hcHBpbmdQcm9wZXJ0aWVzTGlzdC5maWx0ZXIoKGl0ZW0pID0+IHsgcmV0dXJuIGl0ZW0ua2V5ID09IEFETWFwcGluZ3NbaV0uYmJzZlByb3BlcnR5TmFtZTsgfSkubWFwKChpdGVtKSA9PiBpdGVtLmtleSlbMF07XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5Lk5hbWUgPSBcIkFETWFwcGluZ1Byb3BlcnR5XCIgKyBpO1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eS5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eS5TZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRQcm9wZXJ0eTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHkuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWw7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5LkRhdGFTb3VyY2UgPSB0aGlzLm1hcHBpbmdQcm9wZXJ0aWVzTGlzdDtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHkuSXNSZXF1aXJlZCA9IHRydWU7XHJcblxyXG5cclxuICAgICAgbGV0IEFETWFwcGluZ1Byb3BlcnR5TmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuTmFtZSA9IFwiQURNYXBwaW5nUHJvcGVydHlOYW1lXCIgKyBpO1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLlZhbHVlID0gQURNYXBwaW5nc1tpXS5hZFByb3BlcnR5TmFtZTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLklzUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5NYXhMZW5ndGggPSAxMDI0O1xyXG5cclxuICAgICAgbGV0IEFETWFwcGluZ0luY2x1ZGVVcGRhdGUgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICAgIEFETWFwcGluZ0luY2x1ZGVVcGRhdGUuTmFtZSA9IFwiQURNYXBwaW5nSW5jbHVkZVVwZGF0ZVwiICsgaTtcclxuICAgICAgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZS5WYWx1ZSA9IEFETWFwcGluZ3NbaV0uaW5jbHVkZUluVXBkYXRlO1xyXG4gICAgICBBRE1hcHBpbmdJbmNsdWRlVXBkYXRlLklzRGlzYWJsZWQgPSB0cnVlO1xyXG5cclxuICAgICAgbGV0IEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZS5OYW1lID0gXCJBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlXCIgKyBpO1xyXG4gICAgICBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlLlZhbHVlID0gQURNYXBwaW5nc1tpXS5pbmNsdWRlSW5VcGRhdGU7XHJcblxyXG4gICAgICBvYmplY3RNYXBwaW5nT3B0aW9ucy5wdXNoKEFETWFwcGluZ1R5cGUsIEFETWFwcGluZ1Byb3BlcnR5LCBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUsIEFETWFwcGluZ0luY2x1ZGVVcGRhdGUsIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUpO1xyXG4gICAgICBBRE1hcHBpbmdPcHRpb25zLnB1c2gob2JqZWN0TWFwcGluZ09wdGlvbnMpO1xyXG4gICAgICBBRE1hcHBpbmdDb3VudCArPSAxO1xyXG5cclxuICAgIH1cclxuICAgIHJldHVybiBbQURNYXBwaW5nT3B0aW9ucywgQURNYXBwaW5nQ291bnRdO1xyXG4gIH1cclxuICBkZWxldGVBRE1hcHBpbmcoZGVsZXRlZEFETUFwcGluZzogYW55KSB7XHJcbiAgICBsZXQgZGVsZXRlZE1hcHBpbmdJbmRleDogbnVtYmVyID0gdGhpcy5hZGRNYXBwaW5nc09wdGlvbnMuaW5kZXhPZihkZWxldGVkQURNQXBwaW5nKTtcclxuICAgIGlmIChkZWxldGVkTWFwcGluZ0luZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLmFkZE1hcHBpbmdzT3B0aW9ucy5zcGxpY2UoZGVsZXRlZE1hcHBpbmdJbmRleCwgMSk7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVsZXRlZEFETUFwcGluZy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHRoaXMuYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybS5yZW1vdmVDb250cm9sKGRlbGV0ZWRBRE1BcHBpbmdbaV0uTmFtZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgYWRkQURNYXBwaW5nKCkge1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy5hZGRNYXBwaW5nc0NvdW50O1xyXG5cclxuICAgIGxldCBvYmplY3RNYXBwaW5nT3B0aW9uczogYW55W10gPSBbXTtcclxuXHJcbiAgICBsZXQgQURNYXBwaW5nVHlwZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgIEFETWFwcGluZ1R5cGUuTmFtZSA9IFwiQURNYXBwaW5nVHlwZVwiICsgaW5kZXg7XHJcbiAgICBBRE1hcHBpbmdUeXBlLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICBBRE1hcHBpbmdUeXBlLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICBBRE1hcHBpbmdUeXBlLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG4gICAgQURNYXBwaW5nVHlwZS5EYXRhU291cmNlID0gdGhpcy5tYXBwaW5nVHlwZXNMaXN0O1xyXG5cclxuICAgIGxldCBBRE1hcHBpbmdQcm9wZXJ0eSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5Lk5hbWUgPSBcIkFETWFwcGluZ1Byb3BlcnR5XCIgKyBpbmRleDtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5LkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eS5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHkuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWw7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eS5EYXRhU291cmNlID0gdGhpcy5tYXBwaW5nUHJvcGVydGllc0xpc3Q7XHJcblxyXG5cclxuICAgIGxldCBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5OYW1lID0gXCJBRE1hcHBpbmdQcm9wZXJ0eU5hbWVcIiArIGluZGV4O1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLklzUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuXHJcbiAgICBsZXQgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZSA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgIEFETWFwcGluZ0luY2x1ZGVVcGRhdGUuTmFtZSA9IFwiQURNYXBwaW5nSW5jbHVkZVVwZGF0ZVwiICsgaW5kZXg7XHJcbiAgICBBRE1hcHBpbmdJbmNsdWRlVXBkYXRlLlZhbHVlID0gdHJ1ZTtcclxuXHJcbiAgICBsZXQgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZS5OYW1lID0gXCJBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlXCIgKyBpbmRleDtcclxuICAgIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG5cclxuICAgIG9iamVjdE1hcHBpbmdPcHRpb25zLnB1c2goQURNYXBwaW5nVHlwZSwgQURNYXBwaW5nUHJvcGVydHksIEFETWFwcGluZ1Byb3BlcnR5TmFtZSwgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZSwgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZSk7XHJcblxyXG4gICAgdGhpcy5hZGRNYXBwaW5nc09wdGlvbnMucHVzaChvYmplY3RNYXBwaW5nT3B0aW9ucyk7XHJcbiAgICB0aGlzLmFkZE1hcHBpbmdzQ291bnQgKz0gMTtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgLy9BRCB3aW5kb3dzIG9uIHR5cGUgY2hhbmdlIChPVS9Hcm91cClcclxuICB3aW5kb3dzVHlwZUNoYW5nZSh0eXBlVmFsdWUpIHtcclxuICAgIGlmICh0eXBlVmFsdWUgPT0gQWN0aXZlRGlyZWN0b3J5V2luZG93Q29ubmVjdGlvblR5cGUuQWN0aXZlRGlyZWN0b3J5R3JvdXApIHtcclxuICAgICAgdGhpcy5hZGRTaG93QnVpbHRJbkdyb3VwcyA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGRTaG93QnVpbHRJbkdyb3Vwcy5OYW1lID0gXCJhZGRTaG93QnVpbHRJbkdyb3Vwc1wiXHJcbiAgICAgIHRoaXMuYWRkU2hvd0J1aWx0SW5Hcm91cHMuTGFiZWxWYWx1ZSA9IFwiU2hvd0J1aWx0SW5Hcm91cHNcIlxyXG4gICAgICB0aGlzLmFkZFNob3dCdWlsdEluR3JvdXBzLkxhYmVsS2V5ID0gXCJTaG93QnVpbHRJbkdyb3Vwc1wiXHJcbiAgICAgIHRoaXMuYWRkU2hvd0J1aWx0SW5Hcm91cHMuVmFsdWUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5hZGRTaG93QnVpbHRJbkdyb3Vwcy5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuXHJcbiAgICAgIHRoaXMuYWRkU2hvd0J1aWx0SW5Hcm91cHNWaXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0ucmVtb3ZlQ29udHJvbChcImFkZFNob3dCdWlsdEluR3JvdXBzXCIpO1xyXG4gICAgICB0aGlzLmFkZFNob3dCdWlsdEluR3JvdXBzVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9BRCBvbiB0eXBlIGNoYW5nZXMgKFdpbmRvd3MvQXp1cmUpXHJcbiAgdHlwZUNoYW5nZSh0eXBlVmFsdWUpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUeXBlID0gdHlwZVZhbHVlO1xyXG4gICAgaWYgKHR5cGVWYWx1ZSA9PSBBY3RpdmVEaXJlY3RvcnlUeXBlLldpbmRvd3MpIHtcclxuICAgICAgdGhpcy5mb3Jtc0NvdW50ID0gMztcclxuICAgICAgLy9SZW1vdmUgQXp1cmUgY29udHJvbHMgaWYgZm91bmRcclxuICAgICAgdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtLnJlbW92ZUNvbnRyb2woXCJhZGRUZW5hbnRJRFwiKTtcclxuICAgICAgdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtLnJlbW92ZUNvbnRyb2woXCJhZGRDbGllbnRJRFwiKTtcclxuICAgICAgdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtLnJlbW92ZUNvbnRyb2woXCJhZGRDbGllbnRTZWNyZXRcIik7XHJcblxyXG4gICAgICAvL0luaXRpYWxpemUgd2luZG93cyBjb250cm9sc1xyXG4gICAgICB0aGlzLmFkZFdpbmRvd3NUeXBlT3B0aW9ucyA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGRXaW5kb3dzVHlwZU9wdGlvbnMuTmFtZSA9IFwiYWRkV2luZG93c1R5cGVPcHRpb25zXCJcclxuICAgICAgdGhpcy5hZGRXaW5kb3dzVHlwZU9wdGlvbnMuTGFiZWxLZXkgPSBcIldpbmRvd3NUeXBlXCJcclxuICAgICAgdGhpcy5hZGRXaW5kb3dzVHlwZU9wdGlvbnMuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWxcclxuICAgICAgdGhpcy5hZGRXaW5kb3dzVHlwZU9wdGlvbnMuRGF0YVNvdXJjZSA9IHRoaXMuYWRXaW5kb3dzVHlwZXNcclxuICAgICAgdGhpcy5hZGRXaW5kb3dzVHlwZU9wdGlvbnMuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRXaW5kb3dzVHlwZU9wdGlvbnMuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmFkZFdpbmRvd3NUeXBlT3B0aW9ucy5QbGFjZWhvbGRlciA9IFwiXCI7XHJcbiAgICAgIHRoaXMuYWRkV2luZG93c1R5cGVPcHRpb25zLklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5hZGREb21haW4gPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGREb21haW4uTmFtZSA9IFwiYWRkRG9tYWluXCI7XHJcbiAgICAgIHRoaXMuYWRkRG9tYWluLkxhYmVsS2V5ID0gXCJEb21haW5cIjtcclxuICAgICAgdGhpcy5hZGREb21haW4uVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB0aGlzLmFkZERvbWFpbi5WYWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuYWRkRG9tYWluLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmFkZERvbWFpbi5NYXhMZW5ndGggPSAyNTY7XHJcblxyXG4gICAgICB0aGlzLmFkZFNhbUFjY291bnQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGRTYW1BY2NvdW50Lk5hbWUgPSBcImFkZFNhbUFjY291bnRcIjtcclxuICAgICAgdGhpcy5hZGRTYW1BY2NvdW50LkxhYmVsS2V5ID0gXCJTYW1BY2NvdW50XCI7XHJcbiAgICAgIHRoaXMuYWRkU2FtQWNjb3VudC5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMuYWRkU2FtQWNjb3VudC5WYWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuYWRkU2FtQWNjb3VudC5NYXhMZW5ndGggPSAyMDtcclxuXHJcbiAgICAgIHRoaXMuYWRkUGFzc3dvcmQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGRQYXNzd29yZC5OYW1lID0gXCJhZGRQYXNzd29yZFwiO1xyXG4gICAgICB0aGlzLmFkZFBhc3N3b3JkLkxhYmVsS2V5ID0gXCJQYXNzd29yZFwiO1xyXG4gICAgICB0aGlzLmFkZFBhc3N3b3JkLlR5cGUgPSBJbnB1dFR5cGUuUGFzc3dvcmQ7XHJcbiAgICAgIHRoaXMuYWRkUGFzc3dvcmQuVmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLmFkZFBhc3N3b3JkLlJlbW92ZURlZmF1bHRQYXNzd29yZFZhbGlkYXRpb24gPSB0cnVlO1xyXG4gICAgICB0aGlzLmFkZFBhc3N3b3JkLk1heExlbmd0aCA9IDQwMDA7XHJcblxyXG4gICAgICB0aGlzLnNob3dBenVyZUNvbnRyb2xzID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2hvd1dpbmRvd3NDb250cm9scyA9IHRydWU7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3Jtc0NvdW50ID0gMjtcclxuICAgICAgLy9SZW1vdmUgd2luZG93cyBjb250cm9scyBpZiBmb3VuZFxyXG4gICAgICB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0ucmVtb3ZlQ29udHJvbChcImFkZERvbWFpblwiKTtcclxuICAgICAgdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtLnJlbW92ZUNvbnRyb2woXCJhZGRTYW1BY2NvdW50XCIpO1xyXG4gICAgICB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0ucmVtb3ZlQ29udHJvbChcImFkZFBhc3N3b3JkXCIpO1xyXG4gICAgICB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0ucmVtb3ZlQ29udHJvbChcImFkZFNob3dCdWlsdEluR3JvdXBzXCIpO1xyXG4gICAgICB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0ucmVtb3ZlQ29udHJvbChcImFkZFdpbmRvd3NUeXBlT3B0aW9uc1wiKTtcclxuXHJcbiAgICAgIHRoaXMuYWRkVGVuYW50SUQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGRUZW5hbnRJRC5OYW1lID0gXCJhZGRUZW5hbnRJRFwiO1xyXG4gICAgICB0aGlzLmFkZFRlbmFudElELkxhYmVsS2V5ID0gXCJUZW5hbnRJRFwiO1xyXG4gICAgICB0aGlzLmFkZFRlbmFudElELlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5hZGRUZW5hbnRJRC5WYWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuYWRkVGVuYW50SUQuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkVGVuYW50SUQuTWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgICAgdGhpcy5hZGRDbGllbnRJRCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmFkZENsaWVudElELk5hbWUgPSBcImFkZENsaWVudElEXCI7XHJcbiAgICAgIHRoaXMuYWRkQ2xpZW50SUQuTGFiZWxLZXkgPSBcIkNsaWVudElEXCI7XHJcbiAgICAgIHRoaXMuYWRkQ2xpZW50SUQuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB0aGlzLmFkZENsaWVudElELlZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5hZGRDbGllbnRJRC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRDbGllbnRJRC5NYXhMZW5ndGggPSAxMDA7XHJcblxyXG4gICAgICB0aGlzLmFkZENsaWVudFNlY3JldCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmFkZENsaWVudFNlY3JldC5OYW1lID0gXCJhZGRDbGllbnRTZWNyZXRcIjtcclxuICAgICAgdGhpcy5hZGRDbGllbnRTZWNyZXQuTGFiZWxLZXkgPSBcIkNsaWVudFNlY3JldFwiO1xyXG4gICAgICB0aGlzLmFkZENsaWVudFNlY3JldC5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMuYWRkQ2xpZW50U2VjcmV0LlZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5hZGRDbGllbnRTZWNyZXQuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkQ2xpZW50U2VjcmV0Lk1heExlbmd0aCA9IDEwMDtcclxuXHJcbiAgICAgIHRoaXMuc2hvd0F6dXJlQ29udHJvbHMgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNob3dXaW5kb3dzQ29udHJvbHMgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vV2l6YXJkIGZ1bmN0aW9uc1xyXG4gIG5leHRTdGVwKCkge1xyXG4gICAgY29uc3QgY3VycmVudFN0ZXAgPSB0aGlzLmN1cnJlbnRTdGVwJC52YWx1ZTtcclxuICAgIGNvbnN0IG5leHRTdGVwID0gY3VycmVudFN0ZXAgKyAxO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtLnZhbHVlO1xyXG5cclxuICAgIC8vQ2hlY2sgcmVxdWlyZWQgZmllbGRzIGZvciBuZXh0IHN0ZXBcclxuICAgIGlmIChjdXJyZW50U3RlcCA9PSAxKSB7XHJcbiAgICAgIGlmIChSZXN1bHRNb2RlbC5hZGRUeXBlT3B0aW9ucykge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVHlwZSA9PSBBY3RpdmVEaXJlY3RvcnlUeXBlLldpbmRvd3MpIHtcclxuICAgICAgICAgIGlmICghUmVzdWx0TW9kZWwuYWRkRG9tYWluIHx8ICFSZXN1bHRNb2RlbC5hZGRXaW5kb3dzVHlwZU9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdGhpcy5hZERvbWFpbkNvbnRyb2wuSXNWYWxpZCgpO1xyXG4gICAgICAgICAgICB0aGlzLmFkV2luZG93c1R5cGVDb250cm9sLklzVmFsaWQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmICghUmVzdWx0TW9kZWwuYWRkVGVuYW50SUQgfHwgIVJlc3VsdE1vZGVsLmFkZENsaWVudElEIHx8ICFSZXN1bHRNb2RlbC5hZGRDbGllbnRTZWNyZXQpIHtcclxuICAgICAgICAgICAgdGhpcy50ZW5hbnRJRENvbnRyb2wuSXNWYWxpZCgpO1xyXG4gICAgICAgICAgICB0aGlzLmNsaWVudElEQ29udHJvbC5Jc1ZhbGlkKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50U2VjcmV0Q29udHJvbC5Jc1ZhbGlkKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hZFR5cGVDb250cm9sLklzVmFsaWQoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFR5cGUgPT0gQWN0aXZlRGlyZWN0b3J5VHlwZS5XaW5kb3dzKSB7XHJcblxyXG4gICAgICBpZiAobmV4dFN0ZXAgPT09IDIgJiYgY3VycmVudFN0ZXAgPT09IDEpIHtcclxuICAgICAgICB0aGlzLnRyZWVEYXRhTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8vaWYgKCF0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0uZ2V0KCdhZGREb21haW4nKS52YWxpZCB8fCAhdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtLmdldCgnYWRkVHlwZU9wdGlvbnMnKS52YWxpZCkge1xyXG4gICAgICAgIC8vICByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICAgICAgY29uc29sZS5sb2coUmVzdWx0TW9kZWwpO1xyXG5cclxuICAgICAgICBsZXQgQWRkTW9kZWw6IEFjdGl2ZURpcmVjdG9yeUFkZEVkaXRNb2RlbCA9IG5ldyBBY3RpdmVEaXJlY3RvcnlBZGRFZGl0TW9kZWwoKTtcclxuICAgICAgICBBZGRNb2RlbC5Db25uZWN0aW9uTmFtZSA9IFJlc3VsdE1vZGVsLmFkZE5hbWU7XHJcbiAgICAgICAgQWRkTW9kZWwuRG9tYWluID0gUmVzdWx0TW9kZWwuYWRkRG9tYWluO1xyXG4gICAgICAgIEFkZE1vZGVsLkFEV2luZG93c1R5cGVJdGVtSURfR1VJRCA9IFJlc3VsdE1vZGVsLmFkZFdpbmRvd3NUeXBlT3B0aW9ucztcclxuICAgICAgICBBZGRNb2RlbC5TYW1BY2NvdW50ID0gUmVzdWx0TW9kZWwuYWRkU2FtQWNjb3VudDtcclxuICAgICAgICBBZGRNb2RlbC5QYXNzd29yZCA9IFJlc3VsdE1vZGVsLmFkZFBhc3N3b3JkO1xyXG4gICAgICAgIEFkZE1vZGVsLlNob3dCdWlsdEluR3JvdXBzID0gUmVzdWx0TW9kZWwuYWRkU2hvd0J1aWx0SW5Hcm91cHM7XHJcblxyXG5cclxuICAgICAgICB0aGlzLkFjdGl2ZURpcmVjdG9yeVNlcnZpY2UuY2hlY2tWYWxpZGF0aW9uYW5kR2V0RGF0YShBZGRNb2RlbCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMsIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgICAgICAgIHZhciBkYXRhID0gcmVzdWx0IGFzIGFueTtcclxuICAgICAgICAgIGlmIChkYXRhLnZhbCkge1xyXG4gICAgICAgICAgICB0aGlzLnRyZWVOb2RlRGF0YSA9IGRhdGEudHJlZURhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JJc0ZvdW5kID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgICAgICAgICBsZXQgX3RyYW5zZm9ybWVyID0gKG5vZGU6IEFETm9kZSwgbGV2ZWw6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBleHBhbmRhYmxlOiAhIW5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogbm9kZS50ZXh0LFxyXG4gICAgICAgICAgICAgICAgbGV2ZWw6IGxldmVsLFxyXG4gICAgICAgICAgICAgICAgaWNvbjogbm9kZS5pY29uLFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0YWJsZTogbm9kZS5zZWxlY3RhYmxlLFxyXG4gICAgICAgICAgICAgICAgSW5kZXg6IG5vZGUuSW5kZXgsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiBub2RlLmRhdGFcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxGbGF0Tm9kZT4oXHJcbiAgICAgICAgICAgICAgbm9kZSA9PiBub2RlLmxldmVsLCBub2RlID0+IG5vZGUuZXhwYW5kYWJsZSk7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKFxyXG4gICAgICAgICAgICAgIF90cmFuc2Zvcm1lciwgbm9kZSA9PiBub2RlLmxldmVsLCBub2RlID0+IG5vZGUuZXhwYW5kYWJsZSwgbm9kZSA9PiBub2RlLmNoaWxkcmVuKTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSh0aGlzLnRyZWVDb250cm9sLCB0aGlzLnRyZWVGbGF0dGVuZXIpO1xyXG4gICAgICAgICAgICBsZXQganNvbkRhdGEgPSBKU09OLnBhcnNlKHRoaXMudHJlZU5vZGVEYXRhKTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBqc29uRGF0YTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaGFzQ2hpbGQgPSAoXzogbnVtYmVyLCBub2RlOiBGbGF0Tm9kZSkgPT4gbm9kZS5leHBhbmRhYmxlO1xyXG4gICAgICAgICAgICB0aGlzLnRyZWVEYXRhTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFN0ZXAkLm5leHQobmV4dFN0ZXApO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvciA9IGRhdGEuZXJyb3I7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JJc0ZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeUVycm9yTWVzc2FnZSgpO1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9mb3Jtc1xyXG4gICAgICAgIC8vIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9mb3JtLXZhbGlkYXRpb25cclxuXHJcbiAgICAgICAgLy8gdmFsaWRhdGUgdGhlIGZvcm0gYW5kIHVzZSBiZWxvdyBmdW5jdGlvbiB0byBzdG9wIHRoZSB3aXphcmQncyBzdGVwXHJcbiAgICAgICAgLy8gd2l6YXJkT2JqLnN0b3AoKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5pZGVudGlmaWVyID09IFwiXCIgfHwgdGhpcy5pZGVudGlmaWVyID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlXYXJuaW5nTWVzc2FnZSh0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJWQUxfQXRMZWFzdE9uZUlzUmVxdWlyZWRcIikpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYWRkTmFtZS5WYWx1ZSA9IHRoaXMuaWRlbnRpZmllck5hbWUgKyBcIiBjb25uZWN0aW9uXCI7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRTdGVwJC5uZXh0KG5leHRTdGVwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRTdGVwJC5uZXh0KG5leHRTdGVwKTtcclxuICAgIH1cclxuICB9O1xyXG4gIHByZXZTdGVwKCkge1xyXG4gICAgbGV0IGN1cnJlbnRTdGVwID0gdGhpcy5jdXJyZW50U3RlcCQudmFsdWU7XHJcbiAgICBsZXQgcHJldlN0ZXAgPSB0aGlzLmN1cnJlbnRTdGVwJC52YWx1ZSAtIDE7XHJcbiAgICBpZiAocHJldlN0ZXAgPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jdXJyZW50U3RlcCQubmV4dChwcmV2U3RlcCk7XHJcbiAgfVxyXG5cclxuICBzZXRJZGVudGlmaWVyKG9iajogTWF0Q2hlY2tib3hDaGFuZ2UsIHNlbGVjdGVkTm9kZTogQUROb2RlKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWROb2RlLkluZGV4O1xyXG4gICAgaWYgKG9iai5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuaWRlbnRpZmllciA9IHNlbGVjdGVkTm9kZS5kYXRhO1xyXG4gICAgICB0aGlzLmlkZW50aWZpZXJOYW1lID0gc2VsZWN0ZWROb2RlLnRleHQ7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5pZGVudGlmaWVyID0gXCJcIjtcclxuICAgICAgdGhpcy5pZGVudGlmaWVyTmFtZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vT24gZGVzdHJveVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcbn1cclxuXHJcbiIsIlxyXG5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJzdGVwcGVyIHN0ZXBwZXItcGlsbHMgc3RlcHBlci1jb2x1bW4gZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgteGwtcm93IGZsZXgtcm93LWZsdWlkIFwiIGlkPVwia3RfY3JlYXRlX2FjY291bnRfc3RlcHBlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHJvdW5kZWQganVzdGlmeS1jb250ZW50LXhsLXN0YXJ0IGZsZXgtcm93LWF1dG8gbWUtOSBjYXJkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHgtNiBweC1sZy0xMCBweC14eGwtMTUgcHktMjBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcHBlci1uYXZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwcGVyLWl0ZW1cIiBbbmdDbGFzc109XCJ7Y3VycmVudDogY3VycmVudFN0ZXAkLnZhbHVlID09PSAxIH1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXBwZXItbGluZSB3LTQwcHhcIj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwcGVyLWljb24gdy00MHB4IGgtNDBweFwiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwic3RlcHBlci1jaGVjayBmYXMgZmEtY2hlY2tcIj48L2k+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGVwcGVyLW51bWJlclwiPjE8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXBwZXItbGFiZWxcIj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJzdGVwcGVyLXRpdGxlXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWN0aXZlRGlyZWN0b3J5XCIpfX08L2gzPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcHBlci1kZXNjIGZ3LWJvbGRcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3RpdmVEaXJlY3RvcnlfVGFiMU5vdGVcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93V2luZG93c0NvbnRyb2xzXCIgY2xhc3M9XCJzdGVwcGVyLWl0ZW1cIiBbbmdDbGFzc109XCJ7Y3VycmVudDogY3VycmVudFN0ZXAkLnZhbHVlID09PSAyICYmIHNob3dXaW5kb3dzQ29udHJvbHN9XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwcGVyLWxpbmUgdy00MHB4XCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcHBlci1pY29uIHctNDBweCBoLTQwcHhcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cInN0ZXBwZXItY2hlY2sgZmFzIGZhLWNoZWNrXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RlcHBlci1udW1iZXJcIj4yPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwcGVyLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzPVwic3RlcHBlci10aXRsZVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2ZURpcmVjdG9yeV9TZWxlY3RDb250YWluZXJcIil9fTwvaDM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXBwZXItZGVzYyBmdy1ib2xkXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWN0aXZlRGlyZWN0b3J5X1RhYjJOb3RlXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcHBlci1pdGVtXCIgW25nQ2xhc3NdPVwie2N1cnJlbnQ6IChjdXJyZW50U3RlcCQudmFsdWUgPT09IGZvcm1zQ291bnQgKSB9XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwcGVyLWxpbmUgdy00MHB4XCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcHBlci1pY29uIHctNDBweCBoLTQwcHhcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cInN0ZXBwZXItY2hlY2sgZmFzIGZhLWNoZWNrXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RlcHBlci1udW1iZXJcIj57e2Zvcm1zQ291bnR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcHBlci1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzcz1cInN0ZXBwZXItdGl0bGVcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJPcHRpb25zXCIpfX08L2gzPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwcGVyLWRlc2MgZnctYm9sZFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2ZURpcmVjdG9yeV9UYWIzTm90ZVwiKX19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBkLWZsZXggZmxleC1yb3ctZmx1aWQgZmxleC1jZW50ZXIgcm91bmRlZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicC0yMCB3LTEwMCBjYXJkLWJvZHlcIiAqbmdJZj1cImlzQWRkRm9ybUxvYWRlZFwiPlxyXG4gICAgICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybU9wdGlvbnNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJyZW50XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCQudmFsdWUgPT09IDFcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0ICNhZFR5cGVDb250cm9sIFtvcHRpb25zXT1cImFkZFR5cGVPcHRpb25zXCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIiAoT25DaGFuZ2UpPVwidHlwZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93V2luZG93c0NvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgI2FkV2luZG93c1R5cGVDb250cm9sIFtvcHRpb25zXT1cImFkZFdpbmRvd3NUeXBlT3B0aW9uc1wiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCIgKE9uQ2hhbmdlKT1cIndpbmRvd3NUeXBlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCAjYWREb21haW5Db250cm9sIFtvcHRpb25zXT1cImFkZERvbWFpblwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JJc0ZvdW5kXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPnt7dmFsaWRhdGlvbkVycm9yfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJhZGRTYW1BY2NvdW50XCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiYWRkUGFzc3dvcmRcIiBbZ3JvdXBdPVwiYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItMTBcIiAqbmdJZj1cImFkZFNob3dCdWlsdEluR3JvdXBzVmlzaWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1Ub2dnbGVzbGlkZSBbb3B0aW9uc109XCJhZGRTaG93QnVpbHRJbkdyb3Vwc1wiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvQkJTRi1Ub2dnbGVzbGlkZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93QXp1cmVDb250cm9sc1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCAjdGVuYW50SURDb250cm9sIFtvcHRpb25zXT1cImFkZFRlbmFudElEXCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggI2NsaWVudElEQ29udHJvbCBbb3B0aW9uc109XCJhZGRDbGllbnRJRFwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94ICNjbGllbnRTZWNyZXRDb250cm9sIFtvcHRpb25zXT1cImFkZENsaWVudFNlY3JldFwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAkLnZhbHVlID09PSAyICYmIHNob3dXaW5kb3dzQ29udHJvbHNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGlkPVwidHJlZURhdGFDb250YWluZXJcIiAqbmdJZj1cInRyZWVEYXRhTG9hZGVkXCI+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0tLS0tLS1IZWxsbGxsbGxsbGxsbGxsbGxsbGxvLS0tLS0tLS0tLT5cclxuICAgICAgICAgICAgICAgIDxtYXQtdHJlZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgW3RyZWVDb250cm9sXT1cInRyZWVDb250cm9sXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gVGhpcyBpcyB0aGUgdHJlZSBub2RlIHRlbXBsYXRlIGZvciBsZWFmIG5vZGVzIC0tPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LXRyZWUtbm9kZSAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZTtcIiBtYXRUcmVlTm9kZVBhZGRpbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSB1c2UgYSBkaXNhYmxlZCBidXR0b24gdG8gcHJvdmlkZSBwYWRkaW5nIGZvciB0cmVlIGxlYWYgLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY2xhc3M9XCJjaGVja2xpc3QtbGVhZi1ub2RlXCIgW2NoZWNrZWRdPVwic2VsZWN0ZWQgPT09IG5vZGUuSW5kZXhcIiAoY2hhbmdlKT1cInNldElkZW50aWZpZXIoJGV2ZW50LG5vZGUpXCIgW2Rpc2FibGVkXT1cIm5vZGUuc2VsZWN0YWJsZT9mYWxzZTp0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7e25vZGUubmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LXRyZWUtbm9kZT5cclxuICAgICAgICAgICAgICAgICAgPCEtLSBUaGlzIGlzIHRoZSB0cmVlIG5vZGUgdGVtcGxhdGUgZm9yIGV4cGFuZGFibGUgbm9kZXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtdHJlZS1ub2RlICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlO3doZW46IGhhc0NoaWxkXCIgbWF0VHJlZU5vZGVQYWRkaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBtYXRUcmVlTm9kZVRvZ2dsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInVG9nZ2xlICcgKyBub2RlLm5hbWVcIiBjbGFzcz1cImJ0biBidG4taWNvbiBidG4tYmctbGlnaHQgYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5IGJ0bi1zbSBtZS0xIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJ0cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpXCIgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1kb3duXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhdHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKVwiIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tcmlnaHRcIj48L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggW2Rpc2FibGVkXT1cIm5vZGUuc2VsZWN0YWJsZT9mYWxzZTp0cnVlXCI+e3tub2RlLm5hbWV9fTwvbWF0LWNoZWNrYm94PlxyXG5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtdHJlZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAkLnZhbHVlID09PSBmb3Jtc0NvdW50XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiYWRkTmFtZVwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImFkZFBlcm1pc3Npb25TZXRcIiBbZ3JvdXBdPVwiYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImFkZExhbmd1YWdlXCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJhZGRXZWxjb21lTXNnVGVtcFwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiYWRkRmlsZVByb3ZpZGVyXCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRvZ2dsZXNsaWRlIFtvcHRpb25zXT1cImFkZE1hcmtJbmFjdGl2ZVwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8L0JCU0YtVG9nZ2xlc2xpZGU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRvZ2dsZXNsaWRlIFtvcHRpb25zXT1cImFkZERhaWx5Sm9iXCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwvQkJTRi1Ub2dnbGVzbGlkZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBiZWdpbjo6VGFibGUgLS0+XHJcbiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlciB0YWJsZS13LWNvbnRyb2xcIj5cclxuICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlR5cGVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlByb3BlcnR5XCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBRFByb3BlcnR5XCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJJbmNsdWRlSW5VcGRhdGVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy01MHB4XCI+PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBhZGRNYXBwaW5nc09wdGlvbnM7bGV0IGk9aW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJvcHRpb25bMF1cIiBbZ3JvdXBdPVwiYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cIm9wdGlvblsxXVwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIm9wdGlvblsyXVwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwib3B0aW9uWzNdXCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tSGlkZGVuIGluY2x1ZGUgaW4gdXBkYXRlIHZhbHVlLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwib3B0aW9uWzRdXCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIiBbaGlkZGVuXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJidG4gYnRuLWljb24gYnRuLWxpZ2h0LWRhbmdlclwiIChjbGljayk9XCJkZWxldGVBRE1hcHBpbmcob3B0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiIGZhIGZhLXRyYXNoIGhpZGRlblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInctMTAwIGJ0biBidG4tc3VjY2Vzc1wiIChjbGljayk9XCJhZGRBRE1hcHBpbmcoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZE5ld1JlY29yZFwiKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXN0YWNrIHB0LTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci0yXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwJC52YWx1ZSAhPT0gMVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxnIGJ0bi1saWdodC1wcmltYXJ5IG1lLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJldlN0ZXAoKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2My5zdmcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi00IG1lLTFcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlByZXZpb3VzXCIpfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwJC52YWx1ZSAhPT0gZm9ybXNDb3VudFwiPlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGcgYnRuLXByaW1hcnkgbWUtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuZXh0U3RlcCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5kaWNhdG9yLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwJC52YWx1ZSA8IGZvcm1zQ291bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5leHRcIil9fSB7eyBcIiBcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjQuc3ZnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTMgbXMtMiBtZS0wXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAkLnZhbHVlID09PSBmb3Jtc0NvdW50XCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLWxnIGJ0bi1wcmltYXJ5IG1lLTNcIj5cclxuICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlN1Ym1pdFwiKX19XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvQkJTRi1Gb3JtPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcblxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
534
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS1hZGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9BY3RpdmVEaXJlY3Rvcmllcy9hY3RpdmUtZGlyZWN0b3J5LWFkZC9hY3RpdmUtZGlyZWN0b3J5LWFkZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL0FjdGl2ZURpcmVjdG9yaWVzL2FjdGl2ZS1kaXJlY3RvcnktYWRkL2FjdGl2ZS1kaXJlY3RvcnktYWRkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXRKLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1DQUFtQyxFQUFFLE1BQU0s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QUNyRDtvUUFnQ2dELGFBQWE7c0JBQTNELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFVSSxlQUFlO3NCQUEvRCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDTyxvQkFBb0I7c0JBQXpFLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQWtCSCxlQUFlO3NCQUEvRCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRSxlQUFlO3NCQUEvRCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDTSxtQkFBbUI7c0JBQXZFLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVG9nZ2xlU2xpZGVPcHRpb25zLCBDb250cm9sTGF5b3V0LCBEcm9wZG93bk9wdGlvbnMsIElucHV0VHlwZSwgVGV4dEJveE9wdGlvbnMsIENoZWNrQm94T3B0aW9ucywgRm9ybU9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvU2VydmljZXMvQWN0aXZlRGlyZWN0b3J5U2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aXZlRGlyZWN0b3J5QWRkRWRpdE1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9BRE1vZGVscy9BY3RpdmVEaXJlY3RvcnlBZGRFZGl0TW9kZWwnO1xyXG5pbXBvcnQgeyBBRE1hcHBpbmdNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvQURNb2RlbHMvQURNYXBwaW5nTW9kZWwnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UsIEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fbWV0cm9uaWMvY29yZS9zZXJ2aWNlcy9wYWdlLWluZm8uc2VydmljZSc7XHJcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcclxuaW1wb3J0IHsgTWF0VHJlZUZsYXREYXRhU291cmNlLCBNYXRUcmVlRmxhdHRlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94LCBNYXRDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgRHJvcGRvd25MaXN0Q29tcG9uZW50IH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMvbGliL2NvbnRyb2xzL0Ryb3Bkb3duTGlzdC9Ecm9wZG93bkxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGJveENvbXBvbmVudCB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzL2xpYi9jb250cm9scy9UZXh0Qm94L1RleHRCb3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWN0aXZlRGlyZWN0b3J5VHlwZSwgQWN0aXZlRGlyZWN0b3J5V2luZG93Q29ubmVjdGlvblR5cGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzJztcclxuXHJcbmludGVyZmFjZSBBRE5vZGUge1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBjaGlsZHJlbj86IEFETm9kZVtdO1xyXG4gIGRhdGE6IHN0cmluZztcclxuICBzZWxlY3RhYmxlOiBib29sZWFuO1xyXG4gIGljb246IHN0cmluZztcclxuICBzdGF0ZTogYW55O1xyXG4gIEluZGV4OiBudW1iZXI7XHJcbn1cclxuXHJcbi8qKiBGbGF0IG5vZGUgd2l0aCBleHBhbmRhYmxlIGFuZCBsZXZlbCBpbmZvcm1hdGlvbiAqL1xyXG5pbnRlcmZhY2UgRmxhdE5vZGUge1xyXG4gIGV4cGFuZGFibGU6IGJvb2xlYW47XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGxldmVsOiBudW1iZXI7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFjdGl2ZS1kaXJlY3RvcnktYWRkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aXZlLWRpcmVjdG9yeS1hZGQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVEaXJlY3RvcnlBZGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLy93aXphcmRcclxuICBmb3Jtc0NvdW50ID0gMjtcclxuICBjdXJyZW50U3RlcCQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgxKTtcclxuICAvL3dpemFyZFxyXG4gIC8vUmVxdWlyZWQgTGlzdHNcclxuICBwZXJtaXNzaW9uU2V0TGlzdDogYW55W10gPSBbXTtcclxuICBsYW5ndWFnZXNMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIHdlbGNvbWVNc2dUZW1wTGlzdDogYW55W10gPSBbXTtcclxuICBhZFR5cGVzTGlzdDogYW55W10gPSBbXTtcclxuICBmaWxlUHJvdmlkZXJzOiBhbnlbXSA9IFtdO1xyXG4gIG1hcHBpbmdQcm9wZXJ0aWVzTGlzdDogYW55W10gPSBbXTtcclxuICBtYXBwaW5nVHlwZXNMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIC8vV2luZG93c1xyXG4gIGFkV2luZG93c1R5cGVzOiBhbnlbXSA9IFtdOztcclxuXHJcbiAgLy9BZGQgTW9kZWwgQ29udHJvbHNcclxuICBhZGRBY3RpdmVEaXJlY3RvcnlGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zO1xyXG4gIGFkZFR5cGVPcHRpb25zOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgYWRkTmFtZTogVGV4dEJveE9wdGlvbnM7XHJcbiAgYWRkUGVybWlzc2lvblNldDogRHJvcGRvd25PcHRpb25zO1xyXG4gIGFkZExhbmd1YWdlOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgYWRkV2VsY29tZU1zZ1RlbXA6IERyb3Bkb3duT3B0aW9ucztcclxuICBhZGRGaWxlUHJvdmlkZXI6IERyb3Bkb3duT3B0aW9ucztcclxuICBhZGRNYXJrSW5hY3RpdmU6IFRvZ2dsZVNsaWRlT3B0aW9ucztcclxuICBhZGREYWlseUpvYjogVG9nZ2xlU2xpZGVPcHRpb25zO1xyXG4gIGFkZE1hcHBpbmdzT3B0aW9uczogYW55W10gPSBbXTtcclxuICBhZGRNYXBwaW5nc0NvdW50OiBudW1iZXIgPSAwO1xyXG4gIHNlbGVjdGVkVHlwZTogc3RyaW5nO1xyXG4gIGlzQWRkRm9ybUxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ2FkVHlwZUNvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgYWRUeXBlQ29udHJvbDogRHJvcGRvd25MaXN0Q29tcG9uZW50O1xyXG5cclxuICAvLy8vLy8vLy9TdGFydCBXaW5kb3dzIGNvbnRyb2xzLy8vLy9cclxuICBhZGREb21haW46IFRleHRCb3hPcHRpb25zO1xyXG4gIGFkZFNhbUFjY291bnQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIGFkZFBhc3N3b3JkOiBUZXh0Qm94T3B0aW9ucztcclxuICBhZGRXaW5kb3dzVHlwZU9wdGlvbnM6IERyb3Bkb3duT3B0aW9ucztcclxuICBhZGRTaG93QnVpbHRJbkdyb3VwczogVG9nZ2xlU2xpZGVPcHRpb25zO1xyXG4gIGFkZFNob3dCdWlsdEluR3JvdXBzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dXaW5kb3dzQ29udHJvbHM6IGJvb2xlYW47XHJcbiAgQFZpZXdDaGlsZCgnYWREb21haW5Db250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFkRG9tYWluQ29udHJvbDogVGV4dGJveENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdhZFdpbmRvd3NUeXBlQ29udHJvbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBhZFdpbmRvd3NUeXBlQ29udHJvbDogRHJvcGRvd25MaXN0Q29tcG9uZW50O1xyXG4gIC8vVHJlZVxyXG4gIHZhbGlkYXRpb25FcnJvcjogc3RyaW5nO1xyXG4gIGVycm9ySXNGb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRyZWVOb2RlRGF0YTogYW55O1xyXG4gIHRyZWVDb250cm9sOiBhbnk7XHJcbiAgdHJlZUZsYXR0ZW5lcjogYW55O1xyXG4gIGRhdGFTb3VyY2U6IGFueTtcclxuICBoYXNDaGlsZDogYW55O1xyXG4gIHRyZWVEYXRhTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWQgPSAtMTtcclxuICBpZGVudGlmaWVyOiBzdHJpbmcgPSBcIlwiO1xyXG4gIGlkZW50aWZpZXJOYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgLy8vLy8vLy8vRW5kIFdpbmRvd3MgY29udHJvbHMvLy8vL1xyXG4gIC8vQXp1cmVcclxuICBhZGRUZW5hbnRJRDogVGV4dEJveE9wdGlvbnM7XHJcbiAgYWRkQ2xpZW50SUQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIGFkZENsaWVudFNlY3JldDogVGV4dEJveE9wdGlvbnM7XHJcbiAgQFZpZXdDaGlsZCgndGVuYW50SURDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIHRlbmFudElEQ29udHJvbDogVGV4dGJveENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdjbGllbnRJRENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgY2xpZW50SURDb250cm9sOiBUZXh0Ym94Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2NsaWVudFNlY3JldENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgY2xpZW50U2VjcmV0Q29udHJvbDogVGV4dGJveENvbXBvbmVudDtcclxuXHJcbiAgc2hvd0F6dXJlQ29udHJvbHM6IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGJic2ZUcmFuc2xhdGVTZXJ2aWNlOiBCQlNGVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlOiBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkQWN0aXZlRGlyZWN0b3J5XCIpO1xyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG9tZVwiKSwgcGF0aDogJy9BZG1pbi9Ib21lJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFEQ29ubmVjdGlvblwiKSwgcGF0aDogJy9BZG1pbi9BRENvbm5lY3Rpb24nLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG5cclxuICAgIF07XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgIHRoaXMuYmJzZlRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfSlcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuICB9XHJcblxyXG4gIC8vSW5pdCBwYWdlXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLkFjdGl2ZURpcmVjdG9yeVNlcnZpY2UubG9hZGRyb3Bkb3ducygpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIGxldCByZXVsdE9iaiA9IHJlc3VsdCBhcyBhbnlcclxuICAgICAgdGhpcy5wZXJtaXNzaW9uU2V0TGlzdCA9IHJldWx0T2JqLnBlcm1pc3Npb25TZXRzO1xyXG4gICAgICB0aGlzLmFkVHlwZXNMaXN0ID0gcmV1bHRPYmouYWRUeXBlcztcclxuICAgICAgdGhpcy5hZFdpbmRvd3NUeXBlcyA9IHJldWx0T2JqLmFkV2luZG93c1R5cGVzO1xyXG4gICAgICB0aGlzLmxhbmd1YWdlc0xpc3QgPSByZXVsdE9iai5sYW5ndWFnZXM7XHJcbiAgICAgIHRoaXMud2VsY29tZU1zZ1RlbXBMaXN0ID0gcmV1bHRPYmoudGVtcGxhdGVzO1xyXG4gICAgICB0aGlzLmZpbGVQcm92aWRlcnMgPSByZXVsdE9iai5maWxlUHJvdmlkZXJzO1xyXG5cclxuICAgICAgdGhpcy5tYXBwaW5nUHJvcGVydGllc0xpc3QgPSByZXVsdE9iai5tYXBwaW5nUHJvcGVydGllcztcclxuICAgICAgdGhpcy5tYXBwaW5nVHlwZXNMaXN0ID0gcmV1bHRPYmoubWFwcGluZ1R5cGVzO1xyXG5cclxuICAgICAgdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICAgIHRoaXMuYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cclxuICAgICAgdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRBRE1vZGVsO1xyXG4gICAgICB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm1PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkQURGdW5jdGlvbjtcclxuICAgICAgdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucy5PblN1Y2Nlc3NIYW5kbGVyID0gdGhpcy5hZGRBRE9uU3VjY2VzcztcclxuXHJcbiAgICAgIHRoaXMuYWRkVHlwZU9wdGlvbnMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuYWRkVHlwZU9wdGlvbnMuTmFtZSA9IFwiYWRkVHlwZU9wdGlvbnNcIlxyXG4gICAgICB0aGlzLmFkZFR5cGVPcHRpb25zLkxhYmVsS2V5ID0gXCJUeXBlXCJcclxuICAgICAgdGhpcy5hZGRUeXBlT3B0aW9ucy5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbFxyXG4gICAgICB0aGlzLmFkZFR5cGVPcHRpb25zLkRhdGFTb3VyY2UgPSB0aGlzLmFkVHlwZXNMaXN0XHJcbiAgICAgIHRoaXMuYWRkVHlwZU9wdGlvbnMuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRUeXBlT3B0aW9ucy5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkVHlwZU9wdGlvbnMuSXNSZXF1aXJlZCA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmFkZE5hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGROYW1lLk5hbWUgPSBcImFkZE5hbWVcIjtcclxuICAgICAgdGhpcy5hZGROYW1lLkxhYmVsS2V5ID0gXCJOYW1lXCI7XHJcbiAgICAgIHRoaXMuYWRkTmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMuYWRkTmFtZS5WYWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuYWRkTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGROYW1lLk1heExlbmd0aCA9IDEwMDtcclxuXHJcbiAgICAgIHRoaXMuYWRkUGVybWlzc2lvblNldCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGRQZXJtaXNzaW9uU2V0Lk5hbWUgPSBcImFkZFBlcm1pc3Npb25TZXRcIlxyXG4gICAgICB0aGlzLmFkZFBlcm1pc3Npb25TZXQuTGFiZWxLZXkgPSBcIlBlcm1pc3Npb25TZXRcIlxyXG4gICAgICB0aGlzLmFkZFBlcm1pc3Npb25TZXQuRGF0YVNvdXJjZSA9IHRoaXMucGVybWlzc2lvblNldExpc3RcclxuICAgICAgdGhpcy5hZGRQZXJtaXNzaW9uU2V0LlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkUGVybWlzc2lvblNldC5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkUGVybWlzc2lvblNldC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuYWRkTGFuZ3VhZ2UgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuYWRkTGFuZ3VhZ2UuTmFtZSA9IFwiYWRkTGFuZ3VhZ2VcIlxyXG4gICAgICB0aGlzLmFkZExhbmd1YWdlLkxhYmVsS2V5ID0gXCJMYW5ndWFnZVwiXHJcbiAgICAgIHRoaXMuYWRkTGFuZ3VhZ2UuRGF0YVNvdXJjZSA9IHRoaXMubGFuZ3VhZ2VzTGlzdFxyXG4gICAgICB0aGlzLmFkZExhbmd1YWdlLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkTGFuZ3VhZ2UuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmFkZExhbmd1YWdlLklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5hZGRXZWxjb21lTXNnVGVtcCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGRXZWxjb21lTXNnVGVtcC5OYW1lID0gXCJhZGRXZWxjb21lTXNnVGVtcFwiXHJcbiAgICAgIHRoaXMuYWRkV2VsY29tZU1zZ1RlbXAuTGFiZWxLZXkgPSBcIldlbGNvbWVNc2dUZW1wbGF0ZVwiXHJcbiAgICAgIHRoaXMuYWRkV2VsY29tZU1zZ1RlbXAuRGF0YVNvdXJjZSA9IHRoaXMud2VsY29tZU1zZ1RlbXBMaXN0XHJcbiAgICAgIHRoaXMuYWRkV2VsY29tZU1zZ1RlbXAuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRXZWxjb21lTXNnVGVtcC5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmFkZEZpbGVQcm92aWRlciA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGRGaWxlUHJvdmlkZXIuTmFtZSA9IFwiYWRkRmlsZVByb3ZpZGVyXCJcclxuICAgICAgdGhpcy5hZGRGaWxlUHJvdmlkZXIuTGFiZWxLZXkgPSBcIkZpbGVQcm92aWRlclwiXHJcbiAgICAgIHRoaXMuYWRkRmlsZVByb3ZpZGVyLkRhdGFTb3VyY2UgPSB0aGlzLmZpbGVQcm92aWRlcnNcclxuICAgICAgdGhpcy5hZGRGaWxlUHJvdmlkZXIuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRGaWxlUHJvdmlkZXIuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5hZGRNYXJrSW5hY3RpdmUgPSBuZXcgVG9nZ2xlU2xpZGVPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuYWRkTWFya0luYWN0aXZlLk5hbWUgPSBcImFkZE1hcmtJbmFjdGl2ZVwiXHJcbiAgICAgIHRoaXMuYWRkTWFya0luYWN0aXZlLkxhYmVsS2V5ID0gXCJNYXJrQXNJbmFjdGl2ZVwiXHJcbiAgICAgIHRoaXMuYWRkTWFya0luYWN0aXZlLlZhbHVlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuYWRkTWFya0luYWN0aXZlLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG5cclxuICAgICAgdGhpcy5hZGREYWlseUpvYiA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGREYWlseUpvYi5OYW1lID0gXCJhZGREYWlseUpvYlwiXHJcbiAgICAgIHRoaXMuYWRkRGFpbHlKb2IuTGFiZWxLZXkgPSBcIkFkZFRvRGFpbHlKb2JcIlxyXG4gICAgICB0aGlzLmFkZERhaWx5Sm9iLlZhbHVlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuYWRkRGFpbHlKb2IuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWw7XHJcblxyXG4gICAgICAvL3NldCBBRCBtYXBwaW5nXHJcbiAgICAgIGxldCBkYXRhOiBhbnkgPSB0aGlzLmdldEFETWFwcGluZ09wdGlvbnMocmV1bHRPYmouYWRNYXBwaW5ncyk7XHJcbiAgICAgIHRoaXMuYWRkTWFwcGluZ3NPcHRpb25zID0gZGF0YVswXTtcclxuICAgICAgdGhpcy5hZGRNYXBwaW5nc0NvdW50ID0gZGF0YVsxXTtcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNBZGRGb3JtTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgfSwgNTApO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy9BZGQgQWN0aXZlIGRpcmVjdG9yeSBmdW5jdGlvbnNcclxuICBnZXRBZGRBRE1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgcmVzdWx0TW9kZWwgPSB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0udmFsdWU7XHJcbiAgICAvL2NvbnNvbGUubG9nKFJlc3VsdE1vZGVsKTtcclxuICAgIGxldCBBZGRNb2RlbDogQWN0aXZlRGlyZWN0b3J5QWRkRWRpdE1vZGVsID0gbmV3IEFjdGl2ZURpcmVjdG9yeUFkZEVkaXRNb2RlbCgpO1xyXG4gICAgQWRkTW9kZWwuQ29ubmVjdGlvbk5hbWUgPSByZXN1bHRNb2RlbC5hZGROYW1lO1xyXG4gICAgQWRkTW9kZWwuQURUeXBlSXRlbUlEX0dVSUQgPSByZXN1bHRNb2RlbC5hZGRUeXBlT3B0aW9uc1xyXG4gICAgQWRkTW9kZWwuUGVybWlzc2lvblNldElEID0gcmVzdWx0TW9kZWwuYWRkUGVybWlzc2lvblNldCAhPSBudWxsID8gTnVtYmVyKHJlc3VsdE1vZGVsLmFkZFBlcm1pc3Npb25TZXQpIDogbnVsbFxyXG4gICAgQWRkTW9kZWwuTGFuZ0tleSA9IHJlc3VsdE1vZGVsLmFkZExhbmd1YWdlO1xyXG4gICAgQWRkTW9kZWwuV2VsY29tZVRlbXBsYXRlSUQgPSByZXN1bHRNb2RlbC5hZGRXZWxjb21lTXNnVGVtcCAhPSBudWxsID8gTnVtYmVyKHJlc3VsdE1vZGVsLmFkZFdlbGNvbWVNc2dUZW1wKSA6IG51bGxcclxuICAgIEFkZE1vZGVsLkltYWdlc0ZpbGVQcm92aWRlck5hbWUgPSByZXN1bHRNb2RlbC5hZGRGaWxlUHJvdmlkZXJcclxuICAgIEFkZE1vZGVsLk1hcmtBc0luYWN0aXZlID0gcmVzdWx0TW9kZWwuYWRkTWFya0luYWN0aXZlXHJcbiAgICBBZGRNb2RlbC5BZGRUb0RhaWx5Sm9iID0gcmVzdWx0TW9kZWwuYWRkRGFpbHlKb2JcclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFR5cGUgPT0gQWN0aXZlRGlyZWN0b3J5VHlwZS5XaW5kb3dzKSB7XHJcbiAgICAgIEFkZE1vZGVsLklkZW50aWZpZXIgPSB0aGlzLmlkZW50aWZpZXI7XHJcbiAgICAgIEFkZE1vZGVsLkRvbWFpbiA9IHJlc3VsdE1vZGVsLmFkZERvbWFpbjtcclxuICAgICAgQWRkTW9kZWwuU2FtQWNjb3VudCA9IHJlc3VsdE1vZGVsLmFkZFNhbUFjY291bnQ7XHJcbiAgICAgIEFkZE1vZGVsLlBhc3N3b3JkID0gcmVzdWx0TW9kZWwuYWRkUGFzc3dvcmQ7XHJcbiAgICAgIEFkZE1vZGVsLlNob3dCdWlsdEluR3JvdXBzID0gcmVzdWx0TW9kZWwuYWRkU2hvd0J1aWx0SW5Hcm91cHM7XHJcbiAgICAgIEFkZE1vZGVsLkFEV2luZG93c1R5cGVJdGVtSURfR1VJRCA9IHJlc3VsdE1vZGVsLmFkZFdpbmRvd3NUeXBlT3B0aW9uc1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIEFkZE1vZGVsLlRlbmFudElEID0gcmVzdWx0TW9kZWwuYWRkVGVuYW50SUQ7XHJcbiAgICAgIEFkZE1vZGVsLkNsaWVudElEID0gcmVzdWx0TW9kZWwuYWRkQ2xpZW50SUQ7XHJcbiAgICAgIEFkZE1vZGVsLkNsaWVudFNlY3JldCA9IHJlc3VsdE1vZGVsLmFkZENsaWVudFNlY3JldDtcclxuICAgIH1cclxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5hZGRNYXBwaW5nc0NvdW50OyBqKyspIHtcclxuICAgICAgbGV0IGFkZE1BcHBpbmdUeXBlID0gcmVzdWx0TW9kZWxbXCJBRE1hcHBpbmdUeXBlXCIgKyBqXTtcclxuICAgICAgaWYgKGFkZE1BcHBpbmdUeXBlID09IHVuZGVmaW5lZClcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgbGV0IGVkaXRNQXBwaW5nUHJvcGVydHkgPSByZXN1bHRNb2RlbFtcIkFETWFwcGluZ1Byb3BlcnR5XCIgKyBqXTtcclxuICAgICAgbGV0IGVkaXRNQXBwaW5nUHJvcGVydHlOYW1lID0gcmVzdWx0TW9kZWxbXCJBRE1hcHBpbmdQcm9wZXJ0eU5hbWVcIiArIGpdO1xyXG5cclxuICAgICAgbGV0IGFkTUFwcGluZ09iajogQURNYXBwaW5nTW9kZWwgPSBuZXcgQURNYXBwaW5nTW9kZWwoKTtcclxuICAgICAgYWRNQXBwaW5nT2JqLkFETWFwcGluZ1R5cGVJdGVtSUQgPSBOdW1iZXIoYWRkTUFwcGluZ1R5cGUpO1xyXG4gICAgICBhZE1BcHBpbmdPYmouQkJTRlByb3BlcnR5TmFtZSA9IGVkaXRNQXBwaW5nUHJvcGVydHk7XHJcbiAgICAgIGFkTUFwcGluZ09iai5BRFByb3BlcnR5TmFtZSA9IGVkaXRNQXBwaW5nUHJvcGVydHlOYW1lO1xyXG4gICAgICBsZXQgYWRNQXBwaW5nSW5jbHVkZUluVXBkYXRlID0gcmVzdWx0TW9kZWxbXCJBRE1hcHBpbmdJbmNsdWRlVXBkYXRlXCIgKyBqXTtcclxuICAgICAgbGV0IGFkTUFwcGluZ0hpZGRlbkluY2x1ZGVJblVwZGF0ZSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZVwiICsgal07XHJcbiAgICAgIGFkTUFwcGluZ09iai5JbmNsdWRlSW5VcGRhdGUgPSBhZE1BcHBpbmdJbmNsdWRlSW5VcGRhdGUgPT0gdW5kZWZpbmVkID8gYWRNQXBwaW5nSGlkZGVuSW5jbHVkZUluVXBkYXRlIDogYWRNQXBwaW5nSW5jbHVkZUluVXBkYXRlO1xyXG5cclxuICAgICAgQWRkTW9kZWwuQURNYXBwaW5ncy5wdXNoKGFkTUFwcGluZ09iaik7XHJcbiAgICB9XHJcbiAgICBwYXJhbUFycmF5LnB1c2goQWRkTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG4gIGdldEFkZEFERnVuY3Rpb24gPSAoYWRkTW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQWN0aXZlRGlyZWN0b3J5U2VydmljZS5hZGRBY3RpdmVEaXJlY3RvcnkoYWRkTW9kZWwpXHJcbiAgfVxyXG4gIGFkZEFET25TdWNjZXNzID0gKHJlc3VsdCkgPT4ge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vQURDb25uZWN0aW9uJ10pO1xyXG4gIH1cclxuXHJcbiAgLy9NYXBwaW5nIGZ1bmN0aW9uc1xyXG4gIGdldEFETWFwcGluZ09wdGlvbnMoQURNYXBwaW5nczogYW55W10pIHtcclxuICAgIGxldCBBRE1hcHBpbmdPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IEFETWFwcGluZ0NvdW50OiBudW1iZXIgPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBBRE1hcHBpbmdzLmxlbmd0aDsgaSsrKSB7XHJcblxyXG4gICAgICBsZXQgb2JqZWN0TWFwcGluZ09wdGlvbnM6IGFueVtdID0gW107XHJcblxyXG4gICAgICBsZXQgQURNYXBwaW5nVHlwZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgbGV0IHNlbGVjdGVkVHlwZSA9IHRoaXMubWFwcGluZ1R5cGVzTGlzdC5maWx0ZXIoKGl0ZW0pID0+IHsgcmV0dXJuIGl0ZW0ua2V5ID09IEFETWFwcGluZ3NbaV0uYWRNYXBwaW5nVHlwZUl0ZW1JRDsgfSkubWFwKChpdGVtKSA9PiBpdGVtLmtleSlbMF07XHJcbiAgICAgIEFETWFwcGluZ1R5cGUuTmFtZSA9IFwiQURNYXBwaW5nVHlwZVwiICsgaTtcclxuICAgICAgQURNYXBwaW5nVHlwZS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICBBRE1hcHBpbmdUeXBlLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1R5cGUuU2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkVHlwZTtcclxuICAgICAgQURNYXBwaW5nVHlwZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgICAgQURNYXBwaW5nVHlwZS5EYXRhU291cmNlID0gdGhpcy5tYXBwaW5nVHlwZXNMaXN0O1xyXG4gICAgICBBRE1hcHBpbmdUeXBlLklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgbGV0IEFETWFwcGluZ1Byb3BlcnR5ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICBsZXQgc2VsZWN0ZWRQcm9wZXJ0eSA9IHRoaXMubWFwcGluZ1Byb3BlcnRpZXNMaXN0LmZpbHRlcigoaXRlbSkgPT4geyByZXR1cm4gaXRlbS5rZXkgPT0gQURNYXBwaW5nc1tpXS5iYnNmUHJvcGVydHlOYW1lOyB9KS5tYXAoKGl0ZW0pID0+IGl0ZW0ua2V5KVswXTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHkuTmFtZSA9IFwiQURNYXBwaW5nUHJvcGVydHlcIiArIGk7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5LkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5LlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5LlNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZFByb3BlcnR5O1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHkuRGF0YVNvdXJjZSA9IHRoaXMubWFwcGluZ1Byb3BlcnRpZXNMaXN0O1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcblxyXG4gICAgICBsZXQgQURNYXBwaW5nUHJvcGVydHlOYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5OYW1lID0gXCJBRE1hcHBpbmdQcm9wZXJ0eU5hbWVcIiArIGk7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuVmFsdWUgPSBBRE1hcHBpbmdzW2ldLmFkUHJvcGVydHlOYW1lO1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuSXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWw7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLk1heExlbmd0aCA9IDEwMjQ7XHJcblxyXG4gICAgICBsZXQgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZSA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZS5OYW1lID0gXCJBRE1hcHBpbmdJbmNsdWRlVXBkYXRlXCIgKyBpO1xyXG4gICAgICBBRE1hcHBpbmdJbmNsdWRlVXBkYXRlLlZhbHVlID0gQURNYXBwaW5nc1tpXS5pbmNsdWRlSW5VcGRhdGU7XHJcbiAgICAgIEFETWFwcGluZ0luY2x1ZGVVcGRhdGUuSXNEaXNhYmxlZCA9IHRydWU7XHJcblxyXG4gICAgICBsZXQgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlLk5hbWUgPSBcIkFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGVcIiArIGk7XHJcbiAgICAgIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUuVmFsdWUgPSBBRE1hcHBpbmdzW2ldLmluY2x1ZGVJblVwZGF0ZTtcclxuXHJcbiAgICAgIG9iamVjdE1hcHBpbmdPcHRpb25zLnB1c2goQURNYXBwaW5nVHlwZSwgQURNYXBwaW5nUHJvcGVydHksIEFETWFwcGluZ1Byb3BlcnR5TmFtZSwgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZSwgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZSk7XHJcbiAgICAgIEFETWFwcGluZ09wdGlvbnMucHVzaChvYmplY3RNYXBwaW5nT3B0aW9ucyk7XHJcbiAgICAgIEFETWFwcGluZ0NvdW50ICs9IDE7XHJcblxyXG4gICAgfVxyXG4gICAgcmV0dXJuIFtBRE1hcHBpbmdPcHRpb25zLCBBRE1hcHBpbmdDb3VudF07XHJcbiAgfVxyXG4gIGRlbGV0ZUFETWFwcGluZyhkZWxldGVkQURNQXBwaW5nOiBhbnkpIHtcclxuICAgIGxldCBkZWxldGVkTWFwcGluZ0luZGV4OiBudW1iZXIgPSB0aGlzLmFkZE1hcHBpbmdzT3B0aW9ucy5pbmRleE9mKGRlbGV0ZWRBRE1BcHBpbmcpO1xyXG4gICAgaWYgKGRlbGV0ZWRNYXBwaW5nSW5kZXggIT09IC0xKSB7XHJcbiAgICAgIHRoaXMuYWRkTWFwcGluZ3NPcHRpb25zLnNwbGljZShkZWxldGVkTWFwcGluZ0luZGV4LCAxKTtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZWxldGVkQURNQXBwaW5nLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtLnJlbW92ZUNvbnRyb2woZGVsZXRlZEFETUFwcGluZ1tpXS5OYW1lKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBhZGRBRE1hcHBpbmcoKSB7XHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLmFkZE1hcHBpbmdzQ291bnQ7XHJcblxyXG4gICAgbGV0IG9iamVjdE1hcHBpbmdPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIGxldCBBRE1hcHBpbmdUeXBlID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgQURNYXBwaW5nVHlwZS5OYW1lID0gXCJBRE1hcHBpbmdUeXBlXCIgKyBpbmRleDtcclxuICAgIEFETWFwcGluZ1R5cGUuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgIEFETWFwcGluZ1R5cGUuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgIEFETWFwcGluZ1R5cGUuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWw7XHJcbiAgICBBRE1hcHBpbmdUeXBlLkRhdGFTb3VyY2UgPSB0aGlzLm1hcHBpbmdUeXBlc0xpc3Q7XHJcblxyXG4gICAgbGV0IEFETWFwcGluZ1Byb3BlcnR5ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHkuTmFtZSA9IFwiQURNYXBwaW5nUHJvcGVydHlcIiArIGluZGV4O1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHkuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5LlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5LkRhdGFTb3VyY2UgPSB0aGlzLm1hcHBpbmdQcm9wZXJ0aWVzTGlzdDtcclxuXHJcblxyXG4gICAgbGV0IEFETWFwcGluZ1Byb3BlcnR5TmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLk5hbWUgPSBcIkFETWFwcGluZ1Byb3BlcnR5TmFtZVwiICsgaW5kZXg7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuSXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG5cclxuICAgIGxldCBBRE1hcHBpbmdJbmNsdWRlVXBkYXRlID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZS5OYW1lID0gXCJBRE1hcHBpbmdJbmNsdWRlVXBkYXRlXCIgKyBpbmRleDtcclxuICAgIEFETWFwcGluZ0luY2x1ZGVVcGRhdGUuVmFsdWUgPSB0cnVlO1xyXG5cclxuICAgIGxldCBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlLk5hbWUgPSBcIkFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGVcIiArIGluZGV4O1xyXG4gICAgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcblxyXG4gICAgb2JqZWN0TWFwcGluZ09wdGlvbnMucHVzaChBRE1hcHBpbmdUeXBlLCBBRE1hcHBpbmdQcm9wZXJ0eSwgQURNYXBwaW5nUHJvcGVydHlOYW1lLCBBRE1hcHBpbmdJbmNsdWRlVXBkYXRlLCBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlKTtcclxuXHJcbiAgICB0aGlzLmFkZE1hcHBpbmdzT3B0aW9ucy5wdXNoKG9iamVjdE1hcHBpbmdPcHRpb25zKTtcclxuICAgIHRoaXMuYWRkTWFwcGluZ3NDb3VudCArPSAxO1xyXG5cclxuICB9XHJcblxyXG5cclxuICAvL0FEIHdpbmRvd3Mgb24gdHlwZSBjaGFuZ2UgKE9VL0dyb3VwKVxyXG4gIHdpbmRvd3NUeXBlQ2hhbmdlKHR5cGVWYWx1ZSkge1xyXG4gICAgaWYgKHR5cGVWYWx1ZSA9PSBBY3RpdmVEaXJlY3RvcnlXaW5kb3dDb25uZWN0aW9uVHlwZS5BY3RpdmVEaXJlY3RvcnlHcm91cCkge1xyXG4gICAgICB0aGlzLmFkZFNob3dCdWlsdEluR3JvdXBzID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmFkZFNob3dCdWlsdEluR3JvdXBzLk5hbWUgPSBcImFkZFNob3dCdWlsdEluR3JvdXBzXCJcclxuICAgICAgdGhpcy5hZGRTaG93QnVpbHRJbkdyb3Vwcy5MYWJlbFZhbHVlID0gXCJTaG93QnVpbHRJbkdyb3Vwc1wiXHJcbiAgICAgIHRoaXMuYWRkU2hvd0J1aWx0SW5Hcm91cHMuTGFiZWxLZXkgPSBcIlNob3dCdWlsdEluR3JvdXBzXCJcclxuICAgICAgdGhpcy5hZGRTaG93QnVpbHRJbkdyb3Vwcy5WYWx1ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmFkZFNob3dCdWlsdEluR3JvdXBzLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG5cclxuICAgICAgdGhpcy5hZGRTaG93QnVpbHRJbkdyb3Vwc1Zpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybS5yZW1vdmVDb250cm9sKFwiYWRkU2hvd0J1aWx0SW5Hcm91cHNcIik7XHJcbiAgICAgIHRoaXMuYWRkU2hvd0J1aWx0SW5Hcm91cHNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL0FEIG9uIHR5cGUgY2hhbmdlcyAoV2luZG93cy9BenVyZSlcclxuICB0eXBlQ2hhbmdlKHR5cGVWYWx1ZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFR5cGUgPSB0eXBlVmFsdWU7XHJcbiAgICBpZiAodHlwZVZhbHVlID09IEFjdGl2ZURpcmVjdG9yeVR5cGUuV2luZG93cykge1xyXG4gICAgICB0aGlzLmZvcm1zQ291bnQgPSAzO1xyXG4gICAgICAvL1JlbW92ZSBBenVyZSBjb250cm9scyBpZiBmb3VuZFxyXG4gICAgICB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0ucmVtb3ZlQ29udHJvbChcImFkZFRlbmFudElEXCIpO1xyXG4gICAgICB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0ucmVtb3ZlQ29udHJvbChcImFkZENsaWVudElEXCIpO1xyXG4gICAgICB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0ucmVtb3ZlQ29udHJvbChcImFkZENsaWVudFNlY3JldFwiKTtcclxuXHJcbiAgICAgIC8vSW5pdGlhbGl6ZSB3aW5kb3dzIGNvbnRyb2xzXHJcbiAgICAgIHRoaXMuYWRkV2luZG93c1R5cGVPcHRpb25zID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmFkZFdpbmRvd3NUeXBlT3B0aW9ucy5OYW1lID0gXCJhZGRXaW5kb3dzVHlwZU9wdGlvbnNcIlxyXG4gICAgICB0aGlzLmFkZFdpbmRvd3NUeXBlT3B0aW9ucy5MYWJlbEtleSA9IFwiV2luZG93c1R5cGVcIlxyXG4gICAgICB0aGlzLmFkZFdpbmRvd3NUeXBlT3B0aW9ucy5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbFxyXG4gICAgICB0aGlzLmFkZFdpbmRvd3NUeXBlT3B0aW9ucy5EYXRhU291cmNlID0gdGhpcy5hZFdpbmRvd3NUeXBlc1xyXG4gICAgICB0aGlzLmFkZFdpbmRvd3NUeXBlT3B0aW9ucy5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICB0aGlzLmFkZFdpbmRvd3NUeXBlT3B0aW9ucy5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkV2luZG93c1R5cGVPcHRpb25zLklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5hZGREb21haW4gPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGREb21haW4uTmFtZSA9IFwiYWRkRG9tYWluXCI7XHJcbiAgICAgIHRoaXMuYWRkRG9tYWluLkxhYmVsS2V5ID0gXCJEb21haW5cIjtcclxuICAgICAgdGhpcy5hZGREb21haW4uVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB0aGlzLmFkZERvbWFpbi5WYWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuYWRkRG9tYWluLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmFkZERvbWFpbi5NYXhMZW5ndGggPSAyNTY7XHJcblxyXG4gICAgICB0aGlzLmFkZFNhbUFjY291bnQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGRTYW1BY2NvdW50Lk5hbWUgPSBcImFkZFNhbUFjY291bnRcIjtcclxuICAgICAgdGhpcy5hZGRTYW1BY2NvdW50LkxhYmVsS2V5ID0gXCJTYW1BY2NvdW50XCI7XHJcbiAgICAgIHRoaXMuYWRkU2FtQWNjb3VudC5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMuYWRkU2FtQWNjb3VudC5WYWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuYWRkU2FtQWNjb3VudC5NYXhMZW5ndGggPSAyMDtcclxuXHJcbiAgICAgIHRoaXMuYWRkUGFzc3dvcmQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGRQYXNzd29yZC5OYW1lID0gXCJhZGRQYXNzd29yZFwiO1xyXG4gICAgICB0aGlzLmFkZFBhc3N3b3JkLkxhYmVsS2V5ID0gXCJQYXNzd29yZFwiO1xyXG4gICAgICB0aGlzLmFkZFBhc3N3b3JkLlR5cGUgPSBJbnB1dFR5cGUuUGFzc3dvcmQ7XHJcbiAgICAgIHRoaXMuYWRkUGFzc3dvcmQuVmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLmFkZFBhc3N3b3JkLlJlbW92ZURlZmF1bHRQYXNzd29yZFZhbGlkYXRpb24gPSB0cnVlO1xyXG4gICAgICB0aGlzLmFkZFBhc3N3b3JkLk1heExlbmd0aCA9IDQwMDA7XHJcblxyXG4gICAgICB0aGlzLnNob3dBenVyZUNvbnRyb2xzID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2hvd1dpbmRvd3NDb250cm9scyA9IHRydWU7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3Jtc0NvdW50ID0gMjtcclxuICAgICAgLy9SZW1vdmUgd2luZG93cyBjb250cm9scyBpZiBmb3VuZFxyXG4gICAgICB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0ucmVtb3ZlQ29udHJvbChcImFkZERvbWFpblwiKTtcclxuICAgICAgdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtLnJlbW92ZUNvbnRyb2woXCJhZGRTYW1BY2NvdW50XCIpO1xyXG4gICAgICB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0ucmVtb3ZlQ29udHJvbChcImFkZFBhc3N3b3JkXCIpO1xyXG4gICAgICB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0ucmVtb3ZlQ29udHJvbChcImFkZFNob3dCdWlsdEluR3JvdXBzXCIpO1xyXG4gICAgICB0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0ucmVtb3ZlQ29udHJvbChcImFkZFdpbmRvd3NUeXBlT3B0aW9uc1wiKTtcclxuXHJcbiAgICAgIHRoaXMuYWRkVGVuYW50SUQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hZGRUZW5hbnRJRC5OYW1lID0gXCJhZGRUZW5hbnRJRFwiO1xyXG4gICAgICB0aGlzLmFkZFRlbmFudElELkxhYmVsS2V5ID0gXCJUZW5hbnRJRFwiO1xyXG4gICAgICB0aGlzLmFkZFRlbmFudElELlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5hZGRUZW5hbnRJRC5WYWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuYWRkVGVuYW50SUQuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkVGVuYW50SUQuTWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgICAgdGhpcy5hZGRDbGllbnRJRCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmFkZENsaWVudElELk5hbWUgPSBcImFkZENsaWVudElEXCI7XHJcbiAgICAgIHRoaXMuYWRkQ2xpZW50SUQuTGFiZWxLZXkgPSBcIkNsaWVudElEXCI7XHJcbiAgICAgIHRoaXMuYWRkQ2xpZW50SUQuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB0aGlzLmFkZENsaWVudElELlZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5hZGRDbGllbnRJRC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRDbGllbnRJRC5NYXhMZW5ndGggPSAxMDA7XHJcblxyXG4gICAgICB0aGlzLmFkZENsaWVudFNlY3JldCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmFkZENsaWVudFNlY3JldC5OYW1lID0gXCJhZGRDbGllbnRTZWNyZXRcIjtcclxuICAgICAgdGhpcy5hZGRDbGllbnRTZWNyZXQuTGFiZWxLZXkgPSBcIkNsaWVudFNlY3JldFwiO1xyXG4gICAgICB0aGlzLmFkZENsaWVudFNlY3JldC5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMuYWRkQ2xpZW50U2VjcmV0LlZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5hZGRDbGllbnRTZWNyZXQuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkQ2xpZW50U2VjcmV0Lk1heExlbmd0aCA9IDEwMDtcclxuXHJcbiAgICAgIHRoaXMuc2hvd0F6dXJlQ29udHJvbHMgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNob3dXaW5kb3dzQ29udHJvbHMgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vV2l6YXJkIGZ1bmN0aW9uc1xyXG4gIG5leHRTdGVwKCkge1xyXG4gICAgY29uc3QgY3VycmVudFN0ZXAgPSB0aGlzLmN1cnJlbnRTdGVwJC52YWx1ZTtcclxuICAgIGNvbnN0IG5leHRTdGVwID0gY3VycmVudFN0ZXAgKyAxO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtLnZhbHVlO1xyXG5cclxuICAgIC8vQ2hlY2sgcmVxdWlyZWQgZmllbGRzIGZvciBuZXh0IHN0ZXBcclxuICAgIGlmIChjdXJyZW50U3RlcCA9PSAxKSB7XHJcbiAgICAgIGlmIChSZXN1bHRNb2RlbC5hZGRUeXBlT3B0aW9ucykge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVHlwZSA9PSBBY3RpdmVEaXJlY3RvcnlUeXBlLldpbmRvd3MpIHtcclxuICAgICAgICAgIGlmICghUmVzdWx0TW9kZWwuYWRkRG9tYWluIHx8ICFSZXN1bHRNb2RlbC5hZGRXaW5kb3dzVHlwZU9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdGhpcy5hZERvbWFpbkNvbnRyb2wuSXNWYWxpZCgpO1xyXG4gICAgICAgICAgICB0aGlzLmFkV2luZG93c1R5cGVDb250cm9sLklzVmFsaWQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmICghUmVzdWx0TW9kZWwuYWRkVGVuYW50SUQgfHwgIVJlc3VsdE1vZGVsLmFkZENsaWVudElEIHx8ICFSZXN1bHRNb2RlbC5hZGRDbGllbnRTZWNyZXQpIHtcclxuICAgICAgICAgICAgdGhpcy50ZW5hbnRJRENvbnRyb2wuSXNWYWxpZCgpO1xyXG4gICAgICAgICAgICB0aGlzLmNsaWVudElEQ29udHJvbC5Jc1ZhbGlkKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50U2VjcmV0Q29udHJvbC5Jc1ZhbGlkKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hZFR5cGVDb250cm9sLklzVmFsaWQoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFR5cGUgPT0gQWN0aXZlRGlyZWN0b3J5VHlwZS5XaW5kb3dzKSB7XHJcblxyXG4gICAgICBpZiAobmV4dFN0ZXAgPT09IDIgJiYgY3VycmVudFN0ZXAgPT09IDEpIHtcclxuICAgICAgICB0aGlzLnRyZWVEYXRhTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8vaWYgKCF0aGlzLmFkZEFjdGl2ZURpcmVjdG9yeUZvcm0uZ2V0KCdhZGREb21haW4nKS52YWxpZCB8fCAhdGhpcy5hZGRBY3RpdmVEaXJlY3RvcnlGb3JtLmdldCgnYWRkVHlwZU9wdGlvbnMnKS52YWxpZCkge1xyXG4gICAgICAgIC8vICByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICAgICAgY29uc29sZS5sb2coUmVzdWx0TW9kZWwpO1xyXG5cclxuICAgICAgICBsZXQgQWRkTW9kZWw6IEFjdGl2ZURpcmVjdG9yeUFkZEVkaXRNb2RlbCA9IG5ldyBBY3RpdmVEaXJlY3RvcnlBZGRFZGl0TW9kZWwoKTtcclxuICAgICAgICBBZGRNb2RlbC5Db25uZWN0aW9uTmFtZSA9IFJlc3VsdE1vZGVsLmFkZE5hbWU7XHJcbiAgICAgICAgQWRkTW9kZWwuRG9tYWluID0gUmVzdWx0TW9kZWwuYWRkRG9tYWluO1xyXG4gICAgICAgIEFkZE1vZGVsLkFEV2luZG93c1R5cGVJdGVtSURfR1VJRCA9IFJlc3VsdE1vZGVsLmFkZFdpbmRvd3NUeXBlT3B0aW9ucztcclxuICAgICAgICBBZGRNb2RlbC5TYW1BY2NvdW50ID0gUmVzdWx0TW9kZWwuYWRkU2FtQWNjb3VudDtcclxuICAgICAgICBBZGRNb2RlbC5QYXNzd29yZCA9IFJlc3VsdE1vZGVsLmFkZFBhc3N3b3JkO1xyXG4gICAgICAgIEFkZE1vZGVsLlNob3dCdWlsdEluR3JvdXBzID0gUmVzdWx0TW9kZWwuYWRkU2hvd0J1aWx0SW5Hcm91cHM7XHJcblxyXG5cclxuICAgICAgICB0aGlzLkFjdGl2ZURpcmVjdG9yeVNlcnZpY2UuY2hlY2tWYWxpZGF0aW9uYW5kR2V0RGF0YShBZGRNb2RlbCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMsIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgICAgICAgIHZhciBkYXRhID0gcmVzdWx0IGFzIGFueTtcclxuICAgICAgICAgIGlmIChkYXRhLnZhbCkge1xyXG4gICAgICAgICAgICB0aGlzLnRyZWVOb2RlRGF0YSA9IGRhdGEudHJlZURhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JJc0ZvdW5kID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgICAgICAgICBsZXQgX3RyYW5zZm9ybWVyID0gKG5vZGU6IEFETm9kZSwgbGV2ZWw6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBleHBhbmRhYmxlOiAhIW5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogbm9kZS50ZXh0LFxyXG4gICAgICAgICAgICAgICAgbGV2ZWw6IGxldmVsLFxyXG4gICAgICAgICAgICAgICAgaWNvbjogbm9kZS5pY29uLFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0YWJsZTogbm9kZS5zZWxlY3RhYmxlLFxyXG4gICAgICAgICAgICAgICAgSW5kZXg6IG5vZGUuSW5kZXgsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiBub2RlLmRhdGFcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxGbGF0Tm9kZT4oXHJcbiAgICAgICAgICAgICAgbm9kZSA9PiBub2RlLmxldmVsLCBub2RlID0+IG5vZGUuZXhwYW5kYWJsZSk7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKFxyXG4gICAgICAgICAgICAgIF90cmFuc2Zvcm1lciwgbm9kZSA9PiBub2RlLmxldmVsLCBub2RlID0+IG5vZGUuZXhwYW5kYWJsZSwgbm9kZSA9PiBub2RlLmNoaWxkcmVuKTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSh0aGlzLnRyZWVDb250cm9sLCB0aGlzLnRyZWVGbGF0dGVuZXIpO1xyXG4gICAgICAgICAgICBsZXQganNvbkRhdGEgPSBKU09OLnBhcnNlKHRoaXMudHJlZU5vZGVEYXRhKTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBqc29uRGF0YTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaGFzQ2hpbGQgPSAoXzogbnVtYmVyLCBub2RlOiBGbGF0Tm9kZSkgPT4gbm9kZS5leHBhbmRhYmxlO1xyXG4gICAgICAgICAgICB0aGlzLnRyZWVEYXRhTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFN0ZXAkLm5leHQobmV4dFN0ZXApO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvciA9IGRhdGEuZXJyb3I7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JJc0ZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeUVycm9yTWVzc2FnZSgpO1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9mb3Jtc1xyXG4gICAgICAgIC8vIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9mb3JtLXZhbGlkYXRpb25cclxuXHJcbiAgICAgICAgLy8gdmFsaWRhdGUgdGhlIGZvcm0gYW5kIHVzZSBiZWxvdyBmdW5jdGlvbiB0byBzdG9wIHRoZSB3aXphcmQncyBzdGVwXHJcbiAgICAgICAgLy8gd2l6YXJkT2JqLnN0b3AoKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5pZGVudGlmaWVyID09IFwiXCIgfHwgdGhpcy5pZGVudGlmaWVyID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlXYXJuaW5nTWVzc2FnZSh0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJWQUxfQXRMZWFzdE9uZUlzUmVxdWlyZWRcIikpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYWRkTmFtZS5WYWx1ZSA9IHRoaXMuaWRlbnRpZmllck5hbWUgKyBcIiBjb25uZWN0aW9uXCI7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRTdGVwJC5uZXh0KG5leHRTdGVwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRTdGVwJC5uZXh0KG5leHRTdGVwKTtcclxuICAgIH1cclxuICB9O1xyXG4gIHByZXZTdGVwKCkge1xyXG4gICAgbGV0IGN1cnJlbnRTdGVwID0gdGhpcy5jdXJyZW50U3RlcCQudmFsdWU7XHJcbiAgICBsZXQgcHJldlN0ZXAgPSB0aGlzLmN1cnJlbnRTdGVwJC52YWx1ZSAtIDE7XHJcbiAgICBpZiAocHJldlN0ZXAgPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jdXJyZW50U3RlcCQubmV4dChwcmV2U3RlcCk7XHJcbiAgfVxyXG5cclxuICBzZXRJZGVudGlmaWVyKG9iajogTWF0Q2hlY2tib3hDaGFuZ2UsIHNlbGVjdGVkTm9kZTogQUROb2RlKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWROb2RlLkluZGV4O1xyXG4gICAgaWYgKG9iai5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuaWRlbnRpZmllciA9IHNlbGVjdGVkTm9kZS5kYXRhO1xyXG4gICAgICB0aGlzLmlkZW50aWZpZXJOYW1lID0gc2VsZWN0ZWROb2RlLnRleHQ7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5pZGVudGlmaWVyID0gXCJcIjtcclxuICAgICAgdGhpcy5pZGVudGlmaWVyTmFtZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vT24gZGVzdHJveVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcbn1cclxuXHJcbiIsIlxyXG5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJzdGVwcGVyIHN0ZXBwZXItcGlsbHMgc3RlcHBlci1jb2x1bW4gZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgteGwtcm93IGZsZXgtcm93LWZsdWlkIFwiIGlkPVwia3RfY3JlYXRlX2FjY291bnRfc3RlcHBlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHJvdW5kZWQganVzdGlmeS1jb250ZW50LXhsLXN0YXJ0IGZsZXgtcm93LWF1dG8gbWUtOSBjYXJkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHgtNiBweC1sZy0xMCBweC14eGwtMTUgcHktMjBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcHBlci1uYXZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwcGVyLWl0ZW1cIiBbbmdDbGFzc109XCJ7Y3VycmVudDogY3VycmVudFN0ZXAkLnZhbHVlID09PSAxIH1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXBwZXItbGluZSB3LTQwcHhcIj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwcGVyLWljb24gdy00MHB4IGgtNDBweFwiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwic3RlcHBlci1jaGVjayBmYXMgZmEtY2hlY2tcIj48L2k+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGVwcGVyLW51bWJlclwiPjE8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXBwZXItbGFiZWxcIj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJzdGVwcGVyLXRpdGxlXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWN0aXZlRGlyZWN0b3J5XCIpfX08L2gzPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcHBlci1kZXNjIGZ3LWJvbGRcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3RpdmVEaXJlY3RvcnlfVGFiMU5vdGVcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93V2luZG93c0NvbnRyb2xzXCIgY2xhc3M9XCJzdGVwcGVyLWl0ZW1cIiBbbmdDbGFzc109XCJ7Y3VycmVudDogY3VycmVudFN0ZXAkLnZhbHVlID09PSAyICYmIHNob3dXaW5kb3dzQ29udHJvbHN9XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwcGVyLWxpbmUgdy00MHB4XCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcHBlci1pY29uIHctNDBweCBoLTQwcHhcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cInN0ZXBwZXItY2hlY2sgZmFzIGZhLWNoZWNrXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RlcHBlci1udW1iZXJcIj4yPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwcGVyLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzPVwic3RlcHBlci10aXRsZVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2ZURpcmVjdG9yeV9TZWxlY3RDb250YWluZXJcIil9fTwvaDM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXBwZXItZGVzYyBmdy1ib2xkXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWN0aXZlRGlyZWN0b3J5X1RhYjJOb3RlXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcHBlci1pdGVtXCIgW25nQ2xhc3NdPVwie2N1cnJlbnQ6IChjdXJyZW50U3RlcCQudmFsdWUgPT09IGZvcm1zQ291bnQgKSB9XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwcGVyLWxpbmUgdy00MHB4XCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcHBlci1pY29uIHctNDBweCBoLTQwcHhcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cInN0ZXBwZXItY2hlY2sgZmFzIGZhLWNoZWNrXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RlcHBlci1udW1iZXJcIj57e2Zvcm1zQ291bnR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcHBlci1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzcz1cInN0ZXBwZXItdGl0bGVcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJPcHRpb25zXCIpfX08L2gzPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwcGVyLWRlc2MgZnctYm9sZFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2ZURpcmVjdG9yeV9UYWIzTm90ZVwiKX19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBkLWZsZXggZmxleC1yb3ctZmx1aWQgZmxleC1jZW50ZXIgcm91bmRlZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicC0yMCB3LTEwMCBjYXJkLWJvZHlcIiAqbmdJZj1cImlzQWRkRm9ybUxvYWRlZFwiPlxyXG4gICAgICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybU9wdGlvbnNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJyZW50XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCQudmFsdWUgPT09IDFcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0ICNhZFR5cGVDb250cm9sIFtvcHRpb25zXT1cImFkZFR5cGVPcHRpb25zXCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIiAoT25DaGFuZ2UpPVwidHlwZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93V2luZG93c0NvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgI2FkV2luZG93c1R5cGVDb250cm9sIFtvcHRpb25zXT1cImFkZFdpbmRvd3NUeXBlT3B0aW9uc1wiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCIgKE9uQ2hhbmdlKT1cIndpbmRvd3NUeXBlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCAjYWREb21haW5Db250cm9sIFtvcHRpb25zXT1cImFkZERvbWFpblwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JJc0ZvdW5kXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPnt7dmFsaWRhdGlvbkVycm9yfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJhZGRTYW1BY2NvdW50XCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiYWRkUGFzc3dvcmRcIiBbZ3JvdXBdPVwiYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItMTBcIiAqbmdJZj1cImFkZFNob3dCdWlsdEluR3JvdXBzVmlzaWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1Ub2dnbGVzbGlkZSBbb3B0aW9uc109XCJhZGRTaG93QnVpbHRJbkdyb3Vwc1wiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvQkJTRi1Ub2dnbGVzbGlkZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93QXp1cmVDb250cm9sc1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCAjdGVuYW50SURDb250cm9sIFtvcHRpb25zXT1cImFkZFRlbmFudElEXCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggI2NsaWVudElEQ29udHJvbCBbb3B0aW9uc109XCJhZGRDbGllbnRJRFwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94ICNjbGllbnRTZWNyZXRDb250cm9sIFtvcHRpb25zXT1cImFkZENsaWVudFNlY3JldFwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAkLnZhbHVlID09PSAyICYmIHNob3dXaW5kb3dzQ29udHJvbHNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGlkPVwidHJlZURhdGFDb250YWluZXJcIiAqbmdJZj1cInRyZWVEYXRhTG9hZGVkXCI+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0tLS0tLS1IZWxsbGxsbGxsbGxsbGxsbGxsbGxvLS0tLS0tLS0tLT5cclxuICAgICAgICAgICAgICAgIDxtYXQtdHJlZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgW3RyZWVDb250cm9sXT1cInRyZWVDb250cm9sXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gVGhpcyBpcyB0aGUgdHJlZSBub2RlIHRlbXBsYXRlIGZvciBsZWFmIG5vZGVzIC0tPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LXRyZWUtbm9kZSAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZTtcIiBtYXRUcmVlTm9kZVBhZGRpbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSB1c2UgYSBkaXNhYmxlZCBidXR0b24gdG8gcHJvdmlkZSBwYWRkaW5nIGZvciB0cmVlIGxlYWYgLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY2xhc3M9XCJjaGVja2xpc3QtbGVhZi1ub2RlXCIgW2NoZWNrZWRdPVwic2VsZWN0ZWQgPT09IG5vZGUuSW5kZXhcIiAoY2hhbmdlKT1cInNldElkZW50aWZpZXIoJGV2ZW50LG5vZGUpXCIgW2Rpc2FibGVkXT1cIm5vZGUuc2VsZWN0YWJsZT9mYWxzZTp0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7e25vZGUubmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LXRyZWUtbm9kZT5cclxuICAgICAgICAgICAgICAgICAgPCEtLSBUaGlzIGlzIHRoZSB0cmVlIG5vZGUgdGVtcGxhdGUgZm9yIGV4cGFuZGFibGUgbm9kZXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtdHJlZS1ub2RlICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlO3doZW46IGhhc0NoaWxkXCIgbWF0VHJlZU5vZGVQYWRkaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBtYXRUcmVlTm9kZVRvZ2dsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInVG9nZ2xlICcgKyBub2RlLm5hbWVcIiBjbGFzcz1cImJ0biBidG4taWNvbiBidG4tYmctbGlnaHQgYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5IGJ0bi1zbSBtZS0xIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJ0cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpXCIgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1kb3duXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhdHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKVwiIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tcmlnaHRcIj48L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggW2Rpc2FibGVkXT1cIm5vZGUuc2VsZWN0YWJsZT9mYWxzZTp0cnVlXCI+e3tub2RlLm5hbWV9fTwvbWF0LWNoZWNrYm94PlxyXG5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtdHJlZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAkLnZhbHVlID09PSBmb3Jtc0NvdW50XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiYWRkTmFtZVwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImFkZFBlcm1pc3Npb25TZXRcIiBbZ3JvdXBdPVwiYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImFkZExhbmd1YWdlXCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJhZGRXZWxjb21lTXNnVGVtcFwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiYWRkRmlsZVByb3ZpZGVyXCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRvZ2dsZXNsaWRlIFtvcHRpb25zXT1cImFkZE1hcmtJbmFjdGl2ZVwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8L0JCU0YtVG9nZ2xlc2xpZGU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRvZ2dsZXNsaWRlIFtvcHRpb25zXT1cImFkZERhaWx5Sm9iXCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwvQkJTRi1Ub2dnbGVzbGlkZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBiZWdpbjo6VGFibGUgLS0+XHJcbiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlciB0YWJsZS13LWNvbnRyb2xcIj5cclxuICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlR5cGVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlByb3BlcnR5XCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBRFByb3BlcnR5XCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJJbmNsdWRlSW5VcGRhdGVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy01MHB4XCI+PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBhZGRNYXBwaW5nc09wdGlvbnM7bGV0IGk9aW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJvcHRpb25bMF1cIiBbZ3JvdXBdPVwiYWRkQWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cIm9wdGlvblsxXVwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIm9wdGlvblsyXVwiIFtncm91cF09XCJhZGRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwib3B0aW9uWzNdXCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tSGlkZGVuIGluY2x1ZGUgaW4gdXBkYXRlIHZhbHVlLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwib3B0aW9uWzRdXCIgW2dyb3VwXT1cImFkZEFjdGl2ZURpcmVjdG9yeUZvcm1cIiBbaGlkZGVuXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJidG4gYnRuLWljb24gYnRuLWxpZ2h0LWRhbmdlclwiIChjbGljayk9XCJkZWxldGVBRE1hcHBpbmcob3B0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiIGZhIGZhLXRyYXNoIGhpZGRlblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInctMTAwIGJ0biBidG4tc3VjY2Vzc1wiIChjbGljayk9XCJhZGRBRE1hcHBpbmcoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZE5ld1JlY29yZFwiKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXN0YWNrIHB0LTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci0yXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwJC52YWx1ZSAhPT0gMVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxnIGJ0bi1saWdodC1wcmltYXJ5IG1lLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJldlN0ZXAoKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2My5zdmcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi00IG1lLTFcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlByZXZpb3VzXCIpfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwJC52YWx1ZSAhPT0gZm9ybXNDb3VudFwiPlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGcgYnRuLXByaW1hcnkgbWUtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuZXh0U3RlcCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5kaWNhdG9yLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwJC52YWx1ZSA8IGZvcm1zQ291bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5leHRcIil9fSB7eyBcIiBcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjQuc3ZnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTMgbXMtMiBtZS0wXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAkLnZhbHVlID09PSBmb3Jtc0NvdW50XCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLWxnIGJ0bi1wcmltYXJ5IG1lLTNcIj5cclxuICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlN1Ym1pdFwiKX19XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvQkJTRi1Gb3JtPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcblxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -15,6 +15,8 @@ export class ToolbarComponent {
15
15
  this.pageTitleCssClasses = this.layout.getStringCSSClasses('pageTitle');
16
16
  this.pageTitleAttributes = this.layout.getHTMLAttributes('pageTitle');
17
17
  }
18
+ getCurrentUser() {
19
+ }
18
20
  ngAfterViewInit() {
19
21
  if (this.ktPageTitle) {
20
22
  for (const key in this.pageTitleAttributes) {
@@ -39,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
39
41
  type: ViewChild,
40
42
  args: ['ktPageTitle', { static: true }]
41
43
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL19sYXlvdXQvY29tcG9uZW50cy90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9fbGF5b3V0L2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBR1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7OztBQU92QixNQUFNLE9BQU8sZ0JBQWdCO0lBUTNCLFlBQW9CLE1BQXFCO1FBQXJCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFIekMsK0JBQTBCLEdBQVcsRUFBRSxDQUFDO1FBQ3hDLHdCQUFtQixHQUFXLEVBQUUsQ0FBQztJQUVXLENBQUM7SUFFN0MsUUFBUTtRQUNOLElBQUksQ0FBQywwQkFBMEI7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUMxQyxJQUNFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO29CQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDOUI7b0JBQ0EsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQzt3QkFDNUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNqQzthQUNGO1NBQ0Y7SUFDSCxDQUFDOzs4R0E3QlUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsNktDYjdCLGlxQkFtQkE7NEZETmEsZ0JBQWdCO2tCQUo1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixXQUFXLEVBQUUsMEJBQTBCO2lCQUN4QztvR0FFNkMsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9fbWV0cm9uaWMvY29yZS9zZXJ2aWNlcy9sYXlvdXQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10b29sYmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdG9vbGJhci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2t0UGFnZVRpdGxlJywgeyBzdGF0aWM6IHRydWUgfSkga3RQYWdlVGl0bGU6IEVsZW1lbnRSZWY7XHJcbiAgcGFnZVRpdGxlQXR0cmlidXRlczoge1xyXG4gICAgW2F0dHJOYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBib29sZWFuO1xyXG4gIH07XHJcbiAgdG9vbGJhckNvbnRhaW5lckNzc0NsYXNzZXM6IHN0cmluZyA9ICcnO1xyXG4gIHBhZ2VUaXRsZUNzc0NsYXNzZXM6IHN0cmluZyA9ICcnO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxheW91dDogTGF5b3V0U2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvb2xiYXJDb250YWluZXJDc3NDbGFzc2VzID1cclxuICAgICAgdGhpcy5sYXlvdXQuZ2V0U3RyaW5nQ1NTQ2xhc3NlcygndG9vbGJhckNvbnRhaW5lcicpO1xyXG4gICAgdGhpcy5wYWdlVGl0bGVDc3NDbGFzc2VzID0gdGhpcy5sYXlvdXQuZ2V0U3RyaW5nQ1NTQ2xhc3NlcygncGFnZVRpdGxlJyk7XHJcbiAgICB0aGlzLnBhZ2VUaXRsZUF0dHJpYnV0ZXMgPSB0aGlzLmxheW91dC5nZXRIVE1MQXR0cmlidXRlcygncGFnZVRpdGxlJyk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5rdFBhZ2VUaXRsZSkge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLnBhZ2VUaXRsZUF0dHJpYnV0ZXMpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnBhZ2VUaXRsZUF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJlxyXG4gICAgICAgICAgdGhpcy5rdFBhZ2VUaXRsZS5uYXRpdmVFbGVtZW50XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmt0UGFnZVRpdGxlLm5hdGl2ZUVsZW1lbnQuYXR0cmlidXRlc1trZXldID1cclxuICAgICAgICAgICAgdGhpcy5wYWdlVGl0bGVBdHRyaWJ1dGVzW2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJrdF90b29sYmFyX2NvbnRhaW5lclwiXHJcbiAgICAgW25nQ2xhc3NdPVwidG9vbGJhckNvbnRhaW5lckNzc0NsYXNzZXNcIlxyXG4gICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtc3RhY2tcIj5cclxuICA8YXBwLXBhZ2UtdGl0bGUgI2t0UGFnZVRpdGxlXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGFnZS10aXRsZSBkLWZsZXhcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJwYWdlVGl0bGVDc3NDbGFzc2VzXCI+PC9hcHAtcGFnZS10aXRsZT5cclxuICA8IS0tIGJlZ2luOjpBY3Rpb25zICAtLT5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBweS0xXCI+XHJcbiAgICA8IS0tIGJlZ2luOjpXcmFwcGVyICAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJtZS00XCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIi5zdWJoZWFkZXJ0b29sYmFyXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIGVuZDo6V3JhcHBlciAgLS0+XHJcbiAgICA8IS0tIGVuZDo6QnV0dG9uICAtLT5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuZmlsdGVyLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5cclxuXHJcbiAgPCEtLSBlbmQ6OkFjdGlvbnMgIC0tPlxyXG48L2Rpdj5cclxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL19sYXlvdXQvY29tcG9uZW50cy90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9fbGF5b3V0L2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBR1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7OztBQU92QixNQUFNLE9BQU8sZ0JBQWdCO0lBUTNCLFlBQW9CLE1BQXFCO1FBQXJCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFIekMsK0JBQTBCLEdBQVcsRUFBRSxDQUFDO1FBQ3hDLHdCQUFtQixHQUFXLEVBQUUsQ0FBQztJQUVXLENBQUM7SUFFN0MsUUFBUTtRQUNOLElBQUksQ0FBQywwQkFBMEI7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFDRCxjQUFjO0lBRWQsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQzFDLElBQ0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7b0JBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUM5QjtvQkFDQSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO3dCQUM1QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ2pDO2FBQ0Y7U0FDRjtJQUNILENBQUM7OzhHQWhDVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQiw2S0NiN0IsaXFCQW1CQTs0RkROYSxnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFdBQVcsRUFBRSwwQkFBMEI7aUJBQ3hDO29HQUU2QyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXRvb2xiYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b29sYmFyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgna3RQYWdlVGl0bGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBrdFBhZ2VUaXRsZTogRWxlbWVudFJlZjtcclxuICBwYWdlVGl0bGVBdHRyaWJ1dGVzOiB7XHJcbiAgICBbYXR0ck5hbWU6IHN0cmluZ106IHN0cmluZyB8IGJvb2xlYW47XHJcbiAgfTtcclxuICB0b29sYmFyQ29udGFpbmVyQ3NzQ2xhc3Nlczogc3RyaW5nID0gJyc7XHJcbiAgcGFnZVRpdGxlQ3NzQ2xhc3Nlczogc3RyaW5nID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbGF5b3V0OiBMYXlvdXRTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudG9vbGJhckNvbnRhaW5lckNzc0NsYXNzZXMgPVxyXG4gICAgICB0aGlzLmxheW91dC5nZXRTdHJpbmdDU1NDbGFzc2VzKCd0b29sYmFyQ29udGFpbmVyJyk7XHJcbiAgICB0aGlzLnBhZ2VUaXRsZUNzc0NsYXNzZXMgPSB0aGlzLmxheW91dC5nZXRTdHJpbmdDU1NDbGFzc2VzKCdwYWdlVGl0bGUnKTtcclxuICAgIHRoaXMucGFnZVRpdGxlQXR0cmlidXRlcyA9IHRoaXMubGF5b3V0LmdldEhUTUxBdHRyaWJ1dGVzKCdwYWdlVGl0bGUnKTtcclxuICB9XHJcbiAgZ2V0Q3VycmVudFVzZXIoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMua3RQYWdlVGl0bGUpIHtcclxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5wYWdlVGl0bGVBdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy5wYWdlVGl0bGVBdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KGtleSkgJiZcclxuICAgICAgICAgIHRoaXMua3RQYWdlVGl0bGUubmF0aXZlRWxlbWVudFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5rdFBhZ2VUaXRsZS5uYXRpdmVFbGVtZW50LmF0dHJpYnV0ZXNba2V5XSA9XHJcbiAgICAgICAgICAgIHRoaXMucGFnZVRpdGxlQXR0cmlidXRlc1trZXldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGlkPVwia3RfdG9vbGJhcl9jb250YWluZXJcIlxyXG4gICAgIFtuZ0NsYXNzXT1cInRvb2xiYXJDb250YWluZXJDc3NDbGFzc2VzXCJcclxuICAgICBjbGFzcz1cImQtZmxleCBmbGV4LXN0YWNrXCI+XHJcbiAgPGFwcC1wYWdlLXRpdGxlICNrdFBhZ2VUaXRsZVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInBhZ2UtdGl0bGUgZC1mbGV4XCJcclxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicGFnZVRpdGxlQ3NzQ2xhc3Nlc1wiPjwvYXBwLXBhZ2UtdGl0bGU+XHJcbiAgPCEtLSBiZWdpbjo6QWN0aW9ucyAgLS0+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcHktMVwiPlxyXG4gICAgPCEtLSBiZWdpbjo6V3JhcHBlciAgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWUtNFwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCIuc3ViaGVhZGVydG9vbGJhclwiPjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBlbmQ6OldyYXBwZXIgIC0tPlxyXG4gICAgPCEtLSBlbmQ6OkJ1dHRvbiAgLS0+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLmZpbHRlci1jb250YWluZXJcIj48L25nLWNvbnRlbnQ+XHJcblxyXG4gIDwhLS0gZW5kOjpBY3Rpb25zICAtLT5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -35,6 +35,14 @@ export class TopbarComponent {
35
35
  localStorage.setItem('language', lang);
36
36
  this.language = lang;
37
37
  this.headerLeft = this.layout.getProp('header.left');
38
+ this.getCurrentUser();
39
+ });
40
+ }
41
+ getCurrentUser() {
42
+ this.userService.getCurrentUser().subscribe((result) => {
43
+ let obj = result;
44
+ this.identity = obj.model;
45
+ this.identity.name = this.identity.locale == "en" ? this.identity.givenNameEn : this.identity.givenNameAr;
38
46
  });
39
47
  }
40
48
  switchLang(lang) {
@@ -53,7 +61,7 @@ export class TopbarComponent {
53
61
  }
54
62
  }
55
63
  TopbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TopbarComponent, deps: [{ token: i1.LayoutService }, { token: i2.TranslateService }, { token: i3.AuthService }, { token: i4.userService }, { token: i5.Router }, { token: i3.StylesBundleService }, { token: i3.UtilityService }, { token: i3.MasterLayoutService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
56
- TopbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: TopbarComponent, selector: "app-topbar", ngImport: i0, template: "<!-- begin::User -->\r\n<div class=\"d-flex align-items-center\"\r\n [ngClass]=\"toolbarButtonMarginClass\"\r\n id=\"kt_header_user_menu_toggle\">\r\n <a class=\"lang-switch-btn btn btn-active-light-primary btn-light \" *ngIf=\"language == 'ar'\" (click)=\"switchLang('en')\">\r\n <i class=\"fas fa-globe mr-2\"></i> English\r\n </a>\r\n <a class=\"lang-switch-btn btn btn-active-light-primary btn-light\" *ngIf=\"language == 'en'\" (click)=\"switchLang('ar')\">\r\n \u0627\u0644\u0639\u0631\u0628\u064A\u0647 <i class=\"fas fa-globe ms-2\"></i>\r\n </a>\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <div ngbDropdownToggle class=\"btn btn-active-light btn-light d-flex align-items-center bg-hover-light py-2 px-2 px-md-3 ms-5\" data-kt-menu-trigger=\"click\" data-kt-menu-attach=\"parent\" data-kt-menu-placement=\"bottom-end\">\r\n <div class=\"d-none d-md-flex flex-column align-items-end justify-content-center me-2\">\r\n <span class=\"text-muted fs-7 fw-bold lh-1 mb-2\">Hello</span>\r\n <span class=\"text-dark fs-base fw-bolder lh-1\">Michael</span>\r\n </div>\r\n <div class=\" symbol symbol-35px\">\r\n <h6 class=\"symbol-label font-size-h5 font-weight-bold bg-light-success ml-2 mb-0\">M</h6>\r\n </div>\r\n </div>\r\n <div ngbDropdownMenu class=\"menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-600 menu-state-bg menu-state-primary fw-bold fs-6 w-275px\">\r\n <div class=\"drop-item\">\r\n <div class=\"d-flex flex-column flex-center bgi-no-repeat rounded-top px-9 py-10\" style=\"background-image: url('./src/assets/images/menu-header-dark.png')\">\r\n <div class=\"text-white fw-bold mb-3\">\r\n Michael louis\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"menu-item \">\r\n <button class=\"btn btn-block cursor-pointer text-center d-block w-100\" (click)=\"logout(); clicked =true;\" [disabled]=\"clicked\" > {{getResourceValue(\"Sign Out\")}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<!-- end::User -->\r\n<!-- <ng-container *ngIf=\"headerLeft === 'menu'\">\r\n <div\r\n class=\"d-flex align-items-center d-lg-none ms-2 me-n3\"\r\n title=\"Show header menu\"\r\n >\r\n <div\r\n class=\"\r\n btn btn-icon btn-active-light-primary\r\n w-30px\r\n h-30px\r\n w-md-40px\r\n h-md-40px\r\n \"\r\n id=\"kt_header_menu_mobile_toggle\"\r\n >\r\n <span\r\n [inlineSVG]=\"'./assets/media/icons/duotune/text/txt001.svg'\"\r\n class=\"svg-icon svg-icon-1\"\r\n ></span>\r\n </div>\r\n </div>\r\n</ng-container> -->\r\n", styles: [".btn.btn-light.dropdown-toggle:after{display:none}\n"], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i7.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i7.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }] });
64
+ TopbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: TopbarComponent, selector: "app-topbar", ngImport: i0, template: "<!-- begin::User -->\r\n<div class=\"d-flex align-items-center\"\r\n [ngClass]=\"toolbarButtonMarginClass\"\r\n id=\"kt_header_user_menu_toggle\">\r\n <a class=\"lang-switch-btn btn btn-active-light-primary btn-light \" *ngIf=\"language == 'ar'\" (click)=\"switchLang('en')\">\r\n <i class=\"fas fa-globe mr-2\"></i> English\r\n </a>\r\n <a class=\"lang-switch-btn btn btn-active-light-primary btn-light\" *ngIf=\"language == 'en'\" (click)=\"switchLang('ar')\">\r\n \u0627\u0644\u0639\u0631\u0628\u064A\u0647 <i class=\"fas fa-globe ms-2\"></i>\r\n </a>\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <div ngbDropdownToggle class=\"btn btn-active-light btn-light d-flex align-items-center bg-hover-light py-2 px-2 px-md-3 ms-5\" data-kt-menu-trigger=\"click\" data-kt-menu-attach=\"parent\" data-kt-menu-placement=\"bottom-end\">\r\n <div class=\"d-none d-md-flex flex-column align-items-end justify-content-center me-2\">\r\n <span class=\"text-muted fs-7 fw-bold lh-1 mb-2\">{{UtilityService.getResourceValue(\"Hello\")}}</span>\r\n <span class=\"text-dark fs-base fw-bolder lh-1\">{{identity.name}}</span>\r\n </div>\r\n <div class=\" symbol symbol-35px\">\r\n <h6 class=\"symbol-label font-size-h5 font-weight-bold bg-light-success ml-2 mb-0\">M</h6>\r\n </div>\r\n </div>\r\n <div ngbDropdownMenu class=\"menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-600 menu-state-bg menu-state-primary fw-bold fs-6 w-275px\">\r\n <div class=\"drop-item\">\r\n <div class=\"d-flex flex-column flex-center bgi-no-repeat rounded-top px-9 py-10\" style=\"background-image: url('./src/assets/images/menu-header-dark.png')\">\r\n <div class=\"text-white fw-bold mb-3\">\r\n {{identity.name}}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"menu-item \">\r\n <button class=\"btn btn-block cursor-pointer text-center d-block w-100\" (click)=\"logout(); clicked =true;\" [disabled]=\"clicked\" > {{getResourceValue(\"Sign Out\")}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<!-- end::User -->\r\n<!-- <ng-container *ngIf=\"headerLeft === 'menu'\">\r\n <div\r\n class=\"d-flex align-items-center d-lg-none ms-2 me-n3\"\r\n title=\"Show header menu\"\r\n >\r\n <div\r\n class=\"\r\n btn btn-icon btn-active-light-primary\r\n w-30px\r\n h-30px\r\n w-md-40px\r\n h-md-40px\r\n \"\r\n id=\"kt_header_menu_mobile_toggle\"\r\n >\r\n <span\r\n [inlineSVG]=\"'./assets/media/icons/duotune/text/txt001.svg'\"\r\n class=\"svg-icon svg-icon-1\"\r\n ></span>\r\n </div>\r\n </div>\r\n</ng-container> -->\r\n", styles: [".btn.btn-light.dropdown-toggle:after{display:none}\n"], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i7.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i7.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }] });
57
65
  __decorate([
58
66
  BlockUI()
59
67
  ], TopbarComponent.prototype, "blockUI", void 0);
@@ -68,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
68
76
  type: Inject,
69
77
  args: [DOCUMENT]
70
78
  }] }]; }, propDecorators: { blockUI: [] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvX2xheW91dC9jb21wb25lbnRzL3RvcGJhci90b3BiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9fbGF5b3V0L2NvbXBvbmVudHMvdG9wYmFyL3RvcGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQWEsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7OztBQVFqRCxNQUFNLE9BQU8sZUFBZTtJQWlCMUIsWUFBb0IsTUFBcUIsRUFDOUIsU0FBMkIsRUFDM0IsV0FBd0IsRUFDekIsV0FBd0IsRUFDeEIsTUFBYyxFQUNkLG1CQUF3QyxFQUN4QyxjQUE4QixFQUM5QixtQkFBdUMsRUFDckIsUUFBa0I7UUFSMUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBeEI5Qyw2QkFBd0IsR0FBRyxjQUFjLENBQUM7UUFDMUMsNkJBQXdCLEdBQUcsbUNBQW1DLENBQUM7UUFDL0QsaUNBQTRCLEdBQUcsNEJBQTRCLENBQUM7UUFDNUQsK0JBQTBCLEdBQUcsWUFBWSxDQUFDO1FBQzFDLGVBQVUsR0FBVyxNQUFNLENBQUM7UUFXNUIsWUFBTyxHQUFHLEtBQUssQ0FBQztJQWFoQixDQUFDO0lBRUssUUFBUTs7WUFDWiw2Q0FBNkM7WUFDN0MsSUFBSSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUFFLENBQUE7WUFDekQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQVcsQ0FBQztRQUNqRSxDQUFDO0tBQUE7SUFHRCxVQUFVLENBQUMsSUFBSTtRQUNiLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFDLGlCQUFpQixFQUFDLHFCQUFxQixDQUFDLENBQUE7SUFHbkYsQ0FBQztJQUNELFdBQVc7UUFDVCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFHO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sTUFBTTs7WUFDWCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsQ0FBQztLQUFBOzs2R0F2RFUsZUFBZSwrUEF5QmhCLFFBQVE7aUdBekJQLGVBQWUsa0RDZDVCLDJvRkF5REE7QURwQ2E7SUFBVixPQUFPLEVBQUU7Z0RBQW9COzRGQVBuQixlQUFlO2tCQUwzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixXQUFXLEVBQUUseUJBQXlCO29CQUN0QyxTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztpQkFDdkM7K1JBMEJ1QyxRQUFROzBCQUEzQyxNQUFNOzJCQUFDLFFBQVE7NENBbEJQLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgdXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9QYWdlcy9zaGFyZWQvU2VydmljZXMvdXNlclNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQmxvY2tVSSwgTmdCbG9ja1VJIH0gZnJvbSAnbmctYmxvY2stdWknO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSwgU3R5bGVzQnVuZGxlU2VydmljZSwgVXRpbGl0eVNlcnZpY2UsTWFzdGVyTGF5b3V0U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10b3BiYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b3BiYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RvcGJhci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9wYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICB0b29sYmFyQnV0dG9uTWFyZ2luQ2xhc3MgPSAnbXMtMSBtcy1sZy0zJztcclxuICB0b29sYmFyQnV0dG9uSGVpZ2h0Q2xhc3MgPSAndy0zMHB4IGgtMzBweCB3LW1kLTQwcHggaC1tZC00MHB4JztcclxuICB0b29sYmFyVXNlckF2YXRhckhlaWdodENsYXNzID0gJ3N5bWJvbC0zMHB4IHN5bWJvbC1tZC00MHB4JztcclxuICB0b29sYmFyQnV0dG9uSWNvblNpemVDbGFzcyA9ICdzdmctaWNvbi0xJztcclxuICBoZWFkZXJMZWZ0OiBzdHJpbmcgPSAnbWVudSc7XHJcbiAgLy8gRGVjb3JhdG9yIHdpcmVzIHVwIGJsb2NrVUkgaW5zdGFuY2VcclxuICBAQmxvY2tVSSgpIGJsb2NrVUk6IE5nQmxvY2tVSTtcclxuXHJcbiAgZXh0cmFzUXVpY2tQYW5lbERpc3BsYXk6IGJvb2xlYW47XHJcbiAgZXh0cmFzTGFuZ3VhZ2VzRGlzcGxheTogYm9vbGVhbjtcclxuICBleHRyYXNVc2VyRGlzcGxheTogYm9vbGVhbjtcclxuICBleHRyYXNVc2VyTGF5b3V0OiAnb2ZmY2FudmFzJyB8ICdkcm9wZG93bic7XHJcbiAgbGFuZ3VhZ2U6c3RyaW5nO1xyXG4gIHRva2VuOnN0cmluZztcclxuICBuYW1lOnN0cmluZztcclxuICBjbGlja2VkID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYXlvdXQ6IExheW91dFNlcnZpY2VcclxuICAgICxwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZVxyXG4gICAgLHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogdXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBzdHlsZXNCdW5kbGVTZXJ2aWNlOiBTdHlsZXNCdW5kbGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBVdGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1hc3RlckxheW91dFNlcnZpY2U6TWFzdGVyTGF5b3V0U2VydmljZSxcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50XHJcbiAgICApIFxyXG4gICAge1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIGxldCBsYW5nID0gQXV0aFNlcnZpY2UudXNlci5wcm9maWxlLmxvY2FsZVxyXG4gICAgbGV0IGxhbmcgPSBhd2FpdCB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldEN1cnJlbnRMYW5ndWFnZSgpXHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbGFuZ3VhZ2UnLCBsYW5nKTtcclxuICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5nO1xyXG4gICAgdGhpcy5oZWFkZXJMZWZ0ID0gdGhpcy5sYXlvdXQuZ2V0UHJvcCgnaGVhZGVyLmxlZnQnKSBhcyBzdHJpbmc7XHJcbiAgfVxyXG4gXHJcblxyXG4gIHN3aXRjaExhbmcobGFuZykge1xyXG4gICAgdGhpcy5tYXN0ZXJMYXlvdXRTZXJ2aWNlLnN3aXRjaExhbmcobGFuZyxcIkJCU0YtQnVuZGxlLmNzc1wiLFwiQkJTRi1CdW5kbGUtUlRMLmNzc1wiKVxyXG4gICBcclxuICAgIFxyXG4gIH1cclxuICByZWZyZXNoUGFnZSgpIHtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgfVxyXG5cclxuICAgZ2V0UmVzb3VyY2VWYWx1ZShLZXkpIHtcclxuICAgIHJldHVybiB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoS2V5KTtcclxuICB9XHJcblxyXG4gICBhc3luYyBsb2dvdXQoKXtcclxuICAgIGF3YWl0IHRoaXMuYXV0aFNlcnZpY2Uuc2lnbm91dCgpOyBcclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS0gYmVnaW46OlVzZXIgLS0+XHJcbjxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICBbbmdDbGFzc109XCJ0b29sYmFyQnV0dG9uTWFyZ2luQ2xhc3NcIlxyXG4gICAgIGlkPVwia3RfaGVhZGVyX3VzZXJfbWVudV90b2dnbGVcIj5cclxuICA8YSBjbGFzcz1cImxhbmctc3dpdGNoLWJ0biBidG4gYnRuLWFjdGl2ZS1saWdodC1wcmltYXJ5IGJ0bi1saWdodCBcIiAqbmdJZj1cImxhbmd1YWdlID09ICdhcidcIiAoY2xpY2spPVwic3dpdGNoTGFuZygnZW4nKVwiPlxyXG4gICAgPGkgY2xhc3M9XCJmYXMgZmEtZ2xvYmUgbXItMlwiPjwvaT4gRW5nbGlzaFxyXG4gIDwvYT5cclxuICA8YSBjbGFzcz1cImxhbmctc3dpdGNoLWJ0biBidG4gYnRuLWFjdGl2ZS1saWdodC1wcmltYXJ5IGJ0bi1saWdodFwiICpuZ0lmPVwibGFuZ3VhZ2UgPT0gJ2VuJ1wiIChjbGljayk9XCJzd2l0Y2hMYW5nKCdhcicpXCI+XHJcbiAgICDYp9mE2LnYsdio2YrZhyA8aSBjbGFzcz1cImZhcyBmYS1nbG9iZSBtcy0yXCI+PC9pPlxyXG4gIDwvYT5cclxuICA8ZGl2IG5nYkRyb3Bkb3duIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICAgIDxkaXYgbmdiRHJvcGRvd25Ub2dnbGUgY2xhc3M9XCJidG4gYnRuLWFjdGl2ZS1saWdodCBidG4tbGlnaHQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBiZy1ob3Zlci1saWdodCBweS0yIHB4LTIgcHgtbWQtMyBtcy01XCIgZGF0YS1rdC1tZW51LXRyaWdnZXI9XCJjbGlja1wiIGRhdGEta3QtbWVudS1hdHRhY2g9XCJwYXJlbnRcIiBkYXRhLWt0LW1lbnUtcGxhY2VtZW50PVwiYm90dG9tLWVuZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1ub25lIGQtbWQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1lbmQganVzdGlmeS1jb250ZW50LWNlbnRlciBtZS0yXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW11dGVkIGZzLTcgZnctYm9sZCBsaC0xIG1iLTJcIj5IZWxsbzwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFyayBmcy1iYXNlIGZ3LWJvbGRlciBsaC0xXCI+TWljaGFlbDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCIgc3ltYm9sIHN5bWJvbC0zNXB4XCI+XHJcbiAgICAgICAgPGg2IGNsYXNzPVwic3ltYm9sLWxhYmVsIGZvbnQtc2l6ZS1oNSBmb250LXdlaWdodC1ib2xkIGJnLWxpZ2h0LXN1Y2Nlc3MgbWwtMiBtYi0wXCI+TTwvaDY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBjbGFzcz1cIm1lbnUgbWVudS1zdWIgbWVudS1zdWItZHJvcGRvd24gbWVudS1jb2x1bW4gbWVudS1yb3VuZGVkIG1lbnUtZ3JheS02MDAgbWVudS1zdGF0ZS1iZyBtZW51LXN0YXRlLXByaW1hcnkgZnctYm9sZCBmcy02IHctMjc1cHhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRyb3AtaXRlbVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1jZW50ZXIgYmdpLW5vLXJlcGVhdCByb3VuZGVkLXRvcCBweC05IHB5LTEwXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4vc3JjL2Fzc2V0cy9pbWFnZXMvbWVudS1oZWFkZXItZGFyay5wbmcnKVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtd2hpdGUgZnctYm9sZCBtYi0zXCI+XHJcbiAgICAgICAgICAgIE1pY2hhZWwgbG91aXNcclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbSBcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1ibG9jayBjdXJzb3ItcG9pbnRlciB0ZXh0LWNlbnRlciBkLWJsb2NrIHctMTAwXCIgKGNsaWNrKT1cImxvZ291dCgpOyBjbGlja2VkID10cnVlO1wiICBbZGlzYWJsZWRdPVwiY2xpY2tlZFwiID4ge3tnZXRSZXNvdXJjZVZhbHVlKFwiU2lnbiBPdXRcIil9fTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPCEtLSBlbmQ6OlVzZXIgLS0+XHJcbjwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWRlckxlZnQgPT09ICdtZW51J1wiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBkLWxnLW5vbmUgbXMtMiBtZS1uM1wiXHJcbiAgICB0aXRsZT1cIlNob3cgaGVhZGVyIG1lbnVcIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJcclxuICAgICAgICBidG4gYnRuLWljb24gYnRuLWFjdGl2ZS1saWdodC1wcmltYXJ5XHJcbiAgICAgICAgdy0zMHB4XHJcbiAgICAgICAgaC0zMHB4XHJcbiAgICAgICAgdy1tZC00MHB4XHJcbiAgICAgICAgaC1tZC00MHB4XHJcbiAgICAgIFwiXHJcbiAgICAgIGlkPVwia3RfaGVhZGVyX21lbnVfbW9iaWxlX3RvZ2dsZVwiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuXHJcbiAgICAgICAgW2lubGluZVNWR109XCInLi9hc3NldHMvbWVkaWEvaWNvbnMvZHVvdHVuZS90ZXh0L3R4dDAwMS5zdmcnXCJcclxuICAgICAgICBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIlxyXG4gICAgICA+PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPiAtLT5cclxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvX2xheW91dC9jb21wb25lbnRzL3RvcGJhci90b3BiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9fbGF5b3V0L2NvbXBvbmVudHMvdG9wYmFyL3RvcGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQWEsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7OztBQVNqRCxNQUFNLE9BQU8sZUFBZTtJQWtCMUIsWUFBb0IsTUFBcUIsRUFDOUIsU0FBMkIsRUFDM0IsV0FBd0IsRUFDekIsV0FBd0IsRUFDeEIsTUFBYyxFQUNkLG1CQUF3QyxFQUN6QyxjQUE4QixFQUM3QixtQkFBdUMsRUFDckIsUUFBa0I7UUFSMUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN6QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0Isd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBekI5Qyw2QkFBd0IsR0FBRyxjQUFjLENBQUM7UUFDMUMsNkJBQXdCLEdBQUcsbUNBQW1DLENBQUM7UUFDL0QsaUNBQTRCLEdBQUcsNEJBQTRCLENBQUM7UUFDNUQsK0JBQTBCLEdBQUcsWUFBWSxDQUFDO1FBQzFDLGVBQVUsR0FBVyxNQUFNLENBQUM7UUFXNUIsWUFBTyxHQUFHLEtBQUssQ0FBQztJQWNoQixDQUFDO0lBRUssUUFBUTs7WUFDWiw2Q0FBNkM7WUFDN0MsSUFBSSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUFFLENBQUE7WUFDekQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQVcsQ0FBQztZQUUvRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQztLQUFBO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDckQsSUFBSSxHQUFHLEdBQUcsTUFBYSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQXNCLENBQUM7WUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDNUcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQUk7UUFDYixJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUksRUFBQyxpQkFBaUIsRUFBQyxxQkFBcUIsQ0FBQyxDQUFBO0lBR25GLENBQUM7SUFDRCxXQUFXO1FBQ1QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBRztRQUNuQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLE1BQU07O1lBQ1gsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLENBQUM7S0FBQTs7NkdBakVVLGVBQWUsK1BBMEJoQixRQUFRO2lHQTFCUCxlQUFlLGtEQ2Y1Qixrc0ZBeURBO0FEbkNhO0lBQVYsT0FBTyxFQUFFO2dEQUFvQjs0RkFQbkIsZUFBZTtrQkFMM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7aUJBQ3ZDOytSQTJCdUMsUUFBUTswQkFBM0MsTUFBTTsyQkFBQyxRQUFROzRDQW5CUCxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9fbWV0cm9uaWMvY29yZS9zZXJ2aWNlcy9sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IHVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vUGFnZXMvc2hhcmVkL1NlcnZpY2VzL3VzZXJTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEJsb2NrVUksIE5nQmxvY2tVSSB9IGZyb20gJ25nLWJsb2NrLXVpJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIFN0eWxlc0J1bmRsZVNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlLE1hc3RlckxheW91dFNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBJZGVudGl0eU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9Vc2VyTW9kZWxzL0lkZW50aXR5TW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdG9wYmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdG9wYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90b3BiYXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvcGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgdG9vbGJhckJ1dHRvbk1hcmdpbkNsYXNzID0gJ21zLTEgbXMtbGctMyc7XHJcbiAgdG9vbGJhckJ1dHRvbkhlaWdodENsYXNzID0gJ3ctMzBweCBoLTMwcHggdy1tZC00MHB4IGgtbWQtNDBweCc7XHJcbiAgdG9vbGJhclVzZXJBdmF0YXJIZWlnaHRDbGFzcyA9ICdzeW1ib2wtMzBweCBzeW1ib2wtbWQtNDBweCc7XHJcbiAgdG9vbGJhckJ1dHRvbkljb25TaXplQ2xhc3MgPSAnc3ZnLWljb24tMSc7XHJcbiAgaGVhZGVyTGVmdDogc3RyaW5nID0gJ21lbnUnO1xyXG4gIC8vIERlY29yYXRvciB3aXJlcyB1cCBibG9ja1VJIGluc3RhbmNlXHJcbiAgQEJsb2NrVUkoKSBibG9ja1VJOiBOZ0Jsb2NrVUk7XHJcblxyXG4gIGV4dHJhc1F1aWNrUGFuZWxEaXNwbGF5OiBib29sZWFuO1xyXG4gIGV4dHJhc0xhbmd1YWdlc0Rpc3BsYXk6IGJvb2xlYW47XHJcbiAgZXh0cmFzVXNlckRpc3BsYXk6IGJvb2xlYW47XHJcbiAgZXh0cmFzVXNlckxheW91dDogJ29mZmNhbnZhcycgfCAnZHJvcGRvd24nO1xyXG4gIGxhbmd1YWdlOnN0cmluZztcclxuICB0b2tlbjpzdHJpbmc7XHJcbiAgbmFtZTpzdHJpbmc7XHJcbiAgY2xpY2tlZCA9IGZhbHNlO1xyXG4gIGlkZW50aXR5OiBJZGVudGl0eU1vZGVsO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbGF5b3V0OiBMYXlvdXRTZXJ2aWNlXHJcbiAgICAscHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcclxuICAgICxwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IHVzZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgc3R5bGVzQnVuZGxlU2VydmljZTogU3R5bGVzQnVuZGxlU2VydmljZSxcclxuICAgIHB1YmxpYyBVdGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1hc3RlckxheW91dFNlcnZpY2U6TWFzdGVyTGF5b3V0U2VydmljZSxcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50XHJcbiAgICApIFxyXG4gICAge1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIGxldCBsYW5nID0gQXV0aFNlcnZpY2UudXNlci5wcm9maWxlLmxvY2FsZVxyXG4gICAgbGV0IGxhbmcgPSBhd2FpdCB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldEN1cnJlbnRMYW5ndWFnZSgpXHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbGFuZ3VhZ2UnLCBsYW5nKTtcclxuICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5nO1xyXG4gICAgdGhpcy5oZWFkZXJMZWZ0ID0gdGhpcy5sYXlvdXQuZ2V0UHJvcCgnaGVhZGVyLmxlZnQnKSBhcyBzdHJpbmc7XHJcblxyXG4gICAgdGhpcy5nZXRDdXJyZW50VXNlcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudFVzZXIoKSB7XHJcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgbGV0IG9iaiA9IHJlc3VsdCBhcyBhbnk7XHJcbiAgICAgIHRoaXMuaWRlbnRpdHkgPSBvYmoubW9kZWwgYXMgSWRlbnRpdHlNb2RlbDtcclxuICAgICAgdGhpcy5pZGVudGl0eS5uYW1lID0gdGhpcy5pZGVudGl0eS5sb2NhbGUgPT0gXCJlblwiID8gdGhpcy5pZGVudGl0eS5naXZlbk5hbWVFbiA6IHRoaXMuaWRlbnRpdHkuZ2l2ZW5OYW1lQXI7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN3aXRjaExhbmcobGFuZykge1xyXG4gICAgdGhpcy5tYXN0ZXJMYXlvdXRTZXJ2aWNlLnN3aXRjaExhbmcobGFuZyxcIkJCU0YtQnVuZGxlLmNzc1wiLFwiQkJTRi1CdW5kbGUtUlRMLmNzc1wiKVxyXG4gICBcclxuICAgIFxyXG4gIH1cclxuICByZWZyZXNoUGFnZSgpIHtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgfVxyXG5cclxuICAgZ2V0UmVzb3VyY2VWYWx1ZShLZXkpIHtcclxuICAgIHJldHVybiB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoS2V5KTtcclxuICB9XHJcblxyXG4gICBhc3luYyBsb2dvdXQoKXtcclxuICAgIGF3YWl0IHRoaXMuYXV0aFNlcnZpY2Uuc2lnbm91dCgpOyBcclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS0gYmVnaW46OlVzZXIgLS0+XHJcbjxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICBbbmdDbGFzc109XCJ0b29sYmFyQnV0dG9uTWFyZ2luQ2xhc3NcIlxyXG4gICAgIGlkPVwia3RfaGVhZGVyX3VzZXJfbWVudV90b2dnbGVcIj5cclxuICA8YSBjbGFzcz1cImxhbmctc3dpdGNoLWJ0biBidG4gYnRuLWFjdGl2ZS1saWdodC1wcmltYXJ5IGJ0bi1saWdodCBcIiAqbmdJZj1cImxhbmd1YWdlID09ICdhcidcIiAoY2xpY2spPVwic3dpdGNoTGFuZygnZW4nKVwiPlxyXG4gICAgPGkgY2xhc3M9XCJmYXMgZmEtZ2xvYmUgbXItMlwiPjwvaT4gRW5nbGlzaFxyXG4gIDwvYT5cclxuICA8YSBjbGFzcz1cImxhbmctc3dpdGNoLWJ0biBidG4gYnRuLWFjdGl2ZS1saWdodC1wcmltYXJ5IGJ0bi1saWdodFwiICpuZ0lmPVwibGFuZ3VhZ2UgPT0gJ2VuJ1wiIChjbGljayk9XCJzd2l0Y2hMYW5nKCdhcicpXCI+XHJcbiAgICDYp9mE2LnYsdio2YrZhyA8aSBjbGFzcz1cImZhcyBmYS1nbG9iZSBtcy0yXCI+PC9pPlxyXG4gIDwvYT5cclxuICA8ZGl2IG5nYkRyb3Bkb3duIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICAgIDxkaXYgbmdiRHJvcGRvd25Ub2dnbGUgY2xhc3M9XCJidG4gYnRuLWFjdGl2ZS1saWdodCBidG4tbGlnaHQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBiZy1ob3Zlci1saWdodCBweS0yIHB4LTIgcHgtbWQtMyBtcy01XCIgZGF0YS1rdC1tZW51LXRyaWdnZXI9XCJjbGlja1wiIGRhdGEta3QtbWVudS1hdHRhY2g9XCJwYXJlbnRcIiBkYXRhLWt0LW1lbnUtcGxhY2VtZW50PVwiYm90dG9tLWVuZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1ub25lIGQtbWQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1lbmQganVzdGlmeS1jb250ZW50LWNlbnRlciBtZS0yXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW11dGVkIGZzLTcgZnctYm9sZCBsaC0xIG1iLTJcIj57e1V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIZWxsb1wiKX19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYXJrIGZzLWJhc2UgZnctYm9sZGVyIGxoLTFcIj57e2lkZW50aXR5Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCIgc3ltYm9sIHN5bWJvbC0zNXB4XCI+XHJcbiAgICAgICAgPGg2IGNsYXNzPVwic3ltYm9sLWxhYmVsIGZvbnQtc2l6ZS1oNSBmb250LXdlaWdodC1ib2xkIGJnLWxpZ2h0LXN1Y2Nlc3MgbWwtMiBtYi0wXCI+TTwvaDY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBjbGFzcz1cIm1lbnUgbWVudS1zdWIgbWVudS1zdWItZHJvcGRvd24gbWVudS1jb2x1bW4gbWVudS1yb3VuZGVkIG1lbnUtZ3JheS02MDAgbWVudS1zdGF0ZS1iZyBtZW51LXN0YXRlLXByaW1hcnkgZnctYm9sZCBmcy02IHctMjc1cHhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRyb3AtaXRlbVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1jZW50ZXIgYmdpLW5vLXJlcGVhdCByb3VuZGVkLXRvcCBweC05IHB5LTEwXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4vc3JjL2Fzc2V0cy9pbWFnZXMvbWVudS1oZWFkZXItZGFyay5wbmcnKVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtd2hpdGUgZnctYm9sZCBtYi0zXCI+XHJcbiAgICAgICAgICAgIHt7aWRlbnRpdHkubmFtZX19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tYmxvY2sgY3Vyc29yLXBvaW50ZXIgdGV4dC1jZW50ZXIgZC1ibG9jayB3LTEwMFwiIChjbGljayk9XCJsb2dvdXQoKTsgY2xpY2tlZCA9dHJ1ZTtcIiAgW2Rpc2FibGVkXT1cImNsaWNrZWRcIiA+IHt7Z2V0UmVzb3VyY2VWYWx1ZShcIlNpZ24gT3V0XCIpfX08L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjwhLS0gZW5kOjpVc2VyIC0tPlxyXG48IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXJMZWZ0ID09PSAnbWVudSdcIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZC1sZy1ub25lIG1zLTIgbWUtbjNcIlxyXG4gICAgdGl0bGU9XCJTaG93IGhlYWRlciBtZW51XCJcclxuICA+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiXHJcbiAgICAgICAgYnRuIGJ0bi1pY29uIGJ0bi1hY3RpdmUtbGlnaHQtcHJpbWFyeVxyXG4gICAgICAgIHctMzBweFxyXG4gICAgICAgIGgtMzBweFxyXG4gICAgICAgIHctbWQtNDBweFxyXG4gICAgICAgIGgtbWQtNDBweFxyXG4gICAgICBcIlxyXG4gICAgICBpZD1cImt0X2hlYWRlcl9tZW51X21vYmlsZV90b2dnbGVcIlxyXG4gICAgPlxyXG4gICAgICA8c3BhblxyXG4gICAgICAgIFtpbmxpbmVTVkddPVwiJy4vYXNzZXRzL21lZGlhL2ljb25zL2R1b3R1bmUvdGV4dC90eHQwMDEuc3ZnJ1wiXHJcbiAgICAgICAgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCJcclxuICAgICAgPjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj4gLS0+XHJcbiJdfQ==