@bnsights/bbsf-admin-portal 1.1.3 → 1.1.5

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 (148) hide show
  1. package/README.md +4 -0
  2. package/esm2022/lib/Pages/ActiveDirectories/active-directories.component.mjs +1 -1
  3. package/esm2022/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +146 -146
  4. package/esm2022/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.mjs +152 -152
  5. package/esm2022/lib/Pages/ActiveDirectories/active-directory.module.mjs +1 -1
  6. package/esm2022/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.mjs +1 -1
  7. package/esm2022/lib/Pages/_layout/components/aside/aside.component.mjs +1 -1
  8. package/esm2022/lib/Pages/anonymouslayout/activation/activation.component.mjs +15 -15
  9. package/esm2022/lib/Pages/anonymouslayout/anonymouslayout-routing.module.mjs +1 -1
  10. package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.component.mjs +1 -1
  11. package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.module.mjs +1 -1
  12. package/esm2022/lib/Pages/anonymouslayout/error/error.component.mjs +7 -7
  13. package/esm2022/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.mjs +12 -12
  14. package/esm2022/lib/Pages/anonymouslayout/login/login.component.mjs +17 -17
  15. package/esm2022/lib/Pages/anonymouslayout/rest-password/rest-password.component.mjs +15 -15
  16. package/esm2022/lib/Pages/anonymouslayout/upload-license/upload-license.component.mjs +12 -12
  17. package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +103 -103
  18. package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +9 -9
  19. package/esm2022/lib/Pages/configurations/configuration/configuration.component.mjs +271 -271
  20. package/esm2022/lib/Pages/core/auth.module.mjs +1 -1
  21. package/esm2022/lib/Pages/core/authentication/admin.guard.mjs +1 -1
  22. package/esm2022/lib/Pages/core/authentication/auth.guard.mjs +1 -1
  23. package/esm2022/lib/Pages/departments/department/department.component.mjs +48 -48
  24. package/esm2022/lib/Pages/departments/department-info/department-info.component.mjs +32 -32
  25. package/esm2022/lib/Pages/departments/departments.module.mjs +1 -1
  26. package/esm2022/lib/Pages/documents/add-document/add-document.component.mjs +52 -52
  27. package/esm2022/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs +20 -20
  28. package/esm2022/lib/Pages/documents/document-template-info/document-template-info.component.mjs +100 -100
  29. package/esm2022/lib/Pages/documents/document-templates/document-templates.component.mjs +151 -151
  30. package/esm2022/lib/Pages/documents/edit-document/edit-document.component.mjs +72 -72
  31. package/esm2022/lib/Pages/documents/edit-document-template/edit-document-template.component.mjs +27 -27
  32. package/esm2022/lib/Pages/empty-data/empty-data.component.mjs +1 -1
  33. package/esm2022/lib/Pages/empty-data/empty-data.module.mjs +1 -1
  34. package/esm2022/lib/Pages/helpCenter/help-center/help-center.component.mjs +84 -84
  35. package/esm2022/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.mjs +1 -1
  36. package/esm2022/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.mjs +56 -56
  37. package/esm2022/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +58 -58
  38. package/esm2022/lib/Pages/home/home.component.mjs +7 -7
  39. package/esm2022/lib/Pages/home/home.module.mjs +1 -1
  40. package/esm2022/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +129 -129
  41. package/esm2022/lib/Pages/impersonation-rules/impersonation-rules.module.mjs +1 -1
  42. package/esm2022/lib/Pages/jobs/jobs/jobs.component.mjs +14 -14
  43. package/esm2022/lib/Pages/jobs/jobs.module.mjs +1 -1
  44. package/esm2022/lib/Pages/license/license/license.component.mjs +11 -11
  45. package/esm2022/lib/Pages/license/license.module.mjs +1 -1
  46. package/esm2022/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.mjs +41 -41
  47. package/esm2022/lib/Pages/localizations/localizations.component.mjs +125 -125
  48. package/esm2022/lib/Pages/localizations/localizations.module.mjs +1 -1
  49. package/esm2022/lib/Pages/logs/log/log.component.mjs +11 -11
  50. package/esm2022/lib/Pages/logs/logs.module.mjs +1 -1
  51. package/esm2022/lib/Pages/lookups/lookup/lookup.component.mjs +120 -120
  52. package/esm2022/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +34 -34
  53. package/esm2022/lib/Pages/lookups/lookup-item/lookup-item.component.mjs +83 -83
  54. package/esm2022/lib/Pages/lookups/lookups.module.mjs +1 -1
  55. package/esm2022/lib/Pages/notifications/add-notification/add-notification.component.mjs +35 -35
  56. package/esm2022/lib/Pages/notifications/edit-email/edit-email.component.mjs +53 -53
  57. package/esm2022/lib/Pages/notifications/edit-notification/edit-notification.component.mjs +50 -50
  58. package/esm2022/lib/Pages/notifications/edit-sms/edit-sms.component.mjs +16 -16
  59. package/esm2022/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +20 -20
  60. package/esm2022/lib/Pages/notifications/notifications.module.mjs +1 -1
  61. package/esm2022/lib/Pages/notifications/template-info/template-info.component.mjs +135 -135
  62. package/esm2022/lib/Pages/notifications/templates/templates.component.mjs +186 -186
  63. package/esm2022/lib/Pages/providers/provider/provider.component.mjs +122 -122
  64. package/esm2022/lib/Pages/providers/providers.module.mjs +1 -1
  65. package/esm2022/lib/Pages/publicHolidays/public-holiday/public-holiday.component.mjs +120 -120
  66. package/esm2022/lib/Pages/publicHolidays/public-holidays.module.mjs +1 -1
  67. package/esm2022/lib/Pages/roles/permission-set-info/permission-set-info.component.mjs +29 -29
  68. package/esm2022/lib/Pages/roles/permissions/permissions.component.mjs +57 -57
  69. package/esm2022/lib/Pages/roles/permissionsets/permissionsets.component.mjs +79 -79
  70. package/esm2022/lib/Pages/roles/roles.module.mjs +1 -1
  71. package/esm2022/lib/Pages/sectors/sector/sector.component.mjs +35 -35
  72. package/esm2022/lib/Pages/sectors/sector-info/sector-info.component.mjs +27 -27
  73. package/esm2022/lib/Pages/sectors/sectors-department-info/sectors-department-info.component.mjs +27 -27
  74. package/esm2022/lib/Pages/sectors/sectors.module.mjs +1 -1
  75. package/esm2022/lib/Pages/shared/Services/AccountService.service.mjs +1 -1
  76. package/esm2022/lib/Pages/shared/Services/ActiveDirectoryService.service.mjs +1 -1
  77. package/esm2022/lib/Pages/shared/Services/AnonymousLayoutService.service.mjs +1 -1
  78. package/esm2022/lib/Pages/shared/Services/DepartmentService.service.mjs +1 -1
  79. package/esm2022/lib/Pages/shared/Services/DocumentHeaderAndFooterTemplate.service.mjs +1 -1
  80. package/esm2022/lib/Pages/shared/Services/DocumentTemplateService.service.mjs +1 -1
  81. package/esm2022/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.mjs +1 -1
  82. package/esm2022/lib/Pages/shared/Services/HelpCenterService.service.mjs +1 -1
  83. package/esm2022/lib/Pages/shared/Services/ImpersonationRuleService.service.mjs +1 -1
  84. package/esm2022/lib/Pages/shared/Services/JobsService.service.mjs +1 -1
  85. package/esm2022/lib/Pages/shared/Services/LicenseService.service.mjs +1 -1
  86. package/esm2022/lib/Pages/shared/Services/LogsService.mjs +1 -1
  87. package/esm2022/lib/Pages/shared/Services/LookupGroupsService.service.mjs +1 -1
  88. package/esm2022/lib/Pages/shared/Services/LookupService.service.mjs +1 -1
  89. package/esm2022/lib/Pages/shared/Services/PermissionSetService.service.mjs +1 -1
  90. package/esm2022/lib/Pages/shared/Services/PermissionsService.service.mjs +1 -1
  91. package/esm2022/lib/Pages/shared/Services/PublicHolidayService.service.mjs +1 -1
  92. package/esm2022/lib/Pages/shared/Services/SectorService.service.mjs +1 -1
  93. package/esm2022/lib/Pages/shared/Services/TemplateService.service.mjs +1 -1
  94. package/esm2022/lib/Pages/shared/Services/WorkflowActivityService.service.mjs +1 -1
  95. package/esm2022/lib/Pages/shared/Services/WorkflowService.service.mjs +1 -1
  96. package/esm2022/lib/Pages/shared/Services/WorkflowVariablesService.service.mjs +1 -1
  97. package/esm2022/lib/Pages/shared/Services/localizationsService.service .mjs +1 -1
  98. package/esm2022/lib/Pages/shared/Services/provider.service.mjs +1 -1
  99. package/esm2022/lib/Pages/shared/components/external-url/external-url.component.mjs +36 -36
  100. package/esm2022/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +74 -74
  101. package/esm2022/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.mjs +8 -8
  102. package/esm2022/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.mjs +10 -10
  103. package/esm2022/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.mjs +89 -89
  104. package/esm2022/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.mjs +7 -7
  105. package/esm2022/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.mjs +9 -9
  106. package/esm2022/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.mjs +10 -10
  107. package/esm2022/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.mjs +222 -222
  108. package/esm2022/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.mjs +7 -7
  109. package/esm2022/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.mjs +257 -257
  110. package/esm2022/lib/Pages/shared/components/survey/survey-info/preview/preview.component.mjs +25 -25
  111. package/esm2022/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.mjs +24 -24
  112. package/esm2022/lib/Pages/shared/components/survey/survey-info/result-question/result.component.mjs +6 -6
  113. package/esm2022/lib/Pages/shared/components/survey/survey-info/survey-info.component.mjs +52 -52
  114. package/esm2022/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.mjs +16 -16
  115. package/esm2022/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.mjs +20 -20
  116. package/esm2022/lib/Pages/shared/components/survey/survey.component.mjs +69 -69
  117. package/esm2022/lib/Pages/shared/components/survey-form/survey-form.component.mjs +180 -180
  118. package/esm2022/lib/Pages/shared/components/survey-form-item/survey-form-item.component.mjs +1 -1
  119. package/esm2022/lib/Pages/shared/models/LicenseModel/LicenseModel.mjs +1 -1
  120. package/esm2022/lib/Pages/shared/models/LocalizationModels/EditResourceModel.mjs +1 -1
  121. package/esm2022/lib/Pages/shared/models/LocalizationModels/UploadJsonVM.mjs +1 -1
  122. package/esm2022/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.mjs +1 -1
  123. package/esm2022/lib/Pages/shared/models/SurveyModels/add-survey-submissio.mjs +1 -1
  124. package/esm2022/lib/Pages/shared/models/SurveyModels/add-survey.mjs +1 -1
  125. package/esm2022/lib/Pages/shared/models/SurveyModels/survey-field-options.mjs +1 -1
  126. package/esm2022/lib/Pages/shared/models/SurveyModels/survey-filed-value.mjs +1 -1
  127. package/esm2022/lib/Pages/shared/models/SurveyModels/survey-question-option.mjs +3 -3
  128. package/esm2022/lib/Pages/shared/models/SurveyModels/survey-question.mjs +1 -1
  129. package/esm2022/lib/Pages/shared/models/UserModels/AddUserModel.mjs +1 -1
  130. package/esm2022/lib/Pages/shared/models/UserModels/EditUserModel.mjs +1 -1
  131. package/esm2022/lib/Pages/shared/modules/public-survey.module.mjs +1 -1
  132. package/esm2022/lib/Pages/users/users.component.mjs +190 -190
  133. package/esm2022/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.mjs +176 -176
  134. package/esm2022/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.mjs +364 -364
  135. package/esm2022/lib/Pages/workflows/instance-info/instance-info.component.mjs +67 -67
  136. package/esm2022/lib/Pages/workflows/tabs/tabs.component.mjs +227 -227
  137. package/esm2022/lib/Pages/workflows/version-info/version-info.component.mjs +31 -31
  138. package/esm2022/lib/Pages/workflows/workflow/workflow.component.mjs +56 -56
  139. package/esm2022/lib/Pages/workflows/workflows.module.mjs +1 -1
  140. package/fesm2022/bnsights-bbsf-admin-portal.mjs +5186 -5186
  141. package/fesm2022/bnsights-bbsf-admin-portal.mjs.map +1 -1
  142. package/lib/Pages/ActiveDirectories/active-directories.component.d.ts +0 -1
  143. package/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.d.ts +2 -2
  144. package/lib/Pages/workflows/tabs/tabs.component.d.ts +1 -1
  145. package/package.json +2 -2
  146. package/src/lib/assets/sass/custom-styles.scss +99 -33
  147. package/src/lib/assets/sass/style-rtl.scss +6 -8
  148. package/src/lib/assets/sass/style.scss +5 -7
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
92
92
  ]
93
93
  }]
94
94
  }] });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wZXJzb25hdGlvbi1ydWxlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2ltcGVyc29uYXRpb24tcnVsZXMvaW1wZXJzb25hdGlvbi1ydWxlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFHLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7O0FBa0MvRixNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7K0dBQXhCLHdCQUF3QixpQkE5QnBCLDJCQUEyQiw4QkFNeEMsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsVUFBVTtZQUNWLFlBQVk7WUFDWixZQUFZO1lBQ1osZUFBZSxvQkFFZixtQkFBbUI7WUFDbkIsV0FBVztZQUNYLGtCQUFrQjtZQUNsQixTQUFTO1lBQ1QsYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlOytHQVVOLHdCQUF3QixhQVJ6QjtZQUNSLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsV0FBVztZQUNYLG9CQUFvQjtZQUNwQix3QkFBd0I7U0FDekIsWUExQkMsWUFBWSxDQUFDLFFBQVEsQ0FBQztnQkFDcEIsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUMsU0FBUyxFQUFDLDJCQUEyQixFQUFDO2dCQUNsRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUM7YUFDaEUsQ0FBQztZQUNGLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLFVBQVU7WUFDVixZQUFZO1lBQ1osWUFBWTtZQUNaLGVBQWU7WUFDZixhQUFhLENBQUMsT0FBTyxFQUFFO1lBQ3ZCLG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsa0JBQWtCO1lBQ2xCLFNBQVM7WUFDVCxhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7OzJGQVVOLHdCQUF3QjtrQkEvQnBDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQzNDLE9BQU8sRUFBRTt3QkFDUCxZQUFZLENBQUMsUUFBUSxDQUFDOzRCQUNwQixFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBQyxTQUFTLEVBQUMsMkJBQTJCLEVBQUM7NEJBQ2xFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQzt5QkFDaEUsQ0FBQzt3QkFDRixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixVQUFVO3dCQUNWLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWEsQ0FBQyxPQUFPLEVBQUU7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxrQkFBa0I7d0JBQ2xCLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCO29CQUNELFNBQVMsRUFBQzt3QkFDUixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxvQkFBb0I7d0JBQ3BCLHdCQUF3QjtxQkFDekI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyAgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW1wZXJzb25hdGlvblJ1bGVzQ29tcG9uZW50IH0gZnJvbSAnLi9pbXBlcnNvbmF0aW9uLXJ1bGVzL2ltcGVyc29uYXRpb24tcnVsZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENsaXBib2FyZE1vZHVsZSB9IGZyb20gJ25neC1jbGlwYm9hcmQnO1xyXG5pbXBvcnQgeyBCQlNGQ29udHJvbHNNb2R1bGUgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IEJsb2NrVUlNb2R1bGUgfSBmcm9tICduZy1ibG9jay11aSc7XHJcbmltcG9ydCB7IEF1dGhNb2R1bGUgfSBmcm9tICcuLi9jb3JlL2F1dGgubW9kdWxlJztcclxuaW1wb3J0IHsgTmdiTW9kdWxlIH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgSW5saW5lU1ZHTW9kdWxlIH0gZnJvbSAnbmctaW5saW5lLXN2Zy0yJztcclxuaW1wb3J0IHsgRW1wdHlEYXRhTW9kdWxlIH0gZnJvbSAnLi4vZW1wdHktZGF0YS9lbXB0eS1kYXRhLm1vZHVsZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBCQlNGVHJhbnNsYXRlU2VydmljZSwgRW52aXJvbm1lbnRTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IEltcGVyc29uYXRpb25SdWxlU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9TZXJ2aWNlcy9JbXBlcnNvbmF0aW9uUnVsZVNlcnZpY2Uuc2VydmljZSc7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtJbXBlcnNvbmF0aW9uUnVsZXNDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChbXHJcbiAgICAgIHsgcGF0aDogJ0ltcGVyc29uYXRpb25SdWxlJyxjb21wb25lbnQ6SW1wZXJzb25hdGlvblJ1bGVzQ29tcG9uZW50fSxcclxuICAgICAgeyBwYXRoOiAnJywgcmVkaXJlY3RUbzogJ0ltcGVyc29uYXRpb25SdWxlJywgcGF0aE1hdGNoOiAnZnVsbCd9LFxyXG4gICAgXSksXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIEF1dGhNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDbGlwYm9hcmRNb2R1bGUsXHJcbiAgICBCbG9ja1VJTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEJCU0ZDb250cm9sc01vZHVsZSxcclxuICAgIE5nYk1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBJbmxpbmVTVkdNb2R1bGUsXHJcbiAgICBFbXB0eURhdGFNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczpbXHJcbiAgICBFbnZpcm9ubWVudFNlcnZpY2UsXHJcbiAgICBVdGlsaXR5U2VydmljZSxcclxuICAgIEF1dGhTZXJ2aWNlLFxyXG4gICAgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBJbXBlcnNvbmF0aW9uUnVsZVNlcnZpY2VcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbXBlcnNvbmF0aW9uUnVsZXNNb2R1bGUgeyB9XHJcbiJdfQ==
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wZXJzb25hdGlvbi1ydWxlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2ltcGVyc29uYXRpb24tcnVsZXMvaW1wZXJzb25hdGlvbi1ydWxlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7O0FBa0MvRixNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7K0dBQXhCLHdCQUF3QixpQkE5QnBCLDJCQUEyQiw4QkFNeEMsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsVUFBVTtZQUNWLFlBQVk7WUFDWixZQUFZO1lBQ1osZUFBZSxvQkFFZixtQkFBbUI7WUFDbkIsV0FBVztZQUNYLGtCQUFrQjtZQUNsQixTQUFTO1lBQ1QsYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlOytHQVVOLHdCQUF3QixhQVJ4QjtZQUNULGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsV0FBVztZQUNYLG9CQUFvQjtZQUNwQix3QkFBd0I7U0FDekIsWUExQkMsWUFBWSxDQUFDLFFBQVEsQ0FBQztnQkFDcEIsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLDJCQUEyQixFQUFFO2dCQUNyRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUU7YUFDakUsQ0FBQztZQUNGLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLFVBQVU7WUFDVixZQUFZO1lBQ1osWUFBWTtZQUNaLGVBQWU7WUFDZixhQUFhLENBQUMsT0FBTyxFQUFFO1lBQ3ZCLG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsa0JBQWtCO1lBQ2xCLFNBQVM7WUFDVCxhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7OzJGQVVOLHdCQUF3QjtrQkEvQnBDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQzNDLE9BQU8sRUFBRTt3QkFDUCxZQUFZLENBQUMsUUFBUSxDQUFDOzRCQUNwQixFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsMkJBQTJCLEVBQUU7NEJBQ3JFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRTt5QkFDakUsQ0FBQzt3QkFDRixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixVQUFVO3dCQUNWLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWEsQ0FBQyxPQUFPLEVBQUU7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxrQkFBa0I7d0JBQ2xCLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCO29CQUNELFNBQVMsRUFBRTt3QkFDVCxrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxvQkFBb0I7d0JBQ3BCLHdCQUF3QjtxQkFDekI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbXBlcnNvbmF0aW9uUnVsZXNDb21wb25lbnQgfSBmcm9tICcuL2ltcGVyc29uYXRpb24tcnVsZXMvaW1wZXJzb25hdGlvbi1ydWxlcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ2xpcGJvYXJkTW9kdWxlIH0gZnJvbSAnbmd4LWNsaXBib2FyZCc7XHJcbmltcG9ydCB7IEJCU0ZDb250cm9sc01vZHVsZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgQmxvY2tVSU1vZHVsZSB9IGZyb20gJ25nLWJsb2NrLXVpJztcclxuaW1wb3J0IHsgQXV0aE1vZHVsZSB9IGZyb20gJy4uL2NvcmUvYXV0aC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBOZ2JNb2R1bGUgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBJbmxpbmVTVkdNb2R1bGUgfSBmcm9tICduZy1pbmxpbmUtc3ZnLTInO1xyXG5pbXBvcnQgeyBFbXB0eURhdGFNb2R1bGUgfSBmcm9tICcuLi9lbXB0eS1kYXRhL2VtcHR5LWRhdGEubW9kdWxlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgSW1wZXJzb25hdGlvblJ1bGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL1NlcnZpY2VzL0ltcGVyc29uYXRpb25SdWxlU2VydmljZS5zZXJ2aWNlJztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0ltcGVyc29uYXRpb25SdWxlc0NvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgUm91dGVyTW9kdWxlLmZvckNoaWxkKFtcclxuICAgICAgeyBwYXRoOiAnSW1wZXJzb25hdGlvblJ1bGUnLCBjb21wb25lbnQ6IEltcGVyc29uYXRpb25SdWxlc0NvbXBvbmVudCB9LFxyXG4gICAgICB7IHBhdGg6ICcnLCByZWRpcmVjdFRvOiAnSW1wZXJzb25hdGlvblJ1bGUnLCBwYXRoTWF0Y2g6ICdmdWxsJyB9LFxyXG4gICAgXSksXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIEF1dGhNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDbGlwYm9hcmRNb2R1bGUsXHJcbiAgICBCbG9ja1VJTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEJCU0ZDb250cm9sc01vZHVsZSxcclxuICAgIE5nYk1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBJbmxpbmVTVkdNb2R1bGUsXHJcbiAgICBFbXB0eURhdGFNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBBdXRoU2VydmljZSxcclxuICAgIEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgSW1wZXJzb25hdGlvblJ1bGVTZXJ2aWNlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1wZXJzb25hdGlvblJ1bGVzTW9kdWxlIHsgfVxyXG4iXX0=
@@ -111,19 +111,19 @@ export class JobsComponent {
111
111
  this.isDeletedFilterLoaded = false;
112
112
  // TextBox inti
113
113
  this.searchTextBox = new TextBoxOptions();
114
- this.searchTextBox.Name = "searchTextBox";
115
- this.searchTextBox.HideLabel = true;
116
- this.searchTextBox.Type = InputType.Text;
117
- this.searchTextBox.Placeholder = this.utilityService.getResourceValue("SearchByName");
114
+ this.searchTextBox.name = "searchTextBox";
115
+ this.searchTextBox.hideLabel = true;
116
+ this.searchTextBox.type = InputType.Text;
117
+ this.searchTextBox.placeholder = this.utilityService.getResourceValue("SearchByName");
118
118
  this.enqueuedTextInputFilter = new FilterItem();
119
119
  this.enqueuedTextInputFilter.FormControlName = "searchTextBox";
120
120
  this.enqueuedTextInputFilter.ActionParameterName = "searchText";
121
121
  this.enqueuedTextInputFilter.IsFormControl = true;
122
122
  this.enqueuedTextInputFilter.FilterType = FilterType.TextBox;
123
123
  this.enqueuedPaging = new PagingOptions();
124
- this.enqueuedPaging.ActionPostURL = this.ApiUrl + 'GetQueueListByFilter';
125
- this.enqueuedPaging.OnKeyPressFiltersControlNames = ["searchTextBox"];
126
- this.enqueuedPaging.Filters = [this.enqueuedTextInputFilter];
124
+ this.enqueuedPaging.actionPostURL = this.ApiUrl + 'GetQueueListByFilter';
125
+ this.enqueuedPaging.onKeyPressFiltersControlNames = ["searchTextBox"];
126
+ this.enqueuedPaging.filters = [this.enqueuedTextInputFilter];
127
127
  this.isEnqueuedFilterLoaded = true;
128
128
  }
129
129
  loadScheduledJobs() {
@@ -134,7 +134,7 @@ export class JobsComponent {
134
134
  this.isFailedFilterLoaded = false;
135
135
  this.isDeletedFilterLoaded = false;
136
136
  this.scheduledPaging = new PagingOptions();
137
- this.scheduledPaging.ActionPostURL = this.ApiUrl + 'GetScheduledListByFilter';
137
+ this.scheduledPaging.actionPostURL = this.ApiUrl + 'GetScheduledListByFilter';
138
138
  this.isScheduledFilterLoaded = true;
139
139
  }
140
140
  loadProcessingJobs() {
@@ -145,7 +145,7 @@ export class JobsComponent {
145
145
  this.isFailedFilterLoaded = false;
146
146
  this.isDeletedFilterLoaded = false;
147
147
  this.processingPaging = new PagingOptions();
148
- this.processingPaging.ActionPostURL = this.ApiUrl + 'GetProcessingListByFilter';
148
+ this.processingPaging.actionPostURL = this.ApiUrl + 'GetProcessingListByFilter';
149
149
  this.isProcessingFilterLoaded = true;
150
150
  }
151
151
  loadSucceededJobs() {
@@ -156,7 +156,7 @@ export class JobsComponent {
156
156
  this.isFailedFilterLoaded = false;
157
157
  this.isDeletedFilterLoaded = false;
158
158
  this.succeededPaging = new PagingOptions();
159
- this.succeededPaging.ActionPostURL = this.ApiUrl + 'GetSucceededListByFilter';
159
+ this.succeededPaging.actionPostURL = this.ApiUrl + 'GetSucceededListByFilter';
160
160
  this.isSucceededFilterLoaded = true;
161
161
  }
162
162
  loadFailedJobs() {
@@ -167,7 +167,7 @@ export class JobsComponent {
167
167
  this.isFailedFilterLoaded = false;
168
168
  this.isDeletedFilterLoaded = false;
169
169
  this.failedPaging = new PagingOptions();
170
- this.failedPaging.ActionPostURL = this.ApiUrl + 'GetFailedListByFilter';
170
+ this.failedPaging.actionPostURL = this.ApiUrl + 'GetFailedListByFilter';
171
171
  this.isFailedFilterLoaded = true;
172
172
  }
173
173
  loadDeletedJobs() {
@@ -178,7 +178,7 @@ export class JobsComponent {
178
178
  this.isFailedFilterLoaded = false;
179
179
  this.isDeletedFilterLoaded = false;
180
180
  this.deletedPaging = new PagingOptions();
181
- this.deletedPaging.ActionPostURL = this.ApiUrl + 'GetDeletedListByFilter';
181
+ this.deletedPaging.actionPostURL = this.ApiUrl + 'GetDeletedListByFilter';
182
182
  this.isDeletedFilterLoaded = true;
183
183
  }
184
184
  /**FunctionName:filterEnqueuedList*/
@@ -196,7 +196,7 @@ export class JobsComponent {
196
196
  this.requestHandlerService.destroyHandler();
197
197
  }
198
198
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: JobsComponent, deps: [{ token: i1.PageInfoService }, { token: i2.UtilityService }, { token: i2.EnvironmentService }, { token: i3.JobsService }, { token: i2.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component }); }
199
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: JobsComponent, selector: "lib-jobs", viewQueries: [{ propertyName: "enqueuedInput", first: true, predicate: ["EnqueuedPagingViewElement"], descendants: true }, { propertyName: "scheduledInput", first: true, predicate: ["ScheduledPagingViewElement"], descendants: true }, { propertyName: "processingInput", first: true, predicate: ["ProcessingPagingViewElement"], descendants: true }, { propertyName: "succeededInput", first: true, predicate: ["SucceededPagingViewElement"], descendants: true }, { propertyName: "failedInput", first: true, predicate: ["FailedPagingViewElement"], descendants: true }, { propertyName: "deletedInput", first: true, predicate: ["DeletedPagingViewElement"], descendants: true }], ngImport: i0, template: "<block-ui> </block-ui>\r\n <div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-body\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bolder\">\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\" (click)=\"loadEnqueuedJobs()\">{{utilityService.getResourceValue(\"Enqueued\")}}({{jobCountsModel.Enqueued}})</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-header border-0 pt-5 px-0 justify-content-end\">\r\n <div class=\"card-title\" *ngIf=\"isEnqueuedFilterLoaded\">\r\n <BBSF-TextBox [options]=\"searchTextBox\" (OnChange)=\"filterEnqueuedList($event)\" [group]=\"enqueuedForm\"></BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3 px-0\">\r\n <!--begin::Permission list-->\r\n <div class=\"table-responsive\">\r\n <!-- begin::Table -->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Job\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"State\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let job of filteredEnqueuedPagingResult\">\r\n <td class=\"text-dark\">{{job.job}}</td>\r\n <td>{{job.state}}</td>\r\n </tr>\r\n <tr *ngIf=\"filteredEnqueuedPagingResult.length == 0\">\r\n <td colspan=\"2\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setEnqueuedListResult($event)\" *ngIf=\"isEnqueuedFilterLoaded\"\r\n [options]=\"enqueuedPaging\" [group]=\"enqueuedForm\" #EnqueuedPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\" (click)=\"loadScheduledJobs()\">{{utilityService.getResourceValue(\"Scheduled\")}}({{jobCountsModel.Scheduled}})</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-body py-3 px-0\">\r\n <!--begin::Permission list-->\r\n <div class=\"table-responsive\">\r\n <!-- begin::Table -->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Job\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Enqueued\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Scheduled\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let job of scheduledPagingResult\">\r\n <td>{{job.job}}</td>\r\n <td>{{job.enqueueAt}}</td>\r\n <td>{{job.scheduledAt}}</td>\r\n </tr>\r\n <tr *ngIf=\"scheduledPagingResult.length == 0\">\r\n <td colspan=\"3\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setScheduledListResult($event)\" *ngIf=\"isScheduledFilterLoaded\"\r\n [options]=\"scheduledPaging\" [group]=\"scheduledForm\" #ScheduledPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\" (click)=\"loadProcessingJobs()\">{{utilityService.getResourceValue(\"Processing\")}}({{jobCountsModel.Processing}})</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-body py-3 px-0\">\r\n <!--begin::Permission list-->\r\n <div class=\"table-responsive\">\r\n <!-- begin::Table -->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Job\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"StartedAt\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"ServerId\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let job of processingPagingResult\">\r\n <td>{{job.job}}</td>\r\n <td>{{job.startedAt}}</td>\r\n <td>{{job.serverId}}</td>\r\n </tr>\r\n <tr *ngIf=\"processingPagingResult.length == 0\">\r\n <td colspan=\"3\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setProcessingListResult($event)\" *ngIf=\"isProcessingFilterLoaded\"\r\n [options]=\"processingPaging\" [group]=\"processingForm\" #ProcessingPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\" (click)=\"loadSucceededJobs()\">{{utilityService.getResourceValue(\"Succeeded\")}}({{jobCountsModel.Succeeded}})</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-body py-3 px-0\">\r\n <div class=\"table-responsive\">\r\n <!-- begin::Table -->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"Job\")}}</th>\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"SucceededAt\")}}</th>\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"TotalDuration\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let job of succeededPagingResult\">\r\n <td>{{job.job}}</td>\r\n <td>{{job.succeededAt}}</td>\r\n <td>{{job.totalDuration}}</td>\r\n </tr>\r\n <tr *ngIf=\"succeededPagingResult.length == 0\">\r\n <td colspan=\"3\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setSucceededListResult($event)\" *ngIf=\"isSucceededFilterLoaded\"\r\n [options]=\"succeededPaging\" [group]=\"succeededForm\" #SucceededPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\" (click)=\"loadFailedJobs()\">{{utilityService.getResourceValue(\"Failed\")}}({{jobCountsModel.Failed}})</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-body py-3 px-0\">\r\n <div class=\"table-responsive\">\r\n <!-- begin::Table -->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"FailedAt\")}}</th>\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"Job\")}}</th>\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"ErrorMessage\")}}</th>\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"ErrorMessage\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let job of failedPagingResult\">\r\n <td>{{job.failedAt}}</td>\r\n <td>{{job.job}}</td>\r\n <td>{{job.reason}}</td>\r\n <td class=\"failed-job-details directionLtr\" *ngIf=\"job.inFailedState\">\r\n <div class=\"expandable\">\r\n <p> {{job.exceptionType}}</p>\r\n <p class=\"text-muted\">\r\n {{job.exceptionMessage}}\r\n </p>\r\n\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"failedPagingResult.length == 0\">\r\n <td colspan=\"4\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setFailedListResult($event)\" *ngIf=\"isFailedFilterLoaded\" [options]=\"failedPaging\"\r\n [group]=\"failedForm\" #FailedPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\" (click)=\"loadDeletedJobs()\">{{utilityService.getResourceValue(\"Deleted\")}}({{jobCountsModel.Deleted}})</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-body py-3 px-0\">\r\n <div class=\"table-responsive\">\r\n <!-- begin::Table -->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Job\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"DeletedAt\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let job of deletedPagingResult\">\r\n <td>{{job.job}}</td>\r\n <td>{{job.deletedAt}}</td>\r\n </tr>\r\n <tr *ngIf=\"deletedPagingResult.length == 0\">\r\n <td colspan=\"2\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setDeletedListResult($event)\" *ngIf=\"isDeletedFilterLoaded\"\r\n [options]=\"deletedPaging\" [group]=\"deletedForm\" #DeletedPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n <div [ngbNavOutlet]=\"nav\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n \r\n\r\n", styles: [".card-deck .card{align-items:center;justify-content:center;text-align:center;border-radius:4px;background:#f8f9fa;cursor:pointer}.card-title{margin-bottom:0;font-size:16px}.filter-container.text-dark .form-group label{color:#3f4254}.kt-portlet.custom-portlet{box-shadow:none;background:#f8f9fa;margin-top:35px}.card-deck .card .card-block{padding:20px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i6.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange", "OnBlur"] }, { kind: "component", type: i6.PagingComponent, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }, { kind: "directive", type: i7.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i7.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i7.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i7.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i7.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "directive", type: i7.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i7.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "component", type: i8.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }] }); }
199
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: JobsComponent, selector: "lib-jobs", viewQueries: [{ propertyName: "enqueuedInput", first: true, predicate: ["EnqueuedPagingViewElement"], descendants: true }, { propertyName: "scheduledInput", first: true, predicate: ["ScheduledPagingViewElement"], descendants: true }, { propertyName: "processingInput", first: true, predicate: ["ProcessingPagingViewElement"], descendants: true }, { propertyName: "succeededInput", first: true, predicate: ["SucceededPagingViewElement"], descendants: true }, { propertyName: "failedInput", first: true, predicate: ["FailedPagingViewElement"], descendants: true }, { propertyName: "deletedInput", first: true, predicate: ["DeletedPagingViewElement"], descendants: true }], ngImport: i0, template: "<block-ui> </block-ui>\r\n <div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-body\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bolder\">\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\" (click)=\"loadEnqueuedJobs()\">{{utilityService.getResourceValue(\"Enqueued\")}}({{jobCountsModel.Enqueued}})</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-header border-0 pt-5 px-0 justify-content-end\">\r\n <div class=\"card-title\" *ngIf=\"isEnqueuedFilterLoaded\">\r\n <BBSF-TextBox [options]=\"searchTextBox\" (OnChange)=\"filterEnqueuedList($event)\" [group]=\"enqueuedForm\"></BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3 px-0\">\r\n <!--begin::Permission list-->\r\n <div class=\"table-responsive\">\r\n <!-- begin::Table -->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Job\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"State\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let job of filteredEnqueuedPagingResult\">\r\n <td class=\"text-dark\">{{job.job}}</td>\r\n <td>{{job.state}}</td>\r\n </tr>\r\n <tr *ngIf=\"filteredEnqueuedPagingResult.length == 0\">\r\n <td colspan=\"2\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setEnqueuedListResult($event)\" *ngIf=\"isEnqueuedFilterLoaded\"\r\n [options]=\"enqueuedPaging\" [group]=\"enqueuedForm\" #EnqueuedPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\" (click)=\"loadScheduledJobs()\">{{utilityService.getResourceValue(\"Scheduled\")}}({{jobCountsModel.Scheduled}})</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-body py-3 px-0\">\r\n <!--begin::Permission list-->\r\n <div class=\"table-responsive\">\r\n <!-- begin::Table -->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Job\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Enqueued\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Scheduled\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let job of scheduledPagingResult\">\r\n <td>{{job.job}}</td>\r\n <td>{{job.enqueueAt}}</td>\r\n <td>{{job.scheduledAt}}</td>\r\n </tr>\r\n <tr *ngIf=\"scheduledPagingResult.length == 0\">\r\n <td colspan=\"3\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setScheduledListResult($event)\" *ngIf=\"isScheduledFilterLoaded\"\r\n [options]=\"scheduledPaging\" [group]=\"scheduledForm\" #ScheduledPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\" (click)=\"loadProcessingJobs()\">{{utilityService.getResourceValue(\"Processing\")}}({{jobCountsModel.Processing}})</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-body py-3 px-0\">\r\n <!--begin::Permission list-->\r\n <div class=\"table-responsive\">\r\n <!-- begin::Table -->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Job\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"StartedAt\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"ServerId\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let job of processingPagingResult\">\r\n <td>{{job.job}}</td>\r\n <td>{{job.startedAt}}</td>\r\n <td>{{job.serverId}}</td>\r\n </tr>\r\n <tr *ngIf=\"processingPagingResult.length == 0\">\r\n <td colspan=\"3\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setProcessingListResult($event)\" *ngIf=\"isProcessingFilterLoaded\"\r\n [options]=\"processingPaging\" [group]=\"processingForm\" #ProcessingPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\" (click)=\"loadSucceededJobs()\">{{utilityService.getResourceValue(\"Succeeded\")}}({{jobCountsModel.Succeeded}})</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-body py-3 px-0\">\r\n <div class=\"table-responsive\">\r\n <!-- begin::Table -->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"Job\")}}</th>\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"SucceededAt\")}}</th>\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"TotalDuration\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let job of succeededPagingResult\">\r\n <td>{{job.job}}</td>\r\n <td>{{job.succeededAt}}</td>\r\n <td>{{job.totalDuration}}</td>\r\n </tr>\r\n <tr *ngIf=\"succeededPagingResult.length == 0\">\r\n <td colspan=\"3\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setSucceededListResult($event)\" *ngIf=\"isSucceededFilterLoaded\"\r\n [options]=\"succeededPaging\" [group]=\"succeededForm\" #SucceededPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\" (click)=\"loadFailedJobs()\">{{utilityService.getResourceValue(\"Failed\")}}({{jobCountsModel.Failed}})</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-body py-3 px-0\">\r\n <div class=\"table-responsive\">\r\n <!-- begin::Table -->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"FailedAt\")}}</th>\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"Job\")}}</th>\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"ErrorMessage\")}}</th>\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"ErrorMessage\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let job of failedPagingResult\">\r\n <td>{{job.failedAt}}</td>\r\n <td>{{job.job}}</td>\r\n <td>{{job.reason}}</td>\r\n <td class=\"failed-job-details directionLtr\" *ngIf=\"job.inFailedState\">\r\n <div class=\"expandable\">\r\n <p> {{job.exceptionType}}</p>\r\n <p class=\"text-muted\">\r\n {{job.exceptionMessage}}\r\n </p>\r\n\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"failedPagingResult.length == 0\">\r\n <td colspan=\"4\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setFailedListResult($event)\" *ngIf=\"isFailedFilterLoaded\" [options]=\"failedPaging\"\r\n [group]=\"failedForm\" #FailedPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\" (click)=\"loadDeletedJobs()\">{{utilityService.getResourceValue(\"Deleted\")}}({{jobCountsModel.Deleted}})</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-body py-3 px-0\">\r\n <div class=\"table-responsive\">\r\n <!-- begin::Table -->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Job\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"DeletedAt\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let job of deletedPagingResult\">\r\n <td>{{job.job}}</td>\r\n <td>{{job.deletedAt}}</td>\r\n </tr>\r\n <tr *ngIf=\"deletedPagingResult.length == 0\">\r\n <td colspan=\"2\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setDeletedListResult($event)\" *ngIf=\"isDeletedFilterLoaded\"\r\n [options]=\"deletedPaging\" [group]=\"deletedForm\" #DeletedPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n <div [ngbNavOutlet]=\"nav\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n \r\n\r\n", styles: [".card-deck .card{align-items:center;justify-content:center;text-align:center;border-radius:4px;background:#f8f9fa;cursor:pointer}.card-title{margin-bottom:0;font-size:16px}.filter-container.text-dark .form-group label{color:#3f4254}.kt-portlet.custom-portlet{box-shadow:none;background:#f8f9fa;margin-top:35px}.card-deck .card .card-block{padding:20px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i6.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["onChange", "onBlur"] }, { kind: "component", type: i6.PagingComponent, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }, { kind: "directive", type: i7.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i7.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i7.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i7.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i7.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "directive", type: i7.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i7.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "component", type: i8.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }] }); }
200
200
  }
201
201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: JobsComponent, decorators: [{
202
202
  type: Component,
@@ -220,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
220
220
  type: ViewChild,
221
221
  args: ['DeletedPagingViewElement', { static: false }]
222
222
  }] } });
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9icy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2pvYnMvam9icy9qb2JzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvam9icy9qb2JzL2pvYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBbUIsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7Ozs7Ozs7QUFTOUUsTUFBTSxPQUFPLGFBQWE7SUEyRHhCLFlBQ1UsZUFBZ0MsRUFDakMsY0FBOEIsRUFDN0Isa0JBQXNDLEVBQ3RDLFdBQXdCLEVBQ3hCLHFCQUE0QztRQUo1QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQTlEdEQsbUJBQW1CO1FBQ25CLFdBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQTtRQUloQyxtQkFBYyxHQUFtQixJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ3RELG1CQUFjLEdBQVks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QUFLLEVBQUU7Z0JBT0csWUFBWTtzQkFBckUsU0FBUzt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJJdGVtLCBGaWx0ZXJUeXBlLCBJbnB1dFR5cGUsIFBhZ2luZ0NvbXBvbmVudCwgUGFnaW5nT3B0aW9ucywgVGV4dEJveE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSm9iQ291bnRzTW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0pvYk1vZGVscy9Kb2JDb3VudHNNb2RlbCc7XHJcbmltcG9ydCB7IEpvYnNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zaGFyZWQvU2VydmljZXMvSm9ic1NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1qb2JzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vam9icy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vam9icy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEpvYnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIC8vUGFnZSByZXF1aXJlbWVudHNcclxuICBBcGlVcmwgPSB0aGlzLmpvYnNTZXJ2aWNlLkFwaVVybFxyXG5cclxuICAvL1BhZ2UgQ29udGVudFxyXG4gIHNlYXJjaFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIGpvYkNvdW50c01vZGVsOiBKb2JDb3VudHNNb2RlbCA9IG5ldyBKb2JDb3VudHNNb2RlbCgpO1xyXG4gIHByb2R1Y3Rpb25Nb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNTdGF0aXN0aWNzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICAvL0ZpbHRlciBhbmQgcGFnaW5nIEVucXVldWVkIEpvYnMgY29tcG9uZW50XHJcbiAgZW5xdWV1ZWRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2hvd0VucXVldWVkRmlsdGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZW5xdWV1ZWRQYWdpbmdSZXN1bHQ6IGFueVtdID0gW107XHJcbiAgZmlsdGVyZWRFbnF1ZXVlZFBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBlbnF1ZXVlZFBhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICBlbnF1ZXVlZFRleHRJbnB1dEZpbHRlcjogRmlsdGVySXRlbTtcclxuICBpc0VucXVldWVkRmlsdGVyTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnRW5xdWV1ZWRQYWdpbmdWaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBlbnF1ZXVlZElucHV0OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuXHJcbiAgLy9GaWx0ZXIgYW5kIHBhZ2luZyBTY2hlZHVsZWQgSm9icyBjb21wb25lbnRcclxuICBzY2hlZHVsZWRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2NoZWR1bGVkUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIHNjaGVkdWxlZFBhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICBpc1NjaGVkdWxlZEZpbHRlckxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ1NjaGVkdWxlZFBhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHNjaGVkdWxlZElucHV0OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuXHJcbiAgLy9GaWx0ZXIgYW5kIHBhZ2luZyBQcm9jZXNzaW5nIEpvYnMgY29tcG9uZW50XHJcbiAgcHJvY2Vzc2luZ0Zvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBwcm9jZXNzaW5nUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIHByb2Nlc3NpbmdQYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcbiAgaXNQcm9jZXNzaW5nRmlsdGVyTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnUHJvY2Vzc2luZ1BhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHByb2Nlc3NpbmdJbnB1dDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcblxyXG4gIC8vRmlsdGVyIGFuZCBwYWdpbmcgU3VjY2VlZGVkIEpvYnMgY29tcG9uZW50XHJcbiAgc3VjY2VlZGVkRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIHN1Y2NlZWRlZFBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBzdWNjZWVkZWRQYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcbiAgaXNTdWNjZWVkZWRGaWx0ZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdTdWNjZWVkZWRQYWdpbmdWaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBzdWNjZWVkZWRJbnB1dDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcblxyXG4gIC8vRmlsdGVyIGFuZCBwYWdpbmcgIEZhaWxlZCBKb2JzIGNvbXBvbmVudFxyXG4gIGZhaWxlZEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBmYWlsZWRQYWdpbmdSZXN1bHQ6IGFueVtdID0gW107XHJcbiAgZmFpbGVkUGFnaW5nOiBQYWdpbmdPcHRpb25zO1xyXG4gIGlzRmFpbGVkRmlsdGVyTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnRmFpbGVkUGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgZmFpbGVkSW5wdXQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG5cclxuICAvL0ZpbHRlciBhbmQgcGFnaW5nIERlbGV0ZWQgSm9icyBjb21wb25lbnRcclxuICBkZWxldGVkRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGRlbGV0ZWRQYWdpbmdSZXN1bHQ6IGFueVtdID0gW107XHJcbiAgZGVsZXRlZFBhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICBpc0RlbGV0ZWRGaWx0ZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdEZWxldGVkUGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVsZXRlZElucHV0OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgam9ic1NlcnZpY2U6IEpvYnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vUGFnZSBoZWFkZXIgKGJyZWFkY3J1bWIgYW5kIHRpdGxlKVxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkpvYnNcIilcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnMgPSBbXHJcbiAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvbWVcIiksIHBhdGg6ICcvQWRtaW4vSG9tZScsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9XHJcblxyXG4gICAgXTtcclxuXHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgIHRoaXMucHJvZHVjdGlvbk1vZGUgPSB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRQcm9kdWN0aW9uTW9kZSgpXHJcbiAgICAvL2luaXRpYWxpemUgcGFnZVxyXG4gICAgdGhpcy5sb2FkU3RhdGlzdGljcygpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvLyBFbnF1ZXVlZCBQYWdpbmcgZnVuY3Rpb25zXHJcblxyXG4gIHNldEVucXVldWVkTGlzdFJlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMuZW5xdWV1ZWRQYWdpbmdSZXN1bHQgPSByZXN1bHRcclxuICAgIHRoaXMuZmlsdGVyZWRFbnF1ZXVlZFBhZ2luZ1Jlc3VsdCA9IHRoaXMuZW5xdWV1ZWRQYWdpbmdSZXN1bHRcclxuICB9XHJcblxyXG5cclxuICAvL1NjaGVkdWxlZCBQYWdpbmcgZnVuY3Rpb25zXHJcblxyXG4gIHNldFNjaGVkdWxlZExpc3RSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLnNjaGVkdWxlZFBhZ2luZ1Jlc3VsdCA9IHJlc3VsdFxyXG4gIH1cclxuXHJcbiAgLy9Qcm9jZXNzaW5nIFBhZ2luZyBmdW5jdGlvbnNcclxuXHJcbiAgc2V0UHJvY2Vzc2luZ0xpc3RSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLnByb2Nlc3NpbmdQYWdpbmdSZXN1bHQgPSByZXN1bHRcclxuXHJcbiAgfVxyXG5cclxuICAvL1N1Y2NlZWRlZCBQYWdpbmcgZnVuY3Rpb25zXHJcblxyXG4gIHNldFN1Y2NlZWRlZExpc3RSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLnN1Y2NlZWRlZFBhZ2luZ1Jlc3VsdCA9IHJlc3VsdFxyXG4gIH1cclxuICAvL0ZhaWxlZCBQYWdpbmcgZnVuY3Rpb25zXHJcblxyXG4gIHNldEZhaWxlZExpc3RSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLmZhaWxlZFBhZ2luZ1Jlc3VsdCA9IHJlc3VsdFxyXG4gIH1cclxuXHJcbiAgLy9EZWxldGVkIFBhZ2luZyBmdW5jdGlvbnNcclxuXHJcbiAgc2V0RGVsZXRlZExpc3RSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLmRlbGV0ZWRQYWdpbmdSZXN1bHQgPSByZXN1bHRcclxuXHJcbiAgfVxyXG5cclxuICAvL2luaXRpYWxpemUgcGFnZVxyXG5cclxuICBsb2FkU3RhdGlzdGljcygpIHtcclxuICAgIHRoaXMuam9ic1NlcnZpY2UuTG9hZFN0YXRpc3RpY3MoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgTGlzdHMgPSByZXN1bHQgYXMgYW55XHJcbiAgICAgIHRoaXMuam9iQ291bnRzTW9kZWwuRW5xdWV1ZWQgPSBMaXN0cy5lbnF1ZXVlZFxyXG4gICAgICB0aGlzLmpvYkNvdW50c01vZGVsLlN1Y2NlZWRlZCA9IExpc3RzLnN1Y2NlZWRlZFxyXG4gICAgICB0aGlzLmpvYkNvdW50c01vZGVsLlNjaGVkdWxlZCA9IExpc3RzLnNjaGVkdWxlZFxyXG4gICAgICB0aGlzLmpvYkNvdW50c01vZGVsLlByb2Nlc3NpbmcgPSBMaXN0cy5wcm9jZXNzaW5nXHJcbiAgICAgIHRoaXMuam9iQ291bnRzTW9kZWwuRmFpbGVkID0gTGlzdHMuZmFpbGVkXHJcbiAgICAgIHRoaXMuam9iQ291bnRzTW9kZWwuRGVsZXRlZCA9IExpc3RzLmRlbGV0ZWRcclxuICAgICAgdGhpcy5pc1N0YXRpc3RpY3NMb2FkZWQgPSB0cnVlO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcbiAgbG9hZEVucXVldWVkSm9icygpIHtcclxuICAgIHRoaXMuaXNFbnF1ZXVlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1NjaGVkdWxlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmdGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTdWNjZWVkZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNGYWlsZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNEZWxldGVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgLy8gVGV4dEJveCBpbnRpXHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3ggPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveC5OYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveC5IaWRlTGFiZWwgPSB0cnVlXHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guVHlwZSA9IElucHV0VHlwZS5UZXh0XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guUGxhY2Vob2xkZXIgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTZWFyY2hCeU5hbWVcIilcclxuXHJcbiAgICB0aGlzLmVucXVldWVkVGV4dElucHV0RmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuZW5xdWV1ZWRUZXh0SW5wdXRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgIHRoaXMuZW5xdWV1ZWRUZXh0SW5wdXRGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwic2VhcmNoVGV4dFwiXHJcbiAgICB0aGlzLmVucXVldWVkVGV4dElucHV0RmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlXHJcbiAgICB0aGlzLmVucXVldWVkVGV4dElucHV0RmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3hcclxuXHJcbiAgICB0aGlzLmVucXVldWVkUGFnaW5nID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMuZW5xdWV1ZWRQYWdpbmcuQWN0aW9uUG9zdFVSTCA9IHRoaXMuQXBpVXJsICsgJ0dldFF1ZXVlTGlzdEJ5RmlsdGVyJztcclxuICAgIHRoaXMuZW5xdWV1ZWRQYWdpbmcuT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMgPSBbXCJzZWFyY2hUZXh0Qm94XCJdXHJcbiAgICB0aGlzLmVucXVldWVkUGFnaW5nLkZpbHRlcnMgPSBbdGhpcy5lbnF1ZXVlZFRleHRJbnB1dEZpbHRlcl1cclxuXHJcbiAgICB0aGlzLmlzRW5xdWV1ZWRGaWx0ZXJMb2FkZWQgPSB0cnVlO1xyXG5cclxuICB9XHJcblxyXG5cclxuICBsb2FkU2NoZWR1bGVkSm9icygpIHtcclxuICAgIHRoaXMuaXNFbnF1ZXVlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1NjaGVkdWxlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmdGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTdWNjZWVkZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNGYWlsZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNEZWxldGVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zY2hlZHVsZWRQYWdpbmcgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5zY2hlZHVsZWRQYWdpbmcuQWN0aW9uUG9zdFVSTCA9IHRoaXMuQXBpVXJsICsgJ0dldFNjaGVkdWxlZExpc3RCeUZpbHRlcic7XHJcbiAgICB0aGlzLmlzU2NoZWR1bGVkRmlsdGVyTG9hZGVkID0gdHJ1ZTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZFByb2Nlc3NpbmdKb2JzKCkge1xyXG4gICAgdGhpcy5pc0VucXVldWVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzU2NoZWR1bGVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzUHJvY2Vzc2luZ0ZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1N1Y2NlZWRlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0ZhaWxlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0RlbGV0ZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnByb2Nlc3NpbmdQYWdpbmcgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5wcm9jZXNzaW5nUGFnaW5nLkFjdGlvblBvc3RVUkwgPSB0aGlzLkFwaVVybCArICdHZXRQcm9jZXNzaW5nTGlzdEJ5RmlsdGVyJztcclxuICAgIHRoaXMuaXNQcm9jZXNzaW5nRmlsdGVyTG9hZGVkID0gdHJ1ZTtcclxuXHJcbiAgfVxyXG5cclxuICBsb2FkU3VjY2VlZGVkSm9icygpIHtcclxuICAgIHRoaXMuaXNFbnF1ZXVlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1NjaGVkdWxlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmdGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTdWNjZWVkZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNGYWlsZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNEZWxldGVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zdWNjZWVkZWRQYWdpbmcgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5zdWNjZWVkZWRQYWdpbmcuQWN0aW9uUG9zdFVSTCA9IHRoaXMuQXBpVXJsICsgJ0dldFN1Y2NlZWRlZExpc3RCeUZpbHRlcic7XHJcbiAgICB0aGlzLmlzU3VjY2VlZGVkRmlsdGVyTG9hZGVkID0gdHJ1ZTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZEZhaWxlZEpvYnMoKSB7XHJcbiAgICB0aGlzLmlzRW5xdWV1ZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTY2hlZHVsZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNQcm9jZXNzaW5nRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzU3VjY2VlZGVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzRmFpbGVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzRGVsZXRlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuZmFpbGVkUGFnaW5nID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMuZmFpbGVkUGFnaW5nLkFjdGlvblBvc3RVUkwgPSB0aGlzLkFwaVVybCArICdHZXRGYWlsZWRMaXN0QnlGaWx0ZXInO1xyXG4gICAgdGhpcy5pc0ZhaWxlZEZpbHRlckxvYWRlZCA9IHRydWU7XHJcblxyXG5cclxuICB9XHJcblxyXG4gIGxvYWREZWxldGVkSm9icygpIHtcclxuICAgIHRoaXMuaXNFbnF1ZXVlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1NjaGVkdWxlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmdGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTdWNjZWVkZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNGYWlsZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNEZWxldGVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5kZWxldGVkUGFnaW5nID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMuZGVsZXRlZFBhZ2luZy5BY3Rpb25Qb3N0VVJMID0gdGhpcy5BcGlVcmwgKyAnR2V0RGVsZXRlZExpc3RCeUZpbHRlcic7XHJcbiAgICB0aGlzLmlzRGVsZXRlZEZpbHRlckxvYWRlZCA9IHRydWU7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqRnVuY3Rpb25OYW1lOmZpbHRlckVucXVldWVkTGlzdCovXHJcbiAgLyoqRGVjbGFyYXRpb246ZnVuY3Rpb24gdG8gZmlsdGVyIEVucXVldWVkTGlzdCBpbiBjbGllbnQtc2lkZSAqL1xyXG4gIC8qKlBhcmFtZXRlcnM6Ki9cclxuICAvKipzZWFyY2hWYWx1ZTogY3VycmVudCB2YWx1ZSBvZiBzZWFyY2ggYm94Ki9cclxuICBmaWx0ZXJFbnF1ZXVlZExpc3Qoc2VhcmNoVmFsdWUpIHtcclxuICAgIGlmIChzZWFyY2hWYWx1ZSlcclxuICAgICAgdGhpcy5maWx0ZXJlZEVucXVldWVkUGFnaW5nUmVzdWx0ID0gdGhpcy5lbnF1ZXVlZFBhZ2luZ1Jlc3VsdC5maWx0ZXIoaXRlbSA9PiBpdGVtLmpvYi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5maWx0ZXJlZEVucXVldWVkUGFnaW5nUmVzdWx0ID0gdGhpcy5lbnF1ZXVlZFBhZ2luZ1Jlc3VsdFxyXG4gIH1cclxuXHJcbiAgLy8vLy8vLy8vLy9EZXN0cm95IE9ic2VydmFibGUgLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+IDwvYmxvY2stdWk+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICA8dWwgbmdiTmF2ICNuYXY9XCJuZ2JOYXZcIiBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzIG5hdi1saW5lLXRhYnMtMnggYm9yZGVyLXRyYW5zcGFyZW50IGZzLTUgZnctYm9sZGVyXCI+XHJcbiAgICAgICAgICAgIDxsaSBuZ2JOYXZJdGVtIGNsYXNzPVwibmF2LWl0ZW0gbXQtMlwiPlxyXG4gICAgICAgICAgICAgIDxhIG5nYk5hdkxpbmsgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1zLTAgbWUtMTAgcHktNVwiIChjbGljayk9XCJsb2FkRW5xdWV1ZWRKb2JzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFbnF1ZXVlZFwiKX19KHt7am9iQ291bnRzTW9kZWwuRW5xdWV1ZWR9fSk8L2E+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYk5hdkNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNSBweC0wICBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGVcIiAqbmdJZj1cImlzRW5xdWV1ZWRGaWx0ZXJMb2FkZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJzZWFyY2hUZXh0Qm94XCIgIChPbkNoYW5nZSk9XCJmaWx0ZXJFbnF1ZXVlZExpc3QoJGV2ZW50KVwiIFtncm91cF09XCJlbnF1ZXVlZEZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMyBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLWJlZ2luOjpQZXJtaXNzaW9uIGxpc3QtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBiZWdpbjo6VGFibGUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1zdGFydCB0ZXh0LWdyYXktNDAwIGZ3LWJvbGRlciBmcy03IHRleHQtdXBwZXJjYXNlIGdzLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSm9iXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTdGF0ZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9XCJsaXN0aW5nQ29udGFpbmVyXCIgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGpvYiBvZiBmaWx0ZXJlZEVucXVldWVkUGFnaW5nUmVzdWx0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ0ZXh0LWRhcmtcIj57e2pvYi5qb2J9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tqb2Iuc3RhdGV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgICpuZ0lmPVwiZmlsdGVyZWRFbnF1ZXVlZFBhZ2luZ1Jlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItZW1wdHktZGF0YT48L2xpYi1lbXB0eS1kYXRhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldEVucXVldWVkTGlzdFJlc3VsdCgkZXZlbnQpXCIgKm5nSWY9XCJpc0VucXVldWVkRmlsdGVyTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiZW5xdWV1ZWRQYWdpbmdcIiBbZ3JvdXBdPVwiZW5xdWV1ZWRGb3JtXCIgI0VucXVldWVkUGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVBhZ2luZz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgbmdiTmF2SXRlbSBjbGFzcz1cIm5hdi1pdGVtIG10LTJcIj5cclxuICAgICAgICAgICAgICA8YSBuZ2JOYXZMaW5rIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1hY3RpdmUtcHJpbWFyeSBtcy0wIG1lLTEwIHB5LTVcIiAoY2xpY2spPVwibG9hZFNjaGVkdWxlZEpvYnMoKVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNjaGVkdWxlZFwiKX19KHt7am9iQ291bnRzTW9kZWwuU2NoZWR1bGVkfX0pPC9hPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0zIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tYmVnaW46OlBlcm1pc3Npb24gbGlzdC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIGJlZ2luOjpUYWJsZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGFsaWduLW1pZGRsZSB0YWJsZS1yb3ctZGFzaGVkIGZzLTYgZ3ktNSBkYXRhVGFibGUgbm8tZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0ZXh0LXN0YXJ0IHRleHQtZ3JheS00MDAgZnctYm9sZGVyIGZzLTcgdGV4dC11cHBlcmNhc2UgZ3MtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJKb2JcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVucXVldWVkXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTY2hlZHVsZWRcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBqb2Igb2Ygc2NoZWR1bGVkUGFnaW5nUmVzdWx0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tqb2Iuam9ifX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7am9iLmVucXVldWVBdH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2pvYi5zY2hlZHVsZWRBdH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAgKm5nSWY9XCJzY2hlZHVsZWRQYWdpbmdSZXN1bHQubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWVtcHR5LWRhdGE+PC9saWItZW1wdHktZGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldFNjaGVkdWxlZExpc3RSZXN1bHQoJGV2ZW50KVwiICpuZ0lmPVwiaXNTY2hlZHVsZWRGaWx0ZXJMb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJzY2hlZHVsZWRQYWdpbmdcIiBbZ3JvdXBdPVwic2NoZWR1bGVkRm9ybVwiICNTY2hlZHVsZWRQYWdpbmdWaWV3RWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICA8L0JCU0YtUGFnaW5nPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSBuZ2JOYXZJdGVtIGNsYXNzPVwibmF2LWl0ZW0gbXQtMlwiPlxyXG4gICAgICAgICAgICAgIDxhIG5nYk5hdkxpbmsgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1zLTAgbWUtMTAgcHktNVwiIChjbGljayk9XCJsb2FkUHJvY2Vzc2luZ0pvYnMoKVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlByb2Nlc3NpbmdcIil9fSh7e2pvYkNvdW50c01vZGVsLlByb2Nlc3Npbmd9fSk8L2E+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYk5hdkNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB5LTMgcHgtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS1iZWdpbjo6UGVybWlzc2lvbiBsaXN0LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYmVnaW46OlRhYmxlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkpvYlwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU3RhcnRlZEF0XCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTZXJ2ZXJJZFwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9XCJsaXN0aW5nQ29udGFpbmVyXCIgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGpvYiBvZiBwcm9jZXNzaW5nUGFnaW5nUmVzdWx0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tqb2Iuam9ifX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7am9iLnN0YXJ0ZWRBdH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2pvYi5zZXJ2ZXJJZH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cInByb2Nlc3NpbmdQYWdpbmdSZXN1bHQubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWVtcHR5LWRhdGE+PC9saWItZW1wdHktZGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldFByb2Nlc3NpbmdMaXN0UmVzdWx0KCRldmVudClcIiAqbmdJZj1cImlzUHJvY2Vzc2luZ0ZpbHRlckxvYWRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInByb2Nlc3NpbmdQYWdpbmdcIiBbZ3JvdXBdPVwicHJvY2Vzc2luZ0Zvcm1cIiAjUHJvY2Vzc2luZ1BhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIG5nYk5hdkl0ZW0gY2xhc3M9XCJuYXYtaXRlbSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgPGEgbmdiTmF2TGluayBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbXMtMCBtZS0xMCBweS01XCIgKGNsaWNrKT1cImxvYWRTdWNjZWVkZWRKb2JzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTdWNjZWVkZWRcIil9fSh7e2pvYkNvdW50c01vZGVsLlN1Y2NlZWRlZH19KTwvYT5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMyBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYmVnaW46OlRhYmxlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSm9iXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU3VjY2VlZGVkQXRcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJUb3RhbER1cmF0aW9uXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keSBpZD1cImxpc3RpbmdDb250YWluZXJcIiBjbGFzcz1cImZ3LWJvbGQgdGV4dC1ncmF5LTYwMCBib3JkZXItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgam9iIG9mIHN1Y2NlZWRlZFBhZ2luZ1Jlc3VsdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7am9iLmpvYn19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2pvYi5zdWNjZWVkZWRBdH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2pvYi50b3RhbER1cmF0aW9ufX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwic3VjY2VlZGVkUGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1lbXB0eS1kYXRhPjwvbGliLWVtcHR5LWRhdGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0U3VjY2VlZGVkTGlzdFJlc3VsdCgkZXZlbnQpXCIgKm5nSWY9XCJpc1N1Y2NlZWRlZEZpbHRlckxvYWRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInN1Y2NlZWRlZFBhZ2luZ1wiIFtncm91cF09XCJzdWNjZWVkZWRGb3JtXCIgI1N1Y2NlZWRlZFBhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIG5nYk5hdkl0ZW0gY2xhc3M9XCJuYXYtaXRlbSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgPGEgbmdiTmF2TGluayBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbXMtMCBtZS0xMCBweS01XCIgKGNsaWNrKT1cImxvYWRGYWlsZWRKb2JzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJGYWlsZWRcIil9fSh7e2pvYkNvdW50c01vZGVsLkZhaWxlZH19KTwvYT5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMyBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYmVnaW46OlRhYmxlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJGYWlsZWRBdFwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkpvYlwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVycm9yTWVzc2FnZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVycm9yTWVzc2FnZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9XCJsaXN0aW5nQ29udGFpbmVyXCIgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGpvYiBvZiBmYWlsZWRQYWdpbmdSZXN1bHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2pvYi5mYWlsZWRBdH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2pvYi5qb2J9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tqb2IucmVhc29ufX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZmFpbGVkLWpvYi1kZXRhaWxzIGRpcmVjdGlvbkx0clwiICpuZ0lmPVwiam9iLmluRmFpbGVkU3RhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuZGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4ge3tqb2IuZXhjZXB0aW9uVHlwZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1tdXRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tqb2IuZXhjZXB0aW9uTWVzc2FnZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwiZmFpbGVkUGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1lbXB0eS1kYXRhPjwvbGliLWVtcHR5LWRhdGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJCU0YtUGFnaW5nIChJdGVtcyk9XCJzZXRGYWlsZWRMaXN0UmVzdWx0KCRldmVudClcIiAqbmdJZj1cImlzRmFpbGVkRmlsdGVyTG9hZGVkXCIgW29wdGlvbnNdPVwiZmFpbGVkUGFnaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dyb3VwXT1cImZhaWxlZEZvcm1cIiAjRmFpbGVkUGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVBhZ2luZz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgbmdiTmF2SXRlbSBjbGFzcz1cIm5hdi1pdGVtIG10LTJcIj5cclxuICAgICAgICAgICAgICA8YSBuZ2JOYXZMaW5rIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1hY3RpdmUtcHJpbWFyeSBtcy0wIG1lLTEwIHB5LTVcIiAoY2xpY2spPVwibG9hZERlbGV0ZWRKb2JzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVkXCIpfX0oe3tqb2JDb3VudHNNb2RlbC5EZWxldGVkfX0pPC9hPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0zIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBiZWdpbjo6VGFibGUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1zdGFydCB0ZXh0LWdyYXktNDAwIGZ3LWJvbGRlciBmcy03IHRleHQtdXBwZXJjYXNlIGdzLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSm9iXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVkQXRcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBqb2Igb2YgZGVsZXRlZFBhZ2luZ1Jlc3VsdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7am9iLmpvYn19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2pvYi5kZWxldGVkQXR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgICpuZ0lmPVwiZGVsZXRlZFBhZ2luZ1Jlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItZW1wdHktZGF0YT48L2xpYi1lbXB0eS1kYXRhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0RGVsZXRlZExpc3RSZXN1bHQoJGV2ZW50KVwiICpuZ0lmPVwiaXNEZWxldGVkRmlsdGVyTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiZGVsZXRlZFBhZ2luZ1wiIFtncm91cF09XCJkZWxldGVkRm9ybVwiICNEZWxldGVkUGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVBhZ2luZz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDxkaXYgW25nYk5hdk91dGxldF09XCJuYXZcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbiBcclxuXHJcbiJdfQ==
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9icy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2pvYnMvam9icy9qb2JzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvam9icy9qb2JzL2pvYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBbUIsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7Ozs7Ozs7QUFTOUUsTUFBTSxPQUFPLGFBQWE7SUEyRHhCLFlBQ1UsZUFBZ0MsRUFDakMsY0FBOEIsRUFDN0Isa0JBQXNDLEVBQ3RDLFdBQXdCLEVBQ3hCLHFCQUE0QztRQUo1QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQTlEdEQsbUJBQW1CO1FBQ25CLFdBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQTtRQUloQyxtQkFBYyxHQUFtQixJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ3RELG1CQUFjLEdBQVks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QUFLLEVBQUU7Z0JBT0csWUFBWTtzQkFBckUsU0FBUzt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJJdGVtLCBGaWx0ZXJUeXBlLCBJbnB1dFR5cGUsIFBhZ2luZ0NvbXBvbmVudCwgUGFnaW5nT3B0aW9ucywgVGV4dEJveE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSm9iQ291bnRzTW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0pvYk1vZGVscy9Kb2JDb3VudHNNb2RlbCc7XHJcbmltcG9ydCB7IEpvYnNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zaGFyZWQvU2VydmljZXMvSm9ic1NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1qb2JzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vam9icy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vam9icy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEpvYnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIC8vUGFnZSByZXF1aXJlbWVudHNcclxuICBBcGlVcmwgPSB0aGlzLmpvYnNTZXJ2aWNlLkFwaVVybFxyXG5cclxuICAvL1BhZ2UgQ29udGVudFxyXG4gIHNlYXJjaFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIGpvYkNvdW50c01vZGVsOiBKb2JDb3VudHNNb2RlbCA9IG5ldyBKb2JDb3VudHNNb2RlbCgpO1xyXG4gIHByb2R1Y3Rpb25Nb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNTdGF0aXN0aWNzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICAvL0ZpbHRlciBhbmQgcGFnaW5nIEVucXVldWVkIEpvYnMgY29tcG9uZW50XHJcbiAgZW5xdWV1ZWRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2hvd0VucXVldWVkRmlsdGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZW5xdWV1ZWRQYWdpbmdSZXN1bHQ6IGFueVtdID0gW107XHJcbiAgZmlsdGVyZWRFbnF1ZXVlZFBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBlbnF1ZXVlZFBhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICBlbnF1ZXVlZFRleHRJbnB1dEZpbHRlcjogRmlsdGVySXRlbTtcclxuICBpc0VucXVldWVkRmlsdGVyTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnRW5xdWV1ZWRQYWdpbmdWaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBlbnF1ZXVlZElucHV0OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuXHJcbiAgLy9GaWx0ZXIgYW5kIHBhZ2luZyBTY2hlZHVsZWQgSm9icyBjb21wb25lbnRcclxuICBzY2hlZHVsZWRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2NoZWR1bGVkUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIHNjaGVkdWxlZFBhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICBpc1NjaGVkdWxlZEZpbHRlckxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ1NjaGVkdWxlZFBhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHNjaGVkdWxlZElucHV0OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuXHJcbiAgLy9GaWx0ZXIgYW5kIHBhZ2luZyBQcm9jZXNzaW5nIEpvYnMgY29tcG9uZW50XHJcbiAgcHJvY2Vzc2luZ0Zvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBwcm9jZXNzaW5nUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIHByb2Nlc3NpbmdQYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcbiAgaXNQcm9jZXNzaW5nRmlsdGVyTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnUHJvY2Vzc2luZ1BhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHByb2Nlc3NpbmdJbnB1dDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcblxyXG4gIC8vRmlsdGVyIGFuZCBwYWdpbmcgU3VjY2VlZGVkIEpvYnMgY29tcG9uZW50XHJcbiAgc3VjY2VlZGVkRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIHN1Y2NlZWRlZFBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBzdWNjZWVkZWRQYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcbiAgaXNTdWNjZWVkZWRGaWx0ZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdTdWNjZWVkZWRQYWdpbmdWaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBzdWNjZWVkZWRJbnB1dDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcblxyXG4gIC8vRmlsdGVyIGFuZCBwYWdpbmcgIEZhaWxlZCBKb2JzIGNvbXBvbmVudFxyXG4gIGZhaWxlZEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBmYWlsZWRQYWdpbmdSZXN1bHQ6IGFueVtdID0gW107XHJcbiAgZmFpbGVkUGFnaW5nOiBQYWdpbmdPcHRpb25zO1xyXG4gIGlzRmFpbGVkRmlsdGVyTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnRmFpbGVkUGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgZmFpbGVkSW5wdXQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG5cclxuICAvL0ZpbHRlciBhbmQgcGFnaW5nIERlbGV0ZWQgSm9icyBjb21wb25lbnRcclxuICBkZWxldGVkRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGRlbGV0ZWRQYWdpbmdSZXN1bHQ6IGFueVtdID0gW107XHJcbiAgZGVsZXRlZFBhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICBpc0RlbGV0ZWRGaWx0ZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdEZWxldGVkUGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVsZXRlZElucHV0OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgam9ic1NlcnZpY2U6IEpvYnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vUGFnZSBoZWFkZXIgKGJyZWFkY3J1bWIgYW5kIHRpdGxlKVxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkpvYnNcIilcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnMgPSBbXHJcbiAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvbWVcIiksIHBhdGg6ICcvQWRtaW4vSG9tZScsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9XHJcblxyXG4gICAgXTtcclxuXHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgIHRoaXMucHJvZHVjdGlvbk1vZGUgPSB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRQcm9kdWN0aW9uTW9kZSgpXHJcbiAgICAvL2luaXRpYWxpemUgcGFnZVxyXG4gICAgdGhpcy5sb2FkU3RhdGlzdGljcygpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvLyBFbnF1ZXVlZCBQYWdpbmcgZnVuY3Rpb25zXHJcblxyXG4gIHNldEVucXVldWVkTGlzdFJlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMuZW5xdWV1ZWRQYWdpbmdSZXN1bHQgPSByZXN1bHRcclxuICAgIHRoaXMuZmlsdGVyZWRFbnF1ZXVlZFBhZ2luZ1Jlc3VsdCA9IHRoaXMuZW5xdWV1ZWRQYWdpbmdSZXN1bHRcclxuICB9XHJcblxyXG5cclxuICAvL1NjaGVkdWxlZCBQYWdpbmcgZnVuY3Rpb25zXHJcblxyXG4gIHNldFNjaGVkdWxlZExpc3RSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLnNjaGVkdWxlZFBhZ2luZ1Jlc3VsdCA9IHJlc3VsdFxyXG4gIH1cclxuXHJcbiAgLy9Qcm9jZXNzaW5nIFBhZ2luZyBmdW5jdGlvbnNcclxuXHJcbiAgc2V0UHJvY2Vzc2luZ0xpc3RSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLnByb2Nlc3NpbmdQYWdpbmdSZXN1bHQgPSByZXN1bHRcclxuXHJcbiAgfVxyXG5cclxuICAvL1N1Y2NlZWRlZCBQYWdpbmcgZnVuY3Rpb25zXHJcblxyXG4gIHNldFN1Y2NlZWRlZExpc3RSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLnN1Y2NlZWRlZFBhZ2luZ1Jlc3VsdCA9IHJlc3VsdFxyXG4gIH1cclxuICAvL0ZhaWxlZCBQYWdpbmcgZnVuY3Rpb25zXHJcblxyXG4gIHNldEZhaWxlZExpc3RSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLmZhaWxlZFBhZ2luZ1Jlc3VsdCA9IHJlc3VsdFxyXG4gIH1cclxuXHJcbiAgLy9EZWxldGVkIFBhZ2luZyBmdW5jdGlvbnNcclxuXHJcbiAgc2V0RGVsZXRlZExpc3RSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLmRlbGV0ZWRQYWdpbmdSZXN1bHQgPSByZXN1bHRcclxuXHJcbiAgfVxyXG5cclxuICAvL2luaXRpYWxpemUgcGFnZVxyXG5cclxuICBsb2FkU3RhdGlzdGljcygpIHtcclxuICAgIHRoaXMuam9ic1NlcnZpY2UuTG9hZFN0YXRpc3RpY3MoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgTGlzdHMgPSByZXN1bHQgYXMgYW55XHJcbiAgICAgIHRoaXMuam9iQ291bnRzTW9kZWwuRW5xdWV1ZWQgPSBMaXN0cy5lbnF1ZXVlZFxyXG4gICAgICB0aGlzLmpvYkNvdW50c01vZGVsLlN1Y2NlZWRlZCA9IExpc3RzLnN1Y2NlZWRlZFxyXG4gICAgICB0aGlzLmpvYkNvdW50c01vZGVsLlNjaGVkdWxlZCA9IExpc3RzLnNjaGVkdWxlZFxyXG4gICAgICB0aGlzLmpvYkNvdW50c01vZGVsLlByb2Nlc3NpbmcgPSBMaXN0cy5wcm9jZXNzaW5nXHJcbiAgICAgIHRoaXMuam9iQ291bnRzTW9kZWwuRmFpbGVkID0gTGlzdHMuZmFpbGVkXHJcbiAgICAgIHRoaXMuam9iQ291bnRzTW9kZWwuRGVsZXRlZCA9IExpc3RzLmRlbGV0ZWRcclxuICAgICAgdGhpcy5pc1N0YXRpc3RpY3NMb2FkZWQgPSB0cnVlO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcbiAgbG9hZEVucXVldWVkSm9icygpIHtcclxuICAgIHRoaXMuaXNFbnF1ZXVlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1NjaGVkdWxlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmdGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTdWNjZWVkZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNGYWlsZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNEZWxldGVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgLy8gVGV4dEJveCBpbnRpXHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3ggPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveC5uYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveC5oaWRlTGFiZWwgPSB0cnVlXHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3gudHlwZSA9IElucHV0VHlwZS5UZXh0XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3gucGxhY2Vob2xkZXIgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTZWFyY2hCeU5hbWVcIilcclxuXHJcbiAgICB0aGlzLmVucXVldWVkVGV4dElucHV0RmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuZW5xdWV1ZWRUZXh0SW5wdXRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgIHRoaXMuZW5xdWV1ZWRUZXh0SW5wdXRGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwic2VhcmNoVGV4dFwiXHJcbiAgICB0aGlzLmVucXVldWVkVGV4dElucHV0RmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlXHJcbiAgICB0aGlzLmVucXVldWVkVGV4dElucHV0RmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3hcclxuXHJcbiAgICB0aGlzLmVucXVldWVkUGFnaW5nID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMuZW5xdWV1ZWRQYWdpbmcuYWN0aW9uUG9zdFVSTCA9IHRoaXMuQXBpVXJsICsgJ0dldFF1ZXVlTGlzdEJ5RmlsdGVyJztcclxuICAgIHRoaXMuZW5xdWV1ZWRQYWdpbmcub25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMgPSBbXCJzZWFyY2hUZXh0Qm94XCJdXHJcbiAgICB0aGlzLmVucXVldWVkUGFnaW5nLmZpbHRlcnMgPSBbdGhpcy5lbnF1ZXVlZFRleHRJbnB1dEZpbHRlcl1cclxuXHJcbiAgICB0aGlzLmlzRW5xdWV1ZWRGaWx0ZXJMb2FkZWQgPSB0cnVlO1xyXG5cclxuICB9XHJcblxyXG5cclxuICBsb2FkU2NoZWR1bGVkSm9icygpIHtcclxuICAgIHRoaXMuaXNFbnF1ZXVlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1NjaGVkdWxlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmdGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTdWNjZWVkZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNGYWlsZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNEZWxldGVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zY2hlZHVsZWRQYWdpbmcgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5zY2hlZHVsZWRQYWdpbmcuYWN0aW9uUG9zdFVSTCA9IHRoaXMuQXBpVXJsICsgJ0dldFNjaGVkdWxlZExpc3RCeUZpbHRlcic7XHJcbiAgICB0aGlzLmlzU2NoZWR1bGVkRmlsdGVyTG9hZGVkID0gdHJ1ZTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZFByb2Nlc3NpbmdKb2JzKCkge1xyXG4gICAgdGhpcy5pc0VucXVldWVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzU2NoZWR1bGVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzUHJvY2Vzc2luZ0ZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1N1Y2NlZWRlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0ZhaWxlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0RlbGV0ZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnByb2Nlc3NpbmdQYWdpbmcgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5wcm9jZXNzaW5nUGFnaW5nLmFjdGlvblBvc3RVUkwgPSB0aGlzLkFwaVVybCArICdHZXRQcm9jZXNzaW5nTGlzdEJ5RmlsdGVyJztcclxuICAgIHRoaXMuaXNQcm9jZXNzaW5nRmlsdGVyTG9hZGVkID0gdHJ1ZTtcclxuXHJcbiAgfVxyXG5cclxuICBsb2FkU3VjY2VlZGVkSm9icygpIHtcclxuICAgIHRoaXMuaXNFbnF1ZXVlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1NjaGVkdWxlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmdGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTdWNjZWVkZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNGYWlsZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNEZWxldGVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zdWNjZWVkZWRQYWdpbmcgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5zdWNjZWVkZWRQYWdpbmcuYWN0aW9uUG9zdFVSTCA9IHRoaXMuQXBpVXJsICsgJ0dldFN1Y2NlZWRlZExpc3RCeUZpbHRlcic7XHJcbiAgICB0aGlzLmlzU3VjY2VlZGVkRmlsdGVyTG9hZGVkID0gdHJ1ZTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZEZhaWxlZEpvYnMoKSB7XHJcbiAgICB0aGlzLmlzRW5xdWV1ZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTY2hlZHVsZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNQcm9jZXNzaW5nRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzU3VjY2VlZGVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzRmFpbGVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzRGVsZXRlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuZmFpbGVkUGFnaW5nID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMuZmFpbGVkUGFnaW5nLmFjdGlvblBvc3RVUkwgPSB0aGlzLkFwaVVybCArICdHZXRGYWlsZWRMaXN0QnlGaWx0ZXInO1xyXG4gICAgdGhpcy5pc0ZhaWxlZEZpbHRlckxvYWRlZCA9IHRydWU7XHJcblxyXG5cclxuICB9XHJcblxyXG4gIGxvYWREZWxldGVkSm9icygpIHtcclxuICAgIHRoaXMuaXNFbnF1ZXVlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1NjaGVkdWxlZEZpbHRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmdGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTdWNjZWVkZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNGYWlsZWRGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNEZWxldGVkRmlsdGVyTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5kZWxldGVkUGFnaW5nID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMuZGVsZXRlZFBhZ2luZy5hY3Rpb25Qb3N0VVJMID0gdGhpcy5BcGlVcmwgKyAnR2V0RGVsZXRlZExpc3RCeUZpbHRlcic7XHJcbiAgICB0aGlzLmlzRGVsZXRlZEZpbHRlckxvYWRlZCA9IHRydWU7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqRnVuY3Rpb25OYW1lOmZpbHRlckVucXVldWVkTGlzdCovXHJcbiAgLyoqRGVjbGFyYXRpb246ZnVuY3Rpb24gdG8gZmlsdGVyIEVucXVldWVkTGlzdCBpbiBjbGllbnQtc2lkZSAqL1xyXG4gIC8qKlBhcmFtZXRlcnM6Ki9cclxuICAvKipzZWFyY2hWYWx1ZTogY3VycmVudCB2YWx1ZSBvZiBzZWFyY2ggYm94Ki9cclxuICBmaWx0ZXJFbnF1ZXVlZExpc3Qoc2VhcmNoVmFsdWUpIHtcclxuICAgIGlmIChzZWFyY2hWYWx1ZSlcclxuICAgICAgdGhpcy5maWx0ZXJlZEVucXVldWVkUGFnaW5nUmVzdWx0ID0gdGhpcy5lbnF1ZXVlZFBhZ2luZ1Jlc3VsdC5maWx0ZXIoaXRlbSA9PiBpdGVtLmpvYi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5maWx0ZXJlZEVucXVldWVkUGFnaW5nUmVzdWx0ID0gdGhpcy5lbnF1ZXVlZFBhZ2luZ1Jlc3VsdFxyXG4gIH1cclxuXHJcbiAgLy8vLy8vLy8vLy9EZXN0cm95IE9ic2VydmFibGUgLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+IDwvYmxvY2stdWk+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICA8dWwgbmdiTmF2ICNuYXY9XCJuZ2JOYXZcIiBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzIG5hdi1saW5lLXRhYnMtMnggYm9yZGVyLXRyYW5zcGFyZW50IGZzLTUgZnctYm9sZGVyXCI+XHJcbiAgICAgICAgICAgIDxsaSBuZ2JOYXZJdGVtIGNsYXNzPVwibmF2LWl0ZW0gbXQtMlwiPlxyXG4gICAgICAgICAgICAgIDxhIG5nYk5hdkxpbmsgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1zLTAgbWUtMTAgcHktNVwiIChjbGljayk9XCJsb2FkRW5xdWV1ZWRKb2JzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFbnF1ZXVlZFwiKX19KHt7am9iQ291bnRzTW9kZWwuRW5xdWV1ZWR9fSk8L2E+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYk5hdkNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNSBweC0wICBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGVcIiAqbmdJZj1cImlzRW5xdWV1ZWRGaWx0ZXJMb2FkZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJzZWFyY2hUZXh0Qm94XCIgIChPbkNoYW5nZSk9XCJmaWx0ZXJFbnF1ZXVlZExpc3QoJGV2ZW50KVwiIFtncm91cF09XCJlbnF1ZXVlZEZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMyBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLWJlZ2luOjpQZXJtaXNzaW9uIGxpc3QtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBiZWdpbjo6VGFibGUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1zdGFydCB0ZXh0LWdyYXktNDAwIGZ3LWJvbGRlciBmcy03IHRleHQtdXBwZXJjYXNlIGdzLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSm9iXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTdGF0ZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9XCJsaXN0aW5nQ29udGFpbmVyXCIgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGpvYiBvZiBmaWx0ZXJlZEVucXVldWVkUGFnaW5nUmVzdWx0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ0ZXh0LWRhcmtcIj57e2pvYi5qb2J9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tqb2Iuc3RhdGV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgICpuZ0lmPVwiZmlsdGVyZWRFbnF1ZXVlZFBhZ2luZ1Jlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItZW1wdHktZGF0YT48L2xpYi1lbXB0eS1kYXRhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldEVucXVldWVkTGlzdFJlc3VsdCgkZXZlbnQpXCIgKm5nSWY9XCJpc0VucXVldWVkRmlsdGVyTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiZW5xdWV1ZWRQYWdpbmdcIiBbZ3JvdXBdPVwiZW5xdWV1ZWRGb3JtXCIgI0VucXVldWVkUGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVBhZ2luZz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgbmdiTmF2SXRlbSBjbGFzcz1cIm5hdi1pdGVtIG10LTJcIj5cclxuICAgICAgICAgICAgICA8YSBuZ2JOYXZMaW5rIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1hY3RpdmUtcHJpbWFyeSBtcy0wIG1lLTEwIHB5LTVcIiAoY2xpY2spPVwibG9hZFNjaGVkdWxlZEpvYnMoKVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNjaGVkdWxlZFwiKX19KHt7am9iQ291bnRzTW9kZWwuU2NoZWR1bGVkfX0pPC9hPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0zIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tYmVnaW46OlBlcm1pc3Npb24gbGlzdC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIGJlZ2luOjpUYWJsZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGFsaWduLW1pZGRsZSB0YWJsZS1yb3ctZGFzaGVkIGZzLTYgZ3ktNSBkYXRhVGFibGUgbm8tZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0ZXh0LXN0YXJ0IHRleHQtZ3JheS00MDAgZnctYm9sZGVyIGZzLTcgdGV4dC11cHBlcmNhc2UgZ3MtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJKb2JcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVucXVldWVkXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTY2hlZHVsZWRcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBqb2Igb2Ygc2NoZWR1bGVkUGFnaW5nUmVzdWx0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tqb2Iuam9ifX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7am9iLmVucXVldWVBdH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2pvYi5zY2hlZHVsZWRBdH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAgKm5nSWY9XCJzY2hlZHVsZWRQYWdpbmdSZXN1bHQubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWVtcHR5LWRhdGE+PC9saWItZW1wdHktZGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldFNjaGVkdWxlZExpc3RSZXN1bHQoJGV2ZW50KVwiICpuZ0lmPVwiaXNTY2hlZHVsZWRGaWx0ZXJMb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJzY2hlZHVsZWRQYWdpbmdcIiBbZ3JvdXBdPVwic2NoZWR1bGVkRm9ybVwiICNTY2hlZHVsZWRQYWdpbmdWaWV3RWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICA8L0JCU0YtUGFnaW5nPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSBuZ2JOYXZJdGVtIGNsYXNzPVwibmF2LWl0ZW0gbXQtMlwiPlxyXG4gICAgICAgICAgICAgIDxhIG5nYk5hdkxpbmsgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1zLTAgbWUtMTAgcHktNVwiIChjbGljayk9XCJsb2FkUHJvY2Vzc2luZ0pvYnMoKVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlByb2Nlc3NpbmdcIil9fSh7e2pvYkNvdW50c01vZGVsLlByb2Nlc3Npbmd9fSk8L2E+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYk5hdkNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB5LTMgcHgtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS1iZWdpbjo6UGVybWlzc2lvbiBsaXN0LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYmVnaW46OlRhYmxlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkpvYlwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU3RhcnRlZEF0XCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTZXJ2ZXJJZFwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9XCJsaXN0aW5nQ29udGFpbmVyXCIgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGpvYiBvZiBwcm9jZXNzaW5nUGFnaW5nUmVzdWx0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tqb2Iuam9ifX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7am9iLnN0YXJ0ZWRBdH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2pvYi5zZXJ2ZXJJZH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cInByb2Nlc3NpbmdQYWdpbmdSZXN1bHQubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWVtcHR5LWRhdGE+PC9saWItZW1wdHktZGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldFByb2Nlc3NpbmdMaXN0UmVzdWx0KCRldmVudClcIiAqbmdJZj1cImlzUHJvY2Vzc2luZ0ZpbHRlckxvYWRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInByb2Nlc3NpbmdQYWdpbmdcIiBbZ3JvdXBdPVwicHJvY2Vzc2luZ0Zvcm1cIiAjUHJvY2Vzc2luZ1BhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIG5nYk5hdkl0ZW0gY2xhc3M9XCJuYXYtaXRlbSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgPGEgbmdiTmF2TGluayBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbXMtMCBtZS0xMCBweS01XCIgKGNsaWNrKT1cImxvYWRTdWNjZWVkZWRKb2JzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTdWNjZWVkZWRcIil9fSh7e2pvYkNvdW50c01vZGVsLlN1Y2NlZWRlZH19KTwvYT5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMyBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYmVnaW46OlRhYmxlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSm9iXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU3VjY2VlZGVkQXRcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJUb3RhbER1cmF0aW9uXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keSBpZD1cImxpc3RpbmdDb250YWluZXJcIiBjbGFzcz1cImZ3LWJvbGQgdGV4dC1ncmF5LTYwMCBib3JkZXItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgam9iIG9mIHN1Y2NlZWRlZFBhZ2luZ1Jlc3VsdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7am9iLmpvYn19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2pvYi5zdWNjZWVkZWRBdH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2pvYi50b3RhbER1cmF0aW9ufX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwic3VjY2VlZGVkUGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1lbXB0eS1kYXRhPjwvbGliLWVtcHR5LWRhdGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0U3VjY2VlZGVkTGlzdFJlc3VsdCgkZXZlbnQpXCIgKm5nSWY9XCJpc1N1Y2NlZWRlZEZpbHRlckxvYWRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInN1Y2NlZWRlZFBhZ2luZ1wiIFtncm91cF09XCJzdWNjZWVkZWRGb3JtXCIgI1N1Y2NlZWRlZFBhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIG5nYk5hdkl0ZW0gY2xhc3M9XCJuYXYtaXRlbSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgPGEgbmdiTmF2TGluayBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbXMtMCBtZS0xMCBweS01XCIgKGNsaWNrKT1cImxvYWRGYWlsZWRKb2JzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJGYWlsZWRcIil9fSh7e2pvYkNvdW50c01vZGVsLkZhaWxlZH19KTwvYT5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMyBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYmVnaW46OlRhYmxlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJGYWlsZWRBdFwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkpvYlwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVycm9yTWVzc2FnZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVycm9yTWVzc2FnZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9XCJsaXN0aW5nQ29udGFpbmVyXCIgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGpvYiBvZiBmYWlsZWRQYWdpbmdSZXN1bHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2pvYi5mYWlsZWRBdH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2pvYi5qb2J9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tqb2IucmVhc29ufX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZmFpbGVkLWpvYi1kZXRhaWxzIGRpcmVjdGlvbkx0clwiICpuZ0lmPVwiam9iLmluRmFpbGVkU3RhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuZGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4ge3tqb2IuZXhjZXB0aW9uVHlwZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1tdXRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tqb2IuZXhjZXB0aW9uTWVzc2FnZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwiZmFpbGVkUGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1lbXB0eS1kYXRhPjwvbGliLWVtcHR5LWRhdGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJCU0YtUGFnaW5nIChJdGVtcyk9XCJzZXRGYWlsZWRMaXN0UmVzdWx0KCRldmVudClcIiAqbmdJZj1cImlzRmFpbGVkRmlsdGVyTG9hZGVkXCIgW29wdGlvbnNdPVwiZmFpbGVkUGFnaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dyb3VwXT1cImZhaWxlZEZvcm1cIiAjRmFpbGVkUGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVBhZ2luZz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgbmdiTmF2SXRlbSBjbGFzcz1cIm5hdi1pdGVtIG10LTJcIj5cclxuICAgICAgICAgICAgICA8YSBuZ2JOYXZMaW5rIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1hY3RpdmUtcHJpbWFyeSBtcy0wIG1lLTEwIHB5LTVcIiAoY2xpY2spPVwibG9hZERlbGV0ZWRKb2JzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVkXCIpfX0oe3tqb2JDb3VudHNNb2RlbC5EZWxldGVkfX0pPC9hPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0zIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBiZWdpbjo6VGFibGUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1zdGFydCB0ZXh0LWdyYXktNDAwIGZ3LWJvbGRlciBmcy03IHRleHQtdXBwZXJjYXNlIGdzLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSm9iXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVkQXRcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBqb2Igb2YgZGVsZXRlZFBhZ2luZ1Jlc3VsdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7am9iLmpvYn19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2pvYi5kZWxldGVkQXR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgICpuZ0lmPVwiZGVsZXRlZFBhZ2luZ1Jlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItZW1wdHktZGF0YT48L2xpYi1lbXB0eS1kYXRhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0RGVsZXRlZExpc3RSZXN1bHQoJGV2ZW50KVwiICpuZ0lmPVwiaXNEZWxldGVkRmlsdGVyTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiZGVsZXRlZFBhZ2luZ1wiIFtncm91cF09XCJkZWxldGVkRm9ybVwiICNEZWxldGVkUGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVBhZ2luZz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDxkaXYgW25nYk5hdk91dGxldF09XCJuYXZcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbiBcclxuXHJcbiJdfQ==
@@ -84,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
84
84
  ]
85
85
  }]
86
86
  }] });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9icy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2pvYnMvam9icy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRyxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBaUNqSCxNQUFNLE9BQU8sVUFBVTs4R0FBVixVQUFVOytHQUFWLFVBQVUsaUJBN0JOLGFBQWEsOEJBTzFCLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLFVBQVU7WUFDVixZQUFZO1lBQ1osWUFBWTtZQUNaLGVBQWUsb0JBRWYsbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxrQkFBa0I7WUFDbEIsU0FBUztZQUNULGVBQWU7K0dBVU4sVUFBVSxhQVJYO1lBQ1Isa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxXQUFXO1lBQ1gsb0JBQW9CO1lBQ3BCLFdBQVc7U0FDWixZQXhCQyxZQUFZLENBQUMsUUFBUSxDQUFDO2dCQUNwQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUMsU0FBUyxFQUFDLGFBQWEsRUFBQztnQkFDbkMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQzthQUMvQyxDQUFDO1lBQ0YsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsVUFBVTtZQUNWLFlBQVk7WUFDWixZQUFZO1lBQ1osZUFBZTtZQUNmLGFBQWEsQ0FBQyxPQUFPLEVBQUU7WUFDdkIsbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxrQkFBa0I7WUFDbEIsU0FBUztZQUNULGVBQWU7OzJGQVVOLFVBQVU7a0JBOUJ0QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDN0IsT0FBTyxFQUFFO3dCQUVQLFlBQVksQ0FBQyxRQUFRLENBQUM7NEJBQ3BCLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBQyxTQUFTLEVBQUMsYUFBYSxFQUFDOzRCQUNuQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFDO3lCQUMvQyxDQUFDO3dCQUNGLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYSxDQUFDLE9BQU8sRUFBRTt3QkFDdkIsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsU0FBUzt3QkFDVCxlQUFlO3FCQUNoQjtvQkFDRCxTQUFTLEVBQUM7d0JBQ1Isa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsb0JBQW9CO3dCQUNwQixXQUFXO3FCQUNaO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSm9ic0NvbXBvbmVudCB9IGZyb20gJy4vam9icy9qb2JzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7ICBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ2xpcGJvYXJkTW9kdWxlIH0gZnJvbSAnbmd4LWNsaXBib2FyZCc7XHJcbmltcG9ydCB7IEJCU0ZDb250cm9sc01vZHVsZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgQmxvY2tVSU1vZHVsZSB9IGZyb20gJ25nLWJsb2NrLXVpJztcclxuaW1wb3J0IHsgQXV0aE1vZHVsZSB9IGZyb20gJy4uL2NvcmUvYXV0aC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBOZ2JNb2R1bGUgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHsgRW1wdHlEYXRhTW9kdWxlIH0gZnJvbSAnLi4vZW1wdHktZGF0YS9lbXB0eS1kYXRhLm1vZHVsZSc7XHJcbmltcG9ydCB7IEpvYnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL1NlcnZpY2VzL0pvYnNTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSwgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIEVudmlyb25tZW50U2VydmljZSwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbSm9ic0NvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG5cclxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChbXHJcbiAgICAgIHsgcGF0aDogJycsY29tcG9uZW50OkpvYnNDb21wb25lbnR9LFxyXG4gICAgICB7IHBhdGg6ICcnLCByZWRpcmVjdFRvOiAnJywgcGF0aE1hdGNoOiAnZnVsbCd9LFxyXG4gICAgXSksXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIEF1dGhNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDbGlwYm9hcmRNb2R1bGUsXHJcbiAgICBCbG9ja1VJTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEJCU0ZDb250cm9sc01vZHVsZSxcclxuICAgIE5nYk1vZHVsZSxcclxuICAgIEVtcHR5RGF0YU1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOltcclxuICAgIEVudmlyb25tZW50U2VydmljZSxcclxuICAgIFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgQXV0aFNlcnZpY2UsXHJcbiAgICBCQlNGVHJhbnNsYXRlU2VydmljZSxcclxuICAgIEpvYnNTZXJ2aWNlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSm9ic01vZHVsZSB7IH1cclxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9icy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2pvYnMvam9icy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBaUNqSCxNQUFNLE9BQU8sVUFBVTs4R0FBVixVQUFVOytHQUFWLFVBQVUsaUJBN0JOLGFBQWEsOEJBTzFCLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLFVBQVU7WUFDVixZQUFZO1lBQ1osWUFBWTtZQUNaLGVBQWUsb0JBRWYsbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxrQkFBa0I7WUFDbEIsU0FBUztZQUNULGVBQWU7K0dBVU4sVUFBVSxhQVJWO1lBQ1Qsa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxXQUFXO1lBQ1gsb0JBQW9CO1lBQ3BCLFdBQVc7U0FDWixZQXhCQyxZQUFZLENBQUMsUUFBUSxDQUFDO2dCQUNwQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRTtnQkFDdEMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRTthQUNoRCxDQUFDO1lBQ0YsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsVUFBVTtZQUNWLFlBQVk7WUFDWixZQUFZO1lBQ1osZUFBZTtZQUNmLGFBQWEsQ0FBQyxPQUFPLEVBQUU7WUFDdkIsbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxrQkFBa0I7WUFDbEIsU0FBUztZQUNULGVBQWU7OzJGQVVOLFVBQVU7a0JBOUJ0QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDN0IsT0FBTyxFQUFFO3dCQUVQLFlBQVksQ0FBQyxRQUFRLENBQUM7NEJBQ3BCLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFOzRCQUN0QyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO3lCQUNoRCxDQUFDO3dCQUNGLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYSxDQUFDLE9BQU8sRUFBRTt3QkFDdkIsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsU0FBUzt3QkFDVCxlQUFlO3FCQUNoQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Qsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsb0JBQW9CO3dCQUNwQixXQUFXO3FCQUNaO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSm9ic0NvbXBvbmVudCB9IGZyb20gJy4vam9icy9qb2JzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmRNb2R1bGUgfSBmcm9tICduZ3gtY2xpcGJvYXJkJztcclxuaW1wb3J0IHsgQkJTRkNvbnRyb2xzTW9kdWxlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBCbG9ja1VJTW9kdWxlIH0gZnJvbSAnbmctYmxvY2stdWknO1xyXG5pbXBvcnQgeyBBdXRoTW9kdWxlIH0gZnJvbSAnLi4vY29yZS9hdXRoLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5nYk1vZHVsZSB9IGZyb20gXCJAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcFwiO1xyXG5pbXBvcnQgeyBFbXB0eURhdGFNb2R1bGUgfSBmcm9tICcuLi9lbXB0eS1kYXRhL2VtcHR5LWRhdGEubW9kdWxlJztcclxuaW1wb3J0IHsgSm9ic1NlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvU2VydmljZXMvSm9ic1NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBCQlNGVHJhbnNsYXRlU2VydmljZSwgRW52aXJvbm1lbnRTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtKb2JzQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcblxyXG4gICAgUm91dGVyTW9kdWxlLmZvckNoaWxkKFtcclxuICAgICAgeyBwYXRoOiAnJywgY29tcG9uZW50OiBKb2JzQ29tcG9uZW50IH0sXHJcbiAgICAgIHsgcGF0aDogJycsIHJlZGlyZWN0VG86ICcnLCBwYXRoTWF0Y2g6ICdmdWxsJyB9LFxyXG4gICAgXSksXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIEF1dGhNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDbGlwYm9hcmRNb2R1bGUsXHJcbiAgICBCbG9ja1VJTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEJCU0ZDb250cm9sc01vZHVsZSxcclxuICAgIE5nYk1vZHVsZSxcclxuICAgIEVtcHR5RGF0YU1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBFbnZpcm9ubWVudFNlcnZpY2UsXHJcbiAgICBVdGlsaXR5U2VydmljZSxcclxuICAgIEF1dGhTZXJ2aWNlLFxyXG4gICAgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBKb2JzU2VydmljZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEpvYnNNb2R1bGUgeyB9XHJcbiJdfQ==