@bnsights/bbsf-admin-portal 1.1.2 → 1.1.3
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.
- package/README.md +4 -0
- package/{esm2020 → esm2022}/bnsights-bbsf-admin-portal.mjs +4 -4
- package/{esm2020 → esm2022}/lib/Pages/ActiveDirectories/active-directories.component.mjs +14 -14
- package/esm2022/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +421 -0
- package/esm2022/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.mjs +528 -0
- package/{esm2020 → esm2022}/lib/Pages/ActiveDirectories/active-directory-routing.module.mjs +29 -29
- package/esm2022/lib/Pages/ActiveDirectories/active-directory.module.mjs +108 -0
- package/esm2022/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.mjs +23 -0
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/aside/aside.component.mjs +65 -65
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/content/content.component.mjs +31 -31
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/footer/footer.component.mjs +32 -32
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/header/header.component.mjs +57 -57
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/header/page-title/page-title.component.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/scripts-init/scripts-init.component.mjs +58 -58
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/subheader/subheader.component.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/subheader/subheader.module.mjs +26 -26
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/toolbar/toolbar.component.mjs +41 -41
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/toolbar/toolbar.module.mjs +25 -25
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/topbar/topbar.component.mjs +71 -71
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/activation/activation.component.mjs +92 -92
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/anonymouslayout-routing.module.mjs +37 -37
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/anonymouslayout.component.mjs +54 -54
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.module.mjs +100 -0
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/error/error.component.mjs +48 -48
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.mjs +59 -59
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/login/login.component.mjs +94 -94
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/rest-password/rest-password.component.mjs +90 -90
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/upload-license/upload-license.component.mjs +71 -71
- package/{esm2020 → esm2022}/lib/Pages/authentication/auth-callback/auth-callback.component.mjs +43 -43
- package/{esm2020 → esm2022}/lib/Pages/authentication/authentication.component.mjs +15 -15
- package/{esm2020 → esm2022}/lib/Pages/authentication/authentication.module.mjs +41 -41
- package/{esm2020 → esm2022}/lib/Pages/authentication/authentication.routing.mjs +31 -31
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +330 -0
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +157 -0
- package/esm2022/lib/Pages/configurations/configuration/configuration.component.mjs +801 -0
- package/{esm2020 → esm2022}/lib/Pages/configurations/configurations.component.mjs +15 -15
- package/esm2022/lib/Pages/configurations/configurations.module.mjs +104 -0
- package/{esm2020 → esm2022}/lib/Pages/configurations/configurations.routing.mjs +41 -41
- package/{esm2020 → esm2022}/lib/Pages/configurations/index.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/core/auth.module.mjs +30 -30
- package/esm2022/lib/Pages/core/authentication/admin.guard.mjs +17 -0
- package/{esm2020 → esm2022}/lib/Pages/core/authentication/auth.guard.mjs +46 -46
- package/esm2022/lib/Pages/core/authentication/auth.service.mjs +147 -0
- package/esm2022/lib/Pages/departments/department/department.component.mjs +220 -0
- package/esm2022/lib/Pages/departments/department-info/department-info.component.mjs +185 -0
- package/{esm2020 → esm2022}/lib/Pages/departments/departments-routing.module.mjs +27 -27
- package/{esm2020 → esm2022}/lib/Pages/departments/departments.component.mjs +15 -15
- package/esm2022/lib/Pages/departments/departments.module.mjs +94 -0
- package/esm2022/lib/Pages/documents/add-document/add-document.component.mjs +136 -0
- package/esm2022/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs +148 -0
- package/{esm2020 → esm2022}/lib/Pages/documents/document-template-info/document-template-info.component.mjs +332 -332
- package/esm2022/lib/Pages/documents/document-templates/document-templates.component.mjs +437 -0
- package/{esm2020 → esm2022}/lib/Pages/documents/documents.component.mjs +15 -15
- package/esm2022/lib/Pages/documents/documents.module.mjs +114 -0
- package/esm2022/lib/Pages/documents/documents.routing.mjs +37 -0
- package/esm2022/lib/Pages/documents/edit-document/edit-document.component.mjs +169 -0
- package/{esm2020 → esm2022}/lib/Pages/documents/edit-document-template/edit-document-template.component.mjs +123 -123
- package/{esm2020 → esm2022}/lib/Pages/empty-data/empty-data.component.mjs +31 -31
- package/{esm2020 → esm2022}/lib/Pages/empty-data/empty-data.module.mjs +28 -28
- package/esm2022/lib/Pages/helpCenter/help-center/help-center.component.mjs +294 -0
- package/esm2022/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.mjs +43 -0
- package/{esm2020 → esm2022}/lib/Pages/helpCenter/help-center-routing.module.mjs +31 -31
- package/esm2022/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.mjs +242 -0
- package/esm2022/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +243 -0
- package/esm2022/lib/Pages/helpCenter/help-center.module.mjs +99 -0
- package/{esm2020 → esm2022}/lib/Pages/helpCenter/help-centers.component.mjs +15 -15
- package/{esm2020 → esm2022}/lib/Pages/home/filter-pipe.mjs +23 -23
- package/esm2022/lib/Pages/home/home.component.mjs +158 -0
- package/esm2022/lib/Pages/home/home.module.mjs +48 -0
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +443 -0
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules.module.mjs +95 -0
- package/esm2022/lib/Pages/jobs/jobs/jobs.component.mjs +223 -0
- package/esm2022/lib/Pages/jobs/jobs.module.mjs +87 -0
- package/{esm2020 → esm2022}/lib/Pages/license/license/license.component.mjs +163 -163
- package/esm2022/lib/Pages/license/license.module.mjs +71 -0
- package/{esm2020 → esm2022}/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.mjs +215 -215
- package/esm2022/lib/Pages/localizations/localizations.component.mjs +516 -0
- package/esm2022/lib/Pages/localizations/localizations.module.mjs +79 -0
- package/{esm2020 → esm2022}/lib/Pages/logs/log/log.component.mjs +93 -93
- package/{esm2020 → esm2022}/lib/Pages/logs/logs-routing.module.mjs +27 -27
- package/{esm2020 → esm2022}/lib/Pages/logs/logs.component.mjs +15 -15
- package/esm2022/lib/Pages/logs/logs.module.mjs +87 -0
- package/esm2022/lib/Pages/lookups/lookup/lookup.component.mjs +367 -0
- package/esm2022/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +187 -0
- package/esm2022/lib/Pages/lookups/lookup-item/lookup-item.component.mjs +297 -0
- package/{esm2020 → esm2022}/lib/Pages/lookups/lookups-routing.module.mjs +29 -29
- package/{esm2020 → esm2022}/lib/Pages/lookups/lookups.component.mjs +15 -15
- package/esm2022/lib/Pages/lookups/lookups.module.mjs +100 -0
- package/esm2022/lib/Pages/notifications/add-notification/add-notification.component.mjs +104 -0
- package/{esm2020 → esm2022}/lib/Pages/notifications/edit-email/edit-email.component.mjs +158 -158
- package/esm2022/lib/Pages/notifications/edit-notification/edit-notification.component.mjs +133 -0
- package/{esm2020 → esm2022}/lib/Pages/notifications/edit-sms/edit-sms.component.mjs +115 -115
- package/esm2022/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +148 -0
- package/esm2022/lib/Pages/notifications/notifications-routing.module.mjs +39 -0
- package/{esm2020 → esm2022}/lib/Pages/notifications/notifications.component.mjs +15 -15
- package/esm2022/lib/Pages/notifications/notifications.module.mjs +101 -0
- package/{esm2020 → esm2022}/lib/Pages/notifications/template-info/template-info.component.mjs +391 -391
- package/esm2022/lib/Pages/notifications/templates/templates.component.mjs +495 -0
- package/esm2022/lib/Pages/providers/provider/provider.component.mjs +615 -0
- package/{esm2020 → esm2022}/lib/Pages/providers/providers-routing.module.mjs +27 -27
- package/{esm2020 → esm2022}/lib/Pages/providers/providers.component.mjs +15 -15
- package/esm2022/lib/Pages/providers/providers.module.mjs +91 -0
- package/esm2022/lib/Pages/publicHolidays/public-holiday/public-holiday.component.mjs +334 -0
- package/{esm2020 → esm2022}/lib/Pages/publicHolidays/public-holidays-routing.module.mjs +25 -25
- package/{esm2020 → esm2022}/lib/Pages/publicHolidays/public-holidays.component.mjs +15 -15
- package/esm2022/lib/Pages/publicHolidays/public-holidays.module.mjs +94 -0
- package/esm2022/lib/Pages/roles/permission-set-info/permission-set-info.component.mjs +187 -0
- package/esm2022/lib/Pages/roles/permissions/permissions.component.mjs +226 -0
- package/esm2022/lib/Pages/roles/permissionsets/permissionsets.component.mjs +277 -0
- package/{esm2020 → esm2022}/lib/Pages/roles/roles-routing.module.mjs +29 -29
- package/{esm2020 → esm2022}/lib/Pages/roles/roles.component.mjs +15 -15
- package/esm2022/lib/Pages/roles/roles.module.mjs +105 -0
- package/esm2022/lib/Pages/sectors/sector/sector.component.mjs +193 -0
- package/esm2022/lib/Pages/sectors/sector-info/sector-info.component.mjs +180 -0
- package/esm2022/lib/Pages/sectors/sectors-department-info/sectors-department-info.component.mjs +187 -0
- package/{esm2020 → esm2022}/lib/Pages/sectors/sectors-routing.module.mjs +29 -29
- package/{esm2020 → esm2022}/lib/Pages/sectors/sectors.component.mjs +15 -15
- package/esm2022/lib/Pages/sectors/sectors.module.mjs +96 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/Enums/ADType.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/Enums/Enums.mjs +54 -54
- package/{esm2020 → esm2022}/lib/Pages/shared/Enums/ProviderType.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/shared/Enums/WFActivityType.mjs +11 -11
- package/{esm2020 → esm2022}/lib/Pages/shared/Enums/configuration/ConditionRHSType.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/Enums/configuration/authentecation-configuration.mjs +18 -18
- package/{esm2020 → esm2022}/lib/Pages/shared/Pipes/survey-date.pipe.mjs +22 -22
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/AccountService.service.mjs +55 -55
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/ActiveDirectoryService.service.mjs +51 -51
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/AnonymousLayoutService.service.mjs +29 -29
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/ConfigurationsService.service.mjs +61 -61
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/DepartmentService.service.mjs +46 -46
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/DocumentHeaderAndFooterTemplate.service.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/DocumentTemplateService.service.mjs +81 -81
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.mjs +37 -37
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/ErrorService.service.mjs +15 -15
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/GlobalErrorHandler.service.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/HelpCenterService.service.mjs +47 -47
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/HttpErrorInterceptor.service.mjs +47 -47
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/ImpersonationRuleService.service.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/JobsService.service.mjs +21 -21
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/LicenseService.service.mjs +24 -24
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/LogsService.mjs +24 -24
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/LookupGroupsService.service.mjs +33 -33
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/LookupService.service.mjs +67 -67
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/PermissionSetService.service.mjs +50 -50
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/PermissionsService.service.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/PublicHolidayService.service.mjs +39 -39
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/SectorService.service.mjs +46 -46
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/TemplateService.service.mjs +90 -90
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/WorkFlowVersionService.service.mjs +24 -24
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/WorkflowActivityService.service.mjs +54 -54
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/WorkflowInstanceService.service.mjs +24 -24
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/WorkflowLogVariablesService.service.mjs +24 -24
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/WorkflowService.service.mjs +38 -38
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/WorkflowVariablesService.service.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/data.service.mjs +27 -27
- package/esm2022/lib/Pages/shared/Services/injectionModuleService.service.mjs +163 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/localizationsService.service .mjs +77 -77
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/provider.service.mjs +62 -62
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/survey-question.service.mjs +57 -57
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/survey.service.mjs +140 -140
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/userService.service.mjs +80 -80
- package/{esm2020 → esm2022}/lib/Pages/shared/base.service.mjs +19 -19
- package/{esm2020 → esm2022}/lib/Pages/shared/components/AdDirective.mjs +16 -16
- package/{esm2020 → esm2022}/lib/Pages/shared/components/external-url/external-url.component.mjs +168 -168
- package/{esm2020 → esm2022}/lib/Pages/shared/components/no-results/no-results.component.mjs +19 -19
- package/esm2022/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +192 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.mjs +48 -48
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.mjs +50 -50
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.mjs +217 -217
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.mjs +47 -47
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.mjs +49 -49
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.mjs +50 -50
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.mjs +624 -624
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.mjs +47 -47
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.mjs +683 -683
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/preview/preview.component.mjs +138 -138
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.mjs +102 -102
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/result-question/result.component.mjs +56 -56
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/survey-info.component.mjs +532 -532
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.mjs +113 -113
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.mjs +114 -114
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey.component.mjs +292 -292
- package/esm2022/lib/Pages/shared/components/survey-form/survey-form.component.mjs +696 -0
- package/esm2022/lib/Pages/shared/components/survey-form-item/survey-form-item.component.mjs +84 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey-layout/survey-layout.component.mjs +15 -15
- package/{esm2020 → esm2022}/lib/Pages/shared/config/environment.mjs +11 -11
- package/esm2022/lib/Pages/shared/constants.mjs +130 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/filter/filter.component.mjs +14 -14
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ADModels/ADMappingModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ADModels/ActiveDirectoryAddEditModel.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/shared/models/AccountModels/forgotPasswordModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.mjs +50 -50
- package/{esm2020 → esm2022}/lib/Pages/shared/models/DepartmentModels/DepartmentModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/DepartmentModels/DepartmentUsersIDRequestModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/DocumentsModels/DocumentExportDTO.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/DocumentsModels/DocumentHeaderAndFooterTemplate.mjs +9 -9
- package/{esm2020 → esm2022}/lib/Pages/shared/models/DocumentsModels/DocumentTemplateDTO.mjs +9 -9
- package/{esm2020 → esm2022}/lib/Pages/shared/models/DocumentsModels/DocumentTemplateInfoDTO.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/HelpCenterModels/HelpCenterItemModel.mjs +11 -11
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ImpersonationRuleModels/ParticipantModel.mjs +8 -8
- package/{esm2020 → esm2022}/lib/Pages/shared/models/InjectedModuleModel/InjectedModule.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/shared/models/JobModels/JobCountsModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/LicenseModel/LicenseModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/LocalizationModels/EditResourceModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/LocalizationModels/LocalizationReplaceTextModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/LocalizationModels/UploadJsonVM.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/Lookups/LookupGroupModel.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/shared/models/Lookups/LookupItem.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/Lookups/LookupModel.mjs +8 -8
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/EmailHeaderAndFooterTemplate.mjs +10 -10
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/EmailTemplateInfoDTO.mjs +11 -11
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/EmailTemplateTesterModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/SMSTemplateInfoDTO.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/SMSTemplateTesterModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/SendEmailTemplateModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/TemplateDTO.mjs +9 -9
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/TemplateEditViewModel.mjs +8 -8
- package/{esm2020 → esm2022}/lib/Pages/shared/models/PermissionsModels/PermissionModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/PermissionsModels/PermissionSetUsersIDRequestModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ProviderModels/DefaultProviderModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ProviderModels/EmailProviderTesterModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ProviderModels/ProviderAttributeModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ProviderModels/ProviderModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ProviderModels/SMSProviderTesterModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/PublicHolidayModels/PublicHolidayModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SectorModels/SectorDepartmentModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SectorModels/SectorModel.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/DeleteSurveyDTO.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/add-survey-submissio.mjs +13 -13
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/add-survey.mjs +10 -10
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/model.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/survey-field-options.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/survey-filed-value.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/survey-form-options.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/survey-publish.mjs +4 -4
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/survey-question-option.mjs +17 -17
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/survey-question.mjs +10 -10
- package/esm2022/lib/Pages/shared/models/SurveyModels/survey-utils.mjs +8 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/models/UserModels/ActivationModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/UserModels/AddUserModel.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/shared/models/UserModels/DropdownsResponseModel.mjs +11 -11
- package/{esm2020 → esm2022}/lib/Pages/shared/models/UserModels/EditUserModel.mjs +8 -8
- package/{esm2020 → esm2022}/lib/Pages/shared/models/UserModels/IdentityModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/UserModels/UserSearchParamDTO.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/UserModels/UsersIDRequestModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/WorkflowModels/VariableLookupModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/WorkflowModels/WFActivityModel.mjs +16 -16
- package/{esm2020 → esm2022}/lib/Pages/shared/models/WorkflowModels/WFActivityOutcomeModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/WorkflowModels/WFActivityVariablesModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/WorkflowModels/WFCreationModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/WorkflowModels/WFVariableModel.mjs +8 -8
- package/{esm2020 → esm2022}/lib/Pages/shared/models/user.registration.mjs +7 -7
- package/esm2022/lib/Pages/shared/modules/public-survey.module.mjs +68 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/modules/survey-routing.module.mjs +39 -39
- package/esm2022/lib/Pages/shared/modules/survey.module.mjs +129 -0
- package/esm2022/lib/Pages/shared/shared.module.mjs +31 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/stylesbundle.service.mjs +44 -44
- package/{esm2020 → esm2022}/lib/Pages/start/index/index.component.mjs +25 -25
- package/{esm2020 → esm2022}/lib/Pages/start/start-routing.module.mjs +22 -22
- package/{esm2020 → esm2022}/lib/Pages/start/start.module.mjs +31 -31
- package/esm2022/lib/Pages/users/users.component.mjs +806 -0
- package/esm2022/lib/Pages/users/users.module.mjs +86 -0
- package/{esm2020 → esm2022}/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.mjs +535 -535
- package/{esm2020 → esm2022}/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.mjs +840 -840
- package/{esm2020 → esm2022}/lib/Pages/workflows/instance-info/instance-info.component.mjs +302 -302
- package/esm2022/lib/Pages/workflows/tabs/tabs.component.mjs +793 -0
- package/{esm2020 → esm2022}/lib/Pages/workflows/version-info/version-info.component.mjs +137 -137
- package/esm2022/lib/Pages/workflows/workflow/workflow.component.mjs +209 -0
- package/{esm2020 → esm2022}/lib/Pages/workflows/workflows-routing.module.mjs +35 -35
- package/{esm2020 → esm2022}/lib/Pages/workflows/workflows.component.mjs +15 -15
- package/esm2022/lib/Pages/workflows/workflows.module.mjs +103 -0
- package/{esm2020 → esm2022}/lib/_metronic/configs/default-layout.config.mjs +95 -95
- package/{esm2020 → esm2022}/lib/_metronic/core/_utils/DomHelpers.mjs +270 -270
- package/{esm2020 → esm2022}/lib/_metronic/core/_utils/ElementAnimateUtil.mjs +166 -166
- package/esm2022/lib/_metronic/core/_utils/EventHandlerUtil.mjs +90 -0
- package/esm2022/lib/_metronic/core/_utils/_DOMEventHandlerUtil.mjs +49 -0
- package/esm2022/lib/_metronic/core/_utils/_DataUtil.mjs +48 -0
- package/{esm2020 → esm2022}/lib/_metronic/core/_utils/_ElementStyleUtil.mjs +16 -16
- package/{esm2020 → esm2022}/lib/_metronic/core/_utils/_TypesHelpers.mjs +48 -48
- package/{esm2020 → esm2022}/lib/_metronic/core/_utils/models/OffsetModel.mjs +1 -1
- package/{esm2020 → esm2022}/lib/_metronic/core/_utils/models/ViewPortModel.mjs +1 -1
- package/{esm2020 → esm2022}/lib/_metronic/core/components/MenuComponent.mjs +827 -827
- package/{esm2020 → esm2022}/lib/_metronic/core/components/_CookieComponent.mjs +52 -52
- package/esm2022/lib/_metronic/core/components/_DrawerComponent.mjs +288 -0
- package/{esm2020 → esm2022}/lib/_metronic/core/components/_ScrollComponent.mjs +252 -252
- package/esm2022/lib/_metronic/core/components/_ScrollTopComponent.mjs +113 -0
- package/esm2022/lib/_metronic/core/components/_ToggleComponent.mjs +157 -0
- package/{esm2020 → esm2022}/lib/_metronic/core/services/layout-init.service.mjs +155 -155
- package/{esm2020 → esm2022}/lib/_metronic/core/services/layout.service.mjs +150 -150
- package/esm2022/lib/_metronic/core/services/page-info.service.mjs +119 -0
- package/esm2022/lib/masterlayout-routing.module.mjs +41 -0
- package/{esm2020 → esm2022}/lib/masterlayout.component.mjs +118 -118
- package/esm2022/lib/masterlayout.module.mjs +188 -0
- package/{esm2020 → esm2022}/public-api.mjs +48 -48
- package/{fesm2020 → fesm2022}/bnsights-bbsf-admin-portal.mjs +26884 -26881
- package/fesm2022/bnsights-bbsf-admin-portal.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/Pages/ActiveDirectories/active-directories.component.d.ts +8 -8
- package/lib/Pages/ActiveDirectories/active-directory/active-directory.component.d.ts +85 -87
- package/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.d.ts +97 -99
- package/lib/Pages/ActiveDirectories/active-directory-routing.module.d.ts +7 -7
- package/lib/Pages/ActiveDirectories/active-directory.module.d.ts +26 -26
- package/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.d.ts +13 -13
- package/lib/Pages/_layout/components/aside/aside.component.d.ts +24 -24
- package/lib/Pages/_layout/components/content/content.component.d.ts +13 -13
- package/lib/Pages/_layout/components/footer/footer.component.d.ts +14 -14
- package/lib/Pages/_layout/components/header/header.component.d.ts +24 -24
- package/lib/Pages/_layout/components/header/page-title/page-title.component.d.ts +22 -22
- package/lib/Pages/_layout/components/scripts-init/scripts-init.component.d.ts +18 -18
- package/lib/Pages/_layout/components/subheader/subheader.component.d.ts +17 -17
- package/lib/Pages/_layout/components/subheader/subheader.module.d.ts +9 -9
- package/lib/Pages/_layout/components/toolbar/toolbar.component.d.ts +18 -18
- package/lib/Pages/_layout/components/toolbar/toolbar.module.d.ts +10 -10
- package/lib/Pages/_layout/components/topbar/topbar.component.d.ts +44 -44
- package/lib/Pages/anonymouslayout/activation/activation.component.d.ts +32 -32
- package/lib/Pages/anonymouslayout/anonymouslayout-routing.module.d.ts +7 -7
- package/lib/Pages/anonymouslayout/anonymouslayout.component.d.ts +24 -24
- package/lib/Pages/anonymouslayout/anonymouslayout.module.d.ts +21 -21
- package/lib/Pages/anonymouslayout/error/error.component.d.ts +25 -25
- package/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.d.ts +24 -24
- package/lib/Pages/anonymouslayout/login/login.component.d.ts +36 -36
- package/lib/Pages/anonymouslayout/rest-password/rest-password.component.d.ts +32 -32
- package/lib/Pages/anonymouslayout/upload-license/upload-license.component.d.ts +25 -25
- package/lib/Pages/authentication/auth-callback/auth-callback.component.d.ts +21 -21
- package/lib/Pages/authentication/authentication.component.d.ts +8 -8
- package/lib/Pages/authentication/authentication.module.d.ts +12 -12
- package/lib/Pages/authentication/authentication.routing.d.ts +7 -7
- package/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.d.ts +75 -75
- package/lib/Pages/configurations/auth-configuration/auth-configuration.component.d.ts +57 -58
- package/lib/Pages/configurations/configuration/configuration.component.d.ts +127 -129
- package/lib/Pages/configurations/configurations.component.d.ts +8 -8
- package/lib/Pages/configurations/configurations.module.d.ts +24 -24
- package/lib/Pages/configurations/configurations.routing.d.ts +7 -7
- package/lib/Pages/configurations/index.d.ts +6 -6
- package/lib/Pages/core/auth.module.d.ts +8 -8
- package/lib/Pages/core/authentication/admin.guard.d.ts +9 -9
- package/lib/Pages/core/authentication/auth.guard.d.ts +14 -14
- package/lib/Pages/core/authentication/auth.service.d.ts +35 -35
- package/lib/Pages/departments/department/department.component.d.ts +66 -68
- package/lib/Pages/departments/department-info/department-info.component.d.ts +58 -60
- package/lib/Pages/departments/departments-routing.module.d.ts +7 -7
- package/lib/Pages/departments/departments.component.d.ts +8 -8
- package/lib/Pages/departments/departments.module.d.ts +21 -21
- package/lib/Pages/documents/{add/add.component.d.ts → add-document/add-document.component.d.ts} +40 -40
- package/lib/Pages/documents/document-master-layouts/document-master-layouts.component.d.ts +51 -53
- package/lib/Pages/documents/document-template-info/document-template-info.component.d.ts +67 -67
- package/lib/Pages/documents/document-templates/document-templates.component.d.ts +87 -89
- package/lib/Pages/documents/documents.component.d.ts +8 -8
- package/lib/Pages/documents/documents.module.d.ts +27 -27
- package/lib/Pages/documents/documents.routing.d.ts +7 -7
- package/lib/Pages/documents/{edit/edit.component.d.ts → edit-document/edit-document.component.d.ts} +42 -42
- package/lib/Pages/documents/edit-document-template/edit-document-template.component.d.ts +39 -39
- package/lib/Pages/empty-data/empty-data.component.d.ts +14 -14
- package/lib/Pages/empty-data/empty-data.module.d.ts +8 -8
- package/lib/Pages/helpCenter/help-center/help-center.component.d.ts +69 -71
- package/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.d.ts +23 -23
- package/lib/Pages/helpCenter/help-center-routing.module.d.ts +7 -7
- package/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.d.ts +65 -67
- package/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.d.ts +64 -66
- package/lib/Pages/helpCenter/help-center.module.d.ts +25 -25
- package/lib/Pages/helpCenter/help-centers.component.d.ts +8 -8
- package/lib/Pages/home/filter-pipe.d.ts +7 -7
- package/lib/Pages/home/home.component.d.ts +19 -19
- package/lib/Pages/home/home.module.d.ts +14 -14
- package/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.d.ts +86 -88
- package/lib/Pages/impersonation-rules/impersonation-rules.module.d.ts +19 -19
- package/lib/Pages/jobs/jobs/jobs.component.d.ts +76 -77
- package/lib/Pages/jobs/jobs.module.d.ts +17 -17
- package/lib/Pages/license/license/license.component.d.ts +59 -59
- package/lib/Pages/license/license.module.d.ts +15 -15
- package/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.d.ts +53 -53
- package/lib/Pages/localizations/localizations.component.d.ts +108 -110
- package/lib/Pages/localizations/localizations.module.d.ts +18 -18
- package/lib/Pages/logs/log/log.component.d.ts +34 -34
- package/lib/Pages/logs/logs-routing.module.d.ts +7 -7
- package/lib/Pages/logs/logs.component.d.ts +8 -8
- package/lib/Pages/logs/logs.module.d.ts +20 -20
- package/lib/Pages/lookups/lookup/lookup.component.d.ts +83 -85
- package/lib/Pages/lookups/lookup-group/lookup-group.component.d.ts +58 -60
- package/lib/Pages/lookups/lookup-item/lookup-item.component.d.ts +84 -86
- package/lib/Pages/lookups/lookups-routing.module.d.ts +7 -7
- package/lib/Pages/lookups/lookups.component.d.ts +8 -8
- package/lib/Pages/lookups/lookups.module.d.ts +24 -24
- package/lib/Pages/notifications/{add/add.component.d.ts → add-notification/add-notification.component.d.ts} +33 -33
- package/lib/Pages/notifications/edit-email/edit-email.component.d.ts +43 -43
- package/lib/Pages/notifications/{edit/edit.component.d.ts → edit-notification/edit-notification.component.d.ts} +35 -35
- package/lib/Pages/notifications/edit-sms/edit-sms.component.d.ts +37 -37
- package/lib/Pages/notifications/master-layouts/master-layouts.component.d.ts +51 -53
- package/lib/Pages/notifications/notifications-routing.module.d.ts +7 -7
- package/lib/Pages/notifications/notifications.component.d.ts +8 -8
- package/lib/Pages/notifications/notifications.module.d.ts +28 -28
- package/lib/Pages/notifications/template-info/template-info.component.d.ts +86 -86
- package/lib/Pages/notifications/templates/templates.component.d.ts +100 -102
- package/lib/Pages/providers/provider/provider.component.d.ts +118 -120
- package/lib/Pages/providers/providers-routing.module.d.ts +7 -7
- package/lib/Pages/providers/providers.component.d.ts +8 -8
- package/lib/Pages/providers/providers.module.d.ts +21 -21
- package/lib/Pages/publicHolidays/public-holiday/public-holiday.component.d.ts +73 -75
- package/lib/Pages/publicHolidays/public-holidays-routing.module.d.ts +7 -7
- package/lib/Pages/publicHolidays/public-holidays.component.d.ts +8 -8
- package/lib/Pages/publicHolidays/public-holidays.module.d.ts +21 -21
- package/lib/Pages/roles/permission-set-info/permission-set-info.component.d.ts +56 -58
- package/lib/Pages/roles/permissions/permissions.component.d.ts +63 -65
- package/lib/Pages/roles/permissionsets/permissionsets.component.d.ts +67 -69
- package/lib/Pages/roles/roles-routing.module.d.ts +7 -7
- package/lib/Pages/roles/roles.component.d.ts +8 -8
- package/lib/Pages/roles/roles.module.d.ts +24 -24
- package/lib/Pages/sectors/sector/sector.component.d.ts +62 -64
- package/lib/Pages/sectors/sector-info/sector-info.component.d.ts +60 -62
- package/lib/Pages/sectors/{department-info/department-info.component.d.ts → sectors-department-info/sectors-department-info.component.d.ts} +61 -63
- package/lib/Pages/sectors/sectors-routing.module.d.ts +7 -7
- package/lib/Pages/sectors/sectors.component.d.ts +8 -8
- package/lib/Pages/sectors/sectors.module.d.ts +23 -23
- package/lib/Pages/shared/Enums/ADType.d.ts +4 -4
- package/lib/Pages/shared/Enums/Enums.d.ts +47 -47
- package/lib/Pages/shared/Enums/ProviderType.d.ts +5 -5
- package/lib/Pages/shared/Enums/WFActivityType.d.ts +10 -10
- package/lib/Pages/shared/Enums/configuration/ConditionRHSType.d.ts +4 -4
- package/lib/Pages/shared/Enums/configuration/authentecation-configuration.d.ts +15 -15
- package/lib/Pages/shared/Pipes/survey-date.pipe.d.ts +12 -12
- package/lib/Pages/shared/Services/AccountService.service.d.ts +21 -21
- package/lib/Pages/shared/Services/ActiveDirectoryService.service.d.ts +18 -18
- package/lib/Pages/shared/Services/AnonymousLayoutService.service.d.ts +17 -17
- package/lib/Pages/shared/Services/ConfigurationsService.service.d.ts +20 -20
- package/lib/Pages/shared/Services/DepartmentService.service.d.ts +18 -18
- package/lib/Pages/shared/Services/DocumentHeaderAndFooterTemplate.service.d.ts +15 -15
- package/lib/Pages/shared/Services/DocumentTemplateService.service.d.ts +26 -26
- package/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.d.ts +15 -15
- package/lib/Pages/shared/Services/ErrorService.service.d.ts +8 -8
- package/lib/Pages/shared/Services/GlobalErrorHandler.service.d.ts +10 -10
- package/lib/Pages/shared/Services/HelpCenterService.service.d.ts +18 -18
- package/lib/Pages/shared/Services/HttpErrorInterceptor.service.d.ts +12 -12
- package/lib/Pages/shared/Services/ImpersonationRuleService.service.d.ts +15 -15
- package/lib/Pages/shared/Services/JobsService.service.d.ts +10 -10
- package/lib/Pages/shared/Services/LicenseService.service.d.ts +12 -12
- package/lib/Pages/shared/Services/LogsService.d.ts +10 -10
- package/lib/Pages/shared/Services/LookupGroupsService.service.d.ts +14 -14
- package/lib/Pages/shared/Services/LookupService.service.d.ts +25 -25
- package/lib/Pages/shared/Services/PermissionSetService.service.d.ts +19 -19
- package/lib/Pages/shared/Services/PermissionsService.service.d.ts +15 -15
- package/lib/Pages/shared/Services/PublicHolidayService.service.d.ts +16 -16
- package/lib/Pages/shared/Services/SectorService.service.d.ts +18 -18
- package/lib/Pages/shared/Services/TemplateService.service.d.ts +34 -34
- package/lib/Pages/shared/Services/WorkFlowVersionService.service.d.ts +10 -10
- package/lib/Pages/shared/Services/WorkflowActivityService.service.d.ts +19 -19
- package/lib/Pages/shared/Services/WorkflowInstanceService.service.d.ts +10 -10
- package/lib/Pages/shared/Services/WorkflowLogVariablesService.service.d.ts +10 -10
- package/lib/Pages/shared/Services/WorkflowService.service.d.ts +15 -15
- package/lib/Pages/shared/Services/WorkflowVariablesService.service.d.ts +15 -15
- package/lib/Pages/shared/Services/data.service.d.ts +9 -9
- package/lib/Pages/shared/Services/injectionModuleService.service.d.ts +50 -50
- package/lib/Pages/shared/Services/localizationsService.service .d.ts +28 -28
- package/lib/Pages/shared/Services/provider.service.d.ts +25 -25
- package/lib/Pages/shared/Services/survey-question.service.d.ts +19 -19
- package/lib/Pages/shared/Services/survey.service.d.ts +38 -38
- package/lib/Pages/shared/Services/userService.service.d.ts +29 -29
- package/lib/Pages/shared/base.service.d.ts +4 -4
- package/lib/Pages/shared/components/AdDirective.d.ts +8 -8
- package/lib/Pages/shared/components/external-url/external-url.component.d.ts +61 -61
- package/lib/Pages/shared/components/no-results/no-results.component.d.ts +10 -10
- package/lib/Pages/shared/components/survey/add-survey/add-survey.component.d.ts +40 -40
- package/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.d.ts +19 -19
- package/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.d.ts +19 -19
- package/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.d.ts +43 -43
- package/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.d.ts +19 -19
- package/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.d.ts +19 -19
- package/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.d.ts +19 -19
- package/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.d.ts +83 -83
- package/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.d.ts +19 -19
- package/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.d.ts +84 -84
- package/lib/Pages/shared/components/survey/survey-info/preview/preview.component.d.ts +40 -40
- package/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.d.ts +31 -31
- package/lib/Pages/shared/components/survey/survey-info/result-question/result.component.d.ts +27 -27
- package/lib/Pages/shared/components/survey/survey-info/survey-info.component.d.ts +119 -119
- package/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.d.ts +39 -39
- package/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.d.ts +32 -32
- package/lib/Pages/shared/components/survey/survey.component.d.ts +65 -65
- package/lib/Pages/shared/components/survey-form/survey-form.component.d.ts +41 -41
- package/lib/Pages/shared/components/survey-form-item/survey-form-item.component.d.ts +23 -23
- package/lib/Pages/shared/components/survey-layout/survey-layout.component.d.ts +8 -8
- package/lib/Pages/shared/config/environment.d.ts +1 -1
- package/lib/Pages/shared/constants.d.ts +129 -129
- package/lib/Pages/shared/filter/filter.component.d.ts +8 -8
- package/lib/Pages/shared/models/ADModels/ADMappingModel.d.ts +6 -6
- package/lib/Pages/shared/models/ADModels/ActiveDirectoryAddEditModel.d.ts +28 -28
- package/lib/Pages/shared/models/AccountModels/forgotPasswordModel.d.ts +3 -3
- package/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.d.ts +64 -64
- package/lib/Pages/shared/models/DepartmentModels/DepartmentModel.d.ts +9 -9
- package/lib/Pages/shared/models/DepartmentModels/DepartmentUsersIDRequestModel.d.ts +4 -4
- package/lib/Pages/shared/models/DocumentsModels/DocumentExportDTO.d.ts +8 -8
- package/lib/Pages/shared/models/DocumentsModels/DocumentHeaderAndFooterTemplate.d.ts +16 -16
- package/lib/Pages/shared/models/DocumentsModels/DocumentTemplateDTO.d.ts +13 -13
- package/lib/Pages/shared/models/DocumentsModels/DocumentTemplateInfoDTO.d.ts +7 -7
- package/lib/Pages/shared/models/HelpCenterModels/HelpCenterItemModel.d.ts +17 -17
- package/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.d.ts +9 -9
- package/lib/Pages/shared/models/ImpersonationRuleModels/ParticipantModel.d.ts +15 -15
- package/lib/Pages/shared/models/InjectedModuleModel/InjectedModule.d.ts +5 -5
- package/lib/Pages/shared/models/JobModels/JobCountsModel.d.ts +8 -8
- package/lib/Pages/shared/models/LicenseModel/LicenseModel.d.ts +5 -5
- package/lib/Pages/shared/models/LocalizationModels/EditResourceModel.d.ts +7 -7
- package/lib/Pages/shared/models/LocalizationModels/LocalizationReplaceTextModel.d.ts +9 -9
- package/lib/Pages/shared/models/LocalizationModels/UploadJsonVM.d.ts +5 -5
- package/lib/Pages/shared/models/Lookups/LookupGroupModel.d.ts +5 -5
- package/lib/Pages/shared/models/Lookups/LookupItem.d.ts +13 -13
- package/lib/Pages/shared/models/Lookups/LookupModel.d.ts +13 -13
- package/lib/Pages/shared/models/NotificationsModels/EmailHeaderAndFooterTemplate.d.ts +9 -9
- package/lib/Pages/shared/models/NotificationsModels/EmailTemplateInfoDTO.d.ts +15 -15
- package/lib/Pages/shared/models/NotificationsModels/EmailTemplateTesterModel.d.ts +9 -9
- package/lib/Pages/shared/models/NotificationsModels/SMSTemplateInfoDTO.d.ts +9 -9
- package/lib/Pages/shared/models/NotificationsModels/SMSTemplateTesterModel.d.ts +9 -9
- package/lib/Pages/shared/models/NotificationsModels/SendEmailTemplateModel.d.ts +8 -8
- package/lib/Pages/shared/models/NotificationsModels/TemplateDTO.d.ts +22 -22
- package/lib/Pages/shared/models/NotificationsModels/TemplateEditViewModel.d.ts +11 -11
- package/lib/Pages/shared/models/PermissionsModels/PermissionModel.d.ts +8 -8
- package/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.d.ts +10 -10
- package/lib/Pages/shared/models/PermissionsModels/PermissionSetUsersIDRequestModel.d.ts +4 -4
- package/lib/Pages/shared/models/ProviderModels/DefaultProviderModel.d.ts +6 -6
- package/lib/Pages/shared/models/ProviderModels/EmailProviderTesterModel.d.ts +7 -7
- package/lib/Pages/shared/models/ProviderModels/ProviderAttributeModel.d.ts +7 -7
- package/lib/Pages/shared/models/ProviderModels/ProviderModel.d.ts +13 -13
- package/lib/Pages/shared/models/ProviderModels/SMSProviderTesterModel.d.ts +6 -6
- package/lib/Pages/shared/models/PublicHolidayModels/PublicHolidayModel.d.ts +15 -15
- package/lib/Pages/shared/models/SectorModels/SectorDepartmentModel.d.ts +4 -4
- package/lib/Pages/shared/models/SectorModels/SectorModel.d.ts +6 -6
- package/lib/Pages/shared/models/SurveyModels/DeleteSurveyDTO.d.ts +3 -3
- package/lib/Pages/shared/models/SurveyModels/add-survey-submissio.d.ts +21 -21
- package/lib/Pages/shared/models/SurveyModels/add-survey.d.ts +18 -18
- package/lib/Pages/shared/models/SurveyModels/model.d.ts +3 -3
- package/lib/Pages/shared/models/SurveyModels/survey-field-options.d.ts +24 -24
- package/lib/Pages/shared/models/SurveyModels/survey-filed-value.d.ts +22 -22
- package/lib/Pages/shared/models/SurveyModels/survey-form-options.d.ts +8 -8
- package/lib/Pages/shared/models/SurveyModels/survey-publish.d.ts +15 -15
- package/lib/Pages/shared/models/SurveyModels/survey-question-option.d.ts +9 -9
- package/lib/Pages/shared/models/SurveyModels/survey-question.d.ts +21 -21
- package/lib/Pages/shared/models/SurveyModels/survey-utils.d.ts +5 -5
- package/lib/Pages/shared/models/UserModels/ActivationModel.d.ts +10 -10
- package/lib/Pages/shared/models/UserModels/AddUserModel.d.ts +33 -33
- package/lib/Pages/shared/models/UserModels/DropdownsResponseModel.d.ts +9 -9
- package/lib/Pages/shared/models/UserModels/EditUserModel.d.ts +25 -25
- package/lib/Pages/shared/models/UserModels/IdentityModel.d.ts +9 -9
- package/lib/Pages/shared/models/UserModels/UserSearchParamDTO.d.ts +8 -8
- package/lib/Pages/shared/models/UserModels/UsersIDRequestModel.d.ts +3 -3
- package/lib/Pages/shared/models/WorkflowModels/VariableLookupModel.d.ts +9 -9
- package/lib/Pages/shared/models/WorkflowModels/WFActivityModel.d.ts +40 -40
- package/lib/Pages/shared/models/WorkflowModels/WFActivityOutcomeModel.d.ts +13 -13
- package/lib/Pages/shared/models/WorkflowModels/WFActivityVariablesModel.d.ts +13 -13
- package/lib/Pages/shared/models/WorkflowModels/WFCreationModel.d.ts +10 -10
- package/lib/Pages/shared/models/WorkflowModels/WFVariableModel.d.ts +23 -23
- package/lib/Pages/shared/models/user.registration.d.ts +6 -6
- package/lib/Pages/shared/modules/public-survey.module.d.ts +15 -15
- package/lib/Pages/shared/modules/survey-routing.module.d.ts +7 -7
- package/lib/Pages/shared/modules/survey.module.d.ts +35 -35
- package/lib/Pages/shared/shared.module.d.ts +8 -8
- package/lib/Pages/shared/stylesbundle.service.d.ts +9 -9
- package/lib/Pages/start/index/index.component.d.ts +15 -15
- package/lib/Pages/start/start-routing.module.d.ts +7 -7
- package/lib/Pages/start/start.module.d.ts +11 -11
- package/lib/Pages/users/users.component.d.ts +138 -139
- package/lib/Pages/users/users.module.d.ts +18 -18
- package/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.d.ts +77 -77
- package/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.d.ts +82 -82
- package/lib/Pages/workflows/instance-info/instance-info.component.d.ts +81 -81
- package/lib/Pages/workflows/tabs/tabs.component.d.ts +126 -128
- package/lib/Pages/workflows/version-info/version-info.component.d.ts +41 -41
- package/lib/Pages/workflows/workflow/workflow.component.d.ts +54 -55
- package/lib/Pages/workflows/workflows-routing.module.d.ts +7 -7
- package/lib/Pages/workflows/workflows.component.d.ts +8 -8
- package/lib/Pages/workflows/workflows.module.d.ts +27 -27
- package/lib/_metronic/configs/default-layout.config.d.ts +139 -139
- package/lib/_metronic/core/_utils/DomHelpers.d.ts +26 -26
- package/lib/_metronic/core/_utils/ElementAnimateUtil.d.ts +13 -13
- package/lib/_metronic/core/_utils/EventHandlerUtil.d.ts +20 -20
- package/lib/_metronic/core/_utils/_DOMEventHandlerUtil.d.ts +6 -6
- package/lib/_metronic/core/_utils/_DataUtil.d.ts +8 -8
- package/lib/_metronic/core/_utils/_ElementStyleUtil.d.ts +5 -5
- package/lib/_metronic/core/_utils/_TypesHelpers.d.ts +10 -10
- package/lib/_metronic/core/_utils/models/OffsetModel.d.ts +4 -4
- package/lib/_metronic/core/_utils/models/ViewPortModel.d.ts +4 -4
- package/lib/_metronic/core/components/MenuComponent.d.ts +88 -88
- package/lib/_metronic/core/components/_CookieComponent.d.ts +25 -25
- package/lib/_metronic/core/components/_DrawerComponent.d.ts +49 -49
- package/lib/_metronic/core/components/_ScrollComponent.d.ts +31 -31
- package/lib/_metronic/core/components/_ScrollTopComponent.d.ts +24 -24
- package/lib/_metronic/core/components/_ToggleComponent.d.ts +36 -36
- package/lib/_metronic/core/services/layout-init.service.d.ts +18 -18
- package/lib/_metronic/core/services/layout.service.d.ts +38 -38
- package/lib/_metronic/core/services/page-info.service.d.ts +32 -32
- package/lib/masterlayout-routing.module.d.ts +11 -13
- package/lib/masterlayout.component.d.ts +63 -63
- package/lib/masterlayout.module.d.ts +34 -34
- package/package.json +25 -30
- package/public-api.d.ts +41 -41
- package/src/lib/assets/images/menu/Tools.svg +10 -4
- package/src/lib/assets/images/menu/authentication.svg +9 -0
- package/src/lib/assets/sass/style-rtl.scss +3 -3
- package/src/lib/assets/sass/style.scss +3 -3
- package/bnsights-bbsf-admin-portal-1.1.2.tgz +0 -0
- package/esm2020/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +0 -421
- package/esm2020/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.mjs +0 -528
- package/esm2020/lib/Pages/ActiveDirectories/active-directory.module.mjs +0 -108
- package/esm2020/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.mjs +0 -23
- package/esm2020/lib/Pages/anonymouslayout/anonymouslayout.module.mjs +0 -100
- package/esm2020/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +0 -330
- package/esm2020/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +0 -157
- package/esm2020/lib/Pages/configurations/configuration/configuration.component.mjs +0 -801
- package/esm2020/lib/Pages/configurations/configurations.module.mjs +0 -104
- package/esm2020/lib/Pages/core/authentication/admin.guard.mjs +0 -17
- package/esm2020/lib/Pages/core/authentication/auth.service.mjs +0 -147
- package/esm2020/lib/Pages/departments/department/department.component.mjs +0 -220
- package/esm2020/lib/Pages/departments/department-info/department-info.component.mjs +0 -185
- package/esm2020/lib/Pages/departments/departments.module.mjs +0 -94
- package/esm2020/lib/Pages/documents/add/add.component.mjs +0 -136
- package/esm2020/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs +0 -148
- package/esm2020/lib/Pages/documents/document-templates/document-templates.component.mjs +0 -437
- package/esm2020/lib/Pages/documents/documents.module.mjs +0 -114
- package/esm2020/lib/Pages/documents/documents.routing.mjs +0 -37
- package/esm2020/lib/Pages/documents/edit/edit.component.mjs +0 -169
- package/esm2020/lib/Pages/helpCenter/help-center/help-center.component.mjs +0 -294
- package/esm2020/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.mjs +0 -43
- package/esm2020/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.mjs +0 -242
- package/esm2020/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +0 -243
- package/esm2020/lib/Pages/helpCenter/help-center.module.mjs +0 -98
- package/esm2020/lib/Pages/home/home.component.mjs +0 -153
- package/esm2020/lib/Pages/home/home.module.mjs +0 -48
- package/esm2020/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +0 -443
- package/esm2020/lib/Pages/impersonation-rules/impersonation-rules.module.mjs +0 -95
- package/esm2020/lib/Pages/jobs/jobs/jobs.component.mjs +0 -223
- package/esm2020/lib/Pages/jobs/jobs.module.mjs +0 -87
- package/esm2020/lib/Pages/license/license.module.mjs +0 -71
- package/esm2020/lib/Pages/localizations/localizations.component.mjs +0 -516
- package/esm2020/lib/Pages/localizations/localizations.module.mjs +0 -79
- package/esm2020/lib/Pages/logs/logs.module.mjs +0 -87
- package/esm2020/lib/Pages/lookups/lookup/lookup.component.mjs +0 -367
- package/esm2020/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +0 -187
- package/esm2020/lib/Pages/lookups/lookup-item/lookup-item.component.mjs +0 -297
- package/esm2020/lib/Pages/lookups/lookups.module.mjs +0 -100
- package/esm2020/lib/Pages/notifications/add/add.component.mjs +0 -104
- package/esm2020/lib/Pages/notifications/edit/edit.component.mjs +0 -133
- package/esm2020/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +0 -148
- package/esm2020/lib/Pages/notifications/notifications-routing.module.mjs +0 -39
- package/esm2020/lib/Pages/notifications/notifications.module.mjs +0 -101
- package/esm2020/lib/Pages/notifications/templates/templates.component.mjs +0 -495
- package/esm2020/lib/Pages/providers/provider/provider.component.mjs +0 -615
- package/esm2020/lib/Pages/providers/providers.module.mjs +0 -91
- package/esm2020/lib/Pages/publicHolidays/public-holiday/public-holiday.component.mjs +0 -334
- package/esm2020/lib/Pages/publicHolidays/public-holidays.module.mjs +0 -94
- package/esm2020/lib/Pages/roles/permission-set-info/permission-set-info.component.mjs +0 -187
- package/esm2020/lib/Pages/roles/permissions/permissions.component.mjs +0 -226
- package/esm2020/lib/Pages/roles/permissionsets/permissionsets.component.mjs +0 -277
- package/esm2020/lib/Pages/roles/roles.module.mjs +0 -105
- package/esm2020/lib/Pages/sectors/department-info/department-info.component.mjs +0 -187
- package/esm2020/lib/Pages/sectors/sector/sector.component.mjs +0 -193
- package/esm2020/lib/Pages/sectors/sector-info/sector-info.component.mjs +0 -180
- package/esm2020/lib/Pages/sectors/sectors.module.mjs +0 -96
- package/esm2020/lib/Pages/shared/Enums/WFVariableDataType.mjs +0 -14
- package/esm2020/lib/Pages/shared/Services/injectionModuleService.service.mjs +0 -163
- package/esm2020/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +0 -192
- package/esm2020/lib/Pages/shared/components/survey-form/survey-form.component.mjs +0 -696
- package/esm2020/lib/Pages/shared/components/survey-form-item/survey-form-item.component.mjs +0 -84
- package/esm2020/lib/Pages/shared/constants.mjs +0 -130
- package/esm2020/lib/Pages/shared/models/SurveyModels/survey-utils.mjs +0 -8
- package/esm2020/lib/Pages/shared/modules/public-survey.module.mjs +0 -68
- package/esm2020/lib/Pages/shared/modules/survey.module.mjs +0 -126
- package/esm2020/lib/Pages/shared/shared.module.mjs +0 -31
- package/esm2020/lib/Pages/users/users.component.mjs +0 -806
- package/esm2020/lib/Pages/users/users.module.mjs +0 -86
- package/esm2020/lib/Pages/workflows/tabs/tabs.component.mjs +0 -793
- package/esm2020/lib/Pages/workflows/workflow/workflow.component.mjs +0 -209
- package/esm2020/lib/Pages/workflows/workflows.module.mjs +0 -103
- package/esm2020/lib/_metronic/core/_utils/EventHandlerUtil.mjs +0 -90
- package/esm2020/lib/_metronic/core/_utils/_DOMEventHandlerUtil.mjs +0 -49
- package/esm2020/lib/_metronic/core/_utils/_DataUtil.mjs +0 -48
- package/esm2020/lib/_metronic/core/components/_DrawerComponent.mjs +0 -290
- package/esm2020/lib/_metronic/core/components/_ScrollTopComponent.mjs +0 -113
- package/esm2020/lib/_metronic/core/components/_ToggleComponent.mjs +0 -157
- package/esm2020/lib/_metronic/core/services/page-info.service.mjs +0 -119
- package/esm2020/lib/masterlayout-routing.module.mjs +0 -45
- package/esm2020/lib/masterlayout.module.mjs +0 -188
- package/fesm2015/bnsights-bbsf-admin-portal.mjs +0 -27293
- package/fesm2015/bnsights-bbsf-admin-portal.mjs.map +0 -1
- package/fesm2020/bnsights-bbsf-admin-portal.mjs.map +0 -1
- package/lib/Pages/shared/Enums/WFVariableDataType.d.ts +0 -12
|
@@ -1,332 +1,332 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { AppBaseComponent, ControlLayout, DataType, DropdownOptions, EnglishArabicDTO, FormOptions, InputType, MultiLingualTextAreaOptions, MultiLingualTextBoxOptions, RepeaterField, RepeaterOptions, TextAreaOptions, TextBoxOptions, } from '@bnsights/bbsf-controls';
|
|
3
|
-
import { FormGroup } from '@angular/forms';
|
|
4
|
-
import { PageInfoService } from '../../../_metronic/core/services/page-info.service';
|
|
5
|
-
import { DocumentTemplateDTO } from '../../shared/models/DocumentsModels/DocumentTemplateDTO';
|
|
6
|
-
import { saveAs } from 'file-saver';
|
|
7
|
-
import { DocumentExportDTO, DocumentExportItemDTO, } from '../../shared/models/DocumentsModels/DocumentExportDTO';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@bnsights/bbsf-utilities";
|
|
10
|
-
import * as i2 from "ngx-clipboard";
|
|
11
|
-
import * as i3 from "../../shared/Services/DocumentTemplateService.service";
|
|
12
|
-
import * as i4 from "@angular/router";
|
|
13
|
-
import * as i5 from "../../../_metronic/core/services/page-info.service";
|
|
14
|
-
import * as i6 from "@ng-bootstrap/ng-bootstrap";
|
|
15
|
-
import * as i7 from "@angular/common";
|
|
16
|
-
import * as i8 from "@angular/forms";
|
|
17
|
-
import * as i9 from "ng-block-ui";
|
|
18
|
-
import * as i10 from "@bnsights/bbsf-controls";
|
|
19
|
-
import * as i11 from "ng-inline-svg";
|
|
20
|
-
export class DocumentTemplateInfoComponent extends AppBaseComponent {
|
|
21
|
-
constructor(injector, utilityService, bbsfTranslateService, _clipboardService, templateService, activatedRoute, pageInfoService, modalService, datepipe, requestHandlerService, wordDocumentService) {
|
|
22
|
-
super(injector);
|
|
23
|
-
this.injector = injector;
|
|
24
|
-
this.utilityService = utilityService;
|
|
25
|
-
this.bbsfTranslateService = bbsfTranslateService;
|
|
26
|
-
this._clipboardService = _clipboardService;
|
|
27
|
-
this.templateService = templateService;
|
|
28
|
-
this.activatedRoute = activatedRoute;
|
|
29
|
-
this.pageInfoService = pageInfoService;
|
|
30
|
-
this.modalService = modalService;
|
|
31
|
-
this.datepipe = datepipe;
|
|
32
|
-
this.requestHandlerService = requestHandlerService;
|
|
33
|
-
this.wordDocumentService = wordDocumentService;
|
|
34
|
-
this.TemplateIdEnc = '';
|
|
35
|
-
this.isDataLoaded = false;
|
|
36
|
-
this.saveAs = saveAs;
|
|
37
|
-
this.exportType = 1;
|
|
38
|
-
//Required lists
|
|
39
|
-
this.CategoryList = [];
|
|
40
|
-
this.OrganizationList = [];
|
|
41
|
-
this.MasterLayoutList = [];
|
|
42
|
-
//GenerateCode Model Controls
|
|
43
|
-
this.GenerateCodeForm = new FormGroup({});
|
|
44
|
-
this.ValueToCopy = '';
|
|
45
|
-
//Edit Model Controls
|
|
46
|
-
this.EditTemplateForm = new FormGroup({});
|
|
47
|
-
//Test Export Model Controls
|
|
48
|
-
this.TestExportDocumentForm = new FormGroup({});
|
|
49
|
-
this.TestExportDocumentFormOptions = new FormOptions();
|
|
50
|
-
this.getEditTemplateModel = () => {
|
|
51
|
-
let paramArray = [];
|
|
52
|
-
let ResultModel = this.EditTemplateForm.value;
|
|
53
|
-
let EditModel = new DocumentTemplateDTO();
|
|
54
|
-
EditModel.ID_GUID = this.TemplateId;
|
|
55
|
-
EditModel.Name.Arabic = ResultModel.Name.Arabic;
|
|
56
|
-
EditModel.Name.English = ResultModel.Name.English;
|
|
57
|
-
EditModel.SysName = ResultModel.SysName;
|
|
58
|
-
EditModel.DocumentHeaderAndFooterTemplateID_GUID =
|
|
59
|
-
ResultModel.DocumentHeaderAndFooterTemplateID_GUID;
|
|
60
|
-
EditModel.Description.English = ResultModel.Description.English;
|
|
61
|
-
EditModel.Description.Arabic = ResultModel.Description.Arabic;
|
|
62
|
-
EditModel.OrganizationID_GUID = ResultModel.OrganizationID_GUID;
|
|
63
|
-
EditModel.CategoryItemID_GUID = ResultModel.CategoryItemID_GUID;
|
|
64
|
-
paramArray.push(EditModel);
|
|
65
|
-
return paramArray;
|
|
66
|
-
};
|
|
67
|
-
this.getEditTemplateFunction = (EditModel) => {
|
|
68
|
-
return this.templateService.editDocumentTemplate(EditModel);
|
|
69
|
-
};
|
|
70
|
-
this.getTestExportDocumentModel = () => {
|
|
71
|
-
let paramArray = [];
|
|
72
|
-
let ResultModel = this.TestExportDocumentForm.value;
|
|
73
|
-
let ExportDocumentTemplateModel = new DocumentExportDTO();
|
|
74
|
-
ExportDocumentTemplateModel.ID_GUID = this.TemplateId;
|
|
75
|
-
let result = [];
|
|
76
|
-
for (let index = 0; index < this.addKeyValueRepeaterOptions.RepeaterValue.length; index++) {
|
|
77
|
-
const element = this.addKeyValueRepeaterOptions.RepeaterValue[index];
|
|
78
|
-
if (element.Key && element.Value) {
|
|
79
|
-
let item = new DocumentExportItemDTO();
|
|
80
|
-
item.Key = element.Key;
|
|
81
|
-
item.Value = element.Value;
|
|
82
|
-
result.push(item);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
ExportDocumentTemplateModel.Items = result;
|
|
86
|
-
paramArray.push(ExportDocumentTemplateModel);
|
|
87
|
-
return paramArray;
|
|
88
|
-
};
|
|
89
|
-
this.getTestExportDocumentFunction = (ExportDocumentTemplateModel) => {
|
|
90
|
-
if (this.exportType == 2)
|
|
91
|
-
return this.templateService.exportWord(ExportDocumentTemplateModel);
|
|
92
|
-
return this.templateService.exportPDF(ExportDocumentTemplateModel);
|
|
93
|
-
};
|
|
94
|
-
this.onSuccessExportHandler = async (result) => {
|
|
95
|
-
let now = new Date().toISOString();
|
|
96
|
-
let latest_date = this.datepipe.transform(now, 'dd-MM-yyyy HH.mm');
|
|
97
|
-
if (this.exportType == 2) {
|
|
98
|
-
let fileName = this.TemplateInfo.localizedTemplateName + '_' + latest_date + '.doc';
|
|
99
|
-
var fileBufferLib = await this.wordDocumentService.generateWordByteFile(result);
|
|
100
|
-
this.downloadWord(fileBufferLib, "Lib" + fileName);
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
let fileName = this.TemplateInfo.localizedTemplateName + '_' + latest_date + '.pdf';
|
|
104
|
-
this.downloadPDF(result, fileName);
|
|
105
|
-
};
|
|
106
|
-
this.activatedRoute.params.subscribe((params) => {
|
|
107
|
-
this.TemplateId = params['id'];
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
async ngOnInit() {
|
|
111
|
-
this.utilityService.startBlockUI();
|
|
112
|
-
this.bbsfTranslateService.onLangChange.subscribe((event) => {
|
|
113
|
-
this.utilityService.stopBlockUI();
|
|
114
|
-
this.ngOnInit();
|
|
115
|
-
});
|
|
116
|
-
this.ProductionMode = this.environmentService.getProductionMode();
|
|
117
|
-
this.initializePage();
|
|
118
|
-
}
|
|
119
|
-
//Initialize page info
|
|
120
|
-
initializePage() {
|
|
121
|
-
this.isDataLoaded = false;
|
|
122
|
-
this.templateService
|
|
123
|
-
.getTemplateInfo(this.TemplateId)
|
|
124
|
-
.subscribe((result) => {
|
|
125
|
-
let Result = result;
|
|
126
|
-
this.TemplateInfo = Result.val;
|
|
127
|
-
PageInfoService.PageTitle = this.TemplateInfo.localizedTemplateName;
|
|
128
|
-
PageInfoService.PageBreadcrumbs = [
|
|
129
|
-
{
|
|
130
|
-
title: this.utilityService.getResourceValue('Home'),
|
|
131
|
-
path: '/Admin/Home',
|
|
132
|
-
isSeparator: false,
|
|
133
|
-
isActive: false,
|
|
134
|
-
},
|
|
135
|
-
{ title: '', path: '', isSeparator: true, isActive: false },
|
|
136
|
-
{
|
|
137
|
-
title: this.utilityService.getResourceValue('Templates'),
|
|
138
|
-
path: '/Admin/Documents/Templates',
|
|
139
|
-
isSeparator: false,
|
|
140
|
-
isActive: false,
|
|
141
|
-
},
|
|
142
|
-
{ title: '', path: '', isSeparator: true, isActive: false },
|
|
143
|
-
];
|
|
144
|
-
this.isDataLoaded = true;
|
|
145
|
-
this.utilityService.stopBlockUI();
|
|
146
|
-
this.pageInfoService.calculateTitle();
|
|
147
|
-
this.pageInfoService.calculateBreadcrumbs();
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
//Generate Code
|
|
151
|
-
showGenerateCodeByIdModal(GenerateCodeModal) {
|
|
152
|
-
this.templateService
|
|
153
|
-
.generateCodeById(this.TemplateId)
|
|
154
|
-
.subscribe((result) => {
|
|
155
|
-
var Value = result;
|
|
156
|
-
this.GenerateCodeTextArea = new TextAreaOptions();
|
|
157
|
-
this.GenerateCodeTextArea.Name = 'GenerateCodeTextArea';
|
|
158
|
-
this.GenerateCodeTextArea.Value = Value.val.toString();
|
|
159
|
-
this.ValueToCopy = Value.val.toString();
|
|
160
|
-
this.GenerateCodeTextArea.IsDisabled = true;
|
|
161
|
-
this.GenerateCodeTextArea.HideLabel = true;
|
|
162
|
-
this.GenerateCodeTextArea.Rows = 20;
|
|
163
|
-
this.GenerateCodeTextArea.Cols = 20;
|
|
164
|
-
this.GenerateCodeTextArea.MaxLength = 1000000;
|
|
165
|
-
this.modalService.open(GenerateCodeModal);
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
showGenerateUpdateCodeByIdModal(GenerateCodeModal) {
|
|
169
|
-
this.GenerateCodeForm = new FormGroup({});
|
|
170
|
-
this.templateService
|
|
171
|
-
.generateUpdateCodeById(this.TemplateId)
|
|
172
|
-
.subscribe((result) => {
|
|
173
|
-
var Value = result;
|
|
174
|
-
this.GenerateCodeTextArea = new TextAreaOptions();
|
|
175
|
-
this.GenerateCodeTextArea.Name = 'GenerateCodeTextArea';
|
|
176
|
-
this.GenerateCodeTextArea.Value = Value.val.toString();
|
|
177
|
-
this.ValueToCopy = Value.val.toString();
|
|
178
|
-
this.GenerateCodeTextArea.IsDisabled = true;
|
|
179
|
-
this.GenerateCodeTextArea.HideLabel = true;
|
|
180
|
-
this.GenerateCodeTextArea.Rows = 20;
|
|
181
|
-
this.GenerateCodeTextArea.Cols = 20;
|
|
182
|
-
this.GenerateCodeTextArea.MaxLength = 1000000;
|
|
183
|
-
this.modalService.open(GenerateCodeModal);
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
copyInputMessage() {
|
|
187
|
-
this._clipboardService.copy(this.ValueToCopy.toString());
|
|
188
|
-
}
|
|
189
|
-
//Edit Template
|
|
190
|
-
//Edit Template
|
|
191
|
-
showEditTemplateModal(EditTemplateModal) {
|
|
192
|
-
this.utilityService.startBlockUI();
|
|
193
|
-
this.templateService
|
|
194
|
-
.getEditTemplateData(this.TemplateId)
|
|
195
|
-
.subscribe((result) => {
|
|
196
|
-
let resultObj = result;
|
|
197
|
-
let template = resultObj.model;
|
|
198
|
-
let lists = resultObj.lists;
|
|
199
|
-
this.OrganizationList = lists.organization;
|
|
200
|
-
this.MasterLayoutList = lists.documentHeaderAndFooterTemplate;
|
|
201
|
-
this.CategoryList = lists.lookUpItemsCategory;
|
|
202
|
-
this.EditTemplateForm = new FormGroup({});
|
|
203
|
-
this.EditTemplateFormOptions = new FormOptions();
|
|
204
|
-
this.EditTemplateFormOptions.FormGroup = this.EditTemplateForm;
|
|
205
|
-
this.EditTemplateFormOptions.GetModelFunction =
|
|
206
|
-
this.getEditTemplateModel;
|
|
207
|
-
this.EditTemplateFormOptions.ServiceSubmitFunction =
|
|
208
|
-
this.getEditTemplateFunction;
|
|
209
|
-
let Name = new EnglishArabicDTO();
|
|
210
|
-
Name.Arabic = template.name.arabic;
|
|
211
|
-
Name.English = template.name.english;
|
|
212
|
-
this.EditName = new MultiLingualTextBoxOptions();
|
|
213
|
-
this.EditName.Name = 'Name';
|
|
214
|
-
this.EditName.ArabicLabelKey = 'NameInArabic';
|
|
215
|
-
this.EditName.EnglishLabelKey = 'NameInEnglish';
|
|
216
|
-
this.EditName.IsRequired = true;
|
|
217
|
-
this.EditName.Value = Name;
|
|
218
|
-
this.EditName.MaxLength = 100;
|
|
219
|
-
this.EditSysName = new TextBoxOptions();
|
|
220
|
-
this.EditSysName.Name = 'SysName';
|
|
221
|
-
this.EditSysName.LabelKey = 'SysName';
|
|
222
|
-
this.EditSysName.Type = InputType.Text;
|
|
223
|
-
this.EditSysName.Value = template.sysName;
|
|
224
|
-
this.EditSysName.MaxLength = 100;
|
|
225
|
-
let description = new EnglishArabicDTO();
|
|
226
|
-
description.Arabic = template.description.arabic;
|
|
227
|
-
description.English = template.description.english;
|
|
228
|
-
this.EditDescription = new MultiLingualTextAreaOptions();
|
|
229
|
-
this.EditDescription.Name = 'Description';
|
|
230
|
-
this.EditDescription.ArabicLabelKey = 'DescriptionInArabic';
|
|
231
|
-
this.EditDescription.EnglishLabelKey = 'DescriptionInEnglish';
|
|
232
|
-
this.EditDescription.Value = description;
|
|
233
|
-
this.EditDescription.MaxLength = 250;
|
|
234
|
-
this.EditOrganization = new DropdownOptions();
|
|
235
|
-
this.EditOrganization.Name = 'OrganizationID_GUID';
|
|
236
|
-
this.EditOrganization.LabelKey = 'Organization';
|
|
237
|
-
this.EditOrganization.DataSource = this.OrganizationList;
|
|
238
|
-
this.EditOrganization.SingleSelection = true;
|
|
239
|
-
this.EditOrganization.AllowSearchFilter = true;
|
|
240
|
-
this.EditOrganization.Placeholder = '';
|
|
241
|
-
this.EditOrganization.IsRequired = true;
|
|
242
|
-
this.EditOrganization.SelectedItems =
|
|
243
|
-
template.organizationID_GUID?.toLowerCase();
|
|
244
|
-
this.EditMasterLayout = new DropdownOptions();
|
|
245
|
-
this.EditMasterLayout.Name = 'DocumentHeaderAndFooterTemplateID_GUID';
|
|
246
|
-
this.EditMasterLayout.LabelKey = 'MasterLayout';
|
|
247
|
-
this.EditMasterLayout.DataSource = this.MasterLayoutList;
|
|
248
|
-
this.EditMasterLayout.SingleSelection = true;
|
|
249
|
-
this.EditMasterLayout.AllowSearchFilter = true;
|
|
250
|
-
this.EditMasterLayout.Placeholder = '';
|
|
251
|
-
this.EditMasterLayout.IsRequired = true;
|
|
252
|
-
this.EditMasterLayout.SelectedItems =
|
|
253
|
-
template.documentHeaderAndFooterTemplateID_GUID?.toLowerCase();
|
|
254
|
-
this.EditCategory = new DropdownOptions();
|
|
255
|
-
this.EditCategory.Name = 'CategoryItemID_GUID';
|
|
256
|
-
this.EditCategory.LabelKey = 'Category';
|
|
257
|
-
this.EditCategory.DataSource = this.CategoryList;
|
|
258
|
-
this.EditCategory.SingleSelection = true;
|
|
259
|
-
this.EditCategory.AllowSearchFilter = true;
|
|
260
|
-
this.EditCategory.Placeholder = '';
|
|
261
|
-
this.EditCategory.IsRequired = true;
|
|
262
|
-
this.EditCategory.SelectedItems =
|
|
263
|
-
template.categoryItemID_GUID?.toLowerCase();
|
|
264
|
-
this.modalService.open(EditTemplateModal);
|
|
265
|
-
this.utilityService.stopBlockUI();
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
//Test Send Email
|
|
269
|
-
showTestExportDocumentModal(TestExportDocumentModal, type = 1) {
|
|
270
|
-
this.exportType = type;
|
|
271
|
-
this.TestExportDocumentForm = new FormGroup({});
|
|
272
|
-
this.TestExportDocumentFormOptions = new FormOptions();
|
|
273
|
-
this.TestExportDocumentFormOptions.FormGroup = this.TestExportDocumentForm;
|
|
274
|
-
this.TestExportDocumentFormOptions.GetModelFunction =
|
|
275
|
-
this.getTestExportDocumentModel;
|
|
276
|
-
this.TestExportDocumentFormOptions.ServiceSubmitFunction =
|
|
277
|
-
this.getTestExportDocumentFunction;
|
|
278
|
-
this.TestExportDocumentFormOptions.OnSuccessHandler =
|
|
279
|
-
this.onSuccessExportHandler;
|
|
280
|
-
this.TestExportDocumentFormOptions.DisableSuccessNotification = true;
|
|
281
|
-
let Key = new TextBoxOptions();
|
|
282
|
-
Key.Name = 'Key';
|
|
283
|
-
Key.HideLabel = true;
|
|
284
|
-
Key.ViewType = ControlLayout.Vertical;
|
|
285
|
-
Key.Type = InputType.Text;
|
|
286
|
-
let Value = new TextBoxOptions();
|
|
287
|
-
Value.Name = 'Value';
|
|
288
|
-
Value.HideLabel = true;
|
|
289
|
-
Value.ViewType = ControlLayout.Vertical;
|
|
290
|
-
Value.Type = InputType.Text;
|
|
291
|
-
let KeyRepeater = new RepeaterField();
|
|
292
|
-
KeyRepeater.ControlType = DataType.Text;
|
|
293
|
-
KeyRepeater.ControlOptions = Key;
|
|
294
|
-
KeyRepeater.HeaderTitle = this.utilityService.getResourceValue('Key');
|
|
295
|
-
let ValueRepeater = new RepeaterField();
|
|
296
|
-
ValueRepeater.ControlType = DataType.Text;
|
|
297
|
-
ValueRepeater.ControlOptions = Value;
|
|
298
|
-
ValueRepeater.HeaderTitle = this.utilityService.getResourceValue('Value');
|
|
299
|
-
this.addKeyValueRepeaterOptions = new RepeaterOptions();
|
|
300
|
-
this.addKeyValueRepeaterOptions.IsRequired = false;
|
|
301
|
-
this.addKeyValueRepeaterOptions.Name = 'values';
|
|
302
|
-
this.addKeyValueRepeaterOptions.DeleteButtonExtraClasses =
|
|
303
|
-
'btn btn-danger btn-sm btn-icon';
|
|
304
|
-
this.addKeyValueRepeaterOptions.DeleteButtonText = `<i class="fa fa-trash"></i>`;
|
|
305
|
-
this.addKeyValueRepeaterOptions.RepeaterTableExtraClasses =
|
|
306
|
-
'table align-middle table-row-dashed fs-6 gy-9 dataTable no-footer validation-table-text';
|
|
307
|
-
this.addKeyValueRepeaterOptions.RepeaterTableRowExtraClasses =
|
|
308
|
-
'text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0';
|
|
309
|
-
this.addKeyValueRepeaterOptions.ActionLabelKey = 'Action';
|
|
310
|
-
this.addKeyValueRepeaterOptions.AddButtonExtraClasses =
|
|
311
|
-
'btn btn-primary btn-block';
|
|
312
|
-
this.addKeyValueRepeaterOptions.AddButtonText = `<i class="fa fa-plus"></i>${this.utilityService.getResourceValue('Add')}`;
|
|
313
|
-
this.addKeyValueRepeaterOptions.MinRequiredItems = 1;
|
|
314
|
-
this.addKeyValueRepeaterOptions.RepeaterValue = [];
|
|
315
|
-
this.addKeyValueRepeaterOptions.RepeaterStructure = [
|
|
316
|
-
KeyRepeater,
|
|
317
|
-
ValueRepeater,
|
|
318
|
-
];
|
|
319
|
-
this.modalService.open(TestExportDocumentModal);
|
|
320
|
-
}
|
|
321
|
-
//On destroy
|
|
322
|
-
ngOnDestroy() {
|
|
323
|
-
this.requestHandlerService.destroyHandler();
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
DocumentTemplateInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DocumentTemplateInfoComponent, deps: [{ token: i0.Injector }, { token: i1.UtilityService }, { token: i1.BBSFTranslateService }, { token: i2.ClipboardService }, { token: i3.DocumentTemplateService }, { token: i4.ActivatedRoute }, { token: i5.PageInfoService }, { token: i6.NgbModal }, { token: i7.DatePipe }, { token: i1.RequestHandlerService }, { token: i1.WordDocumentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
327
|
-
DocumentTemplateInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DocumentTemplateInfoComponent, selector: "lib-document-template-info", usesInheritance: true, ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n<div class=\"container-fluid\" *ngIf=\"isDataLoaded\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\">\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showEditTemplateModal(EditTemplateModal)\">\r\n <i class=\"fa fa fa-edit\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showTestExportDocumentModal(ExportDocumentModal)\">\r\n <i class=\"fa fa-file-pdf\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Export\")}} PDF</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showTestExportDocumentModal(ExportDocumentModal,2)\">\r\n <i class=\"fa fa-file-word\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Export\")}} Word</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-primary\" *ngIf=\"!ProductionMode\" (click)=\"showGenerateCodeByIdModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-bars\"></i>{{utilityService.getResourceValue(\"GenerateCode\")}}\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-primary\" *ngIf=\"!ProductionMode\" (click)=\"showGenerateUpdateCodeByIdModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key\"></i>{{utilityService.getResourceValue(\"GenerateUpdateCode\")}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center \">\r\n <!--begin::Option-->\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <!--begin::Heading-->\r\n <div class=\"mb-7 d-flex justify-content-between w-100\">\r\n <!--begin::Title-->\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'en']\" routerLinkActive=\"router-link-active\" class=\"text-primary mb-5\r\n fw-boldest fs-2\">\r\n English:\r\n {{TemplateInfo.templateNameEN}}\r\n </a>\r\n\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'en']\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <!--begin::Item-->\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3\">\r\n <div innerHTML=\"{{TemplateInfo.headerEN}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.bodyEN}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.footerEN}}\">\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--end::Select-->\r\n </div>\r\n <!--end::Option-->\r\n </div>\r\n </div>\r\n <div class=\"col-xl-6 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center\">\r\n <!--begin::Option-->\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <!--begin::Heading-->\r\n <div class=\"mb-7 d-flex justify-content-between w-100\">\r\n <!--begin::Title-->\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'ar']\" routerLinkActive=\"router-link-active\" class=\"text-primary mb-5\r\n fw-boldest fs-2\">\r\n Arabic:\r\n {{TemplateInfo.templateNameAR}}\r\n </a>\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'ar']\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <!--begin::Item-->\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3 ar\">\r\n <div innerHTML=\"{{TemplateInfo.headerAR}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.bodyAR}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.footerAR}}\">\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Select-->\r\n </div>\r\n <!--end::Option-->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- edit Modal -->\r\n<ng-template #EditTemplateModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn\r\n btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"Edit\")}}\r\n {{utilityService.getResourceValue(\"Template\")}}</h1>\r\n </div>\r\n\r\n <BBSF-Form [options]=\"EditTemplateFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"EditName\" [group]=\"EditTemplateForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextArea [options]=\"EditDescription\" [group]=\"EditTemplateForm\">\r\n </BBSF-MultiLingualTextArea>\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"!ProductionMode\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"EditSysName\" [group]=\"EditTemplateForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditOrganization\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditCategory\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditMasterLayout\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseEditTemplateModal id=\"CloseEditTemplateModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n\r\n<!-- Export Document Modal -->\r\n<ng-template #ExportDocumentModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"Export\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"TestExportDocumentFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-repeater-table [options]=\"addKeyValueRepeaterOptions\" [group]=\"TestExportDocumentForm\">\r\n </BBSF-repeater-table>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseSendEmailForm id=\"CloseSendEmailForm\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Export\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<!-- GenerateCode Modal -->\r\n<ng-template #GenerateCodeModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn\r\n btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"GenerateCode\")}}</h1>\r\n </div>\r\n <form [formGroup]=\"GenerateCodeForm\">\r\n\r\n <div class=\"Row\">\r\n <BBSF-TextArea [options]=\"GenerateCodeTextArea\" [group]=\"GenerateCodeForm\" #GenerateCodeInput>\r\n </BBSF-TextArea>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseGenerateCodeModal id=\"CloseGenerateCodeModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"copyInputMessage()\">\r\n {{utilityService.getResourceValue(\"CopyToClipboard\")}}\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n</ng-template>", dependencies: [{ kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i9.BlockUIComponent, selector: "block-ui", inputs: ["name", "template", "message", "delayStart", "delayStop"] }, { kind: "component", type: i10.MultiLingualTextBoxComponent, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i10.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange", "OnBlur"] }, { kind: "component", type: i10.TextAreaComponent, selector: "BBSF-TextArea", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i10.MultiLingualTextAreaComponent, selector: "BBSF-MultiLingualTextArea", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i10.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["OnChange", "onClear"] }, { kind: "component", type: i10.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["OnChange"] }, { kind: "component", type: i10.RepeaterTableComponent, selector: "BBSF-repeater-table", inputs: ["group", "options"] }, { kind: "directive", type: i11.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "forceEvalStyles", "evalScripts", "inlineSVG", "setSVGAttributes", "removeSVGAttributes", "fallbackImgUrl", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }] });
|
|
328
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
329
|
-
type: Component,
|
|
330
|
-
args: [{ selector: 'lib-document-template-info', template: "<block-ui></block-ui>\r\n\r\n<div class=\"container-fluid\" *ngIf=\"isDataLoaded\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\">\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showEditTemplateModal(EditTemplateModal)\">\r\n <i class=\"fa fa fa-edit\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showTestExportDocumentModal(ExportDocumentModal)\">\r\n <i class=\"fa fa-file-pdf\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Export\")}} PDF</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showTestExportDocumentModal(ExportDocumentModal,2)\">\r\n <i class=\"fa fa-file-word\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Export\")}} Word</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-primary\" *ngIf=\"!ProductionMode\" (click)=\"showGenerateCodeByIdModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-bars\"></i>{{utilityService.getResourceValue(\"GenerateCode\")}}\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-primary\" *ngIf=\"!ProductionMode\" (click)=\"showGenerateUpdateCodeByIdModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key\"></i>{{utilityService.getResourceValue(\"GenerateUpdateCode\")}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center \">\r\n <!--begin::Option-->\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <!--begin::Heading-->\r\n <div class=\"mb-7 d-flex justify-content-between w-100\">\r\n <!--begin::Title-->\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'en']\" routerLinkActive=\"router-link-active\" class=\"text-primary mb-5\r\n fw-boldest fs-2\">\r\n English:\r\n {{TemplateInfo.templateNameEN}}\r\n </a>\r\n\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'en']\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <!--begin::Item-->\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3\">\r\n <div innerHTML=\"{{TemplateInfo.headerEN}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.bodyEN}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.footerEN}}\">\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--end::Select-->\r\n </div>\r\n <!--end::Option-->\r\n </div>\r\n </div>\r\n <div class=\"col-xl-6 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center\">\r\n <!--begin::Option-->\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <!--begin::Heading-->\r\n <div class=\"mb-7 d-flex justify-content-between w-100\">\r\n <!--begin::Title-->\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'ar']\" routerLinkActive=\"router-link-active\" class=\"text-primary mb-5\r\n fw-boldest fs-2\">\r\n Arabic:\r\n {{TemplateInfo.templateNameAR}}\r\n </a>\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'ar']\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <!--begin::Item-->\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3 ar\">\r\n <div innerHTML=\"{{TemplateInfo.headerAR}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.bodyAR}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.footerAR}}\">\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Select-->\r\n </div>\r\n <!--end::Option-->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- edit Modal -->\r\n<ng-template #EditTemplateModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn\r\n btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"Edit\")}}\r\n {{utilityService.getResourceValue(\"Template\")}}</h1>\r\n </div>\r\n\r\n <BBSF-Form [options]=\"EditTemplateFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"EditName\" [group]=\"EditTemplateForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextArea [options]=\"EditDescription\" [group]=\"EditTemplateForm\">\r\n </BBSF-MultiLingualTextArea>\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"!ProductionMode\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"EditSysName\" [group]=\"EditTemplateForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditOrganization\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditCategory\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditMasterLayout\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseEditTemplateModal id=\"CloseEditTemplateModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n\r\n<!-- Export Document Modal -->\r\n<ng-template #ExportDocumentModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"Export\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"TestExportDocumentFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-repeater-table [options]=\"addKeyValueRepeaterOptions\" [group]=\"TestExportDocumentForm\">\r\n </BBSF-repeater-table>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseSendEmailForm id=\"CloseSendEmailForm\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Export\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<!-- GenerateCode Modal -->\r\n<ng-template #GenerateCodeModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn\r\n btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"GenerateCode\")}}</h1>\r\n </div>\r\n <form [formGroup]=\"GenerateCodeForm\">\r\n\r\n <div class=\"Row\">\r\n <BBSF-TextArea [options]=\"GenerateCodeTextArea\" [group]=\"GenerateCodeForm\" #GenerateCodeInput>\r\n </BBSF-TextArea>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseGenerateCodeModal id=\"CloseGenerateCodeModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"copyInputMessage()\">\r\n {{utilityService.getResourceValue(\"CopyToClipboard\")}}\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n</ng-template>" }]
|
|
331
|
-
}], ctorParameters:
|
|
332
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdGVtcGxhdGUtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2RvY3VtZW50cy9kb2N1bWVudC10ZW1wbGF0ZS1pbmZvL2RvY3VtZW50LXRlbXBsYXRlLWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9kb2N1bWVudHMvZG9jdW1lbnQtdGVtcGxhdGUtaW5mby9kb2N1bWVudC10ZW1wbGF0ZS1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIsYUFBYSxFQUViLFFBQVEsRUFDUixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxTQUFTLEVBQ1QsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUUxQixhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixjQUFjLEdBQ2YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBV3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRTlGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixxQkFBcUIsR0FDdEIsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU0vRCxNQUFNLE9BQU8sNkJBQ1gsU0FBUSxnQkFBZ0I7SUFzQ3hCLFlBQ1UsUUFBa0IsRUFDbkIsY0FBOEIs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SyxDQUNOLEVBQUUsQ0FBQztRQUNKLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGlCQUFpQixHQUFHO1lBQ2xELFdBQVc7WUFDWCxhQUFhO1NBQ2QsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQStDRCxZQUFZO0lBQ1osV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzsySEExV1UsNkJBQTZCOytHQUE3Qiw2QkFBNkIseUZDakQxQyxvbVdBd1BjOzRGRHZNRCw2QkFBNkI7a0JBSnpDLFNBQVM7K0JBQ0UsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtcclxuICBBcHBCYXNlQ29tcG9uZW50LFxyXG4gIENoZWNrQm94T3B0aW9ucyxcclxuICBDb250cm9sTGF5b3V0LFxyXG4gIENvdW50cnksXHJcbiAgRGF0YVR5cGUsXHJcbiAgRHJvcGRvd25PcHRpb25zLFxyXG4gIEVuZ2xpc2hBcmFiaWNEVE8sXHJcbiAgRm9ybU9wdGlvbnMsXHJcbiAgSW5wdXRUeXBlLFxyXG4gIE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucyxcclxuICBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucyxcclxuICBQaG9uZU9wdGlvbnMsXHJcbiAgUmVwZWF0ZXJGaWVsZCxcclxuICBSZXBlYXRlck9wdGlvbnMsXHJcbiAgVGV4dEFyZWFPcHRpb25zLFxyXG4gIFRleHRCb3hPcHRpb25zLFxyXG59IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgVGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL1RlbXBsYXRlU2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSAnbmd4LWNsaXBib2FyZCc7XHJcbmltcG9ydCB7IEVtYWlsVGVtcGxhdGVUZXN0ZXJNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTm90aWZpY2F0aW9uc01vZGVscy9FbWFpbFRlbXBsYXRlVGVzdGVyTW9kZWwnO1xyXG5pbXBvcnQgeyBTTVNUZW1wbGF0ZVRlc3Rlck1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Ob3RpZmljYXRpb25zTW9kZWxzL1NNU1RlbXBsYXRlVGVzdGVyTW9kZWwnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZURUTyB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTm90aWZpY2F0aW9uc01vZGVscy9UZW1wbGF0ZURUTyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7XHJcbiAgVXRpbGl0eVNlcnZpY2UsXHJcbiAgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gIFJlcXVlc3RIYW5kbGVyU2VydmljZSxcclxuICBXb3JkRG9jdW1lbnRTZXJ2aWNlLFxyXG59IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRG9jdW1lbnRUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvU2VydmljZXMvRG9jdW1lbnRUZW1wbGF0ZVNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50VGVtcGxhdGVEVE8gfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0RvY3VtZW50c01vZGVscy9Eb2N1bWVudFRlbXBsYXRlRFRPJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHtcclxuICBEb2N1bWVudEV4cG9ydERUTyxcclxuICBEb2N1bWVudEV4cG9ydEl0ZW1EVE8sXHJcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Eb2N1bWVudHNNb2RlbHMvRG9jdW1lbnRFeHBvcnREVE8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZG9jdW1lbnQtdGVtcGxhdGUtaW5mbycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50LXRlbXBsYXRlLWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRUZW1wbGF0ZUluZm9Db21wb25lbnRcclxuICBleHRlbmRzIEFwcEJhc2VDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIFByb2R1Y3Rpb25Nb2RlOiBib29sZWFuO1xyXG4gIFRlbXBsYXRlSWQ6IHN0cmluZztcclxuICBUZW1wbGF0ZUlkRW5jOiBzdHJpbmcgPSAnJztcclxuICBUZW1wbGF0ZUluZm86IGFueTtcclxuICBUZW1wbGF0ZTogYW55O1xyXG4gIGlzRGF0YUxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNhdmVBcyA9IHNhdmVBcztcclxuICBleHBvcnRUeXBlOiBudW1iZXIgPSAxO1xyXG4gIC8vUmVxdWlyZWQgbGlzdHNcclxuICBDYXRlZ29yeUxpc3QgPSBbXTtcclxuICBPcmdhbml6YXRpb25MaXN0ID0gW107XHJcbiAgTWFzdGVyTGF5b3V0TGlzdCA9IFtdO1xyXG5cclxuICAvL0dlbmVyYXRlQ29kZSAgTW9kZWwgQ29udHJvbHNcclxuICBHZW5lcmF0ZUNvZGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgSXNPcGVuR2VuZXJhdGVDb2RlTW9kYWw6IGJvb2xlYW47XHJcbiAgR2VuZXJhdGVDb2RlVGV4dEFyZWE6IFRleHRBcmVhT3B0aW9ucztcclxuICBWYWx1ZVRvQ29weTogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8vRWRpdCBNb2RlbCBDb250cm9sc1xyXG4gIEVkaXRUZW1wbGF0ZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBFZGl0VGVtcGxhdGVGb3JtT3B0aW9uczogRm9ybU9wdGlvbnM7XHJcbiAgRWRpdE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zO1xyXG4gIEVkaXRTeXNOYW1lOiBUZXh0Qm94T3B0aW9ucztcclxuICBFZGl0RGVzY3JpcHRpb246IE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucztcclxuICBFZGl0T3JnYW5pemF0aW9uOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgRWRpdENhdGVnb3J5OiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgRWRpdE1hc3RlckxheW91dDogRHJvcGRvd25PcHRpb25zO1xyXG5cclxuICAvL1Rlc3QgRXhwb3J0IE1vZGVsIENvbnRyb2xzXHJcbiAgVGVzdEV4cG9ydERvY3VtZW50Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIFRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnM6IFJlcGVhdGVyT3B0aW9ucztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYmJzZlRyYW5zbGF0ZVNlcnZpY2U6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIF9jbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRlbXBsYXRlU2VydmljZTogRG9jdW1lbnRUZW1wbGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHVibGljIHBhZ2VJbmZvU2VydmljZTogUGFnZUluZm9TZXJ2aWNlLFxyXG4gICAgcHVibGljIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXHJcbiAgICBwdWJsaWMgZGF0ZXBpcGU6IERhdGVQaXBlLFxyXG4gICAgcHVibGljIHJlcXVlc3RIYW5kbGVyU2VydmljZTogUmVxdWVzdEhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIHdvcmREb2N1bWVudFNlcnZpY2U6V29yZERvY3VtZW50U2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcclxuICAgICAgdGhpcy5UZW1wbGF0ZUlkID0gcGFyYW1zWydpZCddO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICB0aGlzLmJic2ZUcmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLlByb2R1Y3Rpb25Nb2RlID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0UHJvZHVjdGlvbk1vZGUoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuICB9XHJcblxyXG4gIC8vSW5pdGlhbGl6ZSBwYWdlIGluZm9cclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIHRoaXMuaXNEYXRhTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnRlbXBsYXRlU2VydmljZVxyXG4gICAgICAuZ2V0VGVtcGxhdGVJbmZvKHRoaXMuVGVtcGxhdGVJZClcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgbGV0IFJlc3VsdDogYW55ID0gcmVzdWx0O1xyXG4gICAgICAgIHRoaXMuVGVtcGxhdGVJbmZvID0gUmVzdWx0LnZhbDtcclxuICAgICAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy5UZW1wbGF0ZUluZm8ubG9jYWxpemVkVGVtcGxhdGVOYW1lO1xyXG4gICAgICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnMgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0hvbWUnKSxcclxuICAgICAgICAgICAgcGF0aDogJy9BZG1pbi9Ib21lJyxcclxuICAgICAgICAgICAgaXNTZXBhcmF0b3I6IGZhbHNlLFxyXG4gICAgICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ1RlbXBsYXRlcycpLFxyXG4gICAgICAgICAgICBwYXRoOiAnL0FkbWluL0RvY3VtZW50cy9UZW1wbGF0ZXMnLFxyXG4gICAgICAgICAgICBpc1NlcGFyYXRvcjogZmFsc2UsXHJcbiAgICAgICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHRoaXMuaXNEYXRhTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICAgICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgICAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vR2VuZXJhdGUgQ29kZVxyXG4gIHNob3dHZW5lcmF0ZUNvZGVCeUlkTW9kYWwoR2VuZXJhdGVDb2RlTW9kYWwpIHtcclxuICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlXHJcbiAgICAgIC5nZW5lcmF0ZUNvZGVCeUlkKHRoaXMuVGVtcGxhdGVJZClcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgdmFyIFZhbHVlID0gcmVzdWx0IGFzIGFueTtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhID0gbmV3IFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuTmFtZSA9ICdHZW5lcmF0ZUNvZGVUZXh0QXJlYSc7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5WYWx1ZSA9IFZhbHVlLnZhbC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuVmFsdWVUb0NvcHkgPSBWYWx1ZS52YWwudG9TdHJpbmcoKTtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLklzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLlJvd3MgPSAyMDtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLkNvbHMgPSAyMDtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLk1heExlbmd0aCA9IDEwMDAwMDA7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihHZW5lcmF0ZUNvZGVNb2RhbCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2hvd0dlbmVyYXRlVXBkYXRlQ29kZUJ5SWRNb2RhbChHZW5lcmF0ZUNvZGVNb2RhbCkge1xyXG4gICAgdGhpcy5HZW5lcmF0ZUNvZGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICB0aGlzLnRlbXBsYXRlU2VydmljZVxyXG4gICAgICAuZ2VuZXJhdGVVcGRhdGVDb2RlQnlJZCh0aGlzLlRlbXBsYXRlSWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHZhciBWYWx1ZSA9IHJlc3VsdCBhcyBhbnk7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYSA9IG5ldyBUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLk5hbWUgPSAnR2VuZXJhdGVDb2RlVGV4dEFyZWEnO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuVmFsdWUgPSBWYWx1ZS52YWwudG9TdHJpbmcoKTtcclxuICAgICAgICB0aGlzLlZhbHVlVG9Db3B5ID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5Jc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5Sb3dzID0gMjA7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5Db2xzID0gMjA7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5NYXhMZW5ndGggPSAxMDAwMDAwO1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oR2VuZXJhdGVDb2RlTW9kYWwpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNvcHlJbnB1dE1lc3NhZ2UoKSB7XHJcbiAgICB0aGlzLl9jbGlwYm9hcmRTZXJ2aWNlLmNvcHkodGhpcy5WYWx1ZVRvQ29weS50b1N0cmluZygpKTtcclxuICB9XHJcbiAgLy9FZGl0IFRlbXBsYXRlXHJcbiAgLy9FZGl0IFRlbXBsYXRlXHJcbiAgc2hvd0VkaXRUZW1wbGF0ZU1vZGFsKEVkaXRUZW1wbGF0ZU1vZGFsKSB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpO1xyXG4gICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2VcclxuICAgICAgLmdldEVkaXRUZW1wbGF0ZURhdGEodGhpcy5UZW1wbGF0ZUlkKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICBsZXQgcmVzdWx0T2JqID0gcmVzdWx0IGFzIGFueTtcclxuICAgICAgICBsZXQgdGVtcGxhdGUgPSByZXN1bHRPYmoubW9kZWw7XHJcbiAgICAgICAgbGV0IGxpc3RzID0gcmVzdWx0T2JqLmxpc3RzO1xyXG4gICAgICAgIHRoaXMuT3JnYW5pemF0aW9uTGlzdCA9IGxpc3RzLm9yZ2FuaXphdGlvbjtcclxuICAgICAgICB0aGlzLk1hc3RlckxheW91dExpc3QgPSBsaXN0cy5kb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlO1xyXG4gICAgICAgIHRoaXMuQ2F0ZWdvcnlMaXN0ID0gbGlzdHMubG9va1VwSXRlbXNDYXRlZ29yeTtcclxuXHJcbiAgICAgICAgdGhpcy5FZGl0VGVtcGxhdGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICAgICAgdGhpcy5FZGl0VGVtcGxhdGVGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuRWRpdFRlbXBsYXRlRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5FZGl0VGVtcGxhdGVGb3JtO1xyXG4gICAgICAgIHRoaXMuRWRpdFRlbXBsYXRlRm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9XHJcbiAgICAgICAgICB0aGlzLmdldEVkaXRUZW1wbGF0ZU1vZGVsO1xyXG4gICAgICAgIHRoaXMuRWRpdFRlbXBsYXRlRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID1cclxuICAgICAgICAgIHRoaXMuZ2V0RWRpdFRlbXBsYXRlRnVuY3Rpb247XHJcbiAgICAgICAgbGV0IE5hbWUgPSBuZXcgRW5nbGlzaEFyYWJpY0RUTygpO1xyXG4gICAgICAgIE5hbWUuQXJhYmljID0gdGVtcGxhdGUubmFtZS5hcmFiaWM7XHJcbiAgICAgICAgTmFtZS5FbmdsaXNoID0gdGVtcGxhdGUubmFtZS5lbmdsaXNoO1xyXG5cclxuICAgICAgICB0aGlzLkVkaXROYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5FZGl0TmFtZS5OYW1lID0gJ05hbWUnO1xyXG4gICAgICAgIHRoaXMuRWRpdE5hbWUuQXJhYmljTGFiZWxLZXkgPSAnTmFtZUluQXJhYmljJztcclxuICAgICAgICB0aGlzLkVkaXROYW1lLkVuZ2xpc2hMYWJlbEtleSA9ICdOYW1lSW5FbmdsaXNoJztcclxuICAgICAgICB0aGlzLkVkaXROYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuRWRpdE5hbWUuVmFsdWUgPSBOYW1lO1xyXG4gICAgICAgIHRoaXMuRWRpdE5hbWUuTWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgICAgICB0aGlzLkVkaXRTeXNOYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5FZGl0U3lzTmFtZS5OYW1lID0gJ1N5c05hbWUnO1xyXG4gICAgICAgIHRoaXMuRWRpdFN5c05hbWUuTGFiZWxLZXkgPSAnU3lzTmFtZSc7XHJcbiAgICAgICAgdGhpcy5FZGl0U3lzTmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgdGhpcy5FZGl0U3lzTmFtZS5WYWx1ZSA9IHRlbXBsYXRlLnN5c05hbWU7XHJcbiAgICAgICAgdGhpcy5FZGl0U3lzTmFtZS5NYXhMZW5ndGggPSAxMDA7XHJcblxyXG4gICAgICAgIGxldCBkZXNjcmlwdGlvbiA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgICAgZGVzY3JpcHRpb24uQXJhYmljID0gdGVtcGxhdGUuZGVzY3JpcHRpb24uYXJhYmljO1xyXG4gICAgICAgIGRlc2NyaXB0aW9uLkVuZ2xpc2ggPSB0ZW1wbGF0ZS5kZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG5cclxuICAgICAgICB0aGlzLkVkaXREZXNjcmlwdGlvbiA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLkVkaXREZXNjcmlwdGlvbi5OYW1lID0gJ0Rlc2NyaXB0aW9uJztcclxuICAgICAgICB0aGlzLkVkaXREZXNjcmlwdGlvbi5BcmFiaWNMYWJlbEtleSA9ICdEZXNjcmlwdGlvbkluQXJhYmljJztcclxuICAgICAgICB0aGlzLkVkaXREZXNjcmlwdGlvbi5FbmdsaXNoTGFiZWxLZXkgPSAnRGVzY3JpcHRpb25JbkVuZ2xpc2gnO1xyXG4gICAgICAgIHRoaXMuRWRpdERlc2NyaXB0aW9uLlZhbHVlID0gZGVzY3JpcHRpb247XHJcbiAgICAgICAgdGhpcy5FZGl0RGVzY3JpcHRpb24uTWF4TGVuZ3RoID0gMjUwO1xyXG5cclxuICAgICAgICB0aGlzLkVkaXRPcmdhbml6YXRpb24gPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLk5hbWUgPSAnT3JnYW5pemF0aW9uSURfR1VJRCc7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLkxhYmVsS2V5ID0gJ09yZ2FuaXphdGlvbic7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLkRhdGFTb3VyY2UgPSB0aGlzLk9yZ2FuaXphdGlvbkxpc3Q7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkVkaXRPcmdhbml6YXRpb24uUGxhY2Vob2xkZXIgPSAnJztcclxuICAgICAgICB0aGlzLkVkaXRPcmdhbml6YXRpb24uSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLlNlbGVjdGVkSXRlbXMgPVxyXG4gICAgICAgICAgdGVtcGxhdGUub3JnYW5pemF0aW9uSURfR1VJRD8udG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5FZGl0TWFzdGVyTGF5b3V0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuRWRpdE1hc3RlckxheW91dC5OYW1lID0gJ0RvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVJRF9HVUlEJztcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQuTGFiZWxLZXkgPSAnTWFzdGVyTGF5b3V0JztcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQuRGF0YVNvdXJjZSA9IHRoaXMuTWFzdGVyTGF5b3V0TGlzdDtcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuRWRpdE1hc3RlckxheW91dC5QbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgICAgIHRoaXMuRWRpdE1hc3RlckxheW91dC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQuU2VsZWN0ZWRJdGVtcyA9XHJcbiAgICAgICAgICB0ZW1wbGF0ZS5kb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlSURfR1VJRD8udG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5FZGl0Q2F0ZWdvcnkgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5FZGl0Q2F0ZWdvcnkuTmFtZSA9ICdDYXRlZ29yeUl0ZW1JRF9HVUlEJztcclxuICAgICAgICB0aGlzLkVkaXRDYXRlZ29yeS5MYWJlbEtleSA9ICdDYXRlZ29yeSc7XHJcbiAgICAgICAgdGhpcy5FZGl0Q2F0ZWdvcnkuRGF0YVNvdXJjZSA9IHRoaXMuQ2F0ZWdvcnlMaXN0O1xyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5LlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5FZGl0Q2F0ZWdvcnkuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5LlBsYWNlaG9sZGVyID0gJyc7XHJcbiAgICAgICAgdGhpcy5FZGl0Q2F0ZWdvcnkuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5FZGl0Q2F0ZWdvcnkuU2VsZWN0ZWRJdGVtcyA9XHJcbiAgICAgICAgICB0ZW1wbGF0ZS5jYXRlZ29yeUl0ZW1JRF9HVUlEPy50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEVkaXRUZW1wbGF0ZU1vZGFsKTtcclxuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBnZXRFZGl0VGVtcGxhdGVNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5FZGl0VGVtcGxhdGVGb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIGxldCBFZGl0TW9kZWwgPSBuZXcgRG9jdW1lbnRUZW1wbGF0ZURUTygpO1xyXG4gICAgRWRpdE1vZGVsLklEX0dVSUQgPSB0aGlzLlRlbXBsYXRlSWQ7XHJcbiAgICBFZGl0TW9kZWwuTmFtZS5BcmFiaWMgPSBSZXN1bHRNb2RlbC5OYW1lLkFyYWJpYztcclxuICAgIEVkaXRNb2RlbC5OYW1lLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5OYW1lLkVuZ2xpc2g7XHJcbiAgICBFZGl0TW9kZWwuU3lzTmFtZSA9IFJlc3VsdE1vZGVsLlN5c05hbWU7XHJcbiAgICBFZGl0TW9kZWwuRG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZUlEX0dVSUQgPVxyXG4gICAgICBSZXN1bHRNb2RlbC5Eb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlSURfR1VJRDtcclxuICAgIEVkaXRNb2RlbC5EZXNjcmlwdGlvbi5FbmdsaXNoID0gUmVzdWx0TW9kZWwuRGVzY3JpcHRpb24uRW5nbGlzaDtcclxuICAgIEVkaXRNb2RlbC5EZXNjcmlwdGlvbi5BcmFiaWMgPSBSZXN1bHRNb2RlbC5EZXNjcmlwdGlvbi5BcmFiaWM7XHJcbiAgICBFZGl0TW9kZWwuT3JnYW5pemF0aW9uSURfR1VJRCA9IFJlc3VsdE1vZGVsLk9yZ2FuaXphdGlvbklEX0dVSUQ7XHJcbiAgICBFZGl0TW9kZWwuQ2F0ZWdvcnlJdGVtSURfR1VJRCA9IFJlc3VsdE1vZGVsLkNhdGVnb3J5SXRlbUlEX0dVSUQ7XHJcblxyXG4gICAgcGFyYW1BcnJheS5wdXNoKEVkaXRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9O1xyXG5cclxuICBnZXRFZGl0VGVtcGxhdGVGdW5jdGlvbiA9IChFZGl0TW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmVkaXREb2N1bWVudFRlbXBsYXRlKEVkaXRNb2RlbCk7XHJcbiAgfTtcclxuXHJcbiAgLy9UZXN0IFNlbmQgRW1haWxcclxuICBzaG93VGVzdEV4cG9ydERvY3VtZW50TW9kYWwoVGVzdEV4cG9ydERvY3VtZW50TW9kYWwsIHR5cGUgPSAxKSB7XHJcbiAgICB0aGlzLmV4cG9ydFR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy5UZXN0RXhwb3J0RG9jdW1lbnRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuVGVzdEV4cG9ydERvY3VtZW50Rm9ybTtcclxuICAgIHRoaXMuVGVzdEV4cG9ydERvY3VtZW50Rm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9XHJcbiAgICAgIHRoaXMuZ2V0VGVzdEV4cG9ydERvY3VtZW50TW9kZWw7XHJcbiAgICB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9XHJcbiAgICAgIHRoaXMuZ2V0VGVzdEV4cG9ydERvY3VtZW50RnVuY3Rpb247XHJcbiAgICB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zLk9uU3VjY2Vzc0hhbmRsZXIgPVxyXG4gICAgICB0aGlzLm9uU3VjY2Vzc0V4cG9ydEhhbmRsZXI7XHJcbiAgICB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zLkRpc2FibGVTdWNjZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICBsZXQgS2V5ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICBLZXkuTmFtZSA9ICdLZXknO1xyXG4gICAgS2V5LkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICBLZXkuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgS2V5LlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuXHJcbiAgICBsZXQgVmFsdWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIFZhbHVlLk5hbWUgPSAnVmFsdWUnO1xyXG4gICAgVmFsdWUuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgIFZhbHVlLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgIFZhbHVlLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuXHJcbiAgICBsZXQgS2V5UmVwZWF0ZXIgPSBuZXcgUmVwZWF0ZXJGaWVsZCgpO1xyXG4gICAgS2V5UmVwZWF0ZXIuQ29udHJvbFR5cGUgPSBEYXRhVHlwZS5UZXh0O1xyXG4gICAgS2V5UmVwZWF0ZXIuQ29udHJvbE9wdGlvbnMgPSBLZXk7XHJcbiAgICBLZXlSZXBlYXRlci5IZWFkZXJUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnS2V5Jyk7XHJcblxyXG4gICAgbGV0IFZhbHVlUmVwZWF0ZXIgPSBuZXcgUmVwZWF0ZXJGaWVsZCgpO1xyXG4gICAgVmFsdWVSZXBlYXRlci5Db250cm9sVHlwZSA9IERhdGFUeXBlLlRleHQ7XHJcbiAgICBWYWx1ZVJlcGVhdGVyLkNvbnRyb2xPcHRpb25zID0gVmFsdWU7XHJcbiAgICBWYWx1ZVJlcGVhdGVyLkhlYWRlclRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdWYWx1ZScpO1xyXG5cclxuICAgIHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMgPSBuZXcgUmVwZWF0ZXJPcHRpb25zKCk7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLklzUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMuTmFtZSA9ICd2YWx1ZXMnO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5EZWxldGVCdXR0b25FeHRyYUNsYXNzZXMgPVxyXG4gICAgICAnYnRuIGJ0bi1kYW5nZXIgYnRuLXNtIGJ0bi1pY29uJztcclxuICAgIHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMuRGVsZXRlQnV0dG9uVGV4dCA9IGA8aSBjbGFzcz1cImZhIGZhLXRyYXNoXCI+PC9pPmA7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLlJlcGVhdGVyVGFibGVFeHRyYUNsYXNzZXMgPVxyXG4gICAgICAndGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS05IGRhdGFUYWJsZSBuby1mb290ZXIgdmFsaWRhdGlvbi10YWJsZS10ZXh0JztcclxuICAgIHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMuUmVwZWF0ZXJUYWJsZVJvd0V4dHJhQ2xhc3NlcyA9XHJcbiAgICAgICd0ZXh0LXN0YXJ0IHRleHQtZ3JheS00MDAgZnctYm9sZGVyIGZzLTcgdGV4dC11cHBlcmNhc2UgZ3MtMCc7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLkFjdGlvbkxhYmVsS2V5ID0gJ0FjdGlvbic7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLkFkZEJ1dHRvbkV4dHJhQ2xhc3NlcyA9XHJcbiAgICAgICdidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrJztcclxuICAgIHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMuQWRkQnV0dG9uVGV4dCA9IGA8aSBjbGFzcz1cImZhIGZhLXBsdXNcIj48L2k+JHt0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXHJcbiAgICAgICdBZGQnXHJcbiAgICApfWA7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLk1pblJlcXVpcmVkSXRlbXMgPSAxO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5SZXBlYXRlclZhbHVlID0gW107XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLlJlcGVhdGVyU3RydWN0dXJlID0gW1xyXG4gICAgICBLZXlSZXBlYXRlcixcclxuICAgICAgVmFsdWVSZXBlYXRlcixcclxuICAgIF07XHJcblxyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihUZXN0RXhwb3J0RG9jdW1lbnRNb2RhbCk7XHJcbiAgfVxyXG4gIGdldFRlc3RFeHBvcnREb2N1bWVudE1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm0udmFsdWU7XHJcbiAgICBsZXQgRXhwb3J0RG9jdW1lbnRUZW1wbGF0ZU1vZGVsID0gbmV3IERvY3VtZW50RXhwb3J0RFRPKCk7XHJcbiAgICBFeHBvcnREb2N1bWVudFRlbXBsYXRlTW9kZWwuSURfR1VJRCA9IHRoaXMuVGVtcGxhdGVJZDtcclxuICAgIGxldCByZXN1bHQ6IERvY3VtZW50RXhwb3J0SXRlbURUT1tdID0gW107XHJcbiAgICBmb3IgKFxyXG4gICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICBpbmRleCA8IHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMuUmVwZWF0ZXJWYWx1ZS5sZW5ndGg7XHJcbiAgICAgIGluZGV4KytcclxuICAgICkge1xyXG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5SZXBlYXRlclZhbHVlW2luZGV4XTtcclxuICAgICAgaWYgKGVsZW1lbnQuS2V5ICYmIGVsZW1lbnQuVmFsdWUpIHtcclxuICAgICAgICBsZXQgaXRlbTogRG9jdW1lbnRFeHBvcnRJdGVtRFRPID0gbmV3IERvY3VtZW50RXhwb3J0SXRlbURUTygpO1xyXG4gICAgICAgIGl0ZW0uS2V5ID0gZWxlbWVudC5LZXk7XHJcbiAgICAgICAgaXRlbS5WYWx1ZSA9IGVsZW1lbnQuVmFsdWU7XHJcbiAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEV4cG9ydERvY3VtZW50VGVtcGxhdGVNb2RlbC5JdGVtcyA9IHJlc3VsdDtcclxuICAgIHBhcmFtQXJyYXkucHVzaChFeHBvcnREb2N1bWVudFRlbXBsYXRlTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfTtcclxuXHJcbiAgZ2V0VGVzdEV4cG9ydERvY3VtZW50RnVuY3Rpb24gPSAoXHJcbiAgICBFeHBvcnREb2N1bWVudFRlbXBsYXRlTW9kZWxcclxuICApOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgaWYgKHRoaXMuZXhwb3J0VHlwZSA9PSAyKVxyXG4gICAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZXhwb3J0V29yZChFeHBvcnREb2N1bWVudFRlbXBsYXRlTW9kZWwpO1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmV4cG9ydFBERihFeHBvcnREb2N1bWVudFRlbXBsYXRlTW9kZWwpO1xyXG4gIH07XHJcblxyXG4gIG9uU3VjY2Vzc0V4cG9ydEhhbmRsZXIgPSBhc3luYyAocmVzdWx0OiBhbnkpID0+IHtcclxuICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XHJcbiAgICBsZXQgbGF0ZXN0X2RhdGUgPSB0aGlzLmRhdGVwaXBlLnRyYW5zZm9ybShub3csICdkZC1NTS15eXl5IEhILm1tJyk7XHJcbiAgICBpZiAodGhpcy5leHBvcnRUeXBlID09IDIpIHtcclxuICAgICAgbGV0IGZpbGVOYW1lID0gdGhpcy5UZW1wbGF0ZUluZm8ubG9jYWxpemVkVGVtcGxhdGVOYW1lICsgJ18nICsgbGF0ZXN0X2RhdGUgKyAnLmRvYyc7XHJcbiAgICAgIHZhciBmaWxlQnVmZmVyTGliID1hd2FpdCB0aGlzLndvcmREb2N1bWVudFNlcnZpY2UuZ2VuZXJhdGVXb3JkQnl0ZUZpbGUocmVzdWx0KVxyXG4gICAgICB0aGlzLmRvd25sb2FkV29yZChmaWxlQnVmZmVyTGliIGFzIGFueSwgXCJMaWJcIitmaWxlTmFtZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZmlsZU5hbWUgPSB0aGlzLlRlbXBsYXRlSW5mby5sb2NhbGl6ZWRUZW1wbGF0ZU5hbWUgKyAnXycgKyBsYXRlc3RfZGF0ZSArICcucGRmJztcclxuICAgIHRoaXMuZG93bmxvYWRQREYocmVzdWx0IGFzIGFueSwgZmlsZU5hbWUpO1xyXG4gIH07XHJcblxyXG4gIC8vT24gZGVzdHJveVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcblxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCIgKm5nSWY9XCJpc0RhdGFMb2FkZWRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlkPVwiYnRuU2V0UGFzc1wiIGNsYXNzPVwiYnRuIGJ0bi1zbSBtZS0zXHJcbiAgICAgICAgICBidG4tbGlnaHQtcHJpbWFyeVwiIChjbGljayk9XCJzaG93RWRpdFRlbXBsYXRlTW9kYWwoRWRpdFRlbXBsYXRlTW9kYWwpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhIGZhLWVkaXRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICA8c3Bhbj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX08L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidG5TZXRQYXNzXCIgY2xhc3M9XCJidG4gYnRuLXNtIG1lLTNcclxuICAgICAgICAgIGJ0bi1saWdodC1wcmltYXJ5XCIgKGNsaWNrKT1cInNob3dUZXN0RXhwb3J0RG9jdW1lbnRNb2RhbChFeHBvcnREb2N1bWVudE1vZGFsKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1maWxlLXBkZlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgIDxzcGFuPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkV4cG9ydFwiKX19IFBERjwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpZD1cImJ0blNldFBhc3NcIiBjbGFzcz1cImJ0biBidG4tc20gbWUtM1xyXG4gICAgICAgICAgYnRuLWxpZ2h0LXByaW1hcnlcIiAoY2xpY2spPVwic2hvd1Rlc3RFeHBvcnREb2N1bWVudE1vZGFsKEV4cG9ydERvY3VtZW50TW9kYWwsMilcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZmlsZS13b3JkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgPHNwYW4+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRXhwb3J0XCIpfX0gV29yZDwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpZD1cImJ0blNldFBhc3NcIiBjbGFzcz1cImJ0biBidG4tc20gbWUtM1xyXG4gICAgICAgICAgYnRuLXByaW1hcnlcIiAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiIChjbGljayk9XCJzaG93R2VuZXJhdGVDb2RlQnlJZE1vZGFsKEdlbmVyYXRlQ29kZU1vZGFsKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1iYXJzXCI+PC9pPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkdlbmVyYXRlQ29kZVwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidG5TZXRQYXNzXCIgY2xhc3M9XCJidG4gYnRuLXNtIG1lLTNcclxuICAgICAgICAgIGJ0bi1wcmltYXJ5XCIgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIiAoY2xpY2spPVwic2hvd0dlbmVyYXRlVXBkYXRlQ29kZUJ5SWRNb2RhbChHZW5lcmF0ZUNvZGVNb2RhbClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEta2V5XCI+PC9pPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkdlbmVyYXRlVXBkYXRlQ29kZVwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB5LTNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtNiBtYi0xMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBoLTEwMCBhbGlnbi1pdGVtcy1jZW50ZXIgXCI+XHJcbiAgICAgICAgICAgIDwhLS1iZWdpbjo6T3B0aW9uLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZmxleC1jb2x1bW4gZmxleC1jZW50ZXIgcm91bmRlZC0zIGJnLWxpZ2h0XHJcbiAgICAgICAgICAgICAgcHktMTAgcHgtMTAgaC0xMDBcIj5cclxuICAgICAgICAgICAgICA8IS0tYmVnaW46OkhlYWRpbmctLT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDwhLS1iZWdpbjo6VGl0bGUtLT5cclxuICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL0FkbWluL0RvY3VtZW50cy9FZGl0VGVtcGxhdGUnLFRlbXBsYXRlSWQsJ2VuJ11cIiByb3V0ZXJMaW5rQWN0aXZlPVwicm91dGVyLWxpbmstYWN0aXZlXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgbWItNVxyXG4gICAgICAgICAgICAgICAgICBmdy1ib2xkZXN0IGZzLTJcIj5cclxuICAgICAgICAgICAgICAgICAgRW5nbGlzaDpcclxuICAgICAgICAgICAgICAgICAge3tUZW1wbGF0ZUluZm8udGVtcGxhdGVOYW1lRU59fVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL0FkbWluL0RvY3VtZW50cy9FZGl0VGVtcGxhdGUnLFRlbXBsYXRlSWQsJ2VuJ11cIiByb3V0ZXJMaW5rQWN0aXZlPVwicm91dGVyLWxpbmstYWN0aXZlXCIgY2xhc3M9XCJidG4gYnRuLXNtXHJcbiAgICAgICAgICAgICAgICAgIGJ0bi1saWdodC1wcmltYXJ5IGJ0bi1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGVuXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgIDwhLS1iZWdpbjo6SXRlbS0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZCBmcy02IHRleHQtZ3JheS04MDAgZmxleC1ncm93LTEgcGUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaW5uZXJIVE1MPVwie3tUZW1wbGF0ZUluZm8uaGVhZGVyRU59fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaW5uZXJIVE1MPVwie3tUZW1wbGF0ZUluZm8uYm9keUVOfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlubmVySFRNTD1cInt7VGVtcGxhdGVJbmZvLmZvb3RlckVOfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS1lbmQ6OlNlbGVjdC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLWVuZDo6T3B0aW9uLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTYgbWItMTBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggaC0xMDAgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDwhLS1iZWdpbjo6T3B0aW9uLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZmxleC1jb2x1bW4gZmxleC1jZW50ZXIgcm91bmRlZC0zIGJnLWxpZ2h0XHJcbiAgICAgICAgICAgICAgcHktMTAgcHgtMTAgaC0xMDBcIj5cclxuICAgICAgICAgICAgICA8IS0tYmVnaW46OkhlYWRpbmctLT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDwhLS1iZWdpbjo6VGl0bGUtLT5cclxuICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL0FkbWluL0RvY3VtZW50cy9FZGl0VGVtcGxhdGUnLFRlbXBsYXRlSWQsJ2FyJ11cIiByb3V0ZXJMaW5rQWN0aXZlPVwicm91dGVyLWxpbmstYWN0aXZlXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgbWItNVxyXG4gICAgICAgICAgICAgICAgICBmdy1ib2xkZXN0IGZzLTJcIj5cclxuICAgICAgICAgICAgICAgICAgQXJhYmljOlxyXG4gICAgICAgICAgICAgICAgICB7e1RlbXBsYXRlSW5mby50ZW1wbGF0ZU5hbWVBUn19XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9BZG1pbi9Eb2N1bWVudHMvRWRpdFRlbXBsYXRlJyxUZW1wbGF0ZUlkLCdhciddXCIgcm91dGVyTGlua0FjdGl2ZT1cInJvdXRlci1saW5rLWFjdGl2ZVwiIGNsYXNzPVwiYnRuIGJ0bi1zbVxyXG4gICAgICAgICAgICAgICAgICBidG4tbGlnaHQtcHJpbWFyeSBidG4taWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBlblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgIDwhLS1iZWdpbjo6SXRlbS0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZCBmcy02IHRleHQtZ3JheS04MDAgZmxleC1ncm93LTEgcGUtMyBhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaW5uZXJIVE1MPVwie3tUZW1wbGF0ZUluZm8uaGVhZGVyQVJ9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaW5uZXJIVE1MPVwie3tUZW1wbGF0ZUluZm8uYm9keUFSfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlubmVySFRNTD1cInt7VGVtcGxhdGVJbmZvLmZvb3RlckFSfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCEtLWVuZDo6U2VsZWN0LS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tZW5kOjpPcHRpb24tLT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gZWRpdCBNb2RhbCAtLT5cclxuPG5nLXRlbXBsYXRlICNFZGl0VGVtcGxhdGVNb2RhbCBsZXQtbW9kYWw+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuXHJcbiAgICAgIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRWRpdFwiKX19XHJcbiAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiVGVtcGxhdGVcIil9fTwvaDE+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cIkVkaXRUZW1wbGF0ZUZvcm1PcHRpb25zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIkVkaXROYW1lXCIgW2dyb3VwXT1cIkVkaXRUZW1wbGF0ZUZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0QXJlYSBbb3B0aW9uc109XCJFZGl0RGVzY3JpcHRpb25cIiBbZ3JvdXBdPVwiRWRpdFRlbXBsYXRlRm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLU11bHRpTGluZ3VhbFRleHRBcmVhPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiIVByb2R1Y3Rpb25Nb2RlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJFZGl0U3lzTmFtZVwiIFtncm91cF09XCJFZGl0VGVtcGxhdGVGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiRWRpdE9yZ2FuaXphdGlvblwiIFtncm91cF09XCJFZGl0VGVtcGxhdGVGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJFZGl0Q2F0ZWdvcnlcIiBbZ3JvdXBdPVwiRWRpdFRlbXBsYXRlRm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiRWRpdE1hc3RlckxheW91dFwiIFtncm91cF09XCJFZGl0VGVtcGxhdGVGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgIDxidXR0b24gI0Nsb3NlRWRpdFRlbXBsYXRlTW9kYWwgaWQ9XCJDbG9zZUVkaXRUZW1wbGF0ZU1vZGFsXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTYXZlTGFiZWxcIil9fTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvQkJTRi1Gb3JtPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuXHJcblxyXG48IS0tIEV4cG9ydCBEb2N1bWVudCBNb2RhbCAtLT5cclxuPG5nLXRlbXBsYXRlICNFeHBvcnREb2N1bWVudE1vZGFsIGxldC1tb2RhbD5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHBiLTAgYm9yZGVyLTAganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTEzIHRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFeHBvcnRcIil9fTwvaDE+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiVGVzdEV4cG9ydERvY3VtZW50Rm9ybU9wdGlvbnNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxCQlNGLXJlcGVhdGVyLXRhYmxlIFtvcHRpb25zXT1cImFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zXCIgW2dyb3VwXT1cIlRlc3RFeHBvcnREb2N1bWVudEZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1yZXBlYXRlci10YWJsZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgIDxidXR0b24gI0Nsb3NlU2VuZEVtYWlsRm9ybSBpZD1cIkNsb3NlU2VuZEVtYWlsRm9ybVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRXhwb3J0XCIpfX08L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L0JCU0YtRm9ybT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG48IS0tIEdlbmVyYXRlQ29kZSBNb2RhbCAtLT5cclxuPG5nLXRlbXBsYXRlICNHZW5lcmF0ZUNvZGVNb2RhbCBsZXQtbW9kYWw+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuXHJcbiAgICAgIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiR2VuZXJhdGVDb2RlXCIpfX08L2gxPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIkdlbmVyYXRlQ29kZUZvcm1cIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJSb3dcIj5cclxuICAgICAgICA8QkJTRi1UZXh0QXJlYSBbb3B0aW9uc109XCJHZW5lcmF0ZUNvZGVUZXh0QXJlYVwiIFtncm91cF09XCJHZW5lcmF0ZUNvZGVGb3JtXCIgI0dlbmVyYXRlQ29kZUlucHV0PlxyXG4gICAgICAgIDwvQkJTRi1UZXh0QXJlYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgPGJ1dHRvbiAjQ2xvc2VHZW5lcmF0ZUNvZGVNb2RhbCBpZD1cIkNsb3NlR2VuZXJhdGVDb2RlTW9kYWxcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTMgYnRuLXNtXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIChjbGljayk9XCJjb3B5SW5wdXRNZXNzYWdlKClcIj5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNvcHlUb0NsaXBib2FyZFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { AppBaseComponent, ControlLayout, DataType, DropdownOptions, EnglishArabicDTO, FormOptions, InputType, MultiLingualTextAreaOptions, MultiLingualTextBoxOptions, RepeaterField, RepeaterOptions, TextAreaOptions, TextBoxOptions, } from '@bnsights/bbsf-controls';
|
|
3
|
+
import { FormGroup } from '@angular/forms';
|
|
4
|
+
import { PageInfoService } from '../../../_metronic/core/services/page-info.service';
|
|
5
|
+
import { DocumentTemplateDTO } from '../../shared/models/DocumentsModels/DocumentTemplateDTO';
|
|
6
|
+
import { saveAs } from 'file-saver';
|
|
7
|
+
import { DocumentExportDTO, DocumentExportItemDTO, } from '../../shared/models/DocumentsModels/DocumentExportDTO';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@bnsights/bbsf-utilities";
|
|
10
|
+
import * as i2 from "ngx-clipboard";
|
|
11
|
+
import * as i3 from "../../shared/Services/DocumentTemplateService.service";
|
|
12
|
+
import * as i4 from "@angular/router";
|
|
13
|
+
import * as i5 from "../../../_metronic/core/services/page-info.service";
|
|
14
|
+
import * as i6 from "@ng-bootstrap/ng-bootstrap";
|
|
15
|
+
import * as i7 from "@angular/common";
|
|
16
|
+
import * as i8 from "@angular/forms";
|
|
17
|
+
import * as i9 from "ng-block-ui";
|
|
18
|
+
import * as i10 from "@bnsights/bbsf-controls";
|
|
19
|
+
import * as i11 from "ng-inline-svg-2";
|
|
20
|
+
export class DocumentTemplateInfoComponent extends AppBaseComponent {
|
|
21
|
+
constructor(injector, utilityService, bbsfTranslateService, _clipboardService, templateService, activatedRoute, pageInfoService, modalService, datepipe, requestHandlerService, wordDocumentService) {
|
|
22
|
+
super(injector);
|
|
23
|
+
this.injector = injector;
|
|
24
|
+
this.utilityService = utilityService;
|
|
25
|
+
this.bbsfTranslateService = bbsfTranslateService;
|
|
26
|
+
this._clipboardService = _clipboardService;
|
|
27
|
+
this.templateService = templateService;
|
|
28
|
+
this.activatedRoute = activatedRoute;
|
|
29
|
+
this.pageInfoService = pageInfoService;
|
|
30
|
+
this.modalService = modalService;
|
|
31
|
+
this.datepipe = datepipe;
|
|
32
|
+
this.requestHandlerService = requestHandlerService;
|
|
33
|
+
this.wordDocumentService = wordDocumentService;
|
|
34
|
+
this.TemplateIdEnc = '';
|
|
35
|
+
this.isDataLoaded = false;
|
|
36
|
+
this.saveAs = saveAs;
|
|
37
|
+
this.exportType = 1;
|
|
38
|
+
//Required lists
|
|
39
|
+
this.CategoryList = [];
|
|
40
|
+
this.OrganizationList = [];
|
|
41
|
+
this.MasterLayoutList = [];
|
|
42
|
+
//GenerateCode Model Controls
|
|
43
|
+
this.GenerateCodeForm = new FormGroup({});
|
|
44
|
+
this.ValueToCopy = '';
|
|
45
|
+
//Edit Model Controls
|
|
46
|
+
this.EditTemplateForm = new FormGroup({});
|
|
47
|
+
//Test Export Model Controls
|
|
48
|
+
this.TestExportDocumentForm = new FormGroup({});
|
|
49
|
+
this.TestExportDocumentFormOptions = new FormOptions();
|
|
50
|
+
this.getEditTemplateModel = () => {
|
|
51
|
+
let paramArray = [];
|
|
52
|
+
let ResultModel = this.EditTemplateForm.value;
|
|
53
|
+
let EditModel = new DocumentTemplateDTO();
|
|
54
|
+
EditModel.ID_GUID = this.TemplateId;
|
|
55
|
+
EditModel.Name.Arabic = ResultModel.Name.Arabic;
|
|
56
|
+
EditModel.Name.English = ResultModel.Name.English;
|
|
57
|
+
EditModel.SysName = ResultModel.SysName;
|
|
58
|
+
EditModel.DocumentHeaderAndFooterTemplateID_GUID =
|
|
59
|
+
ResultModel.DocumentHeaderAndFooterTemplateID_GUID;
|
|
60
|
+
EditModel.Description.English = ResultModel.Description.English;
|
|
61
|
+
EditModel.Description.Arabic = ResultModel.Description.Arabic;
|
|
62
|
+
EditModel.OrganizationID_GUID = ResultModel.OrganizationID_GUID;
|
|
63
|
+
EditModel.CategoryItemID_GUID = ResultModel.CategoryItemID_GUID;
|
|
64
|
+
paramArray.push(EditModel);
|
|
65
|
+
return paramArray;
|
|
66
|
+
};
|
|
67
|
+
this.getEditTemplateFunction = (EditModel) => {
|
|
68
|
+
return this.templateService.editDocumentTemplate(EditModel);
|
|
69
|
+
};
|
|
70
|
+
this.getTestExportDocumentModel = () => {
|
|
71
|
+
let paramArray = [];
|
|
72
|
+
let ResultModel = this.TestExportDocumentForm.value;
|
|
73
|
+
let ExportDocumentTemplateModel = new DocumentExportDTO();
|
|
74
|
+
ExportDocumentTemplateModel.ID_GUID = this.TemplateId;
|
|
75
|
+
let result = [];
|
|
76
|
+
for (let index = 0; index < this.addKeyValueRepeaterOptions.RepeaterValue.length; index++) {
|
|
77
|
+
const element = this.addKeyValueRepeaterOptions.RepeaterValue[index];
|
|
78
|
+
if (element.Key && element.Value) {
|
|
79
|
+
let item = new DocumentExportItemDTO();
|
|
80
|
+
item.Key = element.Key;
|
|
81
|
+
item.Value = element.Value;
|
|
82
|
+
result.push(item);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
ExportDocumentTemplateModel.Items = result;
|
|
86
|
+
paramArray.push(ExportDocumentTemplateModel);
|
|
87
|
+
return paramArray;
|
|
88
|
+
};
|
|
89
|
+
this.getTestExportDocumentFunction = (ExportDocumentTemplateModel) => {
|
|
90
|
+
if (this.exportType == 2)
|
|
91
|
+
return this.templateService.exportWord(ExportDocumentTemplateModel);
|
|
92
|
+
return this.templateService.exportPDF(ExportDocumentTemplateModel);
|
|
93
|
+
};
|
|
94
|
+
this.onSuccessExportHandler = async (result) => {
|
|
95
|
+
let now = new Date().toISOString();
|
|
96
|
+
let latest_date = this.datepipe.transform(now, 'dd-MM-yyyy HH.mm');
|
|
97
|
+
if (this.exportType == 2) {
|
|
98
|
+
let fileName = this.TemplateInfo.localizedTemplateName + '_' + latest_date + '.doc';
|
|
99
|
+
var fileBufferLib = await this.wordDocumentService.generateWordByteFile(result);
|
|
100
|
+
this.downloadWord(fileBufferLib, "Lib" + fileName);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
let fileName = this.TemplateInfo.localizedTemplateName + '_' + latest_date + '.pdf';
|
|
104
|
+
this.downloadPDF(result, fileName);
|
|
105
|
+
};
|
|
106
|
+
this.activatedRoute.params.subscribe((params) => {
|
|
107
|
+
this.TemplateId = params['id'];
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
async ngOnInit() {
|
|
111
|
+
this.utilityService.startBlockUI();
|
|
112
|
+
this.bbsfTranslateService.onLangChange.subscribe((event) => {
|
|
113
|
+
this.utilityService.stopBlockUI();
|
|
114
|
+
this.ngOnInit();
|
|
115
|
+
});
|
|
116
|
+
this.ProductionMode = this.environmentService.getProductionMode();
|
|
117
|
+
this.initializePage();
|
|
118
|
+
}
|
|
119
|
+
//Initialize page info
|
|
120
|
+
initializePage() {
|
|
121
|
+
this.isDataLoaded = false;
|
|
122
|
+
this.templateService
|
|
123
|
+
.getTemplateInfo(this.TemplateId)
|
|
124
|
+
.subscribe((result) => {
|
|
125
|
+
let Result = result;
|
|
126
|
+
this.TemplateInfo = Result.val;
|
|
127
|
+
PageInfoService.PageTitle = this.TemplateInfo.localizedTemplateName;
|
|
128
|
+
PageInfoService.PageBreadcrumbs = [
|
|
129
|
+
{
|
|
130
|
+
title: this.utilityService.getResourceValue('Home'),
|
|
131
|
+
path: '/Admin/Home',
|
|
132
|
+
isSeparator: false,
|
|
133
|
+
isActive: false,
|
|
134
|
+
},
|
|
135
|
+
{ title: '', path: '', isSeparator: true, isActive: false },
|
|
136
|
+
{
|
|
137
|
+
title: this.utilityService.getResourceValue('Templates'),
|
|
138
|
+
path: '/Admin/Documents/Templates',
|
|
139
|
+
isSeparator: false,
|
|
140
|
+
isActive: false,
|
|
141
|
+
},
|
|
142
|
+
{ title: '', path: '', isSeparator: true, isActive: false },
|
|
143
|
+
];
|
|
144
|
+
this.isDataLoaded = true;
|
|
145
|
+
this.utilityService.stopBlockUI();
|
|
146
|
+
this.pageInfoService.calculateTitle();
|
|
147
|
+
this.pageInfoService.calculateBreadcrumbs();
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
//Generate Code
|
|
151
|
+
showGenerateCodeByIdModal(GenerateCodeModal) {
|
|
152
|
+
this.templateService
|
|
153
|
+
.generateCodeById(this.TemplateId)
|
|
154
|
+
.subscribe((result) => {
|
|
155
|
+
var Value = result;
|
|
156
|
+
this.GenerateCodeTextArea = new TextAreaOptions();
|
|
157
|
+
this.GenerateCodeTextArea.Name = 'GenerateCodeTextArea';
|
|
158
|
+
this.GenerateCodeTextArea.Value = Value.val.toString();
|
|
159
|
+
this.ValueToCopy = Value.val.toString();
|
|
160
|
+
this.GenerateCodeTextArea.IsDisabled = true;
|
|
161
|
+
this.GenerateCodeTextArea.HideLabel = true;
|
|
162
|
+
this.GenerateCodeTextArea.Rows = 20;
|
|
163
|
+
this.GenerateCodeTextArea.Cols = 20;
|
|
164
|
+
this.GenerateCodeTextArea.MaxLength = 1000000;
|
|
165
|
+
this.modalService.open(GenerateCodeModal);
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
showGenerateUpdateCodeByIdModal(GenerateCodeModal) {
|
|
169
|
+
this.GenerateCodeForm = new FormGroup({});
|
|
170
|
+
this.templateService
|
|
171
|
+
.generateUpdateCodeById(this.TemplateId)
|
|
172
|
+
.subscribe((result) => {
|
|
173
|
+
var Value = result;
|
|
174
|
+
this.GenerateCodeTextArea = new TextAreaOptions();
|
|
175
|
+
this.GenerateCodeTextArea.Name = 'GenerateCodeTextArea';
|
|
176
|
+
this.GenerateCodeTextArea.Value = Value.val.toString();
|
|
177
|
+
this.ValueToCopy = Value.val.toString();
|
|
178
|
+
this.GenerateCodeTextArea.IsDisabled = true;
|
|
179
|
+
this.GenerateCodeTextArea.HideLabel = true;
|
|
180
|
+
this.GenerateCodeTextArea.Rows = 20;
|
|
181
|
+
this.GenerateCodeTextArea.Cols = 20;
|
|
182
|
+
this.GenerateCodeTextArea.MaxLength = 1000000;
|
|
183
|
+
this.modalService.open(GenerateCodeModal);
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
copyInputMessage() {
|
|
187
|
+
this._clipboardService.copy(this.ValueToCopy.toString());
|
|
188
|
+
}
|
|
189
|
+
//Edit Template
|
|
190
|
+
//Edit Template
|
|
191
|
+
showEditTemplateModal(EditTemplateModal) {
|
|
192
|
+
this.utilityService.startBlockUI();
|
|
193
|
+
this.templateService
|
|
194
|
+
.getEditTemplateData(this.TemplateId)
|
|
195
|
+
.subscribe((result) => {
|
|
196
|
+
let resultObj = result;
|
|
197
|
+
let template = resultObj.model;
|
|
198
|
+
let lists = resultObj.lists;
|
|
199
|
+
this.OrganizationList = lists.organization;
|
|
200
|
+
this.MasterLayoutList = lists.documentHeaderAndFooterTemplate;
|
|
201
|
+
this.CategoryList = lists.lookUpItemsCategory;
|
|
202
|
+
this.EditTemplateForm = new FormGroup({});
|
|
203
|
+
this.EditTemplateFormOptions = new FormOptions();
|
|
204
|
+
this.EditTemplateFormOptions.FormGroup = this.EditTemplateForm;
|
|
205
|
+
this.EditTemplateFormOptions.GetModelFunction =
|
|
206
|
+
this.getEditTemplateModel;
|
|
207
|
+
this.EditTemplateFormOptions.ServiceSubmitFunction =
|
|
208
|
+
this.getEditTemplateFunction;
|
|
209
|
+
let Name = new EnglishArabicDTO();
|
|
210
|
+
Name.Arabic = template.name.arabic;
|
|
211
|
+
Name.English = template.name.english;
|
|
212
|
+
this.EditName = new MultiLingualTextBoxOptions();
|
|
213
|
+
this.EditName.Name = 'Name';
|
|
214
|
+
this.EditName.ArabicLabelKey = 'NameInArabic';
|
|
215
|
+
this.EditName.EnglishLabelKey = 'NameInEnglish';
|
|
216
|
+
this.EditName.IsRequired = true;
|
|
217
|
+
this.EditName.Value = Name;
|
|
218
|
+
this.EditName.MaxLength = 100;
|
|
219
|
+
this.EditSysName = new TextBoxOptions();
|
|
220
|
+
this.EditSysName.Name = 'SysName';
|
|
221
|
+
this.EditSysName.LabelKey = 'SysName';
|
|
222
|
+
this.EditSysName.Type = InputType.Text;
|
|
223
|
+
this.EditSysName.Value = template.sysName;
|
|
224
|
+
this.EditSysName.MaxLength = 100;
|
|
225
|
+
let description = new EnglishArabicDTO();
|
|
226
|
+
description.Arabic = template.description.arabic;
|
|
227
|
+
description.English = template.description.english;
|
|
228
|
+
this.EditDescription = new MultiLingualTextAreaOptions();
|
|
229
|
+
this.EditDescription.Name = 'Description';
|
|
230
|
+
this.EditDescription.ArabicLabelKey = 'DescriptionInArabic';
|
|
231
|
+
this.EditDescription.EnglishLabelKey = 'DescriptionInEnglish';
|
|
232
|
+
this.EditDescription.Value = description;
|
|
233
|
+
this.EditDescription.MaxLength = 250;
|
|
234
|
+
this.EditOrganization = new DropdownOptions();
|
|
235
|
+
this.EditOrganization.Name = 'OrganizationID_GUID';
|
|
236
|
+
this.EditOrganization.LabelKey = 'Organization';
|
|
237
|
+
this.EditOrganization.DataSource = this.OrganizationList;
|
|
238
|
+
this.EditOrganization.SingleSelection = true;
|
|
239
|
+
this.EditOrganization.AllowSearchFilter = true;
|
|
240
|
+
this.EditOrganization.Placeholder = '';
|
|
241
|
+
this.EditOrganization.IsRequired = true;
|
|
242
|
+
this.EditOrganization.SelectedItems =
|
|
243
|
+
template.organizationID_GUID?.toLowerCase();
|
|
244
|
+
this.EditMasterLayout = new DropdownOptions();
|
|
245
|
+
this.EditMasterLayout.Name = 'DocumentHeaderAndFooterTemplateID_GUID';
|
|
246
|
+
this.EditMasterLayout.LabelKey = 'MasterLayout';
|
|
247
|
+
this.EditMasterLayout.DataSource = this.MasterLayoutList;
|
|
248
|
+
this.EditMasterLayout.SingleSelection = true;
|
|
249
|
+
this.EditMasterLayout.AllowSearchFilter = true;
|
|
250
|
+
this.EditMasterLayout.Placeholder = '';
|
|
251
|
+
this.EditMasterLayout.IsRequired = true;
|
|
252
|
+
this.EditMasterLayout.SelectedItems =
|
|
253
|
+
template.documentHeaderAndFooterTemplateID_GUID?.toLowerCase();
|
|
254
|
+
this.EditCategory = new DropdownOptions();
|
|
255
|
+
this.EditCategory.Name = 'CategoryItemID_GUID';
|
|
256
|
+
this.EditCategory.LabelKey = 'Category';
|
|
257
|
+
this.EditCategory.DataSource = this.CategoryList;
|
|
258
|
+
this.EditCategory.SingleSelection = true;
|
|
259
|
+
this.EditCategory.AllowSearchFilter = true;
|
|
260
|
+
this.EditCategory.Placeholder = '';
|
|
261
|
+
this.EditCategory.IsRequired = true;
|
|
262
|
+
this.EditCategory.SelectedItems =
|
|
263
|
+
template.categoryItemID_GUID?.toLowerCase();
|
|
264
|
+
this.modalService.open(EditTemplateModal);
|
|
265
|
+
this.utilityService.stopBlockUI();
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
//Test Send Email
|
|
269
|
+
showTestExportDocumentModal(TestExportDocumentModal, type = 1) {
|
|
270
|
+
this.exportType = type;
|
|
271
|
+
this.TestExportDocumentForm = new FormGroup({});
|
|
272
|
+
this.TestExportDocumentFormOptions = new FormOptions();
|
|
273
|
+
this.TestExportDocumentFormOptions.FormGroup = this.TestExportDocumentForm;
|
|
274
|
+
this.TestExportDocumentFormOptions.GetModelFunction =
|
|
275
|
+
this.getTestExportDocumentModel;
|
|
276
|
+
this.TestExportDocumentFormOptions.ServiceSubmitFunction =
|
|
277
|
+
this.getTestExportDocumentFunction;
|
|
278
|
+
this.TestExportDocumentFormOptions.OnSuccessHandler =
|
|
279
|
+
this.onSuccessExportHandler;
|
|
280
|
+
this.TestExportDocumentFormOptions.DisableSuccessNotification = true;
|
|
281
|
+
let Key = new TextBoxOptions();
|
|
282
|
+
Key.Name = 'Key';
|
|
283
|
+
Key.HideLabel = true;
|
|
284
|
+
Key.ViewType = ControlLayout.Vertical;
|
|
285
|
+
Key.Type = InputType.Text;
|
|
286
|
+
let Value = new TextBoxOptions();
|
|
287
|
+
Value.Name = 'Value';
|
|
288
|
+
Value.HideLabel = true;
|
|
289
|
+
Value.ViewType = ControlLayout.Vertical;
|
|
290
|
+
Value.Type = InputType.Text;
|
|
291
|
+
let KeyRepeater = new RepeaterField();
|
|
292
|
+
KeyRepeater.ControlType = DataType.Text;
|
|
293
|
+
KeyRepeater.ControlOptions = Key;
|
|
294
|
+
KeyRepeater.HeaderTitle = this.utilityService.getResourceValue('Key');
|
|
295
|
+
let ValueRepeater = new RepeaterField();
|
|
296
|
+
ValueRepeater.ControlType = DataType.Text;
|
|
297
|
+
ValueRepeater.ControlOptions = Value;
|
|
298
|
+
ValueRepeater.HeaderTitle = this.utilityService.getResourceValue('Value');
|
|
299
|
+
this.addKeyValueRepeaterOptions = new RepeaterOptions();
|
|
300
|
+
this.addKeyValueRepeaterOptions.IsRequired = false;
|
|
301
|
+
this.addKeyValueRepeaterOptions.Name = 'values';
|
|
302
|
+
this.addKeyValueRepeaterOptions.DeleteButtonExtraClasses =
|
|
303
|
+
'btn btn-danger btn-sm btn-icon';
|
|
304
|
+
this.addKeyValueRepeaterOptions.DeleteButtonText = `<i class="fa fa-trash"></i>`;
|
|
305
|
+
this.addKeyValueRepeaterOptions.RepeaterTableExtraClasses =
|
|
306
|
+
'table align-middle table-row-dashed fs-6 gy-9 dataTable no-footer validation-table-text';
|
|
307
|
+
this.addKeyValueRepeaterOptions.RepeaterTableRowExtraClasses =
|
|
308
|
+
'text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0';
|
|
309
|
+
this.addKeyValueRepeaterOptions.ActionLabelKey = 'Action';
|
|
310
|
+
this.addKeyValueRepeaterOptions.AddButtonExtraClasses =
|
|
311
|
+
'btn btn-primary btn-block';
|
|
312
|
+
this.addKeyValueRepeaterOptions.AddButtonText = `<i class="fa fa-plus"></i>${this.utilityService.getResourceValue('Add')}`;
|
|
313
|
+
this.addKeyValueRepeaterOptions.MinRequiredItems = 1;
|
|
314
|
+
this.addKeyValueRepeaterOptions.RepeaterValue = [];
|
|
315
|
+
this.addKeyValueRepeaterOptions.RepeaterStructure = [
|
|
316
|
+
KeyRepeater,
|
|
317
|
+
ValueRepeater,
|
|
318
|
+
];
|
|
319
|
+
this.modalService.open(TestExportDocumentModal);
|
|
320
|
+
}
|
|
321
|
+
//On destroy
|
|
322
|
+
ngOnDestroy() {
|
|
323
|
+
this.requestHandlerService.destroyHandler();
|
|
324
|
+
}
|
|
325
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: DocumentTemplateInfoComponent, deps: [{ token: i0.Injector }, { token: i1.UtilityService }, { token: i1.BBSFTranslateService }, { token: i2.ClipboardService }, { token: i3.DocumentTemplateService }, { token: i4.ActivatedRoute }, { token: i5.PageInfoService }, { token: i6.NgbModal }, { token: i7.DatePipe }, { token: i1.RequestHandlerService }, { token: i1.WordDocumentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
326
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: DocumentTemplateInfoComponent, selector: "lib-document-template-info", usesInheritance: true, ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n<div class=\"container-fluid\" *ngIf=\"isDataLoaded\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\">\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showEditTemplateModal(EditTemplateModal)\">\r\n <i class=\"fa fa fa-edit\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showTestExportDocumentModal(ExportDocumentModal)\">\r\n <i class=\"fa fa-file-pdf\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Export\")}} PDF</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showTestExportDocumentModal(ExportDocumentModal,2)\">\r\n <i class=\"fa fa-file-word\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Export\")}} Word</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-primary\" *ngIf=\"!ProductionMode\" (click)=\"showGenerateCodeByIdModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-bars\"></i>{{utilityService.getResourceValue(\"GenerateCode\")}}\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-primary\" *ngIf=\"!ProductionMode\" (click)=\"showGenerateUpdateCodeByIdModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key\"></i>{{utilityService.getResourceValue(\"GenerateUpdateCode\")}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center \">\r\n <!--begin::Option-->\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <!--begin::Heading-->\r\n <div class=\"mb-7 d-flex justify-content-between w-100\">\r\n <!--begin::Title-->\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'en']\" routerLinkActive=\"router-link-active\" class=\"text-primary mb-5\r\n fw-boldest fs-2\">\r\n English:\r\n {{TemplateInfo.templateNameEN}}\r\n </a>\r\n\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'en']\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <!--begin::Item-->\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3\">\r\n <div innerHTML=\"{{TemplateInfo.headerEN}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.bodyEN}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.footerEN}}\">\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--end::Select-->\r\n </div>\r\n <!--end::Option-->\r\n </div>\r\n </div>\r\n <div class=\"col-xl-6 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center\">\r\n <!--begin::Option-->\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <!--begin::Heading-->\r\n <div class=\"mb-7 d-flex justify-content-between w-100\">\r\n <!--begin::Title-->\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'ar']\" routerLinkActive=\"router-link-active\" class=\"text-primary mb-5\r\n fw-boldest fs-2\">\r\n Arabic:\r\n {{TemplateInfo.templateNameAR}}\r\n </a>\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'ar']\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <!--begin::Item-->\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3 ar\">\r\n <div innerHTML=\"{{TemplateInfo.headerAR}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.bodyAR}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.footerAR}}\">\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Select-->\r\n </div>\r\n <!--end::Option-->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- edit Modal -->\r\n<ng-template #EditTemplateModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn\r\n btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"Edit\")}}\r\n {{utilityService.getResourceValue(\"Template\")}}</h1>\r\n </div>\r\n\r\n <BBSF-Form [options]=\"EditTemplateFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"EditName\" [group]=\"EditTemplateForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextArea [options]=\"EditDescription\" [group]=\"EditTemplateForm\">\r\n </BBSF-MultiLingualTextArea>\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"!ProductionMode\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"EditSysName\" [group]=\"EditTemplateForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditOrganization\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditCategory\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditMasterLayout\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseEditTemplateModal id=\"CloseEditTemplateModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n\r\n<!-- Export Document Modal -->\r\n<ng-template #ExportDocumentModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"Export\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"TestExportDocumentFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-repeater-table [options]=\"addKeyValueRepeaterOptions\" [group]=\"TestExportDocumentForm\">\r\n </BBSF-repeater-table>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseSendEmailForm id=\"CloseSendEmailForm\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Export\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<!-- GenerateCode Modal -->\r\n<ng-template #GenerateCodeModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn\r\n btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"GenerateCode\")}}</h1>\r\n </div>\r\n <form [formGroup]=\"GenerateCodeForm\">\r\n\r\n <div class=\"Row\">\r\n <BBSF-TextArea [options]=\"GenerateCodeTextArea\" [group]=\"GenerateCodeForm\" #GenerateCodeInput>\r\n </BBSF-TextArea>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseGenerateCodeModal id=\"CloseGenerateCodeModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"copyInputMessage()\">\r\n {{utilityService.getResourceValue(\"CopyToClipboard\")}}\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n</ng-template>", dependencies: [{ kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i9.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i10.MultiLingualTextBoxComponent, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i10.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange", "OnBlur"] }, { kind: "component", type: i10.TextAreaComponent, selector: "BBSF-TextArea", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i10.MultiLingualTextAreaComponent, selector: "BBSF-MultiLingualTextArea", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i10.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["OnChange", "onClear"] }, { kind: "component", type: i10.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["OnChange"] }, { kind: "component", type: i10.RepeaterTableComponent, selector: "BBSF-repeater-table", inputs: ["group", "options"] }, { kind: "directive", type: i11.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }] }); }
|
|
327
|
+
}
|
|
328
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: DocumentTemplateInfoComponent, decorators: [{
|
|
329
|
+
type: Component,
|
|
330
|
+
args: [{ selector: 'lib-document-template-info', template: "<block-ui></block-ui>\r\n\r\n<div class=\"container-fluid\" *ngIf=\"isDataLoaded\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\">\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showEditTemplateModal(EditTemplateModal)\">\r\n <i class=\"fa fa fa-edit\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showTestExportDocumentModal(ExportDocumentModal)\">\r\n <i class=\"fa fa-file-pdf\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Export\")}} PDF</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showTestExportDocumentModal(ExportDocumentModal,2)\">\r\n <i class=\"fa fa-file-word\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Export\")}} Word</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-primary\" *ngIf=\"!ProductionMode\" (click)=\"showGenerateCodeByIdModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-bars\"></i>{{utilityService.getResourceValue(\"GenerateCode\")}}\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-primary\" *ngIf=\"!ProductionMode\" (click)=\"showGenerateUpdateCodeByIdModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key\"></i>{{utilityService.getResourceValue(\"GenerateUpdateCode\")}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center \">\r\n <!--begin::Option-->\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <!--begin::Heading-->\r\n <div class=\"mb-7 d-flex justify-content-between w-100\">\r\n <!--begin::Title-->\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'en']\" routerLinkActive=\"router-link-active\" class=\"text-primary mb-5\r\n fw-boldest fs-2\">\r\n English:\r\n {{TemplateInfo.templateNameEN}}\r\n </a>\r\n\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'en']\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <!--begin::Item-->\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3\">\r\n <div innerHTML=\"{{TemplateInfo.headerEN}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.bodyEN}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.footerEN}}\">\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--end::Select-->\r\n </div>\r\n <!--end::Option-->\r\n </div>\r\n </div>\r\n <div class=\"col-xl-6 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center\">\r\n <!--begin::Option-->\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <!--begin::Heading-->\r\n <div class=\"mb-7 d-flex justify-content-between w-100\">\r\n <!--begin::Title-->\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'ar']\" routerLinkActive=\"router-link-active\" class=\"text-primary mb-5\r\n fw-boldest fs-2\">\r\n Arabic:\r\n {{TemplateInfo.templateNameAR}}\r\n </a>\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'ar']\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <!--begin::Item-->\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3 ar\">\r\n <div innerHTML=\"{{TemplateInfo.headerAR}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.bodyAR}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.footerAR}}\">\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Select-->\r\n </div>\r\n <!--end::Option-->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- edit Modal -->\r\n<ng-template #EditTemplateModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn\r\n btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"Edit\")}}\r\n {{utilityService.getResourceValue(\"Template\")}}</h1>\r\n </div>\r\n\r\n <BBSF-Form [options]=\"EditTemplateFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"EditName\" [group]=\"EditTemplateForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextArea [options]=\"EditDescription\" [group]=\"EditTemplateForm\">\r\n </BBSF-MultiLingualTextArea>\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"!ProductionMode\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"EditSysName\" [group]=\"EditTemplateForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditOrganization\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditCategory\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditMasterLayout\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseEditTemplateModal id=\"CloseEditTemplateModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n\r\n<!-- Export Document Modal -->\r\n<ng-template #ExportDocumentModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"Export\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"TestExportDocumentFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-repeater-table [options]=\"addKeyValueRepeaterOptions\" [group]=\"TestExportDocumentForm\">\r\n </BBSF-repeater-table>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseSendEmailForm id=\"CloseSendEmailForm\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Export\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<!-- GenerateCode Modal -->\r\n<ng-template #GenerateCodeModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn\r\n btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"GenerateCode\")}}</h1>\r\n </div>\r\n <form [formGroup]=\"GenerateCodeForm\">\r\n\r\n <div class=\"Row\">\r\n <BBSF-TextArea [options]=\"GenerateCodeTextArea\" [group]=\"GenerateCodeForm\" #GenerateCodeInput>\r\n </BBSF-TextArea>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseGenerateCodeModal id=\"CloseGenerateCodeModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"copyInputMessage()\">\r\n {{utilityService.getResourceValue(\"CopyToClipboard\")}}\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n</ng-template>" }]
|
|
331
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.UtilityService }, { type: i1.BBSFTranslateService }, { type: i2.ClipboardService }, { type: i3.DocumentTemplateService }, { type: i4.ActivatedRoute }, { type: i5.PageInfoService }, { type: i6.NgbModal }, { type: i7.DatePipe }, { type: i1.RequestHandlerService }, { type: i1.WordDocumentService }] });
|
|
332
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdGVtcGxhdGUtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2RvY3VtZW50cy9kb2N1bWVudC10ZW1wbGF0ZS1pbmZvL2RvY3VtZW50LXRlbXBsYXRlLWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9kb2N1bWVudHMvZG9jdW1lbnQtdGVtcGxhdGUtaW5mby9kb2N1bWVudC10ZW1wbGF0ZS1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIsYUFBYSxFQUViLFFBQVEsRUFDUixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxTQUFTLEVBQ1QsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUUxQixhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixjQUFjLEdBQ2YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBV3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRTlGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixxQkFBcUIsR0FDdEIsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU0vRCxNQUFNLE9BQU8sNkJBQ1gsU0FBUSxnQkFBZ0I7SUFzQ3hCLFlBQ1UsUUFBa0IsRUFDbkIsY0FBOEIs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SyxDQUNOLEVBQUUsQ0FBQztRQUNKLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGlCQUFpQixHQUFHO1lBQ2xELFdBQVc7WUFDWCxhQUFhO1NBQ2QsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQStDRCxZQUFZO0lBQ1osV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzhHQTFXVSw2QkFBNkI7a0dBQTdCLDZCQUE2Qix5RkNqRDFDLG9tV0F3UGM7OzJGRHZNRCw2QkFBNkI7a0JBSnpDLFNBQVM7K0JBQ0UsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtcclxuICBBcHBCYXNlQ29tcG9uZW50LFxyXG4gIENoZWNrQm94T3B0aW9ucyxcclxuICBDb250cm9sTGF5b3V0LFxyXG4gIENvdW50cnksXHJcbiAgRGF0YVR5cGUsXHJcbiAgRHJvcGRvd25PcHRpb25zLFxyXG4gIEVuZ2xpc2hBcmFiaWNEVE8sXHJcbiAgRm9ybU9wdGlvbnMsXHJcbiAgSW5wdXRUeXBlLFxyXG4gIE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucyxcclxuICBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucyxcclxuICBQaG9uZU9wdGlvbnMsXHJcbiAgUmVwZWF0ZXJGaWVsZCxcclxuICBSZXBlYXRlck9wdGlvbnMsXHJcbiAgVGV4dEFyZWFPcHRpb25zLFxyXG4gIFRleHRCb3hPcHRpb25zLFxyXG59IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgVGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL1RlbXBsYXRlU2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSAnbmd4LWNsaXBib2FyZCc7XHJcbmltcG9ydCB7IEVtYWlsVGVtcGxhdGVUZXN0ZXJNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTm90aWZpY2F0aW9uc01vZGVscy9FbWFpbFRlbXBsYXRlVGVzdGVyTW9kZWwnO1xyXG5pbXBvcnQgeyBTTVNUZW1wbGF0ZVRlc3Rlck1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Ob3RpZmljYXRpb25zTW9kZWxzL1NNU1RlbXBsYXRlVGVzdGVyTW9kZWwnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZURUTyB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTm90aWZpY2F0aW9uc01vZGVscy9UZW1wbGF0ZURUTyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7XHJcbiAgVXRpbGl0eVNlcnZpY2UsXHJcbiAgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gIFJlcXVlc3RIYW5kbGVyU2VydmljZSxcclxuICBXb3JkRG9jdW1lbnRTZXJ2aWNlLFxyXG59IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRG9jdW1lbnRUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvU2VydmljZXMvRG9jdW1lbnRUZW1wbGF0ZVNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50VGVtcGxhdGVEVE8gfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0RvY3VtZW50c01vZGVscy9Eb2N1bWVudFRlbXBsYXRlRFRPJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHtcclxuICBEb2N1bWVudEV4cG9ydERUTyxcclxuICBEb2N1bWVudEV4cG9ydEl0ZW1EVE8sXHJcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Eb2N1bWVudHNNb2RlbHMvRG9jdW1lbnRFeHBvcnREVE8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZG9jdW1lbnQtdGVtcGxhdGUtaW5mbycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50LXRlbXBsYXRlLWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRUZW1wbGF0ZUluZm9Db21wb25lbnRcclxuICBleHRlbmRzIEFwcEJhc2VDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIFByb2R1Y3Rpb25Nb2RlOiBib29sZWFuO1xyXG4gIFRlbXBsYXRlSWQ6IHN0cmluZztcclxuICBUZW1wbGF0ZUlkRW5jOiBzdHJpbmcgPSAnJztcclxuICBUZW1wbGF0ZUluZm86IGFueTtcclxuICBUZW1wbGF0ZTogYW55O1xyXG4gIGlzRGF0YUxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNhdmVBcyA9IHNhdmVBcztcclxuICBleHBvcnRUeXBlOiBudW1iZXIgPSAxO1xyXG4gIC8vUmVxdWlyZWQgbGlzdHNcclxuICBDYXRlZ29yeUxpc3QgPSBbXTtcclxuICBPcmdhbml6YXRpb25MaXN0ID0gW107XHJcbiAgTWFzdGVyTGF5b3V0TGlzdCA9IFtdO1xyXG5cclxuICAvL0dlbmVyYXRlQ29kZSAgTW9kZWwgQ29udHJvbHNcclxuICBHZW5lcmF0ZUNvZGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgSXNPcGVuR2VuZXJhdGVDb2RlTW9kYWw6IGJvb2xlYW47XHJcbiAgR2VuZXJhdGVDb2RlVGV4dEFyZWE6IFRleHRBcmVhT3B0aW9ucztcclxuICBWYWx1ZVRvQ29weTogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8vRWRpdCBNb2RlbCBDb250cm9sc1xyXG4gIEVkaXRUZW1wbGF0ZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBFZGl0VGVtcGxhdGVGb3JtT3B0aW9uczogRm9ybU9wdGlvbnM7XHJcbiAgRWRpdE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zO1xyXG4gIEVkaXRTeXNOYW1lOiBUZXh0Qm94T3B0aW9ucztcclxuICBFZGl0RGVzY3JpcHRpb246IE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucztcclxuICBFZGl0T3JnYW5pemF0aW9uOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgRWRpdENhdGVnb3J5OiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgRWRpdE1hc3RlckxheW91dDogRHJvcGRvd25PcHRpb25zO1xyXG5cclxuICAvL1Rlc3QgRXhwb3J0IE1vZGVsIENvbnRyb2xzXHJcbiAgVGVzdEV4cG9ydERvY3VtZW50Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIFRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnM6IFJlcGVhdGVyT3B0aW9ucztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYmJzZlRyYW5zbGF0ZVNlcnZpY2U6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIF9jbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRlbXBsYXRlU2VydmljZTogRG9jdW1lbnRUZW1wbGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHVibGljIHBhZ2VJbmZvU2VydmljZTogUGFnZUluZm9TZXJ2aWNlLFxyXG4gICAgcHVibGljIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXHJcbiAgICBwdWJsaWMgZGF0ZXBpcGU6IERhdGVQaXBlLFxyXG4gICAgcHVibGljIHJlcXVlc3RIYW5kbGVyU2VydmljZTogUmVxdWVzdEhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIHdvcmREb2N1bWVudFNlcnZpY2U6V29yZERvY3VtZW50U2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcclxuICAgICAgdGhpcy5UZW1wbGF0ZUlkID0gcGFyYW1zWydpZCddO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICB0aGlzLmJic2ZUcmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLlByb2R1Y3Rpb25Nb2RlID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0UHJvZHVjdGlvbk1vZGUoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuICB9XHJcblxyXG4gIC8vSW5pdGlhbGl6ZSBwYWdlIGluZm9cclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIHRoaXMuaXNEYXRhTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnRlbXBsYXRlU2VydmljZVxyXG4gICAgICAuZ2V0VGVtcGxhdGVJbmZvKHRoaXMuVGVtcGxhdGVJZClcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgbGV0IFJlc3VsdDogYW55ID0gcmVzdWx0O1xyXG4gICAgICAgIHRoaXMuVGVtcGxhdGVJbmZvID0gUmVzdWx0LnZhbDtcclxuICAgICAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy5UZW1wbGF0ZUluZm8ubG9jYWxpemVkVGVtcGxhdGVOYW1lO1xyXG4gICAgICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnMgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0hvbWUnKSxcclxuICAgICAgICAgICAgcGF0aDogJy9BZG1pbi9Ib21lJyxcclxuICAgICAgICAgICAgaXNTZXBhcmF0b3I6IGZhbHNlLFxyXG4gICAgICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ1RlbXBsYXRlcycpLFxyXG4gICAgICAgICAgICBwYXRoOiAnL0FkbWluL0RvY3VtZW50cy9UZW1wbGF0ZXMnLFxyXG4gICAgICAgICAgICBpc1NlcGFyYXRvcjogZmFsc2UsXHJcbiAgICAgICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHRoaXMuaXNEYXRhTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICAgICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgICAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vR2VuZXJhdGUgQ29kZVxyXG4gIHNob3dHZW5lcmF0ZUNvZGVCeUlkTW9kYWwoR2VuZXJhdGVDb2RlTW9kYWwpIHtcclxuICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlXHJcbiAgICAgIC5nZW5lcmF0ZUNvZGVCeUlkKHRoaXMuVGVtcGxhdGVJZClcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgdmFyIFZhbHVlID0gcmVzdWx0IGFzIGFueTtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhID0gbmV3IFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuTmFtZSA9ICdHZW5lcmF0ZUNvZGVUZXh0QXJlYSc7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5WYWx1ZSA9IFZhbHVlLnZhbC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuVmFsdWVUb0NvcHkgPSBWYWx1ZS52YWwudG9TdHJpbmcoKTtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLklzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLlJvd3MgPSAyMDtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLkNvbHMgPSAyMDtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLk1heExlbmd0aCA9IDEwMDAwMDA7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihHZW5lcmF0ZUNvZGVNb2RhbCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2hvd0dlbmVyYXRlVXBkYXRlQ29kZUJ5SWRNb2RhbChHZW5lcmF0ZUNvZGVNb2RhbCkge1xyXG4gICAgdGhpcy5HZW5lcmF0ZUNvZGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICB0aGlzLnRlbXBsYXRlU2VydmljZVxyXG4gICAgICAuZ2VuZXJhdGVVcGRhdGVDb2RlQnlJZCh0aGlzLlRlbXBsYXRlSWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHZhciBWYWx1ZSA9IHJlc3VsdCBhcyBhbnk7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYSA9IG5ldyBUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLk5hbWUgPSAnR2VuZXJhdGVDb2RlVGV4dEFyZWEnO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuVmFsdWUgPSBWYWx1ZS52YWwudG9TdHJpbmcoKTtcclxuICAgICAgICB0aGlzLlZhbHVlVG9Db3B5ID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5Jc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5Sb3dzID0gMjA7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5Db2xzID0gMjA7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5NYXhMZW5ndGggPSAxMDAwMDAwO1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oR2VuZXJhdGVDb2RlTW9kYWwpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNvcHlJbnB1dE1lc3NhZ2UoKSB7XHJcbiAgICB0aGlzLl9jbGlwYm9hcmRTZXJ2aWNlLmNvcHkodGhpcy5WYWx1ZVRvQ29weS50b1N0cmluZygpKTtcclxuICB9XHJcbiAgLy9FZGl0IFRlbXBsYXRlXHJcbiAgLy9FZGl0IFRlbXBsYXRlXHJcbiAgc2hvd0VkaXRUZW1wbGF0ZU1vZGFsKEVkaXRUZW1wbGF0ZU1vZGFsKSB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpO1xyXG4gICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2VcclxuICAgICAgLmdldEVkaXRUZW1wbGF0ZURhdGEodGhpcy5UZW1wbGF0ZUlkKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICBsZXQgcmVzdWx0T2JqID0gcmVzdWx0IGFzIGFueTtcclxuICAgICAgICBsZXQgdGVtcGxhdGUgPSByZXN1bHRPYmoubW9kZWw7XHJcbiAgICAgICAgbGV0IGxpc3RzID0gcmVzdWx0T2JqLmxpc3RzO1xyXG4gICAgICAgIHRoaXMuT3JnYW5pemF0aW9uTGlzdCA9IGxpc3RzLm9yZ2FuaXphdGlvbjtcclxuICAgICAgICB0aGlzLk1hc3RlckxheW91dExpc3QgPSBsaXN0cy5kb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlO1xyXG4gICAgICAgIHRoaXMuQ2F0ZWdvcnlMaXN0ID0gbGlzdHMubG9va1VwSXRlbXNDYXRlZ29yeTtcclxuXHJcbiAgICAgICAgdGhpcy5FZGl0VGVtcGxhdGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICAgICAgdGhpcy5FZGl0VGVtcGxhdGVGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuRWRpdFRlbXBsYXRlRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5FZGl0VGVtcGxhdGVGb3JtO1xyXG4gICAgICAgIHRoaXMuRWRpdFRlbXBsYXRlRm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9XHJcbiAgICAgICAgICB0aGlzLmdldEVkaXRUZW1wbGF0ZU1vZGVsO1xyXG4gICAgICAgIHRoaXMuRWRpdFRlbXBsYXRlRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID1cclxuICAgICAgICAgIHRoaXMuZ2V0RWRpdFRlbXBsYXRlRnVuY3Rpb247XHJcbiAgICAgICAgbGV0IE5hbWUgPSBuZXcgRW5nbGlzaEFyYWJpY0RUTygpO1xyXG4gICAgICAgIE5hbWUuQXJhYmljID0gdGVtcGxhdGUubmFtZS5hcmFiaWM7XHJcbiAgICAgICAgTmFtZS5FbmdsaXNoID0gdGVtcGxhdGUubmFtZS5lbmdsaXNoO1xyXG5cclxuICAgICAgICB0aGlzLkVkaXROYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5FZGl0TmFtZS5OYW1lID0gJ05hbWUnO1xyXG4gICAgICAgIHRoaXMuRWRpdE5hbWUuQXJhYmljTGFiZWxLZXkgPSAnTmFtZUluQXJhYmljJztcclxuICAgICAgICB0aGlzLkVkaXROYW1lLkVuZ2xpc2hMYWJlbEtleSA9ICdOYW1lSW5FbmdsaXNoJztcclxuICAgICAgICB0aGlzLkVkaXROYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuRWRpdE5hbWUuVmFsdWUgPSBOYW1lO1xyXG4gICAgICAgIHRoaXMuRWRpdE5hbWUuTWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgICAgICB0aGlzLkVkaXRTeXNOYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5FZGl0U3lzTmFtZS5OYW1lID0gJ1N5c05hbWUnO1xyXG4gICAgICAgIHRoaXMuRWRpdFN5c05hbWUuTGFiZWxLZXkgPSAnU3lzTmFtZSc7XHJcbiAgICAgICAgdGhpcy5FZGl0U3lzTmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgdGhpcy5FZGl0U3lzTmFtZS5WYWx1ZSA9IHRlbXBsYXRlLnN5c05hbWU7XHJcbiAgICAgICAgdGhpcy5FZGl0U3lzTmFtZS5NYXhMZW5ndGggPSAxMDA7XHJcblxyXG4gICAgICAgIGxldCBkZXNjcmlwdGlvbiA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgICAgZGVzY3JpcHRpb24uQXJhYmljID0gdGVtcGxhdGUuZGVzY3JpcHRpb24uYXJhYmljO1xyXG4gICAgICAgIGRlc2NyaXB0aW9uLkVuZ2xpc2ggPSB0ZW1wbGF0ZS5kZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG5cclxuICAgICAgICB0aGlzLkVkaXREZXNjcmlwdGlvbiA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLkVkaXREZXNjcmlwdGlvbi5OYW1lID0gJ0Rlc2NyaXB0aW9uJztcclxuICAgICAgICB0aGlzLkVkaXREZXNjcmlwdGlvbi5BcmFiaWNMYWJlbEtleSA9ICdEZXNjcmlwdGlvbkluQXJhYmljJztcclxuICAgICAgICB0aGlzLkVkaXREZXNjcmlwdGlvbi5FbmdsaXNoTGFiZWxLZXkgPSAnRGVzY3JpcHRpb25JbkVuZ2xpc2gnO1xyXG4gICAgICAgIHRoaXMuRWRpdERlc2NyaXB0aW9uLlZhbHVlID0gZGVzY3JpcHRpb247XHJcbiAgICAgICAgdGhpcy5FZGl0RGVzY3JpcHRpb24uTWF4TGVuZ3RoID0gMjUwO1xyXG5cclxuICAgICAgICB0aGlzLkVkaXRPcmdhbml6YXRpb24gPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLk5hbWUgPSAnT3JnYW5pemF0aW9uSURfR1VJRCc7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLkxhYmVsS2V5ID0gJ09yZ2FuaXphdGlvbic7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLkRhdGFTb3VyY2UgPSB0aGlzLk9yZ2FuaXphdGlvbkxpc3Q7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkVkaXRPcmdhbml6YXRpb24uUGxhY2Vob2xkZXIgPSAnJztcclxuICAgICAgICB0aGlzLkVkaXRPcmdhbml6YXRpb24uSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLlNlbGVjdGVkSXRlbXMgPVxyXG4gICAgICAgICAgdGVtcGxhdGUub3JnYW5pemF0aW9uSURfR1VJRD8udG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5FZGl0TWFzdGVyTGF5b3V0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuRWRpdE1hc3RlckxheW91dC5OYW1lID0gJ0RvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVJRF9HVUlEJztcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQuTGFiZWxLZXkgPSAnTWFzdGVyTGF5b3V0JztcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQuRGF0YVNvdXJjZSA9IHRoaXMuTWFzdGVyTGF5b3V0TGlzdDtcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuRWRpdE1hc3RlckxheW91dC5QbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgICAgIHRoaXMuRWRpdE1hc3RlckxheW91dC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQuU2VsZWN0ZWRJdGVtcyA9XHJcbiAgICAgICAgICB0ZW1wbGF0ZS5kb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlSURfR1VJRD8udG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5FZGl0Q2F0ZWdvcnkgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5FZGl0Q2F0ZWdvcnkuTmFtZSA9ICdDYXRlZ29yeUl0ZW1JRF9HVUlEJztcclxuICAgICAgICB0aGlzLkVkaXRDYXRlZ29yeS5MYWJlbEtleSA9ICdDYXRlZ29yeSc7XHJcbiAgICAgICAgdGhpcy5FZGl0Q2F0ZWdvcnkuRGF0YVNvdXJjZSA9IHRoaXMuQ2F0ZWdvcnlMaXN0O1xyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5LlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5FZGl0Q2F0ZWdvcnkuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5LlBsYWNlaG9sZGVyID0gJyc7XHJcbiAgICAgICAgdGhpcy5FZGl0Q2F0ZWdvcnkuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5FZGl0Q2F0ZWdvcnkuU2VsZWN0ZWRJdGVtcyA9XHJcbiAgICAgICAgICB0ZW1wbGF0ZS5jYXRlZ29yeUl0ZW1JRF9HVUlEPy50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEVkaXRUZW1wbGF0ZU1vZGFsKTtcclxuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBnZXRFZGl0VGVtcGxhdGVNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5FZGl0VGVtcGxhdGVGb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIGxldCBFZGl0TW9kZWwgPSBuZXcgRG9jdW1lbnRUZW1wbGF0ZURUTygpO1xyXG4gICAgRWRpdE1vZGVsLklEX0dVSUQgPSB0aGlzLlRlbXBsYXRlSWQ7XHJcbiAgICBFZGl0TW9kZWwuTmFtZS5BcmFiaWMgPSBSZXN1bHRNb2RlbC5OYW1lLkFyYWJpYztcclxuICAgIEVkaXRNb2RlbC5OYW1lLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5OYW1lLkVuZ2xpc2g7XHJcbiAgICBFZGl0TW9kZWwuU3lzTmFtZSA9IFJlc3VsdE1vZGVsLlN5c05hbWU7XHJcbiAgICBFZGl0TW9kZWwuRG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZUlEX0dVSUQgPVxyXG4gICAgICBSZXN1bHRNb2RlbC5Eb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlSURfR1VJRDtcclxuICAgIEVkaXRNb2RlbC5EZXNjcmlwdGlvbi5FbmdsaXNoID0gUmVzdWx0TW9kZWwuRGVzY3JpcHRpb24uRW5nbGlzaDtcclxuICAgIEVkaXRNb2RlbC5EZXNjcmlwdGlvbi5BcmFiaWMgPSBSZXN1bHRNb2RlbC5EZXNjcmlwdGlvbi5BcmFiaWM7XHJcbiAgICBFZGl0TW9kZWwuT3JnYW5pemF0aW9uSURfR1VJRCA9IFJlc3VsdE1vZGVsLk9yZ2FuaXphdGlvbklEX0dVSUQ7XHJcbiAgICBFZGl0TW9kZWwuQ2F0ZWdvcnlJdGVtSURfR1VJRCA9IFJlc3VsdE1vZGVsLkNhdGVnb3J5SXRlbUlEX0dVSUQ7XHJcblxyXG4gICAgcGFyYW1BcnJheS5wdXNoKEVkaXRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9O1xyXG5cclxuICBnZXRFZGl0VGVtcGxhdGVGdW5jdGlvbiA9IChFZGl0TW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmVkaXREb2N1bWVudFRlbXBsYXRlKEVkaXRNb2RlbCk7XHJcbiAgfTtcclxuXHJcbiAgLy9UZXN0IFNlbmQgRW1haWxcclxuICBzaG93VGVzdEV4cG9ydERvY3VtZW50TW9kYWwoVGVzdEV4cG9ydERvY3VtZW50TW9kYWwsIHR5cGUgPSAxKSB7XHJcbiAgICB0aGlzLmV4cG9ydFR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy5UZXN0RXhwb3J0RG9jdW1lbnRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuVGVzdEV4cG9ydERvY3VtZW50Rm9ybTtcclxuICAgIHRoaXMuVGVzdEV4cG9ydERvY3VtZW50Rm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9XHJcbiAgICAgIHRoaXMuZ2V0VGVzdEV4cG9ydERvY3VtZW50TW9kZWw7XHJcbiAgICB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9XHJcbiAgICAgIHRoaXMuZ2V0VGVzdEV4cG9ydERvY3VtZW50RnVuY3Rpb247XHJcbiAgICB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zLk9uU3VjY2Vzc0hhbmRsZXIgPVxyXG4gICAgICB0aGlzLm9uU3VjY2Vzc0V4cG9ydEhhbmRsZXI7XHJcbiAgICB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zLkRpc2FibGVTdWNjZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICBsZXQgS2V5ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICBLZXkuTmFtZSA9ICdLZXknO1xyXG4gICAgS2V5LkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICBLZXkuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgS2V5LlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuXHJcbiAgICBsZXQgVmFsdWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIFZhbHVlLk5hbWUgPSAnVmFsdWUnO1xyXG4gICAgVmFsdWUuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgIFZhbHVlLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgIFZhbHVlLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuXHJcbiAgICBsZXQgS2V5UmVwZWF0ZXIgPSBuZXcgUmVwZWF0ZXJGaWVsZCgpO1xyXG4gICAgS2V5UmVwZWF0ZXIuQ29udHJvbFR5cGUgPSBEYXRhVHlwZS5UZXh0O1xyXG4gICAgS2V5UmVwZWF0ZXIuQ29udHJvbE9wdGlvbnMgPSBLZXk7XHJcbiAgICBLZXlSZXBlYXRlci5IZWFkZXJUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnS2V5Jyk7XHJcblxyXG4gICAgbGV0IFZhbHVlUmVwZWF0ZXIgPSBuZXcgUmVwZWF0ZXJGaWVsZCgpO1xyXG4gICAgVmFsdWVSZXBlYXRlci5Db250cm9sVHlwZSA9IERhdGFUeXBlLlRleHQ7XHJcbiAgICBWYWx1ZVJlcGVhdGVyLkNvbnRyb2xPcHRpb25zID0gVmFsdWU7XHJcbiAgICBWYWx1ZVJlcGVhdGVyLkhlYWRlclRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdWYWx1ZScpO1xyXG5cclxuICAgIHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMgPSBuZXcgUmVwZWF0ZXJPcHRpb25zKCk7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLklzUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMuTmFtZSA9ICd2YWx1ZXMnO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5EZWxldGVCdXR0b25FeHRyYUNsYXNzZXMgPVxyXG4gICAgICAnYnRuIGJ0bi1kYW5nZXIgYnRuLXNtIGJ0bi1pY29uJztcclxuICAgIHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMuRGVsZXRlQnV0dG9uVGV4dCA9IGA8aSBjbGFzcz1cImZhIGZhLXRyYXNoXCI+PC9pPmA7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLlJlcGVhdGVyVGFibGVFeHRyYUNsYXNzZXMgPVxyXG4gICAgICAndGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS05IGRhdGFUYWJsZSBuby1mb290ZXIgdmFsaWRhdGlvbi10YWJsZS10ZXh0JztcclxuICAgIHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMuUmVwZWF0ZXJUYWJsZVJvd0V4dHJhQ2xhc3NlcyA9XHJcbiAgICAgICd0ZXh0LXN0YXJ0IHRleHQtZ3JheS00MDAgZnctYm9sZGVyIGZzLTcgdGV4dC11cHBlcmNhc2UgZ3MtMCc7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLkFjdGlvbkxhYmVsS2V5ID0gJ0FjdGlvbic7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLkFkZEJ1dHRvbkV4dHJhQ2xhc3NlcyA9XHJcbiAgICAgICdidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrJztcclxuICAgIHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMuQWRkQnV0dG9uVGV4dCA9IGA8aSBjbGFzcz1cImZhIGZhLXBsdXNcIj48L2k+JHt0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXHJcbiAgICAgICdBZGQnXHJcbiAgICApfWA7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLk1pblJlcXVpcmVkSXRlbXMgPSAxO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5SZXBlYXRlclZhbHVlID0gW107XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLlJlcGVhdGVyU3RydWN0dXJlID0gW1xyXG4gICAgICBLZXlSZXBlYXRlcixcclxuICAgICAgVmFsdWVSZXBlYXRlcixcclxuICAgIF07XHJcblxyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihUZXN0RXhwb3J0RG9jdW1lbnRNb2RhbCk7XHJcbiAgfVxyXG4gIGdldFRlc3RFeHBvcnREb2N1bWVudE1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm0udmFsdWU7XHJcbiAgICBsZXQgRXhwb3J0RG9jdW1lbnRUZW1wbGF0ZU1vZGVsID0gbmV3IERvY3VtZW50RXhwb3J0RFRPKCk7XHJcbiAgICBFeHBvcnREb2N1bWVudFRlbXBsYXRlTW9kZWwuSURfR1VJRCA9IHRoaXMuVGVtcGxhdGVJZDtcclxuICAgIGxldCByZXN1bHQ6IERvY3VtZW50RXhwb3J0SXRlbURUT1tdID0gW107XHJcbiAgICBmb3IgKFxyXG4gICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICBpbmRleCA8IHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMuUmVwZWF0ZXJWYWx1ZS5sZW5ndGg7XHJcbiAgICAgIGluZGV4KytcclxuICAgICkge1xyXG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5SZXBlYXRlclZhbHVlW2luZGV4XTtcclxuICAgICAgaWYgKGVsZW1lbnQuS2V5ICYmIGVsZW1lbnQuVmFsdWUpIHtcclxuICAgICAgICBsZXQgaXRlbTogRG9jdW1lbnRFeHBvcnRJdGVtRFRPID0gbmV3IERvY3VtZW50RXhwb3J0SXRlbURUTygpO1xyXG4gICAgICAgIGl0ZW0uS2V5ID0gZWxlbWVudC5LZXk7XHJcbiAgICAgICAgaXRlbS5WYWx1ZSA9IGVsZW1lbnQuVmFsdWU7XHJcbiAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEV4cG9ydERvY3VtZW50VGVtcGxhdGVNb2RlbC5JdGVtcyA9IHJlc3VsdDtcclxuICAgIHBhcmFtQXJyYXkucHVzaChFeHBvcnREb2N1bWVudFRlbXBsYXRlTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfTtcclxuXHJcbiAgZ2V0VGVzdEV4cG9ydERvY3VtZW50RnVuY3Rpb24gPSAoXHJcbiAgICBFeHBvcnREb2N1bWVudFRlbXBsYXRlTW9kZWxcclxuICApOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgaWYgKHRoaXMuZXhwb3J0VHlwZSA9PSAyKVxyXG4gICAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZXhwb3J0V29yZChFeHBvcnREb2N1bWVudFRlbXBsYXRlTW9kZWwpO1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmV4cG9ydFBERihFeHBvcnREb2N1bWVudFRlbXBsYXRlTW9kZWwpO1xyXG4gIH07XHJcblxyXG4gIG9uU3VjY2Vzc0V4cG9ydEhhbmRsZXIgPSBhc3luYyAocmVzdWx0OiBhbnkpID0+IHtcclxuICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XHJcbiAgICBsZXQgbGF0ZXN0X2RhdGUgPSB0aGlzLmRhdGVwaXBlLnRyYW5zZm9ybShub3csICdkZC1NTS15eXl5IEhILm1tJyk7XHJcbiAgICBpZiAodGhpcy5leHBvcnRUeXBlID09IDIpIHtcclxuICAgICAgbGV0IGZpbGVOYW1lID0gdGhpcy5UZW1wbGF0ZUluZm8ubG9jYWxpemVkVGVtcGxhdGVOYW1lICsgJ18nICsgbGF0ZXN0X2RhdGUgKyAnLmRvYyc7XHJcbiAgICAgIHZhciBmaWxlQnVmZmVyTGliID1hd2FpdCB0aGlzLndvcmREb2N1bWVudFNlcnZpY2UuZ2VuZXJhdGVXb3JkQnl0ZUZpbGUocmVzdWx0KVxyXG4gICAgICB0aGlzLmRvd25sb2FkV29yZChmaWxlQnVmZmVyTGliIGFzIGFueSwgXCJMaWJcIitmaWxlTmFtZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZmlsZU5hbWUgPSB0aGlzLlRlbXBsYXRlSW5mby5sb2NhbGl6ZWRUZW1wbGF0ZU5hbWUgKyAnXycgKyBsYXRlc3RfZGF0ZSArICcucGRmJztcclxuICAgIHRoaXMuZG93bmxvYWRQREYocmVzdWx0IGFzIGFueSwgZmlsZU5hbWUpO1xyXG4gIH07XHJcblxyXG4gIC8vT24gZGVzdHJveVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcblxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCIgKm5nSWY9XCJpc0RhdGFMb2FkZWRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlkPVwiYnRuU2V0UGFzc1wiIGNsYXNzPVwiYnRuIGJ0bi1zbSBtZS0zXHJcbiAgICAgICAgICBidG4tbGlnaHQtcHJpbWFyeVwiIChjbGljayk9XCJzaG93RWRpdFRlbXBsYXRlTW9kYWwoRWRpdFRlbXBsYXRlTW9kYWwpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhIGZhLWVkaXRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICA8c3Bhbj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX08L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidG5TZXRQYXNzXCIgY2xhc3M9XCJidG4gYnRuLXNtIG1lLTNcclxuICAgICAgICAgIGJ0bi1saWdodC1wcmltYXJ5XCIgKGNsaWNrKT1cInNob3dUZXN0RXhwb3J0RG9jdW1lbnRNb2RhbChFeHBvcnREb2N1bWVudE1vZGFsKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1maWxlLXBkZlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgIDxzcGFuPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkV4cG9ydFwiKX19IFBERjwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpZD1cImJ0blNldFBhc3NcIiBjbGFzcz1cImJ0biBidG4tc20gbWUtM1xyXG4gICAgICAgICAgYnRuLWxpZ2h0LXByaW1hcnlcIiAoY2xpY2spPVwic2hvd1Rlc3RFeHBvcnREb2N1bWVudE1vZGFsKEV4cG9ydERvY3VtZW50TW9kYWwsMilcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZmlsZS13b3JkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgPHNwYW4+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRXhwb3J0XCIpfX0gV29yZDwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpZD1cImJ0blNldFBhc3NcIiBjbGFzcz1cImJ0biBidG4tc20gbWUtM1xyXG4gICAgICAgICAgYnRuLXByaW1hcnlcIiAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiIChjbGljayk9XCJzaG93R2VuZXJhdGVDb2RlQnlJZE1vZGFsKEdlbmVyYXRlQ29kZU1vZGFsKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1iYXJzXCI+PC9pPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkdlbmVyYXRlQ29kZVwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidG5TZXRQYXNzXCIgY2xhc3M9XCJidG4gYnRuLXNtIG1lLTNcclxuICAgICAgICAgIGJ0bi1wcmltYXJ5XCIgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIiAoY2xpY2spPVwic2hvd0dlbmVyYXRlVXBkYXRlQ29kZUJ5SWRNb2RhbChHZW5lcmF0ZUNvZGVNb2RhbClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEta2V5XCI+PC9pPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkdlbmVyYXRlVXBkYXRlQ29kZVwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB5LTNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtNiBtYi0xMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBoLTEwMCBhbGlnbi1pdGVtcy1jZW50ZXIgXCI+XHJcbiAgICAgICAgICAgIDwhLS1iZWdpbjo6T3B0aW9uLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZmxleC1jb2x1bW4gZmxleC1jZW50ZXIgcm91bmRlZC0zIGJnLWxpZ2h0XHJcbiAgICAgICAgICAgICAgcHktMTAgcHgtMTAgaC0xMDBcIj5cclxuICAgICAgICAgICAgICA8IS0tYmVnaW46OkhlYWRpbmctLT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDwhLS1iZWdpbjo6VGl0bGUtLT5cclxuICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL0FkbWluL0RvY3VtZW50cy9FZGl0VGVtcGxhdGUnLFRlbXBsYXRlSWQsJ2VuJ11cIiByb3V0ZXJMaW5rQWN0aXZlPVwicm91dGVyLWxpbmstYWN0aXZlXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgbWItNVxyXG4gICAgICAgICAgICAgICAgICBmdy1ib2xkZXN0IGZzLTJcIj5cclxuICAgICAgICAgICAgICAgICAgRW5nbGlzaDpcclxuICAgICAgICAgICAgICAgICAge3tUZW1wbGF0ZUluZm8udGVtcGxhdGVOYW1lRU59fVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL0FkbWluL0RvY3VtZW50cy9FZGl0VGVtcGxhdGUnLFRlbXBsYXRlSWQsJ2VuJ11cIiByb3V0ZXJMaW5rQWN0aXZlPVwicm91dGVyLWxpbmstYWN0aXZlXCIgY2xhc3M9XCJidG4gYnRuLXNtXHJcbiAgICAgICAgICAgICAgICAgIGJ0bi1saWdodC1wcmltYXJ5IGJ0bi1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGVuXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgIDwhLS1iZWdpbjo6SXRlbS0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZCBmcy02IHRleHQtZ3JheS04MDAgZmxleC1ncm93LTEgcGUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaW5uZXJIVE1MPVwie3tUZW1wbGF0ZUluZm8uaGVhZGVyRU59fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaW5uZXJIVE1MPVwie3tUZW1wbGF0ZUluZm8uYm9keUVOfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlubmVySFRNTD1cInt7VGVtcGxhdGVJbmZvLmZvb3RlckVOfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS1lbmQ6OlNlbGVjdC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLWVuZDo6T3B0aW9uLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTYgbWItMTBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggaC0xMDAgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDwhLS1iZWdpbjo6T3B0aW9uLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZmxleC1jb2x1bW4gZmxleC1jZW50ZXIgcm91bmRlZC0zIGJnLWxpZ2h0XHJcbiAgICAgICAgICAgICAgcHktMTAgcHgtMTAgaC0xMDBcIj5cclxuICAgICAgICAgICAgICA8IS0tYmVnaW46OkhlYWRpbmctLT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDwhLS1iZWdpbjo6VGl0bGUtLT5cclxuICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL0FkbWluL0RvY3VtZW50cy9FZGl0VGVtcGxhdGUnLFRlbXBsYXRlSWQsJ2FyJ11cIiByb3V0ZXJMaW5rQWN0aXZlPVwicm91dGVyLWxpbmstYWN0aXZlXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgbWItNVxyXG4gICAgICAgICAgICAgICAgICBmdy1ib2xkZXN0IGZzLTJcIj5cclxuICAgICAgICAgICAgICAgICAgQXJhYmljOlxyXG4gICAgICAgICAgICAgICAgICB7e1RlbXBsYXRlSW5mby50ZW1wbGF0ZU5hbWVBUn19XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9BZG1pbi9Eb2N1bWVudHMvRWRpdFRlbXBsYXRlJyxUZW1wbGF0ZUlkLCdhciddXCIgcm91dGVyTGlua0FjdGl2ZT1cInJvdXRlci1saW5rLWFjdGl2ZVwiIGNsYXNzPVwiYnRuIGJ0bi1zbVxyXG4gICAgICAgICAgICAgICAgICBidG4tbGlnaHQtcHJpbWFyeSBidG4taWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBlblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgIDwhLS1iZWdpbjo6SXRlbS0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZCBmcy02IHRleHQtZ3JheS04MDAgZmxleC1ncm93LTEgcGUtMyBhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaW5uZXJIVE1MPVwie3tUZW1wbGF0ZUluZm8uaGVhZGVyQVJ9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaW5uZXJIVE1MPVwie3tUZW1wbGF0ZUluZm8uYm9keUFSfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlubmVySFRNTD1cInt7VGVtcGxhdGVJbmZvLmZvb3RlckFSfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCEtLWVuZDo6U2VsZWN0LS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tZW5kOjpPcHRpb24tLT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gZWRpdCBNb2RhbCAtLT5cclxuPG5nLXRlbXBsYXRlICNFZGl0VGVtcGxhdGVNb2RhbCBsZXQtbW9kYWw+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuXHJcbiAgICAgIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRWRpdFwiKX19XHJcbiAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiVGVtcGxhdGVcIil9fTwvaDE+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cIkVkaXRUZW1wbGF0ZUZvcm1PcHRpb25zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIkVkaXROYW1lXCIgW2dyb3VwXT1cIkVkaXRUZW1wbGF0ZUZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0QXJlYSBbb3B0aW9uc109XCJFZGl0RGVzY3JpcHRpb25cIiBbZ3JvdXBdPVwiRWRpdFRlbXBsYXRlRm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLU11bHRpTGluZ3VhbFRleHRBcmVhPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiIVByb2R1Y3Rpb25Nb2RlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJFZGl0U3lzTmFtZVwiIFtncm91cF09XCJFZGl0VGVtcGxhdGVGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiRWRpdE9yZ2FuaXphdGlvblwiIFtncm91cF09XCJFZGl0VGVtcGxhdGVGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJFZGl0Q2F0ZWdvcnlcIiBbZ3JvdXBdPVwiRWRpdFRlbXBsYXRlRm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiRWRpdE1hc3RlckxheW91dFwiIFtncm91cF09XCJFZGl0VGVtcGxhdGVGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgIDxidXR0b24gI0Nsb3NlRWRpdFRlbXBsYXRlTW9kYWwgaWQ9XCJDbG9zZUVkaXRUZW1wbGF0ZU1vZGFsXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTYXZlTGFiZWxcIil9fTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvQkJTRi1Gb3JtPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuXHJcblxyXG48IS0tIEV4cG9ydCBEb2N1bWVudCBNb2RhbCAtLT5cclxuPG5nLXRlbXBsYXRlICNFeHBvcnREb2N1bWVudE1vZGFsIGxldC1tb2RhbD5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHBiLTAgYm9yZGVyLTAganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTEzIHRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFeHBvcnRcIil9fTwvaDE+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiVGVzdEV4cG9ydERvY3VtZW50Rm9ybU9wdGlvbnNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxCQlNGLXJlcGVhdGVyLXRhYmxlIFtvcHRpb25zXT1cImFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zXCIgW2dyb3VwXT1cIlRlc3RFeHBvcnREb2N1bWVudEZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1yZXBlYXRlci10YWJsZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgIDxidXR0b24gI0Nsb3NlU2VuZEVtYWlsRm9ybSBpZD1cIkNsb3NlU2VuZEVtYWlsRm9ybVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRXhwb3J0XCIpfX08L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L0JCU0YtRm9ybT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG48IS0tIEdlbmVyYXRlQ29kZSBNb2RhbCAtLT5cclxuPG5nLXRlbXBsYXRlICNHZW5lcmF0ZUNvZGVNb2RhbCBsZXQtbW9kYWw+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuXHJcbiAgICAgIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiR2VuZXJhdGVDb2RlXCIpfX08L2gxPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIkdlbmVyYXRlQ29kZUZvcm1cIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJSb3dcIj5cclxuICAgICAgICA8QkJTRi1UZXh0QXJlYSBbb3B0aW9uc109XCJHZW5lcmF0ZUNvZGVUZXh0QXJlYVwiIFtncm91cF09XCJHZW5lcmF0ZUNvZGVGb3JtXCIgI0dlbmVyYXRlQ29kZUlucHV0PlxyXG4gICAgICAgIDwvQkJTRi1UZXh0QXJlYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgPGJ1dHRvbiAjQ2xvc2VHZW5lcmF0ZUNvZGVNb2RhbCBpZD1cIkNsb3NlR2VuZXJhdGVDb2RlTW9kYWxcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTMgYnRuLXNtXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIChjbGljayk9XCJjb3B5SW5wdXRNZXNzYWdlKClcIj5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNvcHlUb0NsaXBib2FyZFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|