@bnsights/bbsf-admin-portal 1.0.4 → 1.0.8

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 (150) hide show
  1. package/bnsights-bbsf-admin-portal-1.0.8.tgz +0 -0
  2. package/bundles/bnsights-bbsf-admin-portal.umd.js +8335 -3660
  3. package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
  4. package/esm2015/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.js +2 -2
  5. package/esm2015/lib/Pages/account/account-routing.module.js +9 -1
  6. package/esm2015/lib/Pages/account/account.component.js +15 -6
  7. package/esm2015/lib/Pages/account/account.module.js +19 -8
  8. package/esm2015/lib/Pages/account/activation/activation.component.js +91 -0
  9. package/esm2015/lib/Pages/account/forgot-password/forgot-password.component.js +54 -0
  10. package/esm2015/lib/Pages/account/rest-password/rest-password.component.js +89 -0
  11. package/esm2015/lib/Pages/account/upload-license/upload-license.component.js +70 -0
  12. package/esm2015/lib/Pages/configurations/configuration/configuration.component.js +203 -184
  13. package/esm2015/lib/Pages/core/authentication/auth.guard.js +10 -4
  14. package/esm2015/lib/Pages/core/authentication/auth.service.js +1 -2
  15. package/esm2015/lib/Pages/departments/department/department.component.js +12 -9
  16. package/esm2015/lib/Pages/departments/department-info/department-info.component.js +1 -1
  17. package/esm2015/lib/Pages/departments/departments.module.js +6 -4
  18. package/esm2015/lib/Pages/helpCenter/help-center/help-center.component.js +9 -9
  19. package/esm2015/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.js +9 -9
  20. package/esm2015/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.js +9 -9
  21. package/esm2015/lib/Pages/home/home.component.js +2 -2
  22. package/esm2015/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.js +1 -1
  23. package/esm2015/lib/Pages/jobs/jobs/jobs.component.js +1 -1
  24. package/esm2015/lib/Pages/localizations/localizations.component.js +10 -11
  25. package/esm2015/lib/Pages/lookups/lookup/lookup.component.js +10 -10
  26. package/esm2015/lib/Pages/lookups/lookup-group/lookup-group.component.js +5 -5
  27. package/esm2015/lib/Pages/lookups/lookup-item/lookup-item.component.js +5 -5
  28. package/esm2015/lib/Pages/notifications/add/add.component.js +11 -13
  29. package/esm2015/lib/Pages/notifications/edit/edit.component.js +11 -13
  30. package/esm2015/lib/Pages/notifications/master-layouts/master-layouts.component.js +1 -1
  31. package/esm2015/lib/Pages/notifications/template-info/template-info.component.js +5 -5
  32. package/esm2015/lib/Pages/notifications/templates/templates.component.js +9 -9
  33. package/esm2015/lib/Pages/providers/provider/provider.component.js +2 -1
  34. package/esm2015/lib/Pages/publicHolidays/public-holiday/public-holiday.component.js +78 -84
  35. package/esm2015/lib/Pages/roles/permission-set-info/permission-set-info.component.js +1 -1
  36. package/esm2015/lib/Pages/roles/permissions/permissions.component.js +5 -5
  37. package/esm2015/lib/Pages/roles/permissionsets/permissionsets.component.js +5 -5
  38. package/esm2015/lib/Pages/sectors/department-info/department-info.component.js +1 -1
  39. package/esm2015/lib/Pages/sectors/sector/sector.component.js +5 -5
  40. package/esm2015/lib/Pages/sectors/sector-info/sector-info.component.js +1 -1
  41. package/esm2015/lib/Pages/shared/Enums/ConditionRHSType.js +6 -0
  42. package/esm2015/lib/Pages/shared/Enums/ConfigurationScope.js +8 -0
  43. package/esm2015/lib/Pages/shared/Enums/ConfigurationType.js +8 -0
  44. package/esm2015/lib/Pages/shared/Enums/ConfigurationValueSource.js +6 -0
  45. package/esm2015/lib/Pages/shared/Enums/WFActivityType.js +12 -0
  46. package/esm2015/lib/Pages/shared/Enums/WFVariableDataType.js +14 -0
  47. package/esm2015/lib/Pages/shared/Services/AccountService.service.js +41 -0
  48. package/esm2015/lib/Pages/shared/Services/DepartmentService.service.js +1 -1
  49. package/esm2015/lib/Pages/shared/Services/WorkFlowVersionService.service.js +24 -0
  50. package/esm2015/lib/Pages/shared/Services/WorkflowActivityService.service.js +32 -5
  51. package/esm2015/lib/Pages/shared/Services/WorkflowInstanceService.service.js +24 -0
  52. package/esm2015/lib/Pages/shared/Services/WorkflowLogVariablesService.service.js +24 -0
  53. package/esm2015/lib/Pages/shared/Services/WorkflowService.service.js +12 -4
  54. package/esm2015/lib/Pages/shared/Services/WorkflowVariablesService.service.js +12 -6
  55. package/esm2015/lib/Pages/shared/models/AccountModels/forgotPasswordModel.js +6 -0
  56. package/esm2015/lib/Pages/shared/models/DepartmentModels/DepartmentModel.js +3 -2
  57. package/esm2015/lib/Pages/shared/models/UserModels/ActivationModel.js +3 -0
  58. package/esm2015/lib/Pages/shared/models/WorkflowModels/WFActivityVariablesModel.js +8 -0
  59. package/esm2015/lib/Pages/users/users.component.js +7 -6
  60. package/esm2015/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.js +535 -0
  61. package/esm2015/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.js +852 -0
  62. package/esm2015/lib/Pages/workflows/instance-info/instance-info.component.js +309 -0
  63. package/esm2015/lib/Pages/workflows/tabs/tabs.component.js +611 -430
  64. package/esm2015/lib/Pages/workflows/version-info/version-info.component.js +143 -0
  65. package/esm2015/lib/Pages/workflows/workflow/workflow.component.js +136 -148
  66. package/esm2015/lib/Pages/workflows/workflows-routing.module.js +9 -1
  67. package/esm2015/lib/Pages/workflows/workflows.module.js +7 -3
  68. package/esm2015/lib/masterlayout.component.js +1 -2
  69. package/esm2015/lib/masterlayout.module.js +2 -4
  70. package/esm2015/public-api.js +2 -1
  71. package/fesm2015/bnsights-bbsf-admin-portal.js +7678 -3098
  72. package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
  73. package/lib/Pages/account/account.component.d.ts +5 -1
  74. package/lib/Pages/account/account.module.d.ts +11 -6
  75. package/lib/Pages/account/activation/activation.component.d.ts +32 -0
  76. package/lib/Pages/account/forgot-password/forgot-password.component.d.ts +23 -0
  77. package/lib/Pages/account/rest-password/rest-password.component.d.ts +32 -0
  78. package/lib/Pages/account/upload-license/upload-license.component.d.ts +25 -0
  79. package/lib/Pages/configurations/configuration/configuration.component.d.ts +12 -8
  80. package/lib/Pages/core/authentication/auth.guard.d.ts +1 -0
  81. package/lib/Pages/departments/department/department.component.d.ts +3 -2
  82. package/lib/Pages/departments/department-info/department-info.component.d.ts +1 -1
  83. package/lib/Pages/helpCenter/help-center/help-center.component.d.ts +1 -1
  84. package/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.d.ts +1 -1
  85. package/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.d.ts +1 -1
  86. package/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.d.ts +1 -1
  87. package/lib/Pages/jobs/jobs/jobs.component.d.ts +6 -6
  88. package/lib/Pages/localizations/localizations.component.d.ts +1 -1
  89. package/lib/Pages/lookups/lookup/lookup.component.d.ts +1 -1
  90. package/lib/Pages/lookups/lookup-group/lookup-group.component.d.ts +1 -1
  91. package/lib/Pages/lookups/lookup-item/lookup-item.component.d.ts +1 -1
  92. package/lib/Pages/notifications/master-layouts/master-layouts.component.d.ts +1 -1
  93. package/lib/Pages/notifications/templates/templates.component.d.ts +1 -1
  94. package/lib/Pages/providers/provider/provider.component.d.ts +1 -1
  95. package/lib/Pages/publicHolidays/public-holiday/public-holiday.component.d.ts +12 -15
  96. package/lib/Pages/roles/permission-set-info/permission-set-info.component.d.ts +1 -1
  97. package/lib/Pages/roles/permissions/permissions.component.d.ts +1 -1
  98. package/lib/Pages/roles/permissionsets/permissionsets.component.d.ts +1 -1
  99. package/lib/Pages/sectors/department-info/department-info.component.d.ts +1 -1
  100. package/lib/Pages/sectors/sector/sector.component.d.ts +1 -1
  101. package/lib/Pages/sectors/sector-info/sector-info.component.d.ts +1 -1
  102. package/lib/Pages/shared/Enums/ConditionRHSType.d.ts +4 -0
  103. package/lib/Pages/shared/Enums/ConfigurationScope.d.ts +5 -0
  104. package/lib/Pages/shared/Enums/ConfigurationType.d.ts +6 -0
  105. package/lib/Pages/shared/Enums/ConfigurationValueSource.d.ts +4 -0
  106. package/lib/Pages/shared/Enums/WFActivityType.d.ts +10 -0
  107. package/lib/Pages/shared/Enums/WFVariableDataType.d.ts +12 -0
  108. package/lib/Pages/shared/Services/AccountService.service.d.ts +17 -0
  109. package/lib/Pages/shared/Services/ActiveDirectoryService.service.d.ts +8 -8
  110. package/lib/Pages/shared/Services/ConfigurationsService.service.d.ts +7 -7
  111. package/lib/Pages/shared/Services/DepartmentService.service.d.ts +7 -7
  112. package/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.d.ts +5 -5
  113. package/lib/Pages/shared/Services/HelpCenterService.service.d.ts +8 -8
  114. package/lib/Pages/shared/Services/ImpersonationRuleService.service.d.ts +5 -5
  115. package/lib/Pages/shared/Services/JobsService.service.d.ts +1 -1
  116. package/lib/Pages/shared/Services/LicenseService.service.d.ts +2 -2
  117. package/lib/Pages/shared/Services/LogsService.d.ts +1 -1
  118. package/lib/Pages/shared/Services/LookupGroupsService.service.d.ts +4 -4
  119. package/lib/Pages/shared/Services/LookupService.service.d.ts +14 -14
  120. package/lib/Pages/shared/Services/PermissionSetService.service.d.ts +8 -8
  121. package/lib/Pages/shared/Services/PermissionsService.service.d.ts +5 -5
  122. package/lib/Pages/shared/Services/PublicHolidayService.service.d.ts +6 -6
  123. package/lib/Pages/shared/Services/SectorService.service.d.ts +7 -7
  124. package/lib/Pages/shared/Services/TemplateService.service.d.ts +20 -20
  125. package/lib/Pages/shared/Services/WorkFlowVersionService.service.d.ts +10 -0
  126. package/lib/Pages/shared/Services/WorkflowActivityService.service.d.ts +9 -3
  127. package/lib/Pages/shared/Services/WorkflowInstanceService.service.d.ts +10 -0
  128. package/lib/Pages/shared/Services/WorkflowLogVariablesService.service.d.ts +10 -0
  129. package/lib/Pages/shared/Services/WorkflowService.service.d.ts +5 -3
  130. package/lib/Pages/shared/Services/WorkflowVariablesService.service.d.ts +5 -4
  131. package/lib/Pages/shared/Services/localizationsService.service .d.ts +12 -12
  132. package/lib/Pages/shared/Services/provider.service.d.ts +10 -10
  133. package/lib/Pages/shared/Services/userService.service.d.ts +14 -14
  134. package/lib/Pages/shared/models/AccountModels/forgotPasswordModel.d.ts +3 -0
  135. package/lib/Pages/shared/models/DepartmentModels/DepartmentModel.d.ts +9 -8
  136. package/lib/Pages/shared/models/UserModels/ActivationModel.d.ts +10 -0
  137. package/lib/Pages/shared/models/WorkflowModels/WFActivityVariablesModel.d.ts +13 -0
  138. package/lib/Pages/users/users.component.d.ts +1 -1
  139. package/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.d.ts +77 -0
  140. package/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.d.ts +83 -0
  141. package/lib/Pages/workflows/instance-info/instance-info.component.d.ts +81 -0
  142. package/lib/Pages/workflows/tabs/tabs.component.d.ts +73 -80
  143. package/lib/Pages/workflows/version-info/version-info.component.d.ts +41 -0
  144. package/lib/Pages/workflows/workflow/workflow.component.d.ts +26 -29
  145. package/lib/Pages/workflows/workflows.module.d.ts +19 -15
  146. package/package.json +5 -3
  147. package/public-api.d.ts +1 -0
  148. package/src/lib/assets/sass/core/components/_variables.scss +1 -1
  149. package/src/lib/assets/sass/custom-styles-rtl.scss +5 -0
  150. package/src/lib/assets/sass/custom-styles.scss +38 -0
@@ -37,8 +37,8 @@ export class LookupGroupComponent {
37
37
  let paramArray = [];
38
38
  let ResultModel = this.addLookupGroupForm.value;
39
39
  let AddModel = new LookupGroupModel();
40
- AddModel.Name.Arabic = ResultModel.Name.ArabicValue;
41
- AddModel.Name.English = ResultModel.Name.EnglishValue;
40
+ AddModel.Name.Arabic = ResultModel.Name.Arabic;
41
+ AddModel.Name.English = ResultModel.Name.English;
42
42
  paramArray.push(AddModel);
43
43
  return paramArray;
44
44
  };
@@ -50,8 +50,8 @@ export class LookupGroupComponent {
50
50
  let ResultModel = this.editLookupGroupForm.value;
51
51
  let EditModel = new LookupGroupModel();
52
52
  EditModel.Id = this.lookupGroupId;
53
- EditModel.Name.English = ResultModel.EditName.EnglishValue;
54
- EditModel.Name.Arabic = ResultModel.EditName.ArabicValue;
53
+ EditModel.Name.English = ResultModel.EditName.English;
54
+ EditModel.Name.Arabic = ResultModel.EditName.Arabic;
55
55
  paramArray.push(EditModel);
56
56
  return paramArray;
57
57
  };
@@ -193,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
193
193
  type: ViewChild,
194
194
  args: ['ConfirmationModalControl', { static: false }]
195
195
  }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAtZ3JvdXAvbG9va3VwLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAtZ3JvdXAvbG9va3VwLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaE0sT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7Ozs7QUFZaEYsTUFBTSxPQUFPLG9CQUFvQjtJQW9DL0IsWUFFWSxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixtQkFBd0MsRUFDeEMsWUFBc0IsRUFDdEIscUJBQTJDO1FBSjNDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBdkN4RCxtQkFBbUI7UUFDbEIsV0FBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUE7UUFJeEMscUJBQWdCLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1Qiw2QkFBd0IsR0FBVSxFQUFFLENBQUM7UUFDckMscUNBQWdDLEdBQVUsRUFBRSxDQUFDO1FBRzdDLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBS2hDLG9CQUFvQjtRQUNwQix1QkFBa0IsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUl2QyxxQkFBcUI7UUFDckIsd0JBQW1CLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFReEMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBdUZyQywyQkFBc0IsR0FBRyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxVQUFVLEdBQVUsRUFBRSxDQUFDO1lBQzNCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7WUFDaEQsSUFBSSxRQUFRLEdBQXFCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN4RCxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNwRCxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUN0RCxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFCLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUMsQ0FBQTtRQUVELDhCQUF5QixHQUFHLENBQUMsUUFBUSxFQUFtQixFQUFFO1lBQ3hELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUE7UUFvQ0QsNEJBQXVCLEdBQUcsR0FBRyxFQUFFO1lBQzdCLElBQUksVUFBVSxHQUFVLEVBQUUsQ0FBQztZQUMzQixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO1lBQ2pELElBQUksU0FBUyxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN2QyxTQUFTLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDbEMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDM0QsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDekQsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzQixPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLENBQUE7UUFFRCwrQkFBMEIsR0FBRyxDQUFDLFNBQVMsRUFBbUIsRUFBRTtZQUMxRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDNUQsQ0FBQyxDQUFBO1FBdUJELHNCQUFpQixHQUFHLENBQUMsRUFBVSxFQUFtQixFQUFFO1lBQ2xELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZELENBQUMsQ0FBQTtJQWxLRCxDQUFDO0lBRUQsUUFBUTtRQUNOLG9DQUFvQztRQUNwQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDaEYsZUFBZSxDQUFDLGVBQWUsR0FBRztZQUNoQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO1lBQ2pILEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtTQUU1RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUMsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUYsa0JBQWtCO0lBQ2pCLHdCQUF3QixDQUFDLE1BQU07UUFDN0IsSUFBSSxDQUFDLHdCQUF3QixHQUFHLE1BQU0sQ0FBQztRQUN2QyxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FBQ3RFLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVGLGtCQUFrQjtJQUNqQixZQUFZO1FBQ1YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0QsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQW9CLENBQUM7UUFDeEMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFBO1FBQ3pDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFBO1FBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFckYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQTtRQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixHQUFHLFlBQVksQ0FBQTtRQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUE7UUFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQTtRQUVwRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxHQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcseUJBQXlCLENBQUM7UUFDL0UsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDZCQUE2QixHQUFHLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDekUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUV4RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUU3QixDQUFDO0lBRUEsK0RBQStEO0lBQ2hFLHVCQUF1QixDQUFDLG1CQUFtQjtRQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMseUJBQXlCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQTtRQUNsRSxJQUFJLENBQUMseUJBQXlCLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBQzlFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUM7UUFDdEYsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFBO1FBR25FLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDdEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDeEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFnQkQsZ0VBQWdFO0lBR2hFLDBEQUEwRDtJQUMxRCx3QkFBd0IsQ0FBQyxhQUFrQixFQUFFLG9CQUFvQjtRQUUvRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUE7UUFDcEUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQUNoRixJQUFJLENBQUMsMEJBQTBCLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDO1FBQ3hGLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQTtRQUlwRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQy9FLElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFZLENBQUM7WUFDdEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUV4QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSwwQkFBMEIsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1lBQzVDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1lBQzFELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1lBQzVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQzVDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBRXZDLElBQUksQ0FBQyxhQUFhLEdBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQTtZQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQWdCRCw2REFBNkQ7SUFHNUQsaUVBQWlFO0lBQ2pFLDBCQUEwQixDQUFDLGFBQXFCO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGFBQWEsQ0FBQztRQUMxQyxnQ0FBZ0M7UUFDaEMsSUFBSSxVQUFVLEdBQVUsRUFBRSxDQUFDO1FBQzNCLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksd0JBQXdCLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMseUJBQXlCLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQzlFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBa0IsR0FBRyxVQUFVLENBQUM7UUFDL0QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRXBFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM1QyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBS0EsK0RBQStEO0lBSWhFLHVDQUF1QztJQUN2QyxtRUFBbUU7SUFDbkUsZ0JBQWdCO0lBQ2hCLDZDQUE2QztJQUM3QyxxQkFBcUIsQ0FBQyxXQUFXO1FBQy9CLElBQUcsV0FBVztZQUNkLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQzs7WUFFNUosSUFBSSxDQUFDLGdDQUFnQyxHQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQTtJQUN0RSxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7a0hBak9VLG9CQUFvQjtzR0FBcEIsb0JBQW9CLDhTQ2hCakMsNHFOQTBJQTs0RkQxSGEsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFdBQVcsRUFBRSwrQkFBK0I7aUJBQzdDO2dPQWlCK0QsYUFBYTtzQkFBMUUsU0FBUzt1QkFBQyw4QkFBOEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBa0JGLHdCQUF3QjtzQkFBakYsU0FBUzt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMsIEVuZ2xpc2hBcmFiaWNEVE8sIEZpbHRlckl0ZW0sIEZpbHRlclR5cGUsIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zLCBQYWdpbmdPcHRpb25zLCBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21ldHJvbmljL2NvcmUvc2VydmljZXMvcGFnZS1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb29rdXBHcm91cE1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Mb29rdXBzL0xvb2t1cEdyb3VwTW9kZWwnO1xyXG5pbXBvcnQgeyBMb29rdXBHcm91cHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xvb2t1cEdyb3Vwc1NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgUGFnaW5nQ29tcG9uZW50IH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMvbGliL2NvbnRyb2xzL1BhZ2luZy9QYWdpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzL2xpYi9jb250cm9scy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbG9va3VwLWdyb3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9va3VwLWdyb3VwLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9va3VwR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuXHJcblxyXG4gLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIEFwaVVybCA9IHRoaXMubG9va3VwR3JvdXBzU2VydmljZS5BcGlVcmxcclxuXHJcbiAgIC8vRmlsdGVyIGFuZCBwYWdpbmcgY29tcG9uZW50c1xyXG4gIHNlYXJjaFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIGxvb2t1cEdyb3Vwc0Zvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBzaG93RmlsdGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIGZpbHRlcmVkTG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIGxvb2t1cEdyb3Vwc1BhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICB0ZXh0SW5wdXRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgaXNGaWx0ZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcm9kdWN0aW9uTW9kZTogYm9vbGVhbjtcclxuICBAVmlld0NoaWxkKCdMb29rdXBHcm91cFBhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ0VsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDtcclxuXHJcblxyXG4gIC8vQWRkIE1vZGVsIENvbnRyb2xzXHJcbiAgYWRkTG9va3VwR3JvdXBGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgYWRkTG9va3VwR3JvdXBGb3JtT3B0aW9uczogRm9ybU9wdGlvbnNcclxuICBtdWx0aUxpbmd1YWxOYW1lOiBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9uc1xyXG5cclxuICAvL0VkaXQgTW9kZWwgQ29udHJvbHNcclxuICBlZGl0TG9va3VwR3JvdXBGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgZWRpdExvb2t1cEdyb3VwRm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zXHJcbiAgZWRpdE11bHRpTGluZ3VhbE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zXHJcbiAgbG9va3VwR3JvdXBJZDogbnVtYmVyO1xyXG5cclxuICAvL2RlbGV0ZSAgTW9kZWwgQ29udHJvbHNcclxuICBkZWxldGVkTG9va3VwR3JvdXBJZDogc3RyaW5nO1xyXG4gIGRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnM6IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucztcclxuICBkZWxldGVDb250cm9sTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnQ29uZmlybWF0aW9uTW9kYWxDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIENvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yXHJcbiAgICAoXHJcbiAgICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICAgIHB1YmxpYyAgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIGxvb2t1cEdyb3Vwc1NlcnZpY2U6IExvb2t1cEdyb3Vwc1NlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgICAgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6UmVxdWVzdEhhbmRsZXJTZXJ2aWNlXHJcbiAgICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy9QYWdlIGhlYWRlciAoYnJlYWRjcnVtYiBhbmQgdGl0bGUpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9va3VwR3JvdXBzXCIpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG5cclxuICAgIF07XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgIC8vaW5pdGlhbGl6ZSBwYWdlXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuIC8vUGFnaW5nIGZ1bmN0aW9uc1xyXG4gIHNldExvb2t1cEdyb3VwTGlzdFJlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMubG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5maWx0ZXJlZExvb2t1cEdyb3Vwc1BhZ2luZ1Jlc3VsdCA9IHRoaXMubG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0O1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gIH1cclxuICAgXHJcbiAvL0ZpbHRlciBmdW5jdGlvbnNcclxuICByZXNldEZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmxvb2t1cEdyb3Vwc0Zvcm0uY29udHJvbHNbXCJzZWFyY2hUZXh0Qm94XCJdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgbGV0IGVsZW1lbnQgPSB0aGlzLnBhZ2luZ0VsZW1lbnQgYXMgYW55O1xyXG4gICAgZWxlbWVudC5SZWluaXRpYWxpemVQYWdpbmcoKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guSGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94LlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94LlBsYWNlaG9sZGVyID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2VhcmNoQnlOYW1lXCIpXHJcblxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcInNlYXJjaFRleHRcIlxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3hcclxuXHJcbiAgICB0aGlzLmxvb2t1cEdyb3Vwc1BhZ2luZyA9IG5ldyBQYWdpbmdPcHRpb25zKCk7XHJcbiAgICB0aGlzLmxvb2t1cEdyb3Vwc1BhZ2luZy5BY3Rpb25Qb3N0VVJMID10aGlzLkFwaVVybCArICdHZXRMb29rdXBHcm91cHNCeUZpbHRlcic7XHJcbiAgICB0aGlzLmxvb2t1cEdyb3Vwc1BhZ2luZy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcInNlYXJjaFRleHRCb3hcIl1cclxuICAgIHRoaXMubG9va3VwR3JvdXBzUGFnaW5nLkZpbHRlcnMgPSBbdGhpcy50ZXh0SW5wdXRGaWx0ZXJdXHJcblxyXG4gICAgdGhpcy5pc0ZpbHRlckxvYWRlZCA9IHRydWU7XHJcblxyXG4gIH1cclxuXHJcbiAgIC8vLy8vLy8vLy8vLy8gU3RhcnQgYWRkIExvb2t1cCBHcm91cCBQYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIHNob3dBZGRMb29rdXBHcm91cE1vZGFsKEFkZExvb2t1cEdyb3VwTW9kYWwpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICB0aGlzLmFkZExvb2t1cEdyb3VwRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuYWRkTG9va3VwR3JvdXBGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgdGhpcy5hZGRMb29rdXBHcm91cEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuYWRkTG9va3VwR3JvdXBGb3JtXHJcbiAgICB0aGlzLmFkZExvb2t1cEdyb3VwRm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkTG9va3VwR3JvdXBNb2RlbDtcclxuICAgIHRoaXMuYWRkTG9va3VwR3JvdXBGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEFkZExvb2t1cEdyb3VwRnVuY3Rpb247XHJcbiAgICB0aGlzLmFkZExvb2t1cEdyb3VwRm9ybU9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50XHJcblxyXG5cclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLk5hbWUgPSBcIk5hbWVcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5BcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuVmFsdWUgPSBudWxsO1xyXG5cclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQWRkTG9va3VwR3JvdXBNb2RhbCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgfVxyXG4gIFxyXG5cclxuICBnZXRBZGRMb29rdXBHcm91cE1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLmFkZExvb2t1cEdyb3VwRm9ybS52YWx1ZTtcclxuICAgIGxldCBBZGRNb2RlbDogTG9va3VwR3JvdXBNb2RlbCA9IG5ldyBMb29rdXBHcm91cE1vZGVsKCk7XHJcbiAgICBBZGRNb2RlbC5OYW1lLkFyYWJpYyA9IFJlc3VsdE1vZGVsLk5hbWUuQXJhYmljVmFsdWU7XHJcbiAgICBBZGRNb2RlbC5OYW1lLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5OYW1lLkVuZ2xpc2hWYWx1ZTtcclxuICAgIHBhcmFtQXJyYXkucHVzaChBZGRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEFkZExvb2t1cEdyb3VwRnVuY3Rpb24gPSAoQWRkTW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG9va3VwR3JvdXBzU2VydmljZS5hZGRMb29rdXBHcm91cChBZGRNb2RlbCk7XHJcbiAgfVxyXG4gIC8vLy8vLy8vLy8vLyBFbmQgb2YgYWRkIExvb2t1cCBHcm91cCBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcblxyXG4gIC8vLy8vLy8vLy8vU3RhcnQgb2YgZWRpdCBMb29rdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBzaG93RWRpdExvb2t1cEdyb3VwTW9kYWwobG9va3VwR3JvdXBJRDogYW55LCBlZGl0TG9va3VwR3JvdXBNb2RhbCkge1xyXG5cclxuICAgIHRoaXMuZWRpdExvb2t1cEdyb3VwRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuZWRpdExvb2t1cEdyb3VwRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuZWRpdExvb2t1cEdyb3VwRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5lZGl0TG9va3VwR3JvdXBGb3JtXHJcbiAgICB0aGlzLmVkaXRMb29rdXBHcm91cEZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEVkaXRMb29rdXBHcm91cE1vZGVsO1xyXG4gICAgdGhpcy5lZGl0TG9va3VwR3JvdXBGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEVkaXRMb29rdXBHcm91cEZ1bmN0aW9uO1xyXG4gICAgdGhpcy5lZGl0TG9va3VwR3JvdXBGb3JtT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuXHJcblxyXG5cclxuICAgIHRoaXMubG9va3VwR3JvdXBzU2VydmljZS5nZXRMb29rdXBHcm91cChsb29rdXBHcm91cElEKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGxldCBMb29rdXBHcm91cCA9IHJlc3VsdC5tb2RlbCBhcyBhbnk7XHJcbiAgICAgIGxldCBuYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgbmFtZS5BcmFiaWMgPSBMb29rdXBHcm91cC5uYW1lLmFyYWJpYztcclxuICAgICAgbmFtZS5FbmdsaXNoID0gTG9va3VwR3JvdXAubmFtZS5lbmdsaXNoO1xyXG5cclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLk5hbWUgPSBcIkVkaXROYW1lXCI7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUuQXJhYmljTGFiZWxLZXkgPSBcIk5hbWVJbkFyYWJpY1wiO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLkVuZ2xpc2hMYWJlbEtleSA9IFwiTmFtZUluRW5nbGlzaFwiO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLlZhbHVlID0gbmFtZTtcclxuXHJcbiAgICAgIHRoaXMubG9va3VwR3JvdXBJZCA9TG9va3VwR3JvdXAuaWRcclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihlZGl0TG9va3VwR3JvdXBNb2RhbCk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG4gIFxyXG4gIGdldEVkaXRMb29rdXBHcm91cE1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLmVkaXRMb29rdXBHcm91cEZvcm0udmFsdWU7XHJcbiAgICBsZXQgRWRpdE1vZGVsID0gbmV3IExvb2t1cEdyb3VwTW9kZWwoKTtcclxuICAgIEVkaXRNb2RlbC5JZCA9IHRoaXMubG9va3VwR3JvdXBJZDtcclxuICAgIEVkaXRNb2RlbC5OYW1lLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5FZGl0TmFtZS5FbmdsaXNoVmFsdWU7XHJcbiAgICBFZGl0TW9kZWwuTmFtZS5BcmFiaWMgPSBSZXN1bHRNb2RlbC5FZGl0TmFtZS5BcmFiaWNWYWx1ZTtcclxuICAgIHBhcmFtQXJyYXkucHVzaChFZGl0TW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRFZGl0TG9va3VwR3JvdXBGdW5jdGlvbiA9IChFZGl0TW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG9va3VwR3JvdXBzU2VydmljZS5lZGl0TG9va3VwR3JvdXAoRWRpdE1vZGVsKVxyXG4gIH1cclxuICAvLy8vLy8vLy8vL0VuZCBvZiBlZGl0IExvb2t1cEdyb3VwIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cclxuICAgLy8vLy8vLy8vLy9TdGFydCBvZiBkZWxldGUgTG9va3VwR3JvdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgc2hvd0RlbGV0ZUxvb2t1cEdyb3VwTW9kYWwobG9va3VwR3JvdXBJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbnRyb2xMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuZGVsZXRlZExvb2t1cEdyb3VwSWQgPSBsb29rdXBHcm91cElkO1xyXG4gICAgLy9hcnJheSBzZW50IHRvIHNlcnZpY2UgZnVuY3Rpb25cclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKHRoaXMuZGVsZXRlZExvb2t1cEdyb3VwSWQpO1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucyA9IG5ldyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMoKTtcclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmRlbGV0ZUxvb2t1cEdyb3VwO1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLlNlcnZpY2VTdWJtaXRNb2RlbCA9IHBhcmFtQXJyYXk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd01vZGFsKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlTG9va3VwR3JvdXAgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb29rdXBHcm91cHNTZXJ2aWNlLmRlbGV0ZUxvb2t1cEdyb3VwKGlkKVxyXG4gIH1cclxuICAgLy8vLy8vLy8vLy9FbmQgb2YgZGVsZXRlIExvb2t1cEdyb3VwIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cclxuICBcclxuICAvKipGdW5jdGlvbk5hbWU6ZmlsdGVyTG9va3VwR3JvdXBMaXN0Ki9cclxuICAvKipEZWNsYXJhdGlvbjpmdW5jdGlvbiB0byBmaWx0ZXIgTG9va3VwR3JvdXBMaXN0IGluIGNsaWVudC1zaWRlICovXHJcbiAgLyoqUGFyYW1ldGVyczoqL1xyXG4gIC8qKnNlYXJjaFZhbHVlOiBjdXJyZW50IHZhbHVlIG9mIHNlYXJjaCBib3gqL1xyXG4gIGZpbHRlckxvb2t1cEdyb3VwTGlzdChzZWFyY2hWYWx1ZSl7XHJcbiAgICBpZihzZWFyY2hWYWx1ZSlcclxuICAgIHRoaXMuZmlsdGVyZWRMb29rdXBHcm91cHNQYWdpbmdSZXN1bHQ9IHRoaXMubG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0LmZpbHRlcihpdGVtID0+IGl0ZW0ubG9va3VwR3JvdXBOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpO1xyXG4gICAgZWxzZVxyXG4gICAgdGhpcy5maWx0ZXJlZExvb2t1cEdyb3Vwc1BhZ2luZ1Jlc3VsdD0gdGhpcy5sb29rdXBHcm91cHNQYWdpbmdSZXN1bHRcclxuICB9XHJcblxyXG4gIC8vLy8vLy8vLy8vRGVzdHJveSBPYnNlcnZhYmxlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuXHJcbiAgPCEtLSBQYWdlIENvbnRlbnQgLS0+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCIgKm5nSWY9XCJpc0ZpbHRlckxvYWRlZFwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInNlYXJjaFRleHRCb3hcIiAgIChPbkNoYW5nZSk9XCJmaWx0ZXJMb29rdXBHcm91cExpc3QoJGV2ZW50KVwiIFtncm91cF09XCJsb29rdXBHcm91cHNGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPCEtLSBiZWdpbjo6TWVudSAtLT5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIHRpdGxlPVwiQWRkXCIgIChjbGljayk9XCJzaG93QWRkTG9va3VwR3JvdXBNb2RhbChBZGRMb29rdXBHcm91cE1vZGFsKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8IS0tIGVuZDo6TWVudSAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICA8IS0tYmVnaW46Okxvb2t1cEdyb3VwcyBsaXN0LS0+XHJcbiAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1zdGFydCB0ZXh0LWdyYXktNDAwIGZ3LWJvbGRlciBmcy03IHRleHQtdXBwZXJjYXNlIGdzLTBcIj5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTmFtZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3Rpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcblxyXG4gICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgTG9va3VwR3JvdXAgb2YgZmlsdGVyZWRMb29rdXBHcm91cHNQYWdpbmdSZXN1bHRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYXJrXCI+e3tMb29rdXBHcm91cC5sb29rdXBHcm91cE5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tbGlnaHQgYnRuLWFjdGl2ZS1saWdodC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVsbGlwc2lzLWhcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wLWl0ZW0gcHgtM1wiIG5nYkRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dFZGl0TG9va3VwR3JvdXBNb2RhbChMb29rdXBHcm91cC5pZEVuY3J5cHRlZCxFZGl0TG9va3VwR3JvdXBNb2RhbClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVkaXRcIil9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlTG9va3VwR3JvdXBNb2RhbChMb29rdXBHcm91cC5pZEVuY3J5cHRlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZVwiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDx0ciAqbmdJZj1cImZpbHRlcmVkTG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIj5cclxuICAgICAgICAgICAgICAgICAgPGxpYi1lbXB0eS1kYXRhPjwvbGliLWVtcHR5LWRhdGE+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgICAgIDwhLS1lbmQ6Okxvb2t1cEdyb3VwcyBsaXN0LS0+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPEJCU0YtUGFnaW5nIChJdGVtcyk9XCJzZXRMb29rdXBHcm91cExpc3RSZXN1bHQoJGV2ZW50KVwiICpuZ0lmPVwiaXNGaWx0ZXJMb2FkZWRcIiBbb3B0aW9uc109XCJsb29rdXBHcm91cHNQYWdpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZ3JvdXBdPVwibG9va3VwR3JvdXBzRm9ybVwiICNMb29rdXBHcm91cFBhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbiAgPCEtLSBBZGQgTW9kYWwgLS0+XHJcbiAgPG5nLXRlbXBsYXRlICNBZGRMb29rdXBHcm91cE1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkXCIpfX0ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9va3VwR3JvdXBcIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImFkZExvb2t1cEdyb3VwRm9ybU9wdGlvbnNcIj5cclxuICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIm11bHRpTGluZ3VhbE5hbWVcIiBbZ3JvdXBdPVwiYWRkTG9va3VwR3JvdXBGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjQ2xvc2VMb29rdXBHcm91cE1vZGFsIGlkPVwiQ2xvc2VMb29rdXBHcm91cE1vZGFsXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fSA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNhdmVMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvQkJTRi1Gb3JtPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuXHJcbiAgPCEtLSBFZGl0IE1vZGFsIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSAjRWRpdExvb2t1cEdyb3VwTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX0ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9va3VwR3JvdXBcIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImVkaXRMb29rdXBHcm91cEZvcm1PcHRpb25zXCI+XHJcbiAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJlZGl0TXVsdGlMaW5ndWFsTmFtZVwiIFtncm91cF09XCJlZGl0TG9va3VwR3JvdXBGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjQ2xvc2VFZGl0TG9va3VwR3JvdXBNb2RhbCBpZD1cIkNsb3NlRWRpdExvb2t1cEdyb3VwTW9kYWxcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19IDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9CQlNGLUZvcm0+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG4gPCEtLWRlbGV0ZSBNb2RhbC0tPlxyXG48QkJTRi1Db25maXJtYXRpb25Nb2RhbCAqbmdJZj1cImRlbGV0ZUNvbnRyb2xMb2FkZWRcIiBbb3B0aW9uc109XCJkZWxldGVDb25maXJtYXRpb25PcHRpb25zXCIgaWQ9XCJDb25maXJtYXRpb25Nb2RhbENvbnRyb2xcIlxyXG4jQ29uZmlybWF0aW9uTW9kYWxDb250cm9sPjwvQkJTRi1Db25maXJtYXRpb25Nb2RhbD5cclxuXHJcblxyXG5cclxuIl19
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAtZ3JvdXAvbG9va3VwLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAtZ3JvdXAvbG9va3VwLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaE0sT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7Ozs7QUFZaEYsTUFBTSxPQUFPLG9CQUFvQjtJQW9DL0IsWUFFWSxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixtQkFBd0MsRUFDeEMsWUFBc0IsRUFDdEIscUJBQTJDO1FBSjNDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBdkN4RCxtQkFBbUI7UUFD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QywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMsIEVuZ2xpc2hBcmFiaWNEVE8sIEZpbHRlckl0ZW0sIEZpbHRlclR5cGUsIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zLCBQYWdpbmdPcHRpb25zLCBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21ldHJvbmljL2NvcmUvc2VydmljZXMvcGFnZS1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb29rdXBHcm91cE1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Mb29rdXBzL0xvb2t1cEdyb3VwTW9kZWwnO1xyXG5pbXBvcnQgeyBMb29rdXBHcm91cHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xvb2t1cEdyb3Vwc1NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgUGFnaW5nQ29tcG9uZW50IH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMvbGliL2NvbnRyb2xzL1BhZ2luZy9QYWdpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzL2xpYi9jb250cm9scy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbG9va3VwLWdyb3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9va3VwLWdyb3VwLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9va3VwR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuXHJcblxyXG4gLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIEFwaVVybCA9IHRoaXMubG9va3VwR3JvdXBzU2VydmljZS5BcGlVcmxcclxuXHJcbiAgIC8vRmlsdGVyIGFuZCBwYWdpbmcgY29tcG9uZW50c1xyXG4gIHNlYXJjaFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIGxvb2t1cEdyb3Vwc0Zvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBzaG93RmlsdGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIGZpbHRlcmVkTG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIGxvb2t1cEdyb3Vwc1BhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICB0ZXh0SW5wdXRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgaXNGaWx0ZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcm9kdWN0aW9uTW9kZTogYm9vbGVhbjtcclxuICBAVmlld0NoaWxkKCdMb29rdXBHcm91cFBhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ0VsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG5cclxuXHJcbiAgLy9BZGQgTW9kZWwgQ29udHJvbHNcclxuICBhZGRMb29rdXBHcm91cEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBhZGRMb29rdXBHcm91cEZvcm1PcHRpb25zOiBGb3JtT3B0aW9uc1xyXG4gIG11bHRpTGluZ3VhbE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zXHJcblxyXG4gIC8vRWRpdCBNb2RlbCBDb250cm9sc1xyXG4gIGVkaXRMb29rdXBHcm91cEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBlZGl0TG9va3VwR3JvdXBGb3JtT3B0aW9uczogRm9ybU9wdGlvbnNcclxuICBlZGl0TXVsdGlMaW5ndWFsTmFtZTogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnNcclxuICBsb29rdXBHcm91cElkOiBudW1iZXI7XHJcblxyXG4gIC8vZGVsZXRlICBNb2RlbCBDb250cm9sc1xyXG4gIGRlbGV0ZWRMb29rdXBHcm91cElkOiBzdHJpbmc7XHJcbiAgZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9uczogQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zO1xyXG4gIGRlbGV0ZUNvbnRyb2xMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdDb25maXJtYXRpb25Nb2RhbENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudDtcclxuXHJcbiAgY29uc3RydWN0b3JcclxuICAgIChcclxuICAgICAgcHJpdmF0ZSBwYWdlSW5mb1NlcnZpY2U6IFBhZ2VJbmZvU2VydmljZSxcclxuICAgICAgcHVibGljICB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgbG9va3VwR3JvdXBzU2VydmljZTogTG9va3VwR3JvdXBzU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICAgICBwcml2YXRlIHJlcXVlc3RIYW5kbGVyU2VydmljZTpSZXF1ZXN0SGFuZGxlclNlcnZpY2VcclxuICAgICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvL1BhZ2UgaGVhZGVyIChicmVhZGNydW1iIGFuZCB0aXRsZSlcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlVGl0bGUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMb29rdXBHcm91cHNcIilcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnMgPSBbXHJcbiAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvbWVcIiksIHBhdGg6ICcvQWRtaW4vSG9tZScsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9XHJcblxyXG4gICAgXTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZVRpdGxlKCk7XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG4gICAgLy9pbml0aWFsaXplIHBhZ2VcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuICB9XHJcblxyXG4gLy9QYWdpbmcgZnVuY3Rpb25zXHJcbiAgc2V0TG9va3VwR3JvdXBMaXN0UmVzdWx0KHJlc3VsdCkge1xyXG4gICAgdGhpcy5sb29rdXBHcm91cHNQYWdpbmdSZXN1bHQgPSByZXN1bHQ7XHJcbiAgICB0aGlzLmZpbHRlcmVkTG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0ID0gdGhpcy5sb29rdXBHcm91cHNQYWdpbmdSZXN1bHQ7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgfVxyXG4gICBcclxuIC8vRmlsdGVyIGZ1bmN0aW9uc1xyXG4gIHJlc2V0RmlsdGVycygpIHtcclxuICAgIHRoaXMubG9va3VwR3JvdXBzRm9ybS5jb250cm9sc1tcInNlYXJjaFRleHRCb3hcIl0uc2V0VmFsdWUobnVsbCk7XHJcbiAgICBsZXQgZWxlbWVudCA9IHRoaXMucGFnaW5nRWxlbWVudCBhcyBhbnk7XHJcbiAgICBlbGVtZW50LlJlaW5pdGlhbGl6ZVBhZ2luZygpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3ggPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveC5OYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveC5IaWRlTGFiZWwgPSB0cnVlXHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guVHlwZSA9IElucHV0VHlwZS5UZXh0XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guUGxhY2Vob2xkZXIgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTZWFyY2hCeU5hbWVcIilcclxuXHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcInNlYXJjaFRleHRCb3hcIlxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwic2VhcmNoVGV4dFwiXHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuVGV4dEJveFxyXG5cclxuICAgIHRoaXMubG9va3VwR3JvdXBzUGFnaW5nID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMubG9va3VwR3JvdXBzUGFnaW5nLkFjdGlvblBvc3RVUkwgPXRoaXMuQXBpVXJsICsgJ0dldExvb2t1cEdyb3Vwc0J5RmlsdGVyJztcclxuICAgIHRoaXMubG9va3VwR3JvdXBzUGFnaW5nLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gW1wic2VhcmNoVGV4dEJveFwiXVxyXG4gICAgdGhpcy5sb29rdXBHcm91cHNQYWdpbmcuRmlsdGVycyA9IFt0aGlzLnRleHRJbnB1dEZpbHRlcl1cclxuXHJcbiAgICB0aGlzLmlzRmlsdGVyTG9hZGVkID0gdHJ1ZTtcclxuXHJcbiAgfVxyXG5cclxuICAgLy8vLy8vLy8vLy8vLyBTdGFydCBhZGQgTG9va3VwIEdyb3VwIFBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgc2hvd0FkZExvb2t1cEdyb3VwTW9kYWwoQWRkTG9va3VwR3JvdXBNb2RhbCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKTtcclxuICAgIHRoaXMuYWRkTG9va3VwR3JvdXBGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgdGhpcy5hZGRMb29rdXBHcm91cEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmFkZExvb2t1cEdyb3VwRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5hZGRMb29rdXBHcm91cEZvcm1cclxuICAgIHRoaXMuYWRkTG9va3VwR3JvdXBGb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRMb29rdXBHcm91cE1vZGVsO1xyXG4gICAgdGhpcy5hZGRMb29rdXBHcm91cEZvcm1PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkTG9va3VwR3JvdXBGdW5jdGlvbjtcclxuICAgIHRoaXMuYWRkTG9va3VwR3JvdXBGb3JtT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuXHJcblxyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuTmFtZSA9IFwiTmFtZVwiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLkFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5FbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5WYWx1ZSA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihBZGRMb29rdXBHcm91cE1vZGFsKTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICB9XHJcbiAgXHJcblxyXG4gIGdldEFkZExvb2t1cEdyb3VwTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuYWRkTG9va3VwR3JvdXBGb3JtLnZhbHVlO1xyXG4gICAgbGV0IEFkZE1vZGVsOiBMb29rdXBHcm91cE1vZGVsID0gbmV3IExvb2t1cEdyb3VwTW9kZWwoKTtcclxuICAgIEFkZE1vZGVsLk5hbWUuQXJhYmljID0gUmVzdWx0TW9kZWwuTmFtZS5BcmFiaWM7XHJcbiAgICBBZGRNb2RlbC5OYW1lLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5OYW1lLkVuZ2xpc2g7XHJcbiAgICBwYXJhbUFycmF5LnB1c2goQWRkTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRBZGRMb29rdXBHcm91cEZ1bmN0aW9uID0gKEFkZE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmxvb2t1cEdyb3Vwc1NlcnZpY2UuYWRkTG9va3VwR3JvdXAoQWRkTW9kZWwpO1xyXG4gIH1cclxuICAvLy8vLy8vLy8vLy8gRW5kIG9mIGFkZCBMb29rdXAgR3JvdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cclxuICAvLy8vLy8vLy8vL1N0YXJ0IG9mIGVkaXQgTG9va3VwIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgc2hvd0VkaXRMb29rdXBHcm91cE1vZGFsKGxvb2t1cEdyb3VwSUQ6IGFueSwgZWRpdExvb2t1cEdyb3VwTW9kYWwpIHtcclxuXHJcbiAgICB0aGlzLmVkaXRMb29rdXBHcm91cEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICB0aGlzLmVkaXRMb29rdXBHcm91cEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmVkaXRMb29rdXBHcm91cEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuZWRpdExvb2t1cEdyb3VwRm9ybVxyXG4gICAgdGhpcy5lZGl0TG9va3VwR3JvdXBGb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0TG9va3VwR3JvdXBNb2RlbDtcclxuICAgIHRoaXMuZWRpdExvb2t1cEdyb3VwRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0TG9va3VwR3JvdXBGdW5jdGlvbjtcclxuICAgIHRoaXMuZWRpdExvb2t1cEdyb3VwRm9ybU9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50XHJcblxyXG5cclxuXHJcbiAgICB0aGlzLmxvb2t1cEdyb3Vwc1NlcnZpY2UuZ2V0TG9va3VwR3JvdXAobG9va3VwR3JvdXBJRCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgTG9va3VwR3JvdXAgPSByZXN1bHQubW9kZWwgYXMgYW55O1xyXG4gICAgICBsZXQgbmFtZSA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgIG5hbWUuQXJhYmljID0gTG9va3VwR3JvdXAubmFtZS5hcmFiaWM7XHJcbiAgICAgIG5hbWUuRW5nbGlzaCA9IExvb2t1cEdyb3VwLm5hbWUuZW5nbGlzaDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5OYW1lID0gXCJFZGl0TmFtZVwiO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLkFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5FbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5WYWx1ZSA9IG5hbWU7XHJcblxyXG4gICAgICB0aGlzLmxvb2t1cEdyb3VwSWQgPUxvb2t1cEdyb3VwLmlkXHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oZWRpdExvb2t1cEdyb3VwTW9kYWwpO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuICBcclxuICBnZXRFZGl0TG9va3VwR3JvdXBNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5lZGl0TG9va3VwR3JvdXBGb3JtLnZhbHVlO1xyXG4gICAgbGV0IEVkaXRNb2RlbCA9IG5ldyBMb29rdXBHcm91cE1vZGVsKCk7XHJcbiAgICBFZGl0TW9kZWwuSWQgPSB0aGlzLmxvb2t1cEdyb3VwSWQ7XHJcbiAgICBFZGl0TW9kZWwuTmFtZS5FbmdsaXNoID0gUmVzdWx0TW9kZWwuRWRpdE5hbWUuRW5nbGlzaDtcclxuICAgIEVkaXRNb2RlbC5OYW1lLkFyYWJpYyA9IFJlc3VsdE1vZGVsLkVkaXROYW1lLkFyYWJpYztcclxuICAgIHBhcmFtQXJyYXkucHVzaChFZGl0TW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRFZGl0TG9va3VwR3JvdXBGdW5jdGlvbiA9IChFZGl0TW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG9va3VwR3JvdXBzU2VydmljZS5lZGl0TG9va3VwR3JvdXAoRWRpdE1vZGVsKVxyXG4gIH1cclxuICAvLy8vLy8vLy8vL0VuZCBvZiBlZGl0IExvb2t1cEdyb3VwIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cclxuICAgLy8vLy8vLy8vLy9TdGFydCBvZiBkZWxldGUgTG9va3VwR3JvdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgc2hvd0RlbGV0ZUxvb2t1cEdyb3VwTW9kYWwobG9va3VwR3JvdXBJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbnRyb2xMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuZGVsZXRlZExvb2t1cEdyb3VwSWQgPSBsb29rdXBHcm91cElkO1xyXG4gICAgLy9hcnJheSBzZW50IHRvIHNlcnZpY2UgZnVuY3Rpb25cclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKHRoaXMuZGVsZXRlZExvb2t1cEdyb3VwSWQpO1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucyA9IG5ldyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMoKTtcclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmRlbGV0ZUxvb2t1cEdyb3VwO1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLlNlcnZpY2VTdWJtaXRNb2RlbCA9IHBhcmFtQXJyYXk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd01vZGFsKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlTG9va3VwR3JvdXAgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb29rdXBHcm91cHNTZXJ2aWNlLmRlbGV0ZUxvb2t1cEdyb3VwKGlkKVxyXG4gIH1cclxuICAgLy8vLy8vLy8vLy9FbmQgb2YgZGVsZXRlIExvb2t1cEdyb3VwIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cclxuICBcclxuICAvKipGdW5jdGlvbk5hbWU6ZmlsdGVyTG9va3VwR3JvdXBMaXN0Ki9cclxuICAvKipEZWNsYXJhdGlvbjpmdW5jdGlvbiB0byBmaWx0ZXIgTG9va3VwR3JvdXBMaXN0IGluIGNsaWVudC1zaWRlICovXHJcbiAgLyoqUGFyYW1ldGVyczoqL1xyXG4gIC8qKnNlYXJjaFZhbHVlOiBjdXJyZW50IHZhbHVlIG9mIHNlYXJjaCBib3gqL1xyXG4gIGZpbHRlckxvb2t1cEdyb3VwTGlzdChzZWFyY2hWYWx1ZSl7XHJcbiAgICBpZihzZWFyY2hWYWx1ZSlcclxuICAgIHRoaXMuZmlsdGVyZWRMb29rdXBHcm91cHNQYWdpbmdSZXN1bHQ9IHRoaXMubG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0LmZpbHRlcihpdGVtID0+IGl0ZW0ubG9va3VwR3JvdXBOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpO1xyXG4gICAgZWxzZVxyXG4gICAgdGhpcy5maWx0ZXJlZExvb2t1cEdyb3Vwc1BhZ2luZ1Jlc3VsdD0gdGhpcy5sb29rdXBHcm91cHNQYWdpbmdSZXN1bHRcclxuICB9XHJcblxyXG4gIC8vLy8vLy8vLy8vRGVzdHJveSBPYnNlcnZhYmxlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuXHJcbiAgPCEtLSBQYWdlIENvbnRlbnQgLS0+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCIgKm5nSWY9XCJpc0ZpbHRlckxvYWRlZFwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInNlYXJjaFRleHRCb3hcIiAgIChPbkNoYW5nZSk9XCJmaWx0ZXJMb29rdXBHcm91cExpc3QoJGV2ZW50KVwiIFtncm91cF09XCJsb29rdXBHcm91cHNGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPCEtLSBiZWdpbjo6TWVudSAtLT5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIHRpdGxlPVwiQWRkXCIgIChjbGljayk9XCJzaG93QWRkTG9va3VwR3JvdXBNb2RhbChBZGRMb29rdXBHcm91cE1vZGFsKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8IS0tIGVuZDo6TWVudSAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICA8IS0tYmVnaW46Okxvb2t1cEdyb3VwcyBsaXN0LS0+XHJcbiAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1zdGFydCB0ZXh0LWdyYXktNDAwIGZ3LWJvbGRlciBmcy03IHRleHQtdXBwZXJjYXNlIGdzLTBcIj5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTmFtZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3Rpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcblxyXG4gICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgTG9va3VwR3JvdXAgb2YgZmlsdGVyZWRMb29rdXBHcm91cHNQYWdpbmdSZXN1bHRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYXJrXCI+e3tMb29rdXBHcm91cC5sb29rdXBHcm91cE5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tbGlnaHQgYnRuLWFjdGl2ZS1saWdodC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVsbGlwc2lzLWhcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wLWl0ZW0gcHgtM1wiIG5nYkRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dFZGl0TG9va3VwR3JvdXBNb2RhbChMb29rdXBHcm91cC5pZEVuY3J5cHRlZCxFZGl0TG9va3VwR3JvdXBNb2RhbClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVkaXRcIil9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlTG9va3VwR3JvdXBNb2RhbChMb29rdXBHcm91cC5pZEVuY3J5cHRlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZVwiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDx0ciAqbmdJZj1cImZpbHRlcmVkTG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIj5cclxuICAgICAgICAgICAgICAgICAgPGxpYi1lbXB0eS1kYXRhPjwvbGliLWVtcHR5LWRhdGE+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgICAgIDwhLS1lbmQ6Okxvb2t1cEdyb3VwcyBsaXN0LS0+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPEJCU0YtUGFnaW5nIChJdGVtcyk9XCJzZXRMb29rdXBHcm91cExpc3RSZXN1bHQoJGV2ZW50KVwiICpuZ0lmPVwiaXNGaWx0ZXJMb2FkZWRcIiBbb3B0aW9uc109XCJsb29rdXBHcm91cHNQYWdpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZ3JvdXBdPVwibG9va3VwR3JvdXBzRm9ybVwiICNMb29rdXBHcm91cFBhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbiAgPCEtLSBBZGQgTW9kYWwgLS0+XHJcbiAgPG5nLXRlbXBsYXRlICNBZGRMb29rdXBHcm91cE1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkXCIpfX0ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9va3VwR3JvdXBcIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImFkZExvb2t1cEdyb3VwRm9ybU9wdGlvbnNcIj5cclxuICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIm11bHRpTGluZ3VhbE5hbWVcIiBbZ3JvdXBdPVwiYWRkTG9va3VwR3JvdXBGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjQ2xvc2VMb29rdXBHcm91cE1vZGFsIGlkPVwiQ2xvc2VMb29rdXBHcm91cE1vZGFsXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fSA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNhdmVMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvQkJTRi1Gb3JtPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuXHJcbiAgPCEtLSBFZGl0IE1vZGFsIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSAjRWRpdExvb2t1cEdyb3VwTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX0ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9va3VwR3JvdXBcIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImVkaXRMb29rdXBHcm91cEZvcm1PcHRpb25zXCI+XHJcbiAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJlZGl0TXVsdGlMaW5ndWFsTmFtZVwiIFtncm91cF09XCJlZGl0TG9va3VwR3JvdXBGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjQ2xvc2VFZGl0TG9va3VwR3JvdXBNb2RhbCBpZD1cIkNsb3NlRWRpdExvb2t1cEdyb3VwTW9kYWxcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19IDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9CQlNGLUZvcm0+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG4gPCEtLWRlbGV0ZSBNb2RhbC0tPlxyXG48QkJTRi1Db25maXJtYXRpb25Nb2RhbCAqbmdJZj1cImRlbGV0ZUNvbnRyb2xMb2FkZWRcIiBbb3B0aW9uc109XCJkZWxldGVDb25maXJtYXRpb25PcHRpb25zXCIgaWQ9XCJDb25maXJtYXRpb25Nb2RhbENvbnRyb2xcIlxyXG4jQ29uZmlybWF0aW9uTW9kYWxDb250cm9sPjwvQkJTRi1Db25maXJtYXRpb25Nb2RhbD5cclxuXHJcblxyXG5cclxuIl19
@@ -50,8 +50,8 @@ export class LookupItemComponent {
50
50
  let paramArray = [];
51
51
  let ResultModel = this.addLookupItemForm.value;
52
52
  let AddModel = new LookUpItem();
53
- AddModel.Name.English = ResultModel.Name.EnglishValue;
54
- AddModel.Name.Arabic = ResultModel.Name.ArabicValue;
53
+ AddModel.Name.English = ResultModel.Name.English;
54
+ AddModel.Name.Arabic = ResultModel.Name.Arabic;
55
55
  if (!this.ProductionMode) {
56
56
  AddModel.SysName = ResultModel.SysName;
57
57
  }
@@ -71,8 +71,8 @@ export class LookupItemComponent {
71
71
  let EditModel = new LookUpItem();
72
72
  EditModel.ID = Number(this.lookupItemId);
73
73
  EditModel.LookupID = Number(this.editLookupId);
74
- EditModel.Name.English = ResultModel.Name.EnglishValue;
75
- EditModel.Name.Arabic = ResultModel.Name.ArabicValue;
74
+ EditModel.Name.English = ResultModel.Name.English;
75
+ EditModel.Name.Arabic = ResultModel.Name.Arabic;
76
76
  if (!this.ProductionMode) {
77
77
  EditModel.SysName = ResultModel.EditSysName;
78
78
  }
@@ -299,4 +299,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
299
299
  type: ViewChild,
300
300
  args: ['ConfirmationModalControl', { static: false }]
301
301
  }] } });
302
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9sb29rdXBzL2xvb2t1cC1pdGVtL2xvb2t1cC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAtaXRlbS9sb29rdXAtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaE4sT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFXckYsTUFBTSxPQUFPLG1CQUFtQjtJQTJEOUIsWUFDVSxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixrQkFBc0MsRUFDdEMsaUJBQW1DLEVBQ25DLGFBQTRCLEVBQzVCLGNBQThCLEVBQzlCLFlBQXNCLEVBQ3RCLHFCQUEyQztRQVAzQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHVCQUFrQixHQUFsQixrQkFB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QUlELHNDQUFzQztJQUN0QywrREFBK0Q7SUFDL0QsZ0JBQWdCO0lBQ2hCLDZDQUE2QztJQUM3QyxvQkFBb0IsQ0FBQyxXQUFXO1FBQzlCLElBQUcsV0FBVztZQUNkLElBQUksQ0FBQyw4QkFBOEIsR0FBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQzs7WUFFdkosSUFBSSxDQUFDLDhCQUE4QixHQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQTtJQUNsRSxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7aUhBdFhVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLDRTQ25CaEMsNm1WQStNQTs0RkQ1TGEsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSw4QkFBOEI7aUJBQzVDO3VUQXdCOEQsYUFBYTtzQkFBekUsU0FBUzt1QkFBQyw2QkFBNkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBMkJELHdCQUF3QjtzQkFBakYsU0FBUzt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENoZWNrQm94T3B0aW9ucywgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zLCBGaWx0ZXJJdGVtLCBGaWx0ZXJUeXBlLCBGb3JtT3B0aW9ucywgSW5wdXRUeXBlLCBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucywgUGFnaW5nT3B0aW9ucywgVGV4dEFyZWFPcHRpb25zLCBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgQ2xpcGJvYXJkU2VydmljZSB9IGZyb20gJ25neC1jbGlwYm9hcmQnO1xyXG5pbXBvcnQgeyBMb29rVXBJdGVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Mb29rdXBzL0xvb2t1cEl0ZW0nO1xyXG5pbXBvcnQgeyBMb29rdXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xvb2t1cFNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEVuZ2xpc2hBcmFiaWNEVE8gfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IFBhZ2luZ0NvbXBvbmVudCB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzL2xpYi9jb250cm9scy9QYWdpbmcvUGFnaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scy9saWIvY29udHJvbHMvQ29uZmlybWF0aW9uTW9kYWwvQ29uZmlybWF0aW9uTW9kYWwuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxvb2t1cC1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9va3VwLWl0ZW0uY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb29rdXBJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0ICwgT25EZXN0cm95IHtcclxuXHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIEFwaVVybCA9IHRoaXMubG9va3VwU2VydmljZS5BcGlVcmxcclxuICBQcm9kdWN0aW9uTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvL1BhcmVudCBMb29rdXAgZGF0YVxyXG4gIExvb2t1cElkOiBzdHJpbmc7XHJcbiAgTG9va3VwTmFtZTogRW5nbGlzaEFyYWJpY0RUTyA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgSXNQYXJlbnRMb29rdXBNYW5hZ2VhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICAvL0ZpbHRlciBhbmQgcGFnaW5nIGNvbXBvbmVudHNcclxuICBzZWFyY2hUZXh0Qm94OiBUZXh0Qm94T3B0aW9ucztcclxuICBsb29rdXBJZFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIGxvb2t1cEl0ZW1Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2hvd0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvb2t1cEl0ZW1QYWdpbmdSZXN1bHQ6IGFueVtdID0gW107XHJcbiAgZmlsdGVyZWRMb29rdXBJdGVtUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIGxvb2t1cEl0ZW1QYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcbiAgdGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGxvb2t1cElkSW5wdXRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgaXNGaWx0ZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdMb29rdXBJdGVtUGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nRWxlbWVudDogUGFnaW5nQ29tcG9uZW50O1xyXG5cclxuICAvL0FkZCBNb2RlbCBDb250cm9sc1xyXG4gIGFkZExvb2t1cEl0ZW1Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgYWRkTG9va3VwSXRlbUZvcm1PcHRpb25zOiBGb3JtT3B0aW9uc1xyXG4gIGFkZExvb2t1cElkOm51bWJlclxyXG4gIG11bHRpTGluZ3VhbE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zXHJcbiAgc3lzTmFtZTogVGV4dEJveE9wdGlvbnM7XHJcbiAgdmFsdWU6IFRleHRBcmVhT3B0aW9ucztcclxuICBkaXNwbGF5T3JkZXI6IFRleHRCb3hPcHRpb25zO1xyXG4gIGlzTWFuYWdlYWJsZTogQ2hlY2tCb3hPcHRpb25zO1xyXG5cclxuICAvL0VkaXQgTW9kZWwgQ29udHJvbHNcclxuICBlZGl0TG9va3VwSXRlbUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBlZGl0TG9va3VwSXRlbUZvcm1PcHRpb25zOiBGb3JtT3B0aW9uc1xyXG4gIGxvb2t1cEl0ZW1JZDogbnVtYmVyXHJcbiAgZWRpdExvb2t1cElkOm51bWJlclxyXG4gIGVkaXRNdWx0aUxpbmd1YWxOYW1lOiBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9uc1xyXG4gIGVkaXRTeXNOYW1lOiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0VmFsdWU6IFRleHRBcmVhT3B0aW9ucztcclxuICBlZGl0RGlzcGxheU9yZGVyOiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0SXNNYW5hZ2VhYmxlOiBDaGVja0JveE9wdGlvbnM7XHJcblxyXG4gIC8vZGVsZXRlICBNb2RlbCBDb250cm9sc1xyXG4gIGRlbGV0ZWRMb29rdXBJdGVtSWQ6IHN0cmluZztcclxuICBkZWxldGVDb25maXJtYXRpb25PcHRpb25zOiBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnM7XHJcbiAgZGVsZXRlQ29udHJvbExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBDb25maXJtYXRpb25Nb2RhbENvbnRyb2w6IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50O1xyXG5cclxuXHJcbiAgLy9HZW5lcmF0ZUNvZGUgIE1vZGVsIENvbnRyb2xzIFxyXG4gIGdlbmVyYXRlQ29kZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBnZW5lcmF0ZUNvZGVGb3JtT3B0aW9uczogRm9ybU9wdGlvbnNcclxuICBnZW5lcmF0ZUNvZGVUZXh0QXJlYTogVGV4dEFyZWFPcHRpb25zO1xyXG4gIHZhbHVlVG9Db3B5OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsIFxyXG4gICAgcHVibGljICB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsIFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSwgXHJcbiAgICBwcml2YXRlIF9jbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLCBcclxuICAgIHByaXZhdGUgbG9va3VwU2VydmljZTogTG9va3VwU2VydmljZSwgXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgXHJcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIHJlcXVlc3RIYW5kbGVyU2VydmljZTpSZXF1ZXN0SGFuZGxlclNlcnZpY2VcclxuICAgIClcclxuICAgICB7XHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgdGhpcy5Mb29rdXBJZCA9IHBhcmFtc1snaWQnXTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgdGhpcy5Qcm9kdWN0aW9uTW9kZSA9IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFByb2R1Y3Rpb25Nb2RlKClcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuICB9XHJcblxyXG4gICAvL1BhZ2luZyBmdW5jdGlvbnNcclxuIHNldExvb2t1cEl0ZW1MaXN0UmVzdWx0KHJlc3VsdCkge1xyXG4gICAgdGhpcy5sb29rdXBJdGVtUGFnaW5nUmVzdWx0ID0gcmVzdWx0XHJcbiAgICB0aGlzLmZpbHRlcmVkTG9va3VwSXRlbVBhZ2luZ1Jlc3VsdCA9IHRoaXMubG9va3VwSXRlbVBhZ2luZ1Jlc3VsdFxyXG4gIH1cclxuICAvL1Jlc2V0IGFsbCBGaWx0ZXJzXHJcbiAgcmVzZXRGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5sb29rdXBJdGVtRm9ybS5jb250cm9sc1tcInNlYXJjaFRleHRCb3hcIl0uc2V0VmFsdWUobnVsbCk7XHJcbiAgICBsZXQgZWxlbWVudCA9IHRoaXMucGFnaW5nRWxlbWVudCBhcyBhbnk7XHJcbiAgICBlbGVtZW50LlJlaW5pdGlhbGl6ZVBhZ2luZygpO1xyXG4gIH1cclxuXHJcblxyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgdGhpcy5sb29rdXBTZXJ2aWNlLmdldExvb2t1cEluZm8odGhpcy5Mb29rdXBJZCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgdGhpcy5pc0ZpbHRlckxvYWRlZCA9IGZhbHNlXHJcbiAgICAgIGxldCByZXN1bHRNb2RlbCA9IHJlc3VsdCBhcyBhbnlcclxuICAgICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHJlc3VsdE1vZGVsLnZhbC5sb29rdXBOYW1lXHJcbiAgICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnMgPSBbXHJcbiAgICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG9tZVwiKSwgcGF0aDogJy9BZG1pbi9Ib21lJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMb29rdXBzXCIpLCBwYXRoOiAnL0FkbWluL0xvb2t1cHMvTG9va3VwcycsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH1cclxuXHJcbiAgICAgIF07XHJcblxyXG4gICAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG5cclxuXHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHRCb3guTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveC5IaWRlTGFiZWwgPSB0cnVlXHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveC5UeXBlID0gSW5wdXRUeXBlLlRleHRcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LlBsYWNlaG9sZGVyID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2VhcmNoQnlOYW1lXCIpXHJcbiAgXHJcbiAgXHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwic2VhcmNoVGV4dFwiXHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlXHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3hcclxuICBcclxuICAgICAgLy8gVGV4dEJveCBpbnRpXHJcbiAgICAgIHRoaXMubG9va3VwSWRUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMubG9va3VwSWRUZXh0Qm94Lk5hbWUgPSBcIkxvb2t1cElkVGV4dEJveFwiXHJcbiAgICAgIHRoaXMubG9va3VwSWRUZXh0Qm94LkhpZGVMYWJlbCA9IHRydWVcclxuICAgICAgdGhpcy5sb29rdXBJZFRleHRCb3guVHlwZSA9IElucHV0VHlwZS5UZXh0XHJcbiAgICAgIHRoaXMubG9va3VwSWRUZXh0Qm94LlZhbHVlID0gdGhpcy5Mb29rdXBJZDtcclxuICBcclxuICBcclxuICAgICAgdGhpcy5sb29rdXBJZElucHV0RmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgICAgdGhpcy5sb29rdXBJZElucHV0RmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IFwiTG9va3VwSWRUZXh0Qm94XCJcclxuICAgICAgdGhpcy5sb29rdXBJZElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcImxvb2t1cElkXCJcclxuICAgICAgdGhpcy5sb29rdXBJZElucHV0RmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlXHJcbiAgICAgIHRoaXMubG9va3VwSWRJbnB1dEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94XHJcbiAgXHJcbiAgXHJcbiAgICAgIHRoaXMubG9va3VwSXRlbVBhZ2luZyA9IG5ldyBQYWdpbmdPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMubG9va3VwSXRlbVBhZ2luZy5BY3Rpb25Qb3N0VVJMID0gdGhpcy5BcGlVcmwgKyAnR2V0TG9va3VwSXRlbXNCeUZpbHRlcic7XHJcbiAgICAgIHRoaXMubG9va3VwSXRlbVBhZ2luZy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcInNlYXJjaFRleHRCb3hcIiwgXCJMb29rdXBJZFRleHRCb3hcIl1cclxuICAgICAgdGhpcy5sb29rdXBJdGVtUGFnaW5nLkZpbHRlcnMgPSBbdGhpcy5sb29rdXBJZElucHV0RmlsdGVyLCB0aGlzLnRleHRJbnB1dEZpbHRlcl1cclxuICBcclxuICAgICAgIHRoaXMuYWRkTG9va3VwSWQ9cmVzdWx0TW9kZWwudmFsLmlkXHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJMb2FkZWQgPSB0cnVlO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIFxyXG5cclxuXHJcbiAgIC8vLy8vLy8vLy8vLy8gU3RhcnQgYWRkIExvb2t1cCBJdGVtIFBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG4gIHNob3dBZGRMb29rdXBJdGVtTW9kYWwoQWRkTG9va3VwSXRlbU1vZGFsKSB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpO1xyXG4gICAgdGhpcy5hZGRMb29rdXBJdGVtRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuYWRkTG9va3VwSXRlbUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmFkZExvb2t1cEl0ZW1Gb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLmFkZExvb2t1cEl0ZW1Gb3JtXHJcbiAgICB0aGlzLmFkZExvb2t1cEl0ZW1Gb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRMb29rdXBJdGVtTW9kZWw7XHJcbiAgICB0aGlzLmFkZExvb2t1cEl0ZW1Gb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEFkZExvb2t1cEl0ZW1GdW5jdGlvbjtcclxuICAgIHRoaXMuYWRkTG9va3VwSXRlbUZvcm1PcHRpb25zLlBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudFxyXG5cclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLk5hbWUgPSBcIk5hbWVcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5BcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuVmFsdWUgPSBudWxsO1xyXG5cclxuICAgIHRoaXMuc3lzTmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5zeXNOYW1lLk5hbWUgPSBcIlN5c05hbWVcIjtcclxuICAgIHRoaXMuc3lzTmFtZS5MYWJlbEtleSA9IFwiU3lzTmFtZVwiO1xyXG4gICAgdGhpcy5zeXNOYW1lLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgIHRoaXMuc3lzTmFtZS5WYWx1ZSA9IG51bGw7XHJcblxyXG4gICAgdGhpcy52YWx1ZSA9IG5ldyBUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgIHRoaXMudmFsdWUuTmFtZSA9IFwiVmFsdWVcIjtcclxuICAgIHRoaXMudmFsdWUuTGFiZWxLZXkgPSBcIlZhbHVlXCI7XHJcbiAgICB0aGlzLnZhbHVlLlZhbHVlID0gbnVsbDtcclxuXHJcbiAgIFxyXG4gICAgdGhpcy5kaXNwbGF5T3JkZXIgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuZGlzcGxheU9yZGVyLk5hbWUgPSBcIkRpc3BsYXlPcmRlclwiXHJcbiAgICB0aGlzLmRpc3BsYXlPcmRlci5MYWJlbEtleSA9IFwiRGlzcGxheU9yZGVyXCJcclxuICAgIHRoaXMuZGlzcGxheU9yZGVyLlR5cGUgPSBJbnB1dFR5cGUuTnVtYmVyXHJcblxyXG4gICAgdGhpcy5pc01hbmFnZWFibGUgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLmlzTWFuYWdlYWJsZS5OYW1lID0gXCJJc01hbmFnZWFibGVcIlxyXG4gICAgdGhpcy5pc01hbmFnZWFibGUuTGFiZWxLZXkgPSBcIk1hbmFnZWFibGVcIlxyXG5cclxuXHJcbiAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEFkZExvb2t1cEl0ZW1Nb2RhbCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QWRkTG9va3VwSXRlbU1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLmFkZExvb2t1cEl0ZW1Gb3JtLnZhbHVlO1xyXG4gICAgbGV0IEFkZE1vZGVsID0gbmV3IExvb2tVcEl0ZW0oKTtcclxuICAgIEFkZE1vZGVsLk5hbWUuRW5nbGlzaCA9IFJlc3VsdE1vZGVsLk5hbWUuRW5nbGlzaFZhbHVlXHJcbiAgICBBZGRNb2RlbC5OYW1lLkFyYWJpYyA9IFJlc3VsdE1vZGVsLk5hbWUuQXJhYmljVmFsdWVcclxuICAgIGlmICghdGhpcy5Qcm9kdWN0aW9uTW9kZSlcclxuICAgIHtcclxuICAgIEFkZE1vZGVsLlN5c05hbWUgPSBSZXN1bHRNb2RlbC5TeXNOYW1lXHJcbiAgICB9XHJcbiAgICBBZGRNb2RlbC5WYWx1ZSA9IFJlc3VsdE1vZGVsLlZhbHVlXHJcbiAgICBBZGRNb2RlbC5EaXNwbGF5T3JkZXIgPSBSZXN1bHRNb2RlbC5EaXNwbGF5T3JkZXJcclxuICAgIEFkZE1vZGVsLkxvb2t1cElEID0gIHRoaXMuYWRkTG9va3VwSWRcclxuICAgIEFkZE1vZGVsLk1hbmFnZWFibGUgPSB0aGlzLlByb2R1Y3Rpb25Nb2RlID09IHRydWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBwYXJhbUFycmF5LnB1c2goQWRkTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRBZGRMb29rdXBJdGVtRnVuY3Rpb24gPSAoQWRkTW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG9va3VwU2VydmljZS5hZGRMb29rdXBJdGVtKEFkZE1vZGVsKTtcclxuICB9XHJcbiAgLy8vLy8vLy8vLy8vIEVuZCBvZiBhZGQgTG9va3VwIEdyb3VwIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHJcblxyXG4gICAgLy8vLy8vLy8vLy9TdGFydCBvZiBlZGl0IExvb2t1cCBJdGVtIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgICBzaG93RWRpdExvb2t1cEl0ZW1Nb2RhbChsb29rdXBJdGVtSUQ6IHN0cmluZywgZWRpdExvb2t1cEdyb3VwTW9kYWwpIHtcclxuXHJcbiAgICAgIHRoaXMuZWRpdExvb2t1cEl0ZW1Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRMb29rdXBJdGVtRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0TG9va3VwSXRlbUZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuZWRpdExvb2t1cEl0ZW1Gb3JtXHJcbiAgICAgIHRoaXMuZWRpdExvb2t1cEl0ZW1Gb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0TG9va3VwSXRlbU1vZGVsO1xyXG4gICAgICB0aGlzLmVkaXRMb29rdXBJdGVtRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0TG9va3VwSXRlbUZ1bmN0aW9uO1xyXG4gICAgICB0aGlzLmVkaXRMb29rdXBJdGVtRm9ybU9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50XHJcbiAgXHJcbiAgICAgIHRoaXMubG9va3VwU2VydmljZS5nZXRMb29rdXBJdGVtKGxvb2t1cEl0ZW1JRCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCBMb29rdXBJdGVtPSByZXN1bHQubW9kZWwgYXMgYW55O1xyXG4gICAgICAgIGxldCBOYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgICBOYW1lLkFyYWJpYyA9IExvb2t1cEl0ZW1bMF0ubmFtZS5hcmFiaWM7XHJcbiAgICAgICAgTmFtZS5FbmdsaXNoID0gTG9va3VwSXRlbVswXS5uYW1lLmVuZ2xpc2g7XHJcbiAgICBcclxuICAgICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5OYW1lID0gXCJOYW1lXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5BcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5FbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUuVmFsdWUgPSBOYW1lO1xyXG4gICAgXHJcbiAgICAgICAgdGhpcy5lZGl0U3lzTmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZWRpdFN5c05hbWUuTmFtZSA9IFwiRWRpdFN5c05hbWVcIjtcclxuICAgICAgICB0aGlzLmVkaXRTeXNOYW1lLkxhYmVsS2V5ID0gXCJTeXNOYW1lXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0U3lzTmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgdGhpcy5lZGl0U3lzTmFtZS5WYWx1ZSA9IExvb2t1cEl0ZW1bMF0uc3lzTmFtZTtcclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgdGhpcy5lZGl0VmFsdWUgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5lZGl0VmFsdWUuTmFtZSA9IFwiRWRpdFZhbHVlXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0VmFsdWUuTGFiZWxLZXkgPSBcIlZhbHVlXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0VmFsdWUuVmFsdWUgPSBMb29rdXBJdGVtWzBdLnZhbHVlO1xyXG4gICAgXHJcbiAgICAgICAgdGhpcy5lZGl0RGlzcGxheU9yZGVyID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5lZGl0RGlzcGxheU9yZGVyLk5hbWUgPSBcIkVkaXREaXNwbGF5T3JkZXJcIlxyXG4gICAgICAgIHRoaXMuZWRpdERpc3BsYXlPcmRlci5MYWJlbEtleSA9IFwiRGlzcGxheU9yZGVyXCJcclxuICAgICAgICB0aGlzLmVkaXREaXNwbGF5T3JkZXIuVHlwZSA9IElucHV0VHlwZS5OdW1iZXJcclxuICAgICAgICB0aGlzLmVkaXREaXNwbGF5T3JkZXIuVmFsdWUgPSBMb29rdXBJdGVtWzBdLmRpc3BsYXlPcmRlcjtcclxuXHJcbiAgICBcclxuICAgIFxyXG4gICAgICAgIHRoaXMuZWRpdElzTWFuYWdlYWJsZSA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLmVkaXRJc01hbmFnZWFibGUuTmFtZSA9IFwiRWRpdElzTWFuYWdlYWJsZVwiXHJcbiAgICAgICAgdGhpcy5lZGl0SXNNYW5hZ2VhYmxlLkxhYmVsS2V5ID0gXCJNYW5hZ2VhYmxlXCJcclxuICAgICAgICB0aGlzLmVkaXRJc01hbmFnZWFibGUuVmFsdWUgPSBMb29rdXBJdGVtWzBdLm1hbmFnZWFibGVcclxuICAgICAgICB0aGlzLmVkaXRJc01hbmFnZWFibGUuSXNEaXNhYmxlZCA9ICh0aGlzLlByb2R1Y3Rpb25Nb2RlICYmIExvb2t1cEl0ZW1bMF0ubWFuYWdlYWJsZSA9PSBmYWxzZSkgPT0gdHJ1ZSA/IHRydWUgOiBmYWxzZTtcclxuICAgIFxyXG4gICAgICAgIHRoaXMubG9va3VwSXRlbUlkID1Mb29rdXBJdGVtWzBdLmlkXHJcbiAgICAgICAgdGhpcy5lZGl0TG9va3VwSWQ9TG9va3VwSXRlbVswXS5sb29rdXBJRFxyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oZWRpdExvb2t1cEdyb3VwTW9kYWwpO1xyXG4gICAgICB9KTtcclxuICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ2V0RWRpdExvb2t1cEl0ZW1Nb2RlbCA9ICgpID0+IHtcclxuICAgICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuZWRpdExvb2t1cEl0ZW1Gb3JtLnZhbHVlO1xyXG4gICAgICBsZXQgRWRpdE1vZGVsID0gbmV3IExvb2tVcEl0ZW0oKTtcclxuICAgICAgRWRpdE1vZGVsLklEID0gTnVtYmVyKHRoaXMubG9va3VwSXRlbUlkKTtcclxuICAgICAgRWRpdE1vZGVsLkxvb2t1cElEID0gTnVtYmVyKHRoaXMuZWRpdExvb2t1cElkKTtcclxuICAgICAgRWRpdE1vZGVsLk5hbWUuRW5nbGlzaCA9IFJlc3VsdE1vZGVsLk5hbWUuRW5nbGlzaFZhbHVlXHJcbiAgICAgIEVkaXRNb2RlbC5OYW1lLkFyYWJpYyA9IFJlc3VsdE1vZGVsLk5hbWUuQXJhYmljVmFsdWVcclxuICAgICAgaWYgKCF0aGlzLlByb2R1Y3Rpb25Nb2RlKVxyXG4gICAgICB7XHJcbiAgICAgIEVkaXRNb2RlbC5TeXNOYW1lID0gUmVzdWx0TW9kZWwuRWRpdFN5c05hbWVcclxuICAgICAgfVxyXG4gICAgICBFZGl0TW9kZWwuVmFsdWUgPSBSZXN1bHRNb2RlbC5FZGl0VmFsdWVcclxuICAgICAgRWRpdE1vZGVsLkRpc3BsYXlPcmRlciA9IFJlc3VsdE1vZGVsLkVkaXREaXNwbGF5T3JkZXJcclxuICAgICAgRWRpdE1vZGVsLk1hbmFnZWFibGUgPSBSZXN1bHRNb2RlbC5FZGl0SXNNYW5hZ2VhYmxlXHJcbiAgICAgIHBhcmFtQXJyYXkucHVzaChFZGl0TW9kZWwpO1xyXG4gICAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICAgIH1cclxuICBcclxuICAgIGdldEVkaXRMb29rdXBJdGVtRnVuY3Rpb24gPSAoRWRpdE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9va3VwU2VydmljZS5lZGl0TG9va3VwSXRlbShFZGl0TW9kZWwpXHJcbiAgICB9XHJcbiAgICAvLy8vLy8vLy8vL0VuZCBvZiBlZGl0IExvb2t1cCBJdGVtIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgXHJcblxyXG4gIFxyXG4gICAvLy8vLy8vLy8vL1N0YXJ0IG9mIGRlbGV0ZSBMb29rdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgc2hvd0RlbGV0ZUxvb2t1cEl0ZW1Nb2RhbChsb29rdXBJdGVtSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5kZWxldGVDb250cm9sTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmRlbGV0ZWRMb29rdXBJdGVtSWQgPSBsb29rdXBJdGVtSWQ7XHJcbiAgICAvL2FycmF5IHNlbnQgdG8gc2VydmljZSBmdW5jdGlvblxyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBwYXJhbUFycmF5LnB1c2godGhpcy5kZWxldGVkTG9va3VwSXRlbUlkKTtcclxuXHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMgPSBuZXcgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zKCk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5kZWxldGVMb29rdXBJdGVtO1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLlNlcnZpY2VTdWJtaXRNb2RlbCA9IHBhcmFtQXJyYXk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd01vZGFsKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlTG9va3VwSXRlbSA9IChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmxvb2t1cFNlcnZpY2UuZGVsZXRlTG9va3VwSXRlbShpZClcclxuICB9XHJcbiAgIC8vLy8vLy8vLy8vRW5kIG9mIGRlbGV0ZSBMb29rdXBHcm91cCBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHJcbiAgY29weUlucHV0TWVzc2FnZSgpIHtcclxuICAgIHRoaXMuX2NsaXBib2FyZFNlcnZpY2UuY29weSh0aGlzLnZhbHVlVG9Db3B5LnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0dlbmVyYXRlQ29kZUJ5SWRNb2RhbCggR2VuZXJhdGVDb2RlTW9kYWwpIHtcclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuZ2VuZXJhdGVDb2RlRm9ybVxyXG4gICAgdGhpcy5nZW5lcmF0ZUNvZGVGb3JtT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuXHJcbiAgICB0aGlzLmxvb2t1cFNlcnZpY2UuZ2VuZXJhdGVDb2RlQnlJZCh0aGlzLkxvb2t1cElkKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB2YXIgVmFsdWUgPSByZXN1bHQgYXMgYW55XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuTmFtZSA9IFwiR2VuZXJhdGVDb2RlVGV4dEFyZWFcIjtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5WYWx1ZSA9IFZhbHVlLnZhbC50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLnZhbHVlVG9Db3B5ID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuSXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5Sb3dzID0gMjA7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuQ29scyA9IDIwO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLk1heExlbmd0aCA9IDEwMDAwMDA7XHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oR2VuZXJhdGVDb2RlTW9kYWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgIFxyXG4gIC8qKkZ1bmN0aW9uTmFtZTpmaWx0ZXJMb29rdXBJdGVtTGlzdCovXHJcbiAgLyoqRGVjbGFyYXRpb246ZnVuY3Rpb24gdG8gZmlsdGVyIExvb2t1cCBJdGVtIGluIGNsaWVudC1zaWRlICovXHJcbiAgLyoqUGFyYW1ldGVyczoqL1xyXG4gIC8qKnNlYXJjaFZhbHVlOiBjdXJyZW50IHZhbHVlIG9mIHNlYXJjaCBib3gqL1xyXG4gIGZpbHRlckxvb2t1cEl0ZW1MaXN0KHNlYXJjaFZhbHVlKXtcclxuICAgIGlmKHNlYXJjaFZhbHVlKVxyXG4gICAgdGhpcy5maWx0ZXJlZExvb2t1cEl0ZW1QYWdpbmdSZXN1bHQ9IHRoaXMubG9va3VwSXRlbVBhZ2luZ1Jlc3VsdC5maWx0ZXIoaXRlbSA9PiBpdGVtLmxvb2tVcEl0ZW1OYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpO1xyXG4gICAgZWxzZVxyXG4gICAgdGhpcy5maWx0ZXJlZExvb2t1cEl0ZW1QYWdpbmdSZXN1bHQ9IHRoaXMubG9va3VwSXRlbVBhZ2luZ1Jlc3VsdFxyXG4gIH1cclxuXHJcbiAgLy8vLy8vLy8vLy9EZXN0cm95IE9ic2VydmFibGUgLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuICA8IS0tIFBhZ2UgQ29udGVudCAtLT5cclxuICA8ZGl2ICBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCIgKm5nSWY9XCJpc0ZpbHRlckxvYWRlZFwiPlxyXG4gICAgICAgICBcclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJzZWFyY2hUZXh0Qm94XCIgKE9uQ2hhbmdlKT1cImZpbHRlckxvb2t1cEl0ZW1MaXN0KCRldmVudClcIiBbZ3JvdXBdPVwibG9va3VwSXRlbUZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgPGRpdiBbaGlkZGVuXT1cInRydWVcIiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJsb29rdXBJZFRleHRCb3hcIiBbZ3JvdXBdPVwibG9va3VwSXRlbUZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPCEtLSBiZWdpbjo6TWVudSAtLT5cclxuICAgICAgICAgIDxidXR0b24gaHJlZj1cImphdmFzY3JpcHQ6O1wiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGlnaHQtcHJpbWFyeSBtZS0zXCIgKGNsaWNrKT1cInNob3dHZW5lcmF0ZUNvZGVCeUlkTW9kYWwoR2VuZXJhdGVDb2RlTW9kYWwpXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEta2V5IG1lLTFcIj48L2k+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiR2VuZXJhdGVDb2RlXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIHRpdGxlPVwiQWRkXCIgKGNsaWNrKT1cInNob3dBZGRMb29rdXBJdGVtTW9kYWwoQWRkTG9va3VwSXRlbU1vZGFsKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8IS0tIGVuZDo6TWVudSAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICA8IS0tYmVnaW46OlBlcm1pc3Npb24gbGlzdC0tPlxyXG4gICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIklkXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOYW1lXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIiAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlN5c05hbWVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlZhbHVlXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNYW5hZ2VhYmxlXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGlvblwiKX19PC90aD5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgIDx0Ym9keSBpZD1cImxpc3RpbmdDb250YWluZXJcIiBjbGFzcz1cImZ3LWJvbGQgdGV4dC1ncmF5LTYwMCBib3JkZXItMFwiPlxyXG5cclxuICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IExvb2t1cEl0ZW0gb2YgZmlsdGVyZWRMb29rdXBJdGVtUGFnaW5nUmVzdWx0XCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ0ZXh0LWRhcmtcIj57e0xvb2t1cEl0ZW0uaWR9fTwvdGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICB7e0xvb2t1cEl0ZW0ubG9va1VwSXRlbU5hbWV9fVxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIj57e0xvb2t1cEl0ZW0uc3lzTmFtZX19PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD57e0xvb2t1cEl0ZW0udmFsdWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiTG9va3VwSXRlbS5tYW5hZ2VhYmxlO2Vsc2UgZGVmYXVsdF9ub1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlllc1wiKX19XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0X25vPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTm9cIil9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1saWdodCBidG4tYWN0aXZlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWxsaXBzaXMtaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCIgbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJzaG93RWRpdExvb2t1cEl0ZW1Nb2RhbChMb29rdXBJdGVtLmlkRW5jcnlwdGVkLEVkaXRMb29rdXBJdGVtTW9kYWwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rIHB4LTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCIoIShMb29rdXBJdGVtLm1hbmFnZWFibGU9PWZhbHNlJiZQcm9kdWN0aW9uTW9kZSl8fChMb29rdXBJdGVtLmlzUGFyZW50TG9va3VwTWFuYWdlYWJsZSkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlTG9va3VwSXRlbU1vZGFsKExvb2t1cEl0ZW0uaWRFbmNyeXB0ZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rIHB4LTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVcIil9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPHRyICpuZ0lmPVwiZmlsdGVyZWRMb29rdXBJdGVtUGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJQcm9kdWN0aW9uTW9kZSA/ICc2JyA6ICc3J1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bGliLWVtcHR5LWRhdGE+PC9saWItZW1wdHktZGF0YT5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgICAgPCEtLWVuZDo6UGVybWlzc2lvbiBsaXN0LS0+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPEJCU0YtUGFnaW5nIChJdGVtcyk9XCJzZXRMb29rdXBJdGVtTGlzdFJlc3VsdCgkZXZlbnQpXCIgKm5nSWY9XCJpc0ZpbHRlckxvYWRlZFwiIFtvcHRpb25zXT1cImxvb2t1cEl0ZW1QYWdpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZ3JvdXBdPVwibG9va3VwSXRlbUZvcm1cIiAjTG9va3VwSXRlbVBhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8IS0tIEFkZCBNb2RhbCAtLT5cclxuICA8bmctdGVtcGxhdGUgI0FkZExvb2t1cEl0ZW1Nb2RhbCBsZXQtbW9kYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHBiLTAgYm9yZGVyLTAganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTEzIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwibWItM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19IHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxvb2t1cEl0ZW1cIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImFkZExvb2t1cEl0ZW1Gb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwibXVsdGlMaW5ndWFsTmFtZVwiIFtncm91cF09XCJhZGRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgIDxCQlNGLVRleHRCb3ggICAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiIFtvcHRpb25zXT1cInN5c05hbWVcIiBbZ3JvdXBdPVwiYWRkTG9va3VwSXRlbUZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICA8QkJTRi1UZXh0QXJlYSBbb3B0aW9uc109XCJ2YWx1ZVwiIFtncm91cF09XCJhZGRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1UZXh0QXJlYT5cclxuICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImRpc3BsYXlPcmRlclwiIFtncm91cF09XCJhZGRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cImlzTWFuYWdlYWJsZVwiIFtncm91cF09XCJhZGRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI0Nsb3NlTG9va3VwSXRlbU1vZGFsIGlkPVwiQ2xvc2VMb29rdXBJdGVtTW9kYWxcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19IDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9CQlNGLUZvcm0+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG5cclxuICA8IS0tIEVkaXQgTW9kYWwgLS0+XHJcbiAgPG5nLXRlbXBsYXRlICNFZGl0TG9va3VwSXRlbU1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRWRpdFwiKX19IHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxvb2t1cEl0ZW1cIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImVkaXRMb29rdXBJdGVtRm9ybU9wdGlvbnNcIj5cclxuICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cImVkaXRNdWx0aUxpbmd1YWxOYW1lXCIgW2dyb3VwXT1cImVkaXRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgIDxCQlNGLVRleHRCb3ggICAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiIFtvcHRpb25zXT1cImVkaXRTeXNOYW1lXCIgW2dyb3VwXT1cImVkaXRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDxCQlNGLVRleHRBcmVhIFtvcHRpb25zXT1cImVkaXRWYWx1ZVwiIFtncm91cF09XCJlZGl0TG9va3VwSXRlbUZvcm1cIj48L0JCU0YtVGV4dEFyZWE+XHJcbiAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlZGl0RGlzcGxheU9yZGVyXCIgW2dyb3VwXT1cImVkaXRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cImVkaXRJc01hbmFnZWFibGVcIiBbZ3JvdXBdPVwiZWRpdExvb2t1cEl0ZW1Gb3JtXCI+PC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjQ2xvc2VFZGl0TG9va3VwSXRlbU1vZGFsIGlkPVwiQ2xvc2VFZGl0TG9va3VwSXRlbU1vZGFsXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fSA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNhdmVMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvQkJTRi1Gb3JtPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuPCEtLWRlbGV0ZSBNb2RhbC0tPlxyXG48QkJTRi1Db25maXJtYXRpb25Nb2RhbCAqbmdJZj1cImRlbGV0ZUNvbnRyb2xMb2FkZWRcIiBbb3B0aW9uc109XCJkZWxldGVDb25maXJtYXRpb25PcHRpb25zXCIgaWQ9XCJDb25maXJtYXRpb25Nb2RhbENvbnRyb2xcIlxyXG4jQ29uZmlybWF0aW9uTW9kYWxDb250cm9sPjwvQkJTRi1Db25maXJtYXRpb25Nb2RhbD5cclxuXHJcblxyXG4gIDwhLS0gR2VuZXJhdGVDb2RlIE1vZGFsIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSAjR2VuZXJhdGVDb2RlTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJHZW5lcmF0ZUNvZGVcIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImdlbmVyYXRlQ29kZUZvcm1PcHRpb25zXCI+XHJcbiAgICAgICAgPGRpdj5cclxuXHJcbiAgICAgICAgICA8QkJTRi1UZXh0QXJlYSBbb3B0aW9uc109XCJnZW5lcmF0ZUNvZGVUZXh0QXJlYVwiIFtncm91cF09XCJnZW5lcmF0ZUNvZGVGb3JtXCIgI0dlbmVyYXRlQ29kZUlucHV0PlxyXG4gICAgICAgICAgPC9CQlNGLVRleHRBcmVhPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI0Nsb3NlR2VuZXJhdGVDb2RlTW9kYWwgaWQ9XCJDbG9zZUdlbmVyYXRlQ29kZU1vZGFsXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fSA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIChjbGljayk9XCJjb3B5SW5wdXRNZXNzYWdlKClcIj5cclxuICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ29weVRvQ2xpcGJvYXJkXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0JCU0YtRm9ybT5cclxuXHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuXHJcbiAgXHJcbiJdfQ==
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9sb29rdXBzL2xvb2t1cC1pdGVtL2xvb2t1cC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAtaXRlbS9sb29rdXAtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaE4sT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFXckYsTUFBTSxPQUFPLG1CQUFtQjtJQTJEOUIsWUFDVSxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixrQkFBc0MsRUFDdEMsaUJBQW1DLEVBQ25DLGFBQTRCLEVBQzVCLGNBQThCLEVBQzlCLFlBQXNCLEVBQ3RCLHFCQUEyQztRQVAzQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQVU7UUFDdEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFzQjtRQWpFckQsbUJBQW1CO1FBQ25CLFdBQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQTtRQUNsQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUloQyxlQUFVLEdBQXFCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUN0RCw2QkFBd0IsR0FBWSxLQUFLLENBQUM7UUFNMUMsbUJBQWMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLDJCQUFzQixHQUFVLEVBQUUsQ0FBQztRQUNuQyxtQ0FBOEIsR0FBVSxFQUFFLENBQUM7UUFJM0MsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFHaEMsb0JBQW9CO1FBQ3BCLHNCQUFpQixHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBU3RDLHFCQUFxQjtRQUNyQix1QkFBa0IsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQWF2Qyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFJckMsK0JBQStCO1FBQy9CLHFCQUFnQixHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBR3JDLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBNkl6QiwwQkFBcUIsR0FBRyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxVQUFVLEdBQVUsRUFBRSxDQUFDO1lBQzNCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7WUFDL0MsSUFBSSxRQUFRLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNoQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtZQUNoRCxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQTtZQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFDeEI7Z0JBQ0EsUUFBUSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFBO2FBQ3JDO1lBQ0QsUUFBUSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFBO1lBQ2xDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQTtZQUNoRCxRQUFRLENBQUMsUUFBUSxHQUFJLElBQUksQ0FBQyxXQUFXLENBQUE7WUFDckMsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDakUsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQixPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLENBQUE7UUFFRCw2QkFBd0IsR0FBRyxDQUFDLFFBQVEsRUFBbUIsRUFBRTtZQUN2RCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQTtRQThEQywyQkFBc0IsR0FBRyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxVQUFVLEdBQVUsRUFBRSxDQUFDO1lBQzNCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7WUFDaEQsSUFBSSxTQUFTLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNqQyxTQUFTLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDekMsU0FBUyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9DLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO1lBQ2pELFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFBO1lBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUN4QjtnQkFDQSxTQUFTLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUE7YUFDMUM7WUFDRCxTQUFTLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUE7WUFDdkMsU0FBUyxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUE7WUFDckQsU0FBUyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUE7WUFDbkQsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzQixPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLENBQUE7UUFFRCw4QkFBeUIsR0FBRyxDQUFDLFNBQVMsRUFBbUIsRUFBRTtZQUN6RCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3JELENBQUMsQ0FBQTtRQXdCSCxxQkFBZ0IsR0FBRyxDQUFDLEVBQVUsRUFBbUIsRUFBRTtZQUNqRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDaEQsQ0FBQyxDQUFBO1FBalFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDSyxRQUFROztZQUNiLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFLENBQUE7WUFDaEUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUM7S0FBQTtJQUVBLGtCQUFrQjtJQUNwQix1QkFBdUIsQ0FBQyxNQUFNO1FBQzNCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUE7UUFDcEMsSUFBSSxDQUFDLDhCQUE4QixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQTtJQUNuRSxDQUFDO0lBQ0QsbUJBQW1CO0lBQ25CLFlBQVk7UUFDVixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0QsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQW9CLENBQUM7UUFDeEMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUdELGNBQWM7UUFDWixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbkUsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUE7WUFDM0IsSUFBSSxXQUFXLEdBQUcsTUFBYSxDQUFBO1lBQy9CLGVBQWUsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUE7WUFDdEQsZUFBZSxDQUFDLGVBQWUsR0FBRztnQkFDaEMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFDakgsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUMzRCxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7Z0JBQy9ILEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTthQUU1RCxDQUFDO1lBRUYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFHNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQTtZQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7WUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQTtZQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFBO1lBR3JGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUE7WUFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsR0FBRyxZQUFZLENBQUE7WUFDdkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFBO1lBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUE7WUFFcEQsZUFBZTtZQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQTtZQUM3QyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7WUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQTtZQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBRzNDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEdBQUcsaUJBQWlCLENBQUE7WUFDNUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixHQUFHLFVBQVUsQ0FBQTtZQUN6RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQTtZQUM3QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUE7WUFHeEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLHdCQUF3QixDQUFDO1lBQzdFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyw2QkFBNkIsR0FBRyxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO1lBQzFGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1lBRS9FLElBQUksQ0FBQyxXQUFXLEdBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUE7WUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFFN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBTUEsOERBQThEO0lBRS9ELHNCQUFzQixDQUFDLGtCQUFrQjtRQUN2QyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQTtRQUNoRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQzVFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUM7UUFDcEYsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFBO1FBRWxFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDdEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDeEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBR3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksR0FBRyxjQUFjLENBQUE7UUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFBO1FBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUE7UUFFekMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUE7UUFHekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUF3QkQsZ0VBQWdFO0lBSTlELCtEQUErRDtJQUMvRCx1QkFBdUIsQ0FBQyxZQUFvQixFQUFFLG9CQUFvQjtRQUVoRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUE7UUFDbEUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztRQUM5RSxJQUFJLENBQUMseUJBQXlCLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDO1FBQ3RGLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQTtRQUVuRSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUN2RSxJQUFJLFVBQVUsR0FBRSxNQUFNLENBQUMsS0FBWSxDQUFDO1lBQ3BDLElBQUksSUFBSSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFFMUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksMEJBQTBCLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUN4QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztZQUMxRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztZQUM1RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUM1QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUV2QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztZQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFHL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztZQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUUzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFBO1lBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFBO1lBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQTtZQUM3QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFJekQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksR0FBRyxrQkFBa0IsQ0FBQTtZQUMvQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQTtZQUM3QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUE7WUFDdEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBRXJILElBQUksQ0FBQyxZQUFZLEdBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUE7WUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUF3QkQsNkRBQTZEO0lBSTlELDREQUE0RDtJQUM1RCx5QkFBeUIsQ0FBQyxZQUFvQjtRQUM3QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxZQUFZLENBQUM7UUFDeEMsZ0NBQWdDO1FBQ2hDLElBQUksVUFBVSxHQUFVLEVBQUUsQ0FBQztRQUMzQixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUM3RSxJQUFJLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxDQUFDO1FBQy9ELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUVwRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsd0JBQXdCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDNUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUtBLCtEQUErRDtJQUdoRSxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQseUJBQXlCLENBQUUsaUJBQWlCO1FBRTFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQTtRQUM5RCxJQUFJLENBQUMsdUJBQXVCLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUE7UUFFakUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDdEUsSUFBSSxLQUFLLEdBQUcsTUFBYSxDQUFBO1lBQ3pCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEdBQUcsc0JBQXNCLENBQUM7WUFDeEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUM1QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUMzQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztZQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELHNDQUFzQztJQUN0QywrREFBK0Q7SUFDL0QsZ0JBQWdCO0lBQ2hCLDZDQUE2QztJQUM3QyxvQkFBb0IsQ0FBQyxXQUFXO1FBQzlCLElBQUcsV0FBVztZQUNkLElBQUksQ0FBQyw4QkFBOEIsR0FBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQzs7WUFFdkosSUFBSSxDQUFDLDhCQUE4QixHQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQTtJQUNsRSxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7aUhBdFhVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLDRTQ25CaEMsNm1WQStNQTs0RkQ1TGEsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSw4QkFBOEI7aUJBQzVDO3VUQXdCOEQsYUFBYTtzQkFBekUsU0FBUzt1QkFBQyw2QkFBNkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBMkJELHdCQUF3QjtzQkFBakYsU0FBUzt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENoZWNrQm94T3B0aW9ucywgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zLCBGaWx0ZXJJdGVtLCBGaWx0ZXJUeXBlLCBGb3JtT3B0aW9ucywgSW5wdXRUeXBlLCBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucywgUGFnaW5nT3B0aW9ucywgVGV4dEFyZWFPcHRpb25zLCBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgQ2xpcGJvYXJkU2VydmljZSB9IGZyb20gJ25neC1jbGlwYm9hcmQnO1xyXG5pbXBvcnQgeyBMb29rVXBJdGVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Mb29rdXBzL0xvb2t1cEl0ZW0nO1xyXG5pbXBvcnQgeyBMb29rdXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xvb2t1cFNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEVuZ2xpc2hBcmFiaWNEVE8gfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IFBhZ2luZ0NvbXBvbmVudCB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzL2xpYi9jb250cm9scy9QYWdpbmcvUGFnaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scy9saWIvY29udHJvbHMvQ29uZmlybWF0aW9uTW9kYWwvQ29uZmlybWF0aW9uTW9kYWwuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxvb2t1cC1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9va3VwLWl0ZW0uY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb29rdXBJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0ICwgT25EZXN0cm95IHtcclxuXHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIEFwaVVybCA9IHRoaXMubG9va3VwU2VydmljZS5BcGlVcmxcclxuICBQcm9kdWN0aW9uTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvL1BhcmVudCBMb29rdXAgZGF0YVxyXG4gIExvb2t1cElkOiBzdHJpbmc7XHJcbiAgTG9va3VwTmFtZTogRW5nbGlzaEFyYWJpY0RUTyA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgSXNQYXJlbnRMb29rdXBNYW5hZ2VhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICAvL0ZpbHRlciBhbmQgcGFnaW5nIGNvbXBvbmVudHNcclxuICBzZWFyY2hUZXh0Qm94OiBUZXh0Qm94T3B0aW9ucztcclxuICBsb29rdXBJZFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIGxvb2t1cEl0ZW1Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2hvd0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvb2t1cEl0ZW1QYWdpbmdSZXN1bHQ6IGFueVtdID0gW107XHJcbiAgZmlsdGVyZWRMb29rdXBJdGVtUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIGxvb2t1cEl0ZW1QYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcbiAgdGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGxvb2t1cElkSW5wdXRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgaXNGaWx0ZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdMb29rdXBJdGVtUGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcblxyXG4gIC8vQWRkIE1vZGVsIENvbnRyb2xzXHJcbiAgYWRkTG9va3VwSXRlbUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBhZGRMb29rdXBJdGVtRm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zXHJcbiAgYWRkTG9va3VwSWQ6bnVtYmVyXHJcbiAgbXVsdGlMaW5ndWFsTmFtZTogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnNcclxuICBzeXNOYW1lOiBUZXh0Qm94T3B0aW9ucztcclxuICB2YWx1ZTogVGV4dEFyZWFPcHRpb25zO1xyXG4gIGRpc3BsYXlPcmRlcjogVGV4dEJveE9wdGlvbnM7XHJcbiAgaXNNYW5hZ2VhYmxlOiBDaGVja0JveE9wdGlvbnM7XHJcblxyXG4gIC8vRWRpdCBNb2RlbCBDb250cm9sc1xyXG4gIGVkaXRMb29rdXBJdGVtRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGVkaXRMb29rdXBJdGVtRm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zXHJcbiAgbG9va3VwSXRlbUlkOiBudW1iZXJcclxuICBlZGl0TG9va3VwSWQ6bnVtYmVyXHJcbiAgZWRpdE11bHRpTGluZ3VhbE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zXHJcbiAgZWRpdFN5c05hbWU6IFRleHRCb3hPcHRpb25zO1xyXG4gIGVkaXRWYWx1ZTogVGV4dEFyZWFPcHRpb25zO1xyXG4gIGVkaXREaXNwbGF5T3JkZXI6IFRleHRCb3hPcHRpb25zO1xyXG4gIGVkaXRJc01hbmFnZWFibGU6IENoZWNrQm94T3B0aW9ucztcclxuXHJcbiAgLy9kZWxldGUgIE1vZGVsIENvbnRyb2xzXHJcbiAgZGVsZXRlZExvb2t1cEl0ZW1JZDogc3RyaW5nO1xyXG4gIGRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnM6IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucztcclxuICBkZWxldGVDb250cm9sTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnQ29uZmlybWF0aW9uTW9kYWxDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIENvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ7XHJcblxyXG5cclxuICAvL0dlbmVyYXRlQ29kZSAgTW9kZWwgQ29udHJvbHMgXHJcbiAgZ2VuZXJhdGVDb2RlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGdlbmVyYXRlQ29kZUZvcm1PcHRpb25zOiBGb3JtT3B0aW9uc1xyXG4gIGdlbmVyYXRlQ29kZVRleHRBcmVhOiBUZXh0QXJlYU9wdGlvbnM7XHJcbiAgdmFsdWVUb0NvcHk6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBwYWdlSW5mb1NlcnZpY2U6IFBhZ2VJbmZvU2VydmljZSwgXHJcbiAgICBwdWJsaWMgIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgXHJcbiAgICBwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLCBcclxuICAgIHByaXZhdGUgX2NsaXBib2FyZFNlcnZpY2U6IENsaXBib2FyZFNlcnZpY2UsIFxyXG4gICAgcHJpdmF0ZSBsb29rdXBTZXJ2aWNlOiBMb29rdXBTZXJ2aWNlLCBcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLCBcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOlJlcXVlc3RIYW5kbGVyU2VydmljZVxyXG4gICAgKVxyXG4gICAgIHtcclxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICB0aGlzLkxvb2t1cElkID0gcGFyYW1zWydpZCddO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICB0aGlzLlByb2R1Y3Rpb25Nb2RlID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0UHJvZHVjdGlvbk1vZGUoKVxyXG4gICAgdGhpcy5pbml0aWFsaXplUGFnZSgpO1xyXG4gIH1cclxuXHJcbiAgIC8vUGFnaW5nIGZ1bmN0aW9uc1xyXG4gc2V0TG9va3VwSXRlbUxpc3RSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLmxvb2t1cEl0ZW1QYWdpbmdSZXN1bHQgPSByZXN1bHRcclxuICAgIHRoaXMuZmlsdGVyZWRMb29rdXBJdGVtUGFnaW5nUmVzdWx0ID0gdGhpcy5sb29rdXBJdGVtUGFnaW5nUmVzdWx0XHJcbiAgfVxyXG4gIC8vUmVzZXQgYWxsIEZpbHRlcnNcclxuICByZXNldEZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmxvb2t1cEl0ZW1Gb3JtLmNvbnRyb2xzW1wic2VhcmNoVGV4dEJveFwiXS5zZXRWYWx1ZShudWxsKTtcclxuICAgIGxldCBlbGVtZW50ID0gdGhpcy5wYWdpbmdFbGVtZW50IGFzIGFueTtcclxuICAgIGVsZW1lbnQuUmVpbml0aWFsaXplUGFnaW5nKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmxvb2t1cFNlcnZpY2UuZ2V0TG9va3VwSW5mbyh0aGlzLkxvb2t1cElkKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB0aGlzLmlzRmlsdGVyTG9hZGVkID0gZmFsc2VcclxuICAgICAgbGV0IHJlc3VsdE1vZGVsID0gcmVzdWx0IGFzIGFueVxyXG4gICAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gcmVzdWx0TW9kZWwudmFsLmxvb2t1cE5hbWVcclxuICAgICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxvb2t1cHNcIiksIHBhdGg6ICcvQWRtaW4vTG9va3Vwcy9Mb29rdXBzJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG5cclxuICAgICAgXTtcclxuXHJcbiAgICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZVRpdGxlKCk7XHJcbiAgICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcblxyXG5cclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveC5OYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LkhpZGVMYWJlbCA9IHRydWVcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLnNlYXJjaFRleHRCb3guUGxhY2Vob2xkZXIgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTZWFyY2hCeU5hbWVcIilcclxuICBcclxuICBcclxuICAgICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcInNlYXJjaFRleHRCb3hcIlxyXG4gICAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJzZWFyY2hUZXh0XCJcclxuICAgICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuVGV4dEJveFxyXG4gIFxyXG4gICAgICAvLyBUZXh0Qm94IGludGlcclxuICAgICAgdGhpcy5sb29rdXBJZFRleHRCb3ggPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5sb29rdXBJZFRleHRCb3guTmFtZSA9IFwiTG9va3VwSWRUZXh0Qm94XCJcclxuICAgICAgdGhpcy5sb29rdXBJZFRleHRCb3guSGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgICB0aGlzLmxvb2t1cElkVGV4dEJveC5UeXBlID0gSW5wdXRUeXBlLlRleHRcclxuICAgICAgdGhpcy5sb29rdXBJZFRleHRCb3guVmFsdWUgPSB0aGlzLkxvb2t1cElkO1xyXG4gIFxyXG4gIFxyXG4gICAgICB0aGlzLmxvb2t1cElkSW5wdXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgICB0aGlzLmxvb2t1cElkSW5wdXRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJMb29rdXBJZFRleHRCb3hcIlxyXG4gICAgICB0aGlzLmxvb2t1cElkSW5wdXRGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwibG9va3VwSWRcIlxyXG4gICAgICB0aGlzLmxvb2t1cElkSW5wdXRGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgICAgdGhpcy5sb29rdXBJZElucHV0RmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3hcclxuICBcclxuICBcclxuICAgICAgdGhpcy5sb29rdXBJdGVtUGFnaW5nID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgICAgdGhpcy5sb29rdXBJdGVtUGFnaW5nLkFjdGlvblBvc3RVUkwgPSB0aGlzLkFwaVVybCArICdHZXRMb29rdXBJdGVtc0J5RmlsdGVyJztcclxuICAgICAgdGhpcy5sb29rdXBJdGVtUGFnaW5nLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gW1wic2VhcmNoVGV4dEJveFwiLCBcIkxvb2t1cElkVGV4dEJveFwiXVxyXG4gICAgICB0aGlzLmxvb2t1cEl0ZW1QYWdpbmcuRmlsdGVycyA9IFt0aGlzLmxvb2t1cElkSW5wdXRGaWx0ZXIsIHRoaXMudGV4dElucHV0RmlsdGVyXVxyXG4gIFxyXG4gICAgICAgdGhpcy5hZGRMb29rdXBJZD1yZXN1bHRNb2RlbC52YWwuaWRcclxuICAgICAgdGhpcy5pc0ZpbHRlckxvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgXHJcblxyXG5cclxuICAgLy8vLy8vLy8vLy8vLyBTdGFydCBhZGQgTG9va3VwIEl0ZW0gUGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcbiAgc2hvd0FkZExvb2t1cEl0ZW1Nb2RhbChBZGRMb29rdXBJdGVtTW9kYWwpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICB0aGlzLmFkZExvb2t1cEl0ZW1Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgdGhpcy5hZGRMb29rdXBJdGVtRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuYWRkTG9va3VwSXRlbUZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuYWRkTG9va3VwSXRlbUZvcm1cclxuICAgIHRoaXMuYWRkTG9va3VwSXRlbUZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEFkZExvb2t1cEl0ZW1Nb2RlbDtcclxuICAgIHRoaXMuYWRkTG9va3VwSXRlbUZvcm1PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkTG9va3VwSXRlbUZ1bmN0aW9uO1xyXG4gICAgdGhpcy5hZGRMb29rdXBJdGVtRm9ybU9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50XHJcblxyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuTmFtZSA9IFwiTmFtZVwiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLkFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5FbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5WYWx1ZSA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5zeXNOYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLnN5c05hbWUuTmFtZSA9IFwiU3lzTmFtZVwiO1xyXG4gICAgdGhpcy5zeXNOYW1lLkxhYmVsS2V5ID0gXCJTeXNOYW1lXCI7XHJcbiAgICB0aGlzLnN5c05hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgdGhpcy5zeXNOYW1lLlZhbHVlID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLnZhbHVlID0gbmV3IFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgdGhpcy52YWx1ZS5OYW1lID0gXCJWYWx1ZVwiO1xyXG4gICAgdGhpcy52YWx1ZS5MYWJlbEtleSA9IFwiVmFsdWVcIjtcclxuICAgIHRoaXMudmFsdWUuVmFsdWUgPSBudWxsO1xyXG5cclxuICAgXHJcbiAgICB0aGlzLmRpc3BsYXlPcmRlciA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5kaXNwbGF5T3JkZXIuTmFtZSA9IFwiRGlzcGxheU9yZGVyXCJcclxuICAgIHRoaXMuZGlzcGxheU9yZGVyLkxhYmVsS2V5ID0gXCJEaXNwbGF5T3JkZXJcIlxyXG4gICAgdGhpcy5kaXNwbGF5T3JkZXIuVHlwZSA9IElucHV0VHlwZS5OdW1iZXJcclxuXHJcbiAgICB0aGlzLmlzTWFuYWdlYWJsZSA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuaXNNYW5hZ2VhYmxlLk5hbWUgPSBcIklzTWFuYWdlYWJsZVwiXHJcbiAgICB0aGlzLmlzTWFuYWdlYWJsZS5MYWJlbEtleSA9IFwiTWFuYWdlYWJsZVwiXHJcblxyXG5cclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQWRkTG9va3VwSXRlbU1vZGFsKTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRBZGRMb29rdXBJdGVtTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuYWRkTG9va3VwSXRlbUZvcm0udmFsdWU7XHJcbiAgICBsZXQgQWRkTW9kZWwgPSBuZXcgTG9va1VwSXRlbSgpO1xyXG4gICAgQWRkTW9kZWwuTmFtZS5FbmdsaXNoID0gUmVzdWx0TW9kZWwuTmFtZS5FbmdsaXNoXHJcbiAgICBBZGRNb2RlbC5OYW1lLkFyYWJpYyA9IFJlc3VsdE1vZGVsLk5hbWUuQXJhYmljXHJcbiAgICBpZiAoIXRoaXMuUHJvZHVjdGlvbk1vZGUpXHJcbiAgICB7XHJcbiAgICBBZGRNb2RlbC5TeXNOYW1lID0gUmVzdWx0TW9kZWwuU3lzTmFtZVxyXG4gICAgfVxyXG4gICAgQWRkTW9kZWwuVmFsdWUgPSBSZXN1bHRNb2RlbC5WYWx1ZVxyXG4gICAgQWRkTW9kZWwuRGlzcGxheU9yZGVyID0gUmVzdWx0TW9kZWwuRGlzcGxheU9yZGVyXHJcbiAgICBBZGRNb2RlbC5Mb29rdXBJRCA9ICB0aGlzLmFkZExvb2t1cElkXHJcbiAgICBBZGRNb2RlbC5NYW5hZ2VhYmxlID0gdGhpcy5Qcm9kdWN0aW9uTW9kZSA9PSB0cnVlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKEFkZE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH1cclxuXHJcbiAgZ2V0QWRkTG9va3VwSXRlbUZ1bmN0aW9uID0gKEFkZE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmxvb2t1cFNlcnZpY2UuYWRkTG9va3VwSXRlbShBZGRNb2RlbCk7XHJcbiAgfVxyXG4gIC8vLy8vLy8vLy8vLyBFbmQgb2YgYWRkIExvb2t1cCBHcm91cCBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcblxyXG5cclxuICAgIC8vLy8vLy8vLy8vU3RhcnQgb2YgZWRpdCBMb29rdXAgSXRlbSBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgc2hvd0VkaXRMb29rdXBJdGVtTW9kYWwobG9va3VwSXRlbUlEOiBzdHJpbmcsIGVkaXRMb29rdXBHcm91cE1vZGFsKSB7XHJcblxyXG4gICAgICB0aGlzLmVkaXRMb29rdXBJdGVtRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgICAgdGhpcy5lZGl0TG9va3VwSXRlbUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdExvb2t1cEl0ZW1Gb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLmVkaXRMb29rdXBJdGVtRm9ybVxyXG4gICAgICB0aGlzLmVkaXRMb29rdXBJdGVtRm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0RWRpdExvb2t1cEl0ZW1Nb2RlbDtcclxuICAgICAgdGhpcy5lZGl0TG9va3VwSXRlbUZvcm1PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0RWRpdExvb2t1cEl0ZW1GdW5jdGlvbjtcclxuICAgICAgdGhpcy5lZGl0TG9va3VwSXRlbUZvcm1PcHRpb25zLlBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudFxyXG4gIFxyXG4gICAgICB0aGlzLmxvb2t1cFNlcnZpY2UuZ2V0TG9va3VwSXRlbShsb29rdXBJdGVtSUQpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgTG9va3VwSXRlbT0gcmVzdWx0Lm1vZGVsIGFzIGFueTtcclxuICAgICAgICBsZXQgTmFtZSA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgICAgTmFtZS5BcmFiaWMgPSBMb29rdXBJdGVtWzBdLm5hbWUuYXJhYmljO1xyXG4gICAgICAgIE5hbWUuRW5nbGlzaCA9IExvb2t1cEl0ZW1bMF0ubmFtZS5lbmdsaXNoO1xyXG4gICAgXHJcbiAgICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUuTmFtZSA9IFwiTmFtZVwiO1xyXG4gICAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUuQXJhYmljTGFiZWxLZXkgPSBcIk5hbWVJbkFyYWJpY1wiO1xyXG4gICAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLlZhbHVlID0gTmFtZTtcclxuICAgIFxyXG4gICAgICAgIHRoaXMuZWRpdFN5c05hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLmVkaXRTeXNOYW1lLk5hbWUgPSBcIkVkaXRTeXNOYW1lXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0U3lzTmFtZS5MYWJlbEtleSA9IFwiU3lzTmFtZVwiO1xyXG4gICAgICAgIHRoaXMuZWRpdFN5c05hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgIHRoaXMuZWRpdFN5c05hbWUuVmFsdWUgPSBMb29rdXBJdGVtWzBdLnN5c05hbWU7XHJcbiAgICBcclxuICAgIFxyXG4gICAgICAgIHRoaXMuZWRpdFZhbHVlID0gbmV3IFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZWRpdFZhbHVlLk5hbWUgPSBcIkVkaXRWYWx1ZVwiO1xyXG4gICAgICAgIHRoaXMuZWRpdFZhbHVlLkxhYmVsS2V5ID0gXCJWYWx1ZVwiO1xyXG4gICAgICAgIHRoaXMuZWRpdFZhbHVlLlZhbHVlID0gTG9va3VwSXRlbVswXS52YWx1ZTtcclxuICAgIFxyXG4gICAgICAgIHRoaXMuZWRpdERpc3BsYXlPcmRlciA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZWRpdERpc3BsYXlPcmRlci5OYW1lID0gXCJFZGl0RGlzcGxheU9yZGVyXCJcclxuICAgICAgICB0aGlzLmVkaXREaXNwbGF5T3JkZXIuTGFiZWxLZXkgPSBcIkRpc3BsYXlPcmRlclwiXHJcbiAgICAgICAgdGhpcy5lZGl0RGlzcGxheU9yZGVyLlR5cGUgPSBJbnB1dFR5cGUuTnVtYmVyXHJcbiAgICAgICAgdGhpcy5lZGl0RGlzcGxheU9yZGVyLlZhbHVlID0gTG9va3VwSXRlbVswXS5kaXNwbGF5T3JkZXI7XHJcblxyXG4gICAgXHJcbiAgICBcclxuICAgICAgICB0aGlzLmVkaXRJc01hbmFnZWFibGUgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5lZGl0SXNNYW5hZ2VhYmxlLk5hbWUgPSBcIkVkaXRJc01hbmFnZWFibGVcIlxyXG4gICAgICAgIHRoaXMuZWRpdElzTWFuYWdlYWJsZS5MYWJlbEtleSA9IFwiTWFuYWdlYWJsZVwiXHJcbiAgICAgICAgdGhpcy5lZGl0SXNNYW5hZ2VhYmxlLlZhbHVlID0gTG9va3VwSXRlbVswXS5tYW5hZ2VhYmxlXHJcbiAgICAgICAgdGhpcy5lZGl0SXNNYW5hZ2VhYmxlLklzRGlzYWJsZWQgPSAodGhpcy5Qcm9kdWN0aW9uTW9kZSAmJiBMb29rdXBJdGVtWzBdLm1hbmFnZWFibGUgPT0gZmFsc2UpID09IHRydWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBcclxuICAgICAgICB0aGlzLmxvb2t1cEl0ZW1JZCA9TG9va3VwSXRlbVswXS5pZFxyXG4gICAgICAgIHRoaXMuZWRpdExvb2t1cElkPUxvb2t1cEl0ZW1bMF0ubG9va3VwSURcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKGVkaXRMb29rdXBHcm91cE1vZGFsKTtcclxuICAgICAgfSk7XHJcbiAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIGdldEVkaXRMb29rdXBJdGVtTW9kZWwgPSAoKSA9PiB7XHJcbiAgICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLmVkaXRMb29rdXBJdGVtRm9ybS52YWx1ZTtcclxuICAgICAgbGV0IEVkaXRNb2RlbCA9IG5ldyBMb29rVXBJdGVtKCk7XHJcbiAgICAgIEVkaXRNb2RlbC5JRCA9IE51bWJlcih0aGlzLmxvb2t1cEl0ZW1JZCk7XHJcbiAgICAgIEVkaXRNb2RlbC5Mb29rdXBJRCA9IE51bWJlcih0aGlzLmVkaXRMb29rdXBJZCk7XHJcbiAgICAgIEVkaXRNb2RlbC5OYW1lLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5OYW1lLkVuZ2xpc2hcclxuICAgICAgRWRpdE1vZGVsLk5hbWUuQXJhYmljID0gUmVzdWx0TW9kZWwuTmFtZS5BcmFiaWNcclxuICAgICAgaWYgKCF0aGlzLlByb2R1Y3Rpb25Nb2RlKVxyXG4gICAgICB7XHJcbiAgICAgIEVkaXRNb2RlbC5TeXNOYW1lID0gUmVzdWx0TW9kZWwuRWRpdFN5c05hbWVcclxuICAgICAgfVxyXG4gICAgICBFZGl0TW9kZWwuVmFsdWUgPSBSZXN1bHRNb2RlbC5FZGl0VmFsdWVcclxuICAgICAgRWRpdE1vZGVsLkRpc3BsYXlPcmRlciA9IFJlc3VsdE1vZGVsLkVkaXREaXNwbGF5T3JkZXJcclxuICAgICAgRWRpdE1vZGVsLk1hbmFnZWFibGUgPSBSZXN1bHRNb2RlbC5FZGl0SXNNYW5hZ2VhYmxlXHJcbiAgICAgIHBhcmFtQXJyYXkucHVzaChFZGl0TW9kZWwpO1xyXG4gICAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICAgIH1cclxuICBcclxuICAgIGdldEVkaXRMb29rdXBJdGVtRnVuY3Rpb24gPSAoRWRpdE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9va3VwU2VydmljZS5lZGl0TG9va3VwSXRlbShFZGl0TW9kZWwpXHJcbiAgICB9XHJcbiAgICAvLy8vLy8vLy8vL0VuZCBvZiBlZGl0IExvb2t1cCBJdGVtIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgXHJcblxyXG4gIFxyXG4gICAvLy8vLy8vLy8vL1N0YXJ0IG9mIGRlbGV0ZSBMb29rdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgc2hvd0RlbGV0ZUxvb2t1cEl0ZW1Nb2RhbChsb29rdXBJdGVtSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5kZWxldGVDb250cm9sTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmRlbGV0ZWRMb29rdXBJdGVtSWQgPSBsb29rdXBJdGVtSWQ7XHJcbiAgICAvL2FycmF5IHNlbnQgdG8gc2VydmljZSBmdW5jdGlvblxyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBwYXJhbUFycmF5LnB1c2godGhpcy5kZWxldGVkTG9va3VwSXRlbUlkKTtcclxuXHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMgPSBuZXcgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zKCk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5kZWxldGVMb29rdXBJdGVtO1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLlNlcnZpY2VTdWJtaXRNb2RlbCA9IHBhcmFtQXJyYXk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd01vZGFsKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlTG9va3VwSXRlbSA9IChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmxvb2t1cFNlcnZpY2UuZGVsZXRlTG9va3VwSXRlbShpZClcclxuICB9XHJcbiAgIC8vLy8vLy8vLy8vRW5kIG9mIGRlbGV0ZSBMb29rdXBHcm91cCBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHJcbiAgY29weUlucHV0TWVzc2FnZSgpIHtcclxuICAgIHRoaXMuX2NsaXBib2FyZFNlcnZpY2UuY29weSh0aGlzLnZhbHVlVG9Db3B5LnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0dlbmVyYXRlQ29kZUJ5SWRNb2RhbCggR2VuZXJhdGVDb2RlTW9kYWwpIHtcclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuZ2VuZXJhdGVDb2RlRm9ybVxyXG4gICAgdGhpcy5nZW5lcmF0ZUNvZGVGb3JtT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuXHJcbiAgICB0aGlzLmxvb2t1cFNlcnZpY2UuZ2VuZXJhdGVDb2RlQnlJZCh0aGlzLkxvb2t1cElkKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB2YXIgVmFsdWUgPSByZXN1bHQgYXMgYW55XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuTmFtZSA9IFwiR2VuZXJhdGVDb2RlVGV4dEFyZWFcIjtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5WYWx1ZSA9IFZhbHVlLnZhbC50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLnZhbHVlVG9Db3B5ID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuSXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5Sb3dzID0gMjA7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuQ29scyA9IDIwO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLk1heExlbmd0aCA9IDEwMDAwMDA7XHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oR2VuZXJhdGVDb2RlTW9kYWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgIFxyXG4gIC8qKkZ1bmN0aW9uTmFtZTpmaWx0ZXJMb29rdXBJdGVtTGlzdCovXHJcbiAgLyoqRGVjbGFyYXRpb246ZnVuY3Rpb24gdG8gZmlsdGVyIExvb2t1cCBJdGVtIGluIGNsaWVudC1zaWRlICovXHJcbiAgLyoqUGFyYW1ldGVyczoqL1xyXG4gIC8qKnNlYXJjaFZhbHVlOiBjdXJyZW50IHZhbHVlIG9mIHNlYXJjaCBib3gqL1xyXG4gIGZpbHRlckxvb2t1cEl0ZW1MaXN0KHNlYXJjaFZhbHVlKXtcclxuICAgIGlmKHNlYXJjaFZhbHVlKVxyXG4gICAgdGhpcy5maWx0ZXJlZExvb2t1cEl0ZW1QYWdpbmdSZXN1bHQ9IHRoaXMubG9va3VwSXRlbVBhZ2luZ1Jlc3VsdC5maWx0ZXIoaXRlbSA9PiBpdGVtLmxvb2tVcEl0ZW1OYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpO1xyXG4gICAgZWxzZVxyXG4gICAgdGhpcy5maWx0ZXJlZExvb2t1cEl0ZW1QYWdpbmdSZXN1bHQ9IHRoaXMubG9va3VwSXRlbVBhZ2luZ1Jlc3VsdFxyXG4gIH1cclxuXHJcbiAgLy8vLy8vLy8vLy9EZXN0cm95IE9ic2VydmFibGUgLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuICA8IS0tIFBhZ2UgQ29udGVudCAtLT5cclxuICA8ZGl2ICBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCIgKm5nSWY9XCJpc0ZpbHRlckxvYWRlZFwiPlxyXG4gICAgICAgICBcclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJzZWFyY2hUZXh0Qm94XCIgKE9uQ2hhbmdlKT1cImZpbHRlckxvb2t1cEl0ZW1MaXN0KCRldmVudClcIiBbZ3JvdXBdPVwibG9va3VwSXRlbUZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgPGRpdiBbaGlkZGVuXT1cInRydWVcIiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJsb29rdXBJZFRleHRCb3hcIiBbZ3JvdXBdPVwibG9va3VwSXRlbUZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPCEtLSBiZWdpbjo6TWVudSAtLT5cclxuICAgICAgICAgIDxidXR0b24gaHJlZj1cImphdmFzY3JpcHQ6O1wiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGlnaHQtcHJpbWFyeSBtZS0zXCIgKGNsaWNrKT1cInNob3dHZW5lcmF0ZUNvZGVCeUlkTW9kYWwoR2VuZXJhdGVDb2RlTW9kYWwpXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEta2V5IG1lLTFcIj48L2k+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiR2VuZXJhdGVDb2RlXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIHRpdGxlPVwiQWRkXCIgKGNsaWNrKT1cInNob3dBZGRMb29rdXBJdGVtTW9kYWwoQWRkTG9va3VwSXRlbU1vZGFsKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8IS0tIGVuZDo6TWVudSAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICA8IS0tYmVnaW46OlBlcm1pc3Npb24gbGlzdC0tPlxyXG4gICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIklkXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOYW1lXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIiAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlN5c05hbWVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlZhbHVlXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNYW5hZ2VhYmxlXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGlvblwiKX19PC90aD5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgIDx0Ym9keSBpZD1cImxpc3RpbmdDb250YWluZXJcIiBjbGFzcz1cImZ3LWJvbGQgdGV4dC1ncmF5LTYwMCBib3JkZXItMFwiPlxyXG5cclxuICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IExvb2t1cEl0ZW0gb2YgZmlsdGVyZWRMb29rdXBJdGVtUGFnaW5nUmVzdWx0XCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ0ZXh0LWRhcmtcIj57e0xvb2t1cEl0ZW0uaWR9fTwvdGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICB7e0xvb2t1cEl0ZW0ubG9va1VwSXRlbU5hbWV9fVxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIj57e0xvb2t1cEl0ZW0uc3lzTmFtZX19PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD57e0xvb2t1cEl0ZW0udmFsdWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiTG9va3VwSXRlbS5tYW5hZ2VhYmxlO2Vsc2UgZGVmYXVsdF9ub1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlllc1wiKX19XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0X25vPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTm9cIil9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1saWdodCBidG4tYWN0aXZlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWxsaXBzaXMtaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCIgbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJzaG93RWRpdExvb2t1cEl0ZW1Nb2RhbChMb29rdXBJdGVtLmlkRW5jcnlwdGVkLEVkaXRMb29rdXBJdGVtTW9kYWwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rIHB4LTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCIoIShMb29rdXBJdGVtLm1hbmFnZWFibGU9PWZhbHNlJiZQcm9kdWN0aW9uTW9kZSl8fChMb29rdXBJdGVtLmlzUGFyZW50TG9va3VwTWFuYWdlYWJsZSkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlTG9va3VwSXRlbU1vZGFsKExvb2t1cEl0ZW0uaWRFbmNyeXB0ZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rIHB4LTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVcIil9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPHRyICpuZ0lmPVwiZmlsdGVyZWRMb29rdXBJdGVtUGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJQcm9kdWN0aW9uTW9kZSA/ICc2JyA6ICc3J1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bGliLWVtcHR5LWRhdGE+PC9saWItZW1wdHktZGF0YT5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgICAgPCEtLWVuZDo6UGVybWlzc2lvbiBsaXN0LS0+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPEJCU0YtUGFnaW5nIChJdGVtcyk9XCJzZXRMb29rdXBJdGVtTGlzdFJlc3VsdCgkZXZlbnQpXCIgKm5nSWY9XCJpc0ZpbHRlckxvYWRlZFwiIFtvcHRpb25zXT1cImxvb2t1cEl0ZW1QYWdpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZ3JvdXBdPVwibG9va3VwSXRlbUZvcm1cIiAjTG9va3VwSXRlbVBhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8IS0tIEFkZCBNb2RhbCAtLT5cclxuICA8bmctdGVtcGxhdGUgI0FkZExvb2t1cEl0ZW1Nb2RhbCBsZXQtbW9kYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHBiLTAgYm9yZGVyLTAganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTEzIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwibWItM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19IHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxvb2t1cEl0ZW1cIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImFkZExvb2t1cEl0ZW1Gb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwibXVsdGlMaW5ndWFsTmFtZVwiIFtncm91cF09XCJhZGRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgIDxCQlNGLVRleHRCb3ggICAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiIFtvcHRpb25zXT1cInN5c05hbWVcIiBbZ3JvdXBdPVwiYWRkTG9va3VwSXRlbUZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICA8QkJTRi1UZXh0QXJlYSBbb3B0aW9uc109XCJ2YWx1ZVwiIFtncm91cF09XCJhZGRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1UZXh0QXJlYT5cclxuICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImRpc3BsYXlPcmRlclwiIFtncm91cF09XCJhZGRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cImlzTWFuYWdlYWJsZVwiIFtncm91cF09XCJhZGRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI0Nsb3NlTG9va3VwSXRlbU1vZGFsIGlkPVwiQ2xvc2VMb29rdXBJdGVtTW9kYWxcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19IDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9CQlNGLUZvcm0+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG5cclxuICA8IS0tIEVkaXQgTW9kYWwgLS0+XHJcbiAgPG5nLXRlbXBsYXRlICNFZGl0TG9va3VwSXRlbU1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRWRpdFwiKX19IHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxvb2t1cEl0ZW1cIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImVkaXRMb29rdXBJdGVtRm9ybU9wdGlvbnNcIj5cclxuICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cImVkaXRNdWx0aUxpbmd1YWxOYW1lXCIgW2dyb3VwXT1cImVkaXRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgIDxCQlNGLVRleHRCb3ggICAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiIFtvcHRpb25zXT1cImVkaXRTeXNOYW1lXCIgW2dyb3VwXT1cImVkaXRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDxCQlNGLVRleHRBcmVhIFtvcHRpb25zXT1cImVkaXRWYWx1ZVwiIFtncm91cF09XCJlZGl0TG9va3VwSXRlbUZvcm1cIj48L0JCU0YtVGV4dEFyZWE+XHJcbiAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlZGl0RGlzcGxheU9yZGVyXCIgW2dyb3VwXT1cImVkaXRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cImVkaXRJc01hbmFnZWFibGVcIiBbZ3JvdXBdPVwiZWRpdExvb2t1cEl0ZW1Gb3JtXCI+PC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjQ2xvc2VFZGl0TG9va3VwSXRlbU1vZGFsIGlkPVwiQ2xvc2VFZGl0TG9va3VwSXRlbU1vZGFsXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fSA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNhdmVMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvQkJTRi1Gb3JtPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuPCEtLWRlbGV0ZSBNb2RhbC0tPlxyXG48QkJTRi1Db25maXJtYXRpb25Nb2RhbCAqbmdJZj1cImRlbGV0ZUNvbnRyb2xMb2FkZWRcIiBbb3B0aW9uc109XCJkZWxldGVDb25maXJtYXRpb25PcHRpb25zXCIgaWQ9XCJDb25maXJtYXRpb25Nb2RhbENvbnRyb2xcIlxyXG4jQ29uZmlybWF0aW9uTW9kYWxDb250cm9sPjwvQkJTRi1Db25maXJtYXRpb25Nb2RhbD5cclxuXHJcblxyXG4gIDwhLS0gR2VuZXJhdGVDb2RlIE1vZGFsIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSAjR2VuZXJhdGVDb2RlTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJHZW5lcmF0ZUNvZGVcIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImdlbmVyYXRlQ29kZUZvcm1PcHRpb25zXCI+XHJcbiAgICAgICAgPGRpdj5cclxuXHJcbiAgICAgICAgICA8QkJTRi1UZXh0QXJlYSBbb3B0aW9uc109XCJnZW5lcmF0ZUNvZGVUZXh0QXJlYVwiIFtncm91cF09XCJnZW5lcmF0ZUNvZGVGb3JtXCIgI0dlbmVyYXRlQ29kZUlucHV0PlxyXG4gICAgICAgICAgPC9CQlNGLVRleHRBcmVhPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI0Nsb3NlR2VuZXJhdGVDb2RlTW9kYWwgaWQ9XCJDbG9zZUdlbmVyYXRlQ29kZU1vZGFsXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fSA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIChjbGljayk9XCJjb3B5SW5wdXRNZXNzYWdlKClcIj5cclxuICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ29weVRvQ2xpcGJvYXJkXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0JCU0YtRm9ybT5cclxuXHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuXHJcbiAgXHJcbiJdfQ==
@@ -26,16 +26,16 @@ export class AddComponent {
26
26
  let paramArray = [];
27
27
  let ResultModel = this.AddForm.value;
28
28
  let AddModel = new EmailHeaderAndFooterTemplate();
29
- AddModel.Name.English = ResultModel.Name.EnglishValue;
30
- AddModel.Name.Arabic = ResultModel.Name.ArabicValue;
31
- AddModel.Header.English = ResultModel.Header.EnglishHtmlEditorValue;
32
- AddModel.Header.Arabic = ResultModel.Header.ArabicHtmlEditorValue;
33
- AddModel.Footer.English = ResultModel.Footer.EnglishHtmlEditorValue;
34
- AddModel.Footer.Arabic = ResultModel.Footer.ArabicHtmlEditorValue;
35
- AddModel.HeadSection.English = ResultModel.HtmlHeadSection.EnglishHtmlEditorValue;
36
- AddModel.HeadSection.Arabic = ResultModel.HtmlHeadSection.ArabicHtmlEditorValue;
37
- AddModel.HeadTagAttributes.English = ResultModel.HtmlHeadTagAttributes.EnglishValue;
38
- AddModel.HeadTagAttributes.Arabic = ResultModel.HtmlHeadTagAttributes.ArabicValue;
29
+ AddModel.Name.English = ResultModel.Name.English;
30
+ AddModel.Name.Arabic = ResultModel.Name.Arabic;
31
+ AddModel.Header.English = ResultModel.Header.English;
32
+ AddModel.Header.Arabic = ResultModel.Header.Arabic;
33
+ AddModel.Footer.English = ResultModel.Footer.English;
34
+ AddModel.Footer.Arabic = ResultModel.Footer.Arabic;
35
+ AddModel.HeadSection.English = ResultModel.HtmlHeadSection.English;
36
+ AddModel.HeadSection.Arabic = ResultModel.HtmlHeadSection.Arabic;
37
+ AddModel.HeadTagAttributes.English = ResultModel.HtmlHeadTagAttributes.English;
38
+ AddModel.HeadTagAttributes.Arabic = ResultModel.HtmlHeadTagAttributes.Arabic;
39
39
  paramArray.push(AddModel);
40
40
  return paramArray;
41
41
  };
@@ -74,7 +74,6 @@ export class AddComponent {
74
74
  this.MultiLingualHtmlHeadTagAttributes.Name = "HtmlHeadTagAttributes";
75
75
  this.MultiLingualHtmlHeadTagAttributes.ArabicLabelKey = "HtmlHeadTagAttributesInArabic";
76
76
  this.MultiLingualHtmlHeadTagAttributes.EnglishLabelKey = "HtmlHeadTagAttributesInEnglish";
77
- this.MultiLingualHtmlHeadTagAttributes.IsRequired = true;
78
77
  this.MultiLingualHtmlHeadTagAttributes.Value = null;
79
78
  this.MultiLingualHeader = new MultiLingualHtmlEditorOptions();
80
79
  this.MultiLingualHeader.Name = "Header";
@@ -92,7 +91,6 @@ export class AddComponent {
92
91
  this.MultiLingualHtmlHeadSection.Name = "HtmlHeadSection";
93
92
  this.MultiLingualHtmlHeadSection.ArabicLabelKey = "HTMLHeadSectionInArabic";
94
93
  this.MultiLingualHtmlHeadSection.EnglishLabelKey = "HTMLHeadSectionInEnglish";
95
- this.MultiLingualHtmlHeadSection.IsRequired = true;
96
94
  this.MultiLingualHtmlHeadSection.Value = null;
97
95
  this.ShowPageContent = true;
98
96
  }
@@ -113,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
113
111
  templateUrl: './add.component.html'
114
112
  }]
115
113
  }], ctorParameters: function () { return [{ type: i1.UtilityService }, { type: i1.BBSFTranslateService }, { type: i2.EmailHeaderAndFooterTemplateService }, { type: i3.Router }, { type: i1.RequestHandlerService }]; } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbm90aWZpY2F0aW9ucy9hZGQvYWRkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbm90aWZpY2F0aW9ucy9hZGQvYWRkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLDZCQUE2QixFQUFFLDBCQUEwQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHakgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7O0FBUXJGLE1BQU0sT0FBTyxZQUFZO0lBYXZCLFlBQW1CLGNBQThCLEVBQVUsb0JBQTBDLEVBQzNGLG1DQUF3RSxFQUFVLE1BQWMsRUFDaEcscUJBQTRDO1FBRm5DLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDM0Ysd0NBQW1DLEdBQW5DLG1DQUFtQyxDQUFxQztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDaEcsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQWR0RCxtQkFBbUI7UUFDbkIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFFaEMsb0JBQW9CO1FBQ3JCLFlBQU8sR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixtQkFBYyxHQUFHLElBQUksV0FBVyxDQUFD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UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxHQUFHLGlCQUFpQixDQUFDO1FBQzVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQzFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRXJDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLDZCQUE2QixFQUFFLENBQUM7UUFDdkUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztRQUMxRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsY0FBYyxHQUFHLHlCQUF5QixDQUFDO1FBQzVFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxlQUFlLEdBQUcsMEJBQTBCLENBQUM7UUFDOUUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbkQsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQTZCRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFlBQVk7SUFDWixXQUFXO1FBQ1QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLENBQUM7OzBHQWpIVSxZQUFZOzhGQUFaLFlBQVksK0NDZHpCLDIwREEyQ0E7NEZEN0JhLFlBQVk7a0JBSnhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFdBQVcsRUFBRSxzQkFBc0I7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGb3JtT3B0aW9ucywgTXVsdGlMaW5ndWFsSHRtbEVkaXRvck9wdGlvbnMsIE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBFbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9FbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZS5TZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRW1haWxIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTm90aWZpY2F0aW9uc01vZGVscy9FbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21ldHJvbmljL2NvcmUvc2VydmljZXMvcGFnZS1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSwgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFkZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIFNob3dQYWdlQ29udGVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgLy9BZGQgTW9kZWwgQ29udHJvbHNcclxuICBBZGRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQWRkRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnM7XHJcbiAgTXVsdGlMaW5ndWFsTmFtZTogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnNcclxuICBNdWx0aUxpbmd1YWxIdG1sSGVhZFRhZ0F0dHJpYnV0ZXM6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zXHJcbiAgTXVsdGlMaW5ndWFsSGVhZGVyOiBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yT3B0aW9uc1xyXG4gIE11bHRpTGluZ3VhbEZvb3RlcjogTXVsdGlMaW5ndWFsSHRtbEVkaXRvck9wdGlvbnNcclxuICBNdWx0aUxpbmd1YWxIdG1sSGVhZFNlY3Rpb246IE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zXHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsIHByaXZhdGUgYmJzZlRyYW5zbGF0ZVNlcnZpY2U6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZTogRW1haWxIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlcXVlc3RIYW5kbGVyU2VydmljZTogUmVxdWVzdEhhbmRsZXJTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIFxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZT1cIlwiXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzPVtcclxuICAgIF07XHJcblxyXG4gICAgdGhpcy5iYnNmVHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChldmVudCk9PntcclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfSlcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgLy9Jbml0aWFsaXplIGFkZCBwYWdlXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcblxyXG4gICAgdGhpcy5BZGRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICB0aGlzLkFkZEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLkFkZEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuQWRkRm9ybVxyXG4gICAgdGhpcy5BZGRGb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRNb2RlbDtcclxuICAgIHRoaXMuQWRkRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRGdW5jdGlvbjtcclxuICAgIHRoaXMuQWRkRm9ybU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25BZGRTdWNjZXNzO1xyXG5cclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxOYW1lLk5hbWUgPSBcIk5hbWVcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsTmFtZS5BcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbE5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbE5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbE5hbWUuVmFsdWUgPSBudWxsO1xyXG5cclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRUYWdBdHRyaWJ1dGVzID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEh0bWxIZWFkVGFnQXR0cmlidXRlcy5OYW1lID0gXCJIdG1sSGVhZFRhZ0F0dHJpYnV0ZXNcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRUYWdBdHRyaWJ1dGVzLkFyYWJpY0xhYmVsS2V5ID0gXCJIdG1sSGVhZFRhZ0F0dHJpYnV0ZXNJbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxIdG1sSGVhZFRhZ0F0dHJpYnV0ZXMuRW5nbGlzaExhYmVsS2V5ID0gXCJIdG1sSGVhZFRhZ0F0dHJpYnV0ZXNJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRUYWdBdHRyaWJ1dGVzLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxIdG1sSGVhZFRhZ0F0dHJpYnV0ZXMuVmFsdWUgPSBudWxsO1xyXG5cclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSGVhZGVyID0gbmV3IE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zKCk7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEhlYWRlci5OYW1lID0gXCJIZWFkZXJcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSGVhZGVyLkFyYWJpY0xhYmVsS2V5ID0gXCJIZWFkZXJJbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxIZWFkZXIuRW5nbGlzaExhYmVsS2V5ID0gXCJIZWFkZXJJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSGVhZGVyLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxIZWFkZXIuVmFsdWUgPSBudWxsO1xyXG5cclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsRm9vdGVyID0gbmV3IE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zKCk7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEZvb3Rlci5OYW1lID0gXCJGb290ZXJcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsRm9vdGVyLkFyYWJpY0xhYmVsS2V5ID0gXCJGb290ZXJJbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxGb290ZXIuRW5nbGlzaExhYmVsS2V5ID0gXCJGb290ZXJJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsRm9vdGVyLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxGb290ZXIuVmFsdWUgPSBudWxsO1xyXG5cclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRTZWN0aW9uID0gbmV3IE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zKCk7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEh0bWxIZWFkU2VjdGlvbi5OYW1lID0gXCJIdG1sSGVhZFNlY3Rpb25cIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRTZWN0aW9uLkFyYWJpY0xhYmVsS2V5ID0gXCJIVE1MSGVhZFNlY3Rpb25JbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxIdG1sSGVhZFNlY3Rpb24uRW5nbGlzaExhYmVsS2V5ID0gXCJIVE1MSGVhZFNlY3Rpb25JbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRTZWN0aW9uLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxIdG1sSGVhZFNlY3Rpb24uVmFsdWUgPSBudWxsO1xyXG5cclxuICAgIHRoaXMuU2hvd1BhZ2VDb250ZW50ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdldEFkZE1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLkFkZEZvcm0udmFsdWU7XHJcbiAgICBsZXQgQWRkTW9kZWwgPSBuZXcgRW1haWxIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZSgpO1xyXG4gICAgQWRkTW9kZWwuTmFtZS5FbmdsaXNoID0gUmVzdWx0TW9kZWwuTmFtZS5FbmdsaXNoVmFsdWVcclxuICAgIEFkZE1vZGVsLk5hbWUuQXJhYmljID0gUmVzdWx0TW9kZWwuTmFtZS5BcmFiaWNWYWx1ZVxyXG4gICAgQWRkTW9kZWwuSGVhZGVyLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5IZWFkZXIuRW5nbGlzaEh0bWxFZGl0b3JWYWx1ZVxyXG4gICAgQWRkTW9kZWwuSGVhZGVyLkFyYWJpYyA9IFJlc3VsdE1vZGVsLkhlYWRlci5BcmFiaWNIdG1sRWRpdG9yVmFsdWVcclxuICAgIEFkZE1vZGVsLkZvb3Rlci5FbmdsaXNoID0gUmVzdWx0TW9kZWwuRm9vdGVyLkVuZ2xpc2hIdG1sRWRpdG9yVmFsdWVcclxuICAgIEFkZE1vZGVsLkZvb3Rlci5BcmFiaWMgPSBSZXN1bHRNb2RlbC5Gb290ZXIuQXJhYmljSHRtbEVkaXRvclZhbHVlXHJcbiAgICBBZGRNb2RlbC5IZWFkU2VjdGlvbi5FbmdsaXNoID0gUmVzdWx0TW9kZWwuSHRtbEhlYWRTZWN0aW9uLkVuZ2xpc2hIdG1sRWRpdG9yVmFsdWVcclxuICAgIEFkZE1vZGVsLkhlYWRTZWN0aW9uLkFyYWJpYyA9IFJlc3VsdE1vZGVsLkh0bWxIZWFkU2VjdGlvbi5BcmFiaWNIdG1sRWRpdG9yVmFsdWVcclxuICAgIEFkZE1vZGVsLkhlYWRUYWdBdHRyaWJ1dGVzLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5IdG1sSGVhZFRhZ0F0dHJpYnV0ZXMuRW5nbGlzaFZhbHVlXHJcbiAgICBBZGRNb2RlbC5IZWFkVGFnQXR0cmlidXRlcy5BcmFiaWMgPSBSZXN1bHRNb2RlbC5IdG1sSGVhZFRhZ0F0dHJpYnV0ZXMuQXJhYmljVmFsdWVcclxuXHJcbiAgICBwYXJhbUFycmF5LnB1c2goQWRkTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRBZGRGdW5jdGlvbiA9IChBZGRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5lbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZS5hZGRFbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlKEFkZE1vZGVsKVxyXG4gIH0gIFxyXG5cclxuICBvbkFkZFN1Y2Nlc3MgPSAocmVzdWx0KSA9PiB7XHJcbiAgICB0aGlzLmNhbmNlbEFkZCgpO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsQWRkKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vTm90aWZpY2F0aW9ucy9NYXN0ZXJMYXlvdXRzJ10pO1xyXG4gIH1cclxuXHJcbiAgLy9PbiBkZXN0cm95XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiIFxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiICpuZ0lmPVwiU2hvd1BhZ2VDb250ZW50XCI+XHJcbiAgICA8IS0tIGJlZ2luOjpCb2R5IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cIkFkZEZvcm1PcHRpb25zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIiByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJNdWx0aUxpbmd1YWxOYW1lXCIgW2dyb3VwXT1cIkFkZEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIgcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbEh0bWxFZGl0b3IgW29wdGlvbnNdPVwiTXVsdGlMaW5ndWFsSGVhZGVyXCIgW2dyb3VwXT1cIkFkZEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsSHRtbEVkaXRvcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiB0YWJsZS1kYXJrLXNraW5cIj5cclxuICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsSHRtbEVkaXRvciBbb3B0aW9uc109XCJNdWx0aUxpbmd1YWxGb290ZXJcIiBbZ3JvdXBdPVwiQWRkRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxIdG1sRWRpdG9yPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIgcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxIdG1sRWRpdG9yIFtvcHRpb25zXT1cIk11bHRpTGluZ3VhbEh0bWxIZWFkU2VjdGlvblwiIFtncm91cF09XCJBZGRGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbEh0bWxFZGl0b3I+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIk11bHRpTGluZ3VhbEh0bWxIZWFkVGFnQXR0cmlidXRlc1wiIFtncm91cF09XCJBZGRGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5IGJ0bi1zbSBtZS0zXCIgKGNsaWNrKT1cImNhbmNlbEFkZCgpXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNhdmVMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvQkJTRi1Gb3JtPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbm90aWZpY2F0aW9ucy9hZGQvYWRkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbm90aWZpY2F0aW9ucy9hZGQvYWRkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLDZCQUE2QixFQUFFLDBCQUEwQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHakgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7O0FBUXJGLE1BQU0sT0FBTyxZQUFZO0lBYXZCLFlBQW1CLGNBQThCLEVBQVUsb0JBQTBDLEVBQzNGLG1DQUF3RSxFQUFVLE1BQWMsRUFDaEcscUJBQTRDO1FBRm5DLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDM0Ysd0NBQW1DLEdBQW5DLG1DQUFtQyxDQUFxQztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDaEcsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQWR0RCxtQkFBbUI7UUFDbkIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFFaEMsb0JBQW9CO1FBQ3JCLFlBQU8sR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixtQkFBYyxHQUFHLElBQUksV0FBVyxDQUFD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LENBQUMsa0JBQWtCLENBQUMsZUFBZSxHQUFHLGlCQUFpQixDQUFDO1FBQzVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQzFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRXJDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLDZCQUE2QixFQUFFLENBQUM7UUFDdkUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztRQUMxRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsY0FBYyxHQUFHLHlCQUF5QixDQUFDO1FBQzVFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxlQUFlLEdBQUcsMEJBQTBCLENBQUM7UUFDOUUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQTZCRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFlBQVk7SUFDWixXQUFXO1FBQ1QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLENBQUM7OzBHQS9HVSxZQUFZOzhGQUFaLFlBQVksK0NDZHpCLDIwREEyQ0E7NEZEN0JhLFlBQVk7a0JBSnhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFdBQVcsRUFBRSxzQkFBc0I7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGb3JtT3B0aW9ucywgTXVsdGlMaW5ndWFsSHRtbEVkaXRvck9wdGlvbnMsIE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBFbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9FbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZS5TZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRW1haWxIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTm90aWZpY2F0aW9uc01vZGVscy9FbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21ldHJvbmljL2NvcmUvc2VydmljZXMvcGFnZS1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSwgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFkZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIFNob3dQYWdlQ29udGVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgLy9BZGQgTW9kZWwgQ29udHJvbHNcclxuICBBZGRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQWRkRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnM7XHJcbiAgTXVsdGlMaW5ndWFsTmFtZTogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnNcclxuICBNdWx0aUxpbmd1YWxIdG1sSGVhZFRhZ0F0dHJpYnV0ZXM6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zXHJcbiAgTXVsdGlMaW5ndWFsSGVhZGVyOiBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yT3B0aW9uc1xyXG4gIE11bHRpTGluZ3VhbEZvb3RlcjogTXVsdGlMaW5ndWFsSHRtbEVkaXRvck9wdGlvbnNcclxuICBNdWx0aUxpbmd1YWxIdG1sSGVhZFNlY3Rpb246IE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zXHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsIHByaXZhdGUgYmJzZlRyYW5zbGF0ZVNlcnZpY2U6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZTogRW1haWxIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlcXVlc3RIYW5kbGVyU2VydmljZTogUmVxdWVzdEhhbmRsZXJTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIFxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZT1cIlwiXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzPVtcclxuICAgIF07XHJcblxyXG4gICAgdGhpcy5iYnNmVHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChldmVudCk9PntcclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfSlcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgLy9Jbml0aWFsaXplIGFkZCBwYWdlXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcblxyXG4gICAgdGhpcy5BZGRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICB0aGlzLkFkZEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLkFkZEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuQWRkRm9ybVxyXG4gICAgdGhpcy5BZGRGb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRNb2RlbDtcclxuICAgIHRoaXMuQWRkRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRGdW5jdGlvbjtcclxuICAgIHRoaXMuQWRkRm9ybU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25BZGRTdWNjZXNzO1xyXG5cclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxOYW1lLk5hbWUgPSBcIk5hbWVcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsTmFtZS5BcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbE5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbE5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbE5hbWUuVmFsdWUgPSBudWxsO1xyXG5cclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRUYWdBdHRyaWJ1dGVzID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEh0bWxIZWFkVGFnQXR0cmlidXRlcy5OYW1lID0gXCJIdG1sSGVhZFRhZ0F0dHJpYnV0ZXNcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRUYWdBdHRyaWJ1dGVzLkFyYWJpY0xhYmVsS2V5ID0gXCJIdG1sSGVhZFRhZ0F0dHJpYnV0ZXNJbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxIdG1sSGVhZFRhZ0F0dHJpYnV0ZXMuRW5nbGlzaExhYmVsS2V5ID0gXCJIdG1sSGVhZFRhZ0F0dHJpYnV0ZXNJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRUYWdBdHRyaWJ1dGVzLlZhbHVlID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEhlYWRlciA9IG5ldyBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yT3B0aW9ucygpO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxIZWFkZXIuTmFtZSA9IFwiSGVhZGVyXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEhlYWRlci5BcmFiaWNMYWJlbEtleSA9IFwiSGVhZGVySW5BcmFiaWNcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSGVhZGVyLkVuZ2xpc2hMYWJlbEtleSA9IFwiSGVhZGVySW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEhlYWRlci5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSGVhZGVyLlZhbHVlID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEZvb3RlciA9IG5ldyBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yT3B0aW9ucygpO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxGb290ZXIuTmFtZSA9IFwiRm9vdGVyXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEZvb3Rlci5BcmFiaWNMYWJlbEtleSA9IFwiRm9vdGVySW5BcmFiaWNcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsRm9vdGVyLkVuZ2xpc2hMYWJlbEtleSA9IFwiRm9vdGVySW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEZvb3Rlci5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsRm9vdGVyLlZhbHVlID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEh0bWxIZWFkU2VjdGlvbiA9IG5ldyBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yT3B0aW9ucygpO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxIdG1sSGVhZFNlY3Rpb24uTmFtZSA9IFwiSHRtbEhlYWRTZWN0aW9uXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEh0bWxIZWFkU2VjdGlvbi5BcmFiaWNMYWJlbEtleSA9IFwiSFRNTEhlYWRTZWN0aW9uSW5BcmFiaWNcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRTZWN0aW9uLkVuZ2xpc2hMYWJlbEtleSA9IFwiSFRNTEhlYWRTZWN0aW9uSW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEh0bWxIZWFkU2VjdGlvbi5WYWx1ZSA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5TaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWRkTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuQWRkRm9ybS52YWx1ZTtcclxuICAgIGxldCBBZGRNb2RlbCA9IG5ldyBFbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlKCk7XHJcbiAgICBBZGRNb2RlbC5OYW1lLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5OYW1lLkVuZ2xpc2hcclxuICAgIEFkZE1vZGVsLk5hbWUuQXJhYmljID0gUmVzdWx0TW9kZWwuTmFtZS5BcmFiaWNcclxuICAgIEFkZE1vZGVsLkhlYWRlci5FbmdsaXNoID0gUmVzdWx0TW9kZWwuSGVhZGVyLkVuZ2xpc2hcclxuICAgIEFkZE1vZGVsLkhlYWRlci5BcmFiaWMgPSBSZXN1bHRNb2RlbC5IZWFkZXIuQXJhYmljXHJcbiAgICBBZGRNb2RlbC5Gb290ZXIuRW5nbGlzaCA9IFJlc3VsdE1vZGVsLkZvb3Rlci5FbmdsaXNoXHJcbiAgICBBZGRNb2RlbC5Gb290ZXIuQXJhYmljID0gUmVzdWx0TW9kZWwuRm9vdGVyLkFyYWJpY1xyXG4gICAgQWRkTW9kZWwuSGVhZFNlY3Rpb24uRW5nbGlzaCA9IFJlc3VsdE1vZGVsLkh0bWxIZWFkU2VjdGlvbi5FbmdsaXNoXHJcbiAgICBBZGRNb2RlbC5IZWFkU2VjdGlvbi5BcmFiaWMgPSBSZXN1bHRNb2RlbC5IdG1sSGVhZFNlY3Rpb24uQXJhYmljXHJcbiAgICBBZGRNb2RlbC5IZWFkVGFnQXR0cmlidXRlcy5FbmdsaXNoID0gUmVzdWx0TW9kZWwuSHRtbEhlYWRUYWdBdHRyaWJ1dGVzLkVuZ2xpc2hcclxuICAgIEFkZE1vZGVsLkhlYWRUYWdBdHRyaWJ1dGVzLkFyYWJpYyA9IFJlc3VsdE1vZGVsLkh0bWxIZWFkVGFnQXR0cmlidXRlcy5BcmFiaWNcclxuXHJcbiAgICBwYXJhbUFycmF5LnB1c2goQWRkTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRBZGRGdW5jdGlvbiA9IChBZGRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5lbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZS5hZGRFbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlKEFkZE1vZGVsKVxyXG4gIH0gIFxyXG5cclxuICBvbkFkZFN1Y2Nlc3MgPSAocmVzdWx0KSA9PiB7XHJcbiAgICB0aGlzLmNhbmNlbEFkZCgpO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsQWRkKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vTm90aWZpY2F0aW9ucy9NYXN0ZXJMYXlvdXRzJ10pO1xyXG4gIH1cclxuXHJcbiAgLy9PbiBkZXN0cm95XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiIFxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiICpuZ0lmPVwiU2hvd1BhZ2VDb250ZW50XCI+XHJcbiAgICA8IS0tIGJlZ2luOjpCb2R5IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cIkFkZEZvcm1PcHRpb25zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIiByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJNdWx0aUxpbmd1YWxOYW1lXCIgW2dyb3VwXT1cIkFkZEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIgcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbEh0bWxFZGl0b3IgW29wdGlvbnNdPVwiTXVsdGlMaW5ndWFsSGVhZGVyXCIgW2dyb3VwXT1cIkFkZEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsSHRtbEVkaXRvcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiB0YWJsZS1kYXJrLXNraW5cIj5cclxuICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsSHRtbEVkaXRvciBbb3B0aW9uc109XCJNdWx0aUxpbmd1YWxGb290ZXJcIiBbZ3JvdXBdPVwiQWRkRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxIdG1sRWRpdG9yPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIgcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxIdG1sRWRpdG9yIFtvcHRpb25zXT1cIk11bHRpTGluZ3VhbEh0bWxIZWFkU2VjdGlvblwiIFtncm91cF09XCJBZGRGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbEh0bWxFZGl0b3I+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIk11bHRpTGluZ3VhbEh0bWxIZWFkVGFnQXR0cmlidXRlc1wiIFtncm91cF09XCJBZGRGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5IGJ0bi1zbSBtZS0zXCIgKGNsaWNrKT1cImNhbmNlbEFkZCgpXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNhdmVMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvQkJTRi1Gb3JtPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4iXX0=