@bnsights/bbsf-admin-portal 1.0.26 → 1.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/README.md +11 -3
  2. package/bnsights-bbsf-admin-portal-1.0.30.tgz +0 -0
  3. package/bundles/bnsights-bbsf-admin-portal.umd.js +1945 -1154
  4. package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
  5. package/esm2015/lib/Pages/ActiveDirectories/active-directory/active-directory.component.js +1 -2
  6. package/esm2015/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.js +1 -2
  7. package/esm2015/lib/Pages/_layout/components/footer/footer.component.js +11 -2
  8. package/esm2015/lib/Pages/authentication/auth-callback/auth-callback.component.js +1 -2
  9. package/esm2015/lib/Pages/configurations/configuration/configuration.component.js +61 -66
  10. package/esm2015/lib/Pages/departments/department/department.component.js +5 -5
  11. package/esm2015/lib/Pages/departments/department-info/department-info.component.js +3 -3
  12. package/esm2015/lib/Pages/helpCenter/help-center/help-center.component.js +20 -23
  13. package/esm2015/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.js +6 -6
  14. package/esm2015/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.js +6 -6
  15. package/esm2015/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.js +51 -55
  16. package/esm2015/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.js +204 -0
  17. package/esm2015/lib/Pages/localizations/localizations.component.js +4 -3
  18. package/esm2015/lib/Pages/localizations/localizations.module.js +6 -6
  19. package/esm2015/lib/Pages/lookups/lookup/lookup.component.js +9 -8
  20. package/esm2015/lib/Pages/lookups/lookup-group/lookup-group.component.js +4 -4
  21. package/esm2015/lib/Pages/lookups/lookup-item/lookup-item.component.js +7 -9
  22. package/esm2015/lib/Pages/notifications/edit/edit.component.js +5 -5
  23. package/esm2015/lib/Pages/notifications/edit-email/edit-email.component.js +16 -20
  24. package/esm2015/lib/Pages/notifications/edit-sms/edit-sms.component.js +11 -14
  25. package/esm2015/lib/Pages/notifications/master-layouts/master-layouts.component.js +2 -2
  26. package/esm2015/lib/Pages/notifications/notifications-routing.module.js +5 -3
  27. package/esm2015/lib/Pages/notifications/template-info/template-info.component.js +20 -24
  28. package/esm2015/lib/Pages/notifications/templates/templates.component.js +18 -21
  29. package/esm2015/lib/Pages/providers/provider/provider.component.js +112 -28
  30. package/esm2015/lib/Pages/publicHolidays/public-holiday/public-holiday.component.js +11 -11
  31. package/esm2015/lib/Pages/roles/permission-set-info/permission-set-info.component.js +3 -3
  32. package/esm2015/lib/Pages/roles/permissions/permissions.component.js +8 -7
  33. package/esm2015/lib/Pages/roles/permissionsets/permissionsets.component.js +11 -10
  34. package/esm2015/lib/Pages/sectors/department-info/department-info.component.js +2 -2
  35. package/esm2015/lib/Pages/sectors/sector/sector.component.js +4 -5
  36. package/esm2015/lib/Pages/sectors/sector-info/sector-info.component.js +3 -3
  37. package/esm2015/lib/Pages/shared/Enums/ProviderType.js +7 -0
  38. package/esm2015/lib/Pages/shared/Services/WorkflowActivityService.service.js +1 -1
  39. package/esm2015/lib/Pages/shared/Services/localizationsService.service .js +7 -1
  40. package/esm2015/lib/Pages/shared/Services/provider.service.js +7 -1
  41. package/esm2015/lib/Pages/shared/config/environment.js +2 -2
  42. package/esm2015/lib/Pages/shared/constants.js +130 -0
  43. package/esm2015/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.js +1 -1
  44. package/esm2015/lib/Pages/shared/models/DepartmentModels/DepartmentModel.js +2 -5
  45. package/esm2015/lib/Pages/shared/models/DepartmentModels/DepartmentUsersIDRequestModel.js +1 -1
  46. package/esm2015/lib/Pages/shared/models/HelpCenterModels/HelpCenterItemModel.js +1 -1
  47. package/esm2015/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.js +1 -1
  48. package/esm2015/lib/Pages/shared/models/ImpersonationRuleModels/ParticipantModel.js +1 -1
  49. package/esm2015/lib/Pages/shared/models/LocalizationModels/LocalizationReplaceTextModel.js +6 -0
  50. package/esm2015/lib/Pages/shared/models/Lookups/LookupGroupModel.js +1 -1
  51. package/esm2015/lib/Pages/shared/models/Lookups/LookupItem.js +1 -1
  52. package/esm2015/lib/Pages/shared/models/Lookups/LookupModel.js +1 -1
  53. package/esm2015/lib/Pages/shared/models/NotificationsModels/EmailHeaderAndFooterTemplate.js +1 -1
  54. package/esm2015/lib/Pages/shared/models/NotificationsModels/EmailTemplateInfoDTO.js +1 -1
  55. package/esm2015/lib/Pages/shared/models/NotificationsModels/EmailTemplateTesterModel.js +1 -1
  56. package/esm2015/lib/Pages/shared/models/NotificationsModels/SMSTemplateInfoDTO.js +1 -1
  57. package/esm2015/lib/Pages/shared/models/NotificationsModels/SMSTemplateTesterModel.js +1 -1
  58. package/esm2015/lib/Pages/shared/models/NotificationsModels/SendEmailTemplateModel.js +1 -1
  59. package/esm2015/lib/Pages/shared/models/NotificationsModels/TemplateDTO.js +1 -1
  60. package/esm2015/lib/Pages/shared/models/NotificationsModels/TemplateEditViewModel.js +1 -1
  61. package/esm2015/lib/Pages/shared/models/PermissionsModels/PermissionModel.js +1 -1
  62. package/esm2015/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.js +1 -1
  63. package/esm2015/lib/Pages/shared/models/PermissionsModels/PermissionSetUsersIDRequestModel.js +1 -1
  64. package/esm2015/lib/Pages/shared/models/ProviderModels/DefaultProviderModel.js +1 -1
  65. package/esm2015/lib/Pages/shared/models/ProviderModels/EmailProviderTesterModel.js +3 -0
  66. package/esm2015/lib/Pages/shared/models/ProviderModels/ProviderModel.js +1 -1
  67. package/esm2015/lib/Pages/shared/models/ProviderModels/SMSProviderTesterModel.js +3 -0
  68. package/esm2015/lib/Pages/shared/models/PublicHolidayModels/PublicHolidayModel.js +1 -1
  69. package/esm2015/lib/Pages/shared/models/SectorModels/SectorDepartmentModel.js +1 -1
  70. package/esm2015/lib/Pages/shared/models/SectorModels/SectorModel.js +1 -1
  71. package/esm2015/lib/Pages/shared/models/UserModels/AddUserModel.js +1 -3
  72. package/esm2015/lib/Pages/shared/models/UserModels/EditUserModel.js +1 -1
  73. package/esm2015/lib/Pages/shared/models/WorkflowModels/VariableLookupModel.js +1 -1
  74. package/esm2015/lib/Pages/shared/models/WorkflowModels/WFActivityModel.js +1 -1
  75. package/esm2015/lib/Pages/shared/models/WorkflowModels/WFActivityOutcomeModel.js +1 -1
  76. package/esm2015/lib/Pages/shared/models/WorkflowModels/WFActivityVariablesModel.js +1 -1
  77. package/esm2015/lib/Pages/shared/models/WorkflowModels/WFCreationModel.js +1 -1
  78. package/esm2015/lib/Pages/shared/models/WorkflowModels/WFVariableModel.js +1 -1
  79. package/esm2015/lib/Pages/users/users.component.js +14 -15
  80. package/esm2015/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.js +33 -32
  81. package/esm2015/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.js +75 -99
  82. package/esm2015/lib/Pages/workflows/tabs/tabs.component.js +25 -25
  83. package/esm2015/lib/Pages/workflows/workflow/workflow.component.js +5 -5
  84. package/fesm2015/bnsights-bbsf-admin-portal.js +1754 -1109
  85. package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
  86. package/lib/Pages/_layout/components/footer/footer.component.d.ts +2 -0
  87. package/lib/Pages/configurations/configuration/configuration.component.d.ts +5 -6
  88. package/lib/Pages/departments/department/department.component.d.ts +2 -2
  89. package/lib/Pages/helpCenter/help-center/help-center.component.d.ts +2 -2
  90. package/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.d.ts +2 -2
  91. package/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.d.ts +2 -2
  92. package/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.d.ts +4 -4
  93. package/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.d.ts +51 -0
  94. package/lib/Pages/localizations/localizations.module.d.ts +12 -11
  95. package/lib/Pages/lookups/lookup/lookup.component.d.ts +1 -1
  96. package/lib/Pages/lookups/lookup-group/lookup-group.component.d.ts +1 -1
  97. package/lib/Pages/lookups/lookup-item/lookup-item.component.d.ts +1 -2
  98. package/lib/Pages/notifications/edit/edit.component.d.ts +1 -2
  99. package/lib/Pages/notifications/edit-email/edit-email.component.d.ts +1 -2
  100. package/lib/Pages/notifications/edit-sms/edit-sms.component.d.ts +1 -2
  101. package/lib/Pages/notifications/template-info/template-info.component.d.ts +1 -1
  102. package/lib/Pages/notifications/templates/templates.component.d.ts +2 -2
  103. package/lib/Pages/providers/provider/provider.component.d.ts +28 -6
  104. package/lib/Pages/publicHolidays/public-holiday/public-holiday.component.d.ts +2 -2
  105. package/lib/Pages/roles/permissions/permissions.component.d.ts +1 -1
  106. package/lib/Pages/roles/permissionsets/permissionsets.component.d.ts +1 -1
  107. package/lib/Pages/sectors/sector/sector.component.d.ts +1 -1
  108. package/lib/Pages/shared/Enums/ProviderType.d.ts +5 -0
  109. package/lib/Pages/shared/Services/WorkflowActivityService.service.d.ts +2 -2
  110. package/lib/Pages/shared/Services/localizationsService.service .d.ts +3 -0
  111. package/lib/Pages/shared/Services/provider.service.d.ts +4 -0
  112. package/lib/Pages/shared/constants.d.ts +129 -0
  113. package/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.d.ts +8 -9
  114. package/lib/Pages/shared/models/DepartmentModels/DepartmentModel.d.ts +1 -2
  115. package/lib/Pages/shared/models/DepartmentModels/DepartmentUsersIDRequestModel.d.ts +1 -1
  116. package/lib/Pages/shared/models/HelpCenterModels/HelpCenterItemModel.d.ts +3 -5
  117. package/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.d.ts +1 -1
  118. package/lib/Pages/shared/models/ImpersonationRuleModels/ParticipantModel.d.ts +4 -4
  119. package/lib/Pages/shared/models/LocalizationModels/LocalizationReplaceTextModel.d.ts +9 -0
  120. package/lib/Pages/shared/models/Lookups/LookupGroupModel.d.ts +1 -2
  121. package/lib/Pages/shared/models/Lookups/LookupItem.d.ts +3 -4
  122. package/lib/Pages/shared/models/Lookups/LookupModel.d.ts +3 -4
  123. package/lib/Pages/shared/models/NotificationsModels/EmailHeaderAndFooterTemplate.d.ts +1 -2
  124. package/lib/Pages/shared/models/NotificationsModels/EmailTemplateInfoDTO.d.ts +3 -3
  125. package/lib/Pages/shared/models/NotificationsModels/EmailTemplateTesterModel.d.ts +1 -1
  126. package/lib/Pages/shared/models/NotificationsModels/SMSTemplateInfoDTO.d.ts +2 -2
  127. package/lib/Pages/shared/models/NotificationsModels/SMSTemplateTesterModel.d.ts +1 -1
  128. package/lib/Pages/shared/models/NotificationsModels/SendEmailTemplateModel.d.ts +1 -1
  129. package/lib/Pages/shared/models/NotificationsModels/TemplateDTO.d.ts +5 -6
  130. package/lib/Pages/shared/models/NotificationsModels/TemplateEditViewModel.d.ts +1 -2
  131. package/lib/Pages/shared/models/PermissionsModels/PermissionModel.d.ts +2 -2
  132. package/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.d.ts +3 -3
  133. package/lib/Pages/shared/models/PermissionsModels/PermissionSetUsersIDRequestModel.d.ts +1 -1
  134. package/lib/Pages/shared/models/ProviderModels/DefaultProviderModel.d.ts +2 -2
  135. package/lib/Pages/shared/models/ProviderModels/EmailProviderTesterModel.d.ts +7 -0
  136. package/lib/Pages/shared/models/ProviderModels/ProviderModel.d.ts +3 -3
  137. package/lib/Pages/shared/models/ProviderModels/SMSProviderTesterModel.d.ts +6 -0
  138. package/lib/Pages/shared/models/PublicHolidayModels/PublicHolidayModel.d.ts +2 -3
  139. package/lib/Pages/shared/models/SectorModels/SectorDepartmentModel.d.ts +1 -1
  140. package/lib/Pages/shared/models/SectorModels/SectorModel.d.ts +1 -2
  141. package/lib/Pages/shared/models/UserModels/AddUserModel.d.ts +3 -3
  142. package/lib/Pages/shared/models/UserModels/EditUserModel.d.ts +2 -2
  143. package/lib/Pages/shared/models/WorkflowModels/VariableLookupModel.d.ts +2 -3
  144. package/lib/Pages/shared/models/WorkflowModels/WFActivityModel.d.ts +10 -11
  145. package/lib/Pages/shared/models/WorkflowModels/WFActivityOutcomeModel.d.ts +3 -3
  146. package/lib/Pages/shared/models/WorkflowModels/WFActivityVariablesModel.d.ts +3 -3
  147. package/lib/Pages/shared/models/WorkflowModels/WFCreationModel.d.ts +1 -3
  148. package/lib/Pages/shared/models/WorkflowModels/WFVariableModel.d.ts +3 -3
  149. package/lib/Pages/users/users.component.d.ts +2 -2
  150. package/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.d.ts +1 -1
  151. package/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.d.ts +3 -4
  152. package/lib/Pages/workflows/tabs/tabs.component.d.ts +4 -4
  153. package/lib/Pages/workflows/workflow/workflow.component.d.ts +2 -2
  154. package/package.json +3 -3
  155. package/bnsights-bbsf-admin-portal-1.0.26.tgz +0 -0
  156. package/esm2015/lib/Pages/shared/Enums/ConfigurationScope.js +0 -8
  157. package/esm2015/lib/Pages/shared/Enums/ConfigurationType.js +0 -8
  158. package/esm2015/lib/Pages/shared/Enums/ConfigurationValueSource.js +0 -6
  159. package/esm2015/lib/Pages/shared/Enums/ParticipantType.js +0 -8
  160. package/lib/Pages/shared/Enums/ConfigurationScope.d.ts +0 -5
  161. package/lib/Pages/shared/Enums/ConfigurationType.d.ts +0 -6
  162. package/lib/Pages/shared/Enums/ConfigurationValueSource.d.ts +0 -4
  163. package/lib/Pages/shared/Enums/ParticipantType.d.ts +0 -6
@@ -21,8 +21,6 @@ export class EditEmailComponent {
21
21
  this.activatedRoute = activatedRoute;
22
22
  this.router = router;
23
23
  this.requestHandlerService = requestHandlerService;
24
- //Page Requirements
25
- this.TemplateIdEnc = "";
26
24
  this.Lang = "";
27
25
  //Initialize form and controls
28
26
  this.EditEmailForm = new FormGroup({});
@@ -31,13 +29,12 @@ export class EditEmailComponent {
31
29
  let paramArray = [];
32
30
  let ResultModel = this.EditEmailForm.value;
33
31
  let EditModel = new TemplateEditViewModel();
34
- EditModel.ID = Number(this.TemplateId);
35
- EditModel.IDEncrypted = this.TemplateInfo.idEncrypted;
32
+ EditModel.ID_GUID = this.TemplateId;
36
33
  EditModel.IsEmail = true;
37
34
  EditModel.IsSms = false;
38
35
  EditModel.TemplateName = this.TemplateInfo.templateName;
39
36
  EditModel.Language = this.Lang;
40
- EditModel.emailtemplateinfo.ID = this.TemplateInfo.emailtemplateinfo.id;
37
+ EditModel.emailtemplateinfo.ID_GUID = this.TemplateInfo.emailTemplateInfo.iD_GUID;
41
38
  EditModel.emailtemplateinfo.EmailBody.Arabic = ResultModel.EmailBodyInArabic;
42
39
  EditModel.emailtemplateinfo.EmailBody.English = ResultModel.EmailBodyInEnglish;
43
40
  EditModel.emailtemplateinfo.EmailSubject.Arabic = ResultModel.EmailSubjectInArabic;
@@ -56,7 +53,7 @@ export class EditEmailComponent {
56
53
  this.cancelEdit();
57
54
  };
58
55
  this.activatedRoute.params.subscribe(params => {
59
- this.TemplateIdEnc = params['id'];
56
+ this.TemplateId = params['id'];
60
57
  this.Lang = params['lang'];
61
58
  });
62
59
  }
@@ -69,10 +66,10 @@ export class EditEmailComponent {
69
66
  });
70
67
  }
71
68
  initializePage() {
72
- this.templateService.getTemplateInfoByLang(this.TemplateIdEnc, this.Lang).subscribe((result) => {
69
+ this.templateService.getTemplateInfoByLang(this.TemplateId, this.Lang).subscribe((result) => {
73
70
  let Result = result;
74
71
  this.TemplateInfo = Result.val;
75
- let TemplateName = this.TemplateInfo.emailtemplateinfo.emailSubjectStr;
72
+ let TemplateName = this.TemplateInfo.emailTemplateInfo.emailSubjectStr;
76
73
  if (TemplateName == null || TemplateName == undefined)
77
74
  TemplateName = "";
78
75
  PageInfoService.PageTitle = this.utilityService.getResourceValue("Edit");
@@ -81,7 +78,7 @@ export class EditEmailComponent {
81
78
  { title: '', path: '', isSeparator: true, isActive: false },
82
79
  { title: this.utilityService.getResourceValue("Templates"), path: '/Admin/Notifications/Templates', isSeparator: false, isActive: false },
83
80
  { title: '', path: '', isSeparator: true, isActive: false },
84
- { title: TemplateName != "" ? this.utilityService.getResourceValue(TemplateName) : "", path: "/Admin/Notifications/TemplateInfo/" + this.TemplateInfo.idEncrypted, isSeparator: false, isActive: false },
81
+ { title: TemplateName != "" ? this.utilityService.getResourceValue(TemplateName) : "", path: "/Admin/Notifications/TemplateInfo/" + this.TemplateInfo.iD_GUID, isSeparator: false, isActive: false },
85
82
  { title: '', path: '', isSeparator: true, isActive: false }
86
83
  ];
87
84
  this.pageInfoService.calculateTitle();
@@ -93,57 +90,56 @@ export class EditEmailComponent {
93
90
  this.EditEmailFormOptions.GetModelFunction = this.getEditEmailModel;
94
91
  this.EditEmailFormOptions.ServiceSubmitFunction = this.getEditEmailFunction;
95
92
  this.EditEmailFormOptions.OnSuccessHandler = this.onEditEmailSuccess;
96
- this.TemplateId = this.TemplateInfo.id;
97
93
  this.EmailBodyInEnglish = new HtmlEditorOptions();
98
94
  this.EmailBodyInEnglish.Name = "EmailBodyInEnglish";
99
95
  this.EmailBodyInEnglish.LabelKey = "EmailBodyInEnglish";
100
96
  this.EmailBodyInEnglish.IsRequired = true;
101
- this.EmailBodyInEnglish.Value = this.TemplateInfo.emailtemplateinfo.emailBody.english;
97
+ this.EmailBodyInEnglish.Value = this.TemplateInfo.emailTemplateInfo.emailBody.english;
102
98
  this.EmailBodyInArabic = new HtmlEditorOptions();
103
99
  this.EmailBodyInArabic.Name = "EmailBodyInArabic";
104
100
  this.EmailBodyInArabic.LabelKey = "EmailBodyInArabic";
105
101
  this.EmailBodyInArabic.IsRequired = true;
106
102
  this.EmailBodyInArabic.ForceDirection = ForceDirection.Arabic;
107
- this.EmailBodyInArabic.Value = this.TemplateInfo.emailtemplateinfo.emailBody.arabic;
103
+ this.EmailBodyInArabic.Value = this.TemplateInfo.emailTemplateInfo.emailBody.arabic;
108
104
  this.EmailSubjectInEnglish = new TextBoxOptions();
109
105
  this.EmailSubjectInEnglish.Name = "EmailSubjectInEnglish";
110
106
  this.EmailSubjectInEnglish.LabelValue = "EmailSubjectInEnglish";
111
107
  this.EmailSubjectInEnglish.LabelKey = "EmailSubjectInEnglish";
112
108
  this.EmailSubjectInEnglish.Type = InputType.Text;
113
- this.EmailSubjectInEnglish.Value = this.TemplateInfo.emailtemplateinfo.emailSubject.english;
109
+ this.EmailSubjectInEnglish.Value = this.TemplateInfo.emailTemplateInfo.emailSubject.english;
114
110
  this.EmailSubjectInArabic = new TextBoxOptions();
115
111
  this.EmailSubjectInArabic.Name = "EmailSubjectInArabic";
116
112
  this.EmailSubjectInArabic.LabelKey = "EmailSubjectInArabic";
117
113
  this.EmailSubjectInArabic.Type = InputType.Text;
118
114
  this.EmailSubjectInArabic.ForceDirection = ForceDirection.Arabic;
119
- this.EmailSubjectInArabic.Value = this.TemplateInfo.emailtemplateinfo.emailSubject.arabic;
115
+ this.EmailSubjectInArabic.Value = this.TemplateInfo.emailTemplateInfo.emailSubject.arabic;
120
116
  this.HtmlBodyTagAttributesEnglish = new TextBoxOptions();
121
117
  this.HtmlBodyTagAttributesEnglish.Name = "HtmlBodyTagAttributesEnglish";
122
118
  this.HtmlBodyTagAttributesEnglish.LabelKey = "HtmlBodyTagAttributesEnglish";
123
119
  this.HtmlBodyTagAttributesEnglish.Type = InputType.Text;
124
- this.HtmlBodyTagAttributesEnglish.Value = this.TemplateInfo.emailtemplateinfo.emailHtmlBodyTagAttributes.english;
120
+ this.HtmlBodyTagAttributesEnglish.Value = this.TemplateInfo.emailTemplateInfo.emailHtmlBodyTagAttributes.english;
125
121
  this.HtmlBodyTagAttributesArabic = new TextBoxOptions();
126
122
  this.HtmlBodyTagAttributesArabic.Name = "HtmlBodyTagAttributesArabic";
127
123
  this.HtmlBodyTagAttributesArabic.LabelKey = "HtmlBodyTagAttributesArabic";
128
124
  this.HtmlBodyTagAttributesArabic.Type = InputType.Text;
129
125
  this.HtmlBodyTagAttributesArabic.ForceDirection = ForceDirection.Arabic;
130
- this.HtmlBodyTagAttributesArabic.Value = this.TemplateInfo.emailtemplateinfo.emailHtmlBodyTagAttributes.arabic;
126
+ this.HtmlBodyTagAttributesArabic.Value = this.TemplateInfo.emailTemplateInfo.emailHtmlBodyTagAttributes.arabic;
131
127
  this.HTMLHeadSectionInEnglish = new TextBoxOptions();
132
128
  this.HTMLHeadSectionInEnglish.Name = "HTMLHeadSectionInEnglish";
133
129
  this.HTMLHeadSectionInEnglish.LabelKey = "HTMLHeadSectionInEnglish";
134
130
  this.HTMLHeadSectionInEnglish.Type = InputType.Text;
135
- this.HTMLHeadSectionInEnglish.Value = this.TemplateInfo.emailtemplateinfo.emailHtmlHeadSection.english;
131
+ this.HTMLHeadSectionInEnglish.Value = this.TemplateInfo.emailTemplateInfo.emailHtmlHeadSection.english;
136
132
  this.HTMLHeadSectionInArabic = new TextBoxOptions();
137
133
  this.HTMLHeadSectionInArabic.Name = "HTMLHeadSectionInArabic";
138
134
  this.HTMLHeadSectionInArabic.LabelKey = "HTMLHeadSectionInArabic";
139
135
  this.HTMLHeadSectionInArabic.Type = InputType.Text;
140
136
  this.HTMLHeadSectionInArabic.ForceDirection = ForceDirection.Arabic;
141
- this.HTMLHeadSectionInArabic.Value = this.TemplateInfo.emailtemplateinfo.emailHtmlHeadSection.arabic;
137
+ this.HTMLHeadSectionInArabic.Value = this.TemplateInfo.emailTemplateInfo.emailHtmlHeadSection.arabic;
142
138
  this.IsFormLoaded = true;
143
139
  });
144
140
  }
145
141
  cancelEdit() {
146
- this.router.navigate(['/Admin/Notifications/TemplateInfo', this.TemplateIdEnc]);
142
+ this.router.navigate(['/Admin/Notifications/TemplateInfo', this.TemplateId]);
147
143
  }
148
144
  //Change Lang
149
145
  changeCurrentLanguage(lang) {
@@ -163,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
163
159
  templateUrl: './edit-email.component.html'
164
160
  }]
165
161
  }], ctorParameters: function () { return [{ type: i1.PageInfoService }, { type: i2.UtilityService }, { type: i2.BBSFTranslateService }, { type: i3.TemplateService }, { type: i4.ActivatedRoute }, { type: i4.Router }, { type: i2.RequestHandlerService }]; } });
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1lbWFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL25vdGlmaWNhdGlvbnMvZWRpdC1lbWFpbC9lZGl0LWVtYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbm90aWZpY2F0aW9ucy9lZGl0LWVtYWlsL2VkaXQtZW1haWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUVBQWlFLENBQUM7Ozs7Ozs7OztBQVF4RyxNQUFNLE9BQU8sa0JBQWtCO0lBcUI3QixZQUFvQixlQUFnQyxFQUFTLGNBQThCLEVBQ2pGLG9CQUEwQyxFQUFVLGVBQWdDLEVBQ3BGLGNBQThCLEVBQVUsTUFBYyxFQUFVLHFCQUE0QztRQUZsRyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBUyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDakYseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNwRixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtR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K0JELFVBQVU7UUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLG1DQUFtQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxhQUFhO0lBQ2IscUJBQXFCLENBQUMsSUFBWTtRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFBWTtJQUNaLFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7Z0hBdEtVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLHNEQ2QvQixzNEdBaUZBOzRGRG5FYSxrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLDZCQUE2QjtpQkFDM0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGb3JjZURpcmVjdGlvbiwgRm9ybU9wdGlvbnMsIEh0bWxFZGl0b3JPcHRpb25zLCBJbnB1dFR5cGUsIFRleHRCb3hPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fbWV0cm9uaWMvY29yZS9zZXJ2aWNlcy9wYWdlLWluZm8uc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9UZW1wbGF0ZVNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlRWRpdFZpZXdNb2RlbCB9IGZyb20gJy4vLi4vLi4vc2hhcmVkL21vZGVscy9Ob3RpZmljYXRpb25zTW9kZWxzL1RlbXBsYXRlRWRpdFZpZXdNb2RlbCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBCQlNGVHJhbnNsYXRlU2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZWRpdC1lbWFpbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtZW1haWwuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0RW1haWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vUGFnZSBSZXF1aXJlbWVudHNcclxuICBUZW1wbGF0ZUlkRW5jOiBzdHJpbmcgPSBcIlwiXHJcbiAgVGVtcGxhdGVJZDogbnVtYmVyO1xyXG4gIExhbmc6IHN0cmluZyA9IFwiXCJcclxuICBUZW1wbGF0ZUluZm86IGFueVxyXG4gIElzRm9ybUxvYWRlZDpib29sZWFuXHJcblxyXG4gIC8vSW5pdGlhbGl6ZSBmb3JtIGFuZCBjb250cm9sc1xyXG4gIEVkaXRFbWFpbEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBFZGl0RW1haWxGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucztcclxuICBFbWFpbFN1YmplY3RJbkVuZ2xpc2g6IFRleHRCb3hPcHRpb25zO1xyXG4gIEVtYWlsU3ViamVjdEluQXJhYmljOiBUZXh0Qm94T3B0aW9ucztcclxuICBFbWFpbEJvZHlJbkVuZ2xpc2g6IEh0bWxFZGl0b3JPcHRpb25zO1xyXG4gIEVtYWlsQm9keUluQXJhYmljOiBIdG1sRWRpdG9yT3B0aW9ucztcclxuICBIdG1sQm9keVRhZ0F0dHJpYnV0ZXNFbmdsaXNoOiBUZXh0Qm94T3B0aW9ucztcclxuICBIdG1sQm9keVRhZ0F0dHJpYnV0ZXNBcmFiaWM6IFRleHRCb3hPcHRpb25zO1xyXG4gIEhUTUxIZWFkU2VjdGlvbkluRW5nbGlzaDogVGV4dEJveE9wdGlvbnM7XHJcbiAgSFRNTEhlYWRTZWN0aW9uSW5BcmFiaWM6IFRleHRCb3hPcHRpb25zO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYWdlSW5mb1NlcnZpY2U6IFBhZ2VJbmZvU2VydmljZSwgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgYmJzZlRyYW5zbGF0ZVNlcnZpY2U6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIHRlbXBsYXRlU2VydmljZTogVGVtcGxhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UpIHtcclxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICB0aGlzLlRlbXBsYXRlSWRFbmMgPSBwYXJhbXNbJ2lkJ107XHJcbiAgICAgIHRoaXMuTGFuZyA9IHBhcmFtc1snbGFuZyddO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuYmJzZlRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpPT57XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmdldFRlbXBsYXRlSW5mb0J5TGFuZyh0aGlzLlRlbXBsYXRlSWRFbmMsIHRoaXMuTGFuZykuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgbGV0IFJlc3VsdDogYW55ID0gcmVzdWx0XHJcbiAgICAgIHRoaXMuVGVtcGxhdGVJbmZvID0gUmVzdWx0LnZhbDtcclxuICAgICAgbGV0IFRlbXBsYXRlTmFtZTogc3RyaW5nID0gdGhpcy5UZW1wbGF0ZUluZm8uZW1haWx0ZW1wbGF0ZWluZm8uZW1haWxTdWJqZWN0U3RyO1xyXG4gICAgICBpZiAoVGVtcGxhdGVOYW1lID09IG51bGwgfHwgVGVtcGxhdGVOYW1lID09IHVuZGVmaW5lZClcclxuICAgICAgICBUZW1wbGF0ZU5hbWUgPSBcIlwiXHJcbiAgICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlVGl0bGUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpXHJcbiAgICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnMgPSBbXHJcbiAgICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG9tZVwiKSwgcGF0aDogJy9BZG1pbi9Ib21lJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJUZW1wbGF0ZXNcIiksIHBhdGg6ICcvQWRtaW4vTm90aWZpY2F0aW9ucy9UZW1wbGF0ZXMnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6IFRlbXBsYXRlTmFtZSAhPSBcIlwiID8gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFRlbXBsYXRlTmFtZSkgOiBcIlwiLCBwYXRoOiBcIi9BZG1pbi9Ob3RpZmljYXRpb25zL1RlbXBsYXRlSW5mby9cIiArIHRoaXMuVGVtcGxhdGVJbmZvLmlkRW5jcnlwdGVkLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9XHJcblxyXG5cclxuICAgICAgXTtcclxuICAgICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuXHJcbiAgICAgIC8vSW5pdGlhbGl6ZSBmb3JtIGFuZCBjb250cm9sc1xyXG4gICAgICB0aGlzLkVkaXRFbWFpbEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgICAgdGhpcy5FZGl0RW1haWxGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLkVkaXRFbWFpbEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuRWRpdEVtYWlsRm9ybVxyXG4gICAgICB0aGlzLkVkaXRFbWFpbEZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEVkaXRFbWFpbE1vZGVsO1xyXG4gICAgICB0aGlzLkVkaXRFbWFpbEZvcm1PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0RWRpdEVtYWlsRnVuY3Rpb247XHJcbiAgICAgIHRoaXMuRWRpdEVtYWlsRm9ybU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25FZGl0RW1haWxTdWNjZXNzO1xyXG5cclxuICAgICAgdGhpcy5UZW1wbGF0ZUlkID0gdGhpcy5UZW1wbGF0ZUluZm8uaWQ7XHJcblxyXG4gICAgICB0aGlzLkVtYWlsQm9keUluRW5nbGlzaCA9IG5ldyBIdG1sRWRpdG9yT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLkVtYWlsQm9keUluRW5nbGlzaC5OYW1lID0gXCJFbWFpbEJvZHlJbkVuZ2xpc2hcIlxyXG4gICAgICB0aGlzLkVtYWlsQm9keUluRW5nbGlzaC5MYWJlbEtleSA9IFwiRW1haWxCb2R5SW5FbmdsaXNoXCJcclxuICAgICAgdGhpcy5FbWFpbEJvZHlJbkVuZ2xpc2guSXNSZXF1aXJlZCA9IHRydWVcclxuICAgICAgdGhpcy5FbWFpbEJvZHlJbkVuZ2xpc2guVmFsdWUgPSB0aGlzLlRlbXBsYXRlSW5mby5lbWFpbHRlbXBsYXRlaW5mby5lbWFpbEJvZHkuZW5nbGlzaDtcclxuXHJcbiAgICAgIHRoaXMuRW1haWxCb2R5SW5BcmFiaWMgPSBuZXcgSHRtbEVkaXRvck9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5FbWFpbEJvZHlJbkFyYWJpYy5OYW1lID0gXCJFbWFpbEJvZHlJbkFyYWJpY1wiXHJcbiAgICAgIHRoaXMuRW1haWxCb2R5SW5BcmFiaWMuTGFiZWxLZXkgPSBcIkVtYWlsQm9keUluQXJhYmljXCJcclxuICAgICAgdGhpcy5FbWFpbEJvZHlJbkFyYWJpYy5Jc1JlcXVpcmVkID0gdHJ1ZVxyXG4gICAgICB0aGlzLkVtYWlsQm9keUluQXJhYmljLkZvcmNlRGlyZWN0aW9uID0gRm9yY2VEaXJlY3Rpb24uQXJhYmljXHJcbiAgICAgIHRoaXMuRW1haWxCb2R5SW5BcmFiaWMuVmFsdWUgPSB0aGlzLlRlbXBsYXRlSW5mby5lbWFpbHRlbXBsYXRlaW5mby5lbWFpbEJvZHkuYXJhYmljO1xyXG5cclxuICAgICAgdGhpcy5FbWFpbFN1YmplY3RJbkVuZ2xpc2ggPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5FbWFpbFN1YmplY3RJbkVuZ2xpc2guTmFtZSA9IFwiRW1haWxTdWJqZWN0SW5FbmdsaXNoXCJcclxuICAgICAgdGhpcy5FbWFpbFN1YmplY3RJbkVuZ2xpc2guTGFiZWxWYWx1ZSA9IFwiRW1haWxTdWJqZWN0SW5FbmdsaXNoXCJcclxuICAgICAgdGhpcy5FbWFpbFN1YmplY3RJbkVuZ2xpc2guTGFiZWxLZXkgPSBcIkVtYWlsU3ViamVjdEluRW5nbGlzaFwiXHJcbiAgICAgIHRoaXMuRW1haWxTdWJqZWN0SW5FbmdsaXNoLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLkVtYWlsU3ViamVjdEluRW5nbGlzaC5WYWx1ZSA9IHRoaXMuVGVtcGxhdGVJbmZvLmVtYWlsdGVtcGxhdGVpbmZvLmVtYWlsU3ViamVjdC5lbmdsaXNoO1xyXG5cclxuICAgICAgdGhpcy5FbWFpbFN1YmplY3RJbkFyYWJpYyA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLkVtYWlsU3ViamVjdEluQXJhYmljLk5hbWUgPSBcIkVtYWlsU3ViamVjdEluQXJhYmljXCJcclxuICAgICAgdGhpcy5FbWFpbFN1YmplY3RJbkFyYWJpYy5MYWJlbEtleSA9IFwiRW1haWxTdWJqZWN0SW5BcmFiaWNcIlxyXG4gICAgICB0aGlzLkVtYWlsU3ViamVjdEluQXJhYmljLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLkVtYWlsU3ViamVjdEluQXJhYmljLkZvcmNlRGlyZWN0aW9uID0gRm9yY2VEaXJlY3Rpb24uQXJhYmljXHJcbiAgICAgIHRoaXMuRW1haWxTdWJqZWN0SW5BcmFiaWMuVmFsdWUgPSB0aGlzLlRlbXBsYXRlSW5mby5lbWFpbHRlbXBsYXRlaW5mby5lbWFpbFN1YmplY3QuYXJhYmljO1xyXG5cclxuICAgICAgdGhpcy5IdG1sQm9keVRhZ0F0dHJpYnV0ZXNFbmdsaXNoID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuSHRtbEJvZHlUYWdBdHRyaWJ1dGVzRW5nbGlzaC5OYW1lID0gXCJIdG1sQm9keVRhZ0F0dHJpYnV0ZXNFbmdsaXNoXCJcclxuICAgICAgdGhpcy5IdG1sQm9keVRhZ0F0dHJpYnV0ZXNFbmdsaXNoLkxhYmVsS2V5ID0gXCJIdG1sQm9keVRhZ0F0dHJpYnV0ZXNFbmdsaXNoXCJcclxuICAgICAgdGhpcy5IdG1sQm9keVRhZ0F0dHJpYnV0ZXNFbmdsaXNoLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLkh0bWxCb2R5VGFnQXR0cmlidXRlc0VuZ2xpc2guVmFsdWUgPSB0aGlzLlRlbXBsYXRlSW5mby5lbWFpbHRlbXBsYXRlaW5mby5lbWFpbEh0bWxCb2R5VGFnQXR0cmlidXRlcy5lbmdsaXNoO1xyXG5cclxuICAgICAgdGhpcy5IdG1sQm9keVRhZ0F0dHJpYnV0ZXNBcmFiaWMgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5IdG1sQm9keVRhZ0F0dHJpYnV0ZXNBcmFiaWMuTmFtZSA9IFwiSHRtbEJvZHlUYWdBdHRyaWJ1dGVzQXJhYmljXCJcclxuICAgICAgdGhpcy5IdG1sQm9keVRhZ0F0dHJpYnV0ZXNBcmFiaWMuTGFiZWxLZXkgPSBcIkh0bWxCb2R5VGFnQXR0cmlidXRlc0FyYWJpY1wiXHJcbiAgICAgIHRoaXMuSHRtbEJvZHlUYWdBdHRyaWJ1dGVzQXJhYmljLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLkh0bWxCb2R5VGFnQXR0cmlidXRlc0FyYWJpYy5Gb3JjZURpcmVjdGlvbiA9IEZvcmNlRGlyZWN0aW9uLkFyYWJpY1xyXG4gICAgICB0aGlzLkh0bWxCb2R5VGFnQXR0cmlidXRlc0FyYWJpYy5WYWx1ZSA9IHRoaXMuVGVtcGxhdGVJbmZvLmVtYWlsdGVtcGxhdGVpbmZvLmVtYWlsSHRtbEJvZHlUYWdBdHRyaWJ1dGVzLmFyYWJpYztcclxuXHJcbiAgICAgIHRoaXMuSFRNTEhlYWRTZWN0aW9uSW5FbmdsaXNoID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuSFRNTEhlYWRTZWN0aW9uSW5FbmdsaXNoLk5hbWUgPSBcIkhUTUxIZWFkU2VjdGlvbkluRW5nbGlzaFwiXHJcbiAgICAgIHRoaXMuSFRNTEhlYWRTZWN0aW9uSW5FbmdsaXNoLkxhYmVsS2V5ID0gXCJIVE1MSGVhZFNlY3Rpb25JbkVuZ2xpc2hcIlxyXG4gICAgICB0aGlzLkhUTUxIZWFkU2VjdGlvbkluRW5nbGlzaC5UeXBlID0gSW5wdXRUeXBlLlRleHRcclxuICAgICAgdGhpcy5IVE1MSGVhZFNlY3Rpb25JbkVuZ2xpc2guVmFsdWUgPSB0aGlzLlRlbXBsYXRlSW5mby5lbWFpbHRlbXBsYXRlaW5mby5lbWFpbEh0bWxIZWFkU2VjdGlvbi5lbmdsaXNoO1xyXG5cclxuICAgICAgdGhpcy5IVE1MSGVhZFNlY3Rpb25JbkFyYWJpYyA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLkhUTUxIZWFkU2VjdGlvbkluQXJhYmljLk5hbWUgPSBcIkhUTUxIZWFkU2VjdGlvbkluQXJhYmljXCJcclxuICAgICAgdGhpcy5IVE1MSGVhZFNlY3Rpb25JbkFyYWJpYy5MYWJlbEtleSA9IFwiSFRNTEhlYWRTZWN0aW9uSW5BcmFiaWNcIlxyXG4gICAgICB0aGlzLkhUTUxIZWFkU2VjdGlvbkluQXJhYmljLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLkhUTUxIZWFkU2VjdGlvbkluQXJhYmljLkZvcmNlRGlyZWN0aW9uID0gRm9yY2VEaXJlY3Rpb24uQXJhYmljXHJcbiAgICAgIHRoaXMuSFRNTEhlYWRTZWN0aW9uSW5BcmFiaWMuVmFsdWUgPSB0aGlzLlRlbXBsYXRlSW5mby5lbWFpbHRlbXBsYXRlaW5mby5lbWFpbEh0bWxIZWFkU2VjdGlvbi5hcmFiaWM7XHJcbiAgICAgIHRoaXMuSXNGb3JtTG9hZGVkID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgZ2V0RWRpdEVtYWlsTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuRWRpdEVtYWlsRm9ybS52YWx1ZTtcclxuICAgIGxldCBFZGl0TW9kZWwgPSBuZXcgVGVtcGxhdGVFZGl0Vmlld01vZGVsKCk7XHJcbiAgICBFZGl0TW9kZWwuSUQgPSBOdW1iZXIodGhpcy5UZW1wbGF0ZUlkKTtcclxuICAgIEVkaXRNb2RlbC5JREVuY3J5cHRlZCA9IHRoaXMuVGVtcGxhdGVJbmZvLmlkRW5jcnlwdGVkO1xyXG4gICAgRWRpdE1vZGVsLklzRW1haWwgPSB0cnVlO1xyXG4gICAgRWRpdE1vZGVsLklzU21zID0gZmFsc2U7XHJcbiAgICBFZGl0TW9kZWwuVGVtcGxhdGVOYW1lID0gdGhpcy5UZW1wbGF0ZUluZm8udGVtcGxhdGVOYW1lO1xyXG4gICAgRWRpdE1vZGVsLkxhbmd1YWdlID0gdGhpcy5MYW5nO1xyXG4gICAgRWRpdE1vZGVsLmVtYWlsdGVtcGxhdGVpbmZvLklEID0gdGhpcy5UZW1wbGF0ZUluZm8uZW1haWx0ZW1wbGF0ZWluZm8uaWQ7XHJcbiAgICBFZGl0TW9kZWwuZW1haWx0ZW1wbGF0ZWluZm8uRW1haWxCb2R5LkFyYWJpYyA9IFJlc3VsdE1vZGVsLkVtYWlsQm9keUluQXJhYmljXHJcbiAgICBFZGl0TW9kZWwuZW1haWx0ZW1wbGF0ZWluZm8uRW1haWxCb2R5LkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5FbWFpbEJvZHlJbkVuZ2xpc2hcclxuICAgIEVkaXRNb2RlbC5lbWFpbHRlbXBsYXRlaW5mby5FbWFpbFN1YmplY3QuQXJhYmljID0gUmVzdWx0TW9kZWwuRW1haWxTdWJqZWN0SW5BcmFiaWNcclxuICAgIEVkaXRNb2RlbC5lbWFpbHRlbXBsYXRlaW5mby5FbWFpbFN1YmplY3QuRW5nbGlzaCA9IFJlc3VsdE1vZGVsLkVtYWlsU3ViamVjdEluRW5nbGlzaFxyXG4gICAgRWRpdE1vZGVsLmVtYWlsdGVtcGxhdGVpbmZvLkVtYWlsSHRtbEJvZHlUYWdBdHRyaWJ1dGVzLkFyYWJpYyA9IFJlc3VsdE1vZGVsLkh0bWxCb2R5VGFnQXR0cmlidXRlc0FyYWJpY1xyXG4gICAgRWRpdE1vZGVsLmVtYWlsdGVtcGxhdGVpbmZvLkVtYWlsSHRtbEJvZHlUYWdBdHRyaWJ1dGVzLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5IdG1sQm9keVRhZ0F0dHJpYnV0ZXNFbmdsaXNoXHJcbiAgICBFZGl0TW9kZWwuZW1haWx0ZW1wbGF0ZWluZm8uRW1haWxIdG1sSGVhZFNlY3Rpb24uQXJhYmljID0gUmVzdWx0TW9kZWwuSFRNTEhlYWRTZWN0aW9uSW5BcmFiaWNcclxuICAgIEVkaXRNb2RlbC5lbWFpbHRlbXBsYXRlaW5mby5FbWFpbEh0bWxIZWFkU2VjdGlvbi5FbmdsaXNoID0gUmVzdWx0TW9kZWwuSFRNTEhlYWRTZWN0aW9uSW5FbmdsaXNoXHJcblxyXG4gICAgcGFyYW1BcnJheS5wdXNoKEVkaXRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEVkaXRFbWFpbEZ1bmN0aW9uID0gKEVkaXRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZWRpdEVtYWlsVGVtcGxhdGVCeUxhbmcoRWRpdE1vZGVsKVxyXG4gIH1cclxuICBvbkVkaXRFbWFpbFN1Y2Nlc3MgPSAocmVzdWx0KSA9PiB7XHJcbiAgICB0aGlzLmNhbmNlbEVkaXQoKTtcclxuICB9XHJcbiAgY2FuY2VsRWRpdCgpe1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vTm90aWZpY2F0aW9ucy9UZW1wbGF0ZUluZm8nLCB0aGlzLlRlbXBsYXRlSWRFbmNdKTtcclxuICB9XHJcblxyXG4gIC8vQ2hhbmdlIExhbmdcclxuICBjaGFuZ2VDdXJyZW50TGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLkxhbmcgPSBsYW5nO1xyXG4gIH1cclxuXHJcbiAgLy9PbiBkZXN0cm95XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1YmhlYWRlcnRvb2xiYXJcIj5cclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkgYnRuLXNtXCIgKGNsaWNrKT1cImNoYW5nZUN1cnJlbnRMYW5ndWFnZSgnYXInKVwiICpuZ0lmPVwiTGFuZz09J2VuJ1wiPlxyXG4gICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFyYWJpY1wiKX19XHJcblxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5IGJ0bi1zbVwiIChjbGljayk9XCJjaGFuZ2VDdXJyZW50TGFuZ3VhZ2UoJ2VuJylcIiAqbmdJZj1cIkxhbmc9PSdhcidcIj5cclxuICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFbmdsaXNoXCIpfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJFZGl0RW1haWxGb3JtT3B0aW9uc1wiICpuZ0lmPVwiSXNGb3JtTG9hZGVkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwia3QtZm9ybVwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiTGFuZz09J2FyJ1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiRW1haWxTdWJqZWN0SW5BcmFiaWNcIiBbZ3JvdXBdPVwiRWRpdEVtYWlsRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLUh0bWxFZGl0b3IgW29wdGlvbnNdPVwiRW1haWxCb2R5SW5BcmFiaWNcIiBbZ3JvdXBdPVwiRWRpdEVtYWlsRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtSHRtbEVkaXRvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJIdG1sQm9keVRhZ0F0dHJpYnV0ZXNBcmFiaWNcIiBbZ3JvdXBdPVwiRWRpdEVtYWlsRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiSFRNTEhlYWRTZWN0aW9uSW5BcmFiaWNcIiBbZ3JvdXBdPVwiRWRpdEVtYWlsRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJMYW5nPT0nZW4nXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJFbWFpbFN1YmplY3RJbkVuZ2xpc2hcIiBbZ3JvdXBdPVwiRWRpdEVtYWlsRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtSHRtbEVkaXRvciBbb3B0aW9uc109XCJFbWFpbEJvZHlJbkVuZ2xpc2hcIiBbZ3JvdXBdPVwiRWRpdEVtYWlsRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtSHRtbEVkaXRvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJIdG1sQm9keVRhZ0F0dHJpYnV0ZXNFbmdsaXNoXCIgW2dyb3VwXT1cIkVkaXRFbWFpbEZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIkhUTUxIZWFkU2VjdGlvbkluRW5nbGlzaFwiIFtncm91cF09XCJFZGl0RW1haWxGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5IGJ0bi1zbSBtZS0zXCIgKGNsaWNrKT1cImNhbmNlbEVkaXQoKVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNhdmVMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L0JCU0YtRm9ybT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gIDwvZGl2PlxyXG4gIFxyXG5cclxuIl19
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1lbWFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL25vdGlmaWNhdGlvbnMvZWRpdC1lbWFpbC9lZGl0LWVtYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbm90aWZpY2F0aW9ucy9lZGl0LWVtYWlsL2VkaXQtZW1haWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUVBQWlFLENBQUM7Ozs7Ozs7OztBQVF4RyxNQUFNLE9BQU8sa0JBQWtCO0lBb0I3QixZQUFvQixlQUFnQyxFQUFTLGNBQThCLEVBQ2pGLG9CQUEwQyxFQUFVLGVBQWdDLEVBQ3BGLGNBQThCLEVBQVUsTUFBYyxFQUFVLHFCQUE0QztRQUZsRyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBUyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDakYseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNwRixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtR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QUM7SUFDbkIsQ0FBQztJQUVELFlBQVk7SUFDWixXQUFXO1FBQ1QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLENBQUM7O2dIQWpLVSxrQkFBa0I7b0dBQWxCLGtCQUFrQixzRENkL0IsczRHQWlGQTs0RkRuRWEsa0JBQWtCO2tCQUo5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSw2QkFBNkI7aUJBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRm9yY2VEaXJlY3Rpb24sIEZvcm1PcHRpb25zLCBIdG1sRWRpdG9yT3B0aW9ucywgSW5wdXRUeXBlLCBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21ldHJvbmljL2NvcmUvc2VydmljZXMvcGFnZS1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvU2VydmljZXMvVGVtcGxhdGVTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZUVkaXRWaWV3TW9kZWwgfSBmcm9tICcuLy4uLy4uL3NoYXJlZC9tb2RlbHMvTm90aWZpY2F0aW9uc01vZGVscy9UZW1wbGF0ZUVkaXRWaWV3TW9kZWwnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSwgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVkaXQtZW1haWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LWVtYWlsLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdEVtYWlsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvL1BhZ2UgUmVxdWlyZW1lbnRzXHJcbiAgVGVtcGxhdGVJZDogc3RyaW5nO1xyXG4gIExhbmc6IHN0cmluZyA9IFwiXCJcclxuICBUZW1wbGF0ZUluZm86IGFueVxyXG4gIElzRm9ybUxvYWRlZDogYm9vbGVhblxyXG5cclxuICAvL0luaXRpYWxpemUgZm9ybSBhbmQgY29udHJvbHNcclxuICBFZGl0RW1haWxGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgRWRpdEVtYWlsRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnM7XHJcbiAgRW1haWxTdWJqZWN0SW5FbmdsaXNoOiBUZXh0Qm94T3B0aW9ucztcclxuICBFbWFpbFN1YmplY3RJbkFyYWJpYzogVGV4dEJveE9wdGlvbnM7XHJcbiAgRW1haWxCb2R5SW5FbmdsaXNoOiBIdG1sRWRpdG9yT3B0aW9ucztcclxuICBFbWFpbEJvZHlJbkFyYWJpYzogSHRtbEVkaXRvck9wdGlvbnM7XHJcbiAgSHRtbEJvZHlUYWdBdHRyaWJ1dGVzRW5nbGlzaDogVGV4dEJveE9wdGlvbnM7XHJcbiAgSHRtbEJvZHlUYWdBdHRyaWJ1dGVzQXJhYmljOiBUZXh0Qm94T3B0aW9ucztcclxuICBIVE1MSGVhZFNlY3Rpb25JbkVuZ2xpc2g6IFRleHRCb3hPcHRpb25zO1xyXG4gIEhUTUxIZWFkU2VjdGlvbkluQXJhYmljOiBUZXh0Qm94T3B0aW9ucztcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGJic2ZUcmFuc2xhdGVTZXJ2aWNlOiBCQlNGVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSB0ZW1wbGF0ZVNlcnZpY2U6IFRlbXBsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHJlcXVlc3RIYW5kbGVyU2VydmljZTogUmVxdWVzdEhhbmRsZXJTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgdGhpcy5UZW1wbGF0ZUlkID0gcGFyYW1zWydpZCddO1xyXG4gICAgICB0aGlzLkxhbmcgPSBwYXJhbXNbJ2xhbmcnXTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmJic2ZUcmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmdldFRlbXBsYXRlSW5mb0J5TGFuZyh0aGlzLlRlbXBsYXRlSWQsIHRoaXMuTGFuZykuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgbGV0IFJlc3VsdDogYW55ID0gcmVzdWx0XHJcbiAgICAgIHRoaXMuVGVtcGxhdGVJbmZvID0gUmVzdWx0LnZhbDtcclxuICAgICAgbGV0IFRlbXBsYXRlTmFtZTogc3RyaW5nID0gdGhpcy5UZW1wbGF0ZUluZm8uZW1haWxUZW1wbGF0ZUluZm8uZW1haWxTdWJqZWN0U3RyO1xyXG4gICAgICBpZiAoVGVtcGxhdGVOYW1lID09IG51bGwgfHwgVGVtcGxhdGVOYW1lID09IHVuZGVmaW5lZClcclxuICAgICAgICBUZW1wbGF0ZU5hbWUgPSBcIlwiO1xyXG5cclxuICAgICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVkaXRcIilcclxuICAgICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlRlbXBsYXRlc1wiKSwgcGF0aDogJy9BZG1pbi9Ob3RpZmljYXRpb25zL1RlbXBsYXRlcycsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgeyB0aXRsZTogVGVtcGxhdGVOYW1lICE9IFwiXCIgPyB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoVGVtcGxhdGVOYW1lKSA6IFwiXCIsIHBhdGg6IFwiL0FkbWluL05vdGlmaWNhdGlvbnMvVGVtcGxhdGVJbmZvL1wiICsgdGhpcy5UZW1wbGF0ZUluZm8uaURfR1VJRCwgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG4gICAgICBdO1xyXG4gICAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG5cclxuICAgICAgLy9Jbml0aWFsaXplIGZvcm0gYW5kIGNvbnRyb2xzXHJcbiAgICAgIHRoaXMuRWRpdEVtYWlsRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICB0aGlzLkVkaXRFbWFpbEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuRWRpdEVtYWlsRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5FZGl0RW1haWxGb3JtXHJcbiAgICAgIHRoaXMuRWRpdEVtYWlsRm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0RWRpdEVtYWlsTW9kZWw7XHJcbiAgICAgIHRoaXMuRWRpdEVtYWlsRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0RW1haWxGdW5jdGlvbjtcclxuICAgICAgdGhpcy5FZGl0RW1haWxGb3JtT3B0aW9ucy5PblN1Y2Nlc3NIYW5kbGVyID0gdGhpcy5vbkVkaXRFbWFpbFN1Y2Nlc3M7XHJcblxyXG4gICAgICB0aGlzLkVtYWlsQm9keUluRW5nbGlzaCA9IG5ldyBIdG1sRWRpdG9yT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLkVtYWlsQm9keUluRW5nbGlzaC5OYW1lID0gXCJFbWFpbEJvZHlJbkVuZ2xpc2hcIlxyXG4gICAgICB0aGlzLkVtYWlsQm9keUluRW5nbGlzaC5MYWJlbEtleSA9IFwiRW1haWxCb2R5SW5FbmdsaXNoXCJcclxuICAgICAgdGhpcy5FbWFpbEJvZHlJbkVuZ2xpc2guSXNSZXF1aXJlZCA9IHRydWVcclxuICAgICAgdGhpcy5FbWFpbEJvZHlJbkVuZ2xpc2guVmFsdWUgPSB0aGlzLlRlbXBsYXRlSW5mby5lbWFpbFRlbXBsYXRlSW5mby5lbWFpbEJvZHkuZW5nbGlzaDtcclxuXHJcbiAgICAgIHRoaXMuRW1haWxCb2R5SW5BcmFiaWMgPSBuZXcgSHRtbEVkaXRvck9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5FbWFpbEJvZHlJbkFyYWJpYy5OYW1lID0gXCJFbWFpbEJvZHlJbkFyYWJpY1wiXHJcbiAgICAgIHRoaXMuRW1haWxCb2R5SW5BcmFiaWMuTGFiZWxLZXkgPSBcIkVtYWlsQm9keUluQXJhYmljXCJcclxuICAgICAgdGhpcy5FbWFpbEJvZHlJbkFyYWJpYy5Jc1JlcXVpcmVkID0gdHJ1ZVxyXG4gICAgICB0aGlzLkVtYWlsQm9keUluQXJhYmljLkZvcmNlRGlyZWN0aW9uID0gRm9yY2VEaXJlY3Rpb24uQXJhYmljXHJcbiAgICAgIHRoaXMuRW1haWxCb2R5SW5BcmFiaWMuVmFsdWUgPSB0aGlzLlRlbXBsYXRlSW5mby5lbWFpbFRlbXBsYXRlSW5mby5lbWFpbEJvZHkuYXJhYmljO1xyXG5cclxuICAgICAgdGhpcy5FbWFpbFN1YmplY3RJbkVuZ2xpc2ggPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5FbWFpbFN1YmplY3RJbkVuZ2xpc2guTmFtZSA9IFwiRW1haWxTdWJqZWN0SW5FbmdsaXNoXCJcclxuICAgICAgdGhpcy5FbWFpbFN1YmplY3RJbkVuZ2xpc2guTGFiZWxWYWx1ZSA9IFwiRW1haWxTdWJqZWN0SW5FbmdsaXNoXCJcclxuICAgICAgdGhpcy5FbWFpbFN1YmplY3RJbkVuZ2xpc2guTGFiZWxLZXkgPSBcIkVtYWlsU3ViamVjdEluRW5nbGlzaFwiXHJcbiAgICAgIHRoaXMuRW1haWxTdWJqZWN0SW5FbmdsaXNoLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLkVtYWlsU3ViamVjdEluRW5nbGlzaC5WYWx1ZSA9IHRoaXMuVGVtcGxhdGVJbmZvLmVtYWlsVGVtcGxhdGVJbmZvLmVtYWlsU3ViamVjdC5lbmdsaXNoO1xyXG5cclxuICAgICAgdGhpcy5FbWFpbFN1YmplY3RJbkFyYWJpYyA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLkVtYWlsU3ViamVjdEluQXJhYmljLk5hbWUgPSBcIkVtYWlsU3ViamVjdEluQXJhYmljXCJcclxuICAgICAgdGhpcy5FbWFpbFN1YmplY3RJbkFyYWJpYy5MYWJlbEtleSA9IFwiRW1haWxTdWJqZWN0SW5BcmFiaWNcIlxyXG4gICAgICB0aGlzLkVtYWlsU3ViamVjdEluQXJhYmljLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLkVtYWlsU3ViamVjdEluQXJhYmljLkZvcmNlRGlyZWN0aW9uID0gRm9yY2VEaXJlY3Rpb24uQXJhYmljXHJcbiAgICAgIHRoaXMuRW1haWxTdWJqZWN0SW5BcmFiaWMuVmFsdWUgPSB0aGlzLlRlbXBsYXRlSW5mby5lbWFpbFRlbXBsYXRlSW5mby5lbWFpbFN1YmplY3QuYXJhYmljO1xyXG5cclxuICAgICAgdGhpcy5IdG1sQm9keVRhZ0F0dHJpYnV0ZXNFbmdsaXNoID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuSHRtbEJvZHlUYWdBdHRyaWJ1dGVzRW5nbGlzaC5OYW1lID0gXCJIdG1sQm9keVRhZ0F0dHJpYnV0ZXNFbmdsaXNoXCJcclxuICAgICAgdGhpcy5IdG1sQm9keVRhZ0F0dHJpYnV0ZXNFbmdsaXNoLkxhYmVsS2V5ID0gXCJIdG1sQm9keVRhZ0F0dHJpYnV0ZXNFbmdsaXNoXCJcclxuICAgICAgdGhpcy5IdG1sQm9keVRhZ0F0dHJpYnV0ZXNFbmdsaXNoLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLkh0bWxCb2R5VGFnQXR0cmlidXRlc0VuZ2xpc2guVmFsdWUgPSB0aGlzLlRlbXBsYXRlSW5mby5lbWFpbFRlbXBsYXRlSW5mby5lbWFpbEh0bWxCb2R5VGFnQXR0cmlidXRlcy5lbmdsaXNoO1xyXG5cclxuICAgICAgdGhpcy5IdG1sQm9keVRhZ0F0dHJpYnV0ZXNBcmFiaWMgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5IdG1sQm9keVRhZ0F0dHJpYnV0ZXNBcmFiaWMuTmFtZSA9IFwiSHRtbEJvZHlUYWdBdHRyaWJ1dGVzQXJhYmljXCJcclxuICAgICAgdGhpcy5IdG1sQm9keVRhZ0F0dHJpYnV0ZXNBcmFiaWMuTGFiZWxLZXkgPSBcIkh0bWxCb2R5VGFnQXR0cmlidXRlc0FyYWJpY1wiXHJcbiAgICAgIHRoaXMuSHRtbEJvZHlUYWdBdHRyaWJ1dGVzQXJhYmljLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLkh0bWxCb2R5VGFnQXR0cmlidXRlc0FyYWJpYy5Gb3JjZURpcmVjdGlvbiA9IEZvcmNlRGlyZWN0aW9uLkFyYWJpY1xyXG4gICAgICB0aGlzLkh0bWxCb2R5VGFnQXR0cmlidXRlc0FyYWJpYy5WYWx1ZSA9IHRoaXMuVGVtcGxhdGVJbmZvLmVtYWlsVGVtcGxhdGVJbmZvLmVtYWlsSHRtbEJvZHlUYWdBdHRyaWJ1dGVzLmFyYWJpYztcclxuXHJcbiAgICAgIHRoaXMuSFRNTEhlYWRTZWN0aW9uSW5FbmdsaXNoID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuSFRNTEhlYWRTZWN0aW9uSW5FbmdsaXNoLk5hbWUgPSBcIkhUTUxIZWFkU2VjdGlvbkluRW5nbGlzaFwiXHJcbiAgICAgIHRoaXMuSFRNTEhlYWRTZWN0aW9uSW5FbmdsaXNoLkxhYmVsS2V5ID0gXCJIVE1MSGVhZFNlY3Rpb25JbkVuZ2xpc2hcIlxyXG4gICAgICB0aGlzLkhUTUxIZWFkU2VjdGlvbkluRW5nbGlzaC5UeXBlID0gSW5wdXRUeXBlLlRleHRcclxuICAgICAgdGhpcy5IVE1MSGVhZFNlY3Rpb25JbkVuZ2xpc2guVmFsdWUgPSB0aGlzLlRlbXBsYXRlSW5mby5lbWFpbFRlbXBsYXRlSW5mby5lbWFpbEh0bWxIZWFkU2VjdGlvbi5lbmdsaXNoO1xyXG5cclxuICAgICAgdGhpcy5IVE1MSGVhZFNlY3Rpb25JbkFyYWJpYyA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLkhUTUxIZWFkU2VjdGlvbkluQXJhYmljLk5hbWUgPSBcIkhUTUxIZWFkU2VjdGlvbkluQXJhYmljXCJcclxuICAgICAgdGhpcy5IVE1MSGVhZFNlY3Rpb25JbkFyYWJpYy5MYWJlbEtleSA9IFwiSFRNTEhlYWRTZWN0aW9uSW5BcmFiaWNcIlxyXG4gICAgICB0aGlzLkhUTUxIZWFkU2VjdGlvbkluQXJhYmljLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLkhUTUxIZWFkU2VjdGlvbkluQXJhYmljLkZvcmNlRGlyZWN0aW9uID0gRm9yY2VEaXJlY3Rpb24uQXJhYmljXHJcbiAgICAgIHRoaXMuSFRNTEhlYWRTZWN0aW9uSW5BcmFiaWMuVmFsdWUgPSB0aGlzLlRlbXBsYXRlSW5mby5lbWFpbFRlbXBsYXRlSW5mby5lbWFpbEh0bWxIZWFkU2VjdGlvbi5hcmFiaWM7XHJcbiAgICAgIHRoaXMuSXNGb3JtTG9hZGVkID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgZ2V0RWRpdEVtYWlsTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuRWRpdEVtYWlsRm9ybS52YWx1ZTtcclxuICAgIGxldCBFZGl0TW9kZWwgPSBuZXcgVGVtcGxhdGVFZGl0Vmlld01vZGVsKCk7XHJcbiAgICBFZGl0TW9kZWwuSURfR1VJRCA9IHRoaXMuVGVtcGxhdGVJZDtcclxuICAgIEVkaXRNb2RlbC5Jc0VtYWlsID0gdHJ1ZTtcclxuICAgIEVkaXRNb2RlbC5Jc1NtcyA9IGZhbHNlO1xyXG4gICAgRWRpdE1vZGVsLlRlbXBsYXRlTmFtZSA9IHRoaXMuVGVtcGxhdGVJbmZvLnRlbXBsYXRlTmFtZTtcclxuICAgIEVkaXRNb2RlbC5MYW5ndWFnZSA9IHRoaXMuTGFuZztcclxuICAgIEVkaXRNb2RlbC5lbWFpbHRlbXBsYXRlaW5mby5JRF9HVUlEID0gdGhpcy5UZW1wbGF0ZUluZm8uZW1haWxUZW1wbGF0ZUluZm8uaURfR1VJRDtcclxuICAgIEVkaXRNb2RlbC5lbWFpbHRlbXBsYXRlaW5mby5FbWFpbEJvZHkuQXJhYmljID0gUmVzdWx0TW9kZWwuRW1haWxCb2R5SW5BcmFiaWNcclxuICAgIEVkaXRNb2RlbC5lbWFpbHRlbXBsYXRlaW5mby5FbWFpbEJvZHkuRW5nbGlzaCA9IFJlc3VsdE1vZGVsLkVtYWlsQm9keUluRW5nbGlzaFxyXG4gICAgRWRpdE1vZGVsLmVtYWlsdGVtcGxhdGVpbmZvLkVtYWlsU3ViamVjdC5BcmFiaWMgPSBSZXN1bHRNb2RlbC5FbWFpbFN1YmplY3RJbkFyYWJpY1xyXG4gICAgRWRpdE1vZGVsLmVtYWlsdGVtcGxhdGVpbmZvLkVtYWlsU3ViamVjdC5FbmdsaXNoID0gUmVzdWx0TW9kZWwuRW1haWxTdWJqZWN0SW5FbmdsaXNoXHJcbiAgICBFZGl0TW9kZWwuZW1haWx0ZW1wbGF0ZWluZm8uRW1haWxIdG1sQm9keVRhZ0F0dHJpYnV0ZXMuQXJhYmljID0gUmVzdWx0TW9kZWwuSHRtbEJvZHlUYWdBdHRyaWJ1dGVzQXJhYmljXHJcbiAgICBFZGl0TW9kZWwuZW1haWx0ZW1wbGF0ZWluZm8uRW1haWxIdG1sQm9keVRhZ0F0dHJpYnV0ZXMuRW5nbGlzaCA9IFJlc3VsdE1vZGVsLkh0bWxCb2R5VGFnQXR0cmlidXRlc0VuZ2xpc2hcclxuICAgIEVkaXRNb2RlbC5lbWFpbHRlbXBsYXRlaW5mby5FbWFpbEh0bWxIZWFkU2VjdGlvbi5BcmFiaWMgPSBSZXN1bHRNb2RlbC5IVE1MSGVhZFNlY3Rpb25JbkFyYWJpY1xyXG4gICAgRWRpdE1vZGVsLmVtYWlsdGVtcGxhdGVpbmZvLkVtYWlsSHRtbEhlYWRTZWN0aW9uLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5IVE1MSGVhZFNlY3Rpb25JbkVuZ2xpc2hcclxuXHJcbiAgICBwYXJhbUFycmF5LnB1c2goRWRpdE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdEVtYWlsRnVuY3Rpb24gPSAoRWRpdE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlU2VydmljZS5lZGl0RW1haWxUZW1wbGF0ZUJ5TGFuZyhFZGl0TW9kZWwpXHJcbiAgfVxyXG4gIG9uRWRpdEVtYWlsU3VjY2VzcyA9IChyZXN1bHQpID0+IHtcclxuICAgIHRoaXMuY2FuY2VsRWRpdCgpO1xyXG4gIH1cclxuICBjYW5jZWxFZGl0KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vTm90aWZpY2F0aW9ucy9UZW1wbGF0ZUluZm8nLCB0aGlzLlRlbXBsYXRlSWRdKTtcclxuICB9XHJcblxyXG4gIC8vQ2hhbmdlIExhbmdcclxuICBjaGFuZ2VDdXJyZW50TGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLkxhbmcgPSBsYW5nO1xyXG4gIH1cclxuXHJcbiAgLy9PbiBkZXN0cm95XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1YmhlYWRlcnRvb2xiYXJcIj5cclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkgYnRuLXNtXCIgKGNsaWNrKT1cImNoYW5nZUN1cnJlbnRMYW5ndWFnZSgnYXInKVwiICpuZ0lmPVwiTGFuZz09J2VuJ1wiPlxyXG4gICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFyYWJpY1wiKX19XHJcblxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5IGJ0bi1zbVwiIChjbGljayk9XCJjaGFuZ2VDdXJyZW50TGFuZ3VhZ2UoJ2VuJylcIiAqbmdJZj1cIkxhbmc9PSdhcidcIj5cclxuICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFbmdsaXNoXCIpfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJFZGl0RW1haWxGb3JtT3B0aW9uc1wiICpuZ0lmPVwiSXNGb3JtTG9hZGVkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwia3QtZm9ybVwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiTGFuZz09J2FyJ1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiRW1haWxTdWJqZWN0SW5BcmFiaWNcIiBbZ3JvdXBdPVwiRWRpdEVtYWlsRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLUh0bWxFZGl0b3IgW29wdGlvbnNdPVwiRW1haWxCb2R5SW5BcmFiaWNcIiBbZ3JvdXBdPVwiRWRpdEVtYWlsRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtSHRtbEVkaXRvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJIdG1sQm9keVRhZ0F0dHJpYnV0ZXNBcmFiaWNcIiBbZ3JvdXBdPVwiRWRpdEVtYWlsRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiSFRNTEhlYWRTZWN0aW9uSW5BcmFiaWNcIiBbZ3JvdXBdPVwiRWRpdEVtYWlsRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJMYW5nPT0nZW4nXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJFbWFpbFN1YmplY3RJbkVuZ2xpc2hcIiBbZ3JvdXBdPVwiRWRpdEVtYWlsRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtSHRtbEVkaXRvciBbb3B0aW9uc109XCJFbWFpbEJvZHlJbkVuZ2xpc2hcIiBbZ3JvdXBdPVwiRWRpdEVtYWlsRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtSHRtbEVkaXRvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJIdG1sQm9keVRhZ0F0dHJpYnV0ZXNFbmdsaXNoXCIgW2dyb3VwXT1cIkVkaXRFbWFpbEZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIkhUTUxIZWFkU2VjdGlvbkluRW5nbGlzaFwiIFtncm91cF09XCJFZGl0RW1haWxGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5IGJ0bi1zbSBtZS0zXCIgKGNsaWNrKT1cImNhbmNlbEVkaXQoKVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNhdmVMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L0JCU0YtRm9ybT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gIDwvZGl2PlxyXG4gIFxyXG5cclxuIl19
@@ -21,7 +21,6 @@ export class EditSMSComponent {
21
21
  this.router = router;
22
22
  this.pageInfoService = pageInfoService;
23
23
  this.requestHandlerService = requestHandlerService;
24
- this.TemplateIdEnc = "";
25
24
  this.Lang = "";
26
25
  //Initialize form and controls
27
26
  this.EditSMSForm = new FormGroup({});
@@ -30,13 +29,12 @@ export class EditSMSComponent {
30
29
  let paramArray = [];
31
30
  let ResultModel = this.EditSMSForm.value;
32
31
  let EditModel = new TemplateEditViewModel();
33
- EditModel.ID = Number(this.TemplateId);
34
- EditModel.IDEncrypted = this.TemplateInfo.idEncrypted;
32
+ EditModel.ID_GUID = this.TemplateId;
35
33
  EditModel.IsEmail = false;
36
34
  EditModel.IsSms = true;
37
35
  EditModel.TemplateName = this.TemplateInfo.templateName;
38
36
  EditModel.Language = this.Lang;
39
- EditModel.smstemplateinfo.ID = this.TemplateInfo.smstemplateinfo.id;
37
+ EditModel.smstemplateinfo.ID_GUID = this.TemplateInfo.smsTemplateInfo.iD_GUID;
40
38
  EditModel.smstemplateinfo.SMS.Arabic = ResultModel.SMSInArabic;
41
39
  EditModel.smstemplateinfo.SMS.English = ResultModel.SMSInEnglish;
42
40
  paramArray.push(EditModel);
@@ -49,7 +47,7 @@ export class EditSMSComponent {
49
47
  this.cancelEdit();
50
48
  };
51
49
  this.activatedRoute.params.subscribe(params => {
52
- this.TemplateIdEnc = params['id'];
50
+ this.TemplateId = params['id'];
53
51
  this.Lang = params['lang'];
54
52
  });
55
53
  }
@@ -62,10 +60,10 @@ export class EditSMSComponent {
62
60
  });
63
61
  }
64
62
  initializePage() {
65
- this.templateService.getTemplateInfoByLang(this.TemplateIdEnc, this.Lang).subscribe((result) => {
63
+ this.templateService.getTemplateInfoByLang(this.TemplateId, this.Lang).subscribe((result) => {
66
64
  let Result = result;
67
65
  this.TemplateInfo = Result.val;
68
- let TemplateName = this.TemplateInfo.emailtemplateinfo.emailSubjectStr;
66
+ let TemplateName = this.TemplateInfo.emailTemplateInfo.emailSubjectStr;
69
67
  if (TemplateName == null || TemplateName == undefined)
70
68
  TemplateName = "";
71
69
  PageInfoService.PageTitle = this.utilityService.getResourceValue("Edit");
@@ -74,7 +72,7 @@ export class EditSMSComponent {
74
72
  { title: '', path: '', isSeparator: true, isActive: false },
75
73
  { title: this.utilityService.getResourceValue("Templates"), path: '/Admin/Notifications/Templates', isSeparator: false, isActive: false },
76
74
  { title: '', path: '', isSeparator: true, isActive: false },
77
- { title: TemplateName != "" ? this.utilityService.getResourceValue(TemplateName) : "", path: "/Admin/Notifications/TemplateInfo/" + this.TemplateInfo.idEncrypted, isSeparator: false, isActive: false },
75
+ { title: TemplateName != "" ? this.utilityService.getResourceValue(TemplateName) : "", path: "/Admin/Notifications/TemplateInfo/" + this.TemplateInfo.iD_GUID, isSeparator: false, isActive: false },
78
76
  { title: '', path: '', isSeparator: true, isActive: false }
79
77
  ];
80
78
  this.pageInfoService.calculateTitle();
@@ -86,22 +84,21 @@ export class EditSMSComponent {
86
84
  this.EditSMSFormOptions.GetModelFunction = this.getEditSMSModel;
87
85
  this.EditSMSFormOptions.ServiceSubmitFunction = this.getEditSMSFunction;
88
86
  this.EditSMSFormOptions.OnSuccessHandler = this.onEditSMSSuccess;
89
- this.TemplateId = this.TemplateInfo.id;
90
87
  this.SMSInEnglish = new TextAreaOptions();
91
88
  this.SMSInEnglish.Name = "SMSInEnglish";
92
89
  this.SMSInEnglish.LabelKey = "SMSInEnglish";
93
90
  this.SMSInEnglish.IsRequired = true;
94
- this.SMSInEnglish.Value = this.TemplateInfo.smstemplateinfo.sms.english;
91
+ this.SMSInEnglish.Value = this.TemplateInfo.smsTemplateInfo.sms.english;
95
92
  this.SMSInArabic = new TextAreaOptions();
96
93
  this.SMSInArabic.Name = "SMSInArabic";
97
94
  this.SMSInArabic.LabelKey = "SMSInArabic";
98
95
  this.SMSInArabic.IsRequired = true;
99
- this.SMSInArabic.Value = this.TemplateInfo.smstemplateinfo.sms.arabic;
96
+ this.SMSInArabic.Value = this.TemplateInfo.smsTemplateInfo.sms.arabic;
100
97
  this.IsFormLoaded = true;
101
98
  });
102
99
  }
103
100
  cancelEdit() {
104
- this.router.navigate(['/Admin/Notifications/TemplateInfo', this.TemplateIdEnc]);
101
+ this.router.navigate(['/Admin/Notifications/TemplateInfo', this.TemplateId]);
105
102
  }
106
103
  //Change Lang
107
104
  changeCurrentLanguage(lang) {
@@ -113,7 +110,7 @@ export class EditSMSComponent {
113
110
  }
114
111
  }
115
112
  EditSMSComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EditSMSComponent, deps: [{ token: i1.UtilityService }, { token: i1.BBSFTranslateService }, { token: i2.TemplateService }, { token: i3.ActivatedRoute }, { token: i3.Router }, { token: i4.PageInfoService }, { token: i1.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component });
116
- EditSMSComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: EditSMSComponent, selector: "lib-edit-sms", ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n <div class=\"container-fluid\">\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 <!--{{TemplateInfo.templateName}}(SMS)-->\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <a class=\"btn btn-light-primary btn-sm\" (click)=\"changeCurrentLanguage('ar')\" *ngIf=\"Lang=='en'\">\r\n {{utilityService.getResourceValue(\"Arabic\")}}\r\n </a>\r\n <a class=\"btn btn-light-primary btn-sm\" (click)=\"changeCurrentLanguage('en')\" *ngIf=\"Lang=='ar'\">\r\n {{utilityService.getResourceValue(\"English\")}}\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <BBSF-Form [options]=\"EditSMSFormOptions\" *ngIf=\"IsFormLoaded\">\r\n <div class=\"kt-form row\">\r\n <div *ngIf=\"Lang=='ar'\">\r\n <div class=\"row\">\r\n <div class=\"form-group col-md-6\">\r\n <BBSF-TextArea class=\"text-right\" [options]=\"SMSInArabic\" [group]=\"EditSMSForm\">\r\n </BBSF-TextArea>\r\n </div>\r\n <div class=\"col-md-6 d-flex align-items-center justify-content-center\">\r\n <div class=\"iphone\">\r\n <span class=\"position-absolute mobile-txt\">{{TemplateInfo.smstemplateinfo.sms.arabic}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"Lang=='en'\">\r\n <div class=\"row\">\r\n <div class=\"form-group col-md-6\">\r\n <BBSF-TextArea [options]=\"SMSInEnglish\" [group]=\"EditSMSForm\">\r\n </BBSF-TextArea>\r\n </div>\r\n <div class=\"col-md-6 d-flex align-items-center justify-content-center\">\r\n <div class=\"iphone\">\r\n <span class=\"position-absolute mobile-txt\">{{TemplateInfo.smstemplateinfo.sms.english}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex justify-content-end\">\r\n <button type=\"button\" class=\"btn btn-light-primary btn-sm me-3\" (click)=\"cancelEdit()\">{{utilityService.getResourceValue(\"CancelLabel\")}}</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\r\n </div>\r\n </div>\r\n\r\n", components: [{ type: i5.BlockUIComponent, selector: "block-ui", inputs: ["name", "template", "message", "delayStart", "delayStop"] }, { type: i6.FormComponent, selector: "BBSF-Form", inputs: ["options"] }, { type: i6.TextAreaComponent, selector: "BBSF-TextArea", inputs: ["group", "options"], outputs: ["OnChange"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
113
+ EditSMSComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: EditSMSComponent, selector: "lib-edit-sms", ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n <div class=\"container-fluid\">\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 <!--{{TemplateInfo.templateName}}(SMS)-->\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <a class=\"btn btn-light-primary btn-sm\" (click)=\"changeCurrentLanguage('ar')\" *ngIf=\"Lang=='en'\">\r\n {{utilityService.getResourceValue(\"Arabic\")}}\r\n </a>\r\n <a class=\"btn btn-light-primary btn-sm\" (click)=\"changeCurrentLanguage('en')\" *ngIf=\"Lang=='ar'\">\r\n {{utilityService.getResourceValue(\"English\")}}\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <BBSF-Form [options]=\"EditSMSFormOptions\" *ngIf=\"IsFormLoaded\">\r\n <div class=\"kt-form row\">\r\n <div *ngIf=\"Lang=='ar'\">\r\n <div class=\"row\">\r\n <div class=\"form-group col-md-6\">\r\n <BBSF-TextArea class=\"text-right\" [options]=\"SMSInArabic\" [group]=\"EditSMSForm\">\r\n </BBSF-TextArea>\r\n </div>\r\n <div class=\"col-md-6 d-flex align-items-center justify-content-center\">\r\n <div class=\"iphone\">\r\n <span class=\"position-absolute mobile-txt\">{{TemplateInfo.smsTemplateInfo.sms.arabic}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"Lang=='en'\">\r\n <div class=\"row\">\r\n <div class=\"form-group col-md-6\">\r\n <BBSF-TextArea [options]=\"SMSInEnglish\" [group]=\"EditSMSForm\">\r\n </BBSF-TextArea>\r\n </div>\r\n <div class=\"col-md-6 d-flex align-items-center justify-content-center\">\r\n <div class=\"iphone\">\r\n <span class=\"position-absolute mobile-txt\">{{TemplateInfo.smsTemplateInfo.sms.english}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex justify-content-end\">\r\n <button type=\"button\" class=\"btn btn-light-primary btn-sm me-3\" (click)=\"cancelEdit()\">{{utilityService.getResourceValue(\"CancelLabel\")}}</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\r\n </div>\r\n </div>\r\n\r\n", components: [{ type: i5.BlockUIComponent, selector: "block-ui", inputs: ["name", "template", "message", "delayStart", "delayStop"] }, { type: i6.FormComponent, selector: "BBSF-Form", inputs: ["options"] }, { type: i6.TextAreaComponent, selector: "BBSF-TextArea", inputs: ["group", "options"], outputs: ["OnChange"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
117
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EditSMSComponent, decorators: [{
118
115
  type: Component,
119
116
  args: [{
@@ -121,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
121
118
  templateUrl: './edit-sms.component.html'
122
119
  }]
123
120
  }], ctorParameters: function () { return [{ type: i1.UtilityService }, { type: i1.BBSFTranslateService }, { type: i2.TemplateService }, { type: i3.ActivatedRoute }, { type: i3.Router }, { type: i4.PageInfoService }, { type: i1.RequestHandlerService }]; } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1zbXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9ub3RpZmljYXRpb25zL2VkaXQtc21zL2VkaXQtc21zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbm90aWZpY2F0aW9ucy9lZGl0LXNtcy9lZGl0LXNtcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0RBQStELENBQUM7Ozs7Ozs7OztBQVN0RyxNQUFNLE9BQU8sZ0JBQWdCO0lBYzNCLFlBQW1CLGNBQThCLEVBQVUsb0JBQTBDLEVBQzNGLGVBQWdDLEVBQVUsY0FBOEIsRUFBVSxNQUFjLEVBQ2hHLGVBQWdDLEVBQVUscUJBQTRDO1FBRjdFLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDM0Ysb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNoRyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBVSwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBYmhHLGtCQUFhLEdBQVcsRUFBRSxDQUFBO1FBQzFCLFNBQUksR0FBVyxF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QUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUV0RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUF5QkQsVUFBVTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsbUNBQW1DLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELGFBQWE7SUFDYixxQkFBcUIsQ0FBQyxJQUFZO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxZQUFZO0lBQ1osV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzs4R0FwSFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0Isb0RDZDdCLHFwRkEwREE7NEZENUNhLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsV0FBVyxFQUFFLDJCQUEyQjtpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGb3JtT3B0aW9ucywgVGV4dEFyZWFPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fbWV0cm9uaWMvY29yZS9zZXJ2aWNlcy9wYWdlLWluZm8uc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlRWRpdFZpZXdNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTm90aWZpY2F0aW9uc01vZGVscy9UZW1wbGF0ZUVkaXRWaWV3TW9kZWwnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvU2VydmljZXMvVGVtcGxhdGVTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSwgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVkaXQtc21zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1zbXMuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0U01TQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvL1BhZ2UgUmVxdWlyZW1lbnRzXHJcbiAgVGVtcGxhdGVJZDogbnVtYmVyO1xyXG4gIFRlbXBsYXRlSWRFbmM6IHN0cmluZyA9IFwiXCJcclxuICBMYW5nOiBzdHJpbmcgPSBcIlwiXHJcbiAgVGVtcGxhdGVJbmZvOiBhbnlcclxuICBJc0Zvcm1Mb2FkZWQ6IGJvb2xlYW5cclxuXHJcbiAgLy9Jbml0aWFsaXplIGZvcm0gYW5kIGNvbnRyb2xzXHJcbiAgRWRpdFNNU0Zvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBFZGl0U01TRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnM7XHJcbiAgU01TSW5FbmdsaXNoOiBUZXh0QXJlYU9wdGlvbnM7XHJcbiAgU01TSW5BcmFiaWM6IFRleHRBcmVhT3B0aW9ucztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRlbXBsYXRlU2VydmljZTogVGVtcGxhdGVTZXJ2aWNlLCBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UpXHJcbiAge1xyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgIHRoaXMuVGVtcGxhdGVJZEVuYyA9IHBhcmFtc1snaWQnXTtcclxuICAgICAgdGhpcy5MYW5nID0gcGFyYW1zWydsYW5nJ107XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuYmJzZlRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpPT57XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmdldFRlbXBsYXRlSW5mb0J5TGFuZyh0aGlzLlRlbXBsYXRlSWRFbmMsIHRoaXMuTGFuZykuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgbGV0IFJlc3VsdDogYW55ID0gcmVzdWx0XHJcbiAgICAgIHRoaXMuVGVtcGxhdGVJbmZvID0gUmVzdWx0LnZhbDtcclxuICAgICAgbGV0IFRlbXBsYXRlTmFtZTogc3RyaW5nID0gdGhpcy5UZW1wbGF0ZUluZm8uZW1haWx0ZW1wbGF0ZWluZm8uZW1haWxTdWJqZWN0U3RyO1xyXG4gICAgICBpZiAoVGVtcGxhdGVOYW1lID09IG51bGwgfHwgVGVtcGxhdGVOYW1lID09IHVuZGVmaW5lZClcclxuICAgICAgICBUZW1wbGF0ZU5hbWUgPSBcIlwiXHJcbiAgICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlVGl0bGUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpXHJcbiAgICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnMgPSBbXHJcbiAgICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG9tZVwiKSwgcGF0aDogJy9BZG1pbi9Ib21lJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJUZW1wbGF0ZXNcIiksIHBhdGg6ICcvQWRtaW4vTm90aWZpY2F0aW9ucy9UZW1wbGF0ZXMnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6IFRlbXBsYXRlTmFtZSAhPSBcIlwiID8gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFRlbXBsYXRlTmFtZSkgOiBcIlwiLCBwYXRoOiBcIi9BZG1pbi9Ob3RpZmljYXRpb25zL1RlbXBsYXRlSW5mby9cIiArIHRoaXMuVGVtcGxhdGVJbmZvLmlkRW5jcnlwdGVkLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9XHJcblxyXG5cclxuICAgICAgXTtcclxuICAgICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuXHJcblxyXG4gICAgICAvL0luaXRpYWxpemUgZm9ybSBhbmQgY29udHJvbHNcclxuICAgICAgdGhpcy5FZGl0U01TRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICB0aGlzLkVkaXRTTVNGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLkVkaXRTTVNGb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLkVkaXRTTVNGb3JtXHJcbiAgICAgIHRoaXMuRWRpdFNNU0Zvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEVkaXRTTVNNb2RlbDtcclxuICAgICAgdGhpcy5FZGl0U01TRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0U01TRnVuY3Rpb247XHJcbiAgICAgIHRoaXMuRWRpdFNNU0Zvcm1PcHRpb25zLk9uU3VjY2Vzc0hhbmRsZXIgPSB0aGlzLm9uRWRpdFNNU1N1Y2Nlc3M7XHJcblxyXG4gICAgICB0aGlzLlRlbXBsYXRlSWQgPSB0aGlzLlRlbXBsYXRlSW5mby5pZDtcclxuXHJcbiAgICAgIHRoaXMuU01TSW5FbmdsaXNoID0gbmV3IFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLlNNU0luRW5nbGlzaC5OYW1lID0gXCJTTVNJbkVuZ2xpc2hcIlxyXG4gICAgICB0aGlzLlNNU0luRW5nbGlzaC5MYWJlbEtleSA9IFwiU01TSW5FbmdsaXNoXCJcclxuICAgICAgdGhpcy5TTVNJbkVuZ2xpc2guSXNSZXF1aXJlZCA9IHRydWVcclxuICAgICAgdGhpcy5TTVNJbkVuZ2xpc2guVmFsdWUgPSB0aGlzLlRlbXBsYXRlSW5mby5zbXN0ZW1wbGF0ZWluZm8uc21zLmVuZ2xpc2g7XHJcblxyXG4gICAgICB0aGlzLlNNU0luQXJhYmljID0gbmV3IFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLlNNU0luQXJhYmljLk5hbWUgPSBcIlNNU0luQXJhYmljXCJcclxuICAgICAgdGhpcy5TTVNJbkFyYWJpYy5MYWJlbEtleSA9IFwiU01TSW5BcmFiaWNcIlxyXG4gICAgICB0aGlzLlNNU0luQXJhYmljLklzUmVxdWlyZWQgPSB0cnVlXHJcbiAgICAgIHRoaXMuU01TSW5BcmFiaWMuVmFsdWUgPSB0aGlzLlRlbXBsYXRlSW5mby5zbXN0ZW1wbGF0ZWluZm8uc21zLmFyYWJpYztcclxuXHJcbiAgICAgIHRoaXMuSXNGb3JtTG9hZGVkID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgZ2V0RWRpdFNNU01vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLkVkaXRTTVNGb3JtLnZhbHVlO1xyXG4gICAgbGV0IEVkaXRNb2RlbCA9IG5ldyBUZW1wbGF0ZUVkaXRWaWV3TW9kZWwoKTtcclxuICAgIEVkaXRNb2RlbC5JRCA9IE51bWJlcih0aGlzLlRlbXBsYXRlSWQpO1xyXG4gICAgRWRpdE1vZGVsLklERW5jcnlwdGVkID0gdGhpcy5UZW1wbGF0ZUluZm8uaWRFbmNyeXB0ZWQ7XHJcbiAgICBFZGl0TW9kZWwuSXNFbWFpbCA9IGZhbHNlO1xyXG4gICAgRWRpdE1vZGVsLklzU21zID0gdHJ1ZTtcclxuICAgIEVkaXRNb2RlbC5UZW1wbGF0ZU5hbWUgPSB0aGlzLlRlbXBsYXRlSW5mby50ZW1wbGF0ZU5hbWU7XHJcbiAgICBFZGl0TW9kZWwuTGFuZ3VhZ2UgPSB0aGlzLkxhbmc7XHJcbiAgICBFZGl0TW9kZWwuc21zdGVtcGxhdGVpbmZvLklEID0gdGhpcy5UZW1wbGF0ZUluZm8uc21zdGVtcGxhdGVpbmZvLmlkO1xyXG4gICAgRWRpdE1vZGVsLnNtc3RlbXBsYXRlaW5mby5TTVMuQXJhYmljID0gUmVzdWx0TW9kZWwuU01TSW5BcmFiaWNcclxuICAgIEVkaXRNb2RlbC5zbXN0ZW1wbGF0ZWluZm8uU01TLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5TTVNJbkVuZ2xpc2hcclxuXHJcbiAgICBwYXJhbUFycmF5LnB1c2goRWRpdE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdFNNU0Z1bmN0aW9uID0gKEVkaXRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZWRpdFNNU1RlbXBsYXRlQnlMYW5nKEVkaXRNb2RlbClcclxuICB9XHJcbiAgb25FZGl0U01TU3VjY2VzcyA9IChyZXN1bHQpID0+IHtcclxuICAgIHRoaXMuY2FuY2VsRWRpdCgpO1xyXG4gIH1cclxuICBjYW5jZWxFZGl0KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vTm90aWZpY2F0aW9ucy9UZW1wbGF0ZUluZm8nLCB0aGlzLlRlbXBsYXRlSWRFbmNdKTtcclxuICB9XHJcblxyXG4gIC8vQ2hhbmdlIExhbmdcclxuICBjaGFuZ2VDdXJyZW50TGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLkxhbmcgPSBsYW5nO1xyXG4gIH1cclxuXHJcbiAgLy9PbiBkZXN0cm95XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxibG9jay11aT48L2Jsb2NrLXVpPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgIDwhLS17e1RlbXBsYXRlSW5mby50ZW1wbGF0ZU5hbWV9fShTTVMpLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkgYnRuLXNtXCIgKGNsaWNrKT1cImNoYW5nZUN1cnJlbnRMYW5ndWFnZSgnYXInKVwiICpuZ0lmPVwiTGFuZz09J2VuJ1wiPlxyXG4gICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBcmFiaWNcIil9fVxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkgYnRuLXNtXCIgKGNsaWNrKT1cImNoYW5nZUN1cnJlbnRMYW5ndWFnZSgnZW4nKVwiICpuZ0lmPVwiTGFuZz09J2FyJ1wiPlxyXG4gICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFbmdsaXNoXCIpfX1cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cIkVkaXRTTVNGb3JtT3B0aW9uc1wiICpuZ0lmPVwiSXNGb3JtTG9hZGVkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwia3QtZm9ybSByb3dcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIkxhbmc9PSdhcidcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0QXJlYSBjbGFzcz1cInRleHQtcmlnaHRcIiBbb3B0aW9uc109XCJTTVNJbkFyYWJpY1wiIFtncm91cF09XCJFZGl0U01TRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEFyZWE+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlwaG9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgbW9iaWxlLXR4dFwiPnt7VGVtcGxhdGVJbmZvLnNtc3RlbXBsYXRlaW5mby5zbXMuYXJhYmljfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiTGFuZz09J2VuJ1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRBcmVhIFtvcHRpb25zXT1cIlNNU0luRW5nbGlzaFwiIFtncm91cF09XCJFZGl0U01TRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEFyZWE+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlwaG9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgbW9iaWxlLXR4dFwiPnt7VGVtcGxhdGVJbmZvLnNtc3RlbXBsYXRlaW5mby5zbXMuZW5nbGlzaH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQtcHJpbWFyeSBidG4tc20gbWUtM1wiIChjbGljayk9XCJjYW5jZWxFZGl0KClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNhdmVMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L0JCU0YtRm9ybT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4iXX0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1zbXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9ub3RpZmljYXRpb25zL2VkaXQtc21zL2VkaXQtc21zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbm90aWZpY2F0aW9ucy9lZGl0LXNtcy9lZGl0LXNtcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0RBQStELENBQUM7Ozs7Ozs7OztBQVN0RyxNQUFNLE9BQU8sZ0JBQWdCO0lBYTNCLFlBQW1CLGNBQThCLEVBQVUsb0JBQTBDLEVBQzNGLGVBQWdDLEVBQVUsY0FBOEIsRUFBVSxNQUFjLEVBQ2hHLGVBQWdDLEVBQVUscUJBQTRDO1FBRjdFLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDM0Ysb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNoRyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBVSwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBWmhHLFNBQUksR0FBVyxFQUFFLENBQUE7UUFJakIsOEJBQThCO1FBQzlC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RUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsYUFBYTtJQUNiLHFCQUFxQixDQUFDLElBQVk7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELFlBQVk7SUFDWixXQUFXO1FBQ1QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLENBQUM7OzhHQS9HVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixvRENkN0IscXBGQTBEQTs0RkQ1Q2EsZ0JBQWdCO2tCQUo1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixXQUFXLEVBQUUsMkJBQTJCO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEZvcm1PcHRpb25zLCBUZXh0QXJlYU9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVFZGl0Vmlld01vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Ob3RpZmljYXRpb25zTW9kZWxzL1RlbXBsYXRlRWRpdFZpZXdNb2RlbCc7XHJcbmltcG9ydCB7IFRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9UZW1wbGF0ZVNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBCQlNGVHJhbnNsYXRlU2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZWRpdC1zbXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LXNtcy5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRTTVNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vUGFnZSBSZXF1aXJlbWVudHNcclxuICBUZW1wbGF0ZUlkOiBzdHJpbmc7XHJcbiAgTGFuZzogc3RyaW5nID0gXCJcIlxyXG4gIFRlbXBsYXRlSW5mbzogYW55XHJcbiAgSXNGb3JtTG9hZGVkOiBib29sZWFuXHJcblxyXG4gIC8vSW5pdGlhbGl6ZSBmb3JtIGFuZCBjb250cm9sc1xyXG4gIEVkaXRTTVNGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgRWRpdFNNU0Zvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zO1xyXG4gIFNNU0luRW5nbGlzaDogVGV4dEFyZWFPcHRpb25zO1xyXG4gIFNNU0luQXJhYmljOiBUZXh0QXJlYU9wdGlvbnM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsIHByaXZhdGUgYmJzZlRyYW5zbGF0ZVNlcnZpY2U6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVNlcnZpY2U6IFRlbXBsYXRlU2VydmljZSwgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHBhZ2VJbmZvU2VydmljZTogUGFnZUluZm9TZXJ2aWNlLCBwcml2YXRlIHJlcXVlc3RIYW5kbGVyU2VydmljZTogUmVxdWVzdEhhbmRsZXJTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgdGhpcy5UZW1wbGF0ZUlkID0gcGFyYW1zWydpZCddO1xyXG4gICAgICB0aGlzLkxhbmcgPSBwYXJhbXNbJ2xhbmcnXTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5iYnNmVHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB9KVxyXG4gICAgdGhpcy5pbml0aWFsaXplUGFnZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLnRlbXBsYXRlU2VydmljZS5nZXRUZW1wbGF0ZUluZm9CeUxhbmcodGhpcy5UZW1wbGF0ZUlkLCB0aGlzLkxhbmcpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIGxldCBSZXN1bHQ6IGFueSA9IHJlc3VsdFxyXG4gICAgICB0aGlzLlRlbXBsYXRlSW5mbyA9IFJlc3VsdC52YWw7XHJcbiAgICAgIGxldCBUZW1wbGF0ZU5hbWU6IHN0cmluZyA9IHRoaXMuVGVtcGxhdGVJbmZvLmVtYWlsVGVtcGxhdGVJbmZvLmVtYWlsU3ViamVjdFN0cjtcclxuICAgICAgaWYgKFRlbXBsYXRlTmFtZSA9PSBudWxsIHx8IFRlbXBsYXRlTmFtZSA9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgVGVtcGxhdGVOYW1lID0gXCJcIlxyXG4gICAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRWRpdFwiKVxyXG4gICAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvbWVcIiksIHBhdGg6ICcvQWRtaW4vSG9tZScsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiVGVtcGxhdGVzXCIpLCBwYXRoOiAnL0FkbWluL05vdGlmaWNhdGlvbnMvVGVtcGxhdGVzJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICB7IHRpdGxlOiBUZW1wbGF0ZU5hbWUgIT0gXCJcIiA/IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShUZW1wbGF0ZU5hbWUpIDogXCJcIiwgcGF0aDogXCIvQWRtaW4vTm90aWZpY2F0aW9ucy9UZW1wbGF0ZUluZm8vXCIgKyB0aGlzLlRlbXBsYXRlSW5mby5pRF9HVUlELCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9XHJcblxyXG5cclxuICAgICAgXTtcclxuICAgICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuXHJcblxyXG4gICAgICAvL0luaXRpYWxpemUgZm9ybSBhbmQgY29udHJvbHNcclxuICAgICAgdGhpcy5FZGl0U01TRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICB0aGlzLkVkaXRTTVNGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLkVkaXRTTVNGb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLkVkaXRTTVNGb3JtXHJcbiAgICAgIHRoaXMuRWRpdFNNU0Zvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEVkaXRTTVNNb2RlbDtcclxuICAgICAgdGhpcy5FZGl0U01TRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0U01TRnVuY3Rpb247XHJcbiAgICAgIHRoaXMuRWRpdFNNU0Zvcm1PcHRpb25zLk9uU3VjY2Vzc0hhbmRsZXIgPSB0aGlzLm9uRWRpdFNNU1N1Y2Nlc3M7XHJcblxyXG4gICAgICB0aGlzLlNNU0luRW5nbGlzaCA9IG5ldyBUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5TTVNJbkVuZ2xpc2guTmFtZSA9IFwiU01TSW5FbmdsaXNoXCJcclxuICAgICAgdGhpcy5TTVNJbkVuZ2xpc2guTGFiZWxLZXkgPSBcIlNNU0luRW5nbGlzaFwiXHJcbiAgICAgIHRoaXMuU01TSW5FbmdsaXNoLklzUmVxdWlyZWQgPSB0cnVlXHJcbiAgICAgIHRoaXMuU01TSW5FbmdsaXNoLlZhbHVlID0gdGhpcy5UZW1wbGF0ZUluZm8uc21zVGVtcGxhdGVJbmZvLnNtcy5lbmdsaXNoO1xyXG5cclxuICAgICAgdGhpcy5TTVNJbkFyYWJpYyA9IG5ldyBUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5TTVNJbkFyYWJpYy5OYW1lID0gXCJTTVNJbkFyYWJpY1wiXHJcbiAgICAgIHRoaXMuU01TSW5BcmFiaWMuTGFiZWxLZXkgPSBcIlNNU0luQXJhYmljXCJcclxuICAgICAgdGhpcy5TTVNJbkFyYWJpYy5Jc1JlcXVpcmVkID0gdHJ1ZVxyXG4gICAgICB0aGlzLlNNU0luQXJhYmljLlZhbHVlID0gdGhpcy5UZW1wbGF0ZUluZm8uc21zVGVtcGxhdGVJbmZvLnNtcy5hcmFiaWM7XHJcblxyXG4gICAgICB0aGlzLklzRm9ybUxvYWRlZCA9IHRydWU7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG4gIGdldEVkaXRTTVNNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5FZGl0U01TRm9ybS52YWx1ZTtcclxuICAgIGxldCBFZGl0TW9kZWwgPSBuZXcgVGVtcGxhdGVFZGl0Vmlld01vZGVsKCk7XHJcbiAgICBFZGl0TW9kZWwuSURfR1VJRCA9IHRoaXMuVGVtcGxhdGVJZDtcclxuICAgIEVkaXRNb2RlbC5Jc0VtYWlsID0gZmFsc2U7XHJcbiAgICBFZGl0TW9kZWwuSXNTbXMgPSB0cnVlO1xyXG4gICAgRWRpdE1vZGVsLlRlbXBsYXRlTmFtZSA9IHRoaXMuVGVtcGxhdGVJbmZvLnRlbXBsYXRlTmFtZTtcclxuICAgIEVkaXRNb2RlbC5MYW5ndWFnZSA9IHRoaXMuTGFuZztcclxuICAgIEVkaXRNb2RlbC5zbXN0ZW1wbGF0ZWluZm8uSURfR1VJRCA9IHRoaXMuVGVtcGxhdGVJbmZvLnNtc1RlbXBsYXRlSW5mby5pRF9HVUlEO1xyXG4gICAgRWRpdE1vZGVsLnNtc3RlbXBsYXRlaW5mby5TTVMuQXJhYmljID0gUmVzdWx0TW9kZWwuU01TSW5BcmFiaWNcclxuICAgIEVkaXRNb2RlbC5zbXN0ZW1wbGF0ZWluZm8uU01TLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5TTVNJbkVuZ2xpc2hcclxuXHJcbiAgICBwYXJhbUFycmF5LnB1c2goRWRpdE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdFNNU0Z1bmN0aW9uID0gKEVkaXRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZWRpdFNNU1RlbXBsYXRlQnlMYW5nKEVkaXRNb2RlbClcclxuICB9XHJcbiAgb25FZGl0U01TU3VjY2VzcyA9IChyZXN1bHQpID0+IHtcclxuICAgIHRoaXMuY2FuY2VsRWRpdCgpO1xyXG4gIH1cclxuICBjYW5jZWxFZGl0KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vTm90aWZpY2F0aW9ucy9UZW1wbGF0ZUluZm8nLCB0aGlzLlRlbXBsYXRlSWRdKTtcclxuICB9XHJcblxyXG4gIC8vQ2hhbmdlIExhbmdcclxuICBjaGFuZ2VDdXJyZW50TGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLkxhbmcgPSBsYW5nO1xyXG4gIH1cclxuXHJcbiAgLy9PbiBkZXN0cm95XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxibG9jay11aT48L2Jsb2NrLXVpPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgIDwhLS17e1RlbXBsYXRlSW5mby50ZW1wbGF0ZU5hbWV9fShTTVMpLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkgYnRuLXNtXCIgKGNsaWNrKT1cImNoYW5nZUN1cnJlbnRMYW5ndWFnZSgnYXInKVwiICpuZ0lmPVwiTGFuZz09J2VuJ1wiPlxyXG4gICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBcmFiaWNcIil9fVxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkgYnRuLXNtXCIgKGNsaWNrKT1cImNoYW5nZUN1cnJlbnRMYW5ndWFnZSgnZW4nKVwiICpuZ0lmPVwiTGFuZz09J2FyJ1wiPlxyXG4gICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFbmdsaXNoXCIpfX1cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cIkVkaXRTTVNGb3JtT3B0aW9uc1wiICpuZ0lmPVwiSXNGb3JtTG9hZGVkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwia3QtZm9ybSByb3dcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIkxhbmc9PSdhcidcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0QXJlYSBjbGFzcz1cInRleHQtcmlnaHRcIiBbb3B0aW9uc109XCJTTVNJbkFyYWJpY1wiIFtncm91cF09XCJFZGl0U01TRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEFyZWE+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlwaG9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgbW9iaWxlLXR4dFwiPnt7VGVtcGxhdGVJbmZvLnNtc1RlbXBsYXRlSW5mby5zbXMuYXJhYmljfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiTGFuZz09J2VuJ1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRBcmVhIFtvcHRpb25zXT1cIlNNU0luRW5nbGlzaFwiIFtncm91cF09XCJFZGl0U01TRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEFyZWE+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlwaG9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgbW9iaWxlLXR4dFwiPnt7VGVtcGxhdGVJbmZvLnNtc1RlbXBsYXRlSW5mby5zbXMuZW5nbGlzaH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQtcHJpbWFyeSBidG4tc20gbWUtM1wiIChjbGljayk9XCJjYW5jZWxFZGl0KClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNhdmVMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L0JCU0YtRm9ybT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4iXX0=